@getmicdrop/svelte-components 5.3.6 → 5.3.12
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/dist/calendar/AboutShow/AboutShow.svelte +9 -8
- package/dist/calendar/AboutShow/AboutShow.svelte.d.ts.map +1 -1
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte +13 -12
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -1
- package/dist/calendar/FAQs/FAQs.svelte +6 -5
- package/dist/calendar/FAQs/FAQs.svelte.d.ts.map +1 -1
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +3 -2
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte.d.ts.map +1 -1
- package/dist/calendar/OrderSummary/OrderSummary.svelte +69 -28
- package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts +2 -0
- package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts.map +1 -1
- package/dist/calendar/PublicCard/PublicCard.svelte +7 -9
- package/dist/calendar/PublicCard/PublicCard.svelte.d.ts.map +1 -1
- package/dist/calendar/ShowCard/ShowCard.svelte +11 -10
- package/dist/calendar/ShowCard/ShowCard.svelte.d.ts.map +1 -1
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +5 -3
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte.d.ts.map +1 -1
- package/dist/components/Layout/Section.svelte +4 -4
- package/dist/components/Layout/Section.svelte.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +9 -0
- package/dist/patterns/data/DataTable.svelte +4 -2
- package/dist/patterns/data/DataTable.svelte.d.ts.map +1 -1
- package/dist/patterns/forms/FormSection.svelte +4 -2
- package/dist/patterns/forms/FormSection.svelte.d.ts.map +1 -1
- package/dist/patterns/navigation/BottomNav.svelte +4 -3
- package/dist/patterns/navigation/BottomNav.svelte.d.ts.map +1 -1
- package/dist/patterns/navigation/Header.svelte +11 -10
- package/dist/patterns/navigation/Header.svelte.d.ts.map +1 -1
- package/dist/patterns/page/PageHeader.svelte +3 -2
- package/dist/patterns/page/PageHeader.svelte.d.ts.map +1 -1
- package/dist/patterns/page/PageLayout.svelte +2 -1
- package/dist/patterns/page/PageLayout.svelte.d.ts.map +1 -1
- package/dist/patterns/page/PageLoader.svelte +2 -1
- package/dist/patterns/page/PageLoader.svelte.d.ts.map +1 -1
- package/dist/patterns/page/SectionHeader.svelte +5 -3
- package/dist/patterns/page/SectionHeader.svelte.d.ts.map +1 -1
- package/dist/primitives/Accordion/Accordion.svelte +2 -1
- package/dist/primitives/Accordion/Accordion.svelte.d.ts.map +1 -1
- package/dist/primitives/Accordion/AccordionItem.svelte +6 -5
- package/dist/primitives/Accordion/AccordionItem.svelte.d.ts.map +1 -1
- package/dist/primitives/BottomSheet/BottomSheet.svelte +2 -1
- package/dist/primitives/BottomSheet/BottomSheet.svelte.d.ts.map +1 -1
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte +6 -5
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
- package/dist/primitives/Button/Button.svelte +27 -10
- package/dist/primitives/Button/Button.svelte.d.ts.map +1 -1
- package/dist/primitives/Button/ButtonSaveDemo.svelte +2 -1
- package/dist/primitives/Button/ButtonSaveDemo.svelte.d.ts.map +1 -1
- package/dist/primitives/Card.svelte +1 -1
- package/dist/primitives/Checkbox/Checkbox.svelte +8 -8
- package/dist/primitives/DarkModeToggle.svelte +43 -44
- package/dist/primitives/DarkModeToggle.svelte.d.ts.map +1 -1
- package/dist/primitives/Drawer/Drawer.svelte +121 -47
- package/dist/primitives/Drawer/Drawer.svelte.d.ts +4 -0
- package/dist/primitives/Drawer/Drawer.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/ImageOutline.svelte +19 -0
- package/dist/primitives/Icons/ImageOutline.svelte.d.ts +12 -0
- package/dist/primitives/Icons/ImageOutline.svelte.d.ts.map +1 -0
- package/dist/primitives/Icons/TrashBinOutline.svelte +19 -0
- package/dist/primitives/Icons/TrashBinOutline.svelte.d.ts +12 -0
- package/dist/primitives/Icons/TrashBinOutline.svelte.d.ts.map +1 -0
- package/dist/primitives/Icons/index.d.ts +2 -0
- package/dist/primitives/Icons/index.js +2 -0
- package/dist/primitives/Input/Input.svelte +41 -80
- package/dist/primitives/Input/Input.svelte.d.ts +4 -6
- package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
- package/dist/primitives/Input/Select.svelte +66 -13
- package/dist/primitives/Input/Select.svelte.d.ts +2 -0
- package/dist/primitives/Input/Select.svelte.d.ts.map +1 -1
- package/dist/primitives/Input/Textarea.svelte +5 -3
- package/dist/primitives/Input/Textarea.svelte.d.ts.map +1 -1
- package/dist/primitives/Modal/Modal.svelte +13 -1
- package/dist/primitives/Modal/Modal.svelte.d.ts.map +1 -1
- package/dist/primitives/Pagination/Pagination.svelte +3 -2
- package/dist/primitives/Pagination/Pagination.svelte.d.ts.map +1 -1
- package/dist/primitives/Radio/Radio.svelte +7 -7
- package/dist/primitives/Tabs/Tabs.svelte +4 -3
- package/dist/primitives/Tabs/Tabs.svelte.d.ts.map +1 -1
- package/dist/recipes/CropImage/CropImage.svelte +10 -5
- package/dist/recipes/CropImage/CropImage.svelte.d.ts.map +1 -1
- package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -0
- package/dist/recipes/ImageUploader/ImageUploader.stories.svelte.d.ts +28 -0
- package/dist/recipes/ImageUploader/ImageUploader.stories.svelte.d.ts.map +1 -0
- package/dist/recipes/ImageUploader/ImageUploader.svelte +980 -0
- package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts +62 -0
- package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts.map +1 -0
- package/dist/recipes/SuperLogin/SuperLogin.svelte +37 -40
- package/dist/recipes/SuperLogin/SuperLogin.svelte.d.ts.map +1 -1
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte +3 -2
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts.map +1 -1
- package/dist/recipes/fields/CheckboxField.svelte +3 -2
- package/dist/recipes/fields/CheckboxField.svelte.d.ts.map +1 -1
- package/dist/recipes/fields/FormField.svelte +12 -4
- package/dist/recipes/fields/FormField.svelte.d.ts +3 -1
- package/dist/recipes/fields/FormField.svelte.d.ts.map +1 -1
- package/dist/recipes/fields/RadioGroup.svelte +13 -4
- package/dist/recipes/fields/RadioGroup.svelte.d.ts +4 -1
- package/dist/recipes/fields/RadioGroup.svelte.d.ts.map +1 -1
- package/dist/recipes/fields/SelectField.svelte +12 -3
- package/dist/recipes/fields/SelectField.svelte.d.ts +4 -1
- package/dist/recipes/fields/SelectField.svelte.d.ts.map +1 -1
- package/dist/recipes/fields/TextareaField.svelte +2 -1
- package/dist/recipes/fields/TextareaField.svelte.d.ts.map +1 -1
- package/dist/recipes/fields/ToggleField.svelte +3 -2
- package/dist/recipes/fields/ToggleField.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/MultiSelect.svelte +9 -8
- package/dist/recipes/inputs/MultiSelect.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +9 -9
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/Search.svelte +7 -6
- package/dist/recipes/inputs/Search.svelte.d.ts.map +1 -1
- package/dist/recipes/modals/AlertModal.svelte +3 -2
- package/dist/recipes/modals/AlertModal.svelte.d.ts.map +1 -1
- package/dist/recipes/modals/ConfirmationModal.svelte +6 -4
- package/dist/recipes/modals/ConfirmationModal.svelte.d.ts.map +1 -1
- package/dist/recipes/modals/InputModal.svelte +9 -8
- package/dist/recipes/modals/InputModal.svelte.d.ts.map +1 -1
- package/dist/recipes/modals/ModalStateManager.svelte +4 -3
- package/dist/recipes/modals/ModalStateManager.svelte.d.ts.map +1 -1
- package/dist/recipes/modals/StatusModal.svelte +5 -4
- package/dist/recipes/modals/StatusModal.svelte.d.ts.map +1 -1
- package/dist/stories/ButtonAuditReview.svelte +361 -397
- package/dist/stories/ButtonAuditReview.svelte.d.ts +24 -4
- package/dist/stories/ButtonAuditReview.svelte.d.ts.map +1 -1
- package/dist/tokens/index.d.ts +4 -8
- package/dist/tokens/index.d.ts.map +1 -1
- package/dist/tokens/index.js +4 -8
- package/dist/tokens/typography.d.ts +76 -169
- package/dist/tokens/typography.d.ts.map +1 -1
- package/dist/tokens/typography.js +93 -62
- package/package.json +4 -2
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import { CloseOutline, LogoInstagram } from '../../primitives/Icons';
|
|
3
|
+
import { typography } from '../../tokens/typography';
|
|
3
4
|
|
|
4
5
|
let {
|
|
5
6
|
performers = [],
|
|
@@ -42,7 +43,7 @@
|
|
|
42
43
|
|
|
43
44
|
<div class="flex flex-col gap-3">
|
|
44
45
|
{#if showTitle}
|
|
45
|
-
<h2 class="
|
|
46
|
+
<h2 class="{typography.h2} text-xl">{title}</h2>
|
|
46
47
|
{/if}
|
|
47
48
|
|
|
48
49
|
{#if ShowImage && description}
|
|
@@ -53,22 +54,22 @@
|
|
|
53
54
|
|
|
54
55
|
{#if description}
|
|
55
56
|
{#if showFullDescription || description.length <= characterLimit || !showReadMore}
|
|
56
|
-
<p class=
|
|
57
|
+
<p class={`${typography.sm} leading-relaxed whitespace-pre-line`}>{description}</p>
|
|
57
58
|
{#if showReadMore && description.length > characterLimit}
|
|
58
59
|
<button
|
|
59
60
|
onclick={toggleDescription}
|
|
60
|
-
class=
|
|
61
|
+
class={`${typography.label} text-left hover:underline text-blue-700 dark:text-blue-500`}
|
|
61
62
|
>
|
|
62
63
|
Show less
|
|
63
64
|
</button>
|
|
64
65
|
{/if}
|
|
65
66
|
{:else}
|
|
66
|
-
<p class=
|
|
67
|
+
<p class={`${typography.sm} leading-relaxed whitespace-pre-line`}>
|
|
67
68
|
{description.slice(0, characterLimit)}...
|
|
68
69
|
</p>
|
|
69
70
|
<button
|
|
70
71
|
onclick={toggleDescription}
|
|
71
|
-
class=
|
|
72
|
+
class={`${typography.label} text-left hover:underline text-blue-700 dark:text-blue-500`}
|
|
72
73
|
>
|
|
73
74
|
Show more
|
|
74
75
|
</button>
|
|
@@ -110,12 +111,12 @@
|
|
|
110
111
|
<CloseOutline class="w-5 h-5" />
|
|
111
112
|
</button>
|
|
112
113
|
|
|
113
|
-
<p class="
|
|
114
|
+
<p class="{typography.sm} leading-relaxed pr-6">
|
|
114
115
|
{profile?.biography || ''}
|
|
115
116
|
</p>
|
|
116
117
|
|
|
117
118
|
{#if profile?.instagram || profile?.twitter}
|
|
118
|
-
<div class="flex gap-2 items-center
|
|
119
|
+
<div class="flex gap-2 items-center {typography.smMuted} mt-3 pt-3 border-t border-gray-200 dark:border-gray-600">
|
|
119
120
|
<span>Follow {firstName}:</span>
|
|
120
121
|
{#if profile?.instagram}
|
|
121
122
|
<a
|
|
@@ -157,7 +158,7 @@
|
|
|
157
158
|
alt={displayName || 'Performer'}
|
|
158
159
|
class="size-16 rounded object-cover {!profile?.profileImage || performer.shouldBeHidden ? 'bg-gray-50 dark:bg-gray-700' : ''}"
|
|
159
160
|
/>
|
|
160
|
-
<p class="
|
|
161
|
+
<p class="{typography.xs} text-center leading-tight line-clamp-2">
|
|
161
162
|
{#if !performer.shouldBeHidden}
|
|
162
163
|
{displayName}
|
|
163
164
|
{/if}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AboutShow.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/AboutShow/AboutShow.svelte.js"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"AboutShow.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/AboutShow/AboutShow.svelte.js"],"names":[],"mappings":";;;;;AAmJA;iBAzIkC,GAAG,EAAE;gBAAc,MAAM;kBAAgB,MAAM;gBAAc,OAAO;YAAU,MAAM;mBAAiB,OAAO;;WAyItF;wBAzIrC;IAAE,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,WAAU;CAAE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import { ChevronLeftOutline, ChevronRightOutline, CheckCircleSolid } from '../../primitives/Icons';
|
|
3
3
|
import Spinner from '../../primitives/Spinner/Spinner.svelte';
|
|
4
|
+
import { typography } from '../../tokens/typography';
|
|
4
5
|
|
|
5
6
|
let {
|
|
6
7
|
variant = 'availability',
|
|
@@ -321,7 +322,7 @@
|
|
|
321
322
|
}
|
|
322
323
|
|
|
323
324
|
triggerHaptic('medium');
|
|
324
|
-
|
|
325
|
+
onMonthChange?.({ year: currentYear, month: currentMonth });
|
|
325
326
|
|
|
326
327
|
const enterFrom = direction > 0 ? containerWidth : -containerWidth;
|
|
327
328
|
calendarGridElement.style.transition = 'none';
|
|
@@ -614,7 +615,7 @@
|
|
|
614
615
|
|
|
615
616
|
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
616
617
|
<div
|
|
617
|
-
class="w-full max-w-full mx-auto
|
|
618
|
+
class="w-full max-w-full mx-auto select-none"
|
|
618
619
|
class:max-w-xs={variant === 'display'}
|
|
619
620
|
ontouchstart={handleTouchStart}
|
|
620
621
|
ontouchmove={handleTouchMove}
|
|
@@ -627,7 +628,7 @@
|
|
|
627
628
|
{#if showNavigation}
|
|
628
629
|
<header class="flex items-center justify-between mb-4 select-none">
|
|
629
630
|
<div class="flex items-center gap-2" bind:this={monthDisplayEl}>
|
|
630
|
-
<h2 class=
|
|
631
|
+
<h2 class={typography.h2}>{MONTH_NAMES[currentMonth]}</h2>
|
|
631
632
|
{#if saveStatus && variant === 'availability'}
|
|
632
633
|
<span class="flex items-center justify-center ml-1">
|
|
633
634
|
{#if saveStatus === 'saving'}
|
|
@@ -643,7 +644,7 @@
|
|
|
643
644
|
|
|
644
645
|
<div class="flex items-center gap-2">
|
|
645
646
|
<button
|
|
646
|
-
class="p-
|
|
647
|
+
class="p-2 flex items-center justify-center border-0 rounded-lg bg-transparent text-gray-500 dark:text-gray-400 cursor-pointer select-none transition-all duration-100 ease-out hover:bg-gray-100 dark:hover:bg-gray-700 hover:text-gray-900 dark:hover:text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-600 focus-visible:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed"
|
|
647
648
|
class:scale-90={prevPressed}
|
|
648
649
|
class:bg-gray-100={prevPressed}
|
|
649
650
|
class:dark:bg-gray-700={prevPressed}
|
|
@@ -681,7 +682,7 @@
|
|
|
681
682
|
{/if}
|
|
682
683
|
|
|
683
684
|
<button
|
|
684
|
-
class="p-
|
|
685
|
+
class="p-2 flex items-center justify-center border-0 rounded-lg bg-transparent text-gray-500 dark:text-gray-400 cursor-pointer select-none transition-all duration-100 ease-out hover:bg-gray-100 dark:hover:bg-gray-700 hover:text-gray-900 dark:hover:text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-600 focus-visible:ring-offset-2"
|
|
685
686
|
class:scale-90={nextPressed}
|
|
686
687
|
class:bg-gray-100={nextPressed}
|
|
687
688
|
class:dark:bg-gray-700={nextPressed}
|
|
@@ -709,7 +710,7 @@
|
|
|
709
710
|
>
|
|
710
711
|
{#each DAY_NAMES as dayName, i}
|
|
711
712
|
<div
|
|
712
|
-
class="flex items-end justify-center pb-1
|
|
713
|
+
class="flex items-end justify-center pb-1 {typography.xsMuted} overflow-hidden leading-none sm:pb-2 sm:pt-1 sm:justify-end sm:pr-2 sm:text-lg sm:text-gray-900 sm:dark:text-white sm:border-b sm:border-gray-200 sm:dark:border-gray-700"
|
|
713
714
|
role="columnheader"
|
|
714
715
|
aria-label={["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"][i]}
|
|
715
716
|
>
|
|
@@ -720,7 +721,7 @@
|
|
|
720
721
|
|
|
721
722
|
{#each prevMonthPreviewDays as previewDay}
|
|
722
723
|
<div class="flex flex-col items-center justify-start px-1 py-0.5 min-h-[56px] sm:min-h-[60px] md:min-h-[70px] lg:min-h-[80px] pointer-events-none bg-transparent shadow-[inset_0_-1px_0_0_rgb(229_231_235)] dark:shadow-[inset_0_-1px_0_0_rgb(55_65_81)] sm:shadow-none sm:p-2 sm:border-t sm:border-l sm:border-gray-200 sm:dark:border-gray-700 last:sm:border-r" role="gridcell" aria-disabled="true">
|
|
723
|
-
<span class="
|
|
724
|
+
<span class="{typography.sm} text-gray-300 dark:text-gray-600 w-full text-center sm:text-lg sm:font-normal sm:text-right sm:mb-2">{previewDay.day}</span>
|
|
724
725
|
</div>
|
|
725
726
|
{/each}
|
|
726
727
|
|
|
@@ -745,8 +746,8 @@
|
|
|
745
746
|
ontouchend={(e) => { e.preventDefault(); handleDayTap(e, day); }}
|
|
746
747
|
onkeydown={(e) => handleDayKeydown(e, day)}
|
|
747
748
|
>
|
|
748
|
-
<span class="
|
|
749
|
-
{day.isPast ? 'text-gray-400 dark:text-gray-500' : '
|
|
749
|
+
<span class="{typography.sm} w-full text-center transition-transform duration-100 ease-out sm:text-lg sm:font-normal sm:text-right sm:mb-2
|
|
750
|
+
{day.isPast ? 'text-gray-400 dark:text-gray-500' : ''}
|
|
750
751
|
{day.isSelected && !day.isPast && variant === 'availability' ? 'text-white font-semibold' : ''}">{day.day}</span>
|
|
751
752
|
{#if variant !== 'availability' && day.hasEvents}
|
|
752
753
|
<div class="flex gap-0.5 mt-0.5">
|
|
@@ -760,7 +761,7 @@
|
|
|
760
761
|
|
|
761
762
|
{#each nextMonthPreviewDays as previewDay}
|
|
762
763
|
<div class="flex flex-col items-center justify-start px-1 py-0.5 min-h-[56px] sm:min-h-[60px] md:min-h-[70px] lg:min-h-[80px] pointer-events-none bg-transparent shadow-[inset_0_-1px_0_0_rgb(229_231_235)] dark:shadow-[inset_0_-1px_0_0_rgb(55_65_81)] sm:shadow-none sm:p-2 sm:border-t sm:border-l sm:border-gray-200 sm:dark:border-gray-700 sm:border-b last:sm:border-r" role="gridcell" aria-disabled="true">
|
|
763
|
-
<span class="
|
|
764
|
+
<span class="{typography.sm} text-gray-300 dark:text-gray-600 w-full text-center sm:text-lg sm:font-normal sm:text-right sm:mb-2">{previewDay.day}</span>
|
|
764
765
|
</div>
|
|
765
766
|
{/each}
|
|
766
767
|
</div>
|
|
@@ -770,11 +771,11 @@
|
|
|
770
771
|
<div class="flex items-center justify-center gap-6 pt-4">
|
|
771
772
|
<div class="flex items-center gap-2">
|
|
772
773
|
<span class="w-5 h-5 rounded bg-blue-700 dark:bg-blue-600 border border-blue-700 dark:border-blue-600"></span>
|
|
773
|
-
<span class="
|
|
774
|
+
<span class="{typography.sm}">Available</span>
|
|
774
775
|
</div>
|
|
775
776
|
<div class="flex items-center gap-2">
|
|
776
777
|
<span class="w-5 h-5 rounded bg-gray-50 dark:bg-gray-700 border-2 border-gray-400 dark:border-gray-500"></span>
|
|
777
|
-
<span class="
|
|
778
|
+
<span class="{typography.sm}">Unavailable</span>
|
|
778
779
|
</div>
|
|
779
780
|
</div>
|
|
780
781
|
{/if}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiniMonthCalendar.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/Calendar/MiniMonthCalendar.svelte.js"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"MiniMonthCalendar.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/Calendar/MiniMonthCalendar.svelte.js"],"names":[],"mappings":";;;;;AAitBA;cArsB+B,MAAM;oBAAkB,GAAG,EAAE;aAAW,GAAG,EAAE;iBAAe,MAAM;iBAAe,OAAO;qBAAmB,OAAO;sBAAoB,OAAO;eAAa,OAAO;yBAAuB,OAAO;4BAA0B,OAAO;kBAAgB,GAAG;gBAAc,GAAG;mBAAiB,GAAG;wBAqsBvP;wBArsB7C;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,GAAG,CAAC;IAAC,aAAa,EAAE,GAAG,CAAA;CAAE"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import { ChevronUpOutline } from "../../primitives/Icons";
|
|
3
|
+
import { typography } from '../../tokens/typography';
|
|
3
4
|
|
|
4
5
|
let {
|
|
5
6
|
faqs = [],
|
|
@@ -21,7 +22,7 @@
|
|
|
21
22
|
|
|
22
23
|
<div class="flex flex-col gap-3">
|
|
23
24
|
{#if showTitle}
|
|
24
|
-
<h2 class=
|
|
25
|
+
<h2 class={typography.h2}>{title}</h2>
|
|
25
26
|
{/if}
|
|
26
27
|
|
|
27
28
|
{#if items.length}
|
|
@@ -50,7 +51,7 @@
|
|
|
50
51
|
aria-labelledby="accordion-heading-{index}"
|
|
51
52
|
>
|
|
52
53
|
<div class="p-5 border-b border-gray-200 dark:border-gray-700 {index === items.length - 1 ? 'border-b-0 rounded-b-lg' : ''}">
|
|
53
|
-
<p class="
|
|
54
|
+
<p class="{typography.smMuted} leading-relaxed">{answer}</p>
|
|
54
55
|
</div>
|
|
55
56
|
</div>
|
|
56
57
|
</div>
|
|
@@ -61,14 +62,14 @@
|
|
|
61
62
|
{#each items as { question, answer }}
|
|
62
63
|
<div>
|
|
63
64
|
{#if question}
|
|
64
|
-
<p class="
|
|
65
|
+
<p class="{typography.label} mb-1">{question}</p>
|
|
65
66
|
{/if}
|
|
66
|
-
<p class="
|
|
67
|
+
<p class="{typography.smMuted} leading-relaxed">{answer}</p>
|
|
67
68
|
</div>
|
|
68
69
|
{/each}
|
|
69
70
|
</div>
|
|
70
71
|
{/if}
|
|
71
72
|
{:else}
|
|
72
|
-
<p class="
|
|
73
|
+
<p class="{typography.smMuted}">No FAQs available.</p>
|
|
73
74
|
{/if}
|
|
74
75
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FAQs.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/FAQs/FAQs.svelte.js"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"FAQs.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/FAQs/FAQs.svelte.js"],"names":[],"mappings":";;;;;AA0EA;WAhE4B,GAAG,EAAE;YAAU,MAAM;gBAAc,OAAO;gBAAc,OAAO;WAgExC;wBAhEhC;IAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import { ChevronLeftOutline, ChevronRightOutline } from '../../primitives/Icons';
|
|
3
|
+
import { typography } from '../../tokens/typography';
|
|
3
4
|
|
|
4
5
|
const today = new Date();
|
|
5
6
|
const todayLocalMonth = today.getMonth();
|
|
@@ -61,7 +62,7 @@
|
|
|
61
62
|
</script>
|
|
62
63
|
|
|
63
64
|
<header class="w-full flex items-center justify-between select-none">
|
|
64
|
-
<h2 class="text-3xl
|
|
65
|
+
<h2 class="{typography.h1} text-3xl">
|
|
65
66
|
{new Intl.DateTimeFormat("en", {
|
|
66
67
|
month: "long",
|
|
67
68
|
}).format(new Date(currentYear, currentMonth, 1))}
|
|
@@ -87,7 +88,7 @@
|
|
|
87
88
|
<ChevronLeftOutline class="w-5 h-5" />
|
|
88
89
|
</button>
|
|
89
90
|
<button
|
|
90
|
-
class="
|
|
91
|
+
class="{`${typography.label} px-3 py-1 border border-gray-300 dark:border-gray-600 rounded-lg bg-transparent cursor-pointer select-none transition-transform duration-100 ease-out hover:bg-blue-700 hover:text-white hover:border-blue-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-600 focus-visible:ring-offset-2 disabled:opacity-40 disabled:cursor-not-allowed disabled:text-gray-500 dark:disabled:text-gray-400`}"
|
|
91
92
|
class:scale-95={todayPressed}
|
|
92
93
|
class:bg-blue-700={todayPressed}
|
|
93
94
|
class:text-white={todayPressed}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthSwitcher.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/MonthSwitcher/MonthSwitcher.svelte.js"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"MonthSwitcher.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/MonthSwitcher/MonthSwitcher.svelte.js"],"names":[],"mappings":";;;;;AA0FA;;;;;;4BA5E+L,OAAO;WA4E1I;wBA5EzC;IAAE,WAAW,CAAC,SAAwB;IAAC,YAAY,CAAC,SAAyB;IAAC,UAAU,CAAC,WAAW;IAAC,UAAU,CAAC,WAAW;IAAC,WAAW,CAAC,WAAW;IAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAE"}
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
import { cubicOut } from 'svelte/easing';
|
|
4
4
|
import { ChevronDownOutline, CloseOutline } from '../../primitives/Icons';
|
|
5
5
|
import Spinner from '../../primitives/Spinner/Spinner.svelte';
|
|
6
|
+
import { typography } from '../../tokens/typography';
|
|
6
7
|
|
|
7
8
|
let {
|
|
8
9
|
loading = false,
|
|
9
10
|
quantities = {},
|
|
11
|
+
donationAmounts = {}, // Map of ticketId -> donation amount string
|
|
10
12
|
eventTickets = [],
|
|
11
13
|
checkoutTicket = null,
|
|
12
14
|
isAgreed = true,
|
|
@@ -26,6 +28,24 @@
|
|
|
26
28
|
onPriceUpdate,
|
|
27
29
|
} = $props();
|
|
28
30
|
|
|
31
|
+
// Helper to get effective price for a ticket (handles donation tickets)
|
|
32
|
+
function getEffectivePrice(ticket) {
|
|
33
|
+
// Donation ticket (type 2): use user-entered donation amount
|
|
34
|
+
if (isDonationTicket(ticket)) {
|
|
35
|
+
const donationAmount = donationAmounts[ticket.ID];
|
|
36
|
+
return parseFloat(donationAmount) || 0;
|
|
37
|
+
}
|
|
38
|
+
// Regular ticket: use ticket price
|
|
39
|
+
return parseFloat(ticket.price) || 0;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Check if ticket is a donation ticket
|
|
43
|
+
// Handle both 'type' and 'ticketType' fields, and coerce to number for comparison
|
|
44
|
+
function isDonationTicket(ticket) {
|
|
45
|
+
const ticketType = ticket.type ?? ticket.ticketType ?? 0;
|
|
46
|
+
return Number(ticketType) === 2;
|
|
47
|
+
}
|
|
48
|
+
|
|
29
49
|
let showOrderSummaryOnMobile = $state(false);
|
|
30
50
|
|
|
31
51
|
function feeFor(price) {
|
|
@@ -75,12 +95,20 @@
|
|
|
75
95
|
let subtotalWithoutDiscount = $derived(Object.keys(quantities).reduce((acc, key) => {
|
|
76
96
|
const ticket = eventTickets.find(t => t.ID == key);
|
|
77
97
|
if (!ticket) return acc;
|
|
78
|
-
|
|
98
|
+
// For donation tickets, use the donation amount; otherwise use ticket price
|
|
99
|
+
const effectivePrice = getEffectivePrice(ticket);
|
|
100
|
+
return acc + quantities[key] * effectivePrice;
|
|
79
101
|
}, 0));
|
|
80
102
|
|
|
81
103
|
let subtotal = $derived(Object.keys(quantities).reduce((acc, key) => {
|
|
82
104
|
const ticket = eventTickets.find(t => t.ID == key);
|
|
83
105
|
if (!ticket) return acc;
|
|
106
|
+
// For donation tickets, use the donation amount (no discounts apply)
|
|
107
|
+
if (isDonationTicket(ticket)) {
|
|
108
|
+
const effectivePrice = getEffectivePrice(ticket);
|
|
109
|
+
return acc + quantities[key] * effectivePrice;
|
|
110
|
+
}
|
|
111
|
+
// For regular tickets, apply discounts as usual
|
|
84
112
|
const discountedPrice = getDiscountedPrice(ticket);
|
|
85
113
|
const priceToUse = discountedPrice !== null ? parseFloat(discountedPrice) : ticket.price;
|
|
86
114
|
return acc + quantities[key] * priceToUse;
|
|
@@ -90,7 +118,8 @@
|
|
|
90
118
|
|
|
91
119
|
let fees = $derived(Object.keys(quantities).reduce((acc, key) => {
|
|
92
120
|
const ticket = eventTickets.find(t => t.ID == key);
|
|
93
|
-
|
|
121
|
+
// Skip fees for: no ticket, free tickets, and donation tickets (type 2)
|
|
122
|
+
if (!ticket || ticket.price == 0 || isDonationTicket(ticket)) return acc;
|
|
94
123
|
const discountedPrice = getDiscountedPrice(ticket);
|
|
95
124
|
const priceToUse = discountedPrice !== null ? parseFloat(discountedPrice) : ticket.price;
|
|
96
125
|
return acc + quantities[key] * feeFor(priceToUse);
|
|
@@ -110,36 +139,42 @@
|
|
|
110
139
|
class="hidden min-[872px]:block h-fit rounded-lg bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600"
|
|
111
140
|
>
|
|
112
141
|
<div class="px-5 py-4 border-b border-gray-200 dark:border-gray-600">
|
|
113
|
-
<
|
|
142
|
+
<h3 class={typography.h3}>
|
|
114
143
|
Order summary
|
|
115
|
-
</
|
|
144
|
+
</h3>
|
|
116
145
|
</div>
|
|
117
146
|
|
|
118
147
|
<div class="px-5 pb-5">
|
|
119
148
|
{#if totalQuantity === 0}
|
|
120
149
|
<div class="py-8 text-center">
|
|
121
|
-
<p class="
|
|
150
|
+
<p class="{typography.smMuted}">Select tickets to continue</p>
|
|
122
151
|
</div>
|
|
123
152
|
{:else}
|
|
124
153
|
{#each Object.keys(quantities) as key}
|
|
125
154
|
{#if quantities[key] > 0}
|
|
126
155
|
{#each eventTickets as ticket}
|
|
127
156
|
{#if ticket.ID == key}
|
|
157
|
+
{@const effectivePrice = getEffectivePrice(ticket)}
|
|
158
|
+
{@const isDonation = isDonationTicket(ticket)}
|
|
128
159
|
<div class="flex justify-between py-3 border-b border-gray-200/50 dark:border-gray-600/50">
|
|
129
160
|
<div>
|
|
130
|
-
<p class="
|
|
131
|
-
<p class="
|
|
132
|
-
{#if ticket.price === 0}
|
|
161
|
+
<p class="{typography.label}">{ticket.name}</p>
|
|
162
|
+
<p class="{typography.smMuted}">
|
|
163
|
+
{#if ticket.price === 0 && !isDonation}
|
|
133
164
|
Free x {quantities[key]}
|
|
165
|
+
{:else if isDonation}
|
|
166
|
+
${effectivePrice.toFixed(2)} x {quantities[key]}
|
|
134
167
|
{:else}
|
|
135
168
|
${ticket.price.toFixed(2)} x {quantities[key]}
|
|
136
169
|
{/if}
|
|
137
170
|
</p>
|
|
138
171
|
</div>
|
|
139
|
-
<div class="
|
|
140
|
-
{ticket.price === 0
|
|
141
|
-
|
|
142
|
-
|
|
172
|
+
<div class="{typography.label}">
|
|
173
|
+
{#if ticket.price === 0 && !isDonation}
|
|
174
|
+
Free
|
|
175
|
+
{:else}
|
|
176
|
+
${(effectivePrice * quantities[key]).toFixed(2)}
|
|
177
|
+
{/if}
|
|
143
178
|
</div>
|
|
144
179
|
</div>
|
|
145
180
|
{/if}
|
|
@@ -147,7 +182,7 @@
|
|
|
147
182
|
{/if}
|
|
148
183
|
{/each}
|
|
149
184
|
|
|
150
|
-
<div class="flex flex-col py-3 gap-2
|
|
185
|
+
<div class="{`${typography.sm} flex flex-col py-3 gap-2`}">
|
|
151
186
|
{#if promoSavings > 0 || (promoDiscount > 0 && !currentPromoRule?.provideDiscount)}
|
|
152
187
|
<div class="flex justify-between text-gray-600 dark:text-gray-300">
|
|
153
188
|
<span>Full Price</span><span>${subtotalWithoutDiscount.toFixed(2)}</span>
|
|
@@ -173,13 +208,13 @@
|
|
|
173
208
|
</div>
|
|
174
209
|
</div>
|
|
175
210
|
|
|
176
|
-
<div class="flex justify-between
|
|
211
|
+
<div class="flex justify-between {typography.h3} py-4 text-lg border-t border-gray-200 dark:border-gray-600">
|
|
177
212
|
<span>Total</span><span>${total.toFixed(2)}</span>
|
|
178
213
|
</div>
|
|
179
214
|
{/if}
|
|
180
215
|
|
|
181
216
|
{#if totalQuantity > 0 && btnText === 'Place order'}
|
|
182
|
-
<p class="
|
|
217
|
+
<p class="{typography.xsMuted} text-center mb-3">
|
|
183
218
|
By selecting Place order, I agree to the <a href="https://get-micdrop.com/tos" class="text-blue-700 dark:text-blue-500 underline hover:opacity-80" target="_blank" rel="noopener noreferrer">terms of service</a>
|
|
184
219
|
</p>
|
|
185
220
|
{/if}
|
|
@@ -218,7 +253,7 @@
|
|
|
218
253
|
class="min-[872px]:hidden fixed bottom-0 left-0 w-full overflow-x-hidden overflow-y-auto z-50 max-h-[80vh] rounded-t-lg shadow-xl bg-white dark:bg-gray-800"
|
|
219
254
|
>
|
|
220
255
|
<div class="flex flex-row justify-between items-center px-5 py-4 border-b border-gray-200 dark:border-gray-600">
|
|
221
|
-
<h2 class="text-xl
|
|
256
|
+
<h2 class="{typography.h2} text-xl">
|
|
222
257
|
Order summary
|
|
223
258
|
</h2>
|
|
224
259
|
<button
|
|
@@ -235,21 +270,27 @@
|
|
|
235
270
|
{#if quantities[key] > 0}
|
|
236
271
|
{#each eventTickets as ticket}
|
|
237
272
|
{#if ticket.ID == key}
|
|
273
|
+
{@const effectivePrice = getEffectivePrice(ticket)}
|
|
274
|
+
{@const isDonation = isDonationTicket(ticket)}
|
|
238
275
|
<div class="flex justify-between py-4 border-b border-gray-200 dark:border-gray-600">
|
|
239
276
|
<div>
|
|
240
|
-
<p class="
|
|
241
|
-
<p class="
|
|
242
|
-
{#if ticket.price === 0}
|
|
277
|
+
<p class="{typography.h5}">{ticket.name}</p>
|
|
278
|
+
<p class="{typography.smMuted}">
|
|
279
|
+
{#if ticket.price === 0 && !isDonation}
|
|
243
280
|
Free x {quantities[key]}
|
|
281
|
+
{:else if isDonation}
|
|
282
|
+
${effectivePrice.toFixed(2)} x {quantities[key]}
|
|
244
283
|
{:else}
|
|
245
284
|
${ticket.price.toFixed(2)} x {quantities[key]}
|
|
246
285
|
{/if}
|
|
247
286
|
</p>
|
|
248
287
|
</div>
|
|
249
|
-
<div class="
|
|
250
|
-
{ticket.price === 0
|
|
251
|
-
|
|
252
|
-
|
|
288
|
+
<div class="{typography.h5}">
|
|
289
|
+
{#if ticket.price === 0 && !isDonation}
|
|
290
|
+
Free
|
|
291
|
+
{:else}
|
|
292
|
+
${(effectivePrice * quantities[key]).toFixed(2)}
|
|
293
|
+
{/if}
|
|
253
294
|
</div>
|
|
254
295
|
</div>
|
|
255
296
|
{/if}
|
|
@@ -283,7 +324,7 @@
|
|
|
283
324
|
</div>
|
|
284
325
|
</div>
|
|
285
326
|
|
|
286
|
-
<div class="flex justify-between
|
|
327
|
+
<div class="flex justify-between {typography.h3} py-5 border-t border-gray-200 dark:border-gray-600">
|
|
287
328
|
<span>Total</span><span>${total.toFixed(2)}</span>
|
|
288
329
|
</div>
|
|
289
330
|
</div>
|
|
@@ -297,15 +338,15 @@
|
|
|
297
338
|
>
|
|
298
339
|
<div class="flex items-stretch gap-3">
|
|
299
340
|
<button class="flex flex-col justify-between items-start shrink-0 whitespace-nowrap bg-transparent border-none p-0 cursor-pointer touch-manipulation" onclick={makeOrderSummaryVisible}>
|
|
300
|
-
<span class="flex items-center gap-1 text-
|
|
341
|
+
<span class="{`${typography.sm} flex items-center gap-1 text-gray-600 dark:text-gray-300`}">
|
|
301
342
|
{totalQuantity} {totalQuantity > 1 ? 'tickets' : 'ticket'}
|
|
302
|
-
<ChevronDownOutline class=
|
|
343
|
+
<ChevronDownOutline class={`w-4 h-4 ${typography.iconMuted} transition-transform duration-200 ${showOrderSummaryOnMobile ? 'rotate-180' : ''}`} />
|
|
303
344
|
</span>
|
|
304
|
-
<span class="text-xl
|
|
345
|
+
<span class="{typography.h2} text-xl">${total.toFixed(2)}</span>
|
|
305
346
|
</button>
|
|
306
347
|
|
|
307
348
|
<button
|
|
308
|
-
class="flex-1 min-w-36 h-12 rounded-lg
|
|
349
|
+
class="{`${typography.label} flex-1 min-w-36 h-12 rounded-lg touch-manipulation flex items-center justify-center ${totalQuantity === 0 || !isAgreed ? 'bg-gray-200 dark:bg-gray-700 text-gray-500 dark:text-gray-400 cursor-not-allowed' : 'bg-blue-700 dark:bg-blue-600 text-white hover:bg-blue-800 dark:hover:bg-blue-700'}`}"
|
|
309
350
|
onclick={() => {
|
|
310
351
|
if (executePurchase) {
|
|
311
352
|
executePurchase(elements);
|
|
@@ -6,6 +6,7 @@ type OrderSummary = {
|
|
|
6
6
|
declare const OrderSummary: import("svelte").Component<{
|
|
7
7
|
loading?: boolean;
|
|
8
8
|
quantities?: Record<string, any>;
|
|
9
|
+
donationAmounts?: Record<string, any>;
|
|
9
10
|
eventTickets?: any[];
|
|
10
11
|
checkoutTicket?: any;
|
|
11
12
|
isAgreed?: boolean;
|
|
@@ -21,6 +22,7 @@ declare const OrderSummary: import("svelte").Component<{
|
|
|
21
22
|
type $$ComponentProps = {
|
|
22
23
|
loading?: boolean;
|
|
23
24
|
quantities?: Record<string, any>;
|
|
25
|
+
donationAmounts?: Record<string, any>;
|
|
24
26
|
eventTickets?: any[];
|
|
25
27
|
checkoutTicket?: any;
|
|
26
28
|
isAgreed?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderSummary.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/OrderSummary/OrderSummary.svelte.js"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"OrderSummary.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/OrderSummary/OrderSummary.svelte.js"],"names":[],"mappings":";;;;;AAoVA;cApU+B,OAAO;iBAAe,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;sBAAoB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;mBAAiB,GAAG,EAAE;qBAAmB,GAAG;eAAa,OAAO;cAAY,MAAM;mBAAiB,OAAO;oBAAkB,MAAM;uBAAqB,GAAG;sBAAoB,GAAG;eAAa,GAAG;yBAAuB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;mBAAiB,GAAG;WAoUnT;wBApUxC;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,cAAc,CAAC,EAAE,GAAG,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC;IAAC,eAAe,CAAC,EAAE,GAAG,CAAC;IAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,aAAa,EAAE,GAAG,CAAA;CAAE"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<script>
|
|
2
|
+
import { typography } from '../../tokens/typography';
|
|
3
|
+
|
|
2
4
|
let {
|
|
3
5
|
events = [],
|
|
4
6
|
view = "row",
|
|
@@ -111,16 +113,12 @@
|
|
|
111
113
|
</span>
|
|
112
114
|
{/if}
|
|
113
115
|
|
|
114
|
-
<
|
|
115
|
-
class="font-semibold text-gray-900 dark:text-white leading-tight line-clamp-2 {view === 'col'
|
|
116
|
-
? 'text-sm sm:text-base'
|
|
117
|
-
: 'text-sm sm:text-lg'}"
|
|
118
|
-
>
|
|
116
|
+
<h4 class="{typography.h4} leading-tight line-clamp-2">
|
|
119
117
|
{event.name}
|
|
120
|
-
</
|
|
118
|
+
</h4>
|
|
121
119
|
|
|
122
120
|
<div
|
|
123
|
-
class="
|
|
121
|
+
class="{typography.textMuted} {view === 'col' ? 'text-xs' : 'text-xs sm:text-sm'}"
|
|
124
122
|
>
|
|
125
123
|
<span class="font-medium">
|
|
126
124
|
{formatEventDate(event.date)}
|
|
@@ -132,13 +130,13 @@
|
|
|
132
130
|
</div>
|
|
133
131
|
|
|
134
132
|
{#if view === "row" && event.description}
|
|
135
|
-
<p class="
|
|
133
|
+
<p class="{typography.xsMuted} text-xs sm:text-sm line-clamp-2 mt-1">
|
|
136
134
|
{event.description}
|
|
137
135
|
</p>
|
|
138
136
|
{/if}
|
|
139
137
|
|
|
140
138
|
{#if event.doorsTimeline && view === "row"}
|
|
141
|
-
<div class="text-xs
|
|
139
|
+
<div class="{typography.xsMuted} text-xs">
|
|
142
140
|
{event.doorsTimeline}
|
|
143
141
|
</div>
|
|
144
142
|
{/if}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublicCard.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/PublicCard/PublicCard.svelte.js"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"PublicCard.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/PublicCard/PublicCard.svelte.js"],"names":[],"mappings":";;;;;AAmIA;aA3H8B,GAAG,EAAE;WAAS,MAAM;uBAAqB,GAAG;kBAAgB,GAAG;WA2HpC;wBA3HtC;IAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC;IAAC,YAAY,EAAE,GAAG,CAAA;CAAE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import { ShareOutline, CheckOutline } from '../../primitives/Icons';
|
|
3
3
|
import ShowTimeCard from '../ShowTimeCard/ShowTimeCard.svelte';
|
|
4
|
+
import { typography } from '../../tokens/typography';
|
|
4
5
|
|
|
5
6
|
let {
|
|
6
7
|
event = {},
|
|
@@ -78,9 +79,9 @@
|
|
|
78
79
|
<div class="h-fit rounded-lg sm:px-5 py-4 md:border md:border-gray-200 md:dark:border-gray-700 bg-white dark:bg-gray-800">
|
|
79
80
|
{#if showTitle}
|
|
80
81
|
<div class="flex justify-between items-start gap-2 mb-4">
|
|
81
|
-
<
|
|
82
|
+
<h2 class="{typography.h2} flex-1 text-left">
|
|
82
83
|
{event.name || ''}
|
|
83
|
-
</
|
|
84
|
+
</h2>
|
|
84
85
|
<button
|
|
85
86
|
class="flex-shrink-0 p-2 rounded-lg transition-colors hover:bg-gray-100 dark:hover:bg-gray-700 relative"
|
|
86
87
|
aria-label="Share event"
|
|
@@ -95,19 +96,19 @@
|
|
|
95
96
|
</div>
|
|
96
97
|
{/if}
|
|
97
98
|
|
|
98
|
-
<div class="space-y-1
|
|
99
|
-
<p class="
|
|
99
|
+
<div class="space-y-1">
|
|
100
|
+
<p class="{typography.label}">{formatDateTime(event.startDateTime)}</p>
|
|
100
101
|
{#if event.displayStartTime && event.doorsOpenTime}
|
|
101
|
-
<p class="
|
|
102
|
+
<p class="{typography.smMuted}">Doors open {formatTimeline(event.doorsOpenTime)}</p>
|
|
102
103
|
{/if}
|
|
103
104
|
{#if event.displayEndTime && event.endDateTime}
|
|
104
|
-
<p class="
|
|
105
|
+
<p class="{typography.smMuted}">Ends {formatTimeline(event.endDateTime)}</p>
|
|
105
106
|
{/if}
|
|
106
107
|
</div>
|
|
107
108
|
|
|
108
109
|
{#if showtimes && showtimes.length > 1}
|
|
109
110
|
<div class="mt-4 pt-4 border-t border-gray-200 dark:border-gray-700">
|
|
110
|
-
<p class="
|
|
111
|
+
<p class="{typography.smMuted} mb-2">More showtimes</p>
|
|
111
112
|
<div class="flex flex-wrap gap-2">
|
|
112
113
|
{#each showtimes as showtime}
|
|
113
114
|
<div class="w-24">
|
|
@@ -132,16 +133,16 @@
|
|
|
132
133
|
rel="noopener noreferrer"
|
|
133
134
|
class="group block"
|
|
134
135
|
>
|
|
135
|
-
<p class="
|
|
136
|
+
<p class="{typography.label} transition-colors group-hover:text-blue-700 dark:group-hover:text-blue-500">
|
|
136
137
|
{event.venue.name}
|
|
137
138
|
</p>
|
|
138
|
-
<p class="
|
|
139
|
+
<p class="{typography.smMuted} transition-colors group-hover:text-blue-700 dark:group-hover:text-blue-500">
|
|
139
140
|
{event.venue.address || ''}
|
|
140
141
|
</p>
|
|
141
142
|
</a>
|
|
142
143
|
|
|
143
144
|
{#if event.hasAgeRestriction || event.ageRequirement || event.minimumAge}
|
|
144
|
-
<p class="
|
|
145
|
+
<p class="{typography.smMuted} mt-2">
|
|
145
146
|
{#if event.ageRequirement != null}
|
|
146
147
|
{event.ageRequirement <= 1 ? 'All ages' : `${event.ageRequirement}+`}
|
|
147
148
|
{:else if event.minimumAge != null}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShowCard.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/ShowCard/ShowCard.svelte.js"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"ShowCard.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/calendar/ShowCard/ShowCard.svelte.js"],"names":[],"mappings":";;;;;AAwJA;YA5I6B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;gBAAc,GAAG,EAAE;gBAAc,OAAO;;;sBAA0E,GAAG;WA4I9G;wBA5IpC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,WAAW;IAAC,cAAc,CAAC,WAAW;IAAC,gBAAgB,EAAE,GAAG,CAAA;CAAE"}
|