{"version":3,"file":"CommunityCalendar.SCsZogPu.mjs","names":["key","useState","_Fragment","useRef"],"sources":["https:/framerusercontent.com/modules/fmEcCbHaWzmhxMAl18YR/kkQmXJApplQMshVdtmsG/CommunityCalendar.js"],"sourcesContent":["// ─────────────────────────────────────────────────────────────────────────────\n// Community Calendar — Framer Code Component\n// File: Community Events/CommunityCalendar.tsx\n// Last modified: 2026-06-18 EST | Author: Claude (for Eric Belozovsky)\n// Latest change: Removed the \"No events found.\" placeholder from the List/Ongoing\n//   empty state. When no filter is active and there are no events, the calendar\n//   now renders nothing instead of the placeholder text. The filter-feedback\n//   message (\"No events match your filters.\") is kept since it explains WHY the\n//   list is empty. Calendar-day sidebar empty states are unchanged.\n// Prior (2026-06-17): Rich-text descriptions. The Airtable `description` field is now\n//   a richText field; added renderRich() to render a safe inline Markdown subset\n//   (**bold**, *italic* / _italic_, __underline__ / <u>, [label](url)) to React\n//   nodes in BOTH the list preview and the detail sidebar. Drives the house style\n//   of italic film titles (Berkshire Jewish Film Festival listings, etc.). No raw\n//   HTML injection (no dangerouslySetInnerHTML); newlines still preserved via\n//   pre-wrap (sidebar) / line-clamp (list). NOTE: this is a paste-source file -\n//   it is not live until pasted into the Framer Code Component and republished.\n// Prior (2026-06-01): Mobile responsive - the search bar + category/audience chip\n//   rows now collapse behind a single \"Search & Filters\" toggle button on\n//   narrow viewports (containerWidth < 600). Default collapsed to reclaim\n//   vertical space on phones; a count badge on the button shows how many\n//   filter dimensions are active while collapsed. The active-filter summary\n//   row (\"X of Y events\" + Clear filters) stays visible so users still see\n//   that filters are applied. Wider viewports are unchanged (panel always\n//   shown, no button). Tabs + month nav stay visible at every width.\n// Prior (2026-05-21): Ongoing Programs tab now renders with the same date-grouped\n//   layout as the List tab (bold next-upcoming-date header + horizontal\n//   divider + 2-col EventCard grid per group), instead of a single flat grid.\n//   Re-applies the layout from the earlier reverted commit now that the\n//   listCols-stale-on-tab-switch bug is fixed.\n// Prior (2026-05-21): Fix List tab dropping to 1 column after switching between\n//   List and Ongoing tabs. Replaced the per-tab listContainerRef-driven\n//   ResizeObserver (which got stuck watching unmounted containers on tab\n//   swap) with a pure derived value off the always-mounted outer\n//   containerWidth: `const listCols = containerWidth < 480 ? 1 : 2`.\n// Prior (2026-05-21): Added 'Ongoing Programs' tab (deduped recurring series sorted\n//   by next upcoming occurrence). List + Calendar tabs now hide recurring\n//   events entirely — those live in the Ongoing tab. Previous boolean state\n//   `listViewOpen` was promoted to a tri-state `activeTab` enum.\n//\n// === What this is ===\n// A Framer Code Component for the JW community calendar.  Fetches events from\n// the jw-events-api Cloudflare Worker (which proxies the Airtable Community\n// Events base), and renders a calendar grid + list view with detail sidebar.\n//\n// === Architecture ===\n// Browser → jw-events-api Worker → Airtable Community Events base.\n// The Worker holds the Airtable PAT server-side; the browser never sees it.\n//\n// === Setup in Framer ===\n//   1. Create a Code Component, replace its contents with this file.\n//   2. In the component props panel, leave \"API Base URL\" as the default\n//      (https://jw-events-api.eric-belozovsky.workers.dev) unless the Worker\n//      has been redeployed somewhere else.\n//   3. Set \"Container Height\" to the height you want the calendar to fill.\n//      Both List and Calendar views scroll internally to fit this height.\n//\n// === What changed in this version (vs the prior PAT-embedded version) ===\n//   1. No more apiKey prop. Fetch comes from a server-side Worker.\n//   2. Renders registration_url / registration_phone / registration_email\n//      (clickable links) in the event detail.\n//   3. Renders submitter_name / submitter_email / submitter_phone (the public\n//      accountability contact, per Community Events rule R1).\n//   4. Renders image_url or image_attachment[0] as a hero in the detail view\n//      and as a thumbnail in the list card.\n//   5. Renders organizer (resolved to the linked Organization's name + website).\n//   6. List view shows TODAY-FORWARD events across all months (no longer\n//      month-scoped). Calendar view stays month-scoped because the grid IS a\n//      month.\n//   7. Audience filter chips alongside category chips. AND across the two\n//      filter rows (event must match active category AND have at least one\n//      active audience).\n//   8. Fixed container height (configurable prop). Both views scroll inside.\n//   9. Robust auto-scroll-to-today on list view: if today has no events,\n//      scrolls to the NEXT date that has events.\n//\n// ─────────────────────────────────────────────────────────────────────────────\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useEffect,useRef}from\"react\";// ─── Config ──────────────────────────────────────────────────────────────────\nconst API_DEFAULT_URL=\"https://jw-events-api.eric-belozovsky.workers.dev\";const MONTH_NAMES=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];const DAY_NAMES=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"];// Fallback palette — overridden at runtime by Categories table\nconst CATEGORY_PALETTE={\"Jewish Life\":\"#C0392B\",\"Classes & Study\":\"#B8652E\",\"Arts & Culture\":\"#7B3F9E\",\"Museums & Galleries\":\"#C8A820\",\"Business & Technology\":\"#4B6CB7\",\"Fitness & Recreation\":\"#108BE3\",\"Tzedakah & Fundraisers\":\"#2D6A4F\",\"Youth & Family\":\"#CB15CF\",\"Senior Programs\":\"#E3103E\"};// ─── Helpers ─────────────────────────────────────────────────────────────────\nfunction daysInMonth(y,m){return new Date(y,m+1,0).getDate();}function firstWeekday(y,m){return new Date(y,m,1).getDay();}function sameDay(a,b){return a.getFullYear()===b.getFullYear()&&a.getMonth()===b.getMonth()&&a.getDate()===b.getDate();}function toDateKey(d){return`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,\"0\")}-${String(d.getDate()).padStart(2,\"0\")}`;}function parseDate(str){if(!str)return null;try{const d=new Date(str);return isNaN(d.getTime())?null:d;}catch{return null;}}function fmtTime(d){if(!d)return\"\";return d.toLocaleTimeString([],{hour:\"numeric\",minute:\"2-digit\"});}function fmtDateLong(d){return d.toLocaleDateString([],{weekday:\"long\",month:\"long\",day:\"numeric\",year:\"numeric\"});}function fmtDateShort(d){return d.toLocaleDateString([],{weekday:\"short\",month:\"short\",day:\"numeric\"});}function catColor(category,fallback,overrides){return overrides&&category&&overrides[category]||CATEGORY_PALETTE[category]||fallback;}// Extract first usable image URL from an event's fields.\n// Priority: image_url → image_attachment[0].thumbnails.large.url → image_attachment[0].url\nfunction eventImageUrl(f,size=\"large\"){if(f?.image_url)return f.image_url;const att=Array.isArray(f?.image_attachment)?f.image_attachment[0]:null;if(!att)return null;return att?.thumbnails?.[size]?.url||att?.url||null;}// Extract the flyer URL. Prefer the first attachment uploaded via the form\n// (f.flyer[0].url, a signed Airtable CDN URL). Fall back to the manually-\n// entered flyer_url for cases where the flyer is hosted elsewhere\n// (Google Drive, org site, etc.).\nfunction eventFlyerUrl(f){const att=Array.isArray(f?.flyer)?f.flyer[0]:null;if(att?.url)return att.url;if(f?.flyer_url)return f.flyer_url;return null;}// True if the event is part of a recurring series (any non-empty recurrence_type other than \"None\").\nfunction isRecurring(f){const t=f?.recurrence_type;if(!t)return false;if(typeof t===\"string\")return t!==\"None\";return true;}// Returns all events in the same recurring series as the given event (excluding the event itself).\n// Sorted chronologically by start_datetime.\nfunction siblingsInSeries(event,allEvents){const seriesIds=Array.isArray(event?.fields?.recurrence_series)?event.fields.recurrence_series:[];if(seriesIds.length===0)return[];const myId=event.id;return allEvents.filter(r=>{if(r.id===myId)return false;const rsIds=Array.isArray(r.fields?.recurrence_series)?r.fields.recurrence_series:[];return rsIds.some(id=>seriesIds.includes(id));}).sort((a,b)=>{const da=a.fields?.start_datetime||\"\";const db=b.fields?.start_datetime||\"\";return da<db?-1:da>db?1:0;});}// Resolve organizer / venue display name from the *_resolved fields the Worker attaches.\nfunction organizerName(f){const resolved=Array.isArray(f?.organizer_resolved)?f.organizer_resolved:[];return resolved.map(o=>o?.name).filter(Boolean).join(\", \");}function organizerSite(f){const resolved=Array.isArray(f?.organizer_resolved)?f.organizer_resolved:[];for(const o of resolved)if(o?.website)return o.website;return null;}// Short venue name (for compact EventCard rows). Pulls from venue_name_cached\n// when available (lookup field), else first venue_resolved.name, else \"\".\nfunction venueDisplay(f){if(f?.venue_name_cached){return Array.isArray(f.venue_name_cached)?f.venue_name_cached.join(\", \"):f.venue_name_cached;}const resolved=Array.isArray(f?.venue_resolved)?f.venue_resolved:[];return resolved.map(v=>v?.name).filter(Boolean).join(\" / \");}function venueDetails(f){const resolved=Array.isArray(f?.venue_resolved)?f.venue_resolved:[];return resolved.map(v=>{const cityStateZip=[v?.city,v?.state,v?.zip].filter(Boolean).join(v?.state?\", \":\" \").replace(/, ([A-Z]{2}) /,\" $1 \")// \"Delmar, NY 12054\" not \"Delmar, NY, 12054\"\n;return{id:v?.id,name:v?.name||\"\",addressLine:v?.address||\"\",cityStateZip,mapUrl:v?.map_url,website:v?.website,accessibility:v?.accessibility_notes};}).filter(vd=>vd.name||vd.addressLine||vd.cityStateZip);}// ─── Worker fetch ────────────────────────────────────────────────────────────\nasync function fetchJson(url){const r=await fetch(url,{credentials:\"omit\"});if(!r.ok){const body=await r.text();throw new Error(`Fetch ${url} ${r.status}: ${body.slice(0,200)}`);}return r.json();}// ── renderRich: inline rich-text for the Airtable `description` field ─────────\n// `description` is a richText field; the API returns it as light Markdown. We\n// render a safe inline subset to React nodes (NO dangerouslySetInnerHTML):\n//   **bold**   *italic* / _italic_   __underline__   [label](url)\n//   plus literal <b>/<strong>, <i>/<em>, <u> tags.\n// Newlines survive via the container's white-space: pre-wrap (sidebar) or get\n// line-clamped (list preview). Any unmatched text renders verbatim.\nfunction renderRich(text,linkColor=\"#2563EB\"){if(text==null||text===\"\")return null;const rules=[// Links first so their label text isn't re-scanned for emphasis markers.\n{re:/\\[([^\\]]+)\\]\\(([^)\\s]+)\\)/,inner:m=>m[1],wrap:(kids,m,key)=>/*#__PURE__*/_jsx(\"a\",{href:m[2],target:\"_blank\",rel:\"noopener noreferrer\",style:{color:linkColor,textDecoration:\"underline\",wordBreak:\"break-word\"},children:kids},key)},// Double-delimiter forms BEFORE single so ** / __ win over * / _.\n{re:/\\*\\*([\\s\\S]+?)\\*\\*/,inner:m=>m[1],wrap:(k,_m,key)=>/*#__PURE__*/_jsx(\"strong\",{children:k},key)},{re:/__([\\s\\S]+?)__/,inner:m=>m[1],wrap:(k,_m,key)=>/*#__PURE__*/_jsx(\"u\",{children:k},key)},{re:/<(?:b|strong)>([\\s\\S]+?)<\\/(?:b|strong)>/i,inner:m=>m[1],wrap:(k,_m,key)=>/*#__PURE__*/_jsx(\"strong\",{children:k},key)},{re:/<u>([\\s\\S]+?)<\\/u>/i,inner:m=>m[1],wrap:(k,_m,key)=>/*#__PURE__*/_jsx(\"u\",{children:k},key)},{re:/<(?:i|em)>([\\s\\S]+?)<\\/(?:i|em)>/i,inner:m=>m[1],wrap:(k,_m,key)=>/*#__PURE__*/_jsx(\"em\",{children:k},key)},{re:/\\*([\\s\\S]+?)\\*/,inner:m=>m[1],wrap:(k,_m,key)=>/*#__PURE__*/_jsx(\"em\",{children:k},key)},{re:/_([\\s\\S]+?)_/,inner:m=>m[1],wrap:(k,_m,key)=>/*#__PURE__*/_jsx(\"em\",{children:k},key)}];const out=[];let rest=text;let key=0;let guard=0;while(rest.length>0&&guard++<1e4){let best=null;for(const rule of rules){const m=rule.re.exec(rest);if(m&&(best===null||m.index<best.idx))best={idx:m.index,rule,m};}if(best===null){out.push(rest);break;}if(best.idx>0)out.push(rest.slice(0,best.idx));out.push(best.rule.wrap(renderRich(best.rule.inner(best.m),linkColor),best.m,\"rt\"+key++));rest=rest.slice(best.idx+best.m[0].length);}return out;}// ── EventCard ─────────────────────────────────────────────────────────────────\n// inList = true → list view variant (date line + truncated description + optional thumb)\n// narrow = true → chip stacks above title instead of floating right (< 480px)\nfunction EventCard({event,tokens,primaryColor,radius,categoryColors,inList=false,showDescription=false,showImage=true,narrow=false,onClick}){const f=event.fields;const start=parseDate(f.start_datetime);const color=catColor(f.category,primaryColor,categoryColors);const thumb=showImage?eventImageUrl(f,\"small\"):null;const venue=venueDisplay(f);const recurring=isRecurring(f);const recurringLabel=recurring?typeof f.recurrence_type===\"string\"?f.recurrence_type:\"Recurring\":null;return /*#__PURE__*/_jsxs(\"div\",{onClick:onClick,style:{borderRadius:radius,padding:\"12px 14px\",marginBottom:inList?0:8,borderLeft:`4px solid ${color}`,backgroundColor:tokens.surface,cursor:\"pointer\",display:\"flex\",gap:12,transition:\"opacity 0.12s\",height:inList?\"100%\":\"auto\",boxSizing:\"border-box\",alignItems:\"flex-start\"},children:[inList&&thumb&&/*#__PURE__*/_jsx(\"img\",{src:thumb,alt:\"\",style:{width:72,height:72,objectFit:\"cover\",borderRadius:6,flexShrink:0,backgroundColor:tokens.surface}}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:4,flex:1,minWidth:0},children:[inList&&start&&/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:tokens.bodySize-3,fontWeight:700,color,fontFamily:tokens.font,textTransform:\"uppercase\",letterSpacing:\"0.06em\",marginBottom:2,display:\"flex\",alignItems:\"center\",gap:6,flexWrap:\"wrap\"},children:[/*#__PURE__*/_jsxs(\"span\",{children:[fmtDateShort(start),!f.all_day&&` \\xb7 ${fmtTime(start)}`]}),recurring&&/*#__PURE__*/_jsxs(\"span\",{title:`Recurring (${recurringLabel})`,style:{fontSize:9,padding:\"1px 6px\",borderRadius:999,backgroundColor:color+\"18\",color,border:`1px solid ${color}40`,letterSpacing:\"0.04em\"},children:[\"↻ \",recurringLabel]})]}),f.category&&narrow&&/*#__PURE__*/_jsx(\"span\",{style:{alignSelf:\"flex-start\",fontSize:10,fontWeight:700,padding:\"3px 8px\",borderRadius:999,backgroundColor:color+\"22\",color,fontFamily:tokens.font,flexShrink:0,letterSpacing:\"0.03em\"},children:f.category}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"flex-start\",gap:8},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:tokens.bodyWeight,fontSize:tokens.bodySize,color:tokens.text,fontFamily:tokens.font,lineHeight:1.4,wordBreak:\"break-word\",overflowWrap:\"break-word\",flex:1,minWidth:0},children:f.title||\"Untitled Event\"}),f.category&&!narrow&&/*#__PURE__*/_jsx(\"span\",{style:{fontSize:10,fontWeight:700,padding:\"3px 8px\",borderRadius:999,backgroundColor:color+\"22\",color,whiteSpace:\"nowrap\",fontFamily:tokens.font,flexShrink:0,letterSpacing:\"0.03em\",marginTop:1},children:f.category})]}),!inList&&/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:tokens.bodySize-2,color:tokens.muted,fontFamily:tokens.font,display:\"flex\",alignItems:\"center\",gap:6,flexWrap:\"wrap\"},children:[/*#__PURE__*/_jsxs(\"span\",{children:[f.all_day?\"All day\":start?fmtTime(start):\"\",venue?` \\xb7 ${venue}`:\"\"]}),recurring&&/*#__PURE__*/_jsxs(\"span\",{title:`Recurring (${recurringLabel})`,style:{fontSize:9,padding:\"1px 6px\",borderRadius:999,backgroundColor:color+\"18\",color,border:`1px solid ${color}40`,letterSpacing:\"0.04em\"},children:[\"↻ \",recurringLabel]})]}),inList&&venue&&/*#__PURE__*/_jsx(\"div\",{style:{fontSize:tokens.bodySize-2,color:tokens.muted,fontFamily:tokens.font},children:venue}),inList&&showDescription&&f.description&&/*#__PURE__*/_jsx(\"div\",{style:{fontSize:tokens.bodySize-2,color:tokens.muted,fontFamily:tokens.font,lineHeight:1.55,marginTop:4,display:\"-webkit-box\",WebkitLineClamp:2,WebkitBoxOrient:\"vertical\",overflow:\"hidden\"},children:renderRich(f.description)})]})]});}// ── InfoRow (label + value, with optional link) ──────────────────────────────\nfunction InfoRow({label,children,tokens}){return /*#__PURE__*/_jsxs(\"div\",{style:{marginBottom:12},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:tokens.bodySize-3,fontWeight:700,color:tokens.muted,fontFamily:tokens.font,textTransform:\"uppercase\",letterSpacing:\"0.07em\",marginBottom:3},children:label}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:tokens.bodySize-1,fontWeight:tokens.bodyWeight,color:tokens.text,fontFamily:tokens.font,lineHeight:1.5},children:children})]});}// ── EventDetail (sidebar full-detail view) ───────────────────────────────────\nfunction EventDetail({event,tokens,primaryColor,linkColor,showDescription,showTags,showVenue,showCost,showAudience,showImage,showOrganizer,showRegistration,showSubmitter,showFlyer,radius,categoryColors,allEvents,onSelectEvent,onBack}){const f=event.fields;const start=parseDate(f.start_datetime);const end=parseDate(f.end_datetime);const color=catColor(f.category,primaryColor,categoryColors);const tags=f.tags?Array.isArray(f.tags)?f.tags:[f.tags]:[];const audience=f.audience?Array.isArray(f.audience)?f.audience:[f.audience]:[];const heroImage=showImage?eventImageUrl(f,\"large\"):null;const venue=venueDisplay(f);const venueRows=venueDetails(f);const orgName=organizerName(f);const orgSite=organizerSite(f);const recurring=isRecurring(f);const recurringLabel=recurring?typeof f.recurrence_type===\"string\"?f.recurrence_type:\"Recurring\":null;const siblings=recurring?siblingsInSeries(event,allEvents):[];const[seriesOpen,setSeriesOpen]=useState(false);// Back-button label: surfaces the date the user came from so the action\n// is unambiguous (\"← Return to Fri, May 15 event list\" instead of the\n// generic \"Back to events\").\nconst backLabel=start?`← Return to ${fmtDateShort(start)} event list`:\"← Back to events\";const hasRegistration=showRegistration&&(f.registration_url||f.registration_phone||f.registration_email);const hasSubmitter=showSubmitter&&(f.submitter_name||f.submitter_email||f.submitter_phone);return /*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"button\",{onClick:onBack,style:{background:\"none\",border:\"none\",cursor:\"pointer\",color:primaryColor,fontSize:13,fontFamily:tokens.font,fontWeight:600,padding:\"0 0 16px\",display:\"flex\",alignItems:\"center\",gap:4},children:backLabel}),heroImage&&/*#__PURE__*/_jsx(\"img\",{src:heroImage,alt:f.title||\"\",style:{width:\"100%\",maxHeight:240,objectFit:\"cover\",borderRadius:radius,marginBottom:14,display:\"block\"}}),/*#__PURE__*/_jsxs(\"div\",{style:{borderLeft:`4px solid ${color}`,paddingLeft:16},children:[/*#__PURE__*/_jsx(\"h2\",{style:{margin:\"0 0 6px\",fontSize:tokens.bodySize+6,fontWeight:700,color:tokens.text,fontFamily:tokens.headingFont,lineHeight:1.25},children:f.title||\"Untitled Event\"}),/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:tokens.bodySize-1,color:tokens.muted,fontFamily:tokens.font,marginBottom:12},children:[start&&fmtDateLong(start),!f.all_day&&start&&/*#__PURE__*/_jsxs(\"span\",{children:[\" \\xb7 \",[fmtTime(start),end&&fmtTime(end)].filter(Boolean).join(\" – \")]}),f.all_day&&\" \\xb7 All day event\"]}),f.category&&/*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",fontSize:tokens.bodySize-3,fontWeight:700,padding:\"4px 12px\",borderRadius:999,backgroundColor:color+\"22\",color,fontFamily:tokens.font,marginBottom:16,letterSpacing:\"0.04em\"},children:f.category}),showDescription&&f.description&&/*#__PURE__*/_jsx(\"p\",{style:{fontSize:tokens.bodySize,fontWeight:tokens.bodyWeight,color:tokens.text,lineHeight:1.65,fontFamily:tokens.font,margin:\"0 0 16px\",whiteSpace:\"pre-wrap\"},children:renderRich(f.description,linkColor)}),recurring&&/*#__PURE__*/_jsx(InfoRow,{label:\"Recurring schedule\",tokens:tokens,children:/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:6},children:[/*#__PURE__*/_jsxs(\"span\",{style:{display:\"inline-flex\",alignItems:\"center\",gap:6,alignSelf:\"flex-start\",fontSize:tokens.bodySize-2,padding:\"3px 10px\",borderRadius:999,backgroundColor:color+\"18\",color,border:`1px solid ${color}40`,fontWeight:600},children:[\"↻ \",recurringLabel]}),siblings.length>0&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"button\",{onClick:()=>setSeriesOpen(o=>!o),style:{background:\"none\",border:\"none\",padding:0,cursor:\"pointer\",color:linkColor,fontSize:tokens.bodySize-2,fontFamily:tokens.font,fontWeight:600,textAlign:\"left\",textDecoration:\"underline\",alignSelf:\"flex-start\"},children:seriesOpen?`Hide other ${siblings.length} dates`:`See all ${siblings.length+1} dates in this series`}),seriesOpen&&/*#__PURE__*/_jsx(\"ul\",{style:{listStyle:\"none\",padding:0,margin:\"4px 0 0\",maxHeight:240,overflowY:\"auto\",border:`1px solid ${tokens.border}`,borderRadius:radius},children:siblings.map((occ,idx)=>{const occStart=parseDate(occ.fields?.start_datetime);return /*#__PURE__*/_jsxs(\"li\",{onClick:()=>onSelectEvent(occ),style:{padding:\"8px 12px\",cursor:\"pointer\",borderTop:idx===0?\"none\":`1px solid ${tokens.border}`,fontSize:tokens.bodySize-2,color:tokens.text,fontFamily:tokens.font,display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",gap:8,transition:\"background 0.12s\"},onMouseEnter:e=>e.currentTarget.style.backgroundColor=tokens.surface,onMouseLeave:e=>e.currentTarget.style.backgroundColor=\"transparent\",children:[/*#__PURE__*/_jsx(\"span\",{style:{fontWeight:600},children:occStart?fmtDateShort(occStart):\"?\"}),/*#__PURE__*/_jsx(\"span\",{style:{color:tokens.muted,fontSize:tokens.bodySize-3},children:occStart&&!occ.fields?.all_day?fmtTime(occStart):\"\"})]},occ.id);})})]})]})}),showOrganizer&&orgName&&/*#__PURE__*/_jsx(InfoRow,{label:\"Organizer\",tokens:tokens,children:orgSite?/*#__PURE__*/_jsx(\"a\",{href:orgSite,target:\"_blank\",rel:\"noopener noreferrer\",style:{color:linkColor,textDecoration:\"underline\"},children:orgName}):orgName}),showOrganizer&&orgSite&&/*#__PURE__*/_jsx(InfoRow,{label:\"Website (for more info)\",tokens:tokens,children:/*#__PURE__*/_jsx(\"a\",{href:orgSite,target:\"_blank\",rel:\"noopener noreferrer\",style:{color:linkColor,textDecoration:\"underline\",wordBreak:\"break-all\"},children:orgSite.replace(/^https?:\\/\\//,\"\").replace(/\\/$/,\"\")})}),showVenue&&(f.is_online||venueRows.length>0||venue)&&/*#__PURE__*/_jsx(InfoRow,{label:\"Venue\",tokens:tokens,children:f.is_online?/* Online event: just the venue name + the Zoom URL *//*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:4},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontWeight:600},children:venue||\"Online (Zoom)\"}),f.registration_url?/*#__PURE__*/_jsxs(\"a\",{href:f.registration_url,target:\"_blank\",rel:\"noopener noreferrer\",style:{color:linkColor,textDecoration:\"underline\",wordBreak:\"break-all\",fontSize:tokens.bodySize-1},children:[\"Join:\",\" \",f.registration_url.replace(/^https?:\\/\\//,\"\")]}):/*#__PURE__*/_jsx(\"span\",{style:{fontSize:tokens.bodySize-2,color:tokens.muted,fontStyle:\"italic\"},children:\"Link provided at registration.\"})]}):venueRows.length>0?/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:10},children:venueRows.map((vd,i)=>/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:2},children:[vd.name&&/*#__PURE__*/_jsx(\"span\",{style:{fontWeight:600},children:vd.name}),vd.addressLine&&/*#__PURE__*/_jsx(\"span\",{children:vd.addressLine}),vd.cityStateZip&&/*#__PURE__*/_jsx(\"span\",{children:vd.cityStateZip}),vd.mapUrl&&/*#__PURE__*/_jsx(\"a\",{href:vd.mapUrl,target:\"_blank\",rel:\"noopener noreferrer\",style:{color:linkColor,textDecoration:\"underline\",fontSize:tokens.bodySize-2,marginTop:2,alignSelf:\"flex-start\"},children:\"Get directions ↗\"}),vd.accessibility&&/*#__PURE__*/_jsxs(\"span\",{style:{fontSize:tokens.bodySize-3,color:tokens.muted,fontStyle:\"italic\",marginTop:2},children:[\"Accessibility:\",\" \",vd.accessibility]})]},vd.id||i))}):/* Fallback: no resolved linked record, just the cached name */venue}),showAudience&&audience.length>0&&/*#__PURE__*/_jsx(InfoRow,{label:\"Audience\",tokens:tokens,children:audience.join(\", \")}),showCost&&(f.cost_display||f.cost_member||f.cost_nonmember)&&/*#__PURE__*/_jsxs(InfoRow,{label:\"Cost\",tokens:tokens,children:[f.cost_display,f.cost_member&&` \\xb7 Member: ${f.cost_member}`,f.cost_nonmember&&` \\xb7 Non-member: ${f.cost_nonmember}`]}),(()=>{const flyerUrl=eventFlyerUrl(f);if(!showFlyer||!flyerUrl)return null;return /*#__PURE__*/_jsx(InfoRow,{label:\"Flyer\",tokens:tokens,children:/*#__PURE__*/_jsx(\"a\",{href:flyerUrl,target:\"_blank\",rel:\"noopener noreferrer\",style:{color:linkColor,textDecoration:\"underline\",wordBreak:\"break-all\"},children:\"View flyer ↗\"})});})(),hasRegistration&&/*#__PURE__*/_jsx(InfoRow,{label:\"RSVP / Register\",tokens:tokens,children:/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:4},children:[f.registration_url&&/*#__PURE__*/_jsx(\"a\",{href:f.registration_url,target:\"_blank\",rel:\"noopener noreferrer\",style:{color:linkColor,textDecoration:\"underline\",wordBreak:\"break-all\"},children:f.registration_url.replace(/^https?:\\/\\//,\"\")}),f.registration_phone&&/*#__PURE__*/_jsx(\"a\",{href:`tel:${f.registration_phone.replace(/[^+\\d]/g,\"\")}`,style:{color:linkColor,textDecoration:\"underline\"},children:f.registration_phone}),f.registration_email&&/*#__PURE__*/_jsx(\"a\",{href:`mailto:${f.registration_email}`,style:{color:linkColor,textDecoration:\"underline\"},children:f.registration_email})]})}),hasSubmitter&&/*#__PURE__*/_jsx(InfoRow,{label:\"Posted by\",tokens:tokens,children:/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:4},children:[f.submitter_name&&/*#__PURE__*/_jsx(\"span\",{children:f.submitter_name}),f.submitter_email&&/*#__PURE__*/_jsx(\"a\",{href:`mailto:${f.submitter_email}`,style:{color:linkColor,textDecoration:\"underline\"},children:f.submitter_email}),f.submitter_phone&&/*#__PURE__*/_jsx(\"a\",{href:`tel:${f.submitter_phone.replace(/[^+\\d]/g,\"\")}`,style:{color:linkColor,textDecoration:\"underline\"},children:f.submitter_phone})]})}),showTags&&tags.length>0&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:6,marginTop:8},children:tags.map((tag,i)=>/*#__PURE__*/_jsx(\"span\",{style:{fontSize:tokens.bodySize-3,padding:\"3px 10px\",borderRadius:999,backgroundColor:tokens.surface,border:`1px solid ${tokens.border}`,color:tokens.muted,fontFamily:tokens.font},children:tag},i))})]})]});}// ─── Main Component ───────────────────────────────────────────────────────────\nexport default function CommunityCalendar({// Data\napiBaseUrl=API_DEFAULT_URL,// Heading\nheading=\"Community Calendar\",showHeading=true,headingAlign=\"center\",subheading=\"\",showSubheading=false,// Layout\ncontainerHeight=720,sidebarWidth=320,// Colors\nprimaryColor=\"#4F46E5\",bgColor=\"#FFFFFF\",surfaceColor=\"#F9FAFB\",mutedColor=\"#6B7280\",borderColor=\"#E5E7EB\",todayRingColor=\"#4F46E5\",eventDotColor=\"#4F46E5\",selectedDayBg=\"#EEF2FF\",modalBgColor=\"#FFFFFF\",overlayColor=\"rgba(0,0,0,0.55)\",// Typography\nfontFamily=\"Inter, system-ui, sans-serif\",bodyFontFamily=\"Inter, system-ui, sans-serif\",headingFontSize=28,headingFontWeight=\"700\",headingColor=\"#111827\",bodyFontSize=14,bodyFontWeight=\"400\",bodyTextColor=\"#111827\",// Shape\nborderRadius=16,cellBorderRadius=8,// Filter chip style\nchipFont=\"Inter, system-ui, sans-serif\",chipFontSize=11,chipBorderColor=\"#E5E7EB\",chipTextColor=\"#6B7280\",// Audience chip colors (TRUE = filter is ON, FALSE = filter is OFF)\naudienceActiveBg=\"#EEF2FF\",audienceActiveText=\"#4F46E5\",audienceInactiveBg=\"#FFFFFF\",audienceInactiveText=\"#6B7280\",// Color used for ALL clickable links in the event detail panel: organizer\n// website, event website, registration URL, mailto:, tel:. Defaults to a\n// clear blue so links read as links.\nlinkColor=\"#2563EB\",// Search & filter\nshowSearch=true,showFilters=true,showAudienceFilter=true,// Field toggles (event detail panel)\nshowDescription=true,showTags=true,showVenue=true,showCost=true,showAudience=true,showImage=true,showOrganizer=true,showRegistration=true,showSubmitter=true,showFlyer=true}){const[records,setRecords]=useState([]);const[categoryColors,setCategoryColors]=useState({});const[loading,setLoading]=useState(false);const[fetchError,setFetchError]=useState(null);const resolveFont=(f,fallback=\"Inter, system-ui, sans-serif\")=>f&&typeof f===\"object\"?f.fontFamily||fallback:f||fallback;const resolvedFontFamily=resolveFont(fontFamily);const resolvedBodyFontFamily=resolveFont(bodyFontFamily);const resolvedChipFont=resolveFont(chipFont);const today=new Date;const[year,setYear]=useState(today.getFullYear());const[month,setMonth]=useState(today.getMonth());const[selectedDay,setSelectedDay]=useState(null);const[activeEvent,setActiveEvent]=useState(null);const[panelOpen,setPanelOpen]=useState(false);const[searchQuery,setSearchQuery]=useState(\"\");// Tabs: \"list\" (default, today-forward one-offs) | \"calendar\" (month grid) |\n// \"ongoing\" (recurring series, deduped to one card per series).\n// List + Calendar hide recurring events; Ongoing shows ONLY recurring,\n// deduped by recurrence_series and sorted by next upcoming occurrence.\nconst[activeTab,setActiveTab]=useState(\"list\");const onList=activeTab===\"list\";const onCalendar=activeTab===\"calendar\";const onOngoing=activeTab===\"ongoing\";const[activeCategories,setActiveCategories]=useState(new Set);const[activeAudiences,setActiveAudiences]=useState(new Set);// Mobile only: the search bar + filter chip rows collapse behind a toggle\n// button. Default collapsed; only consulted when mobileFilters is true.\nconst[filtersExpanded,setFiltersExpanded]=useState(false);// ── List view container ref (used for auto-scroll-to-today, NOT for column count) ──\nconst listContainerRef=useRef(null);// ── Container width for responsive day labels + list/ongoing column count ──\n// We watch the always-mounted outer container, not the per-tab inner one,\n// so the column count never goes stale when tabs swap and the inner ref\n// re-points to a different element. listCols is a pure derived value.\nconst containerRef=useRef(null);const[containerWidth,setContainerWidth]=useState(800);useEffect(()=>{const el=containerRef.current;if(!el)return;const ro=new ResizeObserver(entries=>{setContainerWidth(entries[0].contentRect.width);});ro.observe(el);return()=>ro.disconnect();},[]);// Derived 1- / 2-column count for List + Ongoing tabs. Outer container is\n// 80% of page width, then the list region applies 16px of horizontal padding\n// on each side, so the inner list region is ~32px narrower than this value.\n// Threshold of 480 against the outer width therefore lights up 1-column at\n// an inner width around 448 — comfortably biased toward 2 columns on any\n// viewport wider than a phone in portrait.\nconst listCols=containerWidth<480?1:2;// On narrow viewports the search bar + category/audience chip rows eat a lot\n// of vertical space, so they collapse behind a single \"Search & Filters\"\n// toggle button. 600px (against the 80%-width container) captures phones and\n// small tablets in portrait; wider viewports always show the full filter panel.\nconst mobileFilters=containerWidth<600;const dayLabels=containerWidth<420?[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"]:DAY_NAMES;// Trigger slide-in after selectedDay mounts\nuseEffect(()=>{if(selectedDay)requestAnimationFrame(()=>setPanelOpen(true));},[selectedDay]);// Slide out then unmount\nconst closePanel=()=>{setPanelOpen(false);setTimeout(()=>{setSelectedDay(null);setActiveEvent(null);},300);};// ── Fetch events + categories from the Worker proxy ──────────────────────\nuseEffect(()=>{if(!apiBaseUrl){setFetchError(\"Set the API Base URL in the component properties panel.\");return;}setLoading(true);setFetchError(null);Promise.all([fetchJson(`${apiBaseUrl.replace(/\\/+$/,\"\")}/events`),fetchJson(`${apiBaseUrl.replace(/\\/+$/,\"\")}/categories`)]).then(([eventsResp,catsResp])=>{setRecords(Array.isArray(eventsResp?.records)?eventsResp.records:[]);const colors={};for(const rec of catsResp?.records||[]){const f=rec.fields||{};if(f.name&&f[\"Hex Code Color\"]){colors[f.name]=\"#\"+String(f[\"Hex Code Color\"]).trim().replace(/^#/,\"\");}}setCategoryColors(colors);setLoading(false);}).catch(e=>{setFetchError(e.message);setLoading(false);});},[apiBaseUrl]);// ── Unique categories + audiences for chip rows ──────────────────────────\nconst allCategories=Array.from(new Set(records.map(r=>r.fields?.category).filter(Boolean))).sort();const allAudiences=Array.from(new Set(records.flatMap(r=>{const a=r.fields?.audience;return Array.isArray(a)?a:a?[a]:[];}))).sort();// Auto-select all categories + audiences on first load so the component isn't blank\nconst hasAutoSelectedCats=useRef(false);const hasAutoSelectedAuds=useRef(false);useEffect(()=>{if(hasAutoSelectedCats.current||allCategories.length===0)return;setActiveCategories(new Set(allCategories));hasAutoSelectedCats.current=true;},[allCategories.join(\",\")]);useEffect(()=>{if(hasAutoSelectedAuds.current||allAudiences.length===0)return;setActiveAudiences(new Set(allAudiences));hasAutoSelectedAuds.current=true;},[allAudiences.join(\",\")]);const allCatsSelected=allCategories.length>0&&allCategories.every(c=>activeCategories.has(c));const allAudsSelected=allAudiences.length>0&&allAudiences.every(a=>activeAudiences.has(a));// ── Filtering ────────────────────────────────────────────────────────────\n// Calendar view: scope to the displayed month.\n// List view: today-forward, no month scope.\n// Ongoing view: no month scope (uses its own next-upcoming dedup logic).\n// List + Calendar hide recurring events (those appear only in the Ongoing tab).\nconst todayMidnight=new Date(today.getFullYear(),today.getMonth(),today.getDate());// Shared filter logic — category, audience, search, and (optionally) month scope.\n// Used by both filteredRecords (List + Calendar tabs) and the ongoingPrograms\n// derivation below so all three tabs honor the same chip + search state.\nconst passesFilters=(rec,opts)=>{const f=rec.fields||{};// Category filter\nif(activeCategories.size===0)return false;if(!allCatsSelected&&!activeCategories.has(f.category))return false;// Audience filter — AND across rows, OR within audience selections\nif(showAudienceFilter&&!allAudsSelected){if(activeAudiences.size===0)return false;const recAud=Array.isArray(f.audience)?f.audience:f.audience?[f.audience]:[];if(!recAud.some(a=>activeAudiences.has(a)))return false;}const start=parseDate(f.start_datetime);if(!start)return false;// Calendar tab scopes to the displayed month. List + Ongoing do not.\nif(opts.applyMonthScope){if(start.getFullYear()!==year||start.getMonth()!==month)return false;}// Search\nif(searchQuery.trim()){const q=searchQuery.toLowerCase();const haystack=[f.title,f.description,f.venue_name_cached,f.category,organizerName(f),...Array.isArray(f.tags)?f.tags:f.tags?[f.tags]:[],...Array.isArray(f.audience)?f.audience:f.audience?[f.audience]:[]].filter(Boolean).join(\" \").toLowerCase();if(!haystack.includes(q))return false;}return true;};const filteredRecords=records.filter(rec=>{const f=rec.fields||{};// Recurring events live in the Ongoing Programs tab only.\nif(isRecurring(f))return false;return passesFilters(rec,{applyMonthScope:onCalendar});});// ── Ongoing Programs: one card per recurring series, sorted by next upcoming ──\n// The Worker already filters out series PARENT rows, so `records` contains\n// only individual occurrences. Group by recurrence_series[0] and pick the\n// earliest occurrence with start >= now. Series with no future occurrences\n// are intentionally excluded — that matches the literal meaning of \"ongoing\".\nconst ongoingPrograms=(()=>{const now=new Date;const seriesMap=new Map;for(const rec of records){const f=rec.fields||{};if(!isRecurring(f))continue;if(!passesFilters(rec,{applyMonthScope:false}))continue;const start=parseDate(f.start_datetime);if(!start||start<now)continue;const seriesIds=Array.isArray(f.recurrence_series)?f.recurrence_series:[];// Fallback key so events flagged recurring but missing a series link\n// still dedupe sensibly on title.\nconst seriesKey=seriesIds[0]||`no-series-${f.title||rec.id}`;const existing=seriesMap.get(seriesKey);if(!existing){seriesMap.set(seriesKey,rec);continue;}const existingStart=parseDate(existing.fields?.start_datetime);if(existingStart&&start<existingStart)seriesMap.set(seriesKey,rec);}return Array.from(seriesMap.values()).sort((a,b)=>{const da=a.fields?.start_datetime||\"\";const db=b.fields?.start_datetime||\"\";return da<db?-1:da>db?1:0;});})();// Group the deduped Ongoing series by their next-upcoming date so the\n// Ongoing tab renders with the same date-header + divider layout as List.\nconst ongoingDateGroups=[];for(const rec of ongoingPrograms){const d=parseDate(rec.fields?.start_datetime);if(!d)continue;const key=toDateKey(d);const existing=ongoingDateGroups.find(g=>g.key===key);if(existing)existing.events.push(rec);else ongoingDateGroups.push({key,date:d,events:[rec]});}const hasActiveFilter=searchQuery.trim().length>0||activeCategories.size>0&&!allCatsSelected||showAudienceFilter&&activeAudiences.size>0&&!allAudsSelected;// Count of active filter dimensions, shown as a badge on the mobile toggle\n// button so users see at a glance that filters are applied while collapsed.\nconst activeFilterCount=(searchQuery.trim().length>0?1:0)+(activeCategories.size>0&&!allCatsSelected?1:0)+(showAudienceFilter&&activeAudiences.size>0&&!allAudsSelected?1:0);// Whether there's any filter UI worth showing/collapsing at all.\nconst hasFilterUI=showSearch||showFilters&&allCategories.length>0||showAudienceFilter&&allAudiences.length>0;// Index filtered events by date key (for calendar grid dots + selected-day list)\nconst eventsByDay={};for(const rec of filteredRecords){const startStr=rec.fields?.start_datetime;if(!startStr)continue;const d=parseDate(startStr);if(!d)continue;const key=toDateKey(d);if(!eventsByDay[key])eventsByDay[key]=[];eventsByDay[key].push(rec);}// For calendar grid layout\nconst totalDays=daysInMonth(year,month);const leadingBlanks=firstWeekday(year,month);const cells=[...Array(leadingBlanks).fill(null),...Array.from({length:totalDays},(_,i)=>i+1)];const selKey=selectedDay?toDateKey(selectedDay):null;const selEvents=selKey?eventsByDay[selKey]||[]:[];// The explicitly-selected event's date. When an event is opened directly\n// (List/Ongoing card, or a day-list row), `activeEvent` drives the panel —\n// independent of `selEvents`, which only holds the day's NON-recurring\n// events. A recurring event (Ongoing tab) is absent from selEvents, so the\n// panel must key off activeEvent, not selEvents, or its detail never shows.\nconst activeEventStart=activeEvent?parseDate(activeEvent.fields?.start_datetime):null;const tokens={font:resolvedBodyFontFamily,headingFont:resolvedFontFamily,headingColor,bodySize:bodyFontSize,bodyWeight:bodyFontWeight,text:bodyTextColor,muted:mutedColor,border:borderColor,bg:bgColor,surface:surfaceColor,primary:primaryColor};const prevMonth=()=>{setSelectedDay(null);setActiveEvent(null);if(month===0){setMonth(11);setYear(y=>y-1);}else setMonth(m=>m-1);};const nextMonth=()=>{setSelectedDay(null);setActiveEvent(null);if(month===11){setMonth(0);setYear(y=>y+1);}else setMonth(m=>m+1);};const goToday=()=>{setYear(today.getFullYear());setMonth(today.getMonth());setSelectedDay(null);setActiveEvent(null);};const navBtnStyle=(active=false)=>({background:active?primaryColor:\"none\",border:`1px solid ${active?primaryColor:borderColor}`,borderRadius:8,padding:\"4px 14px\",cursor:\"pointer\",fontSize:bodyFontSize-1,color:active?\"#fff\":bodyTextColor,fontFamily:resolvedBodyFontFamily,fontWeight:active?700:400,height:28,whiteSpace:\"nowrap\",transition:\"all 0.15s\"});// ── Build sorted date groups for list view (today-forward) ───────────────\nconst sortedRecords=[...filteredRecords].sort((a,b)=>{const da=a.fields?.start_datetime||\"\";const db=b.fields?.start_datetime||\"\";return da<db?-1:da>db?1:0;});const dateGroups=[];for(const rec of sortedRecords){const d=parseDate(rec.fields?.start_datetime);if(!d)continue;const key=toDateKey(d);const existing=dateGroups.find(g=>g.key===key);if(existing)existing.events.push(rec);else dateGroups.push({key,date:d,events:[rec]});}// ── Auto-scroll list view to today (or next date >= today) ───────────────\n// Robust to \"today has no events\" — scrolls to the first date group whose\n// date is on or after today. Fires once per list-view-open or filter change.\nconst todayKey=toDateKey(today);const firstGroupKey=dateGroups[0]?.key||\"\";useEffect(()=>{// Only the List tab has dateGroups + the auto-scroll-to-today affordance.\n// Calendar uses its own grid; Ongoing has a flat list with no date headers.\nif(!onList)return;const container=listContainerRef.current;if(!container)return;// Defer to next frame so DOM headers are in place\nconst timer=setTimeout(()=>{// Find anchor: today's key, else first group with date >= today's midnight\nlet anchor=container.querySelector(`[data-datekey=\"${todayKey}\"]`);if(!anchor){for(const g of dateGroups){if(g.date>=todayMidnight){anchor=container.querySelector(`[data-datekey=\"${g.key}\"]`);if(anchor)break;}}}if(!anchor)return;const containerRect=container.getBoundingClientRect();const targetRect=anchor.getBoundingClientRect();const scrollTarget=container.scrollTop+(targetRect.top-containerRect.top)-8;container.scrollTo({top:Math.max(0,scrollTarget),behavior:\"smooth\"});},140);return()=>clearTimeout(timer);// Re-run when list opens, today changes, the first visible group changes,\n// or filters change the date set.\n// eslint-disable-next-line react-hooks/exhaustive-deps\n},[onList,todayKey,firstGroupKey,hasActiveFilter]);// ─── Render ──────────────────────────────────────────────────────────────\nreturn /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{fontFamily:resolvedBodyFontFamily,color:bodyTextColor,backgroundColor:bgColor,borderRadius,width:\"80%\",height:containerHeight,margin:\"0 auto\",boxSizing:\"border-box\",display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",position:\"relative\",border:`1px solid ${borderColor}`,textAlign:\"left\"},children:[showHeading&&/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"22px 20px 18px\",borderBottom:`1px solid ${borderColor}`,width:\"100%\",boxSizing:\"border-box\",flexShrink:0},children:[/*#__PURE__*/_jsx(\"h1\",{style:{margin:0,fontSize:headingFontSize,fontWeight:headingFontWeight,color:headingColor,fontFamily:resolvedFontFamily,lineHeight:1.15,textAlign:headingAlign,width:\"100%\"},children:heading}),showSubheading&&subheading&&/*#__PURE__*/_jsx(\"p\",{style:{margin:\"5px 0 0\",color:mutedColor,fontSize:14,fontFamily:resolvedBodyFontFamily,textAlign:headingAlign},children:subheading})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:8,padding:\"12px 16px\",borderBottom:`1px solid ${borderColor}`,boxSizing:\"border-box\",flexShrink:0},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:8},children:[/*#__PURE__*/_jsx(\"button\",{onClick:prevMonth,disabled:!onCalendar,style:{background:\"none\",border:`1px solid ${borderColor}`,borderRadius:8,width:30,height:30,cursor:onCalendar?\"pointer\":\"default\",opacity:onCalendar?1:.4,fontSize:16,color:bodyTextColor,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0},children:\"‹\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:15,fontWeight:700,fontFamily:resolvedFontFamily,color:headingColor,whiteSpace:\"nowrap\",userSelect:\"none\",minWidth:120,textAlign:\"center\",opacity:onCalendar?1:.5},children:onCalendar?`${MONTH_NAMES[month]} ${year}`:onOngoing?\"Ongoing programs\":\"All events\"}),/*#__PURE__*/_jsx(\"button\",{onClick:nextMonth,disabled:!onCalendar,style:{background:\"none\",border:`1px solid ${borderColor}`,borderRadius:8,width:30,height:30,cursor:onCalendar?\"pointer\":\"default\",opacity:onCalendar?1:.4,fontSize:16,color:bodyTextColor,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0},children:\"›\"})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:6,alignItems:\"center\",flexWrap:\"wrap\"},children:[/*#__PURE__*/_jsx(\"button\",{onClick:goToday,style:navBtnStyle(),children:\"Today\"}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",border:`1px solid ${borderColor}`,borderRadius:8,overflow:\"hidden\"},children:[/*#__PURE__*/_jsx(\"button\",{onClick:()=>setActiveTab(\"list\"),style:{background:onList?primaryColor:\"transparent\",border:\"none\",borderRight:`1px solid ${borderColor}`,padding:\"4px 14px\",cursor:\"pointer\",fontSize:bodyFontSize-1,color:onList?\"#fff\":bodyTextColor,fontFamily:resolvedBodyFontFamily,fontWeight:onList?700:400,height:28,whiteSpace:\"nowrap\",transition:\"all 0.15s\"},children:\"List\"}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>setActiveTab(\"calendar\"),style:{background:onCalendar?primaryColor:\"transparent\",border:\"none\",borderRight:`1px solid ${borderColor}`,padding:\"4px 14px\",cursor:\"pointer\",fontSize:bodyFontSize-1,color:onCalendar?\"#fff\":bodyTextColor,fontFamily:resolvedBodyFontFamily,fontWeight:onCalendar?700:400,height:28,whiteSpace:\"nowrap\",transition:\"all 0.15s\"},children:\"Calendar\"}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>setActiveTab(\"ongoing\"),style:{background:onOngoing?primaryColor:\"transparent\",border:\"none\",padding:\"4px 14px\",cursor:\"pointer\",fontSize:bodyFontSize-1,color:onOngoing?\"#fff\":bodyTextColor,fontFamily:resolvedBodyFontFamily,fontWeight:onOngoing?700:400,height:28,whiteSpace:\"nowrap\",transition:\"all 0.15s\"},children:containerWidth<480?\"Ongoing\":\"Ongoing Programs\"})]})]})]}),mobileFilters&&hasFilterUI&&/*#__PURE__*/_jsx(\"div\",{style:{padding:\"10px 16px\",borderBottom:filtersExpanded?\"none\":`1px solid ${borderColor}`,flexShrink:0},children:/*#__PURE__*/_jsxs(\"button\",{onClick:()=>setFiltersExpanded(o=>!o),\"aria-expanded\":filtersExpanded,style:{width:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",gap:8,backgroundColor:surfaceColor,border:`1px solid ${activeFilterCount>0||filtersExpanded?primaryColor:borderColor}`,borderRadius:8,padding:\"9px 14px\",cursor:\"pointer\",fontFamily:resolvedBodyFontFamily,fontSize:bodyFontSize-1,fontWeight:700,color:bodyTextColor,transition:\"border-color 0.15s\"},children:[/*#__PURE__*/_jsxs(\"span\",{style:{display:\"flex\",alignItems:\"center\",gap:8,minWidth:0},children:[/*#__PURE__*/_jsx(\"svg\",{width:\"13\",height:\"13\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",style:{flexShrink:0,color:mutedColor},children:/*#__PURE__*/_jsx(\"polygon\",{points:\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\"})}),/*#__PURE__*/_jsx(\"span\",{children:\"Search & Filters\"}),activeFilterCount>0&&/*#__PURE__*/_jsx(\"span\",{style:{fontSize:chipFontSize-1,fontWeight:700,minWidth:18,height:18,padding:\"0 5px\",borderRadius:999,backgroundColor:primaryColor,color:\"#fff\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",lineHeight:1,flexShrink:0},children:activeFilterCount})]}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:11,color:mutedColor,lineHeight:1,flexShrink:0,transition:\"transform 0.15s\",transform:filtersExpanded?\"rotate(180deg)\":\"none\"},children:\"▼\"})]})}),(!mobileFilters||filtersExpanded)&&/*#__PURE__*/_jsxs(_Fragment,{children:[showSearch&&/*#__PURE__*/_jsx(\"div\",{style:{padding:\"10px 16px\",borderBottom:allCategories.length>0&&showFilters||allAudiences.length>0&&showAudienceFilter?\"none\":`1px solid ${borderColor}`,flexShrink:0},children:/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:8,backgroundColor:surfaceColor,borderRadius:8,padding:\"7px 12px\",border:`1px solid ${searchQuery?primaryColor:borderColor}`,transition:\"border-color 0.15s\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{color:mutedColor,fontSize:15,lineHeight:1,flexShrink:0},children:\"⌕\"}),/*#__PURE__*/_jsx(\"input\",{value:searchQuery,onChange:e=>setSearchQuery(e.target.value),placeholder:\"Search events…\",style:{border:\"none\",background:\"none\",flex:1,fontSize:bodyFontSize-1,color:bodyTextColor,fontFamily:resolvedBodyFontFamily,outline:\"none\",minWidth:0}}),searchQuery&&/*#__PURE__*/_jsx(\"button\",{onClick:()=>setSearchQuery(\"\"),style:{background:\"none\",border:\"none\",cursor:\"pointer\",color:mutedColor,fontSize:16,lineHeight:1,padding:0,flexShrink:0},children:\"\\xd7\"})]})}),showFilters&&allCategories.length>0&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",justifyContent:\"center\",gap:6,padding:\"8px 16px 8px\",borderBottom:showAudienceFilter&&allAudiences.length>0?\"none\":`1px solid ${borderColor}`,flexShrink:0},children:[/*#__PURE__*/_jsx(\"button\",{onClick:()=>setActiveCategories(allCatsSelected?new Set:new Set(allCategories)),style:{padding:\"4px 14px\",borderRadius:999,border:`1.5px solid ${allCatsSelected?primaryColor:chipBorderColor}`,backgroundColor:allCatsSelected?primaryColor+\"18\":\"transparent\",color:allCatsSelected?primaryColor:chipTextColor,fontSize:chipFontSize,fontWeight:700,cursor:\"pointer\",whiteSpace:\"nowrap\",fontFamily:resolvedChipFont,flexShrink:0,transition:\"color 0.15s, border-color 0.15s, background-color 0.15s\"},children:\"All categories\"}),allCategories.map(cat=>{const active=activeCategories.has(cat);const color=catColor(cat,primaryColor,categoryColors);return /*#__PURE__*/_jsx(\"button\",{onClick:()=>{const next=new Set(activeCategories);if(active)next.delete(cat);else next.add(cat);setActiveCategories(next);},style:{padding:\"4px 12px\",borderRadius:999,border:`1.5px solid ${active?color:chipBorderColor}`,backgroundColor:active?color+\"22\":\"transparent\",color:active?color:chipTextColor,fontSize:chipFontSize,fontWeight:700,cursor:\"pointer\",whiteSpace:\"nowrap\",fontFamily:resolvedChipFont,flexShrink:0,transition:\"color 0.15s, border-color 0.15s, background-color 0.15s\"},children:cat},cat);})]}),showAudienceFilter&&allAudiences.length>0&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",justifyContent:\"center\",gap:6,padding:\"4px 16px 10px\",borderBottom:`1px solid ${borderColor}`,flexShrink:0},children:[/*#__PURE__*/_jsx(\"button\",{onClick:()=>setActiveAudiences(allAudsSelected?new Set:new Set(allAudiences)),style:{padding:\"3px 12px\",borderRadius:999,border:`1.5px solid ${allAudsSelected?audienceActiveText:audienceInactiveText}`,backgroundColor:allAudsSelected?audienceActiveBg:audienceInactiveBg,color:allAudsSelected?audienceActiveText:audienceInactiveText,fontSize:chipFontSize-1,fontWeight:700,cursor:\"pointer\",whiteSpace:\"nowrap\",fontFamily:resolvedChipFont,flexShrink:0,transition:\"color 0.15s, border-color 0.15s, background-color 0.15s\"},children:\"All audiences\"}),allAudiences.map(aud=>{const active=activeAudiences.has(aud);return /*#__PURE__*/_jsx(\"button\",{onClick:()=>{const next=new Set(activeAudiences);if(active)next.delete(aud);else next.add(aud);setActiveAudiences(next);},style:{padding:\"3px 10px\",borderRadius:999,border:`1.5px solid ${active?audienceActiveText:audienceInactiveText}`,backgroundColor:active?audienceActiveBg:audienceInactiveBg,color:active?audienceActiveText:audienceInactiveText,fontSize:chipFontSize-1,fontWeight:700,cursor:\"pointer\",whiteSpace:\"nowrap\",fontFamily:resolvedChipFont,flexShrink:0,transition:\"color 0.15s, border-color 0.15s, background-color 0.15s\"},children:aud},aud);})]})]}),hasActiveFilter&&/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"4px 16px 6px\",display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",gap:8,flexShrink:0},children:[/*#__PURE__*/_jsxs(\"span\",{style:{fontSize:bodyFontSize-3,color:mutedColor,fontFamily:resolvedBodyFontFamily},children:[filteredRecords.length,\" of \",records.length,\" events\"]}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>{setSearchQuery(\"\");setActiveCategories(new Set(allCategories));setActiveAudiences(new Set(allAudiences));},style:{background:\"none\",border:\"none\",cursor:\"pointer\",fontSize:bodyFontSize-3,color:primaryColor,fontFamily:resolvedBodyFontFamily,fontWeight:600,padding:0},children:\"Clear filters\"})]}),onList&&/*#__PURE__*/_jsx(\"div\",{ref:listContainerRef,style:{flex:1,minHeight:0,overflowY:\"auto\",overflowX:\"hidden\",padding:\"12px 16px 24px\"},children:dateGroups.length===0?// When a filter excludes everything, tell the user why.\n// With no filter active we render nothing rather than a\n// \"No events found.\" placeholder (cleaner empty calendar).\nhasActiveFilter?/*#__PURE__*/_jsx(\"p\",{style:{color:mutedColor,textAlign:\"center\",fontSize:bodyFontSize,fontFamily:resolvedBodyFontFamily,padding:\"32px 0\",margin:0},children:\"No events match your filters.\"}):null:dateGroups.map(({key,date,events},groupIdx)=>/*#__PURE__*/_jsxs(\"div\",{\"data-datekey\":key,style:{marginBottom:groupIdx<dateGroups.length-1?20:0},children:[/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:bodyFontSize+1,fontWeight:700,color:sameDay(date,today)?primaryColor:headingColor,fontFamily:resolvedFontFamily,paddingBottom:6},children:[fmtDateLong(date),sameDay(date,today)&&/*#__PURE__*/_jsx(\"span\",{style:{fontSize:10,fontWeight:700,marginLeft:8,padding:\"2px 8px\",borderRadius:999,backgroundColor:primaryColor+\"20\",color:primaryColor,letterSpacing:\"0.06em\",textTransform:\"uppercase\",verticalAlign:\"middle\"},children:\"Today\"})]}),/*#__PURE__*/_jsx(\"div\",{style:{height:1,backgroundColor:borderColor,marginBottom:10}}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"grid\",gridTemplateColumns:`repeat(${listCols}, 1fr)`,gap:8,alignItems:\"start\"},children:events.map(ev=>{const evDate=parseDate(ev.fields?.start_datetime);return /*#__PURE__*/_jsx(EventCard,{event:ev,tokens:tokens,primaryColor:primaryColor,radius:cellBorderRadius,categoryColors:categoryColors,inList:true,showDescription:showDescription,showImage:showImage,narrow:containerWidth<480,onClick:()=>{if(evDate){setSelectedDay(evDate);setActiveEvent(ev);}}},ev.id);})})]},key))}),onOngoing&&/*#__PURE__*/_jsx(\"div\",{ref:listContainerRef,style:{flex:1,minHeight:0,overflowY:\"auto\",overflowX:\"hidden\",padding:\"12px 16px 24px\"},children:ongoingDateGroups.length===0?/*#__PURE__*/_jsx(\"p\",{style:{color:mutedColor,textAlign:\"center\",fontSize:bodyFontSize,fontFamily:resolvedBodyFontFamily,padding:\"32px 0\",margin:0},children:hasActiveFilter?\"No ongoing programs match your filters.\":\"No ongoing programs found.\"}):ongoingDateGroups.map(({key,date,events},groupIdx)=>/*#__PURE__*/_jsxs(\"div\",{\"data-datekey\":key,style:{marginBottom:groupIdx<ongoingDateGroups.length-1?20:0},children:[/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:bodyFontSize+1,fontWeight:700,color:sameDay(date,today)?primaryColor:headingColor,fontFamily:resolvedFontFamily,paddingBottom:6},children:[fmtDateLong(date),sameDay(date,today)&&/*#__PURE__*/_jsx(\"span\",{style:{fontSize:10,fontWeight:700,marginLeft:8,padding:\"2px 8px\",borderRadius:999,backgroundColor:primaryColor+\"20\",color:primaryColor,letterSpacing:\"0.06em\",textTransform:\"uppercase\",verticalAlign:\"middle\"},children:\"Today\"})]}),/*#__PURE__*/_jsx(\"div\",{style:{height:1,backgroundColor:borderColor,marginBottom:10}}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"grid\",gridTemplateColumns:`repeat(${listCols}, 1fr)`,gap:8,alignItems:\"start\"},children:events.map(ev=>{const evDate=parseDate(ev.fields?.start_datetime);return /*#__PURE__*/_jsx(EventCard,{event:ev,tokens:tokens,primaryColor:primaryColor,radius:cellBorderRadius,categoryColors:categoryColors,inList:true,showDescription:showDescription,showImage:showImage,narrow:containerWidth<480,onClick:()=>{if(evDate){setSelectedDay(evDate);setActiveEvent(ev);}}},ev.id);})})]},key))}),onCalendar&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"grid\",gridTemplateColumns:\"repeat(7, 1fr)\",padding:\"10px 16px 4px\",gap:4,flexShrink:0},children:dayLabels.map((d,i)=>/*#__PURE__*/_jsx(\"div\",{style:{textAlign:\"center\",fontSize:11,fontWeight:700,color:mutedColor,fontFamily:resolvedBodyFontFamily,textTransform:\"uppercase\",letterSpacing:\"0.06em\",padding:\"2px 0\"},children:d},i))}),onCalendar&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"grid\",gridTemplateColumns:\"repeat(7, 1fr)\",gap:4,padding:\"2px 12px 16px\",flex:1,minHeight:0,overflowY:\"auto\"},children:cells.map((day,i)=>{if(!day)return /*#__PURE__*/_jsx(\"div\",{},`blank-${i}`);const cellDate=new Date(year,month,day);const key=toDateKey(cellDate);const dayEvents=eventsByDay[key]||[];const isToday=sameDay(cellDate,today);const isSelected=selectedDay!=null&&sameDay(cellDate,selectedDay);const hasEvents=dayEvents.length>0;return /*#__PURE__*/_jsxs(\"div\",{onClick:()=>{setSelectedDay(cellDate);setActiveEvent(null);},style:{borderRadius:cellBorderRadius,padding:\"6px 4px 8px\",minHeight:58,cursor:hasEvents?\"pointer\":\"default\",backgroundColor:isSelected?selectedDayBg:\"transparent\",border:isToday?`2px solid ${todayRingColor}`:\"2px solid transparent\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",gap:5,transition:\"background 0.12s\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:13,fontWeight:isToday?800:400,color:isToday?primaryColor:bodyTextColor,width:26,height:26,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",borderRadius:\"50%\",fontFamily:resolvedBodyFontFamily,flexShrink:0},children:day}),hasEvents&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:2,flexWrap:\"wrap\",justifyContent:\"center\",maxWidth:36},children:[dayEvents.slice(0,3).map((ev,idx)=>/*#__PURE__*/_jsx(\"span\",{style:{width:6,height:6,borderRadius:\"50%\",backgroundColor:catColor(ev.fields?.category,eventDotColor,categoryColors),display:\"inline-block\",flexShrink:0}},idx)),dayEvents.length>3&&/*#__PURE__*/_jsxs(\"span\",{style:{fontSize:9,color:mutedColor,lineHeight:\"6px\",fontFamily:resolvedBodyFontFamily},children:[\"+\",dayEvents.length-3]})]})]},key);})}),loading&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",backgroundColor:bgColor+\"cc\",fontSize:bodyFontSize,color:mutedColor,fontFamily:resolvedBodyFontFamily,borderRadius},children:\"Loading events…\"}),!loading&&fetchError&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",bottom:16,left:16,right:16,backgroundColor:\"#FEF2F2\",border:\"1px solid #FECACA\",borderRadius:8,padding:\"10px 14px\",fontSize:12,color:\"#B91C1C\",fontFamily:resolvedBodyFontFamily,zIndex:5},children:fetchError}),selectedDay&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{onClick:closePanel,style:{position:\"absolute\",inset:0,backgroundColor:overlayColor,zIndex:20,borderRadius,opacity:panelOpen?1:0,transition:\"opacity 0.3s ease\"}}),/*#__PURE__*/_jsxs(\"div\",{onClick:e=>e.stopPropagation(),style:{position:\"absolute\",top:0,right:0,height:\"100%\",width:`min(${sidebarWidth}px, 100%)`,backgroundColor:modalBgColor,display:\"flex\",flexDirection:\"column\",zIndex:21,transform:panelOpen?\"translateX(0)\":\"translateX(100%)\",transition:\"transform 0.3s cubic-bezier(0.32, 0.72, 0, 1)\",boxShadow:\"-8px 0 32px rgba(0,0,0,0.18)\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"14px 16px 12px\",borderBottom:`1px solid ${borderColor}`,display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",flexShrink:0},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:bodyFontSize-2,color:mutedColor,fontFamily:resolvedBodyFontFamily},children:activeEvent?activeEventStart?fmtDateLong(activeEventStart):\"Event details\":selEvents.length===0?\"No events\":`${selEvents.length} event${selEvents.length!==1?\"s\":\"\"}`}),/*#__PURE__*/_jsx(\"button\",{onClick:closePanel,style:{background:\"none\",border:\"none\",cursor:\"pointer\",fontSize:22,color:mutedColor,padding:\"2px 6px\",borderRadius:6,lineHeight:1,flexShrink:0},children:\"\\xd7\"})]}),/*#__PURE__*/_jsx(\"div\",{style:{overflowY:\"auto\",padding:\"16px 16px 24px\",flex:1,minHeight:0},children:!activeEvent&&selEvents.length===0?/*#__PURE__*/_jsx(\"p\",{style:{color:mutedColor,textAlign:\"center\",fontSize:bodyFontSize,fontFamily:resolvedBodyFontFamily,padding:\"32px 0\",margin:0},children:hasActiveFilter?\"No matching events for this day.\":\"No events scheduled for this day.\"}):activeEvent?/*#__PURE__*/_jsx(EventDetail,{event:activeEvent,tokens:tokens,primaryColor:primaryColor,linkColor:linkColor,allEvents:records,onSelectEvent:ev=>{const d=parseDate(ev.fields?.start_datetime);if(d)setSelectedDay(d);setActiveEvent(ev);},showDescription:showDescription,showTags:showTags,showVenue:showVenue,showCost:showCost,showAudience:showAudience,showImage:showImage,showOrganizer:showOrganizer,showRegistration:showRegistration,showSubmitter:showSubmitter,showFlyer:showFlyer,radius:cellBorderRadius,categoryColors:categoryColors,onBack:()=>setActiveEvent(null)}):/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:bodyFontSize+4,fontWeight:700,color:headingColor,fontFamily:resolvedFontFamily,lineHeight:1.2,marginBottom:10},children:fmtDateLong(selectedDay)}),/*#__PURE__*/_jsx(\"div\",{style:{height:1,backgroundColor:borderColor,marginBottom:14}}),selEvents.map((ev,idx)=>/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(EventCard,{event:ev,tokens:tokens,primaryColor:primaryColor,radius:cellBorderRadius,categoryColors:categoryColors,showImage:showImage,narrow:containerWidth<480,onClick:()=>setActiveEvent(ev)}),idx<selEvents.length-1&&/*#__PURE__*/_jsx(\"div\",{style:{height:1,backgroundColor:borderColor,margin:\"10px 0\"}})]},ev.id))]})})]})]})]});}// ─── Framer Prop Controls ─────────────────────────────────────────────────────\naddPropertyControls(CommunityCalendar,{apiBaseUrl:{type:ControlType.String,title:\"API URL\",defaultValue:API_DEFAULT_URL,placeholder:\"https://jw-events-api.eric-belozovsky.workers.dev\",description:\"Base URL of the jw-events-api Cloudflare Worker. The Worker holds the Airtable PAT; the browser never sees it. Default is the production deployment.\"},// Heading\nshowHeading:{type:ControlType.Boolean,title:\"Show Heading\",defaultValue:true},heading:{type:ControlType.String,title:\"Heading\",defaultValue:\"Community Calendar\",hidden:props=>!props.showHeading},headingAlign:{type:ControlType.Enum,title:\"Heading Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"center\",displaySegmentedControl:true,hidden:props=>!props.showHeading},showSubheading:{type:ControlType.Boolean,title:\"Subheading\",defaultValue:false,hidden:props=>!props.showHeading},subheading:{type:ControlType.String,title:\"Subheading Text\",defaultValue:\"\",hidden:props=>!props.showHeading||!props.showSubheading},// Layout\ncontainerHeight:{type:ControlType.Number,title:\"Container Height\",defaultValue:720,min:320,max:1600,step:10,displayStepper:true,unit:\"px\",description:\"Fixed height of the calendar. Both List and Calendar views scroll internally to fit.\"},sidebarWidth:{type:ControlType.Number,title:\"Sidebar Width\",defaultValue:320,min:200,max:600,step:4,displayStepper:true,unit:\"px\",description:\"Max width of the event sidebar. Caps at 100% on small screens.\"},// Typography\nfontFamily:{type:ControlType.Font,title:\"Heading Font\",controls:\"basic\",defaultValue:{fontFamily:\"Inter\"}},headingFontSize:{type:ControlType.Number,title:\"Heading Size\",defaultValue:28,min:10,max:72,step:1,displayStepper:true,unit:\"px\",hidden:props=>!props.showHeading},headingFontWeight:{type:ControlType.Enum,title:\"Heading Weight\",options:[\"400\",\"500\",\"600\",\"700\",\"800\",\"900\"],optionTitles:[\"Regular\",\"Medium\",\"SemiBold\",\"Bold\",\"ExtraBold\",\"Black\"],defaultValue:\"700\",hidden:props=>!props.showHeading},headingColor:{type:ControlType.Color,title:\"Heading Color\",defaultValue:\"#111827\"},bodyFontFamily:{type:ControlType.Font,title:\"Body Font\",controls:\"basic\",defaultValue:{fontFamily:\"Inter\"}},bodyFontSize:{type:ControlType.Number,title:\"Body Size\",defaultValue:14,min:10,max:24,step:1,displayStepper:true,unit:\"px\"},bodyFontWeight:{type:ControlType.Enum,title:\"Body Weight\",options:[\"400\",\"500\",\"600\",\"700\"],optionTitles:[\"Regular\",\"Medium\",\"SemiBold\",\"Bold\"],defaultValue:\"400\"},bodyTextColor:{type:ControlType.Color,title:\"Body Text Color\",defaultValue:\"#111827\"},// Colors\nprimaryColor:{type:ControlType.Color,title:\"Primary\",defaultValue:\"#4F46E5\"},bgColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"},surfaceColor:{type:ControlType.Color,title:\"Surface\",defaultValue:\"#F9FAFB\"},mutedColor:{type:ControlType.Color,title:\"Muted Text\",defaultValue:\"#6B7280\"},borderColor:{type:ControlType.Color,title:\"Border\",defaultValue:\"#E5E7EB\"},todayRingColor:{type:ControlType.Color,title:\"Today Ring\",defaultValue:\"#4F46E5\"},eventDotColor:{type:ControlType.Color,title:\"Event Dot\",defaultValue:\"#4F46E5\"},selectedDayBg:{type:ControlType.Color,title:\"Selected Day\",defaultValue:\"#EEF2FF\"},modalBgColor:{type:ControlType.Color,title:\"Modal BG\",defaultValue:\"#FFFFFF\"},overlayColor:{type:ControlType.Color,title:\"Overlay\",defaultValue:\"rgba(0,0,0,0.55)\"},// Shape\nborderRadius:{type:ControlType.Number,title:\"Corner Radius\",defaultValue:16,min:0,max:48,step:1,displayStepper:true,unit:\"px\"},cellBorderRadius:{type:ControlType.Number,title:\"Cell Radius\",defaultValue:8,min:0,max:24,step:1,displayStepper:true,unit:\"px\"},// Search & Filter\nshowSearch:{type:ControlType.Boolean,title:\"Search Bar\",defaultValue:true},showFilters:{type:ControlType.Boolean,title:\"Category Filter\",defaultValue:true},showAudienceFilter:{type:ControlType.Boolean,title:\"Audience Filter\",defaultValue:true},// Filter Chip Style\nchipFont:{type:ControlType.Font,title:\"Chip Font\",controls:\"basic\",defaultValue:{fontFamily:\"Inter\"},hidden:props=>!props.showFilters&&!props.showAudienceFilter},chipFontSize:{type:ControlType.Number,title:\"Chip Size\",defaultValue:11,min:8,max:18,step:1,displayStepper:true,unit:\"px\",hidden:props=>!props.showFilters&&!props.showAudienceFilter},chipBorderColor:{type:ControlType.Color,title:\"Chip Border\",defaultValue:\"#E5E7EB\",hidden:props=>!props.showFilters&&!props.showAudienceFilter},chipTextColor:{type:ControlType.Color,title:\"Chip Text\",defaultValue:\"#6B7280\",hidden:props=>!props.showFilters&&!props.showAudienceFilter},// Audience chip colors (TRUE = filter ON, FALSE = filter OFF)\naudienceActiveBg:{type:ControlType.Color,title:\"Audience On BG\",defaultValue:\"#EEF2FF\",description:\"Background when the audience filter chip is ON (TRUE).\",hidden:props=>!props.showAudienceFilter},audienceActiveText:{type:ControlType.Color,title:\"Audience On Text\",defaultValue:\"#4F46E5\",description:\"Text + border color when the audience filter chip is ON (TRUE).\",hidden:props=>!props.showAudienceFilter},audienceInactiveBg:{type:ControlType.Color,title:\"Audience Off BG\",defaultValue:\"#FFFFFF\",description:\"Background when the audience filter chip is OFF (FALSE).\",hidden:props=>!props.showAudienceFilter},audienceInactiveText:{type:ControlType.Color,title:\"Audience Off Text\",defaultValue:\"#6B7280\",description:\"Text + border color when the audience filter chip is OFF (FALSE).\",hidden:props=>!props.showAudienceFilter},// Link color (applies to every clickable text in the event detail panel)\nlinkColor:{type:ControlType.Color,title:\"Link Color\",defaultValue:\"#2563EB\",description:\"Color of clickable links in the expanded event sidebar — website, RSVP URL, email (mailto:), phone (tel:). Defaults to a clear blue.\"},// Event detail fields\nshowDescription:{type:ControlType.Boolean,title:\"Description\",defaultValue:true},showImage:{type:ControlType.Boolean,title:\"Image\",defaultValue:true},showOrganizer:{type:ControlType.Boolean,title:\"Organizer\",defaultValue:true},showVenue:{type:ControlType.Boolean,title:\"Venue\",defaultValue:true},showAudience:{type:ControlType.Boolean,title:\"Audience\",defaultValue:true},showCost:{type:ControlType.Boolean,title:\"Cost\",defaultValue:true},showFlyer:{type:ControlType.Boolean,title:\"Flyer Link\",defaultValue:true},showRegistration:{type:ControlType.Boolean,title:\"Registration\",defaultValue:true},showSubmitter:{type:ControlType.Boolean,title:\"Posted-by Contact\",defaultValue:true},showTags:{type:ControlType.Boolean,title:\"Tags\",defaultValue:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CommunityCalendar\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CommunityCalendar.map"],"mappings":"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"}