@getmicdrop/svelte-components 5.21.0 → 5.21.1
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.spec.js +10 -10
- package/dist/calendar/AboutShow/AboutShow.svelte +191 -191
- package/dist/calendar/Calendar/MiniMonthCalendar.spec.js +9 -8
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte +800 -803
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -1
- package/dist/calendar/FAQs/FAQs.spec.js +6 -6
- package/dist/calendar/FAQs/FAQs.svelte +88 -88
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +136 -140
- package/dist/calendar/OrderSummary/OrderSummary.svelte +461 -461
- package/dist/calendar/PublicCard/PublicCard.spec.js +3 -3
- package/dist/calendar/PublicCard/PublicCard.svelte +164 -164
- package/dist/calendar/ShowCard/ShowCard.spec.js +8 -8
- package/dist/calendar/ShowCard/ShowCard.svelte +180 -180
- package/dist/calendar/ShowTimeCard/ShowTimeCard.spec.js +4 -4
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +80 -80
- package/dist/calendar/index.js +15 -15
- package/dist/components/Heading.spec.js +89 -89
- package/dist/components/Heading.svelte +66 -66
- package/dist/components/Layout/AppShell.svelte +104 -104
- package/dist/components/Layout/ContentSection.svelte +80 -80
- package/dist/components/Layout/Grid.svelte +101 -101
- package/dist/components/Layout/Heading.svelte +81 -81
- package/dist/components/Layout/PageContainer.svelte +69 -69
- package/dist/components/Layout/Responsive.svelte +75 -75
- package/dist/components/Layout/Section.spec.js +4 -4
- package/dist/components/Layout/Section.svelte +80 -80
- package/dist/components/Layout/ShowOnDesktop.svelte +37 -37
- package/dist/components/Layout/ShowOnMobile.svelte +37 -37
- package/dist/components/Layout/Sidebar.svelte +108 -108
- package/dist/components/Layout/Stack.spec.js +1 -1
- package/dist/components/Layout/Stack.svelte +52 -52
- package/dist/components/Layout/Text.svelte +87 -87
- package/dist/components/Layout/TwoColumn.svelte +108 -108
- package/dist/components/Layout/__tests__/AppShell.test.js +5 -5
- package/dist/components/Layout/__tests__/ContentSection.test.js +1 -1
- package/dist/components/Layout/__tests__/Heading.test.js +3 -3
- package/dist/components/Layout/__tests__/PageContainer.test.js +4 -4
- package/dist/components/Layout/__tests__/Text.test.js +9 -9
- package/dist/components/Text.spec.js +89 -89
- package/dist/components/Text.svelte +64 -64
- package/dist/config.js +160 -160
- package/dist/config.spec.js +29 -29
- package/dist/constants/formOptions.js +48 -48
- package/dist/constants/validation.js +91 -91
- package/dist/constants/validation.spec.js +64 -64
- package/dist/datetime/README.md +323 -323
- package/dist/datetime/__tests__/format.test.js +1 -1
- package/dist/datetime/__tests__/parse.test.js +1 -1
- package/dist/datetime/__tests__/timezone.test.js +1 -1
- package/dist/datetime/parse.js +1 -1
- package/dist/forms/createFormStore.svelte.js +1 -0
- package/dist/forms/createFormStore.svelte.spec.js +1 -0
- package/dist/index.js +85 -85
- package/dist/index.spec.js +369 -369
- package/dist/patterns/chat/ChatActivityNotice.spec.js +59 -59
- package/dist/patterns/chat/ChatActivityNotice.svelte +41 -41
- package/dist/patterns/chat/ChatBubble.spec.js +91 -91
- package/dist/patterns/chat/ChatBubble.svelte +103 -103
- package/dist/patterns/chat/ChatContainer.spec.js +30 -30
- package/dist/patterns/chat/ChatContainer.svelte +46 -46
- package/dist/patterns/chat/ChatDateDivider.spec.js +30 -30
- package/dist/patterns/chat/ChatDateDivider.svelte +27 -27
- package/dist/patterns/chat/ChatInvitationBubble.spec.js +46 -46
- package/dist/patterns/chat/ChatInvitationBubble.svelte +46 -46
- package/dist/patterns/chat/ChatInvitationNotice.spec.js +32 -32
- package/dist/patterns/chat/ChatInvitationNotice.svelte +36 -36
- package/dist/patterns/chat/ChatMessageGroup.spec.js +58 -58
- package/dist/patterns/chat/ChatMessageGroup.svelte +57 -57
- package/dist/patterns/chat/ChatSlotUpdate.spec.js +65 -65
- package/dist/patterns/chat/ChatSlotUpdate.svelte +46 -46
- package/dist/patterns/chat/ChatStatusBadge.spec.js +79 -79
- package/dist/patterns/chat/ChatStatusBadge.svelte +91 -91
- package/dist/patterns/chat/ChatStatusTransition.spec.js +81 -81
- package/dist/patterns/chat/ChatStatusTransition.svelte +64 -64
- package/dist/patterns/chat/ChatTextBubble.spec.js +35 -35
- package/dist/patterns/chat/ChatTextBubble.svelte +41 -41
- package/dist/patterns/chat/index.js +22 -22
- package/dist/patterns/data/DataGrid.svelte +45 -45
- package/dist/patterns/data/DataList.spec.js +5 -5
- package/dist/patterns/data/DataList.svelte +24 -24
- package/dist/patterns/data/DataTable.spec.js +18 -18
- package/dist/patterns/data/DataTable.svelte +45 -45
- package/dist/patterns/data/index.js +4 -4
- package/dist/patterns/forms/FormActions.spec.js +95 -95
- package/dist/patterns/forms/FormActions.stories.svelte +97 -97
- package/dist/patterns/forms/FormActions.svelte +46 -46
- package/dist/patterns/forms/FormGrid.svelte +33 -33
- package/dist/patterns/forms/FormSection.spec.js +4 -4
- package/dist/patterns/forms/FormSection.svelte +33 -33
- package/dist/patterns/forms/FormValidationSummary.spec.js +2 -2
- package/dist/patterns/forms/FormValidationSummary.stories.svelte +97 -97
- package/dist/patterns/forms/FormValidationSummary.svelte +82 -82
- package/dist/patterns/forms/index.js +5 -5
- package/dist/patterns/index.js +21 -21
- package/dist/patterns/layout/Sidebar.svelte +39 -39
- package/dist/patterns/layout/SidebarTestWrapper.svelte +34 -34
- package/dist/patterns/layout/Stack.svelte +61 -61
- package/dist/patterns/layout/index.js +29 -29
- package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
- package/dist/patterns/navigation/BottomNav.svelte +82 -82
- package/dist/patterns/navigation/Header.spec.js +9 -9
- package/dist/patterns/navigation/Header.stories.svelte +77 -77
- package/dist/patterns/navigation/Header.svelte +261 -263
- package/dist/patterns/navigation/Header.svelte.d.ts.map +1 -1
- package/dist/patterns/navigation/index.js +3 -3
- package/dist/patterns/page/PageHeader.svelte +49 -49
- package/dist/patterns/page/PageLayout.spec.js +5 -5
- package/dist/patterns/page/PageLayout.svelte +40 -40
- package/dist/patterns/page/PageLoader.spec.js +57 -57
- package/dist/patterns/page/PageLoader.stories.svelte +137 -137
- package/dist/patterns/page/PageLoader.svelte +62 -62
- package/dist/patterns/page/SectionHeader.spec.js +8 -8
- package/dist/patterns/page/SectionHeader.svelte +51 -51
- package/dist/patterns/page/index.js +5 -5
- package/dist/presets/badges.js +112 -112
- package/dist/presets/buttons.js +76 -76
- package/dist/presets/buttons.spec.js +4 -4
- package/dist/presets/index.js +9 -9
- package/dist/primitives/Accordion/Accordion.spec.js +5 -5
- package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
- package/dist/primitives/Accordion/Accordion.svelte +62 -62
- package/dist/primitives/Accordion/AccordionItem.spec.js +19 -28
- package/dist/primitives/Accordion/AccordionItem.svelte +103 -103
- package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte +107 -107
- package/dist/primitives/Accordion/AccordionToggleWrapper.test.svelte +28 -28
- package/dist/primitives/Alert/Alert.spec.js +173 -173
- package/dist/primitives/Alert/Alert.stories.svelte +88 -88
- package/dist/primitives/Alert/Alert.svelte +72 -72
- package/dist/primitives/Avatar/Avatar.spec.js +11 -11
- package/dist/primitives/Avatar/Avatar.stories.svelte +95 -94
- package/dist/primitives/Avatar/Avatar.stories.svelte.d.ts.map +1 -1
- package/dist/primitives/Avatar/Avatar.svelte +66 -66
- package/dist/primitives/AvatarButton/AvatarButton.svelte +57 -57
- package/dist/primitives/Badges/Badge.spec.js +144 -144
- package/dist/primitives/Badges/Badge.stories.svelte +86 -86
- package/dist/primitives/Badges/Badge.svelte +99 -99
- package/dist/primitives/BottomSheet/BottomSheet.spec.js +238 -238
- package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
- package/dist/primitives/BottomSheet/BottomSheet.svelte +115 -115
- package/dist/primitives/BottomSheet/BottomSheetWithActions.test.svelte +20 -20
- package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +125 -123
- package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte +107 -107
- package/dist/primitives/Button/Button.spec.js +225 -225
- package/dist/primitives/Button/Button.stories.svelte +76 -76
- package/dist/primitives/Button/Button.svelte +278 -278
- package/dist/primitives/Button/ButtonGroup.spec.js +44 -44
- package/dist/primitives/Button/ButtonGroup.svelte +50 -50
- package/dist/primitives/Button/ButtonSaveDemo.spec.js +146 -146
- package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
- package/dist/primitives/Button/ButtonVariantShowcase.spec.js +1 -1
- package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
- package/dist/primitives/Card.spec.js +49 -49
- package/dist/primitives/Card.stories.svelte +22 -22
- package/dist/primitives/Card.svelte +28 -28
- package/dist/primitives/CardAction/CardAction.svelte +68 -68
- package/dist/primitives/Checkbox/Checkbox.spec.js +16 -16
- package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
- package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
- package/dist/primitives/DarkModeToggle.spec.js +390 -390
- package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
- package/dist/primitives/DarkModeToggle.svelte +147 -147
- package/dist/primitives/Drawer/Drawer.spec.js +4 -4
- package/dist/primitives/Drawer/Drawer.stories.svelte +100 -100
- package/dist/primitives/Drawer/Drawer.svelte +224 -224
- package/dist/primitives/Drawer/DrawerTestWrapper.svelte +86 -86
- package/dist/primitives/Dropdown/Dropdown.spec.js +9 -9
- package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
- package/dist/primitives/Dropdown/Dropdown.svelte +179 -179
- package/dist/primitives/Dropdown/DropdownDivider.spec.js +30 -30
- package/dist/primitives/Dropdown/DropdownDivider.svelte +9 -9
- package/dist/primitives/Dropdown/DropdownItem.spec.js +8 -15
- package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
- package/dist/primitives/Dropdown/DropdownItemTestWrapper.svelte +43 -43
- package/dist/primitives/Helper/Helper.spec.js +57 -57
- package/dist/primitives/Helper/Helper.svelte +33 -33
- package/dist/primitives/Icons/ArrowLeft.svelte +21 -21
- package/dist/primitives/Icons/ArrowRight.svelte +21 -21
- package/dist/primitives/Icons/Availability.svelte +27 -27
- package/dist/primitives/Icons/Back.svelte +27 -27
- package/dist/primitives/Icons/CheckCircle.svelte +19 -19
- package/dist/primitives/Icons/CheckCircleOutline.svelte +28 -28
- package/dist/primitives/Icons/ChevronLeft.svelte +17 -17
- package/dist/primitives/Icons/ChevronRight.svelte +17 -17
- package/dist/primitives/Icons/Copy.svelte +28 -28
- package/dist/primitives/Icons/Cross.svelte +18 -18
- package/dist/primitives/Icons/DownArrow.svelte +21 -21
- package/dist/primitives/Icons/ErrorCircle.svelte +19 -19
- package/dist/primitives/Icons/FacebookIcon.svelte +15 -15
- package/dist/primitives/Icons/Home.svelte +28 -28
- package/dist/primitives/Icons/Icon.spec.js +175 -175
- package/dist/primitives/Icons/Icon.stories.svelte +100 -100
- package/dist/primitives/Icons/Icon.svelte +79 -79
- package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
- package/dist/primitives/Icons/Icons.spec.js +3 -3
- package/dist/primitives/Icons/ImageOutline.svelte +21 -21
- package/dist/primitives/Icons/Info.svelte +20 -20
- package/dist/primitives/Icons/InstagramIcon.svelte +21 -21
- package/dist/primitives/Icons/LogoInstagram.svelte +15 -15
- package/dist/primitives/Icons/Message.svelte +28 -28
- package/dist/primitives/Icons/MoonIcon.svelte +18 -18
- package/dist/primitives/Icons/More.svelte +34 -34
- package/dist/primitives/Icons/MoreHori.spec.js +67 -67
- package/dist/primitives/Icons/MoreHori.svelte +35 -35
- package/dist/primitives/Icons/Notification.svelte +27 -27
- package/dist/primitives/Icons/Payment.svelte +27 -27
- package/dist/primitives/Icons/Profile.svelte +34 -34
- package/dist/primitives/Icons/Reload.svelte +42 -42
- package/dist/primitives/Icons/Shows.svelte +34 -34
- package/dist/primitives/Icons/Signout.svelte +34 -34
- package/dist/primitives/Icons/SunIcon.svelte +21 -21
- package/dist/primitives/Icons/TiktokIcon.svelte +15 -15
- package/dist/primitives/Icons/TrashBinOutline.svelte +21 -21
- package/dist/primitives/Icons/TwitterIcon.svelte +15 -15
- package/dist/primitives/Icons/WarningIcon.spec.js +30 -30
- package/dist/primitives/Icons/WarningIcon.svelte +24 -24
- package/dist/primitives/Input/Input.spec.js +1237 -1237
- package/dist/primitives/Input/Input.stories.svelte +139 -139
- package/dist/primitives/Input/Input.svelte +444 -444
- package/dist/primitives/Input/Select.spec.js +632 -632
- package/dist/primitives/Input/Select.stories.svelte +112 -112
- package/dist/primitives/Input/Select.svelte +252 -252
- package/dist/primitives/Input/Textarea.spec.js +8 -8
- package/dist/primitives/Input/Textarea.stories.svelte +137 -137
- package/dist/primitives/Input/Textarea.svelte +105 -105
- package/dist/primitives/Label/Label.spec.js +20 -21
- package/dist/primitives/Label/Label.svelte +37 -37
- package/dist/primitives/LandingButton/LandingButton.spec.js +61 -61
- package/dist/primitives/LandingButton/LandingButton.svelte +92 -92
- package/dist/primitives/MenuItem/MenuItem.spec.js +130 -130
- package/dist/primitives/MenuItem/MenuItem.svelte +85 -85
- package/dist/primitives/Modal/Modal.spec.js +314 -314
- package/dist/primitives/Modal/Modal.stories.svelte +86 -86
- package/dist/primitives/Modal/Modal.svelte +181 -181
- package/dist/primitives/NavItem/NavItem.spec.js +97 -97
- package/dist/primitives/NavItem/NavItem.svelte +75 -75
- package/dist/primitives/NumberInput/NumberInput.spec.js +17 -17
- package/dist/primitives/NumberInput/NumberInput.svelte +113 -113
- package/dist/primitives/Pagination/DotIndicator.svelte +66 -66
- package/dist/primitives/Pagination/Pagination.spec.js +6 -6
- package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
- package/dist/primitives/Pagination/Pagination.svelte +275 -275
- package/dist/primitives/Radio/Radio.spec.js +19 -19
- package/dist/primitives/Radio/Radio.stories.svelte +80 -80
- package/dist/primitives/Radio/Radio.svelte +67 -67
- package/dist/primitives/SearchResultItem/SearchResultItem.spec.js +78 -78
- package/dist/primitives/SearchResultItem/SearchResultItem.svelte +109 -109
- package/dist/primitives/SidebarToggle/SidebarToggle.spec.js +61 -61
- package/dist/primitives/SidebarToggle/SidebarToggle.svelte +55 -55
- package/dist/primitives/Skeleton/CardPlaceholder.spec.js +1 -1
- package/dist/primitives/Skeleton/CardPlaceholder.svelte +96 -96
- package/dist/primitives/Skeleton/ImagePlaceholder.spec.js +2 -2
- package/dist/primitives/Skeleton/ImagePlaceholder.svelte +68 -68
- package/dist/primitives/Skeleton/ListPlaceholder.spec.js +2 -2
- package/dist/primitives/Skeleton/ListPlaceholder.svelte +85 -85
- package/dist/primitives/Skeleton/Skeleton.spec.js +7 -7
- package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
- package/dist/primitives/Skeleton/Skeleton.svelte +55 -55
- package/dist/primitives/Spinner/Spinner.spec.js +83 -84
- package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
- package/dist/primitives/Spinner/Spinner.svelte +52 -52
- package/dist/primitives/Tabs/TabItem.svelte +52 -52
- package/dist/primitives/Tabs/Tabs.spec.js +14 -14
- package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
- package/dist/primitives/Tabs/Tabs.svelte +137 -137
- package/dist/primitives/Toggle.spec.js +219 -221
- package/dist/primitives/Toggle.stories.svelte +92 -92
- package/dist/primitives/Toggle.svelte +141 -141
- package/dist/primitives/ToggleTestWrapper.svelte +30 -30
- package/dist/primitives/Tooltip/Tooltip.spec.js +126 -126
- package/dist/primitives/Tooltip/Tooltip.svelte +83 -83
- package/dist/primitives/Typography/Typography.svelte +53 -53
- package/dist/primitives/ValidationError.spec.js +103 -103
- package/dist/primitives/ValidationError.stories.svelte +112 -112
- package/dist/primitives/ValidationError.svelte +29 -29
- package/dist/primitives/index.js +114 -114
- package/dist/recipes/CropImage/CropImage.spec.js +208 -208
- package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
- package/dist/recipes/CropImage/CropImage.svelte +241 -241
- package/dist/recipes/ImageUploader/ImageUploader.spec.js +1 -1
- package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
- package/dist/recipes/ImageUploader/ImageUploader.svelte +972 -994
- package/dist/recipes/SuperLogin/SuperLogin.svelte +24 -24
- package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte +75 -75
- package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
- package/dist/recipes/feedback/ErrorDisplay.stories.svelte +113 -113
- package/dist/recipes/feedback/ErrorDisplay.svelte +67 -67
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -133
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +176 -176
- package/dist/recipes/feedback/index.js +4 -4
- package/dist/recipes/fields/CheckboxField.spec.js +2 -2
- package/dist/recipes/fields/CheckboxField.svelte +85 -85
- package/dist/recipes/fields/FormField.spec.js +4 -4
- package/dist/recipes/fields/FormField.svelte +58 -58
- package/dist/recipes/fields/RadioGroup.spec.js +1 -1
- package/dist/recipes/fields/RadioGroup.svelte +95 -95
- package/dist/recipes/fields/SelectField.spec.js +2 -2
- package/dist/recipes/fields/SelectField.svelte +82 -82
- package/dist/recipes/fields/TextareaField.spec.js +2 -2
- package/dist/recipes/fields/TextareaField.svelte +101 -101
- package/dist/recipes/fields/ToggleField.spec.js +2 -2
- package/dist/recipes/fields/ToggleField.svelte +60 -60
- package/dist/recipes/fields/index.js +7 -7
- package/dist/recipes/index.js +24 -24
- package/dist/recipes/inputs/MultiSelect.spec.js +263 -263
- package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
- package/dist/recipes/inputs/MultiSelect.svelte +291 -291
- package/dist/recipes/inputs/OTPInput.spec.js +251 -251
- package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
- package/dist/recipes/inputs/OTPInput.svelte +128 -128
- package/dist/recipes/inputs/PasswordInput.spec.js +2 -2
- package/dist/recipes/inputs/PasswordInput.svelte +130 -130
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.js +14 -14
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +142 -142
- package/dist/recipes/inputs/PasswordStrengthIndicator/TestWrapper.svelte +2 -2
- package/dist/recipes/inputs/PhoneInput.svelte +254 -254
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.spec.js +10 -10
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +170 -170
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +346 -349
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/Search.spec.js +3 -3
- package/dist/recipes/inputs/Search.svelte +110 -110
- package/dist/recipes/inputs/index.js +8 -8
- package/dist/recipes/inputs/phoneInput/CountrySelector.svelte +240 -240
- package/dist/recipes/modals/AlertModal.spec.js +36 -36
- package/dist/recipes/modals/AlertModal.svelte +139 -139
- package/dist/recipes/modals/ConfirmationModal.spec.js +396 -396
- package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
- package/dist/recipes/modals/ConfirmationModal.svelte +169 -169
- package/dist/recipes/modals/FeedbackModal.svelte +205 -205
- package/dist/recipes/modals/InputModal.spec.js +17 -17
- package/dist/recipes/modals/InputModal.svelte +194 -194
- package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
- package/dist/recipes/modals/ModalStateManager.svelte +77 -77
- package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
- package/dist/recipes/modals/StatusModal.spec.js +7 -7
- package/dist/recipes/modals/StatusModal.svelte +216 -216
- package/dist/recipes/modals/index.js +8 -8
- package/dist/schemas/__tests__/order.test.js +1 -1
- package/dist/schemas/auth.d.ts +107 -17
- package/dist/schemas/auth.d.ts.map +1 -1
- package/dist/schemas/common.d.ts +41 -13
- package/dist/schemas/common.d.ts.map +1 -1
- package/dist/schemas/common.js +1 -1
- package/dist/schemas/event.d.ts +147 -41
- package/dist/schemas/event.d.ts.map +1 -1
- package/dist/schemas/event.js +1 -1
- package/dist/schemas/order.d.ts +208 -51
- package/dist/schemas/order.d.ts.map +1 -1
- package/dist/schemas/order.js +1 -0
- package/dist/schemas/performer.d.ts +199 -44
- package/dist/schemas/performer.d.ts.map +1 -1
- package/dist/schemas/performer.js +1 -1
- package/dist/schemas/promo.d.ts +221 -55
- package/dist/schemas/promo.d.ts.map +1 -1
- package/dist/schemas/promo.js +2 -2
- package/dist/schemas/ticket.d.ts +187 -61
- package/dist/schemas/ticket.d.ts.map +1 -1
- package/dist/schemas/ticket.js +1 -1
- package/dist/schemas/user.d.ts +114 -54
- package/dist/schemas/user.d.ts.map +1 -1
- package/dist/schemas/user.js +2 -1
- package/dist/schemas/venue.d.ts +238 -20
- package/dist/schemas/venue.d.ts.map +1 -1
- package/dist/services/show.service.d.ts +46 -46
- package/dist/stores/auth.d.ts +8 -8
- package/dist/stores/auth.svelte.spec.js +1 -1
- package/dist/stores/index.js +9 -9
- package/dist/stores/toaster.d.ts +3 -3
- package/dist/stores/toaster.js +13 -13
- package/dist/stores/toaster.spec.js +59 -59
- package/dist/stories/ButtonAuditDashboard.spec.js +12 -12
- package/dist/stories/ButtonAuditDashboard.svelte +55 -55
- package/dist/stories/ButtonAuditReview.spec.js +8 -8
- package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
- package/dist/stories/ButtonAuditReview.svelte +427 -427
- package/dist/stories/ButtonGridView.spec.js +27 -27
- package/dist/stories/ButtonGridView.svelte +22 -22
- package/dist/stories/ButtonShowcase.spec.js +4 -4
- package/dist/stories/ButtonShowcase.svelte +119 -119
- package/dist/stories/ComponentConsolidation.stories.svelte +453 -453
- package/dist/stories/DesignSystemAudit.stories.svelte +127 -127
- package/dist/stories/PatternsGallery.spec.js +3 -3
- package/dist/stories/PatternsGallery.stories.svelte +19 -19
- package/dist/stories/PatternsGallery.svelte +399 -399
- package/dist/stories/PrimitivesGallery.spec.js +9 -9
- package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
- package/dist/stories/PrimitivesGallery.svelte +756 -756
- package/dist/stories/RecipesGallery.stories.svelte +19 -19
- package/dist/stories/RecipesGallery.svelte +454 -454
- package/dist/stories/button-audit-manifest.json +11186 -11186
- package/dist/tailwind/preset.cjs +87 -87
- package/dist/telemetry.js +401 -401
- package/dist/telemetry.server.js +212 -212
- package/dist/telemetry.server.spec.js +437 -437
- package/dist/telemetry.spec.js +1273 -1273
- package/dist/tokens/__tests__/typography-base.test.js +5 -5
- package/dist/tokens/__tests__/typography.test.js +32 -36
- package/dist/tokens/__tests__/variants.test.js +63 -78
- package/dist/tokens/tokens.css +87 -87
- package/dist/tokens/typography-base.css +163 -163
- package/dist/tokens/typography.d.ts +29 -29
- package/dist/tokens/typography.js +29 -29
- package/dist/tokens/utilities.css +418 -430
- package/dist/tokens/variants.d.ts +32 -32
- package/dist/tokens/variants.js +32 -32
- package/dist/utils/__tests__/auth.test.js +431 -431
- package/dist/utils/apiConfig.d.ts +29 -29
- package/dist/utils/apiConfig.js +142 -142
- package/dist/utils/auth.d.ts +46 -46
- package/dist/utils/auth.js +195 -195
- package/dist/utils/greetings.js +187 -187
- package/dist/utils/greetings.spec.js +337 -337
- package/dist/utils/haptic.spec.js +1 -1
- package/dist/utils/imageValidation.js +121 -121
- package/dist/utils/imageValidation.spec.js +223 -223
- package/dist/utils/portal.d.ts +11 -11
- package/dist/utils/portal.js +25 -25
- package/dist/utils/portal.spec.js +143 -143
- package/dist/utils/transitions.js +16 -16
- package/dist/utils/utils/utils.d.ts +2 -2
- package/dist/utils/utils/utils.js +3 -3
- package/dist/utils/utils/utils.spec.js +698 -698
- package/dist/utils/utils.d.ts +41 -41
- package/dist/utils/utils.js +59 -59
- package/dist/utils/utils.spec.js +643 -643
- package/package.json +306 -306
|
@@ -327,7 +327,7 @@ describe('AboutShow Component', () => {
|
|
|
327
327
|
});
|
|
328
328
|
const img = screen.getByAltText('Charlie Brown');
|
|
329
329
|
expect(img).toHaveAttribute('src', '');
|
|
330
|
-
expect(img.className).toContain('bg-
|
|
330
|
+
expect(img.className).toContain('bg-bg-secondary');
|
|
331
331
|
});
|
|
332
332
|
|
|
333
333
|
it('renders multiple performers', () => {
|
|
@@ -434,11 +434,11 @@ describe('AboutShow Component', () => {
|
|
|
434
434
|
render(AboutShow, { props: { performers: [validPerformer] } });
|
|
435
435
|
|
|
436
436
|
const performerCard = screen.getByText('Bob Builder').closest('.cursor-pointer');
|
|
437
|
-
expect(performerCard.className).toContain('border-
|
|
437
|
+
expect(performerCard.className).toContain('border-border');
|
|
438
438
|
|
|
439
439
|
await fireEvent.click(performerCard);
|
|
440
440
|
// Check for the active state border (not the hover state)
|
|
441
|
-
const activeClassPattern = /border-
|
|
441
|
+
const activeClassPattern = /border-brand-primary/;
|
|
442
442
|
expect(performerCard.className).toMatch(activeClassPattern);
|
|
443
443
|
});
|
|
444
444
|
|
|
@@ -660,7 +660,7 @@ describe('AboutShow Component', () => {
|
|
|
660
660
|
it('has dark mode classes for title', () => {
|
|
661
661
|
const { container } = render(AboutShow);
|
|
662
662
|
const title = screen.getByText('About the Show');
|
|
663
|
-
expect(title.className).toContain('
|
|
663
|
+
expect(title.className).toContain('');
|
|
664
664
|
});
|
|
665
665
|
|
|
666
666
|
it('has dark mode classes for show image background', () => {
|
|
@@ -671,7 +671,7 @@ describe('AboutShow Component', () => {
|
|
|
671
671
|
}
|
|
672
672
|
});
|
|
673
673
|
const img = screen.getByAltText('');
|
|
674
|
-
expect(img.className).toContain('
|
|
674
|
+
expect(img.className).toContain('');
|
|
675
675
|
});
|
|
676
676
|
|
|
677
677
|
it('has dark mode classes for description', () => {
|
|
@@ -679,14 +679,14 @@ describe('AboutShow Component', () => {
|
|
|
679
679
|
props: { description: 'Test description' }
|
|
680
680
|
});
|
|
681
681
|
const paragraph = screen.getByText('Test description');
|
|
682
|
-
expect(paragraph.className).toContain('
|
|
682
|
+
expect(paragraph.className).toContain('');
|
|
683
683
|
});
|
|
684
684
|
|
|
685
685
|
it('has dark mode classes for read more button', () => {
|
|
686
686
|
const longDescription = 'a'.repeat(1600);
|
|
687
687
|
render(AboutShow, { props: { description: longDescription } });
|
|
688
688
|
const button = screen.getByText('Show more');
|
|
689
|
-
expect(button.className).toContain('
|
|
689
|
+
expect(button.className).toContain('');
|
|
690
690
|
});
|
|
691
691
|
|
|
692
692
|
it('has dark mode classes for performer card', () => {
|
|
@@ -706,9 +706,9 @@ describe('AboutShow Component', () => {
|
|
|
706
706
|
};
|
|
707
707
|
render(AboutShow, { props: { performers: [performer] } });
|
|
708
708
|
const card = screen.getByText('Bob Builder').closest('.cursor-pointer');
|
|
709
|
-
expect(card.className).toContain('
|
|
710
|
-
expect(card.className).toContain('
|
|
711
|
-
expect(card.className).toContain('
|
|
709
|
+
expect(card.className).toContain('');
|
|
710
|
+
expect(card.className).toContain('');
|
|
711
|
+
expect(card.className).toContain('');
|
|
712
712
|
});
|
|
713
713
|
});
|
|
714
714
|
|
|
@@ -1,191 +1,191 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import { CloseOutline, LogoInstagram } from '../../primitives/Icons';
|
|
3
|
-
import { typography } from '../../tokens/typography';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Default labels for user-visible strings in AboutShow.
|
|
7
|
-
* Consumers can override via the `labels` prop.
|
|
8
|
-
*/
|
|
9
|
-
const defaultLabels = {
|
|
10
|
-
title: 'About the Show',
|
|
11
|
-
followLabel: (name) => `Follow ${name}:`,
|
|
12
|
-
showLess: 'Show less',
|
|
13
|
-
showMore: 'Show more',
|
|
14
|
-
closePopover: 'Close',
|
|
15
|
-
instagramProfile: 'Instagram profile',
|
|
16
|
-
twitterProfile: 'Twitter profile',
|
|
17
|
-
performerAlt: 'Performer',
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
let {
|
|
21
|
-
performers = [],
|
|
22
|
-
ShowImage = '',
|
|
23
|
-
description = '',
|
|
24
|
-
showTitle = true,
|
|
25
|
-
title = undefined,
|
|
26
|
-
showReadMore = true,
|
|
27
|
-
getImageUrl = (url) => url,
|
|
28
|
-
/** @type {Partial<typeof defaultLabels>} Override any user-visible string */
|
|
29
|
-
labels: userLabels = {},
|
|
30
|
-
} = $props();
|
|
31
|
-
|
|
32
|
-
let labels = $derived({ ...defaultLabels, ...userLabels });
|
|
33
|
-
|
|
34
|
-
let activePerformer = $state(null);
|
|
35
|
-
let characterLimit = 1500;
|
|
36
|
-
let showFullDescription = $state(false);
|
|
37
|
-
|
|
38
|
-
let validPerformers = $derived(performers.filter(performer => {
|
|
39
|
-
const isConfirmed = performer.acceptedState === 2;
|
|
40
|
-
const isNotHidden = !performer.shouldBeHidden;
|
|
41
|
-
const profile = performer.RosterPerformer?.User?.performerProfile;
|
|
42
|
-
const hasName = profile?.firstName || profile?.lastName || profile?.stageName;
|
|
43
|
-
return isConfirmed && isNotHidden && hasName;
|
|
44
|
-
}));
|
|
45
|
-
|
|
46
|
-
function togglePerformer(id) {
|
|
47
|
-
if (activePerformer === id) {
|
|
48
|
-
activePerformer = null;
|
|
49
|
-
} else {
|
|
50
|
-
activePerformer = id;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function closePerformer() {
|
|
55
|
-
activePerformer = null;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function toggleDescription() {
|
|
59
|
-
showFullDescription = !showFullDescription;
|
|
60
|
-
}
|
|
61
|
-
</script>
|
|
62
|
-
|
|
63
|
-
<div class="flex flex-col gap-3">
|
|
64
|
-
{#if showTitle}
|
|
65
|
-
<h2 class="{typography.h2} text-xl">{title ?? labels.title}</h2>
|
|
66
|
-
{/if}
|
|
67
|
-
|
|
68
|
-
{#if ShowImage && description}
|
|
69
|
-
<div>
|
|
70
|
-
<img src={ShowImage} alt="" class="rounded-lg object-contain w-full bg-
|
|
71
|
-
</div>
|
|
72
|
-
{/if}
|
|
73
|
-
|
|
74
|
-
{#if description}
|
|
75
|
-
{#if showFullDescription || description.length <= characterLimit || !showReadMore}
|
|
76
|
-
<p class={`${typography.sm} leading-relaxed whitespace-pre-line`}>{description}</p>
|
|
77
|
-
{#if showReadMore && description.length > characterLimit}
|
|
78
|
-
<button
|
|
79
|
-
onclick={toggleDescription}
|
|
80
|
-
class={`${typography.label} text-left hover:underline text-
|
|
81
|
-
>
|
|
82
|
-
{labels.showLess}
|
|
83
|
-
</button>
|
|
84
|
-
{/if}
|
|
85
|
-
{:else}
|
|
86
|
-
<p class={`${typography.sm} leading-relaxed whitespace-pre-line`}>
|
|
87
|
-
{description.slice(0, characterLimit)}...
|
|
88
|
-
</p>
|
|
89
|
-
<button
|
|
90
|
-
onclick={toggleDescription}
|
|
91
|
-
class={`${typography.label} text-left hover:underline text-
|
|
92
|
-
>
|
|
93
|
-
{labels.showMore}
|
|
94
|
-
</button>
|
|
95
|
-
{/if}
|
|
96
|
-
{/if}
|
|
97
|
-
|
|
98
|
-
{#if validPerformers.length > 0}
|
|
99
|
-
<div class="py-2">
|
|
100
|
-
{#if activePerformer !== null}
|
|
101
|
-
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
102
|
-
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
103
|
-
<div class="fixed inset-0 z-40" onclick={closePerformer}></div>
|
|
104
|
-
{/if}
|
|
105
|
-
|
|
106
|
-
<div class="flex flex-wrap justify-start gap-4">
|
|
107
|
-
{#each validPerformers as performer, index}
|
|
108
|
-
{@const profile = performer.RosterPerformer?.User?.performerProfile}
|
|
109
|
-
{@const displayName = profile?.useStageName && profile?.stageName
|
|
110
|
-
? profile.stageName
|
|
111
|
-
: `${profile?.firstName || ''} ${profile?.lastName || ''}`.trim()}
|
|
112
|
-
{@const firstName = profile?.firstName || displayName.split(' ')[0] || displayName}
|
|
113
|
-
<div class="relative">
|
|
114
|
-
{#if activePerformer === performer.ID && !performer.shouldBeHidden}
|
|
115
|
-
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
116
|
-
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
117
|
-
<div
|
|
118
|
-
class="w-72 sm:w-80 absolute bottom-full mb-2.5 rounded-lg p-4 z-50 shadow-xl transition-all duration-300 bg-
|
|
119
|
-
onclick={(e) => e.stopPropagation()}
|
|
120
|
-
>
|
|
121
|
-
<div
|
|
122
|
-
class="absolute w-3 h-3 bg-
|
|
123
|
-
></div>
|
|
124
|
-
|
|
125
|
-
<button
|
|
126
|
-
class="absolute top-2 right-2 p-1 rounded-full transition-colors text-
|
|
127
|
-
onclick={closePerformer}
|
|
128
|
-
aria-label={labels.closePopover}
|
|
129
|
-
>
|
|
130
|
-
<CloseOutline class="w-5 h-5" />
|
|
131
|
-
</button>
|
|
132
|
-
|
|
133
|
-
<p class="{typography.sm} leading-relaxed pr-6">
|
|
134
|
-
{profile?.biography || ''}
|
|
135
|
-
</p>
|
|
136
|
-
|
|
137
|
-
{#if profile?.instagram || profile?.twitter}
|
|
138
|
-
<div class="flex gap-2 items-center {typography.smMuted} mt-3 pt-3 border-t border-
|
|
139
|
-
<span>{typeof labels.followLabel === 'function' ? labels.followLabel(firstName) : labels.followLabel}</span>
|
|
140
|
-
{#if profile?.instagram}
|
|
141
|
-
<a
|
|
142
|
-
href={profile.instagram}
|
|
143
|
-
target="_blank"
|
|
144
|
-
rel="noopener noreferrer"
|
|
145
|
-
class="text-
|
|
146
|
-
aria-label={labels.instagramProfile}
|
|
147
|
-
>
|
|
148
|
-
<LogoInstagram size={20} />
|
|
149
|
-
</a>
|
|
150
|
-
{/if}
|
|
151
|
-
{#if profile?.twitter}
|
|
152
|
-
<a
|
|
153
|
-
href={profile.twitter}
|
|
154
|
-
target="_blank"
|
|
155
|
-
rel="noopener noreferrer"
|
|
156
|
-
class="text-
|
|
157
|
-
aria-label={labels.twitterProfile}
|
|
158
|
-
>
|
|
159
|
-
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
|
|
160
|
-
<path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/>
|
|
161
|
-
</svg>
|
|
162
|
-
</a>
|
|
163
|
-
{/if}
|
|
164
|
-
</div>
|
|
165
|
-
{/if}
|
|
166
|
-
</div>
|
|
167
|
-
{/if}
|
|
168
|
-
|
|
169
|
-
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
170
|
-
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
171
|
-
<div
|
|
172
|
-
class="rounded-lg flex flex-col gap-2 p-2 items-center w-24 cursor-pointer transition-all bg-
|
|
173
|
-
onclick={() => togglePerformer(performer.ID)}
|
|
174
|
-
>
|
|
175
|
-
<img
|
|
176
|
-
src={performer.shouldBeHidden ? '' : profile?.profileImage ? getImageUrl(profile.profileImage) : ''}
|
|
177
|
-
alt={displayName || labels.performerAlt}
|
|
178
|
-
class="size-16 rounded object-cover {!profile?.profileImage || performer.shouldBeHidden ? 'bg-
|
|
179
|
-
/>
|
|
180
|
-
<p class="{typography.xs} text-center leading-tight line-clamp-2">
|
|
181
|
-
{#if !performer.shouldBeHidden}
|
|
182
|
-
{displayName}
|
|
183
|
-
{/if}
|
|
184
|
-
</p>
|
|
185
|
-
</div>
|
|
186
|
-
</div>
|
|
187
|
-
{/each}
|
|
188
|
-
</div>
|
|
189
|
-
</div>
|
|
190
|
-
{/if}
|
|
191
|
-
</div>
|
|
1
|
+
<script>
|
|
2
|
+
import { CloseOutline, LogoInstagram } from '../../primitives/Icons';
|
|
3
|
+
import { typography } from '../../tokens/typography';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Default labels for user-visible strings in AboutShow.
|
|
7
|
+
* Consumers can override via the `labels` prop.
|
|
8
|
+
*/
|
|
9
|
+
const defaultLabels = {
|
|
10
|
+
title: 'About the Show',
|
|
11
|
+
followLabel: (name) => `Follow ${name}:`,
|
|
12
|
+
showLess: 'Show less',
|
|
13
|
+
showMore: 'Show more',
|
|
14
|
+
closePopover: 'Close',
|
|
15
|
+
instagramProfile: 'Instagram profile',
|
|
16
|
+
twitterProfile: 'Twitter profile',
|
|
17
|
+
performerAlt: 'Performer',
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
let {
|
|
21
|
+
performers = [],
|
|
22
|
+
ShowImage = '',
|
|
23
|
+
description = '',
|
|
24
|
+
showTitle = true,
|
|
25
|
+
title = undefined,
|
|
26
|
+
showReadMore = true,
|
|
27
|
+
getImageUrl = (url) => url,
|
|
28
|
+
/** @type {Partial<typeof defaultLabels>} Override any user-visible string */
|
|
29
|
+
labels: userLabels = {},
|
|
30
|
+
} = $props();
|
|
31
|
+
|
|
32
|
+
let labels = $derived({ ...defaultLabels, ...userLabels });
|
|
33
|
+
|
|
34
|
+
let activePerformer = $state(null);
|
|
35
|
+
let characterLimit = 1500;
|
|
36
|
+
let showFullDescription = $state(false);
|
|
37
|
+
|
|
38
|
+
let validPerformers = $derived(performers.filter(performer => {
|
|
39
|
+
const isConfirmed = performer.acceptedState === 2;
|
|
40
|
+
const isNotHidden = !performer.shouldBeHidden;
|
|
41
|
+
const profile = performer.RosterPerformer?.User?.performerProfile;
|
|
42
|
+
const hasName = profile?.firstName || profile?.lastName || profile?.stageName;
|
|
43
|
+
return isConfirmed && isNotHidden && hasName;
|
|
44
|
+
}));
|
|
45
|
+
|
|
46
|
+
function togglePerformer(id) {
|
|
47
|
+
if (activePerformer === id) {
|
|
48
|
+
activePerformer = null;
|
|
49
|
+
} else {
|
|
50
|
+
activePerformer = id;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function closePerformer() {
|
|
55
|
+
activePerformer = null;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function toggleDescription() {
|
|
59
|
+
showFullDescription = !showFullDescription;
|
|
60
|
+
}
|
|
61
|
+
</script>
|
|
62
|
+
|
|
63
|
+
<div class="flex flex-col gap-3">
|
|
64
|
+
{#if showTitle}
|
|
65
|
+
<h2 class="{typography.h2} text-xl">{title ?? labels.title}</h2>
|
|
66
|
+
{/if}
|
|
67
|
+
|
|
68
|
+
{#if ShowImage && description}
|
|
69
|
+
<div>
|
|
70
|
+
<img src={ShowImage} alt="" class="rounded-lg object-contain w-full bg-bg-secondary" />
|
|
71
|
+
</div>
|
|
72
|
+
{/if}
|
|
73
|
+
|
|
74
|
+
{#if description}
|
|
75
|
+
{#if showFullDescription || description.length <= characterLimit || !showReadMore}
|
|
76
|
+
<p class={`${typography.sm} leading-relaxed whitespace-pre-line`}>{description}</p>
|
|
77
|
+
{#if showReadMore && description.length > characterLimit}
|
|
78
|
+
<button
|
|
79
|
+
onclick={toggleDescription}
|
|
80
|
+
class={`${typography.label} text-left hover:underline text-brand-primary`}
|
|
81
|
+
>
|
|
82
|
+
{labels.showLess}
|
|
83
|
+
</button>
|
|
84
|
+
{/if}
|
|
85
|
+
{:else}
|
|
86
|
+
<p class={`${typography.sm} leading-relaxed whitespace-pre-line`}>
|
|
87
|
+
{description.slice(0, characterLimit)}...
|
|
88
|
+
</p>
|
|
89
|
+
<button
|
|
90
|
+
onclick={toggleDescription}
|
|
91
|
+
class={`${typography.label} text-left hover:underline text-brand-primary`}
|
|
92
|
+
>
|
|
93
|
+
{labels.showMore}
|
|
94
|
+
</button>
|
|
95
|
+
{/if}
|
|
96
|
+
{/if}
|
|
97
|
+
|
|
98
|
+
{#if validPerformers.length > 0}
|
|
99
|
+
<div class="py-2">
|
|
100
|
+
{#if activePerformer !== null}
|
|
101
|
+
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
102
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
103
|
+
<div class="fixed inset-0 z-40" onclick={closePerformer}></div>
|
|
104
|
+
{/if}
|
|
105
|
+
|
|
106
|
+
<div class="flex flex-wrap justify-start gap-4">
|
|
107
|
+
{#each validPerformers as performer, index}
|
|
108
|
+
{@const profile = performer.RosterPerformer?.User?.performerProfile}
|
|
109
|
+
{@const displayName = profile?.useStageName && profile?.stageName
|
|
110
|
+
? profile.stageName
|
|
111
|
+
: `${profile?.firstName || ''} ${profile?.lastName || ''}`.trim()}
|
|
112
|
+
{@const firstName = profile?.firstName || displayName.split(' ')[0] || displayName}
|
|
113
|
+
<div class="relative">
|
|
114
|
+
{#if activePerformer === performer.ID && !performer.shouldBeHidden}
|
|
115
|
+
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
116
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
117
|
+
<div
|
|
118
|
+
class="w-72 sm:w-80 absolute bottom-full mb-2.5 rounded-lg p-4 z-50 shadow-xl transition-all duration-300 bg-card border-2 border-brand-primary {index === 0 ? 'left-[190%]' : 'left-1/2 -translate-x-1/2'}"
|
|
119
|
+
onclick={(e) => e.stopPropagation()}
|
|
120
|
+
>
|
|
121
|
+
<div
|
|
122
|
+
class="absolute w-3 h-3 bg-card rotate-45 border-r-2 border-b-2 border-brand-primary -bottom-1.5 {index === 0 ? 'left-[20%]' : 'left-1/2'} -ml-1.5"
|
|
123
|
+
></div>
|
|
124
|
+
|
|
125
|
+
<button
|
|
126
|
+
class="absolute top-2 right-2 p-1 rounded-full transition-colors text-muted-foreground hover:bg-bg-secondary"
|
|
127
|
+
onclick={closePerformer}
|
|
128
|
+
aria-label={labels.closePopover}
|
|
129
|
+
>
|
|
130
|
+
<CloseOutline class="w-5 h-5" />
|
|
131
|
+
</button>
|
|
132
|
+
|
|
133
|
+
<p class="{typography.sm} leading-relaxed pr-6">
|
|
134
|
+
{profile?.biography || ''}
|
|
135
|
+
</p>
|
|
136
|
+
|
|
137
|
+
{#if profile?.instagram || profile?.twitter}
|
|
138
|
+
<div class="flex gap-2 items-center {typography.smMuted} mt-3 pt-3 border-t border-border">
|
|
139
|
+
<span>{typeof labels.followLabel === 'function' ? labels.followLabel(firstName) : labels.followLabel}</span>
|
|
140
|
+
{#if profile?.instagram}
|
|
141
|
+
<a
|
|
142
|
+
href={profile.instagram}
|
|
143
|
+
target="_blank"
|
|
144
|
+
rel="noopener noreferrer"
|
|
145
|
+
class="text-brand-primary hover:opacity-70 transition-opacity"
|
|
146
|
+
aria-label={labels.instagramProfile}
|
|
147
|
+
>
|
|
148
|
+
<LogoInstagram size={20} />
|
|
149
|
+
</a>
|
|
150
|
+
{/if}
|
|
151
|
+
{#if profile?.twitter}
|
|
152
|
+
<a
|
|
153
|
+
href={profile.twitter}
|
|
154
|
+
target="_blank"
|
|
155
|
+
rel="noopener noreferrer"
|
|
156
|
+
class="text-brand-primary hover:opacity-70 transition-opacity"
|
|
157
|
+
aria-label={labels.twitterProfile}
|
|
158
|
+
>
|
|
159
|
+
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
|
|
160
|
+
<path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/>
|
|
161
|
+
</svg>
|
|
162
|
+
</a>
|
|
163
|
+
{/if}
|
|
164
|
+
</div>
|
|
165
|
+
{/if}
|
|
166
|
+
</div>
|
|
167
|
+
{/if}
|
|
168
|
+
|
|
169
|
+
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
170
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
171
|
+
<div
|
|
172
|
+
class="rounded-lg flex flex-col gap-2 p-2 items-center w-24 cursor-pointer transition-all bg-card border hover:shadow {activePerformer === performer.ID ? 'border-brand-primary shadow' : 'border-border hover:border-brand-primary'}"
|
|
173
|
+
onclick={() => togglePerformer(performer.ID)}
|
|
174
|
+
>
|
|
175
|
+
<img
|
|
176
|
+
src={performer.shouldBeHidden ? '' : profile?.profileImage ? getImageUrl(profile.profileImage) : ''}
|
|
177
|
+
alt={displayName || labels.performerAlt}
|
|
178
|
+
class="size-16 rounded object-cover {!profile?.profileImage || performer.shouldBeHidden ? 'bg-bg-secondary' : ''}"
|
|
179
|
+
/>
|
|
180
|
+
<p class="{typography.xs} text-center leading-tight line-clamp-2">
|
|
181
|
+
{#if !performer.shouldBeHidden}
|
|
182
|
+
{displayName}
|
|
183
|
+
{/if}
|
|
184
|
+
</p>
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
{/each}
|
|
188
|
+
</div>
|
|
189
|
+
</div>
|
|
190
|
+
{/if}
|
|
191
|
+
</div>
|
|
@@ -214,7 +214,7 @@ describe('MiniMonthCalendar Component', () => {
|
|
|
214
214
|
});
|
|
215
215
|
|
|
216
216
|
// Check for event indicator dots
|
|
217
|
-
const dots = container.querySelectorAll('.bg-
|
|
217
|
+
const dots = container.querySelectorAll('.bg-brand-primary, .bg-brand-primary');
|
|
218
218
|
expect(dots.length).toBeGreaterThan(0);
|
|
219
219
|
});
|
|
220
220
|
|
|
@@ -226,7 +226,7 @@ describe('MiniMonthCalendar Component', () => {
|
|
|
226
226
|
}
|
|
227
227
|
});
|
|
228
228
|
|
|
229
|
-
const dots = container.querySelectorAll('.bg-
|
|
229
|
+
const dots = container.querySelectorAll('.bg-brand-primary, .bg-brand-primary');
|
|
230
230
|
// Should show up to 3 dots per day
|
|
231
231
|
expect(dots.length).toBeGreaterThan(0);
|
|
232
232
|
});
|
|
@@ -429,7 +429,7 @@ describe('MiniMonthCalendar Component', () => {
|
|
|
429
429
|
});
|
|
430
430
|
|
|
431
431
|
// Check for green checkmark
|
|
432
|
-
const checkmark = container.querySelector('.text-
|
|
432
|
+
const checkmark = container.querySelector('.text-accent-success');
|
|
433
433
|
expect(checkmark).toBeInTheDocument();
|
|
434
434
|
});
|
|
435
435
|
|
|
@@ -442,7 +442,7 @@ describe('MiniMonthCalendar Component', () => {
|
|
|
442
442
|
});
|
|
443
443
|
|
|
444
444
|
// Should not show spinner for display variant
|
|
445
|
-
expect(container.querySelector('.text-
|
|
445
|
+
expect(container.querySelector('.text-accent-success')).not.toBeInTheDocument();
|
|
446
446
|
});
|
|
447
447
|
});
|
|
448
448
|
|
|
@@ -591,14 +591,14 @@ describe('MiniMonthCalendar Component', () => {
|
|
|
591
591
|
describe('preview days', () => {
|
|
592
592
|
it('shows previous month preview days by default', () => {
|
|
593
593
|
const { container } = render(MiniMonthCalendar);
|
|
594
|
-
const previewDays = container.querySelectorAll('.text-
|
|
594
|
+
const previewDays = container.querySelectorAll('.text-muted-foreground, .dark\\:text-text-secondary');
|
|
595
595
|
// March 2024 starts on a Friday, so should show some preview days
|
|
596
596
|
expect(previewDays.length).toBeGreaterThan(0);
|
|
597
597
|
});
|
|
598
598
|
|
|
599
599
|
it('shows next month preview days by default', () => {
|
|
600
600
|
const { container } = render(MiniMonthCalendar);
|
|
601
|
-
const previewDays = container.querySelectorAll('.text-
|
|
601
|
+
const previewDays = container.querySelectorAll('.text-muted-foreground, .dark\\:text-text-secondary');
|
|
602
602
|
expect(previewDays.length).toBeGreaterThan(0);
|
|
603
603
|
});
|
|
604
604
|
|
|
@@ -937,7 +937,7 @@ describe('MiniMonthCalendar Component', () => {
|
|
|
937
937
|
cell.getAttribute('aria-selected') === 'true'
|
|
938
938
|
);
|
|
939
939
|
|
|
940
|
-
expect(selectedCell?.className).toContain('bg-
|
|
940
|
+
expect(selectedCell?.className).toContain('bg-brand-primary');
|
|
941
941
|
});
|
|
942
942
|
|
|
943
943
|
it('applies past date style for availability variant', () => {
|
|
@@ -968,7 +968,8 @@ describe('MiniMonthCalendar Component', () => {
|
|
|
968
968
|
const eventCell = cells.find(cell => cell.textContent.includes('15'));
|
|
969
969
|
|
|
970
970
|
if (eventCell) {
|
|
971
|
-
|
|
971
|
+
// Display variant uses bg-status-info-bg on mobile for event cells
|
|
972
|
+
expect(eventCell.className).toContain('bg-status-info-bg');
|
|
972
973
|
}
|
|
973
974
|
});
|
|
974
975
|
|