""" BatikAI — Cultural Knowledge Base Descriptions, origins, and fun facts for each batik motif class. """ BATIK_INFO = { "parang": { "origin": "Yogyakarta & Surakarta, Jawa Tengah", "meaning": "Parang (pisau/pedang) melambangkan ketajaman pikiran dan semangat yang tidak pernah putus, seperti ombak laut yang terus bergerak.", "usage": "Dipakai oleh raja dan bangsawan keraton. Saat ini digunakan dalam upacara adat dan pernikahan.", "fun_fact": "🏛️ Motif Parang adalah salah satu motif batik tertua, diperkirakan diciptakan oleh Sultan Agung pada abad ke-17.", "color": "#8B4513" }, "kawung": { "origin": "Yogyakarta, Jawa Tengah", "meaning": "Kawung terinspirasi dari buah aren/kolang-kaling yang melambangkan kesucian, keadilan, dan pengendalian diri.", "usage": "Dahulu hanya boleh dikenakan oleh raja dan keluarga kerajaan. Kini populer di berbagai acara formal.", "fun_fact": "👑 Kawung adalah salah satu motif yang dilindungi keraton — dulu orang biasa dilarang memakainya!", "color": "#2F4F4F" }, "mega_mendung": { "origin": "Cirebon, Jawa Barat", "meaning": "Mega Mendung (awan mendung) melambangkan ketenangan, kesabaran, dan harapan akan hujan yang menyuburkan.", "usage": "Identik dengan Batik Cirebon, sering dipakai dalam acara penting dan sebagai oleh-oleh khas Cirebon.", "fun_fact": "☁️ Motif ini dipengaruhi budaya China — babi biru dan merah pada gambar awan adalah pengaruh dari keramik China abad ke-15!", "color": "#4169E1" }, "truntum": { "origin": "Surakarta (Solo), Jawa Tengah", "meaning": "Truntum berarti 'menuntun' — melambangkan cinta yang tumbuh kembali dan bimbingan orang tua kepada anak.", "usage": "Secara tradisional dikenakan orang tua pengantin dalam upacara pernikahan Jawa.", "fun_fact": "💕 Konon motif ini diciptakan oleh Ratu Kencana saat merajuk pada Sri Susuhunan — ia membatik untuk mengisi waktu, dan sang raja pun kembali jatuh cinta!", "color": "#8B0000" }, "sekar_jagad": { "origin": "Yogyakarta & Surakarta, Jawa Tengah", "meaning": "Sekar Jagad (bunga semesta) melambangkan keberagaman dan keindahan dunia — seperti peta pulau-pulau di lautan.", "usage": "Dipakai dalam berbagai upacara adat dan acara resmi sebagai simbol kebanggaan budaya.", "fun_fact": "🌍 'Sekar' = bunga, 'Jagad' = dunia/alam semesta. Motif ini seperti peta mini yang menggambarkan indahnya keberagaman Indonesia!", "color": "#228B22" }, "ceplok": { "origin": "Jawa Tengah (Yogyakarta & Solo)", "meaning": "Ceplok adalah motif geometris simetris yang melambangkan keseimbangan, keteraturan, dan harmoni dalam kehidupan.", "usage": "Sangat populer sebagai batik cap (stempel) dan sering dipakai sehari-hari maupun acara formal.", "fun_fact": "🔷 Ceplok berasal dari kata 'ceplok' yang berarti 'cap' atau 'cetak'. Ini adalah salah satu motif paling mudah dibuat dengan teknik cap!", "color": "#FF8C00" }, "sidomukti": { "origin": "Surakarta (Solo), Jawa Tengah", "meaning": "Sidomukti = 'sido' (terus-menerus) + 'mukti' (bahagia/sejahtera). Melambangkan harapan akan kebahagiaan yang abadi.", "usage": "Wajib hadir dalam pernikahan adat Jawa — dikenakan oleh pengantin sebagai simbol doa kebahagiaan.", "fun_fact": "💍 Di pernikahan adat Jawa, pengantin yang mengenakan Sidomukti dipercaya akan hidup bahagia dan sejahtera selamanya!", "color": "#556B2F" }, "lereng": { "origin": "Surakarta (Solo), Jawa Tengah", "meaning": "Lereng (lereng gunung) menggambarkan garis diagonal yang melambangkan dinamisme, keberanian, dan semangat maju.", "usage": "Populer sebagai batik kasual dan semi-formal. Sering dijadikan kain panjang dan sarung.", "fun_fact": "⛰️ Motif diagonal Lereng terinspirasi dari lereng Gunung Merapi — simbol keagungan alam Jawa!", "color": "#800080" }, "nitik": { "origin": "Yogyakarta, Jawa Tengah", "meaning": "Nitik berasal dari teknik 'nitik' (menggambar titik-titik kecil). Melambangkan kesabaran dan ketelitian dalam berkarya.", "usage": "Sangat bernilai tinggi karena proses pembuatannya yang sangat detail. Dipakai di acara formal dan ritual adat.", "fun_fact": "🎨 Satu lembar kain Nitik bisa membutuhkan ratusan jam pengerjaan karena setiap titik dibuat satu per satu!", "color": "#B8860B" }, "sogan": { "origin": "Surakarta (Solo) & Yogyakarta", "meaning": "Sogan diidentikkan dengan warna coklat kemerahan dari pohon soga. Melambangkan kebijaksanaan, keeleganan, dan kematangan.", "usage": "Merupakan batik khas keraton, sangat populer sebagai busana resmi dan pakaian orang tua di pernikahan.", "fun_fact": "🌿 Warna coklat khas Sogan berasal dari kulit pohon Soga Jawa (Peltophorum pterocarpum) — pewarna alami yang telah digunakan sejak ratusan tahun!", "color": "#A0522D" }, } def get_batik_info(class_name: str) -> dict: """Return cultural info dict for a given class name. Case-insensitive.""" key = class_name.lower().replace(" ", "_").replace("-", "_") # Try direct match if key in BATIK_INFO: return BATIK_INFO[key] # Fuzzy match — check if any key is contained in the name for k, v in BATIK_INFO.items(): if k in key or key in k: return v # Default fallback return { "origin": "Indonesia", "meaning": "Motif batik yang kaya makna budaya dan sejarah Indonesia.", "usage": "Digunakan dalam berbagai kesempatan adat dan formal.", "fun_fact": "🇮🇩 Batik Indonesia telah diakui UNESCO sebagai Warisan Budaya Tak Benda sejak tahun 2009!", "color": "#4A4A4A" }