{"version":3,"file":"CalendarEvent.pO2D-phC.mjs","names":["useState","useMemo"],"sources":["https:/framerusercontent.com/modules/l3o2CBJdnJwetf50N7Jr/kxr45sVWN54tkW0om9J5/CalendarEvent.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useMemo,useState}from\"react\";// --- HELPERS ---\nfunction parseDate(title){if(!title)return 0;try{const yearMatch=title.match(/(20\\d{2})/);const monthMatch=title.match(/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/i);if(!yearMatch||!monthMatch)return 0;const months=[\"jan\",\"feb\",\"mar\",\"apr\",\"may\",\"jun\",\"jul\",\"aug\",\"sep\",\"oct\",\"nov\",\"dec\"];const monthIndex=months.indexOf(monthMatch[0].toLowerCase());const splitIndex=monthMatch.index+monthMatch[0].length;const dayMatch=title.substring(splitIndex).match(/(\\d{1,2})/);const day=dayMatch?parseInt(dayMatch[0],10):1;const year=parseInt(yearMatch[0],10);return new Date(year,monthIndex,day).getTime();}catch(e){return 0;}}// Memisahkan Tanggal utama dan Catatan\nfunction formatDisplayData(str,shouldRemoveYear){let formattedStr=str.trim();if(shouldRemoveYear){formattedStr=formattedStr.replace(/\\s*-\\s*\\d{4}/g,\"\");}const parts=formattedStr.split(\"(\");const datePart=parts[0].trim();const notePart=parts.length>1?\"(\"+parts.slice(1).join(\"(\").trim():\"\";return{datePart,notePart};}// --- MAIN COMPONENT ---\nexport default function CalendarEvent(props){const{availableOptions=\"[]\",variantKey=\"Dates\",yearFilter=[],removeYear=true,gap=\"40px\",initialLimit=6,column=2,textColor=\"#1C1C1C\",accentColor=\"#2F2C3F\",font,showDivider=true,dividerColor=\"#EEEEEE\",// ✨ NEW PROPS FOR BADGE ✨\nshowBadge=false,badgeText=\"28 Day\",badgeBgColor=\"#6A8C4C\",badgeTextColor=\"#FFFFFF\"}=props;const[isExpanded,setIsExpanded]=useState(false);const[isHovered,setIsHovered]=useState(false);// Data Processing\nconst sortedDates=useMemo(()=>{if(!availableOptions)return[];try{const parsed=JSON.parse(availableOptions);if(!Array.isArray(parsed))return[];const rawDates=parsed.find(item=>item.name===variantKey)?.values||[];const filtered=rawDates.filter(str=>{if(!yearFilter||yearFilter.length===0)return true;return yearFilter.some(year=>str.includes(year));});return filtered.sort((a,b)=>parseDate(a)-parseDate(b));}catch{return[];}},[availableOptions,variantKey,yearFilter]);const visibleDates=isExpanded?sortedDates:sortedDates.slice(0,initialLimit);const hasMore=sortedDates.length>initialLimit;// --- STYLES ---\nconst styles={wrapper:{display:\"flex\",flexDirection:\"column\",width:\"100%\",gap:\"24px\",alignItems:\"center\"},badge:{backgroundColor:badgeBgColor,color:badgeTextColor,padding:\"6px 16px\",borderRadius:\"6px\",fontSize:\"14px\",fontWeight:\"600\",letterSpacing:\"0.5px\",boxShadow:\"0px 2px 8px rgba(0,0,0,0.06)\",marginBottom:\"-8px\"},grid:{display:\"grid\",gridTemplateColumns:`repeat(${column}, minmax(0, 1fr))`,columnGap:gap,rowGap:\"0px\",width:\"100%\"},listItem:(showDivider,dividerColor)=>({padding:\"20px 8px\",borderBottom:showDivider?`1px solid ${dividerColor}`:\"none\",display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:\"center\",gap:\"4px\"}),dateText:{...font,margin:0,color:textColor,textAlign:\"center\",fontWeight:\"500\",lineHeight:\"1.4\",whiteSpace:\"nowrap\"},noteText:{margin:0,color:textColor,textAlign:\"center\",fontSize:font?.fontSize?`calc(${font.fontSize}px * 0.85)`:\"16px\",opacity:.7,fontWeight:\"300\",lineHeight:\"1.4\",textWrap:\"balance\"},button:{background:\"none\",border:\"none\",color:accentColor,fontSize:\"14px\",fontWeight:\"700\",cursor:\"pointer\",textDecoration:isHovered?\"none\":\"underline\",opacity:isHovered?.7:1,transition:\"all 0.2s ease-in-out\",display:\"flex\",alignItems:\"center\",gap:\"6px\",padding:\"12px 24px\",marginTop:\"-8px\",borderRadius:\"8px\"}};return /*#__PURE__*/_jsxs(\"div\",{style:styles.wrapper,children:[showBadge&&badgeText&&/*#__PURE__*/_jsx(\"div\",{style:styles.badge,children:badgeText}),/*#__PURE__*/_jsx(\"div\",{style:styles.grid,children:visibleDates.map((item,i)=>{const{datePart,notePart}=formatDisplayData(item,removeYear);return /*#__PURE__*/_jsxs(\"div\",{style:styles.listItem(showDivider,dividerColor),children:[/*#__PURE__*/_jsx(\"p\",{style:styles.dateText,children:datePart}),notePart&&/*#__PURE__*/_jsx(\"p\",{style:styles.noteText,children:notePart})]},i);})}),hasMore&&/*#__PURE__*/_jsx(\"button\",{onClick:()=>setIsExpanded(!isExpanded),onMouseEnter:()=>setIsHovered(true),onMouseLeave:()=>setIsHovered(false),style:styles.button,children:isExpanded?\"See less\":\"View all\"})]});}// --- FRAMER PROPERTY CONTROLS ---\naddPropertyControls(CalendarEvent,{availableOptions:{title:\"Options\",type:ControlType.String},variantKey:{title:\"Option Key\",type:ControlType.String,defaultValue:\"Dates\"},// ✨ NEW BADGE CONTROLS ✨\nshowBadge:{title:\"Show Label\",type:ControlType.Boolean,defaultValue:false},badgeText:{title:\"Label Text\",type:ControlType.String,defaultValue:\"28 Day\",hidden(props){return!props.showBadge;}},badgeBgColor:{title:\"Label BG\",type:ControlType.Color,defaultValue:\"#5C7E43\",hidden(props){return!props.showBadge;}},badgeTextColor:{title:\"Label Text\",type:ControlType.Color,defaultValue:\"#FFFFFF\",hidden(props){return!props.showBadge;}},yearFilter:{title:\"Year Filter\",type:ControlType.Array,control:{type:ControlType.String}},removeYear:{title:\"Hide Year\",type:ControlType.Boolean,defaultValue:true},initialLimit:{title:\"Show Items\",type:ControlType.Number,defaultValue:6,min:2,max:30},column:{title:\"Columns\",type:ControlType.Number,defaultValue:2,min:1,max:4},gap:{title:\"Column Gap\",type:ControlType.Gap,defaultValue:\"40px\"},font:{title:\"Font\",type:ControlType.Font,controls:\"extended\"},textColor:{title:\"Text Color\",type:ControlType.Color,defaultValue:\"#333\"},accentColor:{title:\"Link Color\",type:ControlType.Color,defaultValue:\"#2F2C3F\"},showDivider:{title:\"Show Dividers\",type:ControlType.Boolean,defaultValue:true},dividerColor:{title:\"Divider Color\",type:ControlType.Color,defaultValue:\"#EEEEEE\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CalendarEvent\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CalendarEvent.map"],"mappings":"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"}