@getmicdrop/svelte-components 5.21.0 → 5.21.2
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 +107 -87
- package/dist/tailwind/preset.d.cts +16 -0
- package/dist/tailwind/preset.d.cts.map +1 -1
- 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 +123 -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
|
@@ -701,7 +701,7 @@
|
|
|
701
701
|
|
|
702
702
|
<div class="w-full flex justify-center px-4">
|
|
703
703
|
<div
|
|
704
|
-
class="login-card bg-
|
|
704
|
+
class="login-card bg-card rounded-xl shadow-xl overflow-hidden {shake
|
|
705
705
|
? 'shake'
|
|
706
706
|
: ''} {isViewTransitioning ? 'transition-height' : ''} {cardVisible ? 'card-visible' : 'card-hidden'}"
|
|
707
707
|
style="height: {contentHeight ? contentHeight + 'px' : 'auto'}"
|
|
@@ -710,7 +710,7 @@
|
|
|
710
710
|
{#if isCheckingEligibility}
|
|
711
711
|
<div class="flex justify-center py-12">
|
|
712
712
|
<div
|
|
713
|
-
class="animate-spin rounded-full h-8 w-8 border-b-2 border-
|
|
713
|
+
class="animate-spin rounded-full h-8 w-8 border-b-2 border-brand-primary"
|
|
714
714
|
></div>
|
|
715
715
|
</div>
|
|
716
716
|
{:else if view === "login"}
|
|
@@ -729,7 +729,7 @@
|
|
|
729
729
|
<h2 class={typography.h1}>
|
|
730
730
|
{typeof labels.welcomeBackTitle === 'function' ? labels.welcomeBackTitle(rememberedUser.firstName) : labels.welcomeBackTitle}
|
|
731
731
|
</h2>
|
|
732
|
-
<Button variant="link" class="text-
|
|
732
|
+
<Button variant="link" class="text-muted-foreground hover:text-brand-primary" onclick={handleNotMe}>
|
|
733
733
|
{typeof labels.notYouButton === 'function' ? labels.notYouButton(rememberedUser.firstName) : labels.notYouButton}
|
|
734
734
|
</Button>
|
|
735
735
|
{:else}
|
|
@@ -766,7 +766,7 @@
|
|
|
766
766
|
{#if errors.email && showErrors}
|
|
767
767
|
<div
|
|
768
768
|
transition:safeSlide={{ duration: 300, easing: cubicOut }}
|
|
769
|
-
class="flex items-center gap-1.5 text-
|
|
769
|
+
class="flex items-center gap-1.5 text-accent-danger"
|
|
770
770
|
role="alert"
|
|
771
771
|
>
|
|
772
772
|
<WarningIcon class="shrink-0" />
|
|
@@ -807,7 +807,7 @@
|
|
|
807
807
|
{#if errors.password && showErrors}
|
|
808
808
|
<div
|
|
809
809
|
transition:safeSlide={{ duration: 300, easing: cubicOut }}
|
|
810
|
-
class="flex items-center gap-1.5 text-
|
|
810
|
+
class="flex items-center gap-1.5 text-accent-danger"
|
|
811
811
|
role="alert"
|
|
812
812
|
>
|
|
813
813
|
<WarningIcon class="shrink-0" />
|
|
@@ -841,11 +841,11 @@
|
|
|
841
841
|
<div class="relative">
|
|
842
842
|
<div class="absolute inset-0 flex items-center">
|
|
843
843
|
<div
|
|
844
|
-
class="w-full border-t border-
|
|
844
|
+
class="w-full border-t border-stroke-primary"
|
|
845
845
|
></div>
|
|
846
846
|
</div>
|
|
847
847
|
<div class="relative flex justify-center text-sm">
|
|
848
|
-
<span class={`px-2 bg-
|
|
848
|
+
<span class={`px-2 bg-card ${typography.textMuted}`}
|
|
849
849
|
>{labels.or}</span
|
|
850
850
|
>
|
|
851
851
|
</div>
|
|
@@ -884,7 +884,7 @@
|
|
|
884
884
|
onclick={() => handleAccountSelectInternal(account)}
|
|
885
885
|
>
|
|
886
886
|
<div
|
|
887
|
-
class="h-10 w-10 rounded-md bg-
|
|
887
|
+
class="h-10 w-10 rounded-md bg-bg-tertiary shrink-0 overflow-hidden mr-4"
|
|
888
888
|
>
|
|
889
889
|
{#if account.performerProfile?.profileImage}
|
|
890
890
|
<img
|
|
@@ -894,7 +894,7 @@
|
|
|
894
894
|
/>
|
|
895
895
|
{:else}
|
|
896
896
|
<div
|
|
897
|
-
class="h-full w-full flex items-center justify-center bg-
|
|
897
|
+
class="h-full w-full flex items-center justify-center bg-status-info-bg text-brand-primary font-medium"
|
|
898
898
|
>
|
|
899
899
|
{account.organizationName
|
|
900
900
|
? account.organizationName[0].toUpperCase()
|
|
@@ -911,7 +911,7 @@
|
|
|
911
911
|
</p>
|
|
912
912
|
</div>
|
|
913
913
|
<div
|
|
914
|
-
class="text-
|
|
914
|
+
class="text-muted-foreground group-hover:text-text-secondary transition-colors"
|
|
915
915
|
>
|
|
916
916
|
<svg
|
|
917
917
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -930,8 +930,8 @@
|
|
|
930
930
|
{/each}
|
|
931
931
|
</div>
|
|
932
932
|
|
|
933
|
-
<div class="pt-4 border-t border-
|
|
934
|
-
<Button variant="ghost" size="full" class="text-
|
|
933
|
+
<div class="pt-4 border-t border-stroke-primary">
|
|
934
|
+
<Button variant="ghost" size="full" class="text-muted-foreground" onclick={handleReturnToSignIn}>
|
|
935
935
|
{labels.loginDifferentEmail}
|
|
936
936
|
</Button>
|
|
937
937
|
</div>
|
|
@@ -982,7 +982,7 @@
|
|
|
982
982
|
{#if errors.password && showErrors}
|
|
983
983
|
<div
|
|
984
984
|
transition:safeSlide={{ duration: 600, easing: cubicOut }}
|
|
985
|
-
class="flex items-start gap-1.5 text-
|
|
985
|
+
class="flex items-start gap-1.5 text-accent-danger"
|
|
986
986
|
role="alert"
|
|
987
987
|
>
|
|
988
988
|
<WarningIcon class="shrink-0 mt-1" />
|
|
@@ -1012,7 +1012,7 @@
|
|
|
1012
1012
|
href={tosUrl}
|
|
1013
1013
|
target="_blank"
|
|
1014
1014
|
rel="noopener noreferrer"
|
|
1015
|
-
class="text-
|
|
1015
|
+
class="text-brand-primary hover:underline">{labels.termsOfService}</a
|
|
1016
1016
|
>.
|
|
1017
1017
|
</p>
|
|
1018
1018
|
</div>
|
|
@@ -1052,7 +1052,7 @@
|
|
|
1052
1052
|
{#if errors.email && showErrors}
|
|
1053
1053
|
<div
|
|
1054
1054
|
transition:safeSlide={{ duration: 300, easing: cubicOut }}
|
|
1055
|
-
class="flex items-center gap-1.5 text-
|
|
1055
|
+
class="flex items-center gap-1.5 text-accent-danger"
|
|
1056
1056
|
role="alert"
|
|
1057
1057
|
>
|
|
1058
1058
|
<WarningIcon class="shrink-0" />
|
|
@@ -1116,7 +1116,7 @@
|
|
|
1116
1116
|
{#if errors.email && showErrors}
|
|
1117
1117
|
<div
|
|
1118
1118
|
transition:safeSlide={{ duration: 300, easing: cubicOut }}
|
|
1119
|
-
class="flex items-center gap-1.5 text-
|
|
1119
|
+
class="flex items-center gap-1.5 text-accent-danger"
|
|
1120
1120
|
role="alert"
|
|
1121
1121
|
>
|
|
1122
1122
|
<WarningIcon class="shrink-0" />
|
|
@@ -1133,8 +1133,8 @@
|
|
|
1133
1133
|
<p
|
|
1134
1134
|
class="{typography.smMuted} {loginLinkMessage.includes('sent') ||
|
|
1135
1135
|
loginLinkMessage.includes('check your email')
|
|
1136
|
-
? 'text-
|
|
1137
|
-
: 'text-
|
|
1136
|
+
? 'text-accent-success bg-status-success-bg'
|
|
1137
|
+
: 'text-accent-danger bg-status-error-bg'} p-3 rounded-md"
|
|
1138
1138
|
role="alert"
|
|
1139
1139
|
>
|
|
1140
1140
|
{loginLinkMessage}
|
|
@@ -1208,17 +1208,17 @@
|
|
|
1208
1208
|
|
|
1209
1209
|
<style>
|
|
1210
1210
|
.superlogin-container :global(body) {
|
|
1211
|
-
background-color:
|
|
1211
|
+
background-color: hsl(var(--bg-secondary));
|
|
1212
1212
|
}
|
|
1213
1213
|
|
|
1214
1214
|
.animated-gradient {
|
|
1215
1215
|
background: linear-gradient(
|
|
1216
1216
|
-45deg,
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1217
|
+
hsl(270 95% 75%),
|
|
1218
|
+
hsl(330 90% 82%),
|
|
1219
|
+
hsl(213 96% 78%),
|
|
1220
|
+
hsl(256 93% 76%),
|
|
1221
|
+
hsl(290 93% 83%)
|
|
1222
1222
|
);
|
|
1223
1223
|
background-size: 400% 400%;
|
|
1224
1224
|
animation: gradientShift 15s ease infinite;
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
<script module>
|
|
2
|
-
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
-
|
|
4
|
-
import { Toaster } from "svelte-sonner";
|
|
5
|
-
import { showToast } from "../../stores/toaster";
|
|
6
|
-
|
|
7
|
-
const { Story } = defineMeta({
|
|
8
|
-
title: "Components/Toaster",
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
function showSuccessToast() {
|
|
12
|
-
showToast("Action completed successfully!", "success");
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function showErrorToast() {
|
|
16
|
-
showToast("An error occurred. Please try again.", "error");
|
|
17
|
-
}
|
|
18
|
-
</script>
|
|
19
|
-
|
|
20
|
-
<Story name="Trigger Success Toast">
|
|
21
|
-
<div class="p-8">
|
|
22
|
-
<Toaster
|
|
23
|
-
position="bottom-right"
|
|
24
|
-
toastOptions={{
|
|
25
|
-
class: "text-sm bg-
|
|
26
|
-
classes: {
|
|
27
|
-
error: "text-
|
|
28
|
-
success: "text-
|
|
29
|
-
},
|
|
30
|
-
}}
|
|
31
|
-
/>
|
|
32
|
-
<button
|
|
33
|
-
onclick={showSuccessToast}
|
|
34
|
-
class="px-4 py-2 bg-
|
|
35
|
-
>
|
|
36
|
-
Show Success Toast
|
|
37
|
-
</button>
|
|
38
|
-
<p class="mt-4 text-sm text-
|
|
39
|
-
</div>
|
|
40
|
-
</Story>
|
|
41
|
-
|
|
42
|
-
<Story name="Trigger Error Toast">
|
|
43
|
-
<div class="p-8">
|
|
44
|
-
<Toaster
|
|
45
|
-
position="bottom-right"
|
|
46
|
-
toastOptions={{
|
|
47
|
-
class: "text-sm bg-
|
|
48
|
-
classes: {
|
|
49
|
-
error: "text-
|
|
50
|
-
success: "text-
|
|
51
|
-
},
|
|
52
|
-
}}
|
|
53
|
-
/>
|
|
54
|
-
<button
|
|
55
|
-
onclick={showErrorToast}
|
|
56
|
-
class="px-4 py-2 bg-
|
|
57
|
-
>
|
|
58
|
-
Show Error Toast
|
|
59
|
-
</button>
|
|
60
|
-
<p class="mt-4 text-sm text-
|
|
61
|
-
</div>
|
|
62
|
-
</Story>
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
+
|
|
4
|
+
import { Toaster } from "svelte-sonner";
|
|
5
|
+
import { showToast } from "../../stores/toaster";
|
|
6
|
+
|
|
7
|
+
const { Story } = defineMeta({
|
|
8
|
+
title: "Components/Toaster",
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
function showSuccessToast() {
|
|
12
|
+
showToast("Action completed successfully!", "success");
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function showErrorToast() {
|
|
16
|
+
showToast("An error occurred. Please try again.", "error");
|
|
17
|
+
}
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<Story name="Trigger Success Toast">
|
|
21
|
+
<div class="p-8">
|
|
22
|
+
<Toaster
|
|
23
|
+
position="bottom-right"
|
|
24
|
+
toastOptions={{
|
|
25
|
+
class: "text-sm bg-card border border-border",
|
|
26
|
+
classes: {
|
|
27
|
+
error: "text-accent-danger",
|
|
28
|
+
success: "text-accent-success",
|
|
29
|
+
},
|
|
30
|
+
}}
|
|
31
|
+
/>
|
|
32
|
+
<button
|
|
33
|
+
onclick={showSuccessToast}
|
|
34
|
+
class="px-4 py-2 bg-accent-success text-white rounded-lg hover:bg-accent-success"
|
|
35
|
+
>
|
|
36
|
+
Show Success Toast
|
|
37
|
+
</button>
|
|
38
|
+
<p class="mt-4 text-sm text-muted-foreground">Click the button to see a success toast notification</p>
|
|
39
|
+
</div>
|
|
40
|
+
</Story>
|
|
41
|
+
|
|
42
|
+
<Story name="Trigger Error Toast">
|
|
43
|
+
<div class="p-8">
|
|
44
|
+
<Toaster
|
|
45
|
+
position="bottom-right"
|
|
46
|
+
toastOptions={{
|
|
47
|
+
class: "text-sm bg-card border border-border",
|
|
48
|
+
classes: {
|
|
49
|
+
error: "text-accent-danger",
|
|
50
|
+
success: "text-accent-success",
|
|
51
|
+
},
|
|
52
|
+
}}
|
|
53
|
+
/>
|
|
54
|
+
<button
|
|
55
|
+
onclick={showErrorToast}
|
|
56
|
+
class="px-4 py-2 bg-accent-danger text-white rounded-lg hover:bg-accent-danger"
|
|
57
|
+
>
|
|
58
|
+
Show Error Toast
|
|
59
|
+
</button>
|
|
60
|
+
<p class="mt-4 text-sm text-muted-foreground">Click the button to see an error toast notification</p>
|
|
61
|
+
</div>
|
|
62
|
+
</Story>
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { Component, Snippet } from 'svelte';
|
|
3
|
-
import { typography } from '../../../tokens/typography';
|
|
4
|
-
|
|
5
|
-
const defaultLabels = {
|
|
6
|
-
noResultsFound: 'No results found',
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
interface Props {
|
|
10
|
-
/** Title text (alias for message) */
|
|
11
|
-
title?: string;
|
|
12
|
-
/** Main message to display */
|
|
13
|
-
message?: string;
|
|
14
|
-
/** Description text (alias for subtext) */
|
|
15
|
-
description?: string;
|
|
16
|
-
/** Secondary descriptive text */
|
|
17
|
-
subtext?: string;
|
|
18
|
-
/** Icon component (when iconType='component') */
|
|
19
|
-
icon?: Component<any> | null;
|
|
20
|
-
/** Image path (when iconType='image') */
|
|
21
|
-
imageSrc?: string;
|
|
22
|
-
/** Type of icon provided */
|
|
23
|
-
iconType?: 'component' | 'image';
|
|
24
|
-
/** Size classes for the icon */
|
|
25
|
-
iconSize?: string;
|
|
26
|
-
/** Additional CSS classes */
|
|
27
|
-
class?: string;
|
|
28
|
-
/** Optional action content (buttons, links, etc.) */
|
|
29
|
-
children?: Snippet;
|
|
30
|
-
/** Override user-visible strings */
|
|
31
|
-
labels?: Partial<typeof defaultLabels>;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
let {
|
|
35
|
-
title = '',
|
|
36
|
-
message = '',
|
|
37
|
-
description = '',
|
|
38
|
-
subtext = '',
|
|
39
|
-
icon = null,
|
|
40
|
-
imageSrc = '',
|
|
41
|
-
iconType = 'component',
|
|
42
|
-
iconSize = 'w-20 h-20',
|
|
43
|
-
class: className = '',
|
|
44
|
-
children,
|
|
45
|
-
labels: userLabels = {},
|
|
46
|
-
}: Props = $props();
|
|
47
|
-
|
|
48
|
-
let labels = $derived({ ...defaultLabels, ...userLabels });
|
|
49
|
-
|
|
50
|
-
// Support both naming conventions
|
|
51
|
-
let displayTitle = $derived(title || message || labels.noResultsFound);
|
|
52
|
-
let displaySubtext = $derived(description || subtext);
|
|
53
|
-
</script>
|
|
54
|
-
|
|
55
|
-
<div class="flex flex-col items-center justify-center px-6 py-10 text-center {className}">
|
|
56
|
-
{#if icon || imageSrc}
|
|
57
|
-
{#if iconType === 'component' && icon}
|
|
58
|
-
{@const IconComponent = icon}
|
|
59
|
-
<IconComponent class="mb-3 text-
|
|
60
|
-
{:else if iconType === 'image' && imageSrc}
|
|
61
|
-
<img src={imageSrc} alt="" class="mb-3 {iconSize}" />
|
|
62
|
-
{/if}
|
|
63
|
-
{/if}
|
|
64
|
-
|
|
65
|
-
<h3 class={typography.h3}>{displayTitle}</h3>
|
|
66
|
-
{#if displaySubtext}
|
|
67
|
-
<p class={`${typography.smMuted} mt-1`}>{displaySubtext}</p>
|
|
68
|
-
{/if}
|
|
69
|
-
|
|
70
|
-
{#if children}
|
|
71
|
-
<div class="mt-4">
|
|
72
|
-
{@render children()}
|
|
73
|
-
</div>
|
|
74
|
-
{/if}
|
|
75
|
-
</div>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Component, Snippet } from 'svelte';
|
|
3
|
+
import { typography } from '../../../tokens/typography';
|
|
4
|
+
|
|
5
|
+
const defaultLabels = {
|
|
6
|
+
noResultsFound: 'No results found',
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
interface Props {
|
|
10
|
+
/** Title text (alias for message) */
|
|
11
|
+
title?: string;
|
|
12
|
+
/** Main message to display */
|
|
13
|
+
message?: string;
|
|
14
|
+
/** Description text (alias for subtext) */
|
|
15
|
+
description?: string;
|
|
16
|
+
/** Secondary descriptive text */
|
|
17
|
+
subtext?: string;
|
|
18
|
+
/** Icon component (when iconType='component') */
|
|
19
|
+
icon?: Component<any> | null;
|
|
20
|
+
/** Image path (when iconType='image') */
|
|
21
|
+
imageSrc?: string;
|
|
22
|
+
/** Type of icon provided */
|
|
23
|
+
iconType?: 'component' | 'image';
|
|
24
|
+
/** Size classes for the icon */
|
|
25
|
+
iconSize?: string;
|
|
26
|
+
/** Additional CSS classes */
|
|
27
|
+
class?: string;
|
|
28
|
+
/** Optional action content (buttons, links, etc.) */
|
|
29
|
+
children?: Snippet;
|
|
30
|
+
/** Override user-visible strings */
|
|
31
|
+
labels?: Partial<typeof defaultLabels>;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
let {
|
|
35
|
+
title = '',
|
|
36
|
+
message = '',
|
|
37
|
+
description = '',
|
|
38
|
+
subtext = '',
|
|
39
|
+
icon = null,
|
|
40
|
+
imageSrc = '',
|
|
41
|
+
iconType = 'component',
|
|
42
|
+
iconSize = 'w-20 h-20',
|
|
43
|
+
class: className = '',
|
|
44
|
+
children,
|
|
45
|
+
labels: userLabels = {},
|
|
46
|
+
}: Props = $props();
|
|
47
|
+
|
|
48
|
+
let labels = $derived({ ...defaultLabels, ...userLabels });
|
|
49
|
+
|
|
50
|
+
// Support both naming conventions
|
|
51
|
+
let displayTitle = $derived(title || message || labels.noResultsFound);
|
|
52
|
+
let displaySubtext = $derived(description || subtext);
|
|
53
|
+
</script>
|
|
54
|
+
|
|
55
|
+
<div class="flex flex-col items-center justify-center px-6 py-10 text-center {className}">
|
|
56
|
+
{#if icon || imageSrc}
|
|
57
|
+
{#if iconType === 'component' && icon}
|
|
58
|
+
{@const IconComponent = icon}
|
|
59
|
+
<IconComponent class="mb-3 text-muted-foreground {iconSize}" />
|
|
60
|
+
{:else if iconType === 'image' && imageSrc}
|
|
61
|
+
<img src={imageSrc} alt="" class="mb-3 {iconSize}" />
|
|
62
|
+
{/if}
|
|
63
|
+
{/if}
|
|
64
|
+
|
|
65
|
+
<h3 class={typography.h3}>{displayTitle}</h3>
|
|
66
|
+
{#if displaySubtext}
|
|
67
|
+
<p class={`${typography.smMuted} mt-1`}>{displaySubtext}</p>
|
|
68
|
+
{/if}
|
|
69
|
+
|
|
70
|
+
{#if children}
|
|
71
|
+
<div class="mt-4">
|
|
72
|
+
{@render children()}
|
|
73
|
+
</div>
|
|
74
|
+
{/if}
|
|
75
|
+
</div>
|
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
import { render, screen } from "@testing-library/svelte";
|
|
2
|
-
import { expect, describe, test } from "vitest";
|
|
3
|
-
import ErrorDisplay from "./ErrorDisplay.svelte";
|
|
4
|
-
|
|
5
|
-
describe("ErrorDisplay Component Tests", () => {
|
|
6
|
-
test("Shows error message when error and show are true", () => {
|
|
7
|
-
render(ErrorDisplay, { props: { error: "Invalid input", show: true } });
|
|
8
|
-
expect(screen.getByText("Invalid input")).toBeInTheDocument();
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
test("Does not show when error is empty", () => {
|
|
12
|
-
render(ErrorDisplay, { props: { error: "", show: true } });
|
|
13
|
-
expect(screen.queryByText("Invalid input")).not.toBeInTheDocument();
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
test("Does not show when show is false", () => {
|
|
17
|
-
render(ErrorDisplay, { props: { error: "Error message", show: false } });
|
|
18
|
-
expect(screen.queryByText("Error message")).not.toBeInTheDocument();
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
test("Has error text color", () => {
|
|
22
|
-
const { container } = render(ErrorDisplay, {
|
|
23
|
-
props: { error: "Error", show: true },
|
|
24
|
-
});
|
|
25
|
-
const icon = container.querySelector("svg");
|
|
26
|
-
expect(icon).toHaveClass("text-
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
test("Has shake class when shake is true", () => {
|
|
30
|
-
const { container } = render(ErrorDisplay, {
|
|
31
|
-
props: { error: "Error", show: true, shake: true },
|
|
32
|
-
});
|
|
33
|
-
const wrapper = container.querySelector("div.flex");
|
|
34
|
-
expect(wrapper).toHaveClass("animate-shake");
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
test("Does not have shake class when shake is false", () => {
|
|
38
|
-
const { container } = render(ErrorDisplay, {
|
|
39
|
-
props: { error: "Error", show: true, shake: false },
|
|
40
|
-
});
|
|
41
|
-
const wrapper = container.querySelector("div.flex");
|
|
42
|
-
expect(wrapper).not.toHaveClass("animate-shake");
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
test("Contains icon element", () => {
|
|
46
|
-
const { container } = render(ErrorDisplay, {
|
|
47
|
-
props: { error: "Error", show: true },
|
|
48
|
-
});
|
|
49
|
-
const svg = container.querySelector("svg");
|
|
50
|
-
expect(svg).toBeInTheDocument();
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
test("Has flex layout", () => {
|
|
54
|
-
const { container } = render(ErrorDisplay, {
|
|
55
|
-
props: { error: "Error", show: true },
|
|
56
|
-
});
|
|
57
|
-
const wrapper = container.querySelector("div.flex");
|
|
58
|
-
expect(wrapper).toHaveClass("flex");
|
|
59
|
-
expect(wrapper).toHaveClass("items-center");
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
test("Applies custom className", () => {
|
|
63
|
-
const { container } = render(ErrorDisplay, {
|
|
64
|
-
props: { error: "Error", show: true, className: "mt-2" },
|
|
65
|
-
});
|
|
66
|
-
const wrapper = container.querySelector("div.flex");
|
|
67
|
-
expect(wrapper).toHaveClass("mt-2");
|
|
68
|
-
});
|
|
69
|
-
});
|
|
1
|
+
import { render, screen } from "@testing-library/svelte";
|
|
2
|
+
import { expect, describe, test } from "vitest";
|
|
3
|
+
import ErrorDisplay from "./ErrorDisplay.svelte";
|
|
4
|
+
|
|
5
|
+
describe("ErrorDisplay Component Tests", () => {
|
|
6
|
+
test("Shows error message when error and show are true", () => {
|
|
7
|
+
render(ErrorDisplay, { props: { error: "Invalid input", show: true } });
|
|
8
|
+
expect(screen.getByText("Invalid input")).toBeInTheDocument();
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
test("Does not show when error is empty", () => {
|
|
12
|
+
render(ErrorDisplay, { props: { error: "", show: true } });
|
|
13
|
+
expect(screen.queryByText("Invalid input")).not.toBeInTheDocument();
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
test("Does not show when show is false", () => {
|
|
17
|
+
render(ErrorDisplay, { props: { error: "Error message", show: false } });
|
|
18
|
+
expect(screen.queryByText("Error message")).not.toBeInTheDocument();
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
test("Has error text color", () => {
|
|
22
|
+
const { container } = render(ErrorDisplay, {
|
|
23
|
+
props: { error: "Error", show: true },
|
|
24
|
+
});
|
|
25
|
+
const icon = container.querySelector("svg");
|
|
26
|
+
expect(icon).toHaveClass("text-accent-danger");
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
test("Has shake class when shake is true", () => {
|
|
30
|
+
const { container } = render(ErrorDisplay, {
|
|
31
|
+
props: { error: "Error", show: true, shake: true },
|
|
32
|
+
});
|
|
33
|
+
const wrapper = container.querySelector("div.flex");
|
|
34
|
+
expect(wrapper).toHaveClass("animate-shake");
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
test("Does not have shake class when shake is false", () => {
|
|
38
|
+
const { container } = render(ErrorDisplay, {
|
|
39
|
+
props: { error: "Error", show: true, shake: false },
|
|
40
|
+
});
|
|
41
|
+
const wrapper = container.querySelector("div.flex");
|
|
42
|
+
expect(wrapper).not.toHaveClass("animate-shake");
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
test("Contains icon element", () => {
|
|
46
|
+
const { container } = render(ErrorDisplay, {
|
|
47
|
+
props: { error: "Error", show: true },
|
|
48
|
+
});
|
|
49
|
+
const svg = container.querySelector("svg");
|
|
50
|
+
expect(svg).toBeInTheDocument();
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test("Has flex layout", () => {
|
|
54
|
+
const { container } = render(ErrorDisplay, {
|
|
55
|
+
props: { error: "Error", show: true },
|
|
56
|
+
});
|
|
57
|
+
const wrapper = container.querySelector("div.flex");
|
|
58
|
+
expect(wrapper).toHaveClass("flex");
|
|
59
|
+
expect(wrapper).toHaveClass("items-center");
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
test("Applies custom className", () => {
|
|
63
|
+
const { container } = render(ErrorDisplay, {
|
|
64
|
+
props: { error: "Error", show: true, className: "mt-2" },
|
|
65
|
+
});
|
|
66
|
+
const wrapper = container.querySelector("div.flex");
|
|
67
|
+
expect(wrapper).toHaveClass("mt-2");
|
|
68
|
+
});
|
|
69
|
+
});
|