@getmicdrop/venue-calendar 4.0.79 → 4.0.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +173 -128
- package/dist/{CarouselView.legacy-CsMGxVbb.js → CarouselView.legacy-Bn76lnuH.js} +3 -3
- package/dist/{CarouselView.legacy-CsMGxVbb.js.map → CarouselView.legacy-Bn76lnuH.js.map} +1 -1
- package/dist/{CartView-BOaZufWZ.js → CartView-lR1zLxmN.js} +277 -280
- package/dist/CartView-lR1zLxmN.js.map +1 -0
- package/dist/{Checkout-bkXNpxIB.js → Checkout-D5mXj5zN.js} +69 -73
- package/dist/Checkout-D5mXj5zN.js.map +1 -0
- package/dist/Checkout-KyLZlwLk.js +1673 -0
- package/dist/Checkout-KyLZlwLk.js.map +1 -0
- package/dist/{Checkout.legacy-BOPwZMyO.js → Checkout.legacy-Dl8Oh7y3.js} +95 -99
- package/dist/Checkout.legacy-Dl8Oh7y3.js.map +1 -0
- package/dist/CheckoutTimer-Deo1mLnO.js +141 -0
- package/dist/CheckoutTimer-Deo1mLnO.js.map +1 -0
- package/dist/CollectionView-C1O9xfVC.js +338 -0
- package/dist/CollectionView-C1O9xfVC.js.map +1 -0
- package/dist/{CollectionView.legacy-Dw-J6Ycd.js → CollectionView.legacy-DK_mCA_g.js} +21 -24
- package/dist/{CollectionView.legacy-Dw-J6Ycd.js.map → CollectionView.legacy-DK_mCA_g.js.map} +1 -1
- package/dist/Event-B5WRygEf.js +2240 -0
- package/dist/Event-B5WRygEf.js.map +1 -0
- package/dist/EventPage-f1AOk4Jb.js +577 -0
- package/dist/EventPage-f1AOk4Jb.js.map +1 -0
- package/dist/{EventPage.legacy-Br2M8N9-.js → EventPage.legacy-Bk3PJyJs.js} +408 -411
- package/dist/EventPage.legacy-Bk3PJyJs.js.map +1 -0
- package/dist/{FeaturedView.legacy-B86kMzvH.js → FeaturedView.legacy-BzCt1X1W.js} +18 -18
- package/dist/{FeaturedView.legacy-B86kMzvH.js.map → FeaturedView.legacy-BzCt1X1W.js.map} +1 -1
- package/dist/{GalleryCard-CTsYUZu6.js → GalleryCard-C1EKGErR.js} +14 -14
- package/dist/{GalleryCard-CTsYUZu6.js.map → GalleryCard-C1EKGErR.js.map} +1 -1
- package/dist/{GalleryView.legacy-uIexOsl5.js → GalleryView.legacy-BmQtZKl7.js} +3 -3
- package/dist/{GalleryView.legacy-uIexOsl5.js.map → GalleryView.legacy-BmQtZKl7.js.map} +1 -1
- package/dist/{GroupedListView.legacy-DMAwHQ9T.js → GroupedListView.legacy-D72fbNfA.js} +21 -21
- package/dist/{GroupedListView.legacy-DMAwHQ9T.js.map → GroupedListView.legacy-D72fbNfA.js.map} +1 -1
- package/dist/Heading-Bwevh2c4.js +81 -0
- package/dist/Heading-Bwevh2c4.js.map +1 -0
- package/dist/ModalHeader-DKwE5ZYZ.js +22 -0
- package/dist/ModalHeader-DKwE5ZYZ.js.map +1 -0
- package/dist/OrderSummarySkeleton-DKWKZNLL.js +632 -0
- package/dist/OrderSummarySkeleton-DKWKZNLL.js.map +1 -0
- package/dist/{ScarcityBadge-D9RzN3Tz.js → ScarcityBadge-3cFxTOCh.js} +25 -29
- package/dist/{ScarcityBadge-D9RzN3Tz.js.map → ScarcityBadge-3cFxTOCh.js.map} +1 -1
- package/dist/{SeriesPage-D0pf6VuS.js → SeriesPage-Cq4Q8Vah.js} +17 -21
- package/dist/{SeriesPage-D0pf6VuS.js.map → SeriesPage-Cq4Q8Vah.js.map} +1 -1
- package/dist/{SeriesPage.legacy-VYpfyT7B.js → SeriesPage.legacy-zvgW0S_y.js} +67 -71
- package/dist/SeriesPage.legacy-zvgW0S_y.js.map +1 -0
- package/dist/{Success-Dxgbo_Ct.js → Success-kyiEO6_Z.js} +186 -175
- package/dist/{Success-Dxgbo_Ct.js.map → Success-kyiEO6_Z.js.map} +1 -1
- package/dist/{Success.legacy-umzUtow7.js → Success.legacy-BxKYmXgz.js} +53 -57
- package/dist/{Success.legacy-umzUtow7.js.map → Success.legacy-BxKYmXgz.js.map} +1 -1
- package/dist/Text-_bLxSPv-.js +158 -0
- package/dist/Text-_bLxSPv-.js.map +1 -0
- package/dist/{VenueCalendar-D9TCV_XB.js → VenueCalendar-d8u6MKEu.js} +8131 -22680
- package/dist/VenueCalendar-d8u6MKEu.js.map +1 -0
- package/dist/ViewTicketsEmbed-DquJJVIK.js +2081 -0
- package/dist/ViewTicketsEmbed-DquJJVIK.js.map +1 -0
- package/dist/__SKIP_NAVIGATION__-CmipjatL.js +18 -0
- package/dist/__SKIP_NAVIGATION__-CmipjatL.js.map +1 -0
- package/dist/api/api.cjs +1 -1
- package/dist/api/api.cjs.map +1 -1
- package/dist/api/api.mjs +482 -374
- package/dist/api/api.mjs.map +1 -1
- package/dist/api/cta.d.ts +2 -10
- package/dist/api/transformers/address.d.ts +18 -0
- package/dist/api/transformers/cart.d.ts +19 -0
- package/dist/api/transformers/collection.d.ts +12 -0
- package/dist/api/transformers/event.d.ts +50 -1
- package/dist/api/transformers/giftCard.d.ts +11 -0
- package/dist/api/transformers/index.d.ts +10 -3
- package/dist/api/transformers/performer.d.ts +8 -0
- package/dist/api/transformers/series.d.ts +12 -0
- package/dist/api/types.d.ts +423 -383
- package/dist/api-BzICORqy.js +6 -0
- package/dist/{api-DFMsiBOR.js.map → api-BzICORqy.js.map} +1 -1
- package/dist/colors-CmP-sSZD.js.map +1 -1
- package/dist/{data-toggle-store.svelte-DtDqN-QD.js → data-toggle-store.svelte-BGbzblUJ.js} +10 -15
- package/dist/data-toggle-store.svelte-BGbzblUJ.js.map +1 -0
- package/dist/index-BsWecoW1.js +63 -0
- package/dist/index-BsWecoW1.js.map +1 -0
- package/dist/labels-Bj_cocb1.js +966 -0
- package/dist/labels-Bj_cocb1.js.map +1 -0
- package/dist/seo/seo.cjs +1 -1
- package/dist/seo/seo.cjs.map +1 -1
- package/dist/seo/seo.mjs +131 -122
- package/dist/seo/seo.mjs.map +1 -1
- package/dist/transform-D7Oe8jUp.js +276 -0
- package/dist/transform-D7Oe8jUp.js.map +1 -0
- package/dist/types/index.d.ts +45 -0
- package/dist/venue-calendar.css +1 -1
- package/dist/venue-calendar.es.js +31 -37
- package/dist/venue-calendar.es.js.map +1 -1
- package/dist/venue-calendar.iife.js +40 -107
- package/dist/venue-calendar.iife.js.map +1 -1
- package/dist/venue-calendar.umd.js +38 -125
- package/dist/venue-calendar.umd.js.map +1 -1
- package/package.json +170 -169
- package/dist/CartView-BOaZufWZ.js.map +0 -1
- package/dist/Checkout-DD6ZTUh-.js +0 -1531
- package/dist/Checkout-DD6ZTUh-.js.map +0 -1
- package/dist/Checkout-bkXNpxIB.js.map +0 -1
- package/dist/Checkout.legacy-BOPwZMyO.js.map +0 -1
- package/dist/CheckoutTimer-CHoKjZyH.js +0 -35
- package/dist/CheckoutTimer-CHoKjZyH.js.map +0 -1
- package/dist/CollectionView-Ce-OAEC4.js +0 -148
- package/dist/CollectionView-Ce-OAEC4.js.map +0 -1
- package/dist/Event-rdstzev0.js +0 -1910
- package/dist/Event-rdstzev0.js.map +0 -1
- package/dist/EventPage-B8VRC83d.js +0 -336
- package/dist/EventPage-B8VRC83d.js.map +0 -1
- package/dist/EventPage.legacy-Br2M8N9-.js.map +0 -1
- package/dist/Heading-AFd3o0xt.js +0 -44
- package/dist/Heading-AFd3o0xt.js.map +0 -1
- package/dist/OrderSummarySkeleton-dDKUH741.js +0 -16
- package/dist/OrderSummarySkeleton-dDKUH741.js.map +0 -1
- package/dist/SeriesPage.legacy-VYpfyT7B.js.map +0 -1
- package/dist/Text-CXR2fhx6.js +0 -54
- package/dist/Text-CXR2fhx6.js.map +0 -1
- package/dist/VenueCalendar-D9TCV_XB.js.map +0 -1
- package/dist/ViewTicketsEmbed-Bt05E5Ex.js +0 -2039
- package/dist/ViewTicketsEmbed-Bt05E5Ex.js.map +0 -1
- package/dist/__SKIP_NAVIGATION__-CJ96TTPE.js +0 -7
- package/dist/__SKIP_NAVIGATION__-CJ96TTPE.js.map +0 -1
- package/dist/api-DFMsiBOR.js +0 -12
- package/dist/data-toggle-store.svelte-DtDqN-QD.js.map +0 -1
- package/dist/labels-CClq3Rb9.js +0 -659
- package/dist/labels-CClq3Rb9.js.map +0 -1
- package/dist/transform-CWf-YI_e.js +0 -275
- package/dist/transform-CWf-YI_e.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GalleryCard-
|
|
1
|
+
{"version":3,"file":"GalleryCard-C1EKGErR.js","sources":["../src/components/Calendar/GalleryCard.svelte"],"sourcesContent":["<script>\r\n import ScarcityBadge from \"../ScarcityBadge.svelte\";\r\n import { formatBrowseDate, formatFullDate, formatEventTime } from \"$lib/utils/datetime.js\";\r\n import { PLACEHOLDER_IMAGE } from \"$lib/utils/constants.js\";\r\n import { getBrowseStatus, isEventUnavailable } from \"$lib/utils/browse-status.js\";\r\n import { buildEventHref } from \"$lib/url-manager/params\";\r\n\r\n let { event, oneventClick, labels = {} } = $props();\r\n\r\n let browseStatus = $derived(getBrowseStatus(event));\r\n let isUnavailable = $derived(isEventUnavailable(browseStatus));\r\n\r\n // Build comprehensive aria-label for event card\r\n function getEventAriaLabel(event) {\r\n const parts = [event.name];\r\n if (event.startDateTime) {\r\n parts.push(`on ${formatFullDate(event.startDateTime, event.timeZone)}`);\r\n }\r\n if (event.startDateTime) {\r\n parts.push(`at ${formatEventTime(event.startDateTime, event.timeZone)}`);\r\n }\r\n if (browseStatus) {\r\n parts.push(browseStatus.text);\r\n } else if (event.status && event.status !== (labels.statusOnSale || 'On Sale')) {\r\n parts.push(event.status);\r\n }\r\n parts.push(labels.pressEnterToView || 'Press Enter to view details');\r\n return parts.join(', ');\r\n }\r\n</script>\r\n\r\n<a\r\n href={buildEventHref(event)}\r\n class=\"gallery-card\"\r\n class:card-unavailable={isUnavailable}\r\n onclick={(e) => { e.preventDefault(); oneventClick?.(event); }}\r\n aria-label={getEventAriaLabel(event)}\r\n>\r\n <!-- Fixed height image container -->\r\n <div class=\"card-image-container\">\r\n <!-- @component-image-escape: scoped-CSS selector targets this img; aria-hidden not supported by SC Image -->\r\n <img\r\n src={event.image || PLACEHOLDER_IMAGE}\r\n alt=\"\"\r\n class=\"card-image\"\r\n loading=\"lazy\"\r\n aria-hidden=\"true\"\r\n />\r\n <!-- Status Badge overlay -->\r\n {#if browseStatus}\r\n <div class=\"badge-overlay\" aria-hidden=\"true\">\r\n <span class=\"status-badge status-{browseStatus.type}\">{browseStatus.text}</span>\r\n </div>\r\n {:else if event.ticketsTotal > 0 || event.ticketsRemaining === 0}\r\n <div class=\"badge-overlay\" aria-hidden=\"true\">\r\n <ScarcityBadge\r\n remaining={event.ticketsRemaining ?? 0}\r\n total={event.ticketsTotal ?? 0}\r\n context=\"browse\"\r\n {labels}\r\n />\r\n </div>\r\n {/if}\r\n </div>\r\n\r\n <!-- Event Details -->\r\n <div class=\"card-content\" aria-hidden=\"true\">\r\n <h3 class=\"card-title\">{event.name}</h3>\r\n <div class=\"card-meta\">\r\n {#if event.startDateTime}\r\n <time datetime={event.startDateTime}>\r\n {formatBrowseDate(event.startDateTime, event.timeZone)}\r\n </time>\r\n {/if}\r\n {#if event.startDateTime}\r\n <span class=\"meta-separator\" aria-hidden=\"true\">•</span>\r\n <span>{formatEventTime(event.startDateTime, event.timeZone)}</span>\r\n {/if}\r\n </div>\r\n </div>\r\n</a>\r\n\r\n<style>\r\n /* @apply-escape: GalleryCard's component-scoped <style> block uses\r\n * @apply to extract repeated Tailwind utility combinations into\r\n * named component classes (card root, image wrapper, content\r\n * sections, hover/focus states). This is the canonical Tailwind v4\r\n * component-layer pattern — same shape as VC src/lib/styles/components.css.\r\n * Atlas css-style-cheats — file-level exempt per filterByFileLevelMarker.\r\n */\r\n @reference \"../../app.css\";\r\n\r\n .gallery-card {\r\n @apply rounded-lg border bg-card border-border;\r\n @apply overflow-hidden cursor-pointer block;\r\n\r\n text-decoration: none;\r\n color: inherit;\r\n transition: transform var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out);\r\n }\r\n\r\n .gallery-card:hover {\r\n @apply border-stroke-primary;\r\n\r\n transform: translateY(-2px);\r\n box-shadow: 0 4px 12px color-mix(in srgb, black 10%, transparent);\r\n }\r\n\r\n .gallery-card:focus {\r\n @apply outline-none;\r\n }\r\n\r\n .gallery-card:focus-visible {\r\n @apply outline-2 outline-focus-ring outline-offset-2;\r\n }\r\n\r\n .gallery-card:active {\r\n transform: translateY(0);\r\n }\r\n\r\n /* Fixed height image container */\r\n .card-image-container {\r\n @apply relative w-full bg-muted overflow-hidden;\r\n\r\n height: 200px;\r\n }\r\n\r\n @media (width <= 639px) {\r\n .card-image-container {\r\n height: 220px;\r\n }\r\n }\r\n\r\n @media (width >= 1024px) {\r\n .card-image-container {\r\n height: 180px;\r\n }\r\n }\r\n\r\n .card-image {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: contain;\r\n }\r\n\r\n .badge-overlay {\r\n position: absolute;\r\n top: 8px;\r\n left: 8px;\r\n }\r\n\r\n .card-content {\r\n @apply p-3;\r\n }\r\n\r\n @media (width >= 640px) {\r\n .card-content {\r\n @apply p-3.5;\r\n }\r\n }\r\n\r\n .card-title {\r\n @apply text-base font-semibold text-text-primary mb-1.5;\r\n\r\n line-height: 1.3;\r\n display: -webkit-box;\r\n -webkit-line-clamp: 2;\r\n line-clamp: 2;\r\n -webkit-box-orient: vertical;\r\n overflow: hidden;\r\n }\r\n\r\n @media (width <= 639px) {\r\n .card-title {\r\n @apply text-lg;\r\n }\r\n }\r\n\r\n .card-meta {\r\n @apply text-sm text-text-secondary font-medium;\r\n }\r\n\r\n @media (width <= 639px) {\r\n .card-meta {\r\n @apply text-base;\r\n }\r\n }\r\n\r\n .meta-separator {\r\n @apply text-muted-foreground mx-1;\r\n }\r\n\r\n /* Unavailable event dimming */\r\n .card-unavailable {\r\n @apply opacity-60;\r\n }\r\n\r\n .card-unavailable .card-image {\r\n filter: grayscale(0.5);\r\n }\r\n\r\n /* Status badges — distinct visual treatments for each status */\r\n .status-badge {\r\n @apply inline-flex items-center text-xs font-bold px-2.5 py-1 rounded;\r\n\r\n box-shadow: 0 2px 6px color-mix(in srgb, black 25%, transparent);\r\n letter-spacing: 0.02em;\r\n }\r\n\r\n .status-cancelled {\r\n @apply text-white bg-gradient-to-br from-rose-900 to-red-700;\r\n\r\n text-decoration: line-through;\r\n text-decoration-thickness: 1.5px;\r\n }\r\n\r\n .status-past {\r\n @apply text-muted-foreground bg-overlay-bg;\r\n\r\n backdrop-filter: blur(4px);\r\n }\r\n\r\n .status-sold_out {\r\n @apply text-white uppercase tracking-wider bg-gradient-to-br from-red-600 to-red-400;\r\n\r\n font-size: 0.65rem;\r\n }\r\n\r\n .status-sales_ended {\r\n @apply text-muted-foreground bg-bg-secondary/90 border border-stroke-primary/30;\r\n\r\n backdrop-filter: blur(4px);\r\n }\r\n\r\n .status-coming_soon {\r\n @apply text-white bg-gradient-to-br from-blue-600 to-indigo-500;\r\n }\r\n\r\n /* Reduced motion */\r\n @media (prefers-reduced-motion: reduce) {\r\n .gallery-card {\r\n transition: none;\r\n }\r\n\r\n .gallery-card:hover {\r\n transform: none;\r\n }\r\n }\r\n</style>\r\n"],"names":["labels","$","$$props","browseStatus","getBrowseStatus","isUnavailable","isEventUnavailable","getEventAriaLabel","event","parts","formatFullDate","formatEventTime","a","root_4","div","img","div_1","root","span","text","div_2","root_1","$0","$1","ScarcityBadge","node_1","$$render","consequent_1","div_3","h3","div_4","time","root_2","formatBrowseDate","consequent_2","span_1","fragment","consequent_3","classes","PLACEHOLDER_IMAGE","buildEventHref","e"],"mappings":";;;;;iBAAA;;AAOE,MAAIA,IAA6BC,EAAA,KAAAC,GAAA,UAAA,IAAA,OAAA,CAAA,EAAA,GAE7BC,oBAAwBC,EAAeF,EAAA,KAAA,CAAA,GACvCG,IAAaJ,EAAA,QAAA,MAAYK,EAAkBL,EAAA,IAACE,CAAY,CAAA,CAAA;AAG5D,WAASI,EAAkBC,GAAO;AAChC,UAAMC,IAAK,CAAID,EAAM,IAAI;AACzB,WAAIA,EAAM,iBACRC,EAAM,KAAI,MAAOC,EAAeF,EAAM,eAAeA,EAAM,QAAQ,CAAA,EAAA,GAEjEA,EAAM,iBACRC,EAAM,KAAI,MAAOE,EAAgBH,EAAM,eAAeA,EAAM,QAAQ,CAAA,EAAA,GAEpEP,EAAA,IAAEE,CAAY,IACdM,EAAM,KAAIR,EAAA,IAACE,CAAY,EAAC,IAAI,IACnBK,EAAM,UAAUA,EAAM,YAAYR,EAAM,EAAC,gBAAgB,cAClES,EAAM,KAAKD,EAAM,MAAM,GAEzBC,EAAM,KAAKT,IAAO,oBAAoB,6BAA6B,GAC5DS,EAAM,KAAK,IAAI;AAAA,EACxB;MAGDG,IAACC,EAAA;;AAQC,MAAAC,YARFF,CAAC,GAUGG,YAFFD,CAAG,iBAEDC,GAAG,CAAA;;;UASDC,IAAGC,EAAA,GACDC,YADFF,CAAG,eACDE,GAAI,EAAA;cAAJA,CAAI,WADNF,CAAG;oBACDE,GAAI,GAAA,uBAAAjB,EAAA,IAA6BE,CAAY,EAAC,QAAI,EAAA,IAAA,gBAAA,GAAIF,EAAA,SAAAkB,GAAAlB,EAAA,IAAAE,CAAY,EAAC,IAAI;AAAA,sBADzEa,CAAG;AAAA;UAIHI,IAAGC,EAAA,eAAHD,CAAG;;AAEiB,YAAAE,IAAArB,EAAA,QAAA,MAAAC,EAAA,MAAA,oBAAoB,CAAC,GACzBqB,IAAAtB,EAAA,QAAA,MAAAC,EAAA,MAAA,gBAAgB,CAAC;AAF/B,QAAAsB,EAAaC,GAAA;AAAA;;;;;;;;mBAIXzB,EAAM;AAAA;;;cALVoB,CAAG,eAAHA,CAAG;AAAA;;AALD,MAAAnB,EAAA,IAAAE,CAAY,oBAID,eAAe,KAACD,EAAA,MAAU,qBAAqB,MAACwB,EAAAC,GAAA,CAAA;AAAA;;UAdjEb,CAAG;AA2BH,MAAAc,cA3BAd,GAAG,CAAA,GA4BDe,YADFD,CAAG,eACDC,GAAE,EAAA;UAAFA,CAAE;AACF,MAAAC,cADAD,GAAE,CAAA,eACFC,CAAG;;;UAECC,IAAIC,EAAA,eAAJD,GAAI,EAAA;cAAJA,CAAI;;AAAJ,UAAA9B,EAAA,cAAA8B,uBAAqB,aAAa;;;gBAChCE,EAAgB/B,EAAA,MAAO,eAAaA,EAAA,MAAQ,QAAQ;AAAA;qBADtD6B,CAAI;AAAA;;cADI,iBAAaL,EAAAQ,CAAA;AAAA;;;;;mBAOrBC,IAAIlC,EAAA,QAAAA,EAAA,YAAAmC,CAAA,GAAA,CAAA,eAAJD,GAAI,EAAA;cAAJA,CAAI;cAAExB,EAAeT,EAAA,MAAO,eAAaA,EAAA,MAAQ,QAAQ;AAAA;;;cAFjD,iBAAawB,EAAAW,CAAA;AAAA;;UANzBP,CAAG,WAFLF,CAAG,WAnCLhB,CAAC;;sBAADA,GAAC,QAAAU,CAAA,GAADgB,IAAArC,EAAA,UAAAW,0EAGyBP,CAAa,EAAA,CAAA,mBAHtCO,GAAC,cAAAW,CAAA,mBAUGR,GAAG,OAAAb,EAAA,MACS,SAASqC,CAAiB,yBAyBT,IAAI;AAAA;;YAnC9BC,EAActC,EAAA,KAAA;AAAA,YAIRK,EAAiBL,EAAA,KAAA;AAAA;0BAL9BU,GAAC,CAIU6B,MAAM;AAAE,IAAAA,EAAE,eAAc;EAA2B,CAAC,eAJ/D7B,CAAC;AAFM;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "svelte/internal/disclose-version";
|
|
2
2
|
import * as e from "svelte/internal/client";
|
|
3
3
|
import { onMount as C, onDestroy as M } from "svelte";
|
|
4
|
-
import { G as x } from "./GalleryCard-
|
|
5
|
-
import {
|
|
4
|
+
import { G as x } from "./GalleryCard-C1EKGErR.js";
|
|
5
|
+
import { aI as k } from "./VenueCalendar-d8u6MKEu.js";
|
|
6
6
|
var w = e.from_html('<li class="list-none"><!></li>'), E = e.from_html('<div class="flex items-center justify-center gap-2 py-2 p-6" role="status" aria-live="polite"><span class="text-sm text-muted-foreground">Loading more events...</span></div>'), G = e.from_html('<section class="w-full" aria-label="Events gallery"><h2 class="sr-only svelte-lb0ck7">Upcoming events</h2> <ul class="grid grid-cols-1 gap-4 bg-bg-secondary p-2 sm:grid-cols-2 sm:gap-4 sm:p-3 md:grid-cols-3 md:gap-5 md:p-4 lg:grid-cols-4 lg:gap-6 lg:p-5" role="list"></ul> <!></section>');
|
|
7
7
|
function D(v, i) {
|
|
8
8
|
e.push(i, !0);
|
|
@@ -49,4 +49,4 @@ function D(v, i) {
|
|
|
49
49
|
export {
|
|
50
50
|
D as default
|
|
51
51
|
};
|
|
52
|
-
//# sourceMappingURL=GalleryView.legacy-
|
|
52
|
+
//# sourceMappingURL=GalleryView.legacy-BmQtZKl7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GalleryView.legacy-
|
|
1
|
+
{"version":3,"file":"GalleryView.legacy-BmQtZKl7.js","sources":["../src/components/Calendar/GalleryView.legacy.svelte"],"sourcesContent":["<script>\r\n // @ts-nocheck legacy fallback (legacy=1 path), slated for deletion after VC finalization — not type-maintained\r\n import { onMount, onDestroy } from \"svelte\";\r\n import GalleryCard from \"./GalleryCard.svelte\";\r\n import { filterTodayAndFuture } from \"$lib/utils/browse-status.js\";\r\n\r\n let { events = [], initialCount = 12, loadMoreCount = 12, oneventClick } = $props();\r\n\r\n let displayedCount = initialCount;\r\n let loadMoreTrigger;\r\n let observer;\r\n\r\n // Filter to today and future, sorted chronologically\r\n let futureEvents = $derived(filterTodayAndFuture(events));\r\n let displayedEvents = $derived(futureEvents.slice(0, displayedCount));\r\n let hasMore = $derived(displayedCount < futureEvents.length);\r\n\r\n function loadMore() {\r\n displayedCount += loadMoreCount;\r\n }\r\n\r\n onMount(() => {\r\n observer = new IntersectionObserver(\r\n (entries) => {\r\n if (entries[0].isIntersecting && hasMore) {\r\n loadMore();\r\n }\r\n },\r\n { rootMargin: '100px' }\r\n );\r\n\r\n if (loadMoreTrigger) {\r\n observer.observe(loadMoreTrigger);\r\n }\r\n });\r\n\r\n onDestroy(() => {\r\n if (observer) {\r\n observer.disconnect();\r\n }\r\n });\r\n\r\n // Re-observe when trigger element changes\r\n $effect(() => {\r\n if (observer && loadMoreTrigger) {\r\n observer.disconnect();\r\n observer.observe(loadMoreTrigger);\r\n }\r\n });\r\n</script>\r\n\r\n<section class=\"w-full\" aria-label=\"Events gallery\">\r\n <h2 class=\"sr-only\">Upcoming events</h2>\r\n <ul class=\"grid grid-cols-1 gap-4 bg-bg-secondary p-2 sm:grid-cols-2 sm:gap-4 sm:p-3 md:grid-cols-3 md:gap-5 md:p-4 lg:grid-cols-4 lg:gap-6 lg:p-5\" role=\"list\">\r\n {#each displayedEvents as event}\r\n <li class=\"list-none\">\r\n <GalleryCard {event} {oneventClick} />\r\n </li>\r\n {/each}\r\n </ul>\r\n\r\n <!-- Infinite scroll trigger -->\r\n {#if hasMore}\r\n <div bind:this={loadMoreTrigger} class=\"flex items-center justify-center gap-2 py-2 p-6\" role=\"status\" aria-live=\"polite\">\r\n <span class=\"text-sm text-muted-foreground\">Loading more events...</span>\r\n </div>\r\n {/if}\r\n</section>\r\n\r\n<style>\r\n /* Screen reader only text */\r\n .sr-only {\r\n position: absolute;\r\n width: 1px;\r\n height: 1px;\r\n padding: 0;\r\n margin: -1px;\r\n overflow: hidden;\r\n clip: rect(0, 0, 0, 0);\r\n white-space: nowrap;\r\n border-width: 0;\r\n }\r\n</style>\r\n"],"names":["events","$","$$props","initialCount","loadMoreCount","displayedCount","loadMoreTrigger","observer","futureEvents","filterTodayAndFuture","displayedEvents","hasMore","loadMore","onMount","entries","onDestroy","section","root_2","ul","$$anchor","event","li","root","GalleryCard","node","div","root_1","$$value","$$render","consequent"],"mappings":";;;;;;iBAAA;;AAME,MAAIA,IAAQC,EAAA,KAAAC,GAAA,UAAA,IAAA,MAAA,EAAA,GAAOC,iCAAe,EAAE,GAAEC,kCAAgB,EAAE,GAEpDC,IAAiBF,EAAY,GAC7BG,GACAC,GAGAC,IAAYP,EAAA,QAAA,MAAYQ,EAAqBT,EAAM,CAAA,CAAA,GACnDU,0BAA2BF,CAAY,EAAC,MAAM,GAAGH,CAAc,CAAA,GAC/DM,IAAOV,EAAA,QAAA,MAAYI,IAAcJ,EAAA,IAAGO,CAAY,EAAC,MAAM;AAE3D,WAASI,IAAW;AAClB,IAAAP,KAAkBD,EAAa;AAAA,EACjC;AAEA,EAAAS,QAAc;AACZ,IAAAN,IAAW,IAAI;AAAA,MACZ,CAAAO,MAAY;AACX,QAAIA,EAAQ,CAAC,EAAE,kBAAcb,EAAA,IAAIU,CAAO,KACtCC,EAAQ;AAAA,MAEZ;AAAA,MACE,EAAA,YAAY,QAAO;AAAA,OAGnBN,KACFC,EAAS,QAAQD,CAAe;AAAA,EAEpC,CAAC,GAEDS,QAAgB;AACd,IAAIR,KACFA,EAAS,WAAU;AAAA,EAEvB,CAAC,GAGDN,EAAA,kBAAc;AACZ,IAAIM,KAAYD,MACdC,EAAS,WAAU,GACnBA,EAAS,QAAQD,CAAe;AAAA,EAEpC,CAAC;MAGFU,IAAOC,EAAA,GAELC,sBAFFF,CAAO,GAAA,CAAA;SAELE,GAAE,IAAA,MAAAjB,EAAA,IACMS,CAAe,GAAAT,EAAA,OAAA,CAAAkB,GAAIC,MAAK;QAC5BC,IAAEC,EAAA,eAAFD,CAAE;AACA,IAAAE,EAAWC,GAAA;AAAA;qBAAEJ,CAAK;AAAA;;;;gBADpBC,CAAE,eAAFA,CAAE;AAAA,cAFNH,CAAE;oBAAFA,GAAE,CAAA;;;UAUAO,IAAGC,EAAA;kBAAHD,GAAG,CAAAE,MAAYrB,IAAeqB,GAAA,MAAfrB,CAAe,eAA9BmB,CAAG;AAAA;;YADDd,CAAO,KAAAiB,EAAAC,CAAA;AAAA;;UAXbb,CAAO,eAAPA,CAAO;AAFA;"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import "svelte/internal/disclose-version";
|
|
2
2
|
import * as e from "svelte/internal/client";
|
|
3
3
|
import { onMount as te, onDestroy as ae } from "svelte";
|
|
4
|
-
import {
|
|
5
|
-
import { S as oe } from "./ScarcityBadge-
|
|
4
|
+
import { aI as re, b0 as se, b1 as ie, b2 as le, P as ne, a9 as F, O as I } from "./VenueCalendar-d8u6MKEu.js";
|
|
5
|
+
import { S as oe } from "./ScarcityBadge-3cFxTOCh.js";
|
|
6
6
|
var de = e.from_html('<div class="w-16 min-w-16 py-4 px-2.5 flex flex-col items-center justify-start bg-bg-secondary border-r border-border max-sm:w-12 max-sm:min-w-12 max-sm:py-2.5 max-sm:px-1.5" aria-hidden="true"><span class="text-xs font-semibold text-text-secondary uppercase tracking-tight"> </span> <span class="text-2xl max-sm:text-lg font-bold text-text-primary leading-tight"> </span> <span class="text-xs font-semibold text-text-secondary uppercase tracking-tight"> </span></div>'), me = e.from_html('<p class="event-description text-sm text-text-secondary mt-1.5 mb-0 line-clamp-2 max-sm:hidden svelte-r2wh13"> </p>'), ce = e.from_html("<span> </span>"), fe = e.from_html('<li class="list-none"><div tabindex="0" role="button"><div class="w-36 h-24 min-w-36 max-sm:w-20 max-sm:h-16 max-sm:min-w-20 rounded-lg overflow-hidden bg-bg-secondary flex items-center justify-center" aria-hidden="true"><img alt="" class="w-full h-full object-contain svelte-r2wh13" loading="lazy"/></div> <div class="flex-1 flex flex-col gap-1.5 min-w-0" aria-hidden="true"><h3 class="text-lg max-sm:text-sm font-semibold text-text-primary m-0 leading-snug"> </h3> <time class="text-sm max-sm:text-xs font-medium text-text-secondary"> </time> <!></div> <div class="flex items-start pt-0.5" aria-hidden="true"><!></div></div></li>'), ge = e.from_html('<div class="date-group flex border-b border-border last:border-b-0 svelte-r2wh13" role="group"><!> <ul class="events-column flex-1 flex flex-col list-none p-0 m-0 svelte-r2wh13"></ul></div>'), ve = e.from_html('<div class="flex justify-center items-center p-6 text-text-secondary" role="status" aria-live="polite"><span class="text-sm">Loading more events...</span></div>'), ue = e.from_html('<section aria-label="Event listings"><h2 class="sr-only svelte-r2wh13">Event list grouped by date</h2> <!> <!></section>');
|
|
7
|
-
function _e(
|
|
7
|
+
function _e(L, m) {
|
|
8
8
|
e.push(m, !0);
|
|
9
|
-
let k = e.prop(m, "events", 19, () => []),
|
|
10
|
-
function
|
|
11
|
-
_ +=
|
|
9
|
+
let k = e.prop(m, "events", 19, () => []), P = e.prop(m, "initialCount", 3, 10), U = e.prop(m, "loadMoreCount", 3, 10), T = e.prop(m, "showDateColumn", 3, !0), A = e.prop(m, "filterFutureOnly", 3, !0), _ = P(), v, c, E = e.derived(() => A() ? re(k()) : k()), B = e.derived(() => R(e.get(E).slice(0, _))), C = e.derived(() => _ < e.get(E).length);
|
|
10
|
+
function G() {
|
|
11
|
+
_ += U();
|
|
12
12
|
}
|
|
13
13
|
te(() => {
|
|
14
14
|
c = new IntersectionObserver(
|
|
15
15
|
(r) => {
|
|
16
|
-
r[0].isIntersecting && e.get(C) &&
|
|
16
|
+
r[0].isIntersecting && e.get(C) && G();
|
|
17
17
|
},
|
|
18
18
|
{ rootMargin: "100px" }
|
|
19
19
|
), v && c.observe(v);
|
|
@@ -47,12 +47,12 @@ function _e(P, m) {
|
|
|
47
47
|
(r.key === "Enter" || r.key === " ") && (r.preventDefault(), M(a));
|
|
48
48
|
}
|
|
49
49
|
var b = ue();
|
|
50
|
-
let
|
|
51
|
-
var
|
|
52
|
-
e.each(
|
|
50
|
+
let O;
|
|
51
|
+
var S = e.sibling(e.child(b), 2);
|
|
52
|
+
e.each(S, 17, () => e.get(B), e.index, (r, a) => {
|
|
53
53
|
var s = ge(), n = e.child(s);
|
|
54
54
|
{
|
|
55
|
-
var
|
|
55
|
+
var q = (f) => {
|
|
56
56
|
var t = de(), o = e.child(t), y = e.child(o, !0);
|
|
57
57
|
e.reset(o);
|
|
58
58
|
var g = e.sibling(o, 2), d = e.child(g, !0);
|
|
@@ -63,7 +63,7 @@ function _e(P, m) {
|
|
|
63
63
|
}), e.append(f, t);
|
|
64
64
|
};
|
|
65
65
|
e.if(n, (f) => {
|
|
66
|
-
T() && f(
|
|
66
|
+
T() && f(q);
|
|
67
67
|
});
|
|
68
68
|
}
|
|
69
69
|
var j = e.sibling(n, 2);
|
|
@@ -71,7 +71,7 @@ function _e(P, m) {
|
|
|
71
71
|
const o = e.derived(() => ie(e.get(t))), y = e.derived(() => le(e.get(o)));
|
|
72
72
|
var g = fe(), d = e.child(g);
|
|
73
73
|
let u;
|
|
74
|
-
var p = e.child(d),
|
|
74
|
+
var p = e.child(d), J = e.child(p);
|
|
75
75
|
e.reset(p);
|
|
76
76
|
var w = e.sibling(p, 2), D = e.child(w), N = e.child(D, !0);
|
|
77
77
|
e.reset(D);
|
|
@@ -115,31 +115,31 @@ function _e(P, m) {
|
|
|
115
115
|
}
|
|
116
116
|
e.reset(Z), e.reset(d), e.reset(g), e.template_effect(
|
|
117
117
|
(i, l) => {
|
|
118
|
-
u = e.set_class(d, 1, "event-row flex gap-4 max-sm:gap-2.5 p-5 max-sm:p-3 cursor-pointer transition-colors duration-150 bg-card border-b border-border/50 last:border-b-0 hover:bg-bg-secondary focus:outline-2 focus:outline-brand-primary focus:-outline-offset-2 focus-visible:outline-2 focus-visible:outline-brand-primary:outline-brand-primary focus-visible:-outline-offset-2 svelte-r2wh13", null, u, { "row-unavailable": e.get(y) }), e.set_attribute(d, "aria-label", i), e.set_attribute(
|
|
118
|
+
u = e.set_class(d, 1, "event-row flex gap-4 max-sm:gap-2.5 p-5 max-sm:p-3 cursor-pointer transition-colors duration-150 bg-card border-b border-border/50 last:border-b-0 hover:bg-bg-secondary focus:outline-2 focus:outline-brand-primary focus:-outline-offset-2 focus-visible:outline-2 focus-visible:outline-brand-primary:outline-brand-primary focus-visible:-outline-offset-2 svelte-r2wh13", null, u, { "row-unavailable": e.get(y) }), e.set_attribute(d, "aria-label", i), e.set_attribute(J, "src", e.get(t).image || ne), e.set_text(N, e.get(t).name), e.set_attribute(h, "datetime", e.get(t).startDateTime || e.get(a).date), e.set_text(Q, l);
|
|
119
119
|
},
|
|
120
120
|
[
|
|
121
|
-
() => `${e.get(t).name} on ${e.get(t).startDateTime ? F(e.get(t).startDateTime, e.get(t).timeZone) : e.get(a).date} at ${e.get(t).startDateTime ?
|
|
122
|
-
() => e.get(t).startDateTime ?
|
|
121
|
+
() => `${e.get(t).name} on ${e.get(t).startDateTime ? F(e.get(t).startDateTime, e.get(t).timeZone) : e.get(a).date} at ${e.get(t).startDateTime ? I(e.get(t).startDateTime, e.get(t).timeZone) : ""}, ${e.get(o)?.text || e.get(t).status || "On Sale"}. Press Enter to view details.`,
|
|
122
|
+
() => e.get(t).startDateTime ? I(e.get(t).startDateTime, e.get(t).timeZone) : ""
|
|
123
123
|
]
|
|
124
124
|
), e.delegated("click", d, () => M(e.get(t))), e.delegated("keydown", d, (i) => z(i, e.get(t))), e.append(f, g);
|
|
125
125
|
}), e.reset(j), e.reset(s), e.template_effect((f) => e.set_attribute(s, "aria-label", `Events on ${f ?? ""}`), [
|
|
126
126
|
() => e.get(a).events[0]?.startDateTime ? F(e.get(a).events[0].startDateTime, e.get(a).events[0].timeZone) : e.get(a).date
|
|
127
127
|
]), e.append(r, s);
|
|
128
128
|
});
|
|
129
|
-
var H = e.sibling(
|
|
129
|
+
var H = e.sibling(S, 2);
|
|
130
130
|
{
|
|
131
|
-
var
|
|
131
|
+
var V = (r) => {
|
|
132
132
|
var a = ve();
|
|
133
133
|
e.bind_this(a, (s) => v = s, () => v), e.append(r, a);
|
|
134
134
|
};
|
|
135
135
|
e.if(H, (r) => {
|
|
136
|
-
e.get(C) && r(
|
|
136
|
+
e.get(C) && r(V);
|
|
137
137
|
});
|
|
138
138
|
}
|
|
139
|
-
e.reset(b), e.template_effect(() =>
|
|
139
|
+
e.reset(b), e.template_effect(() => O = e.set_class(b, 1, "flex flex-col gap-0 svelte-r2wh13", null, O, { "no-date-column": !T() })), e.append(L, b), e.pop();
|
|
140
140
|
}
|
|
141
141
|
e.delegate(["click", "keydown"]);
|
|
142
142
|
export {
|
|
143
143
|
_e as default
|
|
144
144
|
};
|
|
145
|
-
//# sourceMappingURL=GroupedListView.legacy-
|
|
145
|
+
//# sourceMappingURL=GroupedListView.legacy-D72fbNfA.js.map
|
package/dist/{GroupedListView.legacy-DMAwHQ9T.js.map → GroupedListView.legacy-D72fbNfA.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupedListView.legacy-DMAwHQ9T.js","sources":["../src/components/Calendar/GroupedListView.legacy.svelte"],"sourcesContent":["<script>\r\n // @ts-nocheck legacy fallback (legacy=1 path), slated for deletion after VC finalization — not type-maintained\r\n import { onMount, onDestroy } from \"svelte\";\r\n import { PLACEHOLDER_IMAGE } from \"$lib/utils/constants.js\";\r\n import { getDateParts, formatFullDate, formatEventTime } from \"$lib/utils/datetime.js\";\r\n import { getBrowseStatus, isEventUnavailable, filterTodayAndFuture } from \"$lib/utils/browse-status.js\";\r\n import ScarcityBadge from \"../ScarcityBadge.svelte\";\r\n\r\n let {\r\n events = [],\r\n initialCount = 10,\r\n loadMoreCount = 10,\r\n showDateColumn = true,\r\n filterFutureOnly = true,\r\n oneventClick\r\n } = $props();\r\n\r\n let displayedCount = initialCount;\r\n let loadMoreTrigger;\r\n let observer;\r\n\r\n // Filter to today and future (if enabled), then group by date\r\n let filteredEvents = $derived(filterFutureOnly ? filterTodayAndFuture(events) : events);\r\n let groupedEvents = $derived(groupEventsByDate(filteredEvents.slice(0, displayedCount)));\r\n let hasMore = $derived(displayedCount < filteredEvents.length);\r\n\r\n function loadMore() {\r\n displayedCount += loadMoreCount;\r\n }\r\n\r\n onMount(() => {\r\n observer = new IntersectionObserver(\r\n (entries) => {\r\n if (entries[0].isIntersecting && hasMore) {\r\n loadMore();\r\n }\r\n },\r\n { rootMargin: '100px' }\r\n );\r\n\r\n if (loadMoreTrigger) {\r\n observer.observe(loadMoreTrigger);\r\n }\r\n });\r\n\r\n onDestroy(() => {\r\n if (observer) {\r\n observer.disconnect();\r\n }\r\n });\r\n\r\n // Re-observe when trigger element changes\r\n $effect(() => {\r\n if (observer && loadMoreTrigger) {\r\n observer.disconnect();\r\n observer.observe(loadMoreTrigger);\r\n }\r\n });\r\n\r\n function groupEventsByDate(eventList) {\r\n const groups = {};\r\n\r\n for (const event of eventList) {\r\n const dateKey = event.date; // YYYY-MM-DD format\r\n if (!groups[dateKey]) {\r\n groups[dateKey] = [];\r\n }\r\n groups[dateKey].push(event);\r\n }\r\n\r\n // Convert to array sorted by date\r\n return Object.entries(groups)\r\n .sort(([a], [b]) => new Date(a) - new Date(b))\r\n .map(([date, events]) => ({\r\n date,\r\n events,\r\n formattedDate: formatGroupDate(events),\r\n }));\r\n }\r\n\r\n function formatGroupDate(events) {\r\n // Use the first event in the group to get timezone-aware date parts\r\n const firstEvent = events[0];\r\n if (!firstEvent?.startDateTime) return { month: '', day: '', weekday: '' };\r\n const parts = getDateParts(firstEvent.startDateTime, firstEvent.timeZone);\r\n return {\r\n month: parts.month.toUpperCase(),\r\n day: String(parts.date).padStart(2, '0'),\r\n weekday: parts.day.toUpperCase(),\r\n };\r\n }\r\n\r\n function handleEventClick(event) {\r\n oneventClick?.(event);\r\n }\r\n\r\n function handleKeydown(e, event) {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n handleEventClick(event);\r\n }\r\n }\r\n</script>\r\n\r\n<section class=\"flex flex-col gap-0\" class:no-date-column={!showDateColumn} aria-label=\"Event listings\">\r\n <h2 class=\"sr-only\">Event list grouped by date</h2>\r\n {#each groupedEvents as group}\r\n <div class=\"date-group flex border-b border-border last:border-b-0\" role=\"group\" aria-label=\"Events on {group.events[0]?.startDateTime ? formatFullDate(group.events[0].startDateTime, group.events[0].timeZone) : group.date}\">\r\n <!-- Date Column -->\r\n {#if showDateColumn}\r\n <div class=\"w-16 min-w-16 py-4 px-2.5 flex flex-col items-center justify-start bg-bg-secondary border-r border-border max-sm:w-12 max-sm:min-w-12 max-sm:py-2.5 max-sm:px-1.5\" aria-hidden=\"true\">\r\n <span class=\"text-xs font-semibold text-text-secondary uppercase tracking-tight\">{group.formattedDate.month}</span>\r\n <span class=\"text-2xl max-sm:text-lg font-bold text-text-primary leading-tight\">{group.formattedDate.day}</span>\r\n <span class=\"text-xs font-semibold text-text-secondary uppercase tracking-tight\">{group.formattedDate.weekday}</span>\r\n </div>\r\n {/if}\r\n\r\n <!-- Events Column -->\r\n <ul class=\"events-column flex-1 flex flex-col list-none p-0 m-0\">\r\n {#each group.events as event, eventIndex}\r\n {@const eventStatus = getBrowseStatus(event)}\r\n {@const isUnavailable = isEventUnavailable(eventStatus)}\r\n <li class=\"list-none\">\r\n <div\r\n class=\"event-row flex gap-4 max-sm:gap-2.5 p-5 max-sm:p-3 cursor-pointer transition-colors duration-150 bg-card border-b border-border/50 last:border-b-0 hover:bg-bg-secondary focus:outline-2 focus:outline-brand-primary focus:-outline-offset-2 focus-visible:outline-2 focus-visible:outline-brand-primary:outline-brand-primary focus-visible:-outline-offset-2\"\r\n class:row-unavailable={isUnavailable}\r\n onclick={() => handleEventClick(event)}\r\n onkeydown={(e) => handleKeydown(e, event)}\r\n tabindex=\"0\"\r\n role=\"button\"\r\n aria-label={`${event.name} on ${event.startDateTime ? formatFullDate(event.startDateTime, event.timeZone) : group.date} at ${event.startDateTime ? formatEventTime(event.startDateTime, event.timeZone) : ''}, ${eventStatus?.text || event.status || 'On Sale'}. Press Enter to view details.`}\r\n >\r\n <!-- Event Image -->\r\n <div class=\"w-36 h-24 min-w-36 max-sm:w-20 max-sm:h-16 max-sm:min-w-20 rounded-lg overflow-hidden bg-bg-secondary flex items-center justify-center\" aria-hidden=\"true\">\r\n <img\r\n src={event.image || PLACEHOLDER_IMAGE}\r\n alt=\"\"\r\n class=\"w-full h-full object-contain\"\r\n loading=\"lazy\"\r\n />\r\n </div>\r\n\r\n <!-- Event Details (visually shown but also in aria-label, so hide from SR) -->\r\n <div class=\"flex-1 flex flex-col gap-1.5 min-w-0\" aria-hidden=\"true\">\r\n <h3 class=\"text-lg max-sm:text-sm font-semibold text-text-primary m-0 leading-snug\">{event.name}</h3>\r\n <time class=\"text-sm max-sm:text-xs font-medium text-text-secondary\" datetime={event.startDateTime || group.date}>{event.startDateTime ? formatEventTime(event.startDateTime, event.timeZone) : ''}</time>\r\n {#if event.description}\r\n <p class=\"event-description text-sm text-text-secondary mt-1.5 mb-0 line-clamp-2 max-sm:hidden\">{event.description}</p>\r\n {/if}\r\n </div>\r\n\r\n <!-- Status / Scarcity Badge -->\r\n <div class=\"flex items-start pt-0.5\" aria-hidden=\"true\">\r\n {#if eventStatus}\r\n <span class=\"status-badge status-{eventStatus.type}\">{eventStatus.text}</span>\r\n {:else if event.ticketsTotal > 0 || event.ticketsRemaining === 0}\r\n <ScarcityBadge\r\n remaining={event.ticketsRemaining ?? 0}\r\n total={event.ticketsTotal ?? 0}\r\n context=\"browse\"\r\n />\r\n {/if}\r\n </div>\r\n </div>\r\n </li>\r\n {/each}\r\n </ul>\r\n </div>\r\n {/each}\r\n\r\n <!-- Infinite scroll trigger -->\r\n {#if hasMore}\r\n <div bind:this={loadMoreTrigger} class=\"flex justify-center items-center p-6 text-text-secondary\" role=\"status\" aria-live=\"polite\">\r\n <span class=\"text-sm\">Loading more events...</span>\r\n </div>\r\n {/if}\r\n</section>\r\n\r\n<style>\r\n /* When no date column, remove left border styling */\r\n .no-date-column .date-group {\r\n border-bottom: 0;\r\n }\r\n\r\n .no-date-column .events-column {\r\n border-left: 0;\r\n }\r\n\r\n .event-description {\r\n display: -webkit-box;\r\n -webkit-box-orient: vertical;\r\n overflow: hidden;\r\n }\r\n\r\n /* Unavailable row dimming */\r\n .row-unavailable {\r\n opacity: 0.6;\r\n }\r\n\r\n .row-unavailable img {\r\n filter: grayscale(0.5);\r\n }\r\n\r\n /* Status badges -- distinct visual treatments matching gallery cards */\r\n .status-badge {\r\n display: inline-flex;\r\n align-items: center;\r\n font-size: 0.75rem;\r\n line-height: 1rem;\r\n font-weight: 700;\r\n padding: 0.25rem 0.625rem;\r\n border-radius: 0.25rem;\r\n white-space: nowrap;\r\n letter-spacing: 0.02em;\r\n }\r\n\r\n .status-cancelled {\r\n background-color: hsl(var(--accent-danger) / 10%);\r\n color: hsl(var(--accent-danger));\r\n text-decoration: line-through;\r\n text-decoration-thickness: 1.5px;\r\n\r\n \r\n }\r\n\r\n .status-past {\r\n background-color: hsl(var(--bg-tertiary));\r\n color: hsl(var(--text-tertiary));\r\n\r\n \r\n }\r\n\r\n .status-sold_out {\r\n background-color: hsl(var(--accent-danger) / 10%);\r\n color: hsl(var(--accent-danger));\r\n text-transform: uppercase;\r\n letter-spacing: 0.05em;\r\n font-size: 0.65rem;\r\n\r\n \r\n }\r\n\r\n .status-sales_ended {\r\n background-color: hsl(var(--bg-tertiary));\r\n color: hsl(var(--text-tertiary));\r\n border: 1px solid hsl(var(--stroke-primary));\r\n\r\n \r\n }\r\n\r\n .status-coming_soon {\r\n background-color: hsl(var(--brand-primary) / 15%);\r\n color: hsl(var(--brand-primary));\r\n\r\n \r\n }\r\n\r\n /* Reduced motion */\r\n @media (prefers-reduced-motion: reduce) {\r\n .event-row {\r\n transition: none;\r\n }\r\n }\r\n\r\n /* Screen reader only text */\r\n .sr-only {\r\n position: absolute;\r\n width: 1px;\r\n height: 1px;\r\n padding: 0;\r\n margin: -1px;\r\n overflow: hidden;\r\n clip: rect(0, 0, 0, 0);\r\n white-space: nowrap;\r\n border-width: 0;\r\n }\r\n</style>\r\n"],"names":["events","$","$$props","initialCount","loadMoreCount","showDateColumn","filterFutureOnly","displayedCount","loadMoreTrigger","observer","filteredEvents","filterTodayAndFuture","groupedEvents","groupEventsByDate","hasMore","loadMore","onMount","entries","onDestroy","eventList","groups","event","dateKey","a","b","date","formatGroupDate","firstEvent","parts","getDateParts","handleEventClick","handleKeydown","e","section","root","node","group","div","root_1","div_1","root_2","span","span_1","span_2","$$render","consequent","ul","node_1","eventStatus","getBrowseStatus","isUnavailable","isEventUnavailable","li","root_3","div_2","div_3","img","div_4","h3","time","p","root_4","text_5","consequent_1","div_5","span_3","root_5","text_6","ScarcityBadge","$$anchor","consequent_2","consequent_3","classes_1","$0","PLACEHOLDER_IMAGE","text_3","formatFullDate","formatEventTime","div_6","root_7","$$value","consequent_4","classes"],"mappings":";;;;;;kBAAA;;MASIA,IAAMC,EAAA,KAAAC,GAAA,UAAA,IAAA,MAAA,EAAA,GACNC,iCAAe,EAAE,GACjBC,kCAAgB,EAAE,GAClBC,mCAAiB,EAAI,GACrBC,qCAAmB,EAAI,GAIrBC,IAAiBJ,EAAY,GAC7BK,GACAC,GAGAC,oBAA0BJ,MAAmBK,GAAqBX,EAAM,KAAIA,GAAM,GAClFY,IAAaX,EAAA,QAAA,MAAYY,EAAiBZ,EAAA,IAACS,CAAc,EAAC,MAAM,GAAGH,CAAc,CAAA,CAAA,GACjFO,IAAOb,EAAA,QAAA,MAAYM,IAAcN,EAAA,IAAGS,CAAc,EAAC,MAAM;AAEpD,WAAAK,IAAW;AAClB,IAAAR,KAAkBH,EAAa;AAAA,EACjC;AAEA,EAAAY,SAAc;AACZ,IAAAP,QAAe;AAAA,MACZ,CAAAQ,MAAY;AACP,QAAAA,EAAQ,CAAC,EAAE,kBAAchB,EAAA,IAAIa,CAAO,KACtCC,EAAQ;AAAA,MAEZ;AAAA,MACE,EAAA,YAAY,QAAO;AAAA,OAGnBP,KACFC,EAAS,QAAQD,CAAe;AAAA,EAEpC,CAAC,GAEDU,SAAgB;AACV,IAAAT,KACFA,EAAS,WAAU;AAAA,EAEvB,CAAC,GAGDR,EAAA,kBAAc;IACRQ,KAAYD,MACdC,EAAS,WAAU,GACnBA,EAAS,QAAQD,CAAe;AAAA,EAEpC,CAAC;WAEQK,EAAkBM,GAAW;UAC9BC,IAAM,CAAA;eAEDC,KAASF,GAAW;YACvBG,IAAUD,EAAM;MACjBD,EAAOE,CAAO,MACjBF,EAAOE,CAAO,IAAA,CAAA,IAEhBF,EAAOE,CAAO,EAAE,KAAKD,CAAK;AAAA,IAC5B;AAGO,WAAA,OAAO,QAAQD,CAAM,EACzB,KAAI,CAAA,CAAGG,CAAC,GAAA,CAAIC,CAAC,MAAA,IAAU,KAAKD,CAAC,IAAA,IAAQ,KAAKC,CAAC,CAAA,EAC3C,IAAG,CAAA,CAAGC,GAAMzB,CAAM,OAAA,EACjB,MAAAyB,GACA,QAAAzB,GACA,eAAe0B,EAAgB1B,CAAM,EAAA,EAAA;AAAA,EAE3C;WAES0B,EAAgB1B,GAAQ;UAEzB2B,IAAa3B,EAAO,CAAC;AACtB,QAAA,CAAA2B,GAAY,cAAa,QAAA,EAAW,OAAO,IAAI,KAAK,IAAI,SAAS,GAAE;UAClEC,IAAQC,GAAaF,EAAW,eAAeA,EAAW,QAAQ;;MAEtE,OAAOC,EAAM,MAAM,YAAW;AAAA,MAC9B,KAAK,OAAOA,EAAM,IAAI,EAAE,SAAS,GAAG,GAAG;AAAA,MACvC,SAASA,EAAM,IAAI,YAAW;AAAA;EAElC;WAESE,EAAiBT,GAAO;qBAChBA,CAAK;AAAA,EACtB;AAES,WAAAU,EAAcC,GAAGX,GAAO;KAC3BW,EAAE,QAAQ,WAAWA,EAAE,QAAQ,SACjCA,EAAE,eAAc,GAChBF,EAAiBT,CAAK;AAAA,EAE1B;MAGDY,IAAOC,GAAA;;4BAAPD,CAAO,GAAA,CAAA;AAEC,EAAAhC,EAAA,KAAAkC,GAAA,IAAA,MAAAlC,EAAA,IAAAW,CAAa,gBAAIwB,MAAK;QAC1BC,IAAGC,GAAA,eAAHD,CAAG;;;YAGCE,IAAGC,GAAA,GACDC,YADFF,CAAG,eACDE,GAAI,EAAA;gBAAJA,CAAI;AACJ,YAAAC,cADAD,GAAI,CAAA,eACJC,GAAI,EAAA;gBAAJA,CAAI;AACJ,YAAAC,cADAD,GAAI,CAAA,eACJC,GAAI,EAAA;gBAAJA,CAAI,WAHNJ,CAAG;8BACgFH,CAAK,EAAC,cAAc,KAAK,uBAC1BA,CAAK,EAAC,cAAc,GAAG,uBACtBA,CAAK,EAAC,cAAc,OAAO;AAAA,wBAH9GG,CAAG;AAAA;;QADDlC,EAAc,KAAAuC,EAAAC,CAAA;AAAA;;QASlBC,IAAE7C,EAAA,QAAA8C,GAAA,CAAA;AAAF,IAAA9C,EAAA,KAAA6C,GAAE,IAAA,MAAA7C,EAAA,IACMmC,CAAK,EAAC,qBAAUf,MAAK;YAClB2B,IAAW/C,EAAA,QAAA,MAAGgD,GAAehD,EAAA,IAACoB,CAAK,CAAA,CAAA,GACnC6B,IAAajD,EAAA,QAAA,MAAGkD,GAAkBlD,EAAA,IAAC+C,CAAW,CAAA,CAAA;UACrDI,IAAEC,GAAA,GACAC,YADFF,CAAE;;AAWE,UAAAG,YAVFD,CAAG,GAWCE,YADFD,CAAG;cAAHA,CAAG;AAUH,UAAAE,cAVAF,GAAG,CAAA,GAWDG,YADFD,CAAG,eACDC,GAAE,EAAA;cAAFA,CAAE;AACF,UAAAC,cADAD,GAAE,CAAA,eACFC,GAAI,EAAA;cAAJA,CAAI;wBAAJA,GAAI,CAAA;;;cAEFC,IAACC,GAAA,eAADD,GAAC,EAAA;kBAADA,CAAC,GAA+F3D,EAAA,gBAAA,MAAAA,EAAA,SAAA6D,GAAA7D,EAAA,IAAAoB,CAAK,EAAC,WAAW,CAAA,eAAjHuC,CAAC;AAAA;;AADC,UAAA3D,EAAA,IAAAoB,CAAK,EAAC,eAAWuB,EAAAmB,CAAA;AAAA;;cAHvBN,CAAG;AASH,UAAAO,cATAP,GAAG,CAAA,eASHO,CAAG;;;cAECC,IAAIC,GAAA,eAAJD,GAAI,EAAA;kBAAJA,CAAI;wBAAJA,GAAI,GAAA,uBAAAhE,EAAA,IAA6B+C,CAAW,EAAC,QAAI,EAAA,IAAA,eAAA,GAAI/C,EAAA,SAAAkE,GAAAlE,EAAA,IAAA+C,CAAW,EAAC,IAAI;AAAA,0BAArEiB,CAAI;AAAA;;0CAGQ5C,CAAK,EAAC,oBAAoB,CAAC,6BAC/BA,CAAK,EAAC,gBAAgB,CAAC;AAF/B,YAAA+C,GAAaC,GAAA;AAAA;;;;;;;;;;;gBAHXrB,CAAW,IAAAJ,EAAA0B,CAAA,KAAArE,EAAA,IAENoB,CAAK,EAAC,eAAe,KAACpB,EAAA,IAAIoB,CAAK,EAAC,qBAAqB,MAACuB,EAAA2B,IAAA,CAAA;AAAA;;cAHjEP,CAAG,WA7BLV,CAAG,WADLF,CAAE;;AACA,UAAAoB,IAAAvE,EAAA,UAAAqD,0ZAEwBJ,CAAa,EAAA,CAAA,mBAFrCI,GAAG,cAAAmB,CAAA,GAWCxE,EAAA,cAAAuD,GAAG,OAAAvD,EAAA,IACGoB,CAAK,EAAC,SAASqD,EAAiB,GAS8CzE,EAAA,SAAA0E,GAAA1E,EAAA,IAAAoB,CAAK,EAAC,IAAI,GAC9FpB,EAAA,cAAA0D,qBAA8EtC,CAAK,EAAC,iBAAapB,EAAA,IAAImC,CAAK,EAAC,IAAI;;;UAfnG,MAAA,GAAAnC,EAAA,IAAAoB,CAAK,EAAC,IAAI,OAAApB,EAAA,IAAOoB,CAAK,EAAC,gBAAgBuD,QAAevD,CAAK,EAAC,eAAapB,EAAA,IAAEoB,CAAK,EAAC,QAAQ,IAAIpB,EAAA,IAAAmC,CAAK,EAAC,IAAI,OAAAnC,EAAA,IAAOoB,CAAK,EAAC,gBAAgBwD,QAAgBxD,CAAK,EAAC,eAAapB,EAAA,IAAEoB,CAAK,EAAC,QAAQ,IAAI,EAAE,KAAApB,EAAA,IAAK+C,CAAW,GAAE,cAAQ3B,CAAK,EAAC,UAAU,SAAS;AAAA,UAe1I,MAAApB,EAAA,IAAAoB,CAAK,EAAC,gBAAgBwD,QAAgBxD,CAAK,EAAC,eAAapB,EAAA,IAAEoB,CAAK,EAAC,QAAQ,IAAI;AAAA;8BAtBnMiC,GAAG,MAGaxB,EAAgB7B,EAAA,IAACoB,CAAK,CAAA,CAAA,GAHtCpB,EAAA,UAAA,WAAAqD,IAIatB,MAAMD,EAAcC,SAAGX,CAAK,CAAA,CAAA,eAL3C+B,CAAE;AAAA,gBAJNN,CAAE,WAXJT,CAAG,4CAAHA,GAAG,cAAA,aAAAoC,KAAA,EAAA,EAAA,GAAA;AAAA,MAAoG,MAAAxE,EAAA,IAAAmC,CAAK,EAAC,OAAO,CAAC,GAAG,gBAAgBwC,EAAc3E,EAAA,IAACmC,CAAK,EAAC,OAAO,CAAC,EAAE,eAAanC,EAAA,IAAEmC,CAAK,EAAC,OAAO,CAAC,EAAE,QAAQ,IAAInC,EAAA,IAAAmC,CAAK,EAAC;AAAA,oBAAxNC,CAAG;AAAA;;;;UAiEHyC,IAAGC,GAAA;kBAAHD,GAAG,CAAAE,MAAYxE,IAAewE,GAAA,MAAfxE,CAAe,eAA9BsE,CAAG;AAAA;;YADDhE,CAAO,KAAA8B,EAAAqC,CAAA;AAAA;;UAnEbhD,CAAO,GAAPhC,EAAA,gBAAA,MAAAiF,IAAAjF,EAAA,UAAAgC,yEAA2D5B,EAAc,EAAA,CAAA,CAAA,eAAzE4B,CAAO;AAFA;;"}
|
|
1
|
+
{"version":3,"file":"GroupedListView.legacy-D72fbNfA.js","sources":["../src/components/Calendar/GroupedListView.legacy.svelte"],"sourcesContent":["<script>\r\n // @ts-nocheck legacy fallback (legacy=1 path), slated for deletion after VC finalization — not type-maintained\r\n import { onMount, onDestroy } from \"svelte\";\r\n import { PLACEHOLDER_IMAGE } from \"$lib/utils/constants.js\";\r\n import { getDateParts, formatFullDate, formatEventTime } from \"$lib/utils/datetime.js\";\r\n import { getBrowseStatus, isEventUnavailable, filterTodayAndFuture } from \"$lib/utils/browse-status.js\";\r\n import ScarcityBadge from \"../ScarcityBadge.svelte\";\r\n\r\n let {\r\n events = [],\r\n initialCount = 10,\r\n loadMoreCount = 10,\r\n showDateColumn = true,\r\n filterFutureOnly = true,\r\n oneventClick\r\n } = $props();\r\n\r\n let displayedCount = initialCount;\r\n let loadMoreTrigger;\r\n let observer;\r\n\r\n // Filter to today and future (if enabled), then group by date\r\n let filteredEvents = $derived(filterFutureOnly ? filterTodayAndFuture(events) : events);\r\n let groupedEvents = $derived(groupEventsByDate(filteredEvents.slice(0, displayedCount)));\r\n let hasMore = $derived(displayedCount < filteredEvents.length);\r\n\r\n function loadMore() {\r\n displayedCount += loadMoreCount;\r\n }\r\n\r\n onMount(() => {\r\n observer = new IntersectionObserver(\r\n (entries) => {\r\n if (entries[0].isIntersecting && hasMore) {\r\n loadMore();\r\n }\r\n },\r\n { rootMargin: '100px' }\r\n );\r\n\r\n if (loadMoreTrigger) {\r\n observer.observe(loadMoreTrigger);\r\n }\r\n });\r\n\r\n onDestroy(() => {\r\n if (observer) {\r\n observer.disconnect();\r\n }\r\n });\r\n\r\n // Re-observe when trigger element changes\r\n $effect(() => {\r\n if (observer && loadMoreTrigger) {\r\n observer.disconnect();\r\n observer.observe(loadMoreTrigger);\r\n }\r\n });\r\n\r\n function groupEventsByDate(eventList) {\r\n const groups = {};\r\n\r\n for (const event of eventList) {\r\n const dateKey = event.date; // YYYY-MM-DD format\r\n if (!groups[dateKey]) {\r\n groups[dateKey] = [];\r\n }\r\n groups[dateKey].push(event);\r\n }\r\n\r\n // Convert to array sorted by date\r\n return Object.entries(groups)\r\n .sort(([a], [b]) => new Date(a) - new Date(b))\r\n .map(([date, events]) => ({\r\n date,\r\n events,\r\n formattedDate: formatGroupDate(events),\r\n }));\r\n }\r\n\r\n function formatGroupDate(events) {\r\n // Use the first event in the group to get timezone-aware date parts\r\n const firstEvent = events[0];\r\n if (!firstEvent?.startDateTime) return { month: '', day: '', weekday: '' };\r\n const parts = getDateParts(firstEvent.startDateTime, firstEvent.timeZone);\r\n return {\r\n month: parts.month.toUpperCase(),\r\n day: String(parts.date).padStart(2, '0'),\r\n weekday: parts.day.toUpperCase(),\r\n };\r\n }\r\n\r\n function handleEventClick(event) {\r\n oneventClick?.(event);\r\n }\r\n\r\n function handleKeydown(e, event) {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n handleEventClick(event);\r\n }\r\n }\r\n</script>\r\n\r\n<section class=\"flex flex-col gap-0\" class:no-date-column={!showDateColumn} aria-label=\"Event listings\">\r\n <h2 class=\"sr-only\">Event list grouped by date</h2>\r\n {#each groupedEvents as group}\r\n <div class=\"date-group flex border-b border-border last:border-b-0\" role=\"group\" aria-label=\"Events on {group.events[0]?.startDateTime ? formatFullDate(group.events[0].startDateTime, group.events[0].timeZone) : group.date}\">\r\n <!-- Date Column -->\r\n {#if showDateColumn}\r\n <div class=\"w-16 min-w-16 py-4 px-2.5 flex flex-col items-center justify-start bg-bg-secondary border-r border-border max-sm:w-12 max-sm:min-w-12 max-sm:py-2.5 max-sm:px-1.5\" aria-hidden=\"true\">\r\n <span class=\"text-xs font-semibold text-text-secondary uppercase tracking-tight\">{group.formattedDate.month}</span>\r\n <span class=\"text-2xl max-sm:text-lg font-bold text-text-primary leading-tight\">{group.formattedDate.day}</span>\r\n <span class=\"text-xs font-semibold text-text-secondary uppercase tracking-tight\">{group.formattedDate.weekday}</span>\r\n </div>\r\n {/if}\r\n\r\n <!-- Events Column -->\r\n <ul class=\"events-column flex-1 flex flex-col list-none p-0 m-0\">\r\n {#each group.events as event, eventIndex}\r\n {@const eventStatus = getBrowseStatus(event)}\r\n {@const isUnavailable = isEventUnavailable(eventStatus)}\r\n <li class=\"list-none\">\r\n <div\r\n class=\"event-row flex gap-4 max-sm:gap-2.5 p-5 max-sm:p-3 cursor-pointer transition-colors duration-150 bg-card border-b border-border/50 last:border-b-0 hover:bg-bg-secondary focus:outline-2 focus:outline-brand-primary focus:-outline-offset-2 focus-visible:outline-2 focus-visible:outline-brand-primary:outline-brand-primary focus-visible:-outline-offset-2\"\r\n class:row-unavailable={isUnavailable}\r\n onclick={() => handleEventClick(event)}\r\n onkeydown={(e) => handleKeydown(e, event)}\r\n tabindex=\"0\"\r\n role=\"button\"\r\n aria-label={`${event.name} on ${event.startDateTime ? formatFullDate(event.startDateTime, event.timeZone) : group.date} at ${event.startDateTime ? formatEventTime(event.startDateTime, event.timeZone) : ''}, ${eventStatus?.text || event.status || 'On Sale'}. Press Enter to view details.`}\r\n >\r\n <!-- Event Image -->\r\n <div class=\"w-36 h-24 min-w-36 max-sm:w-20 max-sm:h-16 max-sm:min-w-20 rounded-lg overflow-hidden bg-bg-secondary flex items-center justify-center\" aria-hidden=\"true\">\r\n <img\r\n src={event.image || PLACEHOLDER_IMAGE}\r\n alt=\"\"\r\n class=\"w-full h-full object-contain\"\r\n loading=\"lazy\"\r\n />\r\n </div>\r\n\r\n <!-- Event Details (visually shown but also in aria-label, so hide from SR) -->\r\n <div class=\"flex-1 flex flex-col gap-1.5 min-w-0\" aria-hidden=\"true\">\r\n <h3 class=\"text-lg max-sm:text-sm font-semibold text-text-primary m-0 leading-snug\">{event.name}</h3>\r\n <time class=\"text-sm max-sm:text-xs font-medium text-text-secondary\" datetime={event.startDateTime || group.date}>{event.startDateTime ? formatEventTime(event.startDateTime, event.timeZone) : ''}</time>\r\n {#if event.description}\r\n <p class=\"event-description text-sm text-text-secondary mt-1.5 mb-0 line-clamp-2 max-sm:hidden\">{event.description}</p>\r\n {/if}\r\n </div>\r\n\r\n <!-- Status / Scarcity Badge -->\r\n <div class=\"flex items-start pt-0.5\" aria-hidden=\"true\">\r\n {#if eventStatus}\r\n <span class=\"status-badge status-{eventStatus.type}\">{eventStatus.text}</span>\r\n {:else if event.ticketsTotal > 0 || event.ticketsRemaining === 0}\r\n <ScarcityBadge\r\n remaining={event.ticketsRemaining ?? 0}\r\n total={event.ticketsTotal ?? 0}\r\n context=\"browse\"\r\n />\r\n {/if}\r\n </div>\r\n </div>\r\n </li>\r\n {/each}\r\n </ul>\r\n </div>\r\n {/each}\r\n\r\n <!-- Infinite scroll trigger -->\r\n {#if hasMore}\r\n <div bind:this={loadMoreTrigger} class=\"flex justify-center items-center p-6 text-text-secondary\" role=\"status\" aria-live=\"polite\">\r\n <span class=\"text-sm\">Loading more events...</span>\r\n </div>\r\n {/if}\r\n</section>\r\n\r\n<style>\r\n /* When no date column, remove left border styling */\r\n .no-date-column .date-group {\r\n border-bottom: 0;\r\n }\r\n\r\n .no-date-column .events-column {\r\n border-left: 0;\r\n }\r\n\r\n .event-description {\r\n display: -webkit-box;\r\n -webkit-box-orient: vertical;\r\n overflow: hidden;\r\n }\r\n\r\n /* Unavailable row dimming */\r\n .row-unavailable {\r\n opacity: 0.6;\r\n }\r\n\r\n .row-unavailable img {\r\n filter: grayscale(0.5);\r\n }\r\n\r\n /* Status badges -- distinct visual treatments matching gallery cards */\r\n .status-badge {\r\n display: inline-flex;\r\n align-items: center;\r\n font-size: 0.75rem;\r\n line-height: 1rem;\r\n font-weight: 700;\r\n padding: 0.25rem 0.625rem;\r\n border-radius: 0.25rem;\r\n white-space: nowrap;\r\n letter-spacing: 0.02em;\r\n }\r\n\r\n .status-cancelled {\r\n background-color: hsl(var(--accent-danger) / 10%);\r\n color: hsl(var(--accent-danger));\r\n text-decoration: line-through;\r\n text-decoration-thickness: 1.5px;\r\n\r\n \r\n }\r\n\r\n .status-past {\r\n background-color: hsl(var(--bg-tertiary));\r\n color: hsl(var(--text-tertiary));\r\n\r\n \r\n }\r\n\r\n .status-sold_out {\r\n background-color: hsl(var(--accent-danger) / 10%);\r\n color: hsl(var(--accent-danger));\r\n text-transform: uppercase;\r\n letter-spacing: 0.05em;\r\n font-size: 0.65rem;\r\n\r\n \r\n }\r\n\r\n .status-sales_ended {\r\n background-color: hsl(var(--bg-tertiary));\r\n color: hsl(var(--text-tertiary));\r\n border: 1px solid hsl(var(--stroke-primary));\r\n\r\n \r\n }\r\n\r\n .status-coming_soon {\r\n background-color: hsl(var(--brand-primary) / 15%);\r\n color: hsl(var(--brand-primary));\r\n\r\n \r\n }\r\n\r\n /* Reduced motion */\r\n @media (prefers-reduced-motion: reduce) {\r\n .event-row {\r\n transition: none;\r\n }\r\n }\r\n\r\n /* Screen reader only text */\r\n .sr-only {\r\n position: absolute;\r\n width: 1px;\r\n height: 1px;\r\n padding: 0;\r\n margin: -1px;\r\n overflow: hidden;\r\n clip: rect(0, 0, 0, 0);\r\n white-space: nowrap;\r\n border-width: 0;\r\n }\r\n</style>\r\n"],"names":["events","$","$$props","initialCount","loadMoreCount","showDateColumn","filterFutureOnly","displayedCount","loadMoreTrigger","observer","filteredEvents","filterTodayAndFuture","groupedEvents","groupEventsByDate","hasMore","loadMore","onMount","entries","onDestroy","eventList","groups","event","dateKey","a","b","date","formatGroupDate","firstEvent","parts","getDateParts","handleEventClick","handleKeydown","e","section","root_6","node","group","div","root_4","div_1","root","span","span_1","span_2","$$render","consequent","ul","node_1","eventStatus","getBrowseStatus","isUnavailable","isEventUnavailable","li","root_3","div_2","div_3","img","div_4","h3","time","p","root_1","text_5","consequent_1","div_5","span_3","root_2","text_6","ScarcityBadge","$$anchor","consequent_2","consequent_3","classes_1","$0","PLACEHOLDER_IMAGE","text_3","formatFullDate","formatEventTime","div_6","root_5","$$value","consequent_4","classes"],"mappings":";;;;;;kBAAA;;AAQE,MAAIA,IACIC,EAAA,KAAAC,GAAA,UAAA,IAAA,MAAA,EAAA,GACNC,iCAAe,EAAE,GACjBC,kCAAgB,EAAE,GAClBC,mCAAiB,EAAI,GACrBC,qCAAmB,EAAI,GAIrBC,IAAiBJ,EAAY,GAC7BK,GACAC,GAGAC,oBAA0BJ,MAAmBK,GAAqBX,EAAM,KAAIA,GAAM,GAClFY,IAAaX,EAAA,QAAA,MAAYY,EAAiBZ,EAAA,IAACS,CAAc,EAAC,MAAM,GAAGH,CAAc,CAAA,CAAA,GACjFO,IAAOb,EAAA,QAAA,MAAYM,IAAcN,EAAA,IAAGS,CAAc,EAAC,MAAM;AAE7D,WAASK,IAAW;AAClB,IAAAR,KAAkBH,EAAa;AAAA,EACjC;AAEA,EAAAY,SAAc;AACZ,IAAAP,IAAW,IAAI;AAAA,MACZ,CAAAQ,MAAY;AACX,QAAIA,EAAQ,CAAC,EAAE,kBAAchB,EAAA,IAAIa,CAAO,KACtCC,EAAQ;AAAA,MAEZ;AAAA,MACE,EAAA,YAAY,QAAO;AAAA,OAGnBP,KACFC,EAAS,QAAQD,CAAe;AAAA,EAEpC,CAAC,GAEDU,SAAgB;AACd,IAAIT,KACFA,EAAS,WAAU;AAAA,EAEvB,CAAC,GAGDR,EAAA,kBAAc;AACZ,IAAIQ,KAAYD,MACdC,EAAS,WAAU,GACnBA,EAAS,QAAQD,CAAe;AAAA,EAEpC,CAAC;AAED,WAASK,EAAkBM,GAAW;AACpC,UAAMC,IAAM,CAAA;AAEZ,eAAWC,KAASF,GAAW;AAC7B,YAAMG,IAAUD,EAAM;AACtB,MAAKD,EAAOE,CAAO,MACjBF,EAAOE,CAAO,IAAA,CAAA,IAEhBF,EAAOE,CAAO,EAAE,KAAKD,CAAK;AAAA,IAC5B;AAGA,WAAO,OAAO,QAAQD,CAAM,EACzB,KAAI,CAAA,CAAGG,CAAC,IAAIC,CAAC,MAAM,IAAI,KAAKD,CAAC,IAAI,IAAI,KAAKC,CAAC,GAC3C,IAAG,CAAA,CAAGC,GAAMzB,CAAM,OAAA,EACjB,MAAAyB,GACA,QAAAzB,GACA,eAAe0B,EAAgB1B,CAAM,EAAA,EAAA;AAAA,EAE3C;AAEA,WAAS0B,EAAgB1B,GAAQ;AAE/B,UAAM2B,IAAa3B,EAAO,CAAC;AAC3B,SAAK2B,GAAY,cAAe,QAAM,EAAG,OAAO,IAAI,KAAK,IAAI,SAAS,GAAE;AACxE,UAAMC,IAAQC,GAAaF,EAAW,eAAeA,EAAW,QAAQ;AACxE,WAAM;AAAA,MACJ,OAAOC,EAAM,MAAM,YAAW;AAAA,MAC9B,KAAK,OAAOA,EAAM,IAAI,EAAE,SAAS,GAAG,GAAG;AAAA,MACvC,SAASA,EAAM,IAAI,YAAW;AAAA;EAElC;AAEA,WAASE,EAAiBT,GAAO;qBAChBA,CAAK;AAAA,EACtB;AAEA,WAASU,EAAcC,GAAGX,GAAO;AAC/B,KAAIW,EAAE,QAAQ,WAAWA,EAAE,QAAQ,SACjCA,EAAE,eAAc,GAChBF,EAAiBT,CAAK;AAAA,EAE1B;MAGDY,IAAOC,GAAA;;4BAAPD,CAAO,GAAA,CAAA;AAEC,EAAAhC,EAAA,KAAAkC,GAAA,IAAA,MAAAlC,EAAA,IAAAW,CAAa,gBAAIwB,MAAK;QAC1BC,IAAGC,GAAA,eAAHD,CAAG;;;YAGCE,IAAGC,GAAA,GACDC,YADFF,CAAG,eACDE,GAAI,EAAA;gBAAJA,CAAI;AACJ,YAAAC,cADAD,GAAI,CAAA,eACJC,GAAI,EAAA;gBAAJA,CAAI;AACJ,YAAAC,cADAD,GAAI,CAAA,eACJC,GAAI,EAAA;gBAAJA,CAAI,WAHNJ,CAAG;8BACgFH,CAAK,EAAC,cAAc,KAAK,uBAC1BA,CAAK,EAAC,cAAc,GAAG,uBACtBA,CAAK,EAAC,cAAc,OAAO;AAAA,wBAH9GG,CAAG;AAAA;;QADDlC,EAAc,KAAAuC,EAAAC,CAAA;AAAA;;QASlBC,IAAE7C,EAAA,QAAA8C,GAAA,CAAA;AAAF,IAAA9C,EAAA,KAAA6C,GAAE,IAAA,MAAA7C,EAAA,IACMmC,CAAK,EAAC,qBAAUf,MAAK;YAClB2B,IAAW/C,EAAA,QAAA,MAAGgD,GAAehD,EAAA,IAACoB,CAAK,CAAA,CAAA,GACnC6B,IAAajD,EAAA,QAAA,MAAGkD,GAAkBlD,EAAA,IAAC+C,CAAW,CAAA,CAAA;UACrDI,IAAEC,GAAA,GACAC,YADFF,CAAE;;AAWE,UAAAG,YAVFD,CAAG,GAWCE,YADFD,CAAG;cAAHA,CAAG;AAUH,UAAAE,cAVAF,GAAG,CAAA,GAWDG,YADFD,CAAG,eACDC,GAAE,EAAA;cAAFA,CAAE;AACF,UAAAC,cADAD,GAAE,CAAA,eACFC,GAAI,EAAA;cAAJA,CAAI;wBAAJA,GAAI,CAAA;;;cAEFC,IAACC,GAAA,eAADD,GAAC,EAAA;kBAADA,CAAC,GAA+F3D,EAAA,gBAAA,MAAAA,EAAA,SAAA6D,GAAA7D,EAAA,IAAAoB,CAAK,EAAC,WAAW,CAAA,eAAjHuC,CAAC;AAAA;;AADC,UAAA3D,EAAA,IAAAoB,CAAK,EAAC,eAAWuB,EAAAmB,CAAA;AAAA;;cAHvBN,CAAG;AASH,UAAAO,cATAP,GAAG,CAAA,eASHO,CAAG;;;cAECC,IAAIC,GAAA,eAAJD,GAAI,EAAA;kBAAJA,CAAI;wBAAJA,GAAI,GAAA,uBAAAhE,EAAA,IAA6B+C,CAAW,EAAC,QAAI,EAAA,IAAA,eAAA,GAAI/C,EAAA,SAAAkE,GAAAlE,EAAA,IAAA+C,CAAW,EAAC,IAAI;AAAA,0BAArEiB,CAAI;AAAA;;0CAGQ5C,CAAK,EAAC,oBAAoB,CAAC,6BAC/BA,CAAK,EAAC,gBAAgB,CAAC;AAF/B,YAAA+C,GAAaC,GAAA;AAAA;;;;;;;;;;;gBAHXrB,CAAW,IAAAJ,EAAA0B,CAAA,KAAArE,EAAA,IAENoB,CAAK,EAAC,eAAe,KAACpB,EAAA,IAAIoB,CAAK,EAAC,qBAAqB,MAACuB,EAAA2B,IAAA,CAAA;AAAA;;cAHjEP,CAAG,WA7BLV,CAAG,WADLF,CAAE;;AACA,UAAAoB,IAAAvE,EAAA,UAAAqD,0ZAEwBJ,CAAa,EAAA,CAAA,mBAFrCI,GAAG,cAAAmB,CAAA,GAWCxE,EAAA,cAAAuD,GAAG,OAAAvD,EAAA,IACGoB,CAAK,EAAC,SAASqD,EAAiB,GAS8CzE,EAAA,SAAA0E,GAAA1E,EAAA,IAAAoB,CAAK,EAAC,IAAI,GAC9FpB,EAAA,cAAA0D,qBAA8EtC,CAAK,EAAC,iBAAapB,EAAA,IAAImC,CAAK,EAAC,IAAI;;;UAfnG,MAAA,GAAAnC,EAAA,IAAAoB,CAAK,EAAC,IAAI,OAAApB,EAAA,IAAOoB,CAAK,EAAC,gBAAgBuD,QAAevD,CAAK,EAAC,eAAapB,EAAA,IAAEoB,CAAK,EAAC,QAAQ,IAAIpB,EAAA,IAAAmC,CAAK,EAAC,IAAI,OAAAnC,EAAA,IAAOoB,CAAK,EAAC,gBAAgBwD,QAAgBxD,CAAK,EAAC,eAAapB,EAAA,IAAEoB,CAAK,EAAC,QAAQ,IAAI,EAAE,KAAApB,EAAA,IAAK+C,CAAW,GAAE,cAAQ3B,CAAK,EAAC,UAAU,SAAS;AAAA,UAe1I,MAAApB,EAAA,IAAAoB,CAAK,EAAC,gBAAgBwD,QAAgBxD,CAAK,EAAC,eAAapB,EAAA,IAAEoB,CAAK,EAAC,QAAQ,IAAI;AAAA;8BAtBnMiC,GAAG,MAGaxB,EAAgB7B,EAAA,IAACoB,CAAK,CAAA,CAAA,GAHtCpB,EAAA,UAAA,WAAAqD,IAIatB,MAAMD,EAAcC,SAAGX,CAAK,CAAA,CAAA,eAL3C+B,CAAE;AAAA,gBAJNN,CAAE,WAXJT,CAAG,4CAAHA,GAAG,cAAA,aAAAoC,KAAA,EAAA,EAAA,GAAA;AAAA,MAAoG,MAAAxE,EAAA,IAAAmC,CAAK,EAAC,OAAO,CAAC,GAAG,gBAAgBwC,EAAc3E,EAAA,IAACmC,CAAK,EAAC,OAAO,CAAC,EAAE,eAAanC,EAAA,IAAEmC,CAAK,EAAC,OAAO,CAAC,EAAE,QAAQ,IAAInC,EAAA,IAAAmC,CAAK,EAAC;AAAA,oBAAxNC,CAAG;AAAA;;;;UAiEHyC,IAAGC,GAAA;kBAAHD,GAAG,CAAAE,MAAYxE,IAAewE,GAAA,MAAfxE,CAAe,eAA9BsE,CAAG;AAAA;;YADDhE,CAAO,KAAA8B,EAAAqC,CAAA;AAAA;;UAnEbhD,CAAO,GAAPhC,EAAA,gBAAA,MAAAiF,IAAAjF,EAAA,UAAAgC,yEAA2D5B,EAAc,EAAA,CAAA,CAAA,eAAzE4B,CAAO;AAFA;;"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import "svelte/internal/disclose-version";
|
|
2
|
+
import * as e from "svelte/internal/client";
|
|
3
|
+
import { createContext as C } from "svelte";
|
|
4
|
+
import { as as _ } from "./VenueCalendar-d8u6MKEu.js";
|
|
5
|
+
const [P, z] = C();
|
|
6
|
+
var H = e.from_html("<div><!></div>");
|
|
7
|
+
function S(s, t) {
|
|
8
|
+
e.push(t, !0);
|
|
9
|
+
let a = e.prop(t, "padding", 3, !0), o = e.prop(t, "border", 3, !1), n = e.prop(t, "horizontal", 3, !1), i = e.prop(t, "minH", 3, "none"), m = e.prop(t, "class", 3, "");
|
|
10
|
+
const c = {
|
|
11
|
+
none: "",
|
|
12
|
+
sm: "min-h-64",
|
|
13
|
+
md: "min-h-80",
|
|
14
|
+
lg: "min-h-96",
|
|
15
|
+
xl: "min-h-screen"
|
|
16
|
+
};
|
|
17
|
+
let x = e.derived(() => c[i()] ?? i());
|
|
18
|
+
t.className;
|
|
19
|
+
const f = {
|
|
20
|
+
padding: a(),
|
|
21
|
+
border: o(),
|
|
22
|
+
horizontal: n()
|
|
23
|
+
};
|
|
24
|
+
z(f);
|
|
25
|
+
var r = H(), g = e.child(r);
|
|
26
|
+
{
|
|
27
|
+
var h = (l) => {
|
|
28
|
+
var d = e.comment(), v = e.first_child(d);
|
|
29
|
+
e.snippet(v, () => t.children), e.append(l, d);
|
|
30
|
+
};
|
|
31
|
+
e.if(g, (l) => {
|
|
32
|
+
t.children && l(h);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
e.reset(r), e.template_effect((l) => e.set_class(r, 1, l), [
|
|
36
|
+
() => e.clsx(_("bg-card rounded-lg shadow-md", o() && "border border-border", a() && "p-6", n() && "flex flex-row", e.get(x), m(), t.className))
|
|
37
|
+
]), e.append(s, r), e.pop();
|
|
38
|
+
}
|
|
39
|
+
function j(s, t) {
|
|
40
|
+
e.push(t, !0);
|
|
41
|
+
let a = e.prop(t, "level", 3, 2), o = e.prop(t, "weight", 3, "semibold"), n = e.prop(t, "color", 3, "default"), i = e.prop(t, "class", 3, "");
|
|
42
|
+
const m = { 1: "3xl", 2: "2xl", 3: "xl", 4: "lg", 5: "base", 6: "sm" }, c = {
|
|
43
|
+
xs: "text-xs",
|
|
44
|
+
sm: "text-sm",
|
|
45
|
+
base: "text-base",
|
|
46
|
+
md: "text-base",
|
|
47
|
+
lg: "text-lg",
|
|
48
|
+
xl: "text-xl",
|
|
49
|
+
"2xl": "text-2xl",
|
|
50
|
+
"3xl": "text-3xl",
|
|
51
|
+
"4xl": "text-4xl",
|
|
52
|
+
"5xl": "text-5xl"
|
|
53
|
+
}, x = {
|
|
54
|
+
normal: "font-normal",
|
|
55
|
+
medium: "font-medium",
|
|
56
|
+
semibold: "font-semibold",
|
|
57
|
+
bold: "font-bold"
|
|
58
|
+
}, f = {
|
|
59
|
+
default: "text-text-primary",
|
|
60
|
+
muted: "text-text-secondary",
|
|
61
|
+
primary: "text-primary",
|
|
62
|
+
none: ""
|
|
63
|
+
};
|
|
64
|
+
let r = e.derived(() => t.size || m[a()]), g = e.derived(() => `h${a()}`), h = e.derived(() => [
|
|
65
|
+
c[e.get(r)] || "text-lg",
|
|
66
|
+
x[o()],
|
|
67
|
+
f[n()] || "",
|
|
68
|
+
i()
|
|
69
|
+
].filter(Boolean).join(" "));
|
|
70
|
+
var l = e.comment(), d = e.first_child(l);
|
|
71
|
+
e.element(d, () => e.get(g), !1, (v, b) => {
|
|
72
|
+
e.attribute_effect(v, () => ({ id: t.id, class: e.get(h) }));
|
|
73
|
+
var p = e.comment(), u = e.first_child(p);
|
|
74
|
+
e.snippet(u, () => t.children), e.append(b, p);
|
|
75
|
+
}), e.append(s, l), e.pop();
|
|
76
|
+
}
|
|
77
|
+
export {
|
|
78
|
+
S as C,
|
|
79
|
+
j as H
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=Heading-Bwevh2c4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Heading-Bwevh2c4.js","sources":["../node_modules/@getmicdrop/svelte-components/dist/primitives/Card/context.js","../node_modules/@getmicdrop/svelte-components/dist/primitives/Card/CardRoot.svelte","../node_modules/@getmicdrop/svelte-components/dist/components/Heading.svelte"],"sourcesContent":["/**\n * Card compound component context.\n *\n * Convention: Every compound component gets a context.ts file using\n * Svelte 5's createContext(). The returned [get, set] tuple provides\n * type-safe context that auto-throws if a sub-component is used\n * outside its Root.\n *\n * Card context is static (no $state flags) because Card has no\n * child-to-parent signaling like Alert does.\n */\nimport { createContext } from 'svelte';\nexport const [getCardContext, setCardContext] = createContext();\n","<script lang=\"ts\">\r\n import type { Snippet } from 'svelte';\r\n import { setCardContext, type CardContext } from './context.js';\r\n import { cn } from '../../utils/classNames.js';\r\n import { deprecation } from '../../utils/deprecation.js';\r\n\r\n /**\r\n * Reserve a minimum height so the card doesn't collapse on empty/loading\r\n * states. Prevents Cumulative Layout Shift when content swaps in.\r\n * 'sm' = 24rem | 'md' = 32rem | 'lg' = 44rem | 'xl' = 56rem\r\n * Or pass a Tailwind class string (e.g. 'min-h-screen') for custom values.\r\n */\r\n type MinHeight = 'none' | 'sm' | 'md' | 'lg' | 'xl' | string;\r\n\r\n interface Props {\r\n padding?: boolean;\r\n border?: boolean;\r\n horizontal?: boolean;\r\n minH?: MinHeight;\r\n class?: string;\r\n className?: string;\r\n children?: Snippet;\r\n }\r\n\r\n let {\r\n padding = true,\r\n border = false,\r\n horizontal = false,\r\n minH = 'none',\r\n class: classFromProp = '',\r\n className,\r\n children,\r\n }: Props = $props();\r\n\r\n // Mapped to Tailwind's standard min-h scale (no arbitrary values).\r\n // sm = 16rem (256px) | md = 20rem (320px) | lg = 24rem (384px) | xl = full screen\r\n const minHPresets: Record<string, string> = {\r\n none: '',\r\n sm: 'min-h-64',\r\n md: 'min-h-80',\r\n lg: 'min-h-96',\r\n xl: 'min-h-screen',\r\n };\r\n let minHClass = $derived(minHPresets[minH] ?? minH);\r\n\r\n // eslint-disable-next-line svelte/valid-compile -- known Svelte compiler note, accepted for this primitive\n if (className) {\r\n deprecation(\r\n `Card prop 'className' is deprecated. Use 'class' instead.\\n` +\r\n ` Before: <Card className=\"my-class\" />\\n` +\r\n ` After: <Card class=\"my-class\" />`\r\n );\r\n }\r\n\r\n // eslint-disable-next-line svelte/valid-compile -- known Svelte compiler note, accepted for this primitive\n const ctx: CardContext = { padding, border, horizontal };\r\n setCardContext(ctx);\r\n</script>\r\n\r\n<div\r\n class={cn(\r\n 'bg-card rounded-lg shadow-md',\r\n border && 'border border-border',\r\n padding && 'p-6',\r\n horizontal && 'flex flex-row',\r\n minHClass,\r\n classFromProp,\r\n className,\r\n )}\r\n>\r\n {#if children}{@render children()}{/if}\r\n</div>\r\n","<script lang=\"ts\">\r\n import type { Snippet } from 'svelte';\r\n\r\n type Level = 1 | 2 | 3 | 4 | 5 | 6;\r\n type Size = 'xs' | 'sm' | 'base' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl';\r\n\r\n interface Props {\r\n level?: Level;\r\n size?: Size;\r\n weight?: 'normal' | 'medium' | 'semibold' | 'bold';\r\n color?: 'default' | 'muted' | 'primary' | 'none';\r\n class?: string;\r\n id?: string;\r\n children: Snippet;\r\n }\r\n\r\n let {\r\n level = 2,\r\n size,\r\n weight = 'semibold',\r\n color = 'default',\r\n class: className = '',\r\n id,\r\n children,\r\n }: Props = $props();\r\n\r\n const levelToSize: Record<Level, Size> = {\r\n 1: '3xl',\r\n 2: '2xl',\r\n 3: 'xl',\r\n 4: 'lg',\r\n 5: 'base',\r\n 6: 'sm',\r\n };\r\n\r\n const sizeClasses: Record<string, string> = {\r\n xs: 'text-xs',\r\n sm: 'text-sm',\r\n base: 'text-base',\r\n md: 'text-base',\r\n lg: 'text-lg',\r\n xl: 'text-xl',\r\n '2xl': 'text-2xl',\r\n '3xl': 'text-3xl',\r\n '4xl': 'text-4xl',\r\n '5xl': 'text-5xl',\r\n };\r\n\r\n const weightClasses: Record<string, string> = {\r\n normal: 'font-normal',\r\n medium: 'font-medium',\r\n semibold: 'font-semibold',\r\n bold: 'font-bold',\r\n };\r\n\r\n const colorClasses: Record<string, string> = {\r\n default: 'text-text-primary',\r\n muted: 'text-text-secondary',\r\n primary: 'text-primary',\r\n none: '',\r\n };\r\n\r\n let effectiveSize = $derived(size || levelToSize[level]);\r\n let element = $derived(`h${level}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6');\r\n\r\n let classes = $derived(\r\n [\r\n sizeClasses[effectiveSize] || 'text-lg',\r\n weightClasses[weight],\r\n colorClasses[color] || '',\r\n className,\r\n ]\r\n .filter(Boolean)\r\n .join(' '),\r\n );\r\n</script>\r\n\r\n<svelte:element this={element} {id} class={classes}>{@render children()}</svelte:element>\r\n"],"names":["getCardContext","setCardContext","createContext","padding","$","$$props","border","horizontal","minH","classFromProp","minHPresets","minHClass","ctx","div","root","$0","cn","level","weight","color","className","levelToSize","sizeClasses","weightClasses","colorClasses","effectiveSize","element","classes","$$element","$$anchor"],"mappings":";;;;AAYO,MAAM,CAACA,GAAgBC,CAAc,IAAIC,EAAa;;iBCZ7D;;AAwBE,MACEC,IAAOC,EAAA,KAAAC,GAAA,WAAA,GAAG,EAAI,GACdC,2BAAS,EAAK,GACdC,+BAAa,EAAK,GAClBC,yBAAO,MAAM,GACNC,0BAAgB,EAAE;AAO3B,QAAMC,IAAmC;AAAA,IACvC,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA;AAEN,MAAIC,IAASP,EAAA,QAAA,MAAYM,EAAYF,EAAI,MAAKA,GAAI;AAGlD;AASA,QAAMI,IAAgB;AAAA,IAAK,SAAAT,EAAO;AAAA,IAAE,QAAAG,EAAM;AAAA,IAAE,YAAAC,EAAU;AAAA;AACtD,EAAAN,EAAeW,CAAG;MAGnBC,IAAGC,EAAA,eAAHD,CAAG;;;;;;;;;;UAAHA,CAAG,wCAAHA,GAAG,GAAAE,CAAA,GAAA;AAAA,IACK,MAAAX,EAAA,KAAAY,EACL,gCACAV,OAAU,wBACVH,OAAW,OACXI,OAAc,iBAAeH,EAAA,IAC7BO,CAAS,GACTF,EAAa,GAAAJ,EAAA,SAAA,CAAA;AAAA,kBAPhBQ,CAAG;AAFI;iBCzDR;;AAgBE,MACEI,IAAKb,EAAA,KAAAC,GAAA,SAAA,GAAG,CAAC,GAETa,2BAAS,UAAU,GACnBC,0BAAQ,SAAS,GACVC,0BAAY,EAAE;AAKvB,QAAMC,IAAgC,EACpC,GAAG,OACH,GAAG,OACH,GAAG,MACH,GAAG,MACH,GAAG,QACH,GAAG,KAAI,GAGHC,IAAmC;AAAA,IACvC,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,KAGHC,IAAqC;AAAA,IACzC,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,MAAM;AAAA,KAGFC,IAAoC;AAAA,IACxC,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA;AAGR,MAAIC,IAAarB,EAAA,QAAA,MAAAC,EAAA,QAAoBgB,EAAYJ,EAAK,CAAA,CAAA,GAClDS,wBAAuBT,EAAK,CAAA,EAAA,GAE5BU,IAAOvB,EAAA,QAAA,MAAA;AAAA,IAEPkB,EAAWlB,EAAA,IAACqB,CAAa,CAAA,KAAK;AAAA,IAC9BF,EAAcL,EAAM,CAAA;AAAA,IACpBM,EAAaL,EAAK,CAAA,KAAK;AAAA,IACvBC,EAAS;AAAA,EAER,EAAA,OAAO,OAAO,EACd,KAAK,GAAG,CAAA;;2BAIOM,CAAO,GAAA,IAAA,CAAAE,GAAAC,MAAA;0DAAcF,CAAO,EAAA,EAAA;;;;AAF1C;","x_google_ignoreList":[0,1,2]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import "svelte/internal/disclose-version";
|
|
2
|
+
import * as e from "svelte/internal/client";
|
|
3
|
+
import { ar as c, as as l } from "./VenueCalendar-d8u6MKEu.js";
|
|
4
|
+
var m = e.from_html("<div><!></div>");
|
|
5
|
+
function v(d, t) {
|
|
6
|
+
e.push(t, !0), c();
|
|
7
|
+
var r = m(), n = e.child(r);
|
|
8
|
+
{
|
|
9
|
+
var o = (a) => {
|
|
10
|
+
var i = e.comment(), s = e.first_child(i);
|
|
11
|
+
e.snippet(s, () => t.children), e.append(a, i);
|
|
12
|
+
};
|
|
13
|
+
e.if(n, (a) => {
|
|
14
|
+
t.children && a(o);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
e.reset(r), e.template_effect((a) => e.set_class(r, 1, a), [() => e.clsx(l("shrink-0 px-6 pt-6 pb-3", t.class))]), e.append(d, r), e.pop();
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
v as M
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=ModalHeader-DKwE5ZYZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalHeader-DKwE5ZYZ.js","sources":["../node_modules/@getmicdrop/svelte-components/dist/primitives/Modal/ModalHeader.svelte"],"sourcesContent":["<script lang=\"ts\">\r\n import type { Snippet } from 'svelte';\r\n import { getModalContext } from './context.js';\r\n import { cn } from '../../utils/classNames.js';\r\n\r\n interface Props {\r\n class?: string;\r\n children?: Snippet;\r\n }\r\n\r\n let { class: className, children }: Props = $props();\r\n\r\n // Validates this component is inside ModalRoot\r\n getModalContext();\r\n</script>\r\n\r\n<div class={cn('shrink-0 px-6 pt-6 pb-3', className)}>\r\n {#if children}{@render children()}{/if}\r\n</div>\r\n"],"names":["getModalContext","div","root","$0","$","cn","$$props"],"mappings":";;;;iBAAA;iBAaEA,EAAe;MAGhBC,IAAGC,EAAA,eAAHD,CAAG;;;;;;;;;;UAAHA,CAAG,wCAAHA,GAAG,GAAAE,CAAA,GAAA,CAAA,MAAAC,EAAA,KAAQC,EAAG,2BAAyBC,EAAA,KAAA,CAAA,CAAA,CAAA,eAAvCL,CAAG;AAFI;","x_google_ignoreList":[0]}
|