@getmicdrop/svelte-components 5.17.1 → 5.17.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/calendar/AboutShow/AboutShow.svelte +187 -187
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte +782 -782
- package/dist/calendar/FAQs/FAQs.svelte +77 -77
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +126 -126
- package/dist/calendar/OrderSummary/OrderSummary.svelte +457 -457
- package/dist/calendar/PublicCard/PublicCard.svelte +146 -146
- package/dist/calendar/ShowCard/ShowCard.svelte +157 -157
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +61 -61
- package/dist/components/Heading.spec.d.ts +2 -0
- package/dist/components/Heading.spec.d.ts.map +1 -0
- package/dist/components/Heading.spec.js +89 -0
- package/dist/components/Heading.svelte +60 -60
- package/dist/components/Layout/AppShell.svelte +104 -104
- package/dist/components/Layout/ContentSection.svelte +80 -80
- package/dist/components/Layout/Grid.svelte +4 -4
- 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.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 +6 -6
- package/dist/components/Layout/Text.svelte +87 -87
- package/dist/components/Layout/TwoColumn.svelte +108 -108
- package/dist/components/Layout/__tests__/AppShell.test.js +140 -0
- package/dist/components/Text.spec.d.ts +2 -0
- package/dist/components/Text.spec.d.ts.map +1 -0
- package/dist/components/Text.spec.js +89 -0
- package/dist/components/Text.svelte +53 -53
- package/dist/constants/validation.js +91 -91
- package/dist/constants/validation.spec.js +64 -64
- 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.d.ts +2 -0
- package/dist/forms/createFormStore.svelte.spec.d.ts.map +1 -0
- package/dist/forms/createFormStore.svelte.spec.js +388 -0
- package/dist/index.js +57 -57
- package/dist/index.spec.js +369 -369
- package/dist/patterns/chat/ChatActivityNotice.spec.d.ts +2 -0
- package/dist/patterns/chat/ChatActivityNotice.spec.d.ts.map +1 -0
- package/dist/patterns/chat/ChatActivityNotice.spec.js +59 -0
- package/dist/patterns/chat/ChatActivityNotice.svelte +41 -41
- package/dist/patterns/chat/ChatBubble.spec.d.ts +2 -0
- package/dist/patterns/chat/ChatBubble.spec.d.ts.map +1 -0
- package/dist/patterns/chat/ChatBubble.spec.js +91 -0
- package/dist/patterns/chat/ChatBubble.svelte +95 -95
- package/dist/patterns/chat/ChatContainer.spec.d.ts +2 -0
- package/dist/patterns/chat/ChatContainer.spec.d.ts.map +1 -0
- package/dist/patterns/chat/ChatContainer.spec.js +30 -0
- package/dist/patterns/chat/ChatContainer.svelte +46 -46
- package/dist/patterns/chat/ChatDateDivider.spec.d.ts +2 -0
- package/dist/patterns/chat/ChatDateDivider.spec.d.ts.map +1 -0
- package/dist/patterns/chat/ChatDateDivider.spec.js +30 -0
- package/dist/patterns/chat/ChatDateDivider.svelte +27 -27
- package/dist/patterns/chat/ChatInvitationBubble.spec.d.ts +2 -0
- package/dist/patterns/chat/ChatInvitationBubble.spec.d.ts.map +1 -0
- package/dist/patterns/chat/ChatInvitationBubble.spec.js +46 -0
- package/dist/patterns/chat/ChatInvitationBubble.svelte +37 -37
- package/dist/patterns/chat/ChatInvitationNotice.spec.d.ts +2 -0
- package/dist/patterns/chat/ChatInvitationNotice.spec.d.ts.map +1 -0
- package/dist/patterns/chat/ChatInvitationNotice.spec.js +32 -0
- package/dist/patterns/chat/ChatInvitationNotice.svelte +27 -27
- package/dist/patterns/chat/ChatMessageGroup.spec.d.ts +2 -0
- package/dist/patterns/chat/ChatMessageGroup.spec.d.ts.map +1 -0
- package/dist/patterns/chat/ChatMessageGroup.spec.js +58 -0
- package/dist/patterns/chat/ChatMessageGroup.svelte +57 -57
- package/dist/patterns/chat/ChatSlotUpdate.spec.d.ts +2 -0
- package/dist/patterns/chat/ChatSlotUpdate.spec.d.ts.map +1 -0
- package/dist/patterns/chat/ChatSlotUpdate.spec.js +65 -0
- package/dist/patterns/chat/ChatSlotUpdate.svelte +46 -46
- package/dist/patterns/chat/ChatStatusBadge.spec.d.ts +2 -0
- package/dist/patterns/chat/ChatStatusBadge.spec.d.ts.map +1 -0
- package/dist/patterns/chat/ChatStatusBadge.spec.js +79 -0
- package/dist/patterns/chat/ChatStatusBadge.svelte +91 -91
- package/dist/patterns/chat/ChatStatusTransition.spec.d.ts +2 -0
- package/dist/patterns/chat/ChatStatusTransition.spec.d.ts.map +1 -0
- package/dist/patterns/chat/ChatStatusTransition.spec.js +81 -0
- package/dist/patterns/chat/ChatStatusTransition.svelte +64 -64
- package/dist/patterns/chat/ChatTextBubble.spec.d.ts +2 -0
- package/dist/patterns/chat/ChatTextBubble.spec.d.ts.map +1 -0
- package/dist/patterns/chat/ChatTextBubble.spec.js +35 -0
- 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.svelte +24 -24
- package/dist/patterns/data/DataTable.spec.js +61 -0
- package/dist/patterns/data/DataTable.svelte +36 -36
- 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.spec.js +34 -0
- package/dist/patterns/forms/FormGrid.svelte +33 -33
- package/dist/patterns/forms/FormSection.svelte +32 -32
- package/dist/patterns/forms/FormValidationSummary.stories.svelte +83 -83
- package/dist/patterns/forms/FormValidationSummary.svelte +74 -74
- package/dist/patterns/index.js +21 -21
- package/dist/patterns/layout/Sidebar.spec.js +240 -1
- package/dist/patterns/layout/Sidebar.svelte +39 -39
- package/dist/patterns/layout/SidebarTestWrapper.svelte +34 -0
- package/dist/patterns/layout/SidebarTestWrapper.svelte.d.ts +23 -0
- package/dist/patterns/layout/SidebarTestWrapper.svelte.d.ts.map +1 -0
- package/dist/patterns/layout/index.js +29 -29
- package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
- package/dist/patterns/navigation/BottomNav.svelte +74 -74
- package/dist/patterns/navigation/Header.spec.js +123 -0
- package/dist/patterns/navigation/Header.stories.svelte +77 -77
- package/dist/patterns/navigation/Header.svelte +251 -251
- package/dist/patterns/page/PageHeader.svelte +18 -18
- 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 +24 -24
- package/dist/patterns/page/SectionHeader.svelte +29 -29
- package/dist/presets/badges.js +112 -112
- package/dist/presets/buttons.js +76 -76
- package/dist/presets/index.js +9 -9
- package/dist/primitives/Accordion/Accordion.spec.js +112 -2
- package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
- package/dist/primitives/Accordion/Accordion.svelte +42 -42
- package/dist/primitives/Accordion/AccordionItem.svelte +95 -95
- package/dist/primitives/Accordion/AccordionToggleWrapper.test.svelte +28 -0
- package/dist/primitives/Accordion/AccordionToggleWrapper.test.svelte.d.ts +7 -0
- package/dist/primitives/Accordion/AccordionToggleWrapper.test.svelte.d.ts.map +1 -0
- package/dist/primitives/Alert/Alert.spec.js +173 -173
- package/dist/primitives/Alert/Alert.stories.svelte +88 -88
- package/dist/primitives/Alert/Alert.svelte +27 -27
- package/dist/primitives/Avatar/Avatar.spec.js +23 -0
- package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
- 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 -136
- 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 -0
- package/dist/primitives/BottomSheet/BottomSheetWithActions.test.svelte.d.ts +10 -0
- package/dist/primitives/BottomSheet/BottomSheetWithActions.test.svelte.d.ts.map +1 -0
- package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +123 -123
- package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte +99 -99
- 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.d.ts +2 -0
- package/dist/primitives/Button/ButtonGroup.spec.d.ts.map +1 -0
- package/dist/primitives/Button/ButtonGroup.spec.js +44 -0
- 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.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 +32 -0
- 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 +136 -136
- package/dist/primitives/Drawer/Drawer.spec.js +437 -0
- package/dist/primitives/Drawer/Drawer.stories.svelte +80 -80
- package/dist/primitives/Drawer/Drawer.svelte +224 -224
- package/dist/primitives/Drawer/DrawerTestWrapper.svelte +86 -0
- package/dist/primitives/Drawer/DrawerTestWrapper.svelte.d.ts +26 -0
- package/dist/primitives/Drawer/DrawerTestWrapper.svelte.d.ts.map +1 -0
- package/dist/primitives/Dropdown/Dropdown.spec.js +116 -0
- package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
- package/dist/primitives/Dropdown/Dropdown.svelte +170 -170
- package/dist/primitives/Dropdown/DropdownDivider.spec.d.ts +2 -0
- package/dist/primitives/Dropdown/DropdownDivider.spec.d.ts.map +1 -0
- package/dist/primitives/Dropdown/DropdownDivider.spec.js +30 -0
- package/dist/primitives/Dropdown/DropdownDivider.svelte +9 -9
- package/dist/primitives/Dropdown/DropdownItem.spec.js +155 -1
- package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
- package/dist/primitives/Dropdown/DropdownItemTestWrapper.svelte +43 -0
- package/dist/primitives/Dropdown/DropdownItemTestWrapper.svelte.d.ts +17 -0
- package/dist/primitives/Dropdown/DropdownItemTestWrapper.svelte.d.ts.map +1 -0
- package/dist/primitives/Helper/Helper.spec.d.ts +2 -0
- package/dist/primitives/Helper/Helper.spec.d.ts.map +1 -0
- package/dist/primitives/Helper/Helper.spec.js +57 -0
- package/dist/primitives/Helper/Helper.svelte +33 -33
- package/dist/primitives/Icons/ArrowLeft.svelte +8 -8
- package/dist/primitives/Icons/ArrowRight.svelte +8 -8
- package/dist/primitives/Icons/Availability.svelte +14 -14
- package/dist/primitives/Icons/Back.svelte +14 -14
- package/dist/primitives/Icons/CheckCircle.svelte +6 -6
- package/dist/primitives/Icons/CheckCircleOutline.svelte +15 -15
- package/dist/primitives/Icons/ChevronLeft.svelte +4 -4
- package/dist/primitives/Icons/ChevronRight.svelte +4 -4
- package/dist/primitives/Icons/Copy.svelte +15 -15
- package/dist/primitives/Icons/Cross.svelte +5 -5
- package/dist/primitives/Icons/DownArrow.svelte +8 -8
- package/dist/primitives/Icons/ErrorCircle.svelte +6 -6
- package/dist/primitives/Icons/FacebookIcon.svelte +2 -2
- package/dist/primitives/Icons/Home.svelte +15 -15
- package/dist/primitives/Icons/Icon.spec.js +169 -169
- package/dist/primitives/Icons/Icon.stories.svelte +100 -100
- package/dist/primitives/Icons/Icon.svelte +52 -52
- package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
- package/dist/primitives/Icons/Info.svelte +7 -7
- package/dist/primitives/Icons/InstagramIcon.svelte +4 -4
- package/dist/primitives/Icons/LogoInstagram.svelte +2 -2
- package/dist/primitives/Icons/Message.svelte +15 -15
- package/dist/primitives/Icons/MoonIcon.svelte +5 -5
- package/dist/primitives/Icons/More.svelte +21 -21
- package/dist/primitives/Icons/MoreHori.spec.js +61 -61
- package/dist/primitives/Icons/MoreHori.svelte +22 -22
- package/dist/primitives/Icons/Notification.svelte +14 -14
- package/dist/primitives/Icons/Payment.svelte +14 -14
- package/dist/primitives/Icons/Profile.svelte +21 -21
- package/dist/primitives/Icons/Reload.svelte +29 -29
- package/dist/primitives/Icons/Shows.svelte +21 -21
- package/dist/primitives/Icons/Signout.svelte +21 -21
- package/dist/primitives/Icons/SunIcon.svelte +8 -8
- package/dist/primitives/Icons/TiktokIcon.svelte +2 -2
- package/dist/primitives/Icons/TwitterIcon.svelte +2 -2
- package/dist/primitives/Icons/WarningIcon.spec.js +18 -18
- package/dist/primitives/Icons/WarningIcon.svelte +5 -5
- package/dist/primitives/Input/Input.spec.js +1235 -573
- package/dist/primitives/Input/Input.stories.svelte +139 -139
- package/dist/primitives/Input/Input.svelte +423 -423
- package/dist/primitives/Input/Select.spec.js +632 -218
- package/dist/primitives/Input/Select.stories.svelte +112 -112
- package/dist/primitives/Input/Select.svelte +252 -252
- package/dist/primitives/Input/Textarea.stories.svelte +137 -137
- package/dist/primitives/Input/Textarea.svelte +105 -105
- package/dist/primitives/Label/Label.spec.js +9 -0
- package/dist/primitives/Label/Label.svelte +37 -37
- package/dist/primitives/LandingButton/LandingButton.spec.d.ts +2 -0
- package/dist/primitives/LandingButton/LandingButton.spec.d.ts.map +1 -0
- package/dist/primitives/LandingButton/LandingButton.spec.js +61 -0
- package/dist/primitives/LandingButton/LandingButton.svelte +92 -92
- package/dist/primitives/MenuItem/MenuItem.spec.d.ts +2 -0
- package/dist/primitives/MenuItem/MenuItem.spec.d.ts.map +1 -0
- package/dist/primitives/MenuItem/MenuItem.spec.js +130 -0
- package/dist/primitives/MenuItem/MenuItem.svelte +85 -85
- package/dist/primitives/Modal/Modal.spec.js +314 -99
- package/dist/primitives/Modal/Modal.stories.svelte +86 -86
- package/dist/primitives/Modal/Modal.svelte +181 -181
- package/dist/primitives/NavItem/NavItem.spec.d.ts +2 -0
- package/dist/primitives/NavItem/NavItem.spec.d.ts.map +1 -0
- package/dist/primitives/NavItem/NavItem.spec.js +97 -0
- package/dist/primitives/NavItem/NavItem.svelte +75 -75
- package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
- package/dist/primitives/Pagination/Pagination.svelte +261 -261
- package/dist/primitives/Radio/Radio.stories.svelte +80 -80
- package/dist/primitives/Radio/Radio.svelte +67 -67
- package/dist/primitives/SearchResultItem/SearchResultItem.spec.d.ts +2 -0
- package/dist/primitives/SearchResultItem/SearchResultItem.spec.d.ts.map +1 -0
- package/dist/primitives/SearchResultItem/SearchResultItem.spec.js +78 -0
- package/dist/primitives/SearchResultItem/SearchResultItem.svelte +109 -109
- package/dist/primitives/SidebarToggle/SidebarToggle.spec.d.ts +2 -0
- package/dist/primitives/SidebarToggle/SidebarToggle.spec.d.ts.map +1 -0
- package/dist/primitives/SidebarToggle/SidebarToggle.spec.js +61 -0
- package/dist/primitives/SidebarToggle/SidebarToggle.svelte +55 -55
- package/dist/primitives/Skeleton/CardPlaceholder.svelte +87 -87
- package/dist/primitives/Skeleton/ImagePlaceholder.svelte +59 -59
- package/dist/primitives/Skeleton/ListPlaceholder.svelte +76 -76
- package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
- package/dist/primitives/Skeleton/Skeleton.svelte +26 -26
- package/dist/primitives/Spinner/Spinner.spec.js +84 -71
- package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
- package/dist/primitives/Spinner/Spinner.svelte +20 -20
- package/dist/primitives/Tabs/TabItem.svelte +49 -49
- package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
- package/dist/primitives/Tabs/Tabs.svelte +137 -137
- package/dist/primitives/Toggle.spec.js +221 -146
- package/dist/primitives/Toggle.stories.svelte +92 -92
- package/dist/primitives/Toggle.svelte +141 -141
- package/dist/primitives/ToggleTestWrapper.svelte +30 -0
- package/dist/primitives/ToggleTestWrapper.svelte.d.ts +29 -0
- package/dist/primitives/ToggleTestWrapper.svelte.d.ts.map +1 -0
- package/dist/primitives/Tooltip/Tooltip.spec.d.ts +2 -0
- package/dist/primitives/Tooltip/Tooltip.spec.d.ts.map +1 -0
- package/dist/primitives/Tooltip/Tooltip.spec.js +126 -0
- 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 +69 -69
- package/dist/primitives/ValidationError.svelte +29 -29
- package/dist/primitives/index.js +113 -113
- 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.stories.svelte +125 -125
- package/dist/recipes/ImageUploader/ImageUploader.svelte +992 -992
- package/dist/recipes/SuperLogin/SuperLogin.spec.js +2 -2
- package/dist/recipes/SuperLogin/SuperLogin.svelte +1 -1
- package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte +1 -1
- package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
- package/dist/recipes/feedback/ErrorDisplay.stories.svelte +101 -101
- package/dist/recipes/feedback/ErrorDisplay.svelte +1 -1
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -133
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +157 -157
- package/dist/recipes/fields/CheckboxField.svelte +85 -85
- package/dist/recipes/fields/FormField.svelte +58 -58
- package/dist/recipes/fields/RadioGroup.svelte +95 -95
- package/dist/recipes/fields/SelectField.svelte +82 -82
- package/dist/recipes/fields/TextareaField.svelte +97 -97
- package/dist/recipes/fields/ToggleField.svelte +60 -60
- package/dist/recipes/fields/index.js +7 -7
- package/dist/recipes/inputs/MultiSelect.spec.js +263 -263
- package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
- package/dist/recipes/inputs/MultiSelect.svelte +283 -283
- package/dist/recipes/inputs/OTPInput.spec.js +251 -251
- package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
- package/dist/recipes/inputs/OTPInput.svelte +117 -117
- package/dist/recipes/inputs/PasswordInput.svelte +22 -22
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +131 -131
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +123 -123
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +336 -336
- package/dist/recipes/inputs/Search.spec.js +66 -2
- package/dist/recipes/inputs/Search.svelte +102 -102
- package/dist/recipes/inputs/index.js +7 -7
- package/dist/recipes/modals/AlertModal.svelte +130 -130
- package/dist/recipes/modals/ConfirmationModal.spec.js +396 -206
- package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
- package/dist/recipes/modals/ConfirmationModal.svelte +162 -162
- package/dist/recipes/modals/InputModal.svelte +182 -182
- 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.svelte +206 -206
- package/dist/services/EventService.js +79 -79
- package/dist/services/EventService.spec.js +217 -217
- package/dist/services/ShowService.js +144 -144
- package/dist/services/ShowService.spec.js +345 -345
- package/dist/stores/auth.svelte.spec.d.ts +2 -0
- package/dist/stores/auth.svelte.spec.d.ts.map +1 -0
- package/dist/stores/auth.svelte.spec.js +112 -0
- package/dist/stores/formDataStore.svelte.spec.d.ts +2 -0
- package/dist/stores/formDataStore.svelte.spec.d.ts.map +1 -0
- package/dist/stores/formDataStore.svelte.spec.js +150 -0
- package/dist/stores/formSave.svelte.spec.d.ts +2 -0
- package/dist/stores/formSave.svelte.spec.d.ts.map +1 -0
- package/dist/stores/formSave.svelte.spec.js +196 -0
- package/dist/stores/navigation.spec.d.ts +2 -0
- package/dist/stores/navigation.spec.d.ts.map +1 -0
- package/dist/stores/navigation.spec.js +53 -0
- package/dist/stores/toaster.js +13 -13
- package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
- package/dist/stories/ButtonAuditReview.svelte +427 -427
- package/dist/stories/PatternsGallery.stories.svelte +19 -19
- package/dist/stories/PatternsGallery.svelte +206 -206
- 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 +82 -82
- package/dist/telemetry.js +402 -402
- package/dist/telemetry.server.js +212 -212
- package/dist/telemetry.server.spec.js +437 -437
- package/dist/telemetry.spec.js +1168 -1168
- package/dist/tokens/tokens.css +87 -87
- package/dist/tokens/typography-base.css +163 -163
- package/dist/tokens/utilities.css +353 -353
- package/dist/utils/apiConfig.js +117 -117
- package/dist/utils/apiConfig.spec.js +219 -219
- package/dist/utils/greetings.js +187 -187
- package/dist/utils/haptic.spec.d.ts +2 -0
- package/dist/utils/haptic.spec.d.ts.map +1 -0
- package/dist/utils/haptic.spec.js +153 -0
- package/dist/utils/imageOptimizer.spec.d.ts +2 -0
- package/dist/utils/imageOptimizer.spec.d.ts.map +1 -0
- package/dist/utils/imageOptimizer.spec.js +201 -0
- package/dist/utils/imageValidation.js +121 -121
- package/dist/utils/logger.spec.d.ts +2 -0
- package/dist/utils/logger.spec.d.ts.map +1 -0
- package/dist/utils/logger.spec.js +95 -0
- package/dist/utils/transitions.js +4 -4
- package/dist/utils/utils.js +693 -693
- package/package.json +292 -293
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
/**
|
|
3
|
-
* AvatarButton Component
|
|
4
|
-
* Clickable avatar/image trigger with opacity hover effect.
|
|
5
|
-
*
|
|
6
|
-
* Replaces: Button variant="avatar"
|
|
7
|
-
*/
|
|
8
|
-
import { twMerge } from 'tailwind-merge';
|
|
9
|
-
import type { Snippet } from 'svelte';
|
|
10
|
-
import { buttonAvatarSizes } from '../../tokens/sizing.js';
|
|
11
|
-
|
|
12
|
-
interface Props {
|
|
13
|
-
/** Size variant */
|
|
14
|
-
size?: 'sm' | 'md' | 'lg';
|
|
15
|
-
/** Disabled state */
|
|
16
|
-
disabled?: boolean;
|
|
17
|
-
/** Content (typically an Avatar component or image) */
|
|
18
|
-
children?: Snippet;
|
|
19
|
-
/** Additional classes */
|
|
20
|
-
class?: string;
|
|
21
|
-
/** Click handler */
|
|
22
|
-
onclick?: (e: MouseEvent) => void;
|
|
23
|
-
[key: string]: unknown;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
let {
|
|
27
|
-
size = 'md',
|
|
28
|
-
disabled = false,
|
|
29
|
-
children,
|
|
30
|
-
class: className = '',
|
|
31
|
-
onclick,
|
|
32
|
-
...restProps
|
|
33
|
-
}: Props = $props();
|
|
34
|
-
|
|
35
|
-
const baseClasses = 'bg-transparent border-transparent rounded-lg focus:outline-hidden transition-all duration-150 ease-out select-none inline-flex items-center justify-center';
|
|
36
|
-
const hoverClasses = 'hover:opacity-80';
|
|
37
|
-
const disabledClasses = 'opacity-50 cursor-not-allowed';
|
|
38
|
-
|
|
39
|
-
let sizeClass = $derived(buttonAvatarSizes[size] || buttonAvatarSizes.md);
|
|
40
|
-
|
|
41
|
-
let classes = $derived(twMerge(
|
|
42
|
-
baseClasses,
|
|
43
|
-
sizeClass,
|
|
44
|
-
disabled ? disabledClasses : `${hoverClasses} cursor-pointer active:scale-[0.97] active:opacity-90`,
|
|
45
|
-
className
|
|
46
|
-
));
|
|
47
|
-
</script>
|
|
48
|
-
|
|
49
|
-
<button
|
|
50
|
-
type="button"
|
|
51
|
-
class={classes}
|
|
52
|
-
{disabled}
|
|
53
|
-
{onclick}
|
|
54
|
-
{...restProps}
|
|
55
|
-
>
|
|
56
|
-
{#if typeof children === 'function'}{@render children()}{:else if children}{children}{/if}
|
|
57
|
-
</button>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
/**
|
|
3
|
+
* AvatarButton Component
|
|
4
|
+
* Clickable avatar/image trigger with opacity hover effect.
|
|
5
|
+
*
|
|
6
|
+
* Replaces: Button variant="avatar"
|
|
7
|
+
*/
|
|
8
|
+
import { twMerge } from 'tailwind-merge';
|
|
9
|
+
import type { Snippet } from 'svelte';
|
|
10
|
+
import { buttonAvatarSizes } from '../../tokens/sizing.js';
|
|
11
|
+
|
|
12
|
+
interface Props {
|
|
13
|
+
/** Size variant */
|
|
14
|
+
size?: 'sm' | 'md' | 'lg';
|
|
15
|
+
/** Disabled state */
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
/** Content (typically an Avatar component or image) */
|
|
18
|
+
children?: Snippet;
|
|
19
|
+
/** Additional classes */
|
|
20
|
+
class?: string;
|
|
21
|
+
/** Click handler */
|
|
22
|
+
onclick?: (e: MouseEvent) => void;
|
|
23
|
+
[key: string]: unknown;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
let {
|
|
27
|
+
size = 'md',
|
|
28
|
+
disabled = false,
|
|
29
|
+
children,
|
|
30
|
+
class: className = '',
|
|
31
|
+
onclick,
|
|
32
|
+
...restProps
|
|
33
|
+
}: Props = $props();
|
|
34
|
+
|
|
35
|
+
const baseClasses = 'bg-transparent border-transparent rounded-lg focus:outline-hidden transition-all duration-150 ease-out select-none inline-flex items-center justify-center';
|
|
36
|
+
const hoverClasses = 'hover:opacity-80';
|
|
37
|
+
const disabledClasses = 'opacity-50 cursor-not-allowed';
|
|
38
|
+
|
|
39
|
+
let sizeClass = $derived(buttonAvatarSizes[size] || buttonAvatarSizes.md);
|
|
40
|
+
|
|
41
|
+
let classes = $derived(twMerge(
|
|
42
|
+
baseClasses,
|
|
43
|
+
sizeClass,
|
|
44
|
+
disabled ? disabledClasses : `${hoverClasses} cursor-pointer active:scale-[0.97] active:opacity-90`,
|
|
45
|
+
className
|
|
46
|
+
));
|
|
47
|
+
</script>
|
|
48
|
+
|
|
49
|
+
<button
|
|
50
|
+
type="button"
|
|
51
|
+
class={classes}
|
|
52
|
+
{disabled}
|
|
53
|
+
{onclick}
|
|
54
|
+
{...restProps}
|
|
55
|
+
>
|
|
56
|
+
{#if typeof children === 'function'}{@render children()}{:else if children}{children}{/if}
|
|
57
|
+
</button>
|
|
@@ -1,144 +1,144 @@
|
|
|
1
|
-
import { render, screen } from '@testing-library/svelte';
|
|
2
|
-
import userEvent from '@testing-library/user-event';
|
|
3
|
-
import { describe, test, expect, vi } from 'vitest';
|
|
4
|
-
import Badge from './Badge.svelte';
|
|
5
|
-
|
|
6
|
-
describe('Badge Component Tests', () => {
|
|
7
|
-
test('Renders with default props', () => {
|
|
8
|
-
const { container } = render(Badge);
|
|
9
|
-
const badge = container.querySelector('div');
|
|
10
|
-
expect(badge).toBeInTheDocument();
|
|
11
|
-
expect(badge).toHaveClass('inline-flex');
|
|
12
|
-
expect(badge).toHaveClass('items-center');
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
test('Renders with size prop', () => {
|
|
16
|
-
// Default md size renders with text classes
|
|
17
|
-
const { container: mdContainer } = render(Badge, { size: 'md' });
|
|
18
|
-
const mdBadge = mdContainer.querySelector('div');
|
|
19
|
-
expect(mdBadge).toHaveClass('font-medium');
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
test('Accepts size prop without error', () => {
|
|
23
|
-
// Test that various sizes render without errors
|
|
24
|
-
expect(() => render(Badge, { size: 'xs' })).not.toThrow();
|
|
25
|
-
expect(() => render(Badge, { size: 'sm' })).not.toThrow();
|
|
26
|
-
expect(() => render(Badge, { size: 'md' })).not.toThrow();
|
|
27
|
-
expect(() => render(Badge, { size: 'lg' })).not.toThrow();
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
test('Accepts large prop without error', () => {
|
|
31
|
-
expect(() => render(Badge, { large: true })).not.toThrow();
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
test('Handles variant props for colors', () => {
|
|
35
|
-
// neutral variant (default)
|
|
36
|
-
const { container: neutralContainer } = render(Badge, { variant: 'neutral' });
|
|
37
|
-
const neutralBadge = neutralContainer.querySelector('div');
|
|
38
|
-
expect(neutralBadge).toHaveClass('bg-gray-100');
|
|
39
|
-
|
|
40
|
-
// success variant
|
|
41
|
-
const { container: successContainer } = render(Badge, { variant: 'success' });
|
|
42
|
-
const successBadge = successContainer.querySelector('div');
|
|
43
|
-
expect(successBadge).toHaveClass('bg-green-100');
|
|
44
|
-
|
|
45
|
-
// warning variant
|
|
46
|
-
const { container: warningContainer } = render(Badge, { variant: 'warning' });
|
|
47
|
-
const warningBadge = warningContainer.querySelector('div');
|
|
48
|
-
expect(warningBadge).toHaveClass('bg-yellow-100');
|
|
49
|
-
|
|
50
|
-
// error variant
|
|
51
|
-
const { container: errorContainer } = render(Badge, { variant: 'error' });
|
|
52
|
-
const errorBadge = errorContainer.querySelector('div');
|
|
53
|
-
expect(errorBadge).toHaveClass('bg-red-100');
|
|
54
|
-
|
|
55
|
-
// info variant
|
|
56
|
-
const { container: infoContainer } = render(Badge, { variant: 'info' });
|
|
57
|
-
const infoBadge = infoContainer.querySelector('div');
|
|
58
|
-
expect(infoBadge).toHaveClass('bg-blue-100');
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
test('Handles case-insensitive variants', () => {
|
|
62
|
-
const { container: upperContainer } = render(Badge, { variant: 'SUCCESS' });
|
|
63
|
-
const upperBadge = upperContainer.querySelector('div');
|
|
64
|
-
expect(upperBadge).toHaveClass('bg-green-100');
|
|
65
|
-
|
|
66
|
-
const { container: mixedContainer } = render(Badge, { variant: 'Warning' });
|
|
67
|
-
const mixedBadge = mixedContainer.querySelector('div');
|
|
68
|
-
expect(mixedBadge).toHaveClass('bg-yellow-100');
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
test('Falls back to neutral variant for unknown variants', () => {
|
|
72
|
-
const { container } = render(Badge, { variant: 'unknown' });
|
|
73
|
-
const badge = container.querySelector('div');
|
|
74
|
-
expect(badge).toHaveClass('bg-gray-100');
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
test('Shows status dot when showDot is true', () => {
|
|
78
|
-
const { container } = render(Badge, { showDot: true });
|
|
79
|
-
const dot = container.querySelector('span.rounded-full');
|
|
80
|
-
expect(dot).toBeInTheDocument();
|
|
81
|
-
expect(dot).toHaveClass('w-1.5');
|
|
82
|
-
expect(dot).toHaveClass('h-1.5');
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
test('Does not show status dot by default', () => {
|
|
86
|
-
const { container } = render(Badge, { showDot: false });
|
|
87
|
-
const dot = container.querySelector('span.rounded-full');
|
|
88
|
-
expect(dot).not.toBeInTheDocument();
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
test('Renders as pill shape', () => {
|
|
92
|
-
const { container } = render(Badge, { pill: true });
|
|
93
|
-
const badge = container.querySelector('div');
|
|
94
|
-
expect(badge).toHaveClass('rounded-full');
|
|
95
|
-
expect(badge).toHaveClass('min-w-5');
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
test('Renders with rounded shape by default', () => {
|
|
99
|
-
const { container } = render(Badge, { shape: 'rounded' });
|
|
100
|
-
const badge = container.querySelector('div');
|
|
101
|
-
expect(badge).toHaveClass('rounded');
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
test('Renders with pill shape option', () => {
|
|
105
|
-
const { container } = render(Badge, { shape: 'pill' });
|
|
106
|
-
const badge = container.querySelector('div');
|
|
107
|
-
expect(badge).toHaveClass('rounded-full');
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
test('Applies custom className', () => {
|
|
111
|
-
const { container } = render(Badge, { className: 'custom-class' });
|
|
112
|
-
const badge = container.querySelector('div');
|
|
113
|
-
expect(badge).toHaveClass('custom-class');
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
test('Applies custom text color', () => {
|
|
117
|
-
const { container } = render(Badge, { textColor: '#ff0000' });
|
|
118
|
-
const badge = container.querySelector('div');
|
|
119
|
-
// Browser may convert hex to rgb
|
|
120
|
-
expect(badge.style.color).toBeTruthy();
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
test('Applies custom background color', () => {
|
|
124
|
-
const { container } = render(Badge, { bgColor: '#00ff00' });
|
|
125
|
-
const badge = container.querySelector('div');
|
|
126
|
-
// Browser may convert hex to rgb
|
|
127
|
-
expect(badge.style.backgroundColor).toBeTruthy();
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
test('Dispatches click event', async () => {
|
|
131
|
-
const user = userEvent.setup();
|
|
132
|
-
const onClickMock = vi.fn();
|
|
133
|
-
const { container } = render(Badge, { onclick: onClickMock });
|
|
134
|
-
const badge = container.querySelector('div');
|
|
135
|
-
await user.click(badge);
|
|
136
|
-
expect(onClickMock).toHaveBeenCalledOnce();
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
test('Gap class is present for icon spacing', () => {
|
|
140
|
-
const { container } = render(Badge);
|
|
141
|
-
const badge = container.querySelector('div');
|
|
142
|
-
expect(badge).toHaveClass('gap-1.5');
|
|
143
|
-
});
|
|
144
|
-
});
|
|
1
|
+
import { render, screen } from '@testing-library/svelte';
|
|
2
|
+
import userEvent from '@testing-library/user-event';
|
|
3
|
+
import { describe, test, expect, vi } from 'vitest';
|
|
4
|
+
import Badge from './Badge.svelte';
|
|
5
|
+
|
|
6
|
+
describe('Badge Component Tests', () => {
|
|
7
|
+
test('Renders with default props', () => {
|
|
8
|
+
const { container } = render(Badge);
|
|
9
|
+
const badge = container.querySelector('div');
|
|
10
|
+
expect(badge).toBeInTheDocument();
|
|
11
|
+
expect(badge).toHaveClass('inline-flex');
|
|
12
|
+
expect(badge).toHaveClass('items-center');
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
test('Renders with size prop', () => {
|
|
16
|
+
// Default md size renders with text classes
|
|
17
|
+
const { container: mdContainer } = render(Badge, { size: 'md' });
|
|
18
|
+
const mdBadge = mdContainer.querySelector('div');
|
|
19
|
+
expect(mdBadge).toHaveClass('font-medium');
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
test('Accepts size prop without error', () => {
|
|
23
|
+
// Test that various sizes render without errors
|
|
24
|
+
expect(() => render(Badge, { size: 'xs' })).not.toThrow();
|
|
25
|
+
expect(() => render(Badge, { size: 'sm' })).not.toThrow();
|
|
26
|
+
expect(() => render(Badge, { size: 'md' })).not.toThrow();
|
|
27
|
+
expect(() => render(Badge, { size: 'lg' })).not.toThrow();
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test('Accepts large prop without error', () => {
|
|
31
|
+
expect(() => render(Badge, { large: true })).not.toThrow();
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
test('Handles variant props for colors', () => {
|
|
35
|
+
// neutral variant (default)
|
|
36
|
+
const { container: neutralContainer } = render(Badge, { variant: 'neutral' });
|
|
37
|
+
const neutralBadge = neutralContainer.querySelector('div');
|
|
38
|
+
expect(neutralBadge).toHaveClass('bg-gray-100');
|
|
39
|
+
|
|
40
|
+
// success variant
|
|
41
|
+
const { container: successContainer } = render(Badge, { variant: 'success' });
|
|
42
|
+
const successBadge = successContainer.querySelector('div');
|
|
43
|
+
expect(successBadge).toHaveClass('bg-green-100');
|
|
44
|
+
|
|
45
|
+
// warning variant
|
|
46
|
+
const { container: warningContainer } = render(Badge, { variant: 'warning' });
|
|
47
|
+
const warningBadge = warningContainer.querySelector('div');
|
|
48
|
+
expect(warningBadge).toHaveClass('bg-yellow-100');
|
|
49
|
+
|
|
50
|
+
// error variant
|
|
51
|
+
const { container: errorContainer } = render(Badge, { variant: 'error' });
|
|
52
|
+
const errorBadge = errorContainer.querySelector('div');
|
|
53
|
+
expect(errorBadge).toHaveClass('bg-red-100');
|
|
54
|
+
|
|
55
|
+
// info variant
|
|
56
|
+
const { container: infoContainer } = render(Badge, { variant: 'info' });
|
|
57
|
+
const infoBadge = infoContainer.querySelector('div');
|
|
58
|
+
expect(infoBadge).toHaveClass('bg-blue-100');
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
test('Handles case-insensitive variants', () => {
|
|
62
|
+
const { container: upperContainer } = render(Badge, { variant: 'SUCCESS' });
|
|
63
|
+
const upperBadge = upperContainer.querySelector('div');
|
|
64
|
+
expect(upperBadge).toHaveClass('bg-green-100');
|
|
65
|
+
|
|
66
|
+
const { container: mixedContainer } = render(Badge, { variant: 'Warning' });
|
|
67
|
+
const mixedBadge = mixedContainer.querySelector('div');
|
|
68
|
+
expect(mixedBadge).toHaveClass('bg-yellow-100');
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
test('Falls back to neutral variant for unknown variants', () => {
|
|
72
|
+
const { container } = render(Badge, { variant: 'unknown' });
|
|
73
|
+
const badge = container.querySelector('div');
|
|
74
|
+
expect(badge).toHaveClass('bg-gray-100');
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
test('Shows status dot when showDot is true', () => {
|
|
78
|
+
const { container } = render(Badge, { showDot: true });
|
|
79
|
+
const dot = container.querySelector('span.rounded-full');
|
|
80
|
+
expect(dot).toBeInTheDocument();
|
|
81
|
+
expect(dot).toHaveClass('w-1.5');
|
|
82
|
+
expect(dot).toHaveClass('h-1.5');
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
test('Does not show status dot by default', () => {
|
|
86
|
+
const { container } = render(Badge, { showDot: false });
|
|
87
|
+
const dot = container.querySelector('span.rounded-full');
|
|
88
|
+
expect(dot).not.toBeInTheDocument();
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
test('Renders as pill shape', () => {
|
|
92
|
+
const { container } = render(Badge, { pill: true });
|
|
93
|
+
const badge = container.querySelector('div');
|
|
94
|
+
expect(badge).toHaveClass('rounded-full');
|
|
95
|
+
expect(badge).toHaveClass('min-w-5');
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
test('Renders with rounded shape by default', () => {
|
|
99
|
+
const { container } = render(Badge, { shape: 'rounded' });
|
|
100
|
+
const badge = container.querySelector('div');
|
|
101
|
+
expect(badge).toHaveClass('rounded');
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
test('Renders with pill shape option', () => {
|
|
105
|
+
const { container } = render(Badge, { shape: 'pill' });
|
|
106
|
+
const badge = container.querySelector('div');
|
|
107
|
+
expect(badge).toHaveClass('rounded-full');
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
test('Applies custom className', () => {
|
|
111
|
+
const { container } = render(Badge, { className: 'custom-class' });
|
|
112
|
+
const badge = container.querySelector('div');
|
|
113
|
+
expect(badge).toHaveClass('custom-class');
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
test('Applies custom text color', () => {
|
|
117
|
+
const { container } = render(Badge, { textColor: '#ff0000' });
|
|
118
|
+
const badge = container.querySelector('div');
|
|
119
|
+
// Browser may convert hex to rgb
|
|
120
|
+
expect(badge.style.color).toBeTruthy();
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
test('Applies custom background color', () => {
|
|
124
|
+
const { container } = render(Badge, { bgColor: '#00ff00' });
|
|
125
|
+
const badge = container.querySelector('div');
|
|
126
|
+
// Browser may convert hex to rgb
|
|
127
|
+
expect(badge.style.backgroundColor).toBeTruthy();
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
test('Dispatches click event', async () => {
|
|
131
|
+
const user = userEvent.setup();
|
|
132
|
+
const onClickMock = vi.fn();
|
|
133
|
+
const { container } = render(Badge, { onclick: onClickMock });
|
|
134
|
+
const badge = container.querySelector('div');
|
|
135
|
+
await user.click(badge);
|
|
136
|
+
expect(onClickMock).toHaveBeenCalledOnce();
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
test('Gap class is present for icon spacing', () => {
|
|
140
|
+
const { container } = render(Badge);
|
|
141
|
+
const badge = container.querySelector('div');
|
|
142
|
+
expect(badge).toHaveClass('gap-1.5');
|
|
143
|
+
});
|
|
144
|
+
});
|
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
<script module>
|
|
2
|
-
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import Badge from "./Badge.svelte";
|
|
6
|
-
|
|
7
|
-
const { Story } = defineMeta({
|
|
8
|
-
title: "Components/Badge",
|
|
9
|
-
component: Badge,
|
|
10
|
-
argTypes: {
|
|
11
|
-
size: { control: "select", options: ["small", "medium", "large"] },
|
|
12
|
-
variant: {
|
|
13
|
-
control: "select",
|
|
14
|
-
options: [
|
|
15
|
-
"host",
|
|
16
|
-
"headliner",
|
|
17
|
-
"feature",
|
|
18
|
-
"special-guest",
|
|
19
|
-
"opener",
|
|
20
|
-
"guest",
|
|
21
|
-
"teacher",
|
|
22
|
-
"assistant",
|
|
23
|
-
"success",
|
|
24
|
-
"warning",
|
|
25
|
-
"error",
|
|
26
|
-
"info",
|
|
27
|
-
"neutral",
|
|
28
|
-
],
|
|
29
|
-
},
|
|
30
|
-
className: { control: "text" },
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
</script>
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<!-- Size Variants -->
|
|
38
|
-
<Story name="Small Badge">
|
|
39
|
-
<Badge size="small" variant="info">Small</Badge>
|
|
40
|
-
</Story>
|
|
41
|
-
|
|
42
|
-
<Story name="Medium Badge">
|
|
43
|
-
<Badge size="medium" variant="info">Medium</Badge>
|
|
44
|
-
</Story>
|
|
45
|
-
|
|
46
|
-
<Story name="Large Badge">
|
|
47
|
-
<Badge size="large" variant="info">Large</Badge>
|
|
48
|
-
</Story>
|
|
49
|
-
|
|
50
|
-
<!-- Status Variants -->
|
|
51
|
-
<Story name="Success Status">
|
|
52
|
-
<Badge size="large" variant="success">Feb 1, 2024</Badge>
|
|
53
|
-
</Story>
|
|
54
|
-
|
|
55
|
-
<Story name="Warning Status">
|
|
56
|
-
<Badge size="large" variant="warning">Pending</Badge>
|
|
57
|
-
</Story>
|
|
58
|
-
|
|
59
|
-
<Story name="Error Status">
|
|
60
|
-
<Badge size="large" variant="error">Declined</Badge>
|
|
61
|
-
</Story>
|
|
62
|
-
|
|
63
|
-
<!-- Role Variants -->
|
|
64
|
-
<Story name="Role Variants">
|
|
65
|
-
<div class="flex gap-2 flex-wrap">
|
|
66
|
-
<Badge variant="host">Host</Badge>
|
|
67
|
-
<Badge variant="headliner">Headliner</Badge>
|
|
68
|
-
<Badge variant="feature">Feature</Badge>
|
|
69
|
-
<Badge variant="special-guest">Special Guest</Badge>
|
|
70
|
-
<Badge variant="opener">Opener</Badge>
|
|
71
|
-
<Badge variant="guest">Guest</Badge>
|
|
72
|
-
<Badge variant="teacher">Teacher</Badge>
|
|
73
|
-
<Badge variant="assistant">Assistant</Badge>
|
|
74
|
-
</div>
|
|
75
|
-
</Story>
|
|
76
|
-
|
|
77
|
-
<!-- All Status Variants -->
|
|
78
|
-
<Story name="All Status Variants">
|
|
79
|
-
<div class="flex gap-2 flex-wrap">
|
|
80
|
-
<Badge variant="success">Success</Badge>
|
|
81
|
-
<Badge variant="warning">Warning</Badge>
|
|
82
|
-
<Badge variant="error">Error</Badge>
|
|
83
|
-
<Badge variant="info">Info</Badge>
|
|
84
|
-
<Badge variant="neutral">Neutral</Badge>
|
|
85
|
-
</div>
|
|
86
|
-
</Story>
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
import Badge from "./Badge.svelte";
|
|
6
|
+
|
|
7
|
+
const { Story } = defineMeta({
|
|
8
|
+
title: "Components/Badge",
|
|
9
|
+
component: Badge,
|
|
10
|
+
argTypes: {
|
|
11
|
+
size: { control: "select", options: ["small", "medium", "large"] },
|
|
12
|
+
variant: {
|
|
13
|
+
control: "select",
|
|
14
|
+
options: [
|
|
15
|
+
"host",
|
|
16
|
+
"headliner",
|
|
17
|
+
"feature",
|
|
18
|
+
"special-guest",
|
|
19
|
+
"opener",
|
|
20
|
+
"guest",
|
|
21
|
+
"teacher",
|
|
22
|
+
"assistant",
|
|
23
|
+
"success",
|
|
24
|
+
"warning",
|
|
25
|
+
"error",
|
|
26
|
+
"info",
|
|
27
|
+
"neutral",
|
|
28
|
+
],
|
|
29
|
+
},
|
|
30
|
+
className: { control: "text" },
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
</script>
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
<!-- Size Variants -->
|
|
38
|
+
<Story name="Small Badge">
|
|
39
|
+
<Badge size="small" variant="info">Small</Badge>
|
|
40
|
+
</Story>
|
|
41
|
+
|
|
42
|
+
<Story name="Medium Badge">
|
|
43
|
+
<Badge size="medium" variant="info">Medium</Badge>
|
|
44
|
+
</Story>
|
|
45
|
+
|
|
46
|
+
<Story name="Large Badge">
|
|
47
|
+
<Badge size="large" variant="info">Large</Badge>
|
|
48
|
+
</Story>
|
|
49
|
+
|
|
50
|
+
<!-- Status Variants -->
|
|
51
|
+
<Story name="Success Status">
|
|
52
|
+
<Badge size="large" variant="success">Feb 1, 2024</Badge>
|
|
53
|
+
</Story>
|
|
54
|
+
|
|
55
|
+
<Story name="Warning Status">
|
|
56
|
+
<Badge size="large" variant="warning">Pending</Badge>
|
|
57
|
+
</Story>
|
|
58
|
+
|
|
59
|
+
<Story name="Error Status">
|
|
60
|
+
<Badge size="large" variant="error">Declined</Badge>
|
|
61
|
+
</Story>
|
|
62
|
+
|
|
63
|
+
<!-- Role Variants -->
|
|
64
|
+
<Story name="Role Variants">
|
|
65
|
+
<div class="flex gap-2 flex-wrap">
|
|
66
|
+
<Badge variant="host">Host</Badge>
|
|
67
|
+
<Badge variant="headliner">Headliner</Badge>
|
|
68
|
+
<Badge variant="feature">Feature</Badge>
|
|
69
|
+
<Badge variant="special-guest">Special Guest</Badge>
|
|
70
|
+
<Badge variant="opener">Opener</Badge>
|
|
71
|
+
<Badge variant="guest">Guest</Badge>
|
|
72
|
+
<Badge variant="teacher">Teacher</Badge>
|
|
73
|
+
<Badge variant="assistant">Assistant</Badge>
|
|
74
|
+
</div>
|
|
75
|
+
</Story>
|
|
76
|
+
|
|
77
|
+
<!-- All Status Variants -->
|
|
78
|
+
<Story name="All Status Variants">
|
|
79
|
+
<div class="flex gap-2 flex-wrap">
|
|
80
|
+
<Badge variant="success">Success</Badge>
|
|
81
|
+
<Badge variant="warning">Warning</Badge>
|
|
82
|
+
<Badge variant="error">Error</Badge>
|
|
83
|
+
<Badge variant="info">Info</Badge>
|
|
84
|
+
<Badge variant="neutral">Neutral</Badge>
|
|
85
|
+
</div>
|
|
86
|
+
</Story>
|