{"version":3,"file":"CommunityCalendar.BxLkZtHv.mjs","names":["useState","_Fragment","useRef","__esmMin","init_npm_react_18_3_1","ce","init_jsx_runtime","c","p","_e","de","addPropertyControls","ControlType","init_framer_CaDWdxiz","isCrossListMarker","CROSS_LIST_MARKERS","tag","isCrossListed","f","visibleTags","x","daysInMonth","y","m","firstWeekday","sameDay","a","b","toDateKey","d","parseDate","str","fmtTime","fmtDateLong","fmtDateShort","catColor","overrides","category","CATEGORY_PALETTE","fallback","eventImageUrl","att","size","eventFlyerUrl","isRecurring","siblingsInSeries","seriesIds","event","myId","allEvents","r","id","da","db","organizerName","o","organizerSite","resolved","venueDisplay","v","venueDetails","cityStateZip","vd","fetchJson","url","body","renderRich","text","rules","linkColor","kids","key","k","out","rest","guard","best","rule","EventCard","start","color","primaryColor","categoryColors","thumb","showImage","venue","recurring","recurringLabel","radius","inList","tokens","narrow","showDescription","InfoRow","label","EventDetail","end","tags","audience","heroImage","venueRows","orgName","orgSite","siblings","seriesOpen","setSeriesOpen","backLabel","hasRegistration","showRegistration","hasSubmitter","showSubmitter","onBack","l","occStart","occ","onSelectEvent","idx","showOrganizer","showVenue","i","showAudience","showCost","flyerUrl","showFlyer","showTags","CommunityCalendar","API_DEFAULT_URL","records","setRecords","activeScope","setActiveScope","calendarScope","inScope","isArts","scopedRecords","setCategoryColors","loading","setLoading","fetchError","setFetchError","resolveFont","resolvedFontFamily","fontFamily","resolvedBodyFontFamily","bodyFontFamily","resolvedChipFont","chipFont","today","year","setYear","month","setMonth","selectedDay","setSelectedDay","activeEvent","setActiveEvent","panelOpen","setPanelOpen","searchQuery","setSearchQuery","activeTab","setActiveTab","onList","onCalendar","onOngoing","activeCategories","setActiveCategories","activeAudiences","setActiveAudiences","filtersExpanded","setFiltersExpanded","listContainerRef","goTodayNonce","setGoTodayNonce","containerRef","containerWidth","setContainerWidth","el","ro","entries","listCols","mobileFilters","dayLabels","DAY_NAMES","closePanel","apiBaseUrl","eventsResp","catsResp","colors","rec","allCategories","allAudiences","hasAutoSelectedCats","hasAutoSelectedAuds","allCatsSelected","allAudsSelected","todayMidnight","passesFilters","showAudienceFilter","opts","q","filteredRecords","ongoingPrograms","now","seriesMap","seriesKey","existing","existingStart","ongoingDateGroups","g","hasActiveFilter","activeFilterCount","hasFilterUI","showSearch","showFilters","eventsByDay","startStr","totalDays","leadingBlanks","cells","selKey","selEvents","activeEventStart","bodyFontSize","bodyFontWeight","bodyTextColor","mutedColor","borderColor","bgColor","surfaceColor","prevMonth","nextMonth","goToday","n","navBtnStyle","active","sortedRecords","dateGroups","todayKey","scrollGroups","firstGroupKey","container","timer","anchor","containerRect","targetRect","scrollTarget","containerHeight","showHeading","headingFontSize","headingFontWeight","headingColor","headingAlign","heading","line","subheading","showScopeToggle","showSubheading","opt","arr","MONTH_NAMES","chipFontSize","chipBorderColor","chipTextColor","cat","next","audienceActiveText","audienceInactiveText","audienceActiveBg","audienceInactiveBg","aud","groupIdx","date","events","evDate","ev","cellBorderRadius","day","cellDate","dayEvents","isToday","isSelected","hasEvents","selectedDayBg","todayRingColor","eventDotColor","overlayColor","sidebarWidth","modalBgColor","init_CommunityCalendar","props"],"sources":["https:/framerusercontent.com/modules/fmEcCbHaWzmhxMAl18YR/fR0cItnbh4XESKBQVHDY/CommunityCalendar.js"],"sourcesContent":["// ─────────────────────────────────────────────────────────────────────────────\n// Community Calendar — Framer Code Component\n// File: Community Events/CommunityCalendar.tsx\n// Last modified: 2026-07-24 EST | Author: Claude (inbox-worker routine, Eric directive)\n// Latest change (Eric, 2026-07-24): TODAY-BUTTON FIX ON THE ONGOING TAB. Eric reported\n//   the \"Today\" button works on the List and Calendar tabs but does nothing on the\n//   Ongoing Programs tab on his iPhone. Root cause: the scroll-to-today useEffect\n//   early-returned `if (!onList)`, so on Ongoing the button only bumped a nonce that\n//   re-fired an effect which then bailed — a dead button. The effect now runs on List\n//   OR Ongoing (both render [data-datekey] anchors since the 2026-05-21 date-grouped\n//   Ongoing layout), scrolling the active list to today / the soonest-upcoming group.\n//   Also added an iOS-robustness fallback (anchor.scrollIntoView, block:\"nearest\") so\n//   the jump works whether the inner overflow:auto div or the page is the scroller on\n//   iOS Safari, without regressing the working desktop/List path. Confirmed live\n//   (pre-fix, dead button) with e2e/scripts/calendar-today-ongoing-diagnose.mjs.\n//   NOTE: needs to be pasted into Framer + Published + tested on a real iPhone (Eric's\n//   Framer Server API push + Publish; code components are not tied to the git branch).\n// Prior change (Jim, 2026-07-19): LISTING TITLES BOLD. Jim asked \"Shouldn't the\n//   titles of the listings in the calendar be in bold type?\" They rendered at\n//   tokens.bodyWeight (400 = normal), so the event title did not stand out from the\n//   date line/description in each list row. The list-card title (EventCard, inList)\n//   is now fontWeight 700, so every listing title is bold across the List tab, the\n//   Ongoing tab, and the tap-a-day event list. The detail-panel title was already\n//   bold. NOTE: needs to be pasted into Framer + tested on a real iPhone (Eric's\n//   Framer Server API push + Publish; code components are not tied to the git branch).\n// Prior change (Jim, 2026-07-18): TODAY-BUTTON FIX. The \"Today\" button did nothing\n//   on the List view (the default tab, and what shows on a phone) because goToday\n//   only reset the month-grid's month/year, which the today-forward list ignores.\n//   Jim reported it \"appears not to work\" on an iPhone. goToday now also bumps a\n//   goTodayNonce so the scroll-to-today effect re-fires and the list jumps back to\n//   today's events. NOTE: needs to be pasted into Framer + tested on a real iPhone.\n// Prior change (Eric, 2026-07-05): Scope-toggle wording + order, and a subline.\n//   (1) Renamed the \"Community\" toggle tab to \"Jewish Community\" (short: \"Jewish\")\n//   — the underlying scope value \"community\" is unchanged; label only. Chose\n//   \"Community\" over \"Events\" because the slice also includes ongoing programs.\n//   (2) Reordered the toggle to Jewish Community / Arts & Culture / All Events\n//   (All Events moved last). Order is display-only; scope logic is value-based.\n//   (3) Turned on the existing subheading (was off/empty) with default text\n//   \"Toggle to see Jewish Community, Arts & Culture, or All Events.\" shown under\n//   the \"Community Calendar\" title. Edited + saved directly via the @framer/agent\n//   CLI (framer.getCodeFile → setFileContent).\n//   (4) FLICKER FIX. The scope toggle AND the view tabs (navBtnStyle) changed the\n//   active tab's fontWeight 400->700, which resized the label and reflowed the row\n//   on every switch — the flicker Eric saw. Weight is now a constant 600 (active\n//   still reads via fill + white text), and transitions target only color props,\n//   not `all`.\n//   (5) SUBLINE RENDER FIX. The subline now renders whenever the scope toggle is\n//   shown, not only when showSubheading is true — a component instance placed\n//   before the subheading feature had showSubheading=false / subheading=\"\" stored\n//   on it, and a code default cannot override an instance's saved prop, so the\n//   line never appeared live. Falls back to the toggle description text.\n// Prior change: Two follow-ups to the Calendar Scope work (Eric, 2026-07-04):\n//   (1) ON-PAGE SCOPE TOGGLE. The calendarScope prop is kept, but it now sets the\n//   INITIAL scope; a new on-page segmented toggle (All Events / Community / Arts &\n//   Culture) lets a viewer switch scope live in the calendar itself, not only via\n//   the Framer property control. Driven by activeScope state (seeded from the prop).\n//   A showScopeToggle prop (default true) hides the toggle on a page that should\n//   stay locked to one scope.\n//   (2) CROSS-LISTING. An event can now appear on BOTH the Community and Arts\n//   calendars by tagging it with a cross-list marker (\"Both Calendars\"). The marker\n//   is a routing signal only: it is stripped from the reader-facing tag chips and\n//   from search so it never shows publicly. Used for the Proctors Free Family Fun\n//   movies (family-friendly arts films that belong on both calendars).\n// Prior (2026-07-04): Added a \"Calendar Scope\" prop (calendarScope: all | community |\n//   arts-only) so one component can serve TWO Framer pages — a general Community\n//   calendar (\"community\" = every category except \"Arts & Culture\") and a separate\n//   Arts calendar (\"arts-only\" = only \"Arts & Culture\"). Default \"all\" keeps the\n//   original behavior. Scope is applied once as `scopedRecords`, which now feeds\n//   the chip rows, the List/Calendar/Ongoing tabs, and the \"N of M events\" count.\n//   Requested by Jim (differentiate the summer arts shows onto an ARTS calendar).\n// Prior (2026-06-18): 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\"};// ─── Cross-listing ───────────────────────────────────────────────────────────\n// An event tagged with one of these markers (case-insensitive) shows on BOTH the\n// Community and the Arts calendars, whatever its single category — so a family-\n// friendly arts film can appear on the general Community calendar too. The marker\n// is a routing signal, NOT a public label: it is stripped from the reader-facing\n// tag chips (see EventDetail) and from search, so a reader never sees it.\n// Canonical tag to set in Airtable: \"Both Calendars\".\nconst CROSS_LIST_MARKERS=[\"both calendars\",\"community + arts\",\"community and arts\",\"arts + community\",\"cross-list\"];function isCrossListMarker(tag){return CROSS_LIST_MARKERS.includes(String(tag).trim().toLowerCase());}function isCrossListed(f){const t=Array.isArray(f?.tags)?f.tags:f?.tags?[f.tags]:[];return t.some(isCrossListMarker);}// Tags with any cross-list marker removed — the list a reader should see.\nfunction visibleTags(f){const t=Array.isArray(f?.tags)?f.tags:f?.tags?[f.tags]:[];return t.filter(x=>!isCrossListMarker(x));}// ─── 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:{// Listing titles are bold so they are the scannable\n// anchor of each list row (Jim, 2026-07-19). This is\n// the List / Ongoing / selected-day list card title.\nfontWeight:700,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);// visibleTags drops any cross-list routing marker (e.g. \"Both Calendars\") so\n// the reader never sees it as a tag chip.\nconst tags=visibleTags(f);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,// Which slice of the calendar this instance shows INITIALLY. Lets the SAME\n// component serve two Framer pages: a general Community calendar and a separate\n// Arts calendar. \"all\" = every event (default, the original behavior);\n// \"arts-only\" = only the \"Arts & Culture\" category; \"community\" = everything\n// EXCEPT \"Arts & Culture\" (so the arts shows live on the Arts page, not here).\n// With showScopeToggle on (the default), this is just the STARTING scope — the\n// viewer can switch it live from the on-page toggle.\ncalendarScope=\"all\",// Show the on-page scope toggle (Jewish Community / Arts & Culture / All Events)\n// so a viewer can switch which slice they see right in the calendar, not only\n// via this property control. Turn OFF to lock a page to its calendarScope.\nshowScopeToggle=true,// Heading\nheading=\"Community Calendar\",showHeading=true,headingAlign=\"center\",subheading=\"Toggle to see Jewish Community, Arts & Culture, or All Events.\",showSubheading=true,// 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([]);// ── Scope (Community / Arts / All) ────────────────────────────────────────\n// activeScope is the slice the viewer is currently looking at. It is seeded\n// from the calendarScope prop (the page's default) and can be switched live\n// via the on-page scope toggle. Applied once here as scopedRecords so every\n// downstream derivation — the chip rows, the List/Calendar/Ongoing tabs, and\n// the \"N of M events\" count — operates on the same scoped universe.\n// A cross-listed event (see isCrossListed) shows in BOTH the Community and\n// Arts scopes regardless of its single category.\nconst ARTS_CATEGORY=\"Arts & Culture\";const[activeScope,setActiveScope]=useState(calendarScope);// Keep the live scope in sync if the prop is changed in the Framer editor.\nuseEffect(()=>{setActiveScope(calendarScope);},[calendarScope]);const inScope=f=>{if(activeScope===\"all\")return true;if(isCrossListed(f))return true// cross-listed → on both calendars\n;const isArts=f?.category===ARTS_CATEGORY;return activeScope===\"arts-only\"?isArts:!isArts;};const scopedRecords=records.filter(r=>inScope(r.fields||{}));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);// Bumped by the \"Today\" button so the scroll-to-today effect re-fires on the\n// list view even when today's month/year is already selected (2026-07-18).\nconst[goTodayNonce,setGoTodayNonce]=useState(0);// ── 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(scopedRecords.map(r=>r.fields?.category).filter(Boolean))).sort();const allAudiences=Array.from(new Set(scopedRecords.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),...visibleTags(f),...Array.isArray(f.audience)?f.audience:f.audience?[f.audience]:[]].filter(Boolean).join(\" \").toLowerCase();if(!haystack.includes(q))return false;}return true;};const filteredRecords=scopedRecords.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 scopedRecords){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);// The month/year setters above only move the Calendar (month-grid) tab. On\n// the List and Ongoing tabs there is no month scope, so those setters have\n// no visible effect and \"Today\" looked dead. Bump a nonce so the\n// scroll-to-today effect re-runs and the active list (List OR Ongoing) jumps\n// back to today / the soonest-upcoming group.\n// (List: reported by Jim on iPhone 2026-07-18. Ongoing: reported by Eric\n// 2026-07-24 — the effect used to early-return on the Ongoing tab.)\nsetGoTodayNonce(n=>n+1);};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,// Constant weight (was active ? 700 : 400): the 400->700 swap on select\n    // changed the label width and reflowed the row — the flicker on tab\n    // switch. Active state now reads from background + text color. (2026-07-05)\n    fontWeight:600,height:28,whiteSpace:\"nowrap\",transition:\"background 0.15s, color 0.15s, border-color 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 the active list to today (List + Ongoing tabs) ───────────\n// Robust to \"today has no events\" — scrolls to the first date group whose\n// date is on or after today. Fires on tab-open, filter change, and every\n// \"Today\" tap (goTodayNonce). Serves BOTH the List tab (today-forward one-offs)\n// AND the Ongoing Programs tab (recurring series grouped by next-upcoming date):\n// both render [data-datekey] anchors inside listContainerRef, so the same logic\n// works for each.\n//\n// Before 2026-07-24 this effect early-returned `if (!onList)`, so on the Ongoing\n// tab tapping \"Today\" did nothing — a dead button. Eric reported (2026-07-24)\n// that Today works on the List and Calendar tabs but not on Ongoing on his\n// iPhone; that is exactly this guard. Confirmed live with\n// e2e/scripts/calendar-today-ongoing-diagnose.mjs (scrolled the Ongoing list to\n// the bottom, tapped Today, container did not move). The old \"Ongoing has a flat\n// list with no date headers\" note was stale — since 2026-05-21 the Ongoing tab\n// renders the same date-grouped layout as List, so it has anchors too.\nconst todayKey=toDateKey(today);const scrollGroups=onOngoing?ongoingDateGroups:dateGroups;const firstGroupKey=scrollGroups[0]?.key||\"\";useEffect(()=>{// List + Ongoing have a scrollable [data-datekey] list to jump; Calendar\n// uses its own month grid (goToday resets its month/year state instead).\nif(!onList&&!onOngoing)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 the first group on/after today's\n// midnight, else the very first group (soonest-upcoming = the top,\n// which is the natural \"Today\" target on the Ongoing tab).\nlet anchor=container.querySelector(`[data-datekey=\"${todayKey}\"]`);if(!anchor){for(const g of scrollGroups){if(g.date>=todayMidnight){anchor=container.querySelector(`[data-datekey=\"${g.key}\"]`);if(anchor)break;}}}if(!anchor&&firstGroupKey){anchor=container.querySelector(`[data-datekey=\"${firstGroupKey}\"]`);}if(!anchor)return;// Primary path — scroll the inner overflow:auto container by a computed\n// offset so the anchor sits ~8px below its top. Unchanged: this is what\n// already works on desktop and on the List tab (Eric confirms List is\n// fine on his phone), so we do not regress it.\nconst 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\"});// iOS-robustness fallback (Eric, 2026-07-24) — on some iOS Safari\n// layouts the page itself is the effective scroller, not this inner\n// overflow:auto div, so the computed scrollTop above is ignored and the\n// button reads as dead. scrollIntoView scrolls whichever ancestor is\n// actually scrollable. block:\"nearest\" makes it a no-op when the\n// computed scroll already positioned the anchor, so the working\n// desktop/List case never double-jumps.\nanchor.scrollIntoView({behavior:\"smooth\",block:\"nearest\"});},140);return()=>clearTimeout(timer);// Re-run when either list tab opens, today changes, the first visible group\n// changes, filters change the date set, or the user taps \"Today\" (nonce).\n// eslint-disable-next-line react-hooks/exhaustive-deps\n},[onList,onOngoing,todayKey,firstGroupKey,hasActiveFilter,goTodayNonce]);// ─── 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}),(()=>{// Subline under the title. Prefer an explicit `subheading`;\n// otherwise, whenever the scope toggle is shown, fall back\n// to a description of it. Rendering must NOT depend solely on\n// the `showSubheading` prop: a component instance placed\n// before this feature has showSubheading=false / subheading=\"\"\n// saved on it, and a code-side default does not override an\n// instance's stored prop value — so the line never appeared.\n// Tying the fallback to showScopeToggle makes it show. (2026-07-05)\nconst line=subheading||(showScopeToggle?\"Toggle to see Jewish Community, Arts & Culture, or All Events.\":\"\");if(!((showSubheading||showScopeToggle)&&line))return null;return /*#__PURE__*/_jsx(\"p\",{style:{margin:\"5px 0 0\",color:mutedColor,fontSize:14,fontFamily:resolvedBodyFontFamily,textAlign:headingAlign},children:line});})()]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:8,padding:\"12px 16px\",borderBottom:`1px solid ${borderColor}`,boxSizing:\"border-box\",flexShrink:0},children:[showScopeToggle&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",justifyContent:\"center\",width:\"100%\"},children:/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",border:`1px solid ${borderColor}`,borderRadius:8,overflow:\"hidden\",maxWidth:\"100%\"},children:[{value:\"community\",full:\"Jewish Community\",short:\"Jewish\"},{value:\"arts-only\",full:\"Arts & Culture\",short:\"Arts\"},{value:\"all\",full:\"All Events\",short:\"All\"}].map((opt,i,arr)=>{const active=activeScope===opt.value;return /*#__PURE__*/_jsx(\"button\",{onClick:()=>setActiveScope(opt.value),style:{background:active?primaryColor:\"transparent\",border:\"none\",borderRight:i<arr.length-1?`1px solid ${borderColor}`:\"none\",padding:\"5px 16px\",cursor:\"pointer\",fontSize:bodyFontSize-1,color:active?\"#fff\":bodyTextColor,fontFamily:resolvedBodyFontFamily,// Constant weight prevents the label\n// width reflow/flicker on tab switch\n// (was active ? 700 : 400). (2026-07-05)\nfontWeight:600,height:30,whiteSpace:\"nowrap\",transition:\"background 0.15s, color 0.15s\"},children:containerWidth<480?opt.short:opt.full},opt.value);})})}),/*#__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:600,height:28,whiteSpace:\"nowrap\",transition:\"background 0.15s, color 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:600,height:28,whiteSpace:\"nowrap\",transition:\"background 0.15s, color 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:600,height:28,whiteSpace:\"nowrap\",transition:\"background 0.15s, color 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 \",scopedRecords.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:scopedRecords,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.\"},calendarScope:{type:ControlType.Enum,title:\"Calendar Scope\",options:[\"all\",\"community\",\"arts-only\"],optionTitles:[\"All events\",\"Community (no Arts)\",\"Arts & Culture only\"],defaultValue:\"all\",description:'The STARTING scope for this page. With the on-page toggle on (below), the viewer can still switch it live. Use one component on two pages: Community page to \"Community (no Arts)\", Arts page to \"Arts & Culture only\". \"All events\" is the original behavior.'},showScopeToggle:{type:ControlType.Boolean,title:\"Scope Toggle\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",description:\"Show the on-page All / Community / Arts toggle so viewers can switch scope in the calendar itself. Turn off to lock this page to its Calendar Scope above.\"},// 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:true,hidden:props=>!props.showHeading},subheading:{type:ControlType.String,title:\"Subheading Text\",defaultValue:\"Toggle to see Jewish Community, Arts & Culture, or All Events.\",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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"}