@getmicdrop/svelte-components 5.17.4 → 5.19.0
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 +191 -187
- package/dist/calendar/AboutShow/AboutShow.svelte.d.ts +2 -2
- package/dist/calendar/AboutShow/AboutShow.svelte.d.ts.map +1 -1
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte +801 -780
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts +4 -0
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -1
- package/dist/calendar/FAQs/FAQs.svelte +88 -77
- package/dist/calendar/FAQs/FAQs.svelte.d.ts +6 -4
- package/dist/calendar/FAQs/FAQs.svelte.d.ts.map +1 -1
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +140 -125
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte.d.ts +2 -0
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte.d.ts.map +1 -1
- package/dist/calendar/OrderSummary/OrderSummary.spec.js +3 -3
- package/dist/calendar/OrderSummary/OrderSummary.svelte +461 -457
- package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts +4 -2
- package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts.map +1 -1
- package/dist/calendar/PublicCard/PublicCard.svelte +164 -155
- package/dist/calendar/PublicCard/PublicCard.svelte.d.ts +4 -0
- package/dist/calendar/PublicCard/PublicCard.svelte.d.ts.map +1 -1
- package/dist/calendar/ShowCard/ShowCard.svelte +180 -166
- package/dist/calendar/ShowCard/ShowCard.svelte.d.ts +4 -0
- package/dist/calendar/ShowCard/ShowCard.svelte.d.ts.map +1 -1
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +80 -72
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte.d.ts +4 -0
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte.d.ts.map +1 -1
- package/dist/calendar/index.js +15 -15
- package/dist/components/Heading.spec.js +89 -89
- 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 +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.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/Text.spec.js +89 -89
- package/dist/components/Text.svelte +53 -53
- package/dist/config.js +151 -151
- 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.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +66 -57
- 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 -95
- package/dist/patterns/chat/ChatBubble.svelte.d.ts +6 -4
- package/dist/patterns/chat/ChatBubble.svelte.d.ts.map +1 -1
- 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 -37
- package/dist/patterns/chat/ChatInvitationBubble.svelte.d.ts +6 -3
- package/dist/patterns/chat/ChatInvitationBubble.svelte.d.ts.map +1 -1
- package/dist/patterns/chat/ChatInvitationNotice.spec.js +32 -32
- package/dist/patterns/chat/ChatInvitationNotice.svelte +36 -27
- package/dist/patterns/chat/ChatInvitationNotice.svelte.d.ts +6 -3
- package/dist/patterns/chat/ChatInvitationNotice.svelte.d.ts.map +1 -1
- 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.svelte +24 -24
- 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.svelte +32 -32
- package/dist/patterns/forms/FormValidationSummary.stories.svelte +97 -97
- package/dist/patterns/forms/FormValidationSummary.svelte +82 -74
- package/dist/patterns/forms/FormValidationSummary.svelte.d.ts +5 -3
- package/dist/patterns/forms/FormValidationSummary.svelte.d.ts.map +1 -1
- 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/SidebarTestWrapper.svelte.d.ts +1 -1
- 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 -74
- package/dist/patterns/navigation/BottomNav.svelte.d.ts +10 -9
- package/dist/patterns/navigation/BottomNav.svelte.d.ts.map +1 -1
- package/dist/patterns/navigation/Header.stories.svelte +77 -77
- package/dist/patterns/navigation/Header.svelte +263 -251
- package/dist/patterns/navigation/Header.svelte.d.ts +17 -9
- 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.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 -53
- package/dist/patterns/page/PageLoader.svelte.d.ts +6 -3
- package/dist/patterns/page/PageLoader.svelte.d.ts.map +1 -1
- 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/index.js +9 -9
- package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
- package/dist/primitives/Accordion/Accordion.svelte +62 -62
- package/dist/primitives/Accordion/AccordionItem.svelte +103 -95
- package/dist/primitives/Accordion/AccordionItem.svelte.d.ts +6 -4
- package/dist/primitives/Accordion/AccordionItem.svelte.d.ts.map +1 -1
- 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 -64
- package/dist/primitives/Alert/Alert.svelte.d.ts +6 -4
- package/dist/primitives/Alert/Alert.svelte.d.ts.map +1 -1
- 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 -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 +123 -123
- package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte +107 -99
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte.d.ts +13 -9
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
- 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.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.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 -136
- package/dist/primitives/DarkModeToggle.svelte.d.ts +9 -3
- package/dist/primitives/DarkModeToggle.svelte.d.ts.map +1 -1
- 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.stories.svelte +137 -137
- package/dist/primitives/Dropdown/Dropdown.svelte +179 -170
- package/dist/primitives/Dropdown/Dropdown.svelte.d.ts +7 -4
- package/dist/primitives/Dropdown/Dropdown.svelte.d.ts.map +1 -1
- package/dist/primitives/Dropdown/DropdownDivider.spec.js +30 -30
- package/dist/primitives/Dropdown/DropdownDivider.svelte +9 -9
- 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/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 -431
- package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
- 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.stories.svelte +137 -137
- package/dist/primitives/Input/Textarea.svelte +105 -105
- 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.svelte +113 -105
- package/dist/primitives/NumberInput/NumberInput.svelte.d.ts.map +1 -1
- package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
- package/dist/primitives/Pagination/Pagination.svelte +275 -261
- package/dist/primitives/Pagination/Pagination.svelte.d.ts +14 -6
- package/dist/primitives/Pagination/Pagination.svelte.d.ts.map +1 -1
- 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.svelte +96 -87
- package/dist/primitives/Skeleton/CardPlaceholder.svelte.d.ts +8 -5
- package/dist/primitives/Skeleton/CardPlaceholder.svelte.d.ts.map +1 -1
- package/dist/primitives/Skeleton/ImagePlaceholder.svelte +68 -59
- package/dist/primitives/Skeleton/ImagePlaceholder.svelte.d.ts +8 -5
- package/dist/primitives/Skeleton/ImagePlaceholder.svelte.d.ts.map +1 -1
- package/dist/primitives/Skeleton/ListPlaceholder.svelte +85 -76
- package/dist/primitives/Skeleton/ListPlaceholder.svelte.d.ts +8 -5
- package/dist/primitives/Skeleton/ListPlaceholder.svelte.d.ts.map +1 -1
- package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
- package/dist/primitives/Skeleton/Skeleton.svelte +55 -46
- package/dist/primitives/Skeleton/Skeleton.svelte.d.ts +7 -4
- package/dist/primitives/Skeleton/Skeleton.svelte.d.ts.map +1 -1
- package/dist/primitives/Spinner/Spinner.spec.js +84 -84
- package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
- package/dist/primitives/Spinner/Spinner.svelte +52 -44
- package/dist/primitives/Spinner/Spinner.svelte.d.ts +6 -4
- package/dist/primitives/Spinner/Spinner.svelte.d.ts.map +1 -1
- package/dist/primitives/Tabs/TabItem.svelte +52 -52
- package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
- package/dist/primitives/Tabs/Tabs.svelte +137 -137
- package/dist/primitives/Toggle.spec.js +221 -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 +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 +994 -992
- package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts +1 -0
- package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts.map +1 -1
- package/dist/recipes/SuperLogin/SuperLogin.svelte +25 -23
- package/dist/recipes/SuperLogin/SuperLogin.svelte.d.ts.map +1 -1
- package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte +75 -66
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts +7 -4
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts.map +1 -1
- 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.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 +101 -101
- 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 -283
- package/dist/recipes/inputs/MultiSelect.svelte.d.ts.map +1 -1
- 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 -117
- package/dist/recipes/inputs/OTPInput.svelte.d.ts +14 -12
- package/dist/recipes/inputs/OTPInput.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/PasswordInput.svelte +130 -121
- package/dist/recipes/inputs/PasswordInput.svelte.d.ts +7 -4
- package/dist/recipes/inputs/PasswordInput.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +142 -131
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts +8 -3
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/PhoneInput.svelte +254 -0
- package/dist/recipes/inputs/PhoneInput.svelte.d.ts +40 -0
- package/dist/recipes/inputs/PhoneInput.svelte.d.ts.map +1 -0
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +170 -170
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +349 -336
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts +21 -16
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/Search.svelte +110 -102
- package/dist/recipes/inputs/Search.svelte.d.ts +7 -5
- package/dist/recipes/inputs/Search.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/index.d.ts +1 -0
- package/dist/recipes/inputs/index.js +8 -7
- package/dist/recipes/inputs/phoneInput/CountrySelector.svelte +240 -0
- package/dist/recipes/inputs/phoneInput/CountrySelector.svelte.d.ts +15 -0
- package/dist/recipes/inputs/phoneInput/CountrySelector.svelte.d.ts.map +1 -0
- package/dist/recipes/inputs/phoneInput/countryData.d.ts +18 -0
- package/dist/recipes/inputs/phoneInput/countryData.d.ts.map +1 -0
- package/dist/recipes/inputs/phoneInput/countryData.js +211 -0
- package/dist/recipes/modals/AlertModal.svelte +139 -130
- package/dist/recipes/modals/AlertModal.svelte.d.ts +4 -2
- package/dist/recipes/modals/AlertModal.svelte.d.ts.map +1 -1
- 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 -162
- package/dist/recipes/modals/ConfirmationModal.svelte.d.ts +2 -0
- package/dist/recipes/modals/ConfirmationModal.svelte.d.ts.map +1 -1
- package/dist/recipes/modals/InputModal.svelte +194 -182
- package/dist/recipes/modals/InputModal.svelte.d.ts +6 -4
- package/dist/recipes/modals/InputModal.svelte.d.ts.map +1 -1
- 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 +216 -206
- package/dist/recipes/modals/StatusModal.svelte.d.ts +4 -2
- package/dist/recipes/modals/StatusModal.svelte.d.ts.map +1 -1
- package/dist/recipes/modals/index.js +7 -7
- package/dist/schemas/common.js +1 -1
- package/dist/schemas/event.d.ts +4 -4
- package/dist/schemas/event.js +1 -1
- package/dist/schemas/order.d.ts +2 -2
- package/dist/schemas/order.js +1 -0
- package/dist/schemas/performer.js +1 -1
- package/dist/schemas/promo.d.ts +4 -4
- package/dist/schemas/promo.js +2 -2
- package/dist/schemas/ticket.js +1 -1
- package/dist/schemas/user.js +2 -1
- package/dist/services/event.service.d.ts +11 -0
- package/dist/services/event.service.d.ts.map +1 -0
- package/dist/services/event.service.js +64 -0
- package/dist/services/event.service.spec.d.ts +2 -0
- package/dist/services/event.service.spec.d.ts.map +1 -0
- package/dist/services/event.service.spec.js +168 -0
- package/dist/services/{ShowService.d.ts → show.service.d.ts} +47 -47
- package/dist/services/show.service.d.ts.map +1 -0
- package/dist/services/show.service.js +115 -0
- package/dist/services/show.service.spec.d.ts +2 -0
- package/dist/services/show.service.spec.d.ts.map +1 -0
- package/dist/services/show.service.spec.js +242 -0
- 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/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 +399 -399
- 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 +1173 -1173
- 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/__tests__/auth.test.js +431 -431
- package/dist/utils/apiConfig.d.ts +29 -29
- package/dist/utils/apiConfig.js +117 -117
- package/dist/utils/apiConfig.spec.js +219 -219
- package/dist/utils/assets.d.ts +3 -0
- package/dist/utils/assets.d.ts.map +1 -0
- package/dist/utils/assets.js +3 -0
- package/dist/utils/auth.d.ts +46 -46
- package/dist/utils/auth.js +195 -195
- package/dist/utils/classNames.d.ts +10 -0
- package/dist/utils/classNames.d.ts.map +1 -0
- package/dist/utils/classNames.js +15 -0
- package/dist/utils/cookieHelpers.d.ts +40 -0
- package/dist/utils/cookieHelpers.d.ts.map +1 -0
- package/dist/utils/cookieHelpers.js +102 -0
- package/dist/utils/dateHelpers.d.ts +71 -0
- package/dist/utils/dateHelpers.d.ts.map +1 -0
- package/dist/utils/dateHelpers.js +253 -0
- package/dist/utils/eventFormatters.d.ts +9 -0
- package/dist/utils/eventFormatters.d.ts.map +1 -0
- package/dist/utils/eventFormatters.js +96 -0
- package/dist/utils/fetchHelpers.d.ts +17 -0
- package/dist/utils/fetchHelpers.d.ts.map +1 -0
- package/dist/utils/fetchHelpers.js +44 -0
- package/dist/utils/formatters.d.ts +62 -0
- package/dist/utils/formatters.d.ts.map +1 -1
- package/dist/utils/formatters.js +128 -0
- package/dist/utils/formatters.spec.js +128 -1
- 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/permissions.d.ts +9 -0
- package/dist/utils/permissions.d.ts.map +1 -0
- package/dist/utils/permissions.js +93 -0
- package/dist/utils/phoneUtils.d.ts +35 -0
- package/dist/utils/phoneUtils.d.ts.map +1 -0
- package/dist/utils/phoneUtils.js +104 -0
- 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/stringHelpers.d.ts +17 -0
- package/dist/utils/stringHelpers.d.ts.map +1 -0
- package/dist/utils/stringHelpers.js +38 -0
- package/dist/utils/transitions.js +4 -4
- package/dist/utils/utils/utils.d.ts +2 -73
- package/dist/utils/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils/utils.js +3 -3
- package/dist/utils/utils/utils.spec.js +698 -698
- package/dist/utils/utils.d.ts +41 -98
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +59 -693
- package/dist/utils/utils.spec.js +643 -643
- package/package.json +301 -292
- package/dist/services/EventService.d.ts +0 -5
- package/dist/services/EventService.d.ts.map +0 -1
- package/dist/services/EventService.js +0 -79
- package/dist/services/EventService.spec.d.ts +0 -2
- package/dist/services/EventService.spec.d.ts.map +0 -1
- package/dist/services/EventService.spec.js +0 -217
- package/dist/services/ShowService.d.ts.map +0 -1
- package/dist/services/ShowService.js +0 -144
- package/dist/services/ShowService.spec.d.ts +0 -2
- package/dist/services/ShowService.spec.d.ts.map +0 -1
- package/dist/services/ShowService.spec.js +0 -345
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { AsYouType, parsePhoneNumber, isValidPhoneNumber } from 'libphonenumber-js/min';
|
|
2
|
+
/**
|
|
3
|
+
* Parse an E.164 string or bare 10-digit US number into country + national number.
|
|
4
|
+
* Returns null if unparseable.
|
|
5
|
+
*/
|
|
6
|
+
export function parseStoredPhone(value) {
|
|
7
|
+
if (!value)
|
|
8
|
+
return null;
|
|
9
|
+
// Bare 10-digit US number (legacy format)
|
|
10
|
+
const digits = value.replace(/\D/g, '');
|
|
11
|
+
if (digits.length === 10 && !value.startsWith('+')) {
|
|
12
|
+
return { countryCode: 'US', nationalNumber: digits };
|
|
13
|
+
}
|
|
14
|
+
// E.164 or other formatted number
|
|
15
|
+
try {
|
|
16
|
+
const parsed = parsePhoneNumber(value);
|
|
17
|
+
if (parsed && parsed.country) {
|
|
18
|
+
return {
|
|
19
|
+
countryCode: parsed.country,
|
|
20
|
+
nationalNumber: parsed.nationalNumber
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
// Fall through
|
|
26
|
+
}
|
|
27
|
+
// +1 with 10 digits but parsePhoneNumber didn't resolve country (US/CA ambiguity)
|
|
28
|
+
if (value.startsWith('+1') && digits.length === 11) {
|
|
29
|
+
return { countryCode: 'US', nationalNumber: digits.slice(1) };
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Format digits for display using the country's national format.
|
|
35
|
+
* e.g. formatNational('US', '5551234567') → '(555) 123-4567'
|
|
36
|
+
*/
|
|
37
|
+
export function formatNational(isoCode, digits) {
|
|
38
|
+
if (!digits)
|
|
39
|
+
return '';
|
|
40
|
+
const formatter = new AsYouType(isoCode);
|
|
41
|
+
formatter.input(digits);
|
|
42
|
+
return formatter.getNumber()?.formatNational() ?? formatter.getNumber()?.number ?? digits;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Format digits as-you-type for live input formatting.
|
|
46
|
+
* e.g. formatAsYouType('US', '555123') → '(555) 123'
|
|
47
|
+
*/
|
|
48
|
+
export function formatAsYouType(isoCode, digits) {
|
|
49
|
+
if (!digits)
|
|
50
|
+
return '';
|
|
51
|
+
const formatter = new AsYouType(isoCode);
|
|
52
|
+
return formatter.input(digits);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Combine country code + national digits into E.164.
|
|
56
|
+
* e.g. toE164('US', '5551234567') → '+15551234567'
|
|
57
|
+
*/
|
|
58
|
+
export function toE164(isoCode, digits) {
|
|
59
|
+
if (!digits)
|
|
60
|
+
return '';
|
|
61
|
+
const clean = digits.replace(/\D/g, '');
|
|
62
|
+
if (!clean)
|
|
63
|
+
return '';
|
|
64
|
+
try {
|
|
65
|
+
const parsed = parsePhoneNumber(clean, isoCode);
|
|
66
|
+
if (parsed)
|
|
67
|
+
return parsed.format('E.164');
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
// Fall through
|
|
71
|
+
}
|
|
72
|
+
return '';
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Validate a complete E.164 number.
|
|
76
|
+
*/
|
|
77
|
+
export function isValidE164(value) {
|
|
78
|
+
if (!value)
|
|
79
|
+
return false;
|
|
80
|
+
if (!value.startsWith('+'))
|
|
81
|
+
return false;
|
|
82
|
+
try {
|
|
83
|
+
return isValidPhoneNumber(value);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Backward-compat: normalize bare 10-digit US numbers to E.164.
|
|
91
|
+
* Already-E.164 numbers pass through unchanged.
|
|
92
|
+
*/
|
|
93
|
+
export function normalizeIncoming(value) {
|
|
94
|
+
if (!value)
|
|
95
|
+
return '';
|
|
96
|
+
if (value.startsWith('+'))
|
|
97
|
+
return value;
|
|
98
|
+
const digits = value.replace(/\D/g, '');
|
|
99
|
+
if (digits.length === 10)
|
|
100
|
+
return `+1${digits}`;
|
|
101
|
+
if (digits.length === 11 && digits.startsWith('1'))
|
|
102
|
+
return `+${digits}`;
|
|
103
|
+
return value;
|
|
104
|
+
}
|
package/dist/utils/portal.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Svelte action that portals an element to a target container (default: document.body)
|
|
3
|
-
* This moves the element outside of any stacking contexts, solving iOS z-index issues.
|
|
4
|
-
*
|
|
5
|
-
* Usage: <div use:portal>...</div>
|
|
6
|
-
* Or: <div use:portal={document.getElementById('modal-root')}>...</div>
|
|
7
|
-
*/
|
|
8
|
-
export function portal(node: any, target?: HTMLElement): {
|
|
9
|
-
update(newTarget: any): void;
|
|
10
|
-
destroy(): void;
|
|
11
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* Svelte action that portals an element to a target container (default: document.body)
|
|
3
|
+
* This moves the element outside of any stacking contexts, solving iOS z-index issues.
|
|
4
|
+
*
|
|
5
|
+
* Usage: <div use:portal>...</div>
|
|
6
|
+
* Or: <div use:portal={document.getElementById('modal-root')}>...</div>
|
|
7
|
+
*/
|
|
8
|
+
export function portal(node: any, target?: HTMLElement): {
|
|
9
|
+
update(newTarget: any): void;
|
|
10
|
+
destroy(): void;
|
|
11
|
+
};
|
|
12
12
|
//# sourceMappingURL=portal.d.ts.map
|
package/dist/utils/portal.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Svelte action that portals an element to a target container (default: document.body)
|
|
3
|
-
* This moves the element outside of any stacking contexts, solving iOS z-index issues.
|
|
4
|
-
*
|
|
5
|
-
* Usage: <div use:portal>...</div>
|
|
6
|
-
* Or: <div use:portal={document.getElementById('modal-root')}>...</div>
|
|
7
|
-
*/
|
|
8
|
-
export function portal(node, target = document.body) {
|
|
9
|
-
// Move the node to the target
|
|
10
|
-
target.appendChild(node);
|
|
11
|
-
|
|
12
|
-
return {
|
|
13
|
-
update(newTarget) {
|
|
14
|
-
// If target changes, move to new target
|
|
15
|
-
newTarget = newTarget || document.body;
|
|
16
|
-
newTarget.appendChild(node);
|
|
17
|
-
},
|
|
18
|
-
destroy() {
|
|
19
|
-
// Clean up - remove the node when component is destroyed
|
|
20
|
-
if (node.parentNode) {
|
|
21
|
-
node.parentNode.removeChild(node);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Svelte action that portals an element to a target container (default: document.body)
|
|
3
|
+
* This moves the element outside of any stacking contexts, solving iOS z-index issues.
|
|
4
|
+
*
|
|
5
|
+
* Usage: <div use:portal>...</div>
|
|
6
|
+
* Or: <div use:portal={document.getElementById('modal-root')}>...</div>
|
|
7
|
+
*/
|
|
8
|
+
export function portal(node, target = document.body) {
|
|
9
|
+
// Move the node to the target
|
|
10
|
+
target.appendChild(node);
|
|
11
|
+
|
|
12
|
+
return {
|
|
13
|
+
update(newTarget) {
|
|
14
|
+
// If target changes, move to new target
|
|
15
|
+
newTarget = newTarget || document.body;
|
|
16
|
+
newTarget.appendChild(node);
|
|
17
|
+
},
|
|
18
|
+
destroy() {
|
|
19
|
+
// Clean up - remove the node when component is destroyed
|
|
20
|
+
if (node.parentNode) {
|
|
21
|
+
node.parentNode.removeChild(node);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
@@ -1,143 +1,143 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
|
-
import { portal } from './portal';
|
|
3
|
-
|
|
4
|
-
describe('portal', () => {
|
|
5
|
-
let node;
|
|
6
|
-
let target;
|
|
7
|
-
|
|
8
|
-
beforeEach(() => {
|
|
9
|
-
// Create mock nodes
|
|
10
|
-
node = document.createElement('div');
|
|
11
|
-
node.textContent = 'Portal Content';
|
|
12
|
-
target = document.createElement('div');
|
|
13
|
-
target.id = 'portal-target';
|
|
14
|
-
document.body.appendChild(target);
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
afterEach(() => {
|
|
18
|
-
// Clean up
|
|
19
|
-
if (target.parentNode) {
|
|
20
|
-
target.parentNode.removeChild(target);
|
|
21
|
-
}
|
|
22
|
-
if (node.parentNode) {
|
|
23
|
-
node.parentNode.removeChild(node);
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
describe('initial portal', () => {
|
|
28
|
-
it('appends node to document.body by default', () => {
|
|
29
|
-
portal(node);
|
|
30
|
-
expect(node.parentNode).toBe(document.body);
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
it('appends node to specified target', () => {
|
|
34
|
-
portal(node, target);
|
|
35
|
-
expect(node.parentNode).toBe(target);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it('returns an object with update and destroy methods', () => {
|
|
39
|
-
const result = portal(node);
|
|
40
|
-
expect(result).toHaveProperty('update');
|
|
41
|
-
expect(result).toHaveProperty('destroy');
|
|
42
|
-
expect(typeof result.update).toBe('function');
|
|
43
|
-
expect(typeof result.destroy).toBe('function');
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
describe('update method', () => {
|
|
48
|
-
it('moves node to new target', () => {
|
|
49
|
-
const newTarget = document.createElement('div');
|
|
50
|
-
document.body.appendChild(newTarget);
|
|
51
|
-
|
|
52
|
-
const { update } = portal(node, target);
|
|
53
|
-
expect(node.parentNode).toBe(target);
|
|
54
|
-
|
|
55
|
-
update(newTarget);
|
|
56
|
-
expect(node.parentNode).toBe(newTarget);
|
|
57
|
-
|
|
58
|
-
// Clean up
|
|
59
|
-
newTarget.parentNode.removeChild(newTarget);
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
it('moves node to document.body when new target is null', () => {
|
|
63
|
-
const { update } = portal(node, target);
|
|
64
|
-
expect(node.parentNode).toBe(target);
|
|
65
|
-
|
|
66
|
-
update(null);
|
|
67
|
-
expect(node.parentNode).toBe(document.body);
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
it('moves node to document.body when new target is undefined', () => {
|
|
71
|
-
const { update } = portal(node, target);
|
|
72
|
-
expect(node.parentNode).toBe(target);
|
|
73
|
-
|
|
74
|
-
update(undefined);
|
|
75
|
-
expect(node.parentNode).toBe(document.body);
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
describe('destroy method', () => {
|
|
80
|
-
it('removes node from parent', () => {
|
|
81
|
-
const { destroy } = portal(node, target);
|
|
82
|
-
expect(node.parentNode).toBe(target);
|
|
83
|
-
|
|
84
|
-
destroy();
|
|
85
|
-
expect(node.parentNode).toBe(null);
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
it('handles node already removed', () => {
|
|
89
|
-
const { destroy } = portal(node, target);
|
|
90
|
-
|
|
91
|
-
// Manually remove node first
|
|
92
|
-
target.removeChild(node);
|
|
93
|
-
|
|
94
|
-
// Should not throw
|
|
95
|
-
expect(() => destroy()).not.toThrow();
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
it('removes node from document.body', () => {
|
|
99
|
-
const { destroy } = portal(node);
|
|
100
|
-
expect(node.parentNode).toBe(document.body);
|
|
101
|
-
|
|
102
|
-
destroy();
|
|
103
|
-
expect(node.parentNode).toBe(null);
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
describe('real-world usage scenarios', () => {
|
|
108
|
-
it('can portal modal content outside stacking context', () => {
|
|
109
|
-
// Create a stacking context
|
|
110
|
-
const stackingContext = document.createElement('div');
|
|
111
|
-
stackingContext.style.position = 'relative';
|
|
112
|
-
stackingContext.style.zIndex = '1';
|
|
113
|
-
document.body.appendChild(stackingContext);
|
|
114
|
-
|
|
115
|
-
// Create modal inside stacking context
|
|
116
|
-
const modal = document.createElement('div');
|
|
117
|
-
modal.className = 'modal';
|
|
118
|
-
stackingContext.appendChild(modal);
|
|
119
|
-
|
|
120
|
-
// Portal should move it to body
|
|
121
|
-
portal(modal);
|
|
122
|
-
expect(modal.parentNode).toBe(document.body);
|
|
123
|
-
|
|
124
|
-
// Clean up
|
|
125
|
-
stackingContext.parentNode.removeChild(stackingContext);
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
it('works with multiple portals', () => {
|
|
129
|
-
const node1 = document.createElement('div');
|
|
130
|
-
const node2 = document.createElement('div');
|
|
131
|
-
|
|
132
|
-
portal(node1);
|
|
133
|
-
portal(node2);
|
|
134
|
-
|
|
135
|
-
expect(node1.parentNode).toBe(document.body);
|
|
136
|
-
expect(node2.parentNode).toBe(document.body);
|
|
137
|
-
|
|
138
|
-
// Clean up
|
|
139
|
-
document.body.removeChild(node1);
|
|
140
|
-
document.body.removeChild(node2);
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
});
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { portal } from './portal';
|
|
3
|
+
|
|
4
|
+
describe('portal', () => {
|
|
5
|
+
let node;
|
|
6
|
+
let target;
|
|
7
|
+
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
// Create mock nodes
|
|
10
|
+
node = document.createElement('div');
|
|
11
|
+
node.textContent = 'Portal Content';
|
|
12
|
+
target = document.createElement('div');
|
|
13
|
+
target.id = 'portal-target';
|
|
14
|
+
document.body.appendChild(target);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
// Clean up
|
|
19
|
+
if (target.parentNode) {
|
|
20
|
+
target.parentNode.removeChild(target);
|
|
21
|
+
}
|
|
22
|
+
if (node.parentNode) {
|
|
23
|
+
node.parentNode.removeChild(node);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
describe('initial portal', () => {
|
|
28
|
+
it('appends node to document.body by default', () => {
|
|
29
|
+
portal(node);
|
|
30
|
+
expect(node.parentNode).toBe(document.body);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('appends node to specified target', () => {
|
|
34
|
+
portal(node, target);
|
|
35
|
+
expect(node.parentNode).toBe(target);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('returns an object with update and destroy methods', () => {
|
|
39
|
+
const result = portal(node);
|
|
40
|
+
expect(result).toHaveProperty('update');
|
|
41
|
+
expect(result).toHaveProperty('destroy');
|
|
42
|
+
expect(typeof result.update).toBe('function');
|
|
43
|
+
expect(typeof result.destroy).toBe('function');
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
describe('update method', () => {
|
|
48
|
+
it('moves node to new target', () => {
|
|
49
|
+
const newTarget = document.createElement('div');
|
|
50
|
+
document.body.appendChild(newTarget);
|
|
51
|
+
|
|
52
|
+
const { update } = portal(node, target);
|
|
53
|
+
expect(node.parentNode).toBe(target);
|
|
54
|
+
|
|
55
|
+
update(newTarget);
|
|
56
|
+
expect(node.parentNode).toBe(newTarget);
|
|
57
|
+
|
|
58
|
+
// Clean up
|
|
59
|
+
newTarget.parentNode.removeChild(newTarget);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it('moves node to document.body when new target is null', () => {
|
|
63
|
+
const { update } = portal(node, target);
|
|
64
|
+
expect(node.parentNode).toBe(target);
|
|
65
|
+
|
|
66
|
+
update(null);
|
|
67
|
+
expect(node.parentNode).toBe(document.body);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
it('moves node to document.body when new target is undefined', () => {
|
|
71
|
+
const { update } = portal(node, target);
|
|
72
|
+
expect(node.parentNode).toBe(target);
|
|
73
|
+
|
|
74
|
+
update(undefined);
|
|
75
|
+
expect(node.parentNode).toBe(document.body);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
describe('destroy method', () => {
|
|
80
|
+
it('removes node from parent', () => {
|
|
81
|
+
const { destroy } = portal(node, target);
|
|
82
|
+
expect(node.parentNode).toBe(target);
|
|
83
|
+
|
|
84
|
+
destroy();
|
|
85
|
+
expect(node.parentNode).toBe(null);
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it('handles node already removed', () => {
|
|
89
|
+
const { destroy } = portal(node, target);
|
|
90
|
+
|
|
91
|
+
// Manually remove node first
|
|
92
|
+
target.removeChild(node);
|
|
93
|
+
|
|
94
|
+
// Should not throw
|
|
95
|
+
expect(() => destroy()).not.toThrow();
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
it('removes node from document.body', () => {
|
|
99
|
+
const { destroy } = portal(node);
|
|
100
|
+
expect(node.parentNode).toBe(document.body);
|
|
101
|
+
|
|
102
|
+
destroy();
|
|
103
|
+
expect(node.parentNode).toBe(null);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
describe('real-world usage scenarios', () => {
|
|
108
|
+
it('can portal modal content outside stacking context', () => {
|
|
109
|
+
// Create a stacking context
|
|
110
|
+
const stackingContext = document.createElement('div');
|
|
111
|
+
stackingContext.style.position = 'relative';
|
|
112
|
+
stackingContext.style.zIndex = '1';
|
|
113
|
+
document.body.appendChild(stackingContext);
|
|
114
|
+
|
|
115
|
+
// Create modal inside stacking context
|
|
116
|
+
const modal = document.createElement('div');
|
|
117
|
+
modal.className = 'modal';
|
|
118
|
+
stackingContext.appendChild(modal);
|
|
119
|
+
|
|
120
|
+
// Portal should move it to body
|
|
121
|
+
portal(modal);
|
|
122
|
+
expect(modal.parentNode).toBe(document.body);
|
|
123
|
+
|
|
124
|
+
// Clean up
|
|
125
|
+
stackingContext.parentNode.removeChild(stackingContext);
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
it('works with multiple portals', () => {
|
|
129
|
+
const node1 = document.createElement('div');
|
|
130
|
+
const node2 = document.createElement('div');
|
|
131
|
+
|
|
132
|
+
portal(node1);
|
|
133
|
+
portal(node2);
|
|
134
|
+
|
|
135
|
+
expect(node1.parentNode).toBe(document.body);
|
|
136
|
+
expect(node2.parentNode).toBe(document.body);
|
|
137
|
+
|
|
138
|
+
// Clean up
|
|
139
|
+
document.body.removeChild(node1);
|
|
140
|
+
document.body.removeChild(node2);
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Truncate a string to a maximum length, appending "..." if truncated.
|
|
3
|
+
*/
|
|
4
|
+
export declare function truncateTitle(title: string, maxLength: number): string;
|
|
5
|
+
/**
|
|
6
|
+
* Capitalize the first letter of a word and lowercase the rest.
|
|
7
|
+
*/
|
|
8
|
+
export declare function capitalize(word: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Parse a location string into street address and city/state/zip components.
|
|
11
|
+
* @param locationString - Full location string (e.g., "3400 Warner Blvd, Burbank, CA 91505")
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseLocation(locationString: string | null | undefined): {
|
|
14
|
+
street: string;
|
|
15
|
+
cityStateZip: string;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=stringHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringHelpers.d.ts","sourceRoot":"","sources":["../../src/lib/utils/stringHelpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKtE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAiBjH"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Truncate a string to a maximum length, appending "..." if truncated.
|
|
3
|
+
*/
|
|
4
|
+
export function truncateTitle(title, maxLength) {
|
|
5
|
+
if (title.length > maxLength) {
|
|
6
|
+
return title.slice(0, maxLength) + "...";
|
|
7
|
+
}
|
|
8
|
+
return title;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Capitalize the first letter of a word and lowercase the rest.
|
|
12
|
+
*/
|
|
13
|
+
export function capitalize(word) {
|
|
14
|
+
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Parse a location string into street address and city/state/zip components.
|
|
18
|
+
* @param locationString - Full location string (e.g., "3400 Warner Blvd, Burbank, CA 91505")
|
|
19
|
+
*/
|
|
20
|
+
export function parseLocation(locationString) {
|
|
21
|
+
if (!locationString)
|
|
22
|
+
return { street: '', cityStateZip: '' };
|
|
23
|
+
const parts = locationString.split(',').map(part => part.trim());
|
|
24
|
+
if (parts.length >= 3) {
|
|
25
|
+
// Format: "3400 Warner Blvd, Burbank, CA 91505"
|
|
26
|
+
const street = parts[0];
|
|
27
|
+
const cityStateZip = parts.slice(1).join(', ');
|
|
28
|
+
return { street, cityStateZip };
|
|
29
|
+
}
|
|
30
|
+
else if (parts.length === 2) {
|
|
31
|
+
// Format: "Street, City State Zip"
|
|
32
|
+
return { street: parts[0], cityStateZip: parts[1] };
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
// Single part or unexpected format
|
|
36
|
+
return { street: locationString, cityStateZip: '' };
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -40,10 +40,10 @@ export function bloom(_node, { duration = 200, delay = 0, origin = 'top right' }
|
|
|
40
40
|
easing: cubicOut,
|
|
41
41
|
css: (t) => {
|
|
42
42
|
const scale = 0.95 + 0.05 * t;
|
|
43
|
-
return `
|
|
44
|
-
transform: scale(${scale});
|
|
45
|
-
transform-origin: ${origin};
|
|
46
|
-
opacity: ${t};
|
|
43
|
+
return `
|
|
44
|
+
transform: scale(${scale});
|
|
45
|
+
transform-origin: ${origin};
|
|
46
|
+
opacity: ${t};
|
|
47
47
|
`;
|
|
48
48
|
},
|
|
49
49
|
};
|
|
@@ -1,73 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export function classNames(...classes: any[]): string;
|
|
4
|
-
export function truncateTitle(title: any, maxLength: any): any;
|
|
5
|
-
export function convertToCustomDateFormat(isoString: any): Date;
|
|
6
|
-
export function convertToCustomDateTimeFormat(isoDateString: any): Date;
|
|
7
|
-
export function formatHour(dateString: any): string;
|
|
8
|
-
export function formattedDate(date: any): string;
|
|
9
|
-
export function formattedFullDate(date: any): string;
|
|
10
|
-
export function formatTimeRange(startDate: any, endDate: any): string;
|
|
11
|
-
export function getDateRange(startDate: any, endDate: any): string[];
|
|
12
|
-
export function capitalize(word: any): any;
|
|
13
|
-
export function timeAgo(date: any): string;
|
|
14
|
-
export function formatDateTime(dateTimeString: any, timeZone?: string): string;
|
|
15
|
-
export function formatTimeline(startDateTime: any): string;
|
|
16
|
-
export function getDay(dateString: any): string;
|
|
17
|
-
export function getMonth(dateString: any): string;
|
|
18
|
-
export function getDateOfMonth(dateString: any): number;
|
|
19
|
-
export function getRoleFromRoleOnStage(roleOnStage: any): any;
|
|
20
|
-
export function formatEvent(event: any): {
|
|
21
|
-
eventId: any;
|
|
22
|
-
venueId: any;
|
|
23
|
-
title: any;
|
|
24
|
-
role: any;
|
|
25
|
-
startDateTime: any;
|
|
26
|
-
acceptedState: any;
|
|
27
|
-
doorsOpenTime: any;
|
|
28
|
-
spotDuration: string;
|
|
29
|
-
venueName: any;
|
|
30
|
-
location: any;
|
|
31
|
-
id: any;
|
|
32
|
-
image: any;
|
|
33
|
-
details: {
|
|
34
|
-
venue: any;
|
|
35
|
-
stageName: any;
|
|
36
|
-
address: any;
|
|
37
|
-
setLength: string;
|
|
38
|
-
eventDetails: any;
|
|
39
|
-
};
|
|
40
|
-
lastUpdated: any;
|
|
41
|
-
};
|
|
42
|
-
export function formatRosterEventPerformerInvite(event: any): {
|
|
43
|
-
venueId: any;
|
|
44
|
-
role: any;
|
|
45
|
-
acceptedState: any;
|
|
46
|
-
name: any;
|
|
47
|
-
shortVenue: string;
|
|
48
|
-
location: string;
|
|
49
|
-
id: any;
|
|
50
|
-
lastUpdated: any;
|
|
51
|
-
image: any;
|
|
52
|
-
hasAvailability: boolean;
|
|
53
|
-
invitationAccepted: boolean;
|
|
54
|
-
};
|
|
55
|
-
export function formatVenue(event: any): {
|
|
56
|
-
venueId: any;
|
|
57
|
-
name: any;
|
|
58
|
-
image: any;
|
|
59
|
-
location: string;
|
|
60
|
-
start: any;
|
|
61
|
-
end: any;
|
|
62
|
-
doorOpen: any;
|
|
63
|
-
email: any;
|
|
64
|
-
phone: any;
|
|
65
|
-
description: any;
|
|
66
|
-
instagram: any;
|
|
67
|
-
facebook: any;
|
|
68
|
-
twitter: any;
|
|
69
|
-
lastUpdated: any;
|
|
70
|
-
timeRange: string;
|
|
71
|
-
dateRange: string[];
|
|
72
|
-
};
|
|
73
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
1
|
+
// Re-export everything from the consolidated barrel
|
|
2
|
+
export * from '../utils';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["utils.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/utils/utils.js"],"names":[],"mappings":""}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
// Re-export everything from the consolidated
|
|
2
|
-
// This file is kept for backward compatibility
|
|
3
|
-
export * from '../utils.js';
|
|
1
|
+
// Re-export everything from the consolidated barrel
|
|
2
|
+
// This file is kept for backward compatibility with the nested utils/utils/utils path
|
|
3
|
+
export * from '../utils.js';
|