@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
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
// =============================================================================
|
|
2
|
-
// CHAT PATTERNS - Chat interface components
|
|
3
|
-
// =============================================================================
|
|
4
|
-
|
|
5
|
-
// Core layout
|
|
6
|
-
export { default as ChatContainer } from './ChatContainer.svelte';
|
|
7
|
-
export { default as ChatMessageGroup } from './ChatMessageGroup.svelte';
|
|
8
|
-
|
|
9
|
-
// Message bubbles
|
|
10
|
-
export { default as ChatBubble } from './ChatBubble.svelte';
|
|
11
|
-
export { default as ChatTextBubble } from './ChatTextBubble.svelte';
|
|
12
|
-
export { default as ChatInvitationBubble } from './ChatInvitationBubble.svelte';
|
|
13
|
-
|
|
14
|
-
// Status displays
|
|
15
|
-
export { default as ChatStatusBadge } from './ChatStatusBadge.svelte';
|
|
16
|
-
export { default as ChatStatusTransition } from './ChatStatusTransition.svelte';
|
|
17
|
-
export { default as ChatSlotUpdate } from './ChatSlotUpdate.svelte';
|
|
18
|
-
|
|
19
|
-
// Dividers and notices
|
|
20
|
-
export { default as ChatDateDivider } from './ChatDateDivider.svelte';
|
|
21
|
-
export { default as ChatActivityNotice } from './ChatActivityNotice.svelte';
|
|
22
|
-
export { default as ChatInvitationNotice } from './ChatInvitationNotice.svelte';
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// CHAT PATTERNS - Chat interface components
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
5
|
+
// Core layout
|
|
6
|
+
export { default as ChatContainer } from './ChatContainer.svelte';
|
|
7
|
+
export { default as ChatMessageGroup } from './ChatMessageGroup.svelte';
|
|
8
|
+
|
|
9
|
+
// Message bubbles
|
|
10
|
+
export { default as ChatBubble } from './ChatBubble.svelte';
|
|
11
|
+
export { default as ChatTextBubble } from './ChatTextBubble.svelte';
|
|
12
|
+
export { default as ChatInvitationBubble } from './ChatInvitationBubble.svelte';
|
|
13
|
+
|
|
14
|
+
// Status displays
|
|
15
|
+
export { default as ChatStatusBadge } from './ChatStatusBadge.svelte';
|
|
16
|
+
export { default as ChatStatusTransition } from './ChatStatusTransition.svelte';
|
|
17
|
+
export { default as ChatSlotUpdate } from './ChatSlotUpdate.svelte';
|
|
18
|
+
|
|
19
|
+
// Dividers and notices
|
|
20
|
+
export { default as ChatDateDivider } from './ChatDateDivider.svelte';
|
|
21
|
+
export { default as ChatActivityNotice } from './ChatActivityNotice.svelte';
|
|
22
|
+
export { default as ChatInvitationNotice } from './ChatInvitationNotice.svelte';
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
let {
|
|
3
|
-
items = [],
|
|
4
|
-
cols = 3,
|
|
5
|
-
gap = 4,
|
|
6
|
-
minWidth = null,
|
|
7
|
-
class: className = '',
|
|
8
|
-
children,
|
|
9
|
-
} = $props();
|
|
10
|
-
|
|
11
|
-
const colsClasses = {
|
|
12
|
-
1: 'grid-cols-1',
|
|
13
|
-
2: 'grid-cols-1 sm:grid-cols-2',
|
|
14
|
-
3: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3',
|
|
15
|
-
4: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-4',
|
|
16
|
-
5: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5',
|
|
17
|
-
6: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-6'
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
const gapClasses = {
|
|
21
|
-
2: 'gap-2',
|
|
22
|
-
3: 'gap-3',
|
|
23
|
-
4: 'gap-4',
|
|
24
|
-
5: 'gap-5',
|
|
25
|
-
6: 'gap-6',
|
|
26
|
-
8: 'gap-8'
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
let gridCols = $derived(colsClasses[cols] || colsClasses[3]);
|
|
30
|
-
let gridGap = $derived(gapClasses[gap] || gapClasses[4]);
|
|
31
|
-
let gridStyle = $derived(minWidth ? `grid-template-columns: repeat(auto-fit, minmax(${minWidth}, 1fr))` : '');
|
|
32
|
-
</script>
|
|
33
|
-
|
|
34
|
-
<div
|
|
35
|
-
class="grid {minWidth ? '' : gridCols} {gridGap} {className}"
|
|
36
|
-
style={gridStyle}
|
|
37
|
-
>
|
|
38
|
-
{#if items.length > 0}
|
|
39
|
-
{#each items as item, index}
|
|
40
|
-
{@render children?.(item, index)}
|
|
41
|
-
{/each}
|
|
42
|
-
{:else}
|
|
43
|
-
{@render children?.()}
|
|
44
|
-
{/if}
|
|
45
|
-
</div>
|
|
1
|
+
<script>
|
|
2
|
+
let {
|
|
3
|
+
items = [],
|
|
4
|
+
cols = 3,
|
|
5
|
+
gap = 4,
|
|
6
|
+
minWidth = null,
|
|
7
|
+
class: className = '',
|
|
8
|
+
children,
|
|
9
|
+
} = $props();
|
|
10
|
+
|
|
11
|
+
const colsClasses = {
|
|
12
|
+
1: 'grid-cols-1',
|
|
13
|
+
2: 'grid-cols-1 sm:grid-cols-2',
|
|
14
|
+
3: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3',
|
|
15
|
+
4: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-4',
|
|
16
|
+
5: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5',
|
|
17
|
+
6: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-6'
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const gapClasses = {
|
|
21
|
+
2: 'gap-2',
|
|
22
|
+
3: 'gap-3',
|
|
23
|
+
4: 'gap-4',
|
|
24
|
+
5: 'gap-5',
|
|
25
|
+
6: 'gap-6',
|
|
26
|
+
8: 'gap-8'
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
let gridCols = $derived(colsClasses[cols] || colsClasses[3]);
|
|
30
|
+
let gridGap = $derived(gapClasses[gap] || gapClasses[4]);
|
|
31
|
+
let gridStyle = $derived(minWidth ? `grid-template-columns: repeat(auto-fit, minmax(${minWidth}, 1fr))` : '');
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<div
|
|
35
|
+
class="grid {minWidth ? '' : gridCols} {gridGap} {className}"
|
|
36
|
+
style={gridStyle}
|
|
37
|
+
>
|
|
38
|
+
{#if items.length > 0}
|
|
39
|
+
{#each items as item, index}
|
|
40
|
+
{@render children?.(item, index)}
|
|
41
|
+
{/each}
|
|
42
|
+
{:else}
|
|
43
|
+
{@render children?.()}
|
|
44
|
+
{/if}
|
|
45
|
+
</div>
|
|
@@ -26,27 +26,27 @@ describe('DataList Dividers', () => {
|
|
|
26
26
|
const { container } = render(DataList);
|
|
27
27
|
const list = container.querySelector('ul');
|
|
28
28
|
expect(list).toHaveClass('divide-y');
|
|
29
|
-
expect(list).toHaveClass('divide-
|
|
29
|
+
expect(list).toHaveClass('divide-border');
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
test('dividers=true shows divide classes', () => {
|
|
33
33
|
const { container } = render(DataList, { props: { dividers: true } });
|
|
34
34
|
const list = container.querySelector('ul');
|
|
35
35
|
expect(list).toHaveClass('divide-y');
|
|
36
|
-
expect(list).toHaveClass('divide-
|
|
36
|
+
expect(list).toHaveClass('divide-border');
|
|
37
37
|
});
|
|
38
38
|
|
|
39
39
|
test('dividers=false removes divide classes', () => {
|
|
40
40
|
const { container } = render(DataList, { props: { dividers: false } });
|
|
41
41
|
const list = container.querySelector('ul');
|
|
42
42
|
expect(list).not.toHaveClass('divide-y');
|
|
43
|
-
expect(list).not.toHaveClass('divide-
|
|
43
|
+
expect(list).not.toHaveClass('divide-border');
|
|
44
44
|
});
|
|
45
45
|
|
|
46
|
-
test('dividers
|
|
46
|
+
test('dividers use token-based border class', () => {
|
|
47
47
|
const { container } = render(DataList, { props: { dividers: true } });
|
|
48
48
|
const list = container.querySelector('ul');
|
|
49
|
-
expect(list).toHaveClass('
|
|
49
|
+
expect(list).toHaveClass('divide-border');
|
|
50
50
|
});
|
|
51
51
|
});
|
|
52
52
|
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
let {
|
|
3
|
-
items = [],
|
|
4
|
-
dividers = true,
|
|
5
|
-
gap = 0,
|
|
6
|
-
class: className = '',
|
|
7
|
-
children,
|
|
8
|
-
} = $props();
|
|
9
|
-
|
|
10
|
-
let gapClass = $derived(gap > 0 ? `space-y-${gap}` : '');
|
|
11
|
-
let dividerClass = $derived(dividers && gap === 0 ? 'divide-y divide-
|
|
12
|
-
</script>
|
|
13
|
-
|
|
14
|
-
<ul class="{dividerClass} {gapClass} {className}" role="list">
|
|
15
|
-
{#if items.length > 0}
|
|
16
|
-
{#each items as item, index}
|
|
17
|
-
<li class="py-3 first:pt-0 last:pb-0">
|
|
18
|
-
{@render children?.(item, index)}
|
|
19
|
-
</li>
|
|
20
|
-
{/each}
|
|
21
|
-
{:else}
|
|
22
|
-
{@render children?.()}
|
|
23
|
-
{/if}
|
|
24
|
-
</ul>
|
|
1
|
+
<script>
|
|
2
|
+
let {
|
|
3
|
+
items = [],
|
|
4
|
+
dividers = true,
|
|
5
|
+
gap = 0,
|
|
6
|
+
class: className = '',
|
|
7
|
+
children,
|
|
8
|
+
} = $props();
|
|
9
|
+
|
|
10
|
+
let gapClass = $derived(gap > 0 ? `space-y-${gap}` : '');
|
|
11
|
+
let dividerClass = $derived(dividers && gap === 0 ? 'divide-y divide-border' : '');
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<ul class="{dividerClass} {gapClass} {className}" role="list">
|
|
15
|
+
{#if items.length > 0}
|
|
16
|
+
{#each items as item, index}
|
|
17
|
+
<li class="py-3 first:pt-0 last:pb-0">
|
|
18
|
+
{@render children?.(item, index)}
|
|
19
|
+
</li>
|
|
20
|
+
{/each}
|
|
21
|
+
{:else}
|
|
22
|
+
{@render children?.()}
|
|
23
|
+
{/if}
|
|
24
|
+
</ul>
|
|
@@ -18,7 +18,7 @@ describe('DataTable Component', () => {
|
|
|
18
18
|
const { container } = render(DataTable);
|
|
19
19
|
const wrapper = container.querySelector('.overflow-x-auto');
|
|
20
20
|
expect(wrapper).toBeInTheDocument();
|
|
21
|
-
expect(wrapper).toHaveClass('rounded-lg', 'border', 'border-
|
|
21
|
+
expect(wrapper).toHaveClass('rounded-lg', 'border', 'border-border');
|
|
22
22
|
});
|
|
23
23
|
|
|
24
24
|
it('applies custom className', () => {
|
|
@@ -37,7 +37,7 @@ describe('DataTable Component', () => {
|
|
|
37
37
|
it('applies striped classes when striped is true', () => {
|
|
38
38
|
const { container } = render(DataTable, { props: { striped: true } });
|
|
39
39
|
const tbody = container.querySelector('tbody');
|
|
40
|
-
expect(tbody.className).toContain('[&>tr:nth-child(odd)]:bg-
|
|
40
|
+
expect(tbody.className).toContain('[&>tr:nth-child(odd)]:bg-bg-secondary');
|
|
41
41
|
});
|
|
42
42
|
});
|
|
43
43
|
|
|
@@ -45,13 +45,13 @@ describe('DataTable Component', () => {
|
|
|
45
45
|
it('applies hover classes by default', () => {
|
|
46
46
|
const { container } = render(DataTable);
|
|
47
47
|
const tbody = container.querySelector('tbody');
|
|
48
|
-
expect(tbody.className).toContain('[&>tr]:hover:bg-
|
|
48
|
+
expect(tbody.className).toContain('[&>tr]:hover:bg-bg-secondary');
|
|
49
49
|
});
|
|
50
50
|
|
|
51
51
|
it('does not apply hover classes when hoverable is false', () => {
|
|
52
52
|
const { container } = render(DataTable, { props: { hoverable: false } });
|
|
53
53
|
const tbody = container.querySelector('tbody');
|
|
54
|
-
expect(tbody.className).not.toContain('[&>tr]:hover:bg-
|
|
54
|
+
expect(tbody.className).not.toContain('[&>tr]:hover:bg-bg-secondary');
|
|
55
55
|
});
|
|
56
56
|
});
|
|
57
57
|
|
|
@@ -106,7 +106,7 @@ describe('DataTable Component', () => {
|
|
|
106
106
|
it('tbody has divide styles', () => {
|
|
107
107
|
const { container } = render(DataTable);
|
|
108
108
|
const tbody = container.querySelector('tbody');
|
|
109
|
-
expect(tbody).toHaveClass('divide-y', 'divide-
|
|
109
|
+
expect(tbody).toHaveClass('divide-y', 'divide-border');
|
|
110
110
|
});
|
|
111
111
|
|
|
112
112
|
it('table has full width', () => {
|
|
@@ -126,31 +126,31 @@ describe('DataTable Component', () => {
|
|
|
126
126
|
it('includes dark mode border classes', () => {
|
|
127
127
|
const { container } = render(DataTable);
|
|
128
128
|
const wrapper = container.querySelector('.overflow-x-auto');
|
|
129
|
-
expect(wrapper.className).toContain('
|
|
129
|
+
expect(wrapper.className).toContain('');
|
|
130
130
|
});
|
|
131
131
|
|
|
132
132
|
it('includes dark mode divide classes on tbody', () => {
|
|
133
133
|
const { container } = render(DataTable);
|
|
134
134
|
const tbody = container.querySelector('tbody');
|
|
135
|
-
expect(tbody.className).toContain('
|
|
135
|
+
expect(tbody.className).toContain('');
|
|
136
136
|
});
|
|
137
137
|
|
|
138
|
-
it('
|
|
138
|
+
it('striped classes use token-based bg (auto dark mode via CSS vars)', () => {
|
|
139
139
|
const { container } = render(DataTable, { props: { striped: true } });
|
|
140
140
|
const tbody = container.querySelector('tbody');
|
|
141
|
-
expect(tbody.className).toContain('
|
|
141
|
+
expect(tbody.className).toContain('[&>tr:nth-child(odd)]:bg-bg-secondary');
|
|
142
142
|
});
|
|
143
143
|
|
|
144
|
-
it('
|
|
144
|
+
it('hover classes use token-based bg (auto dark mode via CSS vars)', () => {
|
|
145
145
|
const { container } = render(DataTable, { props: { hoverable: true } });
|
|
146
146
|
const tbody = container.querySelector('tbody');
|
|
147
|
-
expect(tbody.className).toContain('
|
|
147
|
+
expect(tbody.className).toContain('[&>tr]:hover:bg-bg-secondary');
|
|
148
148
|
});
|
|
149
149
|
|
|
150
|
-
it('
|
|
150
|
+
it('bordered classes use token-based border (auto dark mode via CSS vars)', () => {
|
|
151
151
|
const { container } = render(DataTable, { props: { bordered: true } });
|
|
152
152
|
const tbody = container.querySelector('tbody');
|
|
153
|
-
expect(tbody.className).toContain('
|
|
153
|
+
expect(tbody.className).toContain('[&_td]:border-border');
|
|
154
154
|
});
|
|
155
155
|
});
|
|
156
156
|
|
|
@@ -158,7 +158,7 @@ describe('DataTable Component', () => {
|
|
|
158
158
|
it('can combine striped and bordered', () => {
|
|
159
159
|
const { container } = render(DataTable, { props: { striped: true, bordered: true } });
|
|
160
160
|
const tbody = container.querySelector('tbody');
|
|
161
|
-
expect(tbody.className).toContain('[&>tr:nth-child(odd)]:bg-
|
|
161
|
+
expect(tbody.className).toContain('[&>tr:nth-child(odd)]:bg-bg-secondary');
|
|
162
162
|
expect(tbody.className).toContain('[&_td]:border-x');
|
|
163
163
|
});
|
|
164
164
|
|
|
@@ -175,9 +175,9 @@ describe('DataTable Component', () => {
|
|
|
175
175
|
const wrapper = container.querySelector('.overflow-x-auto');
|
|
176
176
|
expect(wrapper).toHaveClass('test-class');
|
|
177
177
|
const tbody = container.querySelector('tbody');
|
|
178
|
-
expect(tbody.className).toContain('[&>tr:nth-child(odd)]:bg-
|
|
178
|
+
expect(tbody.className).toContain('[&>tr:nth-child(odd)]:bg-bg-secondary');
|
|
179
179
|
expect(tbody.className).toContain('[&_td]:border-x');
|
|
180
|
-
expect(tbody.className).toContain('[&>tr]:hover:bg-
|
|
180
|
+
expect(tbody.className).toContain('[&>tr]:hover:bg-bg-secondary');
|
|
181
181
|
});
|
|
182
182
|
|
|
183
183
|
it('can disable all visual effects', () => {
|
|
@@ -209,7 +209,7 @@ describe('DataTable Component', () => {
|
|
|
209
209
|
const { container } = render(DataTable, { props: { header } });
|
|
210
210
|
const thead = container.querySelector('thead');
|
|
211
211
|
expect(thead).toBeInTheDocument();
|
|
212
|
-
expect(thead).toHaveClass('text-xs', 'uppercase', 'bg-
|
|
212
|
+
expect(thead).toHaveClass('text-xs', 'uppercase', 'bg-bg-secondary');
|
|
213
213
|
});
|
|
214
214
|
|
|
215
215
|
it('header receives cellSize as argument', () => {
|
|
@@ -228,7 +228,7 @@ describe('DataTable Component', () => {
|
|
|
228
228
|
}));
|
|
229
229
|
const { container } = render(DataTable, { props: { header } });
|
|
230
230
|
const thead = container.querySelector('thead');
|
|
231
|
-
expect(thead.className).toContain('
|
|
231
|
+
expect(thead.className).toContain('');
|
|
232
232
|
});
|
|
233
233
|
});
|
|
234
234
|
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import { typography } from '../../tokens/typography';
|
|
3
|
-
|
|
4
|
-
let {
|
|
5
|
-
striped = false,
|
|
6
|
-
hoverable = true,
|
|
7
|
-
bordered = false,
|
|
8
|
-
size = 'md',
|
|
9
|
-
class: className = '',
|
|
10
|
-
header,
|
|
11
|
-
children,
|
|
12
|
-
} = $props();
|
|
13
|
-
|
|
14
|
-
const sizeClasses = {
|
|
15
|
-
sm: 'px-3 py-2 text-xs',
|
|
16
|
-
md: 'px-4 py-3 text-sm',
|
|
17
|
-
lg: 'px-6 py-4 text-base'
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
let cellSize = $derived(sizeClasses[size] || sizeClasses.md);
|
|
21
|
-
</script>
|
|
22
|
-
|
|
23
|
-
<div class="overflow-x-auto rounded-lg border border-
|
|
24
|
-
<table class={`w-full text-left ${typography.textMuted}`}>
|
|
25
|
-
{#if header}
|
|
26
|
-
<thead class={`text-xs uppercase bg-
|
|
27
|
-
{@render header(cellSize)}
|
|
28
|
-
</thead>
|
|
29
|
-
{/if}
|
|
30
|
-
|
|
31
|
-
<tbody class="divide-y divide-
|
|
32
|
-
{@render children?.(cellSize)}
|
|
33
|
-
</tbody>
|
|
34
|
-
</table>
|
|
35
|
-
</div>
|
|
36
|
-
|
|
37
|
-
<style>
|
|
38
|
-
:global(table th),
|
|
39
|
-
:global(table td) {
|
|
40
|
-
padding-left: 1rem;
|
|
41
|
-
padding-right: 1rem;
|
|
42
|
-
padding-top: 0.75rem;
|
|
43
|
-
padding-bottom: 0.75rem;
|
|
44
|
-
}
|
|
45
|
-
</style>
|
|
1
|
+
<script>
|
|
2
|
+
import { typography } from '../../tokens/typography';
|
|
3
|
+
|
|
4
|
+
let {
|
|
5
|
+
striped = false,
|
|
6
|
+
hoverable = true,
|
|
7
|
+
bordered = false,
|
|
8
|
+
size = 'md',
|
|
9
|
+
class: className = '',
|
|
10
|
+
header,
|
|
11
|
+
children,
|
|
12
|
+
} = $props();
|
|
13
|
+
|
|
14
|
+
const sizeClasses = {
|
|
15
|
+
sm: 'px-3 py-2 text-xs',
|
|
16
|
+
md: 'px-4 py-3 text-sm',
|
|
17
|
+
lg: 'px-6 py-4 text-base'
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
let cellSize = $derived(sizeClasses[size] || sizeClasses.md);
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<div class="overflow-x-auto rounded-lg border border-border {className}">
|
|
24
|
+
<table class={`w-full text-left ${typography.textMuted}`}>
|
|
25
|
+
{#if header}
|
|
26
|
+
<thead class={`text-xs uppercase bg-bg-secondary ${typography.textMuted}`}>
|
|
27
|
+
{@render header(cellSize)}
|
|
28
|
+
</thead>
|
|
29
|
+
{/if}
|
|
30
|
+
|
|
31
|
+
<tbody class="divide-y divide-border {striped ? '[&>tr:nth-child(odd)]:bg-bg-secondary' : ''} {hoverable ? '[&>tr]:hover:bg-bg-secondary' : ''} {bordered ? '[&_td]:border-x [&_td]:border-border' : ''}">
|
|
32
|
+
{@render children?.(cellSize)}
|
|
33
|
+
</tbody>
|
|
34
|
+
</table>
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
<style>
|
|
38
|
+
:global(table th),
|
|
39
|
+
:global(table td) {
|
|
40
|
+
padding-left: 1rem;
|
|
41
|
+
padding-right: 1rem;
|
|
42
|
+
padding-top: 0.75rem;
|
|
43
|
+
padding-bottom: 0.75rem;
|
|
44
|
+
}
|
|
45
|
+
</style>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Data display pattern components
|
|
2
|
-
export { default as DataGrid } from './DataGrid.svelte';
|
|
3
|
-
export { default as DataList } from './DataList.svelte';
|
|
4
|
-
export { default as DataTable } from './DataTable.svelte';
|
|
1
|
+
// Data display pattern components
|
|
2
|
+
export { default as DataGrid } from './DataGrid.svelte';
|
|
3
|
+
export { default as DataList } from './DataList.svelte';
|
|
4
|
+
export { default as DataTable } from './DataTable.svelte';
|
|
@@ -1,95 +1,95 @@
|
|
|
1
|
-
import { render, screen, fireEvent } from "@testing-library/svelte";
|
|
2
|
-
import userEvent from "@testing-library/user-event";
|
|
3
|
-
import { expect, describe, test, vi } from "vitest";
|
|
4
|
-
import FormActions from "./FormActions.svelte";
|
|
5
|
-
|
|
6
|
-
function setupTest(args = {}) {
|
|
7
|
-
const user = userEvent.setup();
|
|
8
|
-
const { component, container } = render(FormActions, {
|
|
9
|
-
props: {
|
|
10
|
-
onCancel: vi.fn(),
|
|
11
|
-
onSubmit: vi.fn(),
|
|
12
|
-
...args,
|
|
13
|
-
},
|
|
14
|
-
});
|
|
15
|
-
return { user, component, container };
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
describe("FormActions Component Tests", () => {
|
|
19
|
-
test("Renders submit and cancel buttons", () => {
|
|
20
|
-
setupTest();
|
|
21
|
-
expect(screen.getByText("Save")).toBeInTheDocument();
|
|
22
|
-
expect(screen.getByText("Cancel")).toBeInTheDocument();
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
test("Uses custom button labels", () => {
|
|
26
|
-
setupTest({ submitLabel: "Update", cancelLabel: "Discard" });
|
|
27
|
-
expect(screen.getByText("Update")).toBeInTheDocument();
|
|
28
|
-
expect(screen.getByText("Discard")).toBeInTheDocument();
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
test("Calls onSubmit when submit button clicked", async () => {
|
|
32
|
-
const onSubmit = vi.fn();
|
|
33
|
-
const { user } = setupTest({ onSubmit });
|
|
34
|
-
|
|
35
|
-
await user.click(screen.getByText("Save"));
|
|
36
|
-
expect(onSubmit).toHaveBeenCalledTimes(1);
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
test("Calls onCancel when cancel button clicked", async () => {
|
|
40
|
-
const onCancel = vi.fn();
|
|
41
|
-
const { user } = setupTest({ onCancel });
|
|
42
|
-
|
|
43
|
-
await user.click(screen.getByText("Cancel"));
|
|
44
|
-
expect(onCancel).toHaveBeenCalledTimes(1);
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
test("Submit button shows loading state", () => {
|
|
48
|
-
setupTest({ isSubmitting: true });
|
|
49
|
-
const submitBtn = screen.getByText("Save").closest("button, a");
|
|
50
|
-
expect(submitBtn).toBeDisabled();
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
test("Submit button shows success state", () => {
|
|
54
|
-
setupTest({ isSuccess: true });
|
|
55
|
-
const submitBtn = screen.getByText("Save").closest("button, a");
|
|
56
|
-
// Check for success variant classes (green background)
|
|
57
|
-
expect(submitBtn).toHaveClass("bg-
|
|
58
|
-
expect(submitBtn).toHaveClass("border-
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
test("Submit button is disabled when disabled prop is true", () => {
|
|
62
|
-
setupTest({ disabled: true });
|
|
63
|
-
const submitBtn = screen.getByText("Save").closest("button, a");
|
|
64
|
-
expect(submitBtn).toBeDisabled();
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
test("Hides cancel button when showCancel is false", () => {
|
|
68
|
-
setupTest({ showCancel: false });
|
|
69
|
-
expect(screen.queryByText("Cancel")).not.toBeInTheDocument();
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
test("Uses custom submit variant", () => {
|
|
73
|
-
setupTest({ submitVariant: "red-solid" });
|
|
74
|
-
const submitBtn = screen.getByText("Save").closest("button, a");
|
|
75
|
-
// Check for red variant classes (red-solid maps to "red" variant)
|
|
76
|
-
expect(submitBtn).toHaveClass("bg-
|
|
77
|
-
expect(submitBtn).toHaveClass("border-
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
test("Uses custom cancel variant", () => {
|
|
81
|
-
setupTest({ cancelVariant: "blue-outline" });
|
|
82
|
-
const cancelBtn = screen.getByText("Cancel").closest("button, a");
|
|
83
|
-
// Check for outline variant classes (blue-outline maps to "outline" variant)
|
|
84
|
-
expect(cancelBtn).toHaveClass("text-
|
|
85
|
-
expect(cancelBtn).toHaveClass("border-
|
|
86
|
-
expect(cancelBtn).toHaveClass("bg-transparent");
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
test("Has responsive layout classes", () => {
|
|
90
|
-
const { container } = setupTest();
|
|
91
|
-
const wrapper = container.firstChild;
|
|
92
|
-
expect(wrapper).toHaveClass("w-full");
|
|
93
|
-
expect(wrapper).toHaveClass("flex");
|
|
94
|
-
});
|
|
95
|
-
});
|
|
1
|
+
import { render, screen, fireEvent } from "@testing-library/svelte";
|
|
2
|
+
import userEvent from "@testing-library/user-event";
|
|
3
|
+
import { expect, describe, test, vi } from "vitest";
|
|
4
|
+
import FormActions from "./FormActions.svelte";
|
|
5
|
+
|
|
6
|
+
function setupTest(args = {}) {
|
|
7
|
+
const user = userEvent.setup();
|
|
8
|
+
const { component, container } = render(FormActions, {
|
|
9
|
+
props: {
|
|
10
|
+
onCancel: vi.fn(),
|
|
11
|
+
onSubmit: vi.fn(),
|
|
12
|
+
...args,
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
return { user, component, container };
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
describe("FormActions Component Tests", () => {
|
|
19
|
+
test("Renders submit and cancel buttons", () => {
|
|
20
|
+
setupTest();
|
|
21
|
+
expect(screen.getByText("Save")).toBeInTheDocument();
|
|
22
|
+
expect(screen.getByText("Cancel")).toBeInTheDocument();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test("Uses custom button labels", () => {
|
|
26
|
+
setupTest({ submitLabel: "Update", cancelLabel: "Discard" });
|
|
27
|
+
expect(screen.getByText("Update")).toBeInTheDocument();
|
|
28
|
+
expect(screen.getByText("Discard")).toBeInTheDocument();
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
test("Calls onSubmit when submit button clicked", async () => {
|
|
32
|
+
const onSubmit = vi.fn();
|
|
33
|
+
const { user } = setupTest({ onSubmit });
|
|
34
|
+
|
|
35
|
+
await user.click(screen.getByText("Save"));
|
|
36
|
+
expect(onSubmit).toHaveBeenCalledTimes(1);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
test("Calls onCancel when cancel button clicked", async () => {
|
|
40
|
+
const onCancel = vi.fn();
|
|
41
|
+
const { user } = setupTest({ onCancel });
|
|
42
|
+
|
|
43
|
+
await user.click(screen.getByText("Cancel"));
|
|
44
|
+
expect(onCancel).toHaveBeenCalledTimes(1);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
test("Submit button shows loading state", () => {
|
|
48
|
+
setupTest({ isSubmitting: true });
|
|
49
|
+
const submitBtn = screen.getByText("Save").closest("button, a");
|
|
50
|
+
expect(submitBtn).toBeDisabled();
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test("Submit button shows success state", () => {
|
|
54
|
+
setupTest({ isSuccess: true });
|
|
55
|
+
const submitBtn = screen.getByText("Save").closest("button, a");
|
|
56
|
+
// Check for success variant classes (green background)
|
|
57
|
+
expect(submitBtn).toHaveClass("bg-accent-success");
|
|
58
|
+
expect(submitBtn).toHaveClass("border-accent-success");
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
test("Submit button is disabled when disabled prop is true", () => {
|
|
62
|
+
setupTest({ disabled: true });
|
|
63
|
+
const submitBtn = screen.getByText("Save").closest("button, a");
|
|
64
|
+
expect(submitBtn).toBeDisabled();
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
test("Hides cancel button when showCancel is false", () => {
|
|
68
|
+
setupTest({ showCancel: false });
|
|
69
|
+
expect(screen.queryByText("Cancel")).not.toBeInTheDocument();
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
test("Uses custom submit variant", () => {
|
|
73
|
+
setupTest({ submitVariant: "red-solid" });
|
|
74
|
+
const submitBtn = screen.getByText("Save").closest("button, a");
|
|
75
|
+
// Check for red variant classes (red-solid maps to "red" variant)
|
|
76
|
+
expect(submitBtn).toHaveClass("bg-accent-danger");
|
|
77
|
+
expect(submitBtn).toHaveClass("border-accent-danger");
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
test("Uses custom cancel variant", () => {
|
|
81
|
+
setupTest({ cancelVariant: "blue-outline" });
|
|
82
|
+
const cancelBtn = screen.getByText("Cancel").closest("button, a");
|
|
83
|
+
// Check for outline variant classes (blue-outline maps to "outline" variant)
|
|
84
|
+
expect(cancelBtn).toHaveClass("text-brand-primary");
|
|
85
|
+
expect(cancelBtn).toHaveClass("border-brand-primary");
|
|
86
|
+
expect(cancelBtn).toHaveClass("bg-transparent");
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
test("Has responsive layout classes", () => {
|
|
90
|
+
const { container } = setupTest();
|
|
91
|
+
const wrapper = container.firstChild;
|
|
92
|
+
expect(wrapper).toHaveClass("w-full");
|
|
93
|
+
expect(wrapper).toHaveClass("flex");
|
|
94
|
+
});
|
|
95
|
+
});
|