@getmicdrop/venue-calendar 3.5.3 → 3.6.0
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 +661 -661
- package/dist/CarouselView.legacy-DeWfW7JT.js +64 -0
- package/dist/CarouselView.legacy-DeWfW7JT.js.map +1 -0
- package/dist/{Checkout.legacy-Btt0uT61.js → Checkout.legacy-CJPThT4I.js} +180 -183
- package/dist/Checkout.legacy-CJPThT4I.js.map +1 -0
- package/dist/{CollectionView.legacy-Bxih-dA-.js → CollectionView.legacy-BG3g7XbI.js} +128 -127
- package/dist/CollectionView.legacy-BG3g7XbI.js.map +1 -0
- package/dist/FeaturedView.legacy-CALzP8EW.js +128 -0
- package/dist/FeaturedView.legacy-CALzP8EW.js.map +1 -0
- package/dist/GalleryView.legacy-DIhYvOQU.js +51 -0
- package/dist/GalleryView.legacy-DIhYvOQU.js.map +1 -0
- package/dist/GroupedListView.legacy-C9dQ_v_d.js +144 -0
- package/dist/GroupedListView.legacy-C9dQ_v_d.js.map +1 -0
- package/dist/{SeriesPage.legacy-Ka81Mn73.js → SeriesPage.legacy-hSI5Sm8W.js} +2 -2
- package/dist/SeriesPage.legacy-hSI5Sm8W.js.map +1 -0
- package/dist/Success.legacy-DEjngxhO.js +191 -0
- package/dist/Success.legacy-DEjngxhO.js.map +1 -0
- package/dist/{VenueCalendar-B5Y29ZJD.js → VenueCalendar-DvT1UOq-.js} +13786 -13474
- package/dist/VenueCalendar-DvT1UOq-.js.map +1 -0
- package/dist/api/api.cjs +1 -1
- package/dist/api/api.cjs.map +1 -1
- package/dist/api/api.mjs +278 -266
- package/dist/api/api.mjs.map +1 -1
- package/dist/api/types.d.ts +349 -349
- package/dist/colors-BZoMuXdh.js.map +1 -1
- package/dist/seo/seo.cjs +1 -1
- package/dist/seo/seo.cjs.map +1 -1
- package/dist/seo/seo.mjs +52 -40
- package/dist/seo/seo.mjs.map +1 -1
- package/dist/seo/types.d.ts +136 -135
- package/dist/types/index.d.ts +387 -387
- package/dist/venue-calendar.css +1 -1
- package/dist/venue-calendar.es.js +2 -2
- package/dist/venue-calendar.iife.js +42 -42
- package/dist/venue-calendar.iife.js.map +1 -1
- package/dist/venue-calendar.umd.js +42 -42
- package/dist/venue-calendar.umd.js.map +1 -1
- package/package.json +121 -112
- package/src/lib/theme.js +213 -209
- package/dist/CarouselView.legacy-CRHakGOL.js +0 -64
- package/dist/CarouselView.legacy-CRHakGOL.js.map +0 -1
- package/dist/Checkout.legacy-Btt0uT61.js.map +0 -1
- package/dist/CollectionView.legacy-Bxih-dA-.js.map +0 -1
- package/dist/FeaturedView.legacy-CVEXHJBx.js +0 -128
- package/dist/FeaturedView.legacy-CVEXHJBx.js.map +0 -1
- package/dist/GalleryView.legacy-Ci-IHtAe.js +0 -51
- package/dist/GalleryView.legacy-Ci-IHtAe.js.map +0 -1
- package/dist/GroupedListView.legacy-qisy7BOS.js +0 -144
- package/dist/GroupedListView.legacy-qisy7BOS.js.map +0 -1
- package/dist/SeriesPage.legacy-Ka81Mn73.js.map +0 -1
- package/dist/Success.legacy-D72O08IB.js +0 -191
- package/dist/Success.legacy-D72O08IB.js.map +0 -1
- package/dist/VenueCalendar-B5Y29ZJD.js.map +0 -1
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import "svelte/internal/disclose-version";
|
|
2
|
+
import * as e from "svelte/internal/client";
|
|
3
|
+
import { f as H, P as M, b as D, c as Z } from "./VenueCalendar-DvT1UOq-.js";
|
|
4
|
+
var O = e.from_html('<div class="hero-image-container relative w-full bg-muted overflow-hidden svelte-ndk2q7"><img alt="" class="hero-image svelte-ndk2q7" aria-hidden="true"/></div>'), R = e.from_html('<div class="hero-image-container relative w-full bg-muted overflow-hidden flex items-center justify-center svelte-ndk2q7"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" class="w-16 h-16 text-muted-foreground"><rect x="2" y="2" width="20" height="20" rx="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><path d="m21 15-5-5L5 21"></path></svg></div>'), S = e.from_html('<span class="w-1.5 h-1.5 rounded-full bg-brand-primary"></span> Series', 1), V = e.from_html('<span class="w-1.5 h-1.5 rounded-full bg-brand-primary"></span> Collection', 1), z = e.from_html('<span class="text-muted-foreground">·</span> ', 1), J = e.from_html('<p class="text-base text-text-secondary font-medium"> <!></p>'), K = e.from_html('<div class="featured-hero rounded-lg border border-border bg-card overflow-hidden"><!> <div class="p-4 sm:p-5"><div class="inline-flex items-center gap-1.5 text-xs font-semibold text-brand-primary uppercase tracking-wide mb-2"><!> <!></div> <h2 class="hero-title text-xl sm:text-2xl font-bold text-text-primary mb-2 svelte-ndk2q7"> </h2> <!></div></div>'), Q = e.from_html('<span class="text-muted-foreground mx-1">·</span> ', 1), U = e.from_html('<p class="hero-description text-sm text-text-secondary mt-2 svelte-ndk2q7"> </p>'), W = e.from_html('<div class="featured-hero featured-hero-clickable rounded-lg border border-border bg-card overflow-hidden cursor-pointer hover:border-stroke-primary focus-visible:outline-2 focus-visible:outline-brand-primary:outline-brand-primary focus-visible:outline-offset-2 svelte-ndk2q7" tabindex="0" role="button"><div class="hero-image-container relative w-full bg-muted overflow-hidden svelte-ndk2q7"><img alt="" class="hero-image svelte-ndk2q7" aria-hidden="true"/></div> <div class="p-4 sm:p-5" aria-hidden="true"><h2 class="hero-title text-xl sm:text-2xl font-bold text-text-primary mb-2 svelte-ndk2q7"> </h2> <p class="text-base text-text-secondary font-medium"> <!></p> <!></div></div>'), X = e.from_html('<div class="flex items-center justify-center py-12 rounded-lg border border-border bg-bg-secondary"><p class="text-sm text-muted-foreground">No upcoming events to feature</p></div>'), Y = e.from_html('<section class="w-full" aria-label="Featured event"><!></section>');
|
|
5
|
+
function te(F, u) {
|
|
6
|
+
e.push(u, !0);
|
|
7
|
+
let A = e.prop(u, "events", 19, () => []), o = e.prop(u, "featuredItem", 3, null), T = e.derived(() => H(A())), r = e.derived(() => e.get(T).length > 0 ? e.get(T)[0] : null);
|
|
8
|
+
function E() {
|
|
9
|
+
e.get(r) && u.oneventClick?.(e.get(r));
|
|
10
|
+
}
|
|
11
|
+
var b = Y(), I = e.child(b);
|
|
12
|
+
{
|
|
13
|
+
var L = (d) => {
|
|
14
|
+
var s = K(), n = e.child(s);
|
|
15
|
+
{
|
|
16
|
+
var w = (t) => {
|
|
17
|
+
var a = O(), f = e.child(a);
|
|
18
|
+
e.reset(a), e.template_effect(() => e.set_attribute(f, "src", o().image)), e.append(t, a);
|
|
19
|
+
}, h = (t) => {
|
|
20
|
+
var a = R();
|
|
21
|
+
e.append(t, a);
|
|
22
|
+
};
|
|
23
|
+
e.if(n, (t) => {
|
|
24
|
+
o().image ? t(w) : t(h, !1);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
var v = e.sibling(n, 2), c = e.child(v), m = e.child(c);
|
|
28
|
+
{
|
|
29
|
+
var x = (t) => {
|
|
30
|
+
var a = S();
|
|
31
|
+
e.next(), e.append(t, a);
|
|
32
|
+
}, y = (t) => {
|
|
33
|
+
var a = V();
|
|
34
|
+
e.next(), e.append(t, a);
|
|
35
|
+
};
|
|
36
|
+
e.if(m, (t) => {
|
|
37
|
+
o().type === "series" ? t(x) : t(y, !1);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
var k = e.sibling(m, 2);
|
|
41
|
+
{
|
|
42
|
+
var q = (t) => {
|
|
43
|
+
var a = z(), f = e.sibling(e.first_child(a));
|
|
44
|
+
e.template_effect(() => e.set_text(f, ` ${o().subtitle ?? ""}`)), e.append(t, a);
|
|
45
|
+
};
|
|
46
|
+
e.if(k, (t) => {
|
|
47
|
+
o().subtitle && t(q);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
e.reset(c);
|
|
51
|
+
var p = e.sibling(c, 2), i = e.child(p, !0);
|
|
52
|
+
e.reset(p);
|
|
53
|
+
var l = e.sibling(p, 2);
|
|
54
|
+
{
|
|
55
|
+
var g = (t) => {
|
|
56
|
+
var a = J(), f = e.child(a), N = e.sibling(f);
|
|
57
|
+
{
|
|
58
|
+
var B = (_) => {
|
|
59
|
+
var C = e.text();
|
|
60
|
+
e.template_effect((G) => e.set_text(C, `at ${G ?? ""}`), [
|
|
61
|
+
() => Z(e.get(r).startDateTime, e.get(r).timeZone)
|
|
62
|
+
]), e.append(_, C);
|
|
63
|
+
};
|
|
64
|
+
e.if(N, (_) => {
|
|
65
|
+
e.get(r).startDateTime && _(B);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
e.reset(a), e.template_effect((_) => e.set_text(f, `Next: ${_ ?? ""} `), [
|
|
69
|
+
() => D(e.get(r).startDateTime, e.get(r).timeZone)
|
|
70
|
+
]), e.append(t, a);
|
|
71
|
+
};
|
|
72
|
+
e.if(l, (t) => {
|
|
73
|
+
e.get(r) && t(g);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
e.reset(v), e.reset(s), e.template_effect(() => e.set_text(i, o().title)), e.append(d, s);
|
|
77
|
+
}, P = (d) => {
|
|
78
|
+
var s = W(), n = e.child(s), w = e.child(n);
|
|
79
|
+
e.reset(n);
|
|
80
|
+
var h = e.sibling(n, 2), v = e.child(h), c = e.child(v, !0);
|
|
81
|
+
e.reset(v);
|
|
82
|
+
var m = e.sibling(v, 2), x = e.child(m), y = e.sibling(x);
|
|
83
|
+
{
|
|
84
|
+
var k = (i) => {
|
|
85
|
+
var l = Q(), g = e.sibling(e.first_child(l));
|
|
86
|
+
e.template_effect((t) => e.set_text(g, ` ${t ?? ""}`), [
|
|
87
|
+
() => Z(e.get(r).startDateTime, e.get(r).timeZone)
|
|
88
|
+
]), e.append(i, l);
|
|
89
|
+
};
|
|
90
|
+
e.if(y, (i) => {
|
|
91
|
+
e.get(r).startDateTime && i(k);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
e.reset(m);
|
|
95
|
+
var q = e.sibling(m, 2);
|
|
96
|
+
{
|
|
97
|
+
var p = (i) => {
|
|
98
|
+
var l = U(), g = e.child(l, !0);
|
|
99
|
+
e.reset(l), e.template_effect(() => e.set_text(g, e.get(r).description)), e.append(i, l);
|
|
100
|
+
};
|
|
101
|
+
e.if(q, (i) => {
|
|
102
|
+
e.get(r).description && i(p);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
e.reset(h), e.reset(s), e.template_effect(
|
|
106
|
+
(i, l) => {
|
|
107
|
+
e.set_attribute(s, "aria-label", `${e.get(r).name ?? ""}, ${i ?? ""}. Press Enter to view details.`), e.set_attribute(w, "src", e.get(r).image || M), e.set_text(c, e.get(r).name), e.set_text(x, `${l ?? ""} `);
|
|
108
|
+
},
|
|
109
|
+
[
|
|
110
|
+
() => D(e.get(r).startDateTime, e.get(r).timeZone),
|
|
111
|
+
() => D(e.get(r).startDateTime, e.get(r).timeZone)
|
|
112
|
+
]
|
|
113
|
+
), e.delegated("click", s, E), e.delegated("keydown", s, (i) => (i.key === "Enter" || i.key === " ") && E()), e.append(d, s);
|
|
114
|
+
}, j = (d) => {
|
|
115
|
+
var s = X();
|
|
116
|
+
e.append(d, s);
|
|
117
|
+
};
|
|
118
|
+
e.if(I, (d) => {
|
|
119
|
+
o() ? d(L) : e.get(r) ? d(P, 1) : d(j, !1);
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
e.reset(b), e.append(F, b), e.pop();
|
|
123
|
+
}
|
|
124
|
+
e.delegate(["click", "keydown"]);
|
|
125
|
+
export {
|
|
126
|
+
te as default
|
|
127
|
+
};
|
|
128
|
+
//# sourceMappingURL=FeaturedView.legacy-CALzP8EW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeaturedView.legacy-CALzP8EW.js","sources":["../src/components/Calendar/FeaturedView.legacy.svelte"],"sourcesContent":["<script>\n import { formatFullDate, formatEventTime } from \"$lib/utils/datetime.js\";\n import { PLACEHOLDER_IMAGE } from \"$lib/utils/constants.js\";\n import { filterTodayAndFuture } from \"$lib/utils/browse-status.js\";\n\n let {\n events = [],\n featuredItem = null,\n oneventClick,\n } = $props();\n\n // Filter to today and future, sorted chronologically\n let futureEvents = $derived(filterTodayAndFuture(events));\n\n let heroEvent = $derived(futureEvents.length > 0 ? futureEvents[0] : null);\n\n function handleClick() {\n if (heroEvent) {\n oneventClick?.(heroEvent);\n }\n }\n</script>\n\n<section class=\"w-full\" aria-label=\"Featured event\">\n {#if featuredItem}\n <!-- Series or Collection hero -->\n <div class=\"featured-hero rounded-lg border border-border bg-card overflow-hidden\">\n {#if featuredItem.image}\n <div class=\"hero-image-container relative w-full bg-muted overflow-hidden\">\n <img\n src={featuredItem.image}\n alt=\"\"\n class=\"hero-image\"\n aria-hidden=\"true\"\n />\n </div>\n {:else}\n <div class=\"hero-image-container relative w-full bg-muted overflow-hidden flex items-center justify-center\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" class=\"w-16 h-16 text-muted-foreground\"><rect x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"2\"/><circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"/><path d=\"m21 15-5-5L5 21\"/></svg>\n </div>\n {/if}\n\n <div class=\"p-4 sm:p-5\">\n <div class=\"inline-flex items-center gap-1.5 text-xs font-semibold text-brand-primary uppercase tracking-wide mb-2\">\n {#if featuredItem.type === 'series'}\n <span class=\"w-1.5 h-1.5 rounded-full bg-brand-primary\"></span>\n Series\n {:else}\n <span class=\"w-1.5 h-1.5 rounded-full bg-brand-primary\"></span>\n Collection\n {/if}\n {#if featuredItem.subtitle}\n <span class=\"text-muted-foreground\">·</span>\n {featuredItem.subtitle}\n {/if}\n </div>\n\n <h2 class=\"hero-title text-xl sm:text-2xl font-bold text-text-primary mb-2\">{featuredItem.title}</h2>\n\n {#if heroEvent}\n <p class=\"text-base text-text-secondary font-medium\">\n Next: {formatFullDate(heroEvent.startDateTime, heroEvent.timeZone)}\n {#if heroEvent.startDateTime}\n at {formatEventTime(heroEvent.startDateTime, heroEvent.timeZone)}\n {/if}\n </p>\n {/if}\n </div>\n </div>\n {:else if heroEvent}\n <!-- Single event hero -->\n <div\n class=\"featured-hero featured-hero-clickable rounded-lg border border-border bg-card overflow-hidden cursor-pointer hover:border-stroke-primary focus-visible:outline-2 focus-visible:outline-brand-primary:outline-brand-primary focus-visible:outline-offset-2\"\n onclick={handleClick}\n onkeydown={(e) => (e.key === 'Enter' || e.key === ' ') && handleClick()}\n tabindex=\"0\"\n role=\"button\"\n aria-label=\"{heroEvent.name}, {formatFullDate(heroEvent.startDateTime, heroEvent.timeZone)}. Press Enter to view details.\"\n >\n <div class=\"hero-image-container relative w-full bg-muted overflow-hidden\">\n <img\n src={heroEvent.image || PLACEHOLDER_IMAGE}\n alt=\"\"\n class=\"hero-image\"\n aria-hidden=\"true\"\n />\n </div>\n\n <div class=\"p-4 sm:p-5\" aria-hidden=\"true\">\n <h2 class=\"hero-title text-xl sm:text-2xl font-bold text-text-primary mb-2\">{heroEvent.name}</h2>\n\n <p class=\"text-base text-text-secondary font-medium\">\n {formatFullDate(heroEvent.startDateTime, heroEvent.timeZone)}\n {#if heroEvent.startDateTime}\n <span class=\"text-muted-foreground mx-1\">·</span>\n {formatEventTime(heroEvent.startDateTime, heroEvent.timeZone)}\n {/if}\n </p>\n\n {#if heroEvent.description}\n <p class=\"hero-description text-sm text-text-secondary mt-2\">{heroEvent.description}</p>\n {/if}\n </div>\n </div>\n {:else}\n <!-- Empty state -->\n <div class=\"flex items-center justify-center py-12 rounded-lg border border-border bg-bg-secondary\">\n <p class=\"text-sm text-muted-foreground\">No upcoming events to feature</p>\n </div>\n {/if}\n</section>\n\n<style>\n .hero-image-container {\n aspect-ratio: 16 / 9;\n }\n\n .hero-image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n .hero-title {\n line-height: 1.3;\n }\n\n .featured-hero-clickable {\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n }\n\n .featured-hero-clickable:hover {\n box-shadow: 0 4px 12px color-mix(in srgb, black 10%, transparent);\n }\n\n .featured-hero-clickable:focus {\n outline: none;\n }\n\n .hero-description {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n /* Reduced motion */\n @media (prefers-reduced-motion: reduce) {\n .featured-hero-clickable {\n transition: none;\n }\n }\n</style>\n"],"names":["events","$","$$props","featuredItem","futureEvents","filterTodayAndFuture","heroEvent","handleClick","section","root","div","root_1","div_1","root_2","img","div_2","root_3","$$render","consequent","alternate","div_3","node_1","div_4","consequent_1","alternate_1","text","consequent_2","h2","p","root_7","formatEventTime","consequent_3","formatFullDate","consequent_4","text_1","div_5","root_9","div_6","img_1","div_7","h2_1","p_1","consequent_6","p_2","root_11","text_7","consequent_7","$0","PLACEHOLDER_IMAGE","text_4","e","div_8","root_12","consequent_8","alternate_2"],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import "svelte/internal/disclose-version";
|
|
2
|
+
import * as e from "svelte/internal/client";
|
|
3
|
+
import { onMount as C, onDestroy as M } from "svelte";
|
|
4
|
+
import { f as x, G as k } from "./VenueCalendar-DvT1UOq-.js";
|
|
5
|
+
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>');
|
|
6
|
+
function A(v, l) {
|
|
7
|
+
e.push(l, !0);
|
|
8
|
+
let p = e.prop(l, "events", 19, () => []), u = e.prop(l, "initialCount", 3, 12), f = e.prop(l, "loadMoreCount", 3, 12), s = u(), i, t, g = e.derived(() => x(p())), m = e.derived(() => e.get(g).slice(0, s)), c = e.derived(() => s < e.get(g).length);
|
|
9
|
+
function h() {
|
|
10
|
+
s += f();
|
|
11
|
+
}
|
|
12
|
+
C(() => {
|
|
13
|
+
t = new IntersectionObserver(
|
|
14
|
+
(r) => {
|
|
15
|
+
r[0].isIntersecting && e.get(c) && h();
|
|
16
|
+
},
|
|
17
|
+
{ rootMargin: "100px" }
|
|
18
|
+
), i && t.observe(i);
|
|
19
|
+
}), M(() => {
|
|
20
|
+
t && t.disconnect();
|
|
21
|
+
}), e.user_effect(() => {
|
|
22
|
+
t && i && (t.disconnect(), t.observe(i));
|
|
23
|
+
});
|
|
24
|
+
var a = G(), d = e.sibling(e.child(a), 2);
|
|
25
|
+
e.each(d, 21, () => e.get(m), e.index, (r, n) => {
|
|
26
|
+
var o = w(), _ = e.child(o);
|
|
27
|
+
k(_, {
|
|
28
|
+
get event() {
|
|
29
|
+
return e.get(n);
|
|
30
|
+
},
|
|
31
|
+
get oneventClick() {
|
|
32
|
+
return l.oneventClick;
|
|
33
|
+
}
|
|
34
|
+
}), e.reset(o), e.append(r, o);
|
|
35
|
+
}), e.reset(d);
|
|
36
|
+
var y = e.sibling(d, 2);
|
|
37
|
+
{
|
|
38
|
+
var b = (r) => {
|
|
39
|
+
var n = E();
|
|
40
|
+
e.bind_this(n, (o) => i = o, () => i), e.append(r, n);
|
|
41
|
+
};
|
|
42
|
+
e.if(y, (r) => {
|
|
43
|
+
e.get(c) && r(b);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
e.reset(a), e.append(v, a), e.pop();
|
|
47
|
+
}
|
|
48
|
+
export {
|
|
49
|
+
A as default
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=GalleryView.legacy-DIhYvOQU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GalleryView.legacy-DIhYvOQU.js","sources":["../src/components/Calendar/GalleryView.legacy.svelte"],"sourcesContent":["<script>\n import { onMount, onDestroy } from \"svelte\";\n import GalleryCard from \"./GalleryCard.svelte\";\n import { filterTodayAndFuture } from \"$lib/utils/browse-status.js\";\n\n let { events = [], initialCount = 12, loadMoreCount = 12, oneventClick } = $props();\n\n let displayedCount = initialCount;\n let loadMoreTrigger;\n let observer;\n\n // Filter to today and future, sorted chronologically\n let futureEvents = $derived(filterTodayAndFuture(events));\n let displayedEvents = $derived(futureEvents.slice(0, displayedCount));\n let hasMore = $derived(displayedCount < futureEvents.length);\n\n function loadMore() {\n displayedCount += loadMoreCount;\n }\n\n onMount(() => {\n observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting && hasMore) {\n loadMore();\n }\n },\n { rootMargin: '100px' }\n );\n\n if (loadMoreTrigger) {\n observer.observe(loadMoreTrigger);\n }\n });\n\n onDestroy(() => {\n if (observer) {\n observer.disconnect();\n }\n });\n\n // Re-observe when trigger element changes\n $effect(() => {\n if (observer && loadMoreTrigger) {\n observer.disconnect();\n observer.observe(loadMoreTrigger);\n }\n });\n</script>\n\n<section class=\"w-full\" aria-label=\"Events gallery\">\n <h2 class=\"sr-only\">Upcoming events</h2>\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\">\n {#each displayedEvents as event}\n <li class=\"list-none\">\n <GalleryCard {event} {oneventClick} />\n </li>\n {/each}\n </ul>\n\n <!-- Infinite scroll trigger -->\n {#if hasMore}\n <div bind:this={loadMoreTrigger} class=\"flex items-center justify-center gap-2 py-2 p-6\" role=\"status\" aria-live=\"polite\">\n <span class=\"text-sm text-muted-foreground\">Loading more events...</span>\n </div>\n {/if}\n</section>\n\n<style>\n /* Screen reader only text */\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n</style>\n"],"names":["events","$","$$props","initialCount","loadMoreCount","displayedCount","loadMoreTrigger","observer","futureEvents","filterTodayAndFuture","displayedEvents","hasMore","loadMore","onMount","entries","onDestroy","section","root","ul","$$anchor","event","li","root_1","GalleryCard","node","div","root_2","$$value","$$render","consequent"],"mappings":";;;;;iBAAA;;MAKQA,IAAMC,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;AAElD,WAAAI,IAAW;AAClB,IAAAP,KAAkBD,EAAa;AAAA,EACjC;AAEA,EAAAS,EAAO,MAAO;AACZ,IAAAN,QAAe;AAAA,MACZ,CAAAO,MAAY;AACP,QAAAA,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,EAAS,MAAO;AACV,IAAAR,KACFA,EAAS,WAAU;AAAA,EAEvB,CAAC,GAGDN,EAAA,YAAO,MAAO;IACRM,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;"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import "svelte/internal/disclose-version";
|
|
2
|
+
import * as e from "svelte/internal/client";
|
|
3
|
+
import { onMount as te, onDestroy as ae } from "svelte";
|
|
4
|
+
import { f as re, g as se, a as ie, i as le, P as ne, b as F, c as L, S as oe } from "./VenueCalendar-DvT1UOq-.js";
|
|
5
|
+
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>"), ge = 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>'), fe = 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>');
|
|
6
|
+
function he(P, m) {
|
|
7
|
+
e.push(m, !0);
|
|
8
|
+
let k = e.prop(m, "events", 19, () => []), U = e.prop(m, "initialCount", 3, 10), A = e.prop(m, "loadMoreCount", 3, 10), T = e.prop(m, "showDateColumn", 3, !0), B = e.prop(m, "filterFutureOnly", 3, !0), _ = U(), v, c, E = e.derived(() => B() ? re(k()) : k()), G = e.derived(() => R(e.get(E).slice(0, _))), C = e.derived(() => _ < e.get(E).length);
|
|
9
|
+
function I() {
|
|
10
|
+
_ += A();
|
|
11
|
+
}
|
|
12
|
+
te(() => {
|
|
13
|
+
c = new IntersectionObserver(
|
|
14
|
+
(r) => {
|
|
15
|
+
r[0].isIntersecting && e.get(C) && I();
|
|
16
|
+
},
|
|
17
|
+
{ rootMargin: "100px" }
|
|
18
|
+
), v && c.observe(v);
|
|
19
|
+
}), ae(() => {
|
|
20
|
+
c && c.disconnect();
|
|
21
|
+
}), e.user_effect(() => {
|
|
22
|
+
c && v && (c.disconnect(), c.observe(v));
|
|
23
|
+
});
|
|
24
|
+
function R(r) {
|
|
25
|
+
const a = {};
|
|
26
|
+
for (const s of r) {
|
|
27
|
+
const n = s.date;
|
|
28
|
+
a[n] || (a[n] = []), a[n].push(s);
|
|
29
|
+
}
|
|
30
|
+
return Object.entries(a).sort(([s], [n]) => new Date(s) - new Date(n)).map(([s, n]) => ({ date: s, events: n, formattedDate: K(n) }));
|
|
31
|
+
}
|
|
32
|
+
function K(r) {
|
|
33
|
+
const a = r[0];
|
|
34
|
+
if (!a?.startDateTime) return { month: "", day: "", weekday: "" };
|
|
35
|
+
const s = se(a.startDateTime, a.timeZone);
|
|
36
|
+
return {
|
|
37
|
+
month: s.month.toUpperCase(),
|
|
38
|
+
day: String(s.date).padStart(2, "0"),
|
|
39
|
+
weekday: s.day.toUpperCase()
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function M(r) {
|
|
43
|
+
m.oneventClick?.(r);
|
|
44
|
+
}
|
|
45
|
+
function z(r, a) {
|
|
46
|
+
(r.key === "Enter" || r.key === " ") && (r.preventDefault(), M(a));
|
|
47
|
+
}
|
|
48
|
+
var b = ue();
|
|
49
|
+
let S;
|
|
50
|
+
var O = e.sibling(e.child(b), 2);
|
|
51
|
+
e.each(O, 17, () => e.get(G), e.index, (r, a) => {
|
|
52
|
+
var s = fe(), n = e.child(s);
|
|
53
|
+
{
|
|
54
|
+
var q = (g) => {
|
|
55
|
+
var t = de(), o = e.child(t), y = e.child(o, !0);
|
|
56
|
+
e.reset(o);
|
|
57
|
+
var f = e.sibling(o, 2), d = e.child(f, !0);
|
|
58
|
+
e.reset(f);
|
|
59
|
+
var u = e.sibling(f, 2), p = e.child(u, !0);
|
|
60
|
+
e.reset(u), e.reset(t), e.template_effect(() => {
|
|
61
|
+
e.set_text(y, e.get(a).formattedDate.month), e.set_text(d, e.get(a).formattedDate.day), e.set_text(p, e.get(a).formattedDate.weekday);
|
|
62
|
+
}), e.append(g, t);
|
|
63
|
+
};
|
|
64
|
+
e.if(n, (g) => {
|
|
65
|
+
T() && g(q);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
var j = e.sibling(n, 2);
|
|
69
|
+
e.each(j, 21, () => e.get(a).events, e.index, (g, t) => {
|
|
70
|
+
const o = e.derived(() => ie(e.get(t))), y = e.derived(() => le(e.get(o)));
|
|
71
|
+
var f = ge(), d = e.child(f);
|
|
72
|
+
let u;
|
|
73
|
+
var p = e.child(d), J = e.child(p);
|
|
74
|
+
e.reset(p);
|
|
75
|
+
var w = e.sibling(p, 2), D = e.child(w), N = e.child(D, !0);
|
|
76
|
+
e.reset(D);
|
|
77
|
+
var h = e.sibling(D, 2), Q = e.child(h, !0);
|
|
78
|
+
e.reset(h);
|
|
79
|
+
var W = e.sibling(h, 2);
|
|
80
|
+
{
|
|
81
|
+
var X = (i) => {
|
|
82
|
+
var l = me(), x = e.child(l, !0);
|
|
83
|
+
e.reset(l), e.template_effect(() => e.set_text(x, e.get(t).description)), e.append(i, l);
|
|
84
|
+
};
|
|
85
|
+
e.if(W, (i) => {
|
|
86
|
+
e.get(t).description && i(X);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
e.reset(w);
|
|
90
|
+
var Z = e.sibling(w, 2), Y = e.child(Z);
|
|
91
|
+
{
|
|
92
|
+
var $ = (i) => {
|
|
93
|
+
var l = ce(), x = e.child(l, !0);
|
|
94
|
+
e.reset(l), e.template_effect(() => {
|
|
95
|
+
e.set_class(l, 1, `status-badge status-${e.get(o).type ?? ""}`, "svelte-r2wh13"), e.set_text(x, e.get(o).text);
|
|
96
|
+
}), e.append(i, l);
|
|
97
|
+
}, ee = (i) => {
|
|
98
|
+
{
|
|
99
|
+
let l = e.derived(() => e.get(t).ticketsRemaining ?? 0), x = e.derived(() => e.get(t).ticketsTotal ?? 0);
|
|
100
|
+
oe(i, {
|
|
101
|
+
get remaining() {
|
|
102
|
+
return e.get(l);
|
|
103
|
+
},
|
|
104
|
+
get total() {
|
|
105
|
+
return e.get(x);
|
|
106
|
+
},
|
|
107
|
+
context: "browse"
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
e.if(Y, (i) => {
|
|
112
|
+
e.get(o) ? i($) : (e.get(t).ticketsTotal > 0 || e.get(t).ticketsRemaining === 0) && i(ee, 1);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
e.reset(Z), e.reset(d), e.reset(f), e.template_effect(
|
|
116
|
+
(i, l) => {
|
|
117
|
+
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);
|
|
118
|
+
},
|
|
119
|
+
[
|
|
120
|
+
() => `${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 ? L(e.get(t).startDateTime, e.get(t).timeZone) : ""}, ${e.get(o)?.text || e.get(t).status || "On Sale"}. Press Enter to view details.`,
|
|
121
|
+
() => e.get(t).startDateTime ? L(e.get(t).startDateTime, e.get(t).timeZone) : ""
|
|
122
|
+
]
|
|
123
|
+
), e.delegated("click", d, () => M(e.get(t))), e.delegated("keydown", d, (i) => z(i, e.get(t))), e.append(g, f);
|
|
124
|
+
}), e.reset(j), e.reset(s), e.template_effect((g) => e.set_attribute(s, "aria-label", `Events on ${g ?? ""}`), [
|
|
125
|
+
() => e.get(a).events[0]?.startDateTime ? F(e.get(a).events[0].startDateTime, e.get(a).events[0].timeZone) : e.get(a).date
|
|
126
|
+
]), e.append(r, s);
|
|
127
|
+
});
|
|
128
|
+
var H = e.sibling(O, 2);
|
|
129
|
+
{
|
|
130
|
+
var V = (r) => {
|
|
131
|
+
var a = ve();
|
|
132
|
+
e.bind_this(a, (s) => v = s, () => v), e.append(r, a);
|
|
133
|
+
};
|
|
134
|
+
e.if(H, (r) => {
|
|
135
|
+
e.get(C) && r(V);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
e.reset(b), e.template_effect(() => S = e.set_class(b, 1, "flex flex-col gap-0 svelte-r2wh13", null, S, { "no-date-column": !T() })), e.append(P, b), e.pop();
|
|
139
|
+
}
|
|
140
|
+
e.delegate(["click", "keydown"]);
|
|
141
|
+
export {
|
|
142
|
+
he as default
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=GroupedListView.legacy-C9dQ_v_d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupedListView.legacy-C9dQ_v_d.js","sources":["../src/components/Calendar/GroupedListView.legacy.svelte"],"sourcesContent":["<script>\n import { onMount, onDestroy } from \"svelte\";\n import { PLACEHOLDER_IMAGE } from \"$lib/utils/constants.js\";\n import { getDateParts, formatFullDate, formatEventTime } from \"$lib/utils/datetime.js\";\n import { getBrowseStatus, isEventUnavailable, filterTodayAndFuture } from \"$lib/utils/browse-status.js\";\n import ScarcityBadge from \"../ScarcityBadge.svelte\";\n\n let {\n events = [],\n initialCount = 10,\n loadMoreCount = 10,\n showDateColumn = true,\n filterFutureOnly = true,\n oneventClick\n } = $props();\n\n let displayedCount = initialCount;\n let loadMoreTrigger;\n let observer;\n\n // Filter to today and future (if enabled), then group by date\n let filteredEvents = $derived(filterFutureOnly ? filterTodayAndFuture(events) : events);\n let groupedEvents = $derived(groupEventsByDate(filteredEvents.slice(0, displayedCount)));\n let hasMore = $derived(displayedCount < filteredEvents.length);\n\n function loadMore() {\n displayedCount += loadMoreCount;\n }\n\n onMount(() => {\n observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting && hasMore) {\n loadMore();\n }\n },\n { rootMargin: '100px' }\n );\n\n if (loadMoreTrigger) {\n observer.observe(loadMoreTrigger);\n }\n });\n\n onDestroy(() => {\n if (observer) {\n observer.disconnect();\n }\n });\n\n // Re-observe when trigger element changes\n $effect(() => {\n if (observer && loadMoreTrigger) {\n observer.disconnect();\n observer.observe(loadMoreTrigger);\n }\n });\n\n function groupEventsByDate(eventList) {\n const groups = {};\n\n for (const event of eventList) {\n const dateKey = event.date; // YYYY-MM-DD format\n if (!groups[dateKey]) {\n groups[dateKey] = [];\n }\n groups[dateKey].push(event);\n }\n\n // Convert to array sorted by date\n return Object.entries(groups)\n .sort(([a], [b]) => new Date(a) - new Date(b))\n .map(([date, events]) => ({\n date,\n events,\n formattedDate: formatGroupDate(events),\n }));\n }\n\n function formatGroupDate(events) {\n // Use the first event in the group to get timezone-aware date parts\n const firstEvent = events[0];\n if (!firstEvent?.startDateTime) return { month: '', day: '', weekday: '' };\n const parts = getDateParts(firstEvent.startDateTime, firstEvent.timeZone);\n return {\n month: parts.month.toUpperCase(),\n day: String(parts.date).padStart(2, '0'),\n weekday: parts.day.toUpperCase(),\n };\n }\n\n function handleEventClick(event) {\n oneventClick?.(event);\n }\n\n function handleKeydown(e, event) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleEventClick(event);\n }\n }\n</script>\n\n<section class=\"flex flex-col gap-0\" class:no-date-column={!showDateColumn} aria-label=\"Event listings\">\n <h2 class=\"sr-only\">Event list grouped by date</h2>\n {#each groupedEvents as group}\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}\">\n <!-- Date Column -->\n {#if showDateColumn}\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\">\n <span class=\"text-xs font-semibold text-text-secondary uppercase tracking-tight\">{group.formattedDate.month}</span>\n <span class=\"text-2xl max-sm:text-lg font-bold text-text-primary leading-tight\">{group.formattedDate.day}</span>\n <span class=\"text-xs font-semibold text-text-secondary uppercase tracking-tight\">{group.formattedDate.weekday}</span>\n </div>\n {/if}\n\n <!-- Events Column -->\n <ul class=\"events-column flex-1 flex flex-col list-none p-0 m-0\">\n {#each group.events as event, eventIndex}\n {@const eventStatus = getBrowseStatus(event)}\n {@const isUnavailable = isEventUnavailable(eventStatus)}\n <li class=\"list-none\">\n <div\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\"\n class:row-unavailable={isUnavailable}\n onclick={() => handleEventClick(event)}\n onkeydown={(e) => handleKeydown(e, event)}\n tabindex=\"0\"\n role=\"button\"\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.`}\n >\n <!-- Event Image -->\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\">\n <img\n src={event.image || PLACEHOLDER_IMAGE}\n alt=\"\"\n class=\"w-full h-full object-contain\"\n loading=\"lazy\"\n />\n </div>\n\n <!-- Event Details (visually shown but also in aria-label, so hide from SR) -->\n <div class=\"flex-1 flex flex-col gap-1.5 min-w-0\" aria-hidden=\"true\">\n <h3 class=\"text-lg max-sm:text-sm font-semibold text-text-primary m-0 leading-snug\">{event.name}</h3>\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>\n {#if event.description}\n <p class=\"event-description text-sm text-text-secondary mt-1.5 mb-0 line-clamp-2 max-sm:hidden\">{event.description}</p>\n {/if}\n </div>\n\n <!-- Status / Scarcity Badge -->\n <div class=\"flex items-start pt-0.5\" aria-hidden=\"true\">\n {#if eventStatus}\n <span class=\"status-badge status-{eventStatus.type}\">{eventStatus.text}</span>\n {:else if event.ticketsTotal > 0 || event.ticketsRemaining === 0}\n <ScarcityBadge\n remaining={event.ticketsRemaining ?? 0}\n total={event.ticketsTotal ?? 0}\n context=\"browse\"\n />\n {/if}\n </div>\n </div>\n </li>\n {/each}\n </ul>\n </div>\n {/each}\n\n <!-- Infinite scroll trigger -->\n {#if hasMore}\n <div bind:this={loadMoreTrigger} class=\"flex justify-center items-center p-6 text-text-secondary\" role=\"status\" aria-live=\"polite\">\n <span class=\"text-sm\">Loading more events...</span>\n </div>\n {/if}\n</section>\n\n<style>\n /* When no date column, remove left border styling */\n .no-date-column .date-group {\n border-bottom: 0;\n }\n\n .no-date-column .events-column {\n border-left: 0;\n }\n\n .event-description {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n /* Unavailable row dimming */\n .row-unavailable {\n opacity: 0.6;\n }\n\n .row-unavailable img {\n filter: grayscale(0.5);\n }\n\n /* Status badges -- distinct visual treatments matching gallery cards */\n .status-badge {\n display: inline-flex;\n align-items: center;\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 700;\n padding: 0.25rem 0.625rem;\n border-radius: 0.25rem;\n white-space: nowrap;\n letter-spacing: 0.02em;\n }\n\n .status-cancelled {\n background-color: hsl(var(--accent-danger) / 0.1);\n color: hsl(var(--accent-danger));\n text-decoration: line-through;\n text-decoration-thickness: 1.5px;\n\n \n }\n\n .status-past {\n background-color: hsl(var(--bg-tertiary));\n color: hsl(var(--text-tertiary));\n\n \n }\n\n .status-sold_out {\n background-color: hsl(var(--accent-danger) / 0.1);\n color: hsl(var(--accent-danger));\n text-transform: uppercase;\n letter-spacing: 0.05em;\n font-size: 0.65rem;\n\n \n }\n\n .status-sales_ended {\n background-color: hsl(var(--bg-tertiary));\n color: hsl(var(--text-tertiary));\n border: 1px solid hsl(var(--stroke-primary));\n\n \n }\n\n .status-coming_soon {\n background-color: hsl(var(--brand-primary) / 0.15);\n color: hsl(var(--brand-primary));\n\n \n }\n\n /* Reduced motion */\n @media (prefers-reduced-motion: reduce) {\n .event-row {\n transition: none;\n }\n }\n\n /* Screen reader only text */\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n</style>\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":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "svelte/internal/disclose-version";
|
|
2
2
|
import * as e from "svelte/internal/client";
|
|
3
|
-
import { P as ye, x as J, y as ue, c as pe } from "./VenueCalendar-
|
|
3
|
+
import { P as ye, x as J, y as ue, c as pe } from "./VenueCalendar-DvT1UOq-.js";
|
|
4
4
|
var be = e.from_html('<span class="venue-separator svelte-4y42r2">·</span> <span class="venue-location svelte-4y42r2"> </span>', 1), xe = e.from_html('<p class="series-summary svelte-4y42r2"> </p>'), qe = e.from_html('<div class="series-description svelte-4y42r2"> </div>'), Ne = e.from_html('<div class="empty-dates svelte-4y42r2"><p class="empty-text svelte-4y42r2">No upcoming dates scheduled at this time.</p> <p class="empty-subtext svelte-4y42r2">Check back soon for new announcements.</p></div>'), ke = e.from_html('<div class="occurrence-card svelte-4y42r2"><div class="occurrence-info svelte-4y42r2"><div class="occurrence-date svelte-4y42r2"> </div> <div class="occurrence-time svelte-4y42r2"> </div></div> <div class="occurrence-action svelte-4y42r2"><button> </button></div></div>'), Ae = e.from_html('<div class="dates-list svelte-4y42r2"></div>'), Se = e.from_html('<img class="performer-image svelte-4y42r2"/>'), De = e.from_html('<div class="performer-placeholder svelte-4y42r2"><svg class="placeholder-icon svelte-4y42r2" fill="currentColor" viewBox="0 0 24 24"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" class="svelte-4y42r2"></path></svg></div>'), Ie = e.from_html('<div class="performer-card svelte-4y42r2"><div class="performer-avatar svelte-4y42r2"><!></div> <h3 class="performer-name svelte-4y42r2"> </h3></div>'), Te = e.from_html('<section class="section svelte-4y42r2"><h2 class="section-heading svelte-4y42r2">Performers</h2> <div class="performers-grid svelte-4y42r2"></div></section>'), Ce = e.from_html('<div class="faq-item svelte-4y42r2"><p class="faq-question svelte-4y42r2"> </p> <p class="faq-answer svelte-4y42r2"> </p></div>'), Ee = e.from_html('<p class="svelte-4y42r2"> </p>'), Le = e.from_html('<div class="sidebar-section svelte-4y42r2"><h3 class="sidebar-heading svelte-4y42r2">FAQ</h3> <div class="faq-content svelte-4y42r2"><!></div></div>'), we = e.from_html('<div class="sidebar-section svelte-4y42r2"><h3 class="sidebar-heading svelte-4y42r2">Important Info</h3> <div class="disclaimer-text svelte-4y42r2"> </div></div>'), Oe = e.from_html('<div class="sidebar-card svelte-4y42r2"><!> <!></div>'), Pe = e.from_html('<div class="series-page svelte-4y42r2"><div class="hero svelte-4y42r2"><div></div> <img class="hero-image svelte-4y42r2"/> <div class="hero-overlay svelte-4y42r2"><div class="hero-content svelte-4y42r2"><span class="series-badge svelte-4y42r2">Recurring Event</span> <h1 class="series-title svelte-4y42r2"> </h1> <div class="series-venue svelte-4y42r2"><span class="svelte-4y42r2"> </span> <!></div></div></div></div> <div class="content-grid svelte-4y42r2"><div class="main-column svelte-4y42r2"><section class="section svelte-4y42r2"><h2 class="section-heading svelte-4y42r2">About this Series</h2> <!> <!></section> <section class="section svelte-4y42r2"><div class="dates-header svelte-4y42r2"><h2 class="section-heading svelte-4y42r2">Upcoming Dates</h2> <span class="dates-count svelte-4y42r2"> </span></div> <!></section> <!></div> <div class="sidebar svelte-4y42r2"><div class="sidebar-sticky svelte-4y42r2"><!></div></div></div></div>');
|
|
5
5
|
function Me(K, t) {
|
|
6
6
|
e.push(t, !0);
|
|
@@ -184,4 +184,4 @@ e.delegate(["click"]);
|
|
|
184
184
|
export {
|
|
185
185
|
Me as default
|
|
186
186
|
};
|
|
187
|
-
//# sourceMappingURL=SeriesPage.legacy-
|
|
187
|
+
//# sourceMappingURL=SeriesPage.legacy-hSI5Sm8W.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SeriesPage.legacy-hSI5Sm8W.js","sources":["../src/components/Views/SeriesPage.legacy.svelte"],"sourcesContent":["<script>\n import { getImageUrl } from '$lib/utils/utils.js';\n import { formatEventDate, formatEventTime, formatTimeRange } from '$lib/utils/datetime.js';\n import { PLACEHOLDER_IMAGE } from '$lib/utils/constants.js';\n\n let {\n series,\n onNavigateToOccurrence,\n } = $props();\n\n let imageLoaded = $state(false);\n\n let seriesImage = $derived(\n series?.image\n ? getImageUrl(series.image)\n : PLACEHOLDER_IMAGE\n );\n\n let tz = $derived(series?.timeZone || 'America/Los_Angeles');\n\n function formatDate(iso) {\n return formatEventDate(iso, tz);\n }\n\n function formatTime(iso) {\n return formatEventTime(iso, tz);\n }\n\n function handleOccurrenceClick(occurrence) {\n if (!occurrence.ctaState?.disabled && onNavigateToOccurrence) {\n onNavigateToOccurrence(occurrence.id, occurrence.slug || '', occurrence.name || '');\n }\n }\n</script>\n\n{#if series}\n <div class=\"series-page\">\n <!-- Hero Image -->\n <div class=\"hero\">\n <div class=\"hero-skeleton\" class:hidden={imageLoaded}></div>\n <img\n src={seriesImage}\n alt={series.title}\n class=\"hero-image\"\n onload={() => (imageLoaded = true)}\n />\n <div class=\"hero-overlay\">\n <div class=\"hero-content\">\n <span class=\"series-badge\">Recurring Event</span>\n <h1 class=\"series-title\">{series.title}</h1>\n <div class=\"series-venue\">\n <span>{series.venue?.name}</span>\n {#if series.venue?.googleLocationNameCache}\n <span class=\"venue-separator\">·</span>\n <span class=\"venue-location\">{series.venue.googleLocationNameCache}</span>\n {/if}\n </div>\n </div>\n </div>\n </div>\n\n <!-- Content Grid -->\n <div class=\"content-grid\">\n <!-- Main Column -->\n <div class=\"main-column\">\n <!-- About Section -->\n <section class=\"section\">\n <h2 class=\"section-heading\">About this Series</h2>\n {#if series.eventSummary}\n <p class=\"series-summary\">{series.eventSummary}</p>\n {/if}\n {#if series.description}\n <div class=\"series-description\">{series.description}</div>\n {/if}\n </section>\n\n <!-- Upcoming Dates -->\n <section class=\"section\">\n <div class=\"dates-header\">\n <h2 class=\"section-heading\">Upcoming Dates</h2>\n <span class=\"dates-count\">{series.occurrences?.length || 0} events</span>\n </div>\n\n {#if !series.occurrences?.length}\n <div class=\"empty-dates\">\n <p class=\"empty-text\">No upcoming dates scheduled at this time.</p>\n <p class=\"empty-subtext\">Check back soon for new announcements.</p>\n </div>\n {:else}\n <div class=\"dates-list\">\n {#each series.occurrences as occurrence}\n <div class=\"occurrence-card\">\n <div class=\"occurrence-info\">\n <div class=\"occurrence-date\">{formatDate(occurrence.startDateTime)}</div>\n <div class=\"occurrence-time\">\n {formatTime(occurrence.startDateTime)} - {formatTime(occurrence.endDateTime)}\n </div>\n </div>\n <div class=\"occurrence-action\">\n <button\n class=\"cta-button\"\n class:cta-disabled={occurrence.ctaState?.disabled}\n disabled={occurrence.ctaState?.disabled}\n onclick={() => handleOccurrenceClick(occurrence)}\n >\n {occurrence.ctaState?.text || 'Get tickets'}\n </button>\n </div>\n </div>\n {/each}\n </div>\n {/if}\n </section>\n\n <!-- Performers -->\n {#if series.performers?.length}\n <section class=\"section\">\n <h2 class=\"section-heading\">Performers</h2>\n <div class=\"performers-grid\">\n {#each series.performers as performer}\n <div class=\"performer-card\">\n <div class=\"performer-avatar\">\n {#if performer.profileImage}\n <img\n src={getImageUrl(performer.profileImage)}\n alt={performer.displayName || `${performer.firstName} ${performer.lastName}`}\n class=\"performer-image\"\n />\n {:else}\n <div class=\"performer-placeholder\">\n <svg class=\"placeholder-icon\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\" />\n </svg>\n </div>\n {/if}\n </div>\n <h3 class=\"performer-name\">\n {performer.displayName || `${performer.firstName} ${performer.lastName}`}\n </h3>\n </div>\n {/each}\n </div>\n </section>\n {/if}\n </div>\n\n <!-- Sidebar -->\n <div class=\"sidebar\">\n <div class=\"sidebar-sticky\">\n {#if series.venue?.faq || series.venue?.disclaimer}\n <div class=\"sidebar-card\">\n {#if series.venue.faq}\n <div class=\"sidebar-section\">\n <h3 class=\"sidebar-heading\">FAQ</h3>\n <div class=\"faq-content\">\n {#if Array.isArray(series.venue.faq)}\n {#each series.venue.faq as item}\n <div class=\"faq-item\">\n <p class=\"faq-question\">{item.question}</p>\n <p class=\"faq-answer\">{item.answer}</p>\n </div>\n {/each}\n {:else}\n <p>{series.venue.faq}</p>\n {/if}\n </div>\n </div>\n {/if}\n\n {#if series.venue.disclaimer}\n <div class=\"sidebar-section\">\n <h3 class=\"sidebar-heading\">Important Info</h3>\n <div class=\"disclaimer-text\">{series.venue.disclaimer}</div>\n </div>\n {/if}\n </div>\n {/if}\n </div>\n </div>\n </div>\n </div>\n{/if}\n\n<style>\n .series-page {\n min-height: 100vh;\n padding-bottom: 5rem;\n background: hsl(var(--surface-primary, 0 0% 100%));\n color: hsl(var(--text-primary, 0 0% 10%));\n }\n\n /* Hero */\n .hero {\n position: relative;\n width: 100%;\n overflow: hidden;\n height: 500px;\n }\n\n @media (max-width: 768px) {\n .hero {\n height: 256px;\n }\n }\n\n .hero-skeleton {\n position: absolute;\n inset: 0;\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n background: hsl(var(--surface-secondary, 0 0% 96%));\n }\n\n @keyframes pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.5; }\n }\n\n .hero-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n transition: transform 0.7s ease;\n }\n\n .hero:hover .hero-image {\n transform: scale(1.05);\n }\n\n .hero-overlay {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n padding: 1.5rem;\n background: linear-gradient(to top, color-mix(in srgb, black 90%, transparent), color-mix(in srgb, black 50%, transparent), transparent);\n }\n\n @media (min-width: 768px) {\n .hero-overlay {\n padding: 3rem;\n }\n }\n\n .hero-content {\n max-width: 64rem;\n margin-left: auto;\n margin-right: auto;\n width: 100%;\n }\n\n .series-badge {\n display: inline-flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n margin-bottom: 1rem;\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n border-radius: 9999px;\n box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n background: hsl(var(--brand-primary, 224 76% 48%));\n color: hsl(var(--text-on-primary, 0 0% 100%));\n }\n\n .series-title {\n font-size: 2.25rem;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 0.75rem;\n letter-spacing: -0.025em;\n color: hsl(var(--bg-primary));\n text-shadow: 0 2px 8px color-mix(in srgb, black 30%, transparent);\n }\n\n @media (min-width: 768px) {\n .series-title {\n font-size: 3.75rem;\n line-height: 1;\n }\n }\n\n .series-venue {\n font-size: 1.125rem;\n line-height: 1.75rem;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0.5rem;\n font-weight: 500;\n color: color-mix(in srgb, white 90%, transparent);\n }\n\n @media (min-width: 768px) {\n .series-venue {\n font-size: 1.25rem;\n line-height: 1.75rem;\n }\n }\n\n .venue-separator {\n display: none;\n opacity: 0.6;\n }\n\n @media (min-width: 768px) {\n .venue-separator {\n display: inline;\n }\n }\n\n .venue-location {\n opacity: 0.75;\n }\n\n /* Content Grid */\n .content-grid {\n max-width: 64rem;\n margin-left: auto;\n margin-right: auto;\n padding: 3rem 1.5rem;\n display: grid;\n grid-template-columns: 1fr;\n gap: 3rem;\n }\n\n @media (min-width: 768px) {\n .content-grid {\n padding-top: 5rem;\n padding-bottom: 5rem;\n }\n }\n\n @media (min-width: 1024px) {\n .content-grid {\n grid-template-columns: repeat(3, 1fr);\n }\n }\n\n .main-column {\n display: flex;\n flex-direction: column;\n gap: 4rem;\n }\n\n @media (min-width: 1024px) {\n .main-column {\n grid-column: span 2 / span 2;\n }\n }\n\n .section {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n }\n\n .section-heading {\n font-size: 1.875rem;\n line-height: 2.25rem;\n font-weight: 700;\n letter-spacing: -0.025em;\n padding-bottom: 1rem;\n color: hsl(var(--text-primary, 0 0% 10%));\n border-bottom: 1px solid hsl(var(--stroke-secondary, 0 0% 90%));\n }\n\n .series-summary {\n font-size: 1.25rem;\n line-height: 1.75rem;\n font-weight: 500;\n line-height: 1.625;\n color: hsl(var(--text-primary, 0 0% 20%));\n }\n\n .series-description {\n max-width: none;\n white-space: pre-line;\n line-height: 1.625;\n color: hsl(var(--text-secondary, 0 0% 40%));\n }\n\n /* Upcoming Dates */\n .dates-header {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n padding-bottom: 1rem;\n border-bottom: 1px solid hsl(var(--stroke-secondary, 0 0% 90%));\n }\n\n .dates-count {\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 500;\n color: hsl(var(--text-secondary, 0 0% 45%));\n }\n\n .empty-dates {\n padding: 3rem;\n border-radius: 1rem;\n text-align: center;\n background: hsl(var(--surface-secondary, 0 0% 96%));\n border: 2px dashed hsl(var(--stroke-secondary, 0 0% 85%));\n }\n\n .empty-text {\n font-size: 1.125rem;\n line-height: 1.75rem;\n font-weight: 500;\n color: hsl(var(--text-secondary, 0 0% 45%));\n }\n\n .empty-subtext {\n margin-top: 0.5rem;\n color: hsl(var(--text-secondary, 0 0% 55%));\n }\n\n .dates-list {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n }\n\n .occurrence-card {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: 1.5rem;\n border-radius: 1rem;\n transition: all 0.2s;\n background: hsl(var(--surface-primary, 0 0% 100%));\n border: 1px solid hsl(var(--stroke-secondary, 0 0% 90%));\n }\n\n @media (min-width: 640px) {\n .occurrence-card {\n flex-direction: row;\n align-items: center;\n }\n }\n\n .occurrence-card:hover {\n border-color: hsl(var(--brand-primary, 224 76% 48%));\n box-shadow: 0 4px 12px color-mix(in srgb, black 8%, transparent);\n }\n\n .occurrence-info {\n margin-bottom: 1rem;\n }\n\n @media (min-width: 640px) {\n .occurrence-info {\n margin-bottom: 0;\n }\n }\n\n .occurrence-date {\n font-size: 1.25rem;\n line-height: 1.75rem;\n font-weight: 700;\n margin-bottom: 0.25rem;\n color: hsl(var(--text-primary, 0 0% 10%));\n }\n\n .occurrence-time {\n font-weight: 500;\n color: hsl(var(--text-secondary, 0 0% 45%));\n }\n\n .occurrence-action {\n padding-left: 0;\n }\n\n @media (min-width: 640px) {\n .occurrence-action {\n padding-left: 1.5rem;\n }\n }\n\n .cta-button {\n width: 100%;\n padding: 0.75rem 1.5rem;\n border-radius: 0.5rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 600;\n transition: transform 0.15s;\n background: hsl(var(--brand-primary, 224 76% 48%));\n color: hsl(var(--text-on-primary, 0 0% 100%));\n }\n\n @media (min-width: 640px) {\n .cta-button {\n width: auto;\n }\n }\n\n .cta-button:hover:not(:disabled) {\n transform: scale(1.05);\n }\n\n .cta-disabled {\n cursor: not-allowed;\n background: hsl(var(--surface-secondary, 0 0% 90%));\n color: hsl(var(--text-secondary, 0 0% 55%));\n }\n\n /* Performers */\n .performers-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 2rem;\n }\n\n @media (min-width: 640px) {\n .performers-grid {\n grid-template-columns: repeat(3, 1fr);\n }\n }\n\n .performer-card {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n padding: 1rem;\n border-radius: 0.75rem;\n transition: background-color 0.15s;\n }\n\n .performer-card:hover {\n background: hsl(var(--surface-secondary, 0 0% 96%));\n }\n\n .performer-avatar {\n width: 7rem;\n height: 7rem;\n margin-bottom: 1rem;\n border-radius: 9999px;\n overflow: hidden;\n box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n background: hsl(var(--surface-secondary, 0 0% 92%));\n }\n\n .performer-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n transition: transform 0.5s ease;\n }\n\n .performer-card:hover .performer-image {\n transform: scale(1.1);\n }\n\n .performer-placeholder {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n color: hsl(var(--text-secondary, 0 0% 60%));\n }\n\n .placeholder-icon {\n width: 3rem;\n height: 3rem;\n opacity: 0.5;\n }\n\n .performer-name {\n font-size: 1.125rem;\n line-height: 1.75rem;\n font-weight: 600;\n color: hsl(var(--text-primary, 0 0% 10%));\n }\n\n /* Sidebar */\n .sidebar {\n display: flex;\n flex-direction: column;\n gap: 2rem;\n }\n\n @media (min-width: 1024px) {\n .sidebar {\n grid-column: span 1 / span 1;\n }\n }\n\n .sidebar-sticky {\n position: sticky;\n top: 6rem;\n display: flex;\n flex-direction: column;\n gap: 2rem;\n }\n\n .sidebar-card {\n border-radius: 1rem;\n padding: 2rem;\n background: hsl(var(--surface-secondary, 0 0% 96%));\n border: 1px solid hsl(var(--stroke-secondary, 0 0% 92%));\n }\n\n .sidebar-section {\n margin-bottom: 2rem;\n }\n\n .sidebar-section:last-child {\n margin-bottom: 0;\n }\n\n .sidebar-heading {\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n margin-bottom: 1rem;\n color: hsl(var(--text-primary, 0 0% 10%));\n }\n\n .faq-content {\n color: hsl(var(--text-secondary, 0 0% 40%));\n }\n\n .faq-item {\n margin-bottom: 0.75rem;\n }\n\n .faq-question {\n font-weight: 700;\n color: hsl(var(--text-primary, 0 0% 20%));\n }\n\n .faq-answer {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n\n .disclaimer-text {\n font-size: 0.875rem;\n line-height: 1.625;\n padding: 1rem;\n border-radius: 0.5rem;\n background: hsl(var(--surface-primary, 0 0% 100%));\n color: hsl(var(--text-secondary, 0 0% 40%));\n border: 1px solid hsl(var(--stroke-secondary, 0 0% 90%));\n }\n</style>\n"],"names":["imageLoaded","$","seriesImage","getImageUrl","$$props","PLACEHOLDER_IMAGE","tz","formatDate","iso","formatEventDate","formatTime","formatEventTime","handleOccurrenceClick","occurrence","div","root_1","div_1","div_2","img","div_3","div_4","h1","div_5","span","span_1","fragment_1","text_2","$$render","consequent","div_6","div_7","section","p","root_3","consequent_1","div_8","root_4","consequent_2","section_1","div_9","span_2","div_10","root_5","div_11","root_6","$$anchor","div_12","root_7","div_13","div_14","div_15","div_16","button","classes_1","text_8","alternate","consequent_3","section_2","root_8","div_17","performer","div_18","root_9","div_19","img_1","root_10","$0","div_20","root_11","consequent_4","alternate_1","h3","consequent_5","div_21","div_22","div_23","root_12","div_24","root_13","div_25","item","div_26","root_15","p_1","p_2","text_10","text_11","d","p_3","root_16","text_12","consequent_7","div_27","root_17","div_28","text_13","consequent_8","consequent_9","classes","text_1"],"mappings":"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"}
|