@getmicdrop/svelte-components 5.4.1 → 5.5.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/PublicCard/PublicCard.svelte +12 -11
- package/dist/calendar/PublicCard/PublicCard.svelte.d.ts.map +1 -1
- package/dist/calendar/index.d.ts +9 -0
- package/dist/calendar/index.d.ts.map +1 -0
- package/dist/calendar/index.js +15 -0
- package/dist/components/Layout/Grid.spec.d.ts +2 -0
- package/dist/components/Layout/Grid.spec.d.ts.map +1 -0
- package/dist/components/Layout/Grid.spec.js +230 -0
- package/dist/components/Layout/Grid.svelte +97 -105
- package/dist/components/Layout/Grid.svelte.d.ts +16 -6
- package/dist/components/Layout/Grid.svelte.d.ts.map +1 -1
- package/dist/components/Layout/Stack.spec.d.ts +2 -0
- package/dist/components/Layout/Stack.spec.d.ts.map +1 -0
- package/dist/components/Layout/Stack.spec.js +257 -0
- package/dist/components/Layout/Stack.svelte +47 -85
- package/dist/components/Layout/Stack.svelte.d.ts +4 -6
- package/dist/components/Layout/Stack.svelte.d.ts.map +1 -1
- package/dist/components/Layout/__tests__/Grid.test.d.ts +2 -0
- package/dist/components/Layout/__tests__/Grid.test.d.ts.map +1 -0
- package/dist/components/Layout/__tests__/Grid.test.js +246 -0
- package/dist/components/Layout/__tests__/Stack.test.d.ts +2 -0
- package/dist/components/Layout/__tests__/Stack.test.d.ts.map +1 -0
- package/dist/components/Layout/__tests__/Stack.test.js +267 -0
- package/dist/constants/formOptions.spec.d.ts.map +1 -1
- package/dist/constants/formOptions.spec.js +69 -82
- package/dist/datetime/__tests__/format.test.js +81 -1
- package/dist/datetime/format.d.ts +74 -0
- package/dist/datetime/format.d.ts.map +1 -1
- package/dist/datetime/format.js +104 -0
- package/dist/datetime/index.d.ts +1 -1
- package/dist/datetime/index.d.ts.map +1 -1
- package/dist/datetime/index.js +1 -1
- package/dist/datetime/timezone.d.ts.map +1 -1
- package/dist/datetime/timezone.js +2 -0
- package/dist/datetime/types.d.ts +4 -0
- package/dist/datetime/types.d.ts.map +1 -1
- package/dist/forms/createFormStore.svelte.d.ts.map +1 -1
- package/dist/forms/createFormStore.svelte.js +3 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -0
- package/dist/index.spec.d.ts +2 -0
- package/dist/index.spec.d.ts.map +1 -0
- package/dist/index.spec.js +370 -0
- package/dist/patterns/data/DataTable.svelte +5 -5
- package/dist/patterns/data/index.d.ts +4 -0
- package/dist/patterns/data/index.d.ts.map +1 -0
- package/dist/patterns/data/index.js +4 -0
- package/dist/patterns/forms/FormValidationSummary.spec.d.ts.map +1 -1
- package/dist/patterns/forms/FormValidationSummary.spec.js +181 -203
- package/dist/patterns/forms/FormValidationSummary.stories.svelte +14 -14
- package/dist/patterns/forms/FormValidationSummary.svelte +43 -36
- package/dist/patterns/forms/FormValidationSummary.svelte.d.ts +8 -16
- package/dist/patterns/forms/FormValidationSummary.svelte.d.ts.map +1 -1
- package/dist/patterns/forms/index.d.ts +5 -0
- package/dist/patterns/forms/index.d.ts.map +1 -0
- package/dist/patterns/forms/index.js +5 -0
- package/dist/patterns/index.d.ts +6 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/index.js +18 -0
- package/dist/patterns/layout/Stack.svelte +61 -45
- package/dist/patterns/layout/Stack.svelte.d.ts +35 -21
- package/dist/patterns/layout/Stack.svelte.d.ts.map +1 -1
- package/dist/patterns/layout/index.d.ts +5 -0
- package/dist/patterns/layout/index.d.ts.map +1 -0
- package/dist/patterns/layout/index.js +6 -0
- package/dist/patterns/navigation/BottomNav.spec.d.ts.map +1 -1
- package/dist/patterns/navigation/BottomNav.spec.js +104 -130
- package/dist/patterns/navigation/BottomNav.svelte +44 -34
- package/dist/patterns/navigation/BottomNav.svelte.d.ts +10 -10
- package/dist/patterns/navigation/BottomNav.svelte.d.ts.map +1 -1
- package/dist/patterns/navigation/Header.spec.d.ts.map +1 -1
- package/dist/patterns/navigation/Header.spec.js +161 -203
- package/dist/patterns/navigation/Header.svelte +62 -47
- package/dist/patterns/navigation/Header.svelte.d.ts +12 -19
- package/dist/patterns/navigation/Header.svelte.d.ts.map +1 -1
- package/dist/patterns/navigation/index.d.ts +3 -0
- package/dist/patterns/navigation/index.d.ts.map +1 -0
- package/dist/patterns/navigation/index.js +3 -0
- package/dist/patterns/page/PageHeader.svelte +31 -18
- package/dist/patterns/page/PageHeader.svelte.d.ts +12 -18
- package/dist/patterns/page/PageHeader.svelte.d.ts.map +1 -1
- package/dist/patterns/page/PageLoader.svelte +29 -17
- package/dist/patterns/page/PageLoader.svelte.d.ts +9 -20
- package/dist/patterns/page/PageLoader.svelte.d.ts.map +1 -1
- package/dist/patterns/page/SectionHeader.svelte +22 -12
- package/dist/patterns/page/SectionHeader.svelte.d.ts +8 -17
- package/dist/patterns/page/SectionHeader.svelte.d.ts.map +1 -1
- package/dist/patterns/page/index.d.ts +5 -0
- package/dist/patterns/page/index.d.ts.map +1 -0
- package/dist/patterns/page/index.js +5 -0
- package/dist/primitives/Accordion/Accordion.svelte +20 -19
- package/dist/primitives/Accordion/Accordion.svelte.d.ts.map +1 -1
- package/dist/primitives/Alert/Alert.svelte +37 -38
- package/dist/primitives/Alert/Alert.svelte.d.ts +2 -1
- package/dist/primitives/Alert/Alert.svelte.d.ts.map +1 -1
- package/dist/primitives/Badges/Badge.svelte +20 -63
- package/dist/primitives/Badges/Badge.svelte.d.ts +4 -2
- package/dist/primitives/Badges/Badge.svelte.d.ts.map +1 -1
- package/dist/primitives/Button/Button.svelte +39 -70
- package/dist/primitives/Button/Button.svelte.d.ts +10 -26
- package/dist/primitives/Button/Button.svelte.d.ts.map +1 -1
- package/dist/primitives/Drawer/Drawer.stories.svelte +20 -20
- package/dist/primitives/Drawer/Drawer.svelte +116 -94
- package/dist/primitives/Drawer/Drawer.svelte.d.ts +12 -31
- package/dist/primitives/Drawer/Drawer.svelte.d.ts.map +1 -1
- package/dist/primitives/Dropdown/Dropdown.svelte +146 -134
- package/dist/primitives/Dropdown/Dropdown.svelte.d.ts +9 -18
- package/dist/primitives/Dropdown/Dropdown.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/ArrowLeft.svelte +13 -12
- package/dist/primitives/Icons/ArrowLeft.svelte.d.ts +2 -0
- package/dist/primitives/Icons/ArrowLeft.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/ArrowRight.svelte +13 -12
- package/dist/primitives/Icons/ArrowRight.svelte.d.ts +2 -0
- package/dist/primitives/Icons/ArrowRight.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Availability.svelte +13 -12
- package/dist/primitives/Icons/Availability.svelte.d.ts +2 -0
- package/dist/primitives/Icons/Availability.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Back.svelte +13 -12
- package/dist/primitives/Icons/Back.svelte.d.ts +2 -0
- package/dist/primitives/Icons/Back.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/CheckCircle.svelte +13 -12
- package/dist/primitives/Icons/CheckCircle.svelte.d.ts +2 -0
- package/dist/primitives/Icons/CheckCircle.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/CheckCircleOutline.svelte +13 -12
- package/dist/primitives/Icons/CheckCircleOutline.svelte.d.ts +2 -0
- package/dist/primitives/Icons/CheckCircleOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/CheckCircleSolid.svelte +12 -10
- package/dist/primitives/Icons/CheckCircleSolid.svelte.d.ts +4 -0
- package/dist/primitives/Icons/CheckCircleSolid.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/CheckOutline.svelte +15 -13
- package/dist/primitives/Icons/CheckOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/CheckOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/ChevronDownOutline.svelte +14 -12
- package/dist/primitives/Icons/ChevronDownOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/ChevronDownOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/ChevronLeft.svelte +13 -12
- package/dist/primitives/Icons/ChevronLeft.svelte.d.ts +2 -0
- package/dist/primitives/Icons/ChevronLeft.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/ChevronLeftOutline.svelte +14 -12
- package/dist/primitives/Icons/ChevronLeftOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/ChevronLeftOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/ChevronRight.svelte +13 -12
- package/dist/primitives/Icons/ChevronRight.svelte.d.ts +2 -0
- package/dist/primitives/Icons/ChevronRight.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/ChevronRightOutline.svelte +14 -12
- package/dist/primitives/Icons/ChevronRightOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/ChevronRightOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/ChevronUpOutline.svelte +14 -12
- package/dist/primitives/Icons/ChevronUpOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/ChevronUpOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/CloseCircleOutline.svelte +14 -12
- package/dist/primitives/Icons/CloseCircleOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/CloseCircleOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/CloseOutline.svelte +14 -12
- package/dist/primitives/Icons/CloseOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/CloseOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Copy.svelte +13 -12
- package/dist/primitives/Icons/Copy.svelte.d.ts +2 -0
- package/dist/primitives/Icons/Copy.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Cross.svelte +13 -12
- package/dist/primitives/Icons/Cross.svelte.d.ts +2 -0
- package/dist/primitives/Icons/Cross.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/DotsHorizontalOutline.svelte +12 -10
- package/dist/primitives/Icons/DotsHorizontalOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/DotsHorizontalOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/DownArrow.svelte +13 -12
- package/dist/primitives/Icons/DownArrow.svelte.d.ts +2 -0
- package/dist/primitives/Icons/DownArrow.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/ErrorCircle.svelte +13 -12
- package/dist/primitives/Icons/ErrorCircle.svelte.d.ts +2 -0
- package/dist/primitives/Icons/ErrorCircle.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/ExclamationCircleOutline.svelte +14 -12
- package/dist/primitives/Icons/ExclamationCircleOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/ExclamationCircleOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/ExclamationTriangleOutline.svelte +14 -12
- package/dist/primitives/Icons/ExclamationTriangleOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/ExclamationTriangleOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/EyeOutline.svelte +14 -12
- package/dist/primitives/Icons/EyeOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/EyeOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/EyeSlashOutline.svelte +14 -12
- package/dist/primitives/Icons/EyeSlashOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/EyeSlashOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/FacebookIcon.svelte +13 -11
- package/dist/primitives/Icons/FacebookIcon.svelte.d.ts +2 -0
- package/dist/primitives/Icons/FacebookIcon.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/FileCopyOutline.svelte +14 -12
- package/dist/primitives/Icons/FileCopyOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/FileCopyOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Home.svelte +13 -12
- package/dist/primitives/Icons/Home.svelte.d.ts +2 -0
- package/dist/primitives/Icons/Home.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/HomeSolid.svelte +12 -10
- package/dist/primitives/Icons/HomeSolid.svelte.d.ts +4 -0
- package/dist/primitives/Icons/HomeSolid.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Icon.spec.js +6 -6
- package/dist/primitives/Icons/Icon.svelte +27 -11
- package/dist/primitives/Icons/Icon.svelte.d.ts +5 -3
- package/dist/primitives/Icons/Icon.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Icons.spec.d.ts +8 -0
- package/dist/primitives/Icons/Icons.spec.d.ts.map +1 -0
- package/dist/primitives/Icons/Icons.spec.js +291 -0
- package/dist/primitives/Icons/ImageOutline.svelte +21 -19
- package/dist/primitives/Icons/ImageOutline.svelte.d.ts +6 -2
- package/dist/primitives/Icons/ImageOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Info.svelte +13 -12
- package/dist/primitives/Icons/Info.svelte.d.ts +2 -0
- package/dist/primitives/Icons/Info.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/InfoCircleOutline.svelte +14 -12
- package/dist/primitives/Icons/InfoCircleOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/InfoCircleOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/InstagramIcon.svelte +17 -15
- package/dist/primitives/Icons/InstagramIcon.svelte.d.ts +2 -0
- package/dist/primitives/Icons/InstagramIcon.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/LogoInstagram.svelte +13 -13
- package/dist/primitives/Icons/LogoInstagram.svelte.d.ts +4 -2
- package/dist/primitives/Icons/LogoInstagram.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Message.svelte +13 -12
- package/dist/primitives/Icons/Message.svelte.d.ts +2 -0
- package/dist/primitives/Icons/Message.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/MinusOutline.svelte +14 -12
- package/dist/primitives/Icons/MinusOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/MinusOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/MoonIcon.svelte +13 -11
- package/dist/primitives/Icons/MoonIcon.svelte.d.ts +2 -0
- package/dist/primitives/Icons/MoonIcon.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/More.svelte +13 -12
- package/dist/primitives/Icons/More.svelte.d.ts +2 -0
- package/dist/primitives/Icons/More.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/MoreHori.spec.js +6 -6
- package/dist/primitives/Icons/MoreHori.svelte +13 -12
- package/dist/primitives/Icons/MoreHori.svelte.d.ts +2 -0
- package/dist/primitives/Icons/MoreHori.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Notification.svelte +13 -12
- package/dist/primitives/Icons/Notification.svelte.d.ts +2 -0
- package/dist/primitives/Icons/Notification.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Payment.svelte +13 -12
- package/dist/primitives/Icons/Payment.svelte.d.ts +2 -0
- package/dist/primitives/Icons/Payment.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/PlusOutline.svelte +14 -12
- package/dist/primitives/Icons/PlusOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/PlusOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Profile.svelte +13 -12
- package/dist/primitives/Icons/Profile.svelte.d.ts +2 -0
- package/dist/primitives/Icons/Profile.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Reload.svelte +13 -12
- package/dist/primitives/Icons/Reload.svelte.d.ts +2 -0
- package/dist/primitives/Icons/Reload.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/SearchOutline.svelte +14 -12
- package/dist/primitives/Icons/SearchOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/SearchOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/ShareOutline.svelte +14 -12
- package/dist/primitives/Icons/ShareOutline.svelte.d.ts +4 -0
- package/dist/primitives/Icons/ShareOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Shows.svelte +13 -12
- package/dist/primitives/Icons/Shows.svelte.d.ts +2 -0
- package/dist/primitives/Icons/Shows.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Signout.svelte +13 -12
- package/dist/primitives/Icons/Signout.svelte.d.ts +2 -0
- package/dist/primitives/Icons/Signout.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/SunIcon.svelte +13 -11
- package/dist/primitives/Icons/SunIcon.svelte.d.ts +2 -0
- package/dist/primitives/Icons/SunIcon.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/TiktokIcon.svelte +13 -11
- package/dist/primitives/Icons/TiktokIcon.svelte.d.ts +2 -0
- package/dist/primitives/Icons/TiktokIcon.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/TrashBinOutline.svelte +21 -19
- package/dist/primitives/Icons/TrashBinOutline.svelte.d.ts +6 -2
- package/dist/primitives/Icons/TrashBinOutline.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/TwitterIcon.svelte +13 -11
- package/dist/primitives/Icons/TwitterIcon.svelte.d.ts +2 -0
- package/dist/primitives/Icons/TwitterIcon.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/WarningIcon.spec.js +12 -12
- package/dist/primitives/Icons/WarningIcon.svelte +19 -19
- package/dist/primitives/Icons/WarningIcon.svelte.d.ts +6 -2
- package/dist/primitives/Icons/WarningIcon.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/iconTestUtils.d.ts +162 -0
- package/dist/primitives/Icons/iconTestUtils.d.ts.map +1 -0
- package/dist/primitives/Icons/iconTestUtils.js +160 -0
- package/dist/primitives/Icons/index.d.ts +56 -54
- package/dist/primitives/Icons/index.d.ts.map +1 -1
- package/dist/primitives/Icons/index.js +59 -61
- package/dist/primitives/Icons/types.d.ts +31 -0
- package/dist/primitives/Icons/types.d.ts.map +1 -0
- package/dist/primitives/Icons/types.js +8 -0
- package/dist/primitives/Input/Input.svelte +40 -53
- package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
- package/dist/primitives/Input/Select.svelte +121 -104
- package/dist/primitives/Input/Select.svelte.d.ts +16 -24
- package/dist/primitives/Input/Select.svelte.d.ts.map +1 -1
- package/dist/primitives/Input/Textarea.svelte +70 -44
- package/dist/primitives/Input/Textarea.svelte.d.ts +20 -39
- package/dist/primitives/Input/Textarea.svelte.d.ts.map +1 -1
- package/dist/primitives/NumberInput/NumberInput.svelte +106 -0
- package/dist/primitives/NumberInput/NumberInput.svelte.d.ts +23 -0
- package/dist/primitives/NumberInput/NumberInput.svelte.d.ts.map +1 -0
- package/dist/primitives/NumberInput/index.d.ts +2 -0
- package/dist/primitives/NumberInput/index.d.ts.map +1 -0
- package/dist/primitives/NumberInput/index.js +1 -0
- package/dist/primitives/Skeleton/Skeleton.svelte +21 -27
- package/dist/primitives/Skeleton/Skeleton.svelte.d.ts +2 -1
- package/dist/primitives/Skeleton/Skeleton.svelte.d.ts.map +1 -1
- package/dist/primitives/Spinner/Spinner.svelte +24 -37
- package/dist/primitives/Spinner/Spinner.svelte.d.ts +4 -2
- package/dist/primitives/Spinner/Spinner.svelte.d.ts.map +1 -1
- package/dist/primitives/Tabs/TabItem.svelte +3 -2
- package/dist/primitives/Tabs/TabItem.svelte.d.ts.map +1 -1
- package/dist/primitives/Tabs/Tabs.svelte +6 -5
- package/dist/primitives/Tabs/Tabs.svelte.d.ts.map +1 -1
- package/dist/primitives/ValidationError.stories.svelte +43 -42
- package/dist/primitives/ValidationError.svelte +1 -1
- package/dist/primitives/index.d.ts +31 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/index.js +81 -0
- package/dist/recipes/ImageUploader/ImageUploader.svelte +155 -176
- package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts.map +1 -1
- package/dist/recipes/SuperLogin/SuperLogin.svelte +18 -17
- package/dist/recipes/SuperLogin/SuperLogin.svelte.d.ts.map +1 -1
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte +65 -46
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts +7 -1
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts.map +1 -1
- package/dist/recipes/feedback/ErrorDisplay.stories.svelte +12 -11
- package/dist/recipes/feedback/ErrorDisplay.svelte +66 -37
- package/dist/recipes/feedback/ErrorDisplay.svelte.d.ts +7 -0
- package/dist/recipes/feedback/ErrorDisplay.svelte.d.ts.map +1 -1
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +22 -13
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte.d.ts +2 -2
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte.d.ts.map +1 -1
- package/dist/recipes/feedback/index.d.ts +4 -0
- package/dist/recipes/feedback/index.d.ts.map +1 -0
- package/dist/recipes/feedback/index.js +4 -0
- package/dist/recipes/fields/SelectField.svelte +2 -2
- package/dist/recipes/fields/SelectField.svelte.d.ts +4 -1
- package/dist/recipes/fields/SelectField.svelte.d.ts.map +1 -1
- package/dist/recipes/fields/TextareaField.svelte +4 -4
- package/dist/recipes/fields/TextareaField.svelte.d.ts +6 -2
- package/dist/recipes/fields/TextareaField.svelte.d.ts.map +1 -1
- package/dist/recipes/index.d.ts +8 -0
- package/dist/recipes/index.d.ts.map +1 -0
- package/dist/recipes/index.js +24 -0
- package/dist/recipes/inputs/MultiSelect.svelte +5 -0
- package/dist/recipes/inputs/MultiSelect.svelte.d.ts +2 -0
- package/dist/recipes/inputs/MultiSelect.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/OTPInput.svelte +89 -74
- package/dist/recipes/inputs/OTPInput.svelte.d.ts +15 -20
- package/dist/recipes/inputs/OTPInput.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/PasswordInput.svelte +99 -78
- package/dist/recipes/inputs/PasswordInput.svelte.d.ts +27 -34
- package/dist/recipes/inputs/PasswordInput.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +75 -66
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts +8 -16
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +47 -42
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +12 -12
- package/dist/recipes/inputs/Search.svelte +65 -48
- package/dist/recipes/inputs/Search.svelte.d.ts +16 -32
- package/dist/recipes/inputs/Search.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/SelectDropdown.svelte +112 -104
- package/dist/recipes/inputs/SelectDropdown.svelte.d.ts +12 -18
- package/dist/recipes/inputs/SelectDropdown.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/index.d.ts +8 -0
- package/dist/recipes/inputs/index.d.ts.map +1 -0
- package/dist/recipes/inputs/index.js +8 -0
- package/dist/recipes/modals/index.d.ts +7 -0
- package/dist/recipes/modals/index.d.ts.map +1 -0
- package/dist/recipes/modals/index.js +7 -0
- package/dist/stories/ButtonAuditDashboard.svelte +23 -18
- package/dist/stories/ButtonAuditDashboard.svelte.d.ts.map +1 -1
- package/dist/stories/PatternsGallery.svelte +199 -188
- package/dist/stories/PatternsGallery.svelte.d.ts.map +1 -1
- package/dist/stories/PrimitivesGallery.svelte +27 -27
- package/dist/stories/RecipesGallery.svelte +200 -170
- package/dist/stories/RecipesGallery.svelte.d.ts.map +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +1 -0
- package/dist/telemetry.server.d.ts.map +1 -1
- package/dist/telemetry.server.js +1 -0
- package/dist/telemetry.server.spec.js +1 -0
- package/dist/telemetry.spec.js +1 -0
- package/dist/tokens/__tests__/sizing.test.d.ts +2 -0
- package/dist/tokens/__tests__/sizing.test.d.ts.map +1 -0
- package/dist/tokens/__tests__/sizing.test.js +307 -0
- package/dist/tokens/__tests__/spacing.test.d.ts +2 -0
- package/dist/tokens/__tests__/spacing.test.d.ts.map +1 -0
- package/dist/tokens/__tests__/spacing.test.js +178 -0
- package/dist/tokens/__tests__/variants.test.d.ts +2 -0
- package/dist/tokens/__tests__/variants.test.d.ts.map +1 -0
- package/dist/tokens/__tests__/variants.test.js +329 -0
- package/dist/tokens/index.d.ts +3 -0
- package/dist/tokens/index.d.ts.map +1 -1
- package/dist/tokens/index.js +16 -0
- package/dist/tokens/sizing.d.ts +118 -0
- package/dist/tokens/sizing.d.ts.map +1 -0
- package/dist/tokens/sizing.js +125 -0
- package/dist/tokens/spacing.d.ts +105 -0
- package/dist/tokens/spacing.d.ts.map +1 -1
- package/dist/tokens/spacing.js +76 -0
- package/dist/tokens/variants.d.ts +78 -0
- package/dist/tokens/variants.d.ts.map +1 -0
- package/dist/tokens/variants.js +89 -0
- package/dist/utils/__tests__/auth.test.d.ts +2 -0
- package/dist/utils/__tests__/auth.test.d.ts.map +1 -0
- package/dist/utils/__tests__/auth.test.js +431 -0
- package/dist/utils/__tests__/formatters.test.d.ts +2 -0
- package/dist/utils/__tests__/formatters.test.d.ts.map +1 -0
- package/dist/utils/__tests__/formatters.test.js +73 -0
- package/dist/utils/auth.d.ts +46 -0
- package/dist/utils/auth.d.ts.map +1 -0
- package/dist/utils/auth.js +195 -0
- package/dist/utils/formatters.d.ts +13 -0
- package/dist/utils/formatters.d.ts.map +1 -0
- package/dist/utils/formatters.js +24 -0
- package/package.json +9 -5
- package/dist/patterns/layout/Grid.svelte +0 -35
- package/dist/patterns/layout/Grid.svelte.d.ts +0 -18
- package/dist/patterns/layout/Grid.svelte.d.ts.map +0 -1
|
@@ -1,88 +1,75 @@
|
|
|
1
1
|
import { describe, it, expect } from 'vitest';
|
|
2
2
|
import { GENDER_OPTIONS, ETHNICITY_OPTIONS } from './formOptions.js';
|
|
3
|
-
|
|
4
3
|
describe('formOptions', () => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
describe('GENDER_OPTIONS', () => {
|
|
5
|
+
it('exports gender options array', () => {
|
|
6
|
+
expect(GENDER_OPTIONS).toBeDefined();
|
|
7
|
+
expect(Array.isArray(GENDER_OPTIONS)).toBe(true);
|
|
8
|
+
});
|
|
9
|
+
it('has three options', () => {
|
|
10
|
+
expect(GENDER_OPTIONS.length).toBe(3);
|
|
11
|
+
});
|
|
12
|
+
it('contains Male option with value 1', () => {
|
|
13
|
+
const male = GENDER_OPTIONS.find(opt => opt.name === 'Male');
|
|
14
|
+
expect(male).toBeDefined();
|
|
15
|
+
expect(male.value).toBe(1);
|
|
16
|
+
});
|
|
17
|
+
it('contains Female option with value 2', () => {
|
|
18
|
+
const female = GENDER_OPTIONS.find(opt => opt.name === 'Female');
|
|
19
|
+
expect(female).toBeDefined();
|
|
20
|
+
expect(female.value).toBe(2);
|
|
21
|
+
});
|
|
22
|
+
it('contains Non-Binary option with value 3', () => {
|
|
23
|
+
const nonBinary = GENDER_OPTIONS.find(opt => opt.name === 'Non-Binary');
|
|
24
|
+
expect(nonBinary).toBeDefined();
|
|
25
|
+
expect(nonBinary.value).toBe(3);
|
|
26
|
+
});
|
|
27
|
+
it('each option has name and value properties', () => {
|
|
28
|
+
GENDER_OPTIONS.forEach(option => {
|
|
29
|
+
expect(option).toHaveProperty('name');
|
|
30
|
+
expect(option).toHaveProperty('value');
|
|
31
|
+
expect(typeof option.name).toBe('string');
|
|
32
|
+
expect(typeof option.value).toBe('number');
|
|
33
|
+
});
|
|
34
|
+
});
|
|
9
35
|
});
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
36
|
+
describe('ETHNICITY_OPTIONS', () => {
|
|
37
|
+
it('exports ethnicity options array', () => {
|
|
38
|
+
expect(ETHNICITY_OPTIONS).toBeDefined();
|
|
39
|
+
expect(Array.isArray(ETHNICITY_OPTIONS)).toBe(true);
|
|
40
|
+
});
|
|
41
|
+
it('has seven options', () => {
|
|
42
|
+
expect(ETHNICITY_OPTIONS.length).toBe(7);
|
|
43
|
+
});
|
|
44
|
+
it('contains all expected ethnicities', () => {
|
|
45
|
+
const names = ETHNICITY_OPTIONS.map(opt => opt.name);
|
|
46
|
+
expect(names).toContain('American Indian or Alaska Native');
|
|
47
|
+
expect(names).toContain('Asian');
|
|
48
|
+
expect(names).toContain('Black or African American');
|
|
49
|
+
expect(names).toContain('Hispanic or Latino');
|
|
50
|
+
expect(names).toContain('Middle Eastern or North African');
|
|
51
|
+
expect(names).toContain('Native Hawaiian or Pacific Islander');
|
|
52
|
+
expect(names).toContain('White');
|
|
53
|
+
});
|
|
54
|
+
it('has values 0 through 6', () => {
|
|
55
|
+
const values = ETHNICITY_OPTIONS.map(opt => opt.value).sort((a, b) => a - b);
|
|
56
|
+
expect(values).toEqual([0, 1, 2, 3, 4, 5, 6]);
|
|
57
|
+
});
|
|
58
|
+
it('each option has name and value properties', () => {
|
|
59
|
+
ETHNICITY_OPTIONS.forEach(option => {
|
|
60
|
+
expect(option).toHaveProperty('name');
|
|
61
|
+
expect(option).toHaveProperty('value');
|
|
62
|
+
expect(typeof option.name).toBe('string');
|
|
63
|
+
expect(typeof option.value).toBe('number');
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
it('American Indian or Alaska Native has value 0', () => {
|
|
67
|
+
const option = ETHNICITY_OPTIONS.find(opt => opt.name === 'American Indian or Alaska Native');
|
|
68
|
+
expect(option.value).toBe(0);
|
|
69
|
+
});
|
|
70
|
+
it('White has value 6', () => {
|
|
71
|
+
const option = ETHNICITY_OPTIONS.find(opt => opt.name === 'White');
|
|
72
|
+
expect(option.value).toBe(6);
|
|
73
|
+
});
|
|
13
74
|
});
|
|
14
|
-
|
|
15
|
-
it('contains Male option with value 1', () => {
|
|
16
|
-
const male = GENDER_OPTIONS.find(opt => opt.name === 'Male');
|
|
17
|
-
expect(male).toBeDefined();
|
|
18
|
-
expect(male.value).toBe(1);
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
it('contains Female option with value 2', () => {
|
|
22
|
-
const female = GENDER_OPTIONS.find(opt => opt.name === 'Female');
|
|
23
|
-
expect(female).toBeDefined();
|
|
24
|
-
expect(female.value).toBe(2);
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
it('contains Non-Binary option with value 3', () => {
|
|
28
|
-
const nonBinary = GENDER_OPTIONS.find(opt => opt.name === 'Non-Binary');
|
|
29
|
-
expect(nonBinary).toBeDefined();
|
|
30
|
-
expect(nonBinary.value).toBe(3);
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
it('each option has name and value properties', () => {
|
|
34
|
-
GENDER_OPTIONS.forEach(option => {
|
|
35
|
-
expect(option).toHaveProperty('name');
|
|
36
|
-
expect(option).toHaveProperty('value');
|
|
37
|
-
expect(typeof option.name).toBe('string');
|
|
38
|
-
expect(typeof option.value).toBe('number');
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
describe('ETHNICITY_OPTIONS', () => {
|
|
44
|
-
it('exports ethnicity options array', () => {
|
|
45
|
-
expect(ETHNICITY_OPTIONS).toBeDefined();
|
|
46
|
-
expect(Array.isArray(ETHNICITY_OPTIONS)).toBe(true);
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it('has seven options', () => {
|
|
50
|
-
expect(ETHNICITY_OPTIONS.length).toBe(7);
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
it('contains all expected ethnicities', () => {
|
|
54
|
-
const names = ETHNICITY_OPTIONS.map(opt => opt.name);
|
|
55
|
-
expect(names).toContain('American Indian or Alaska Native');
|
|
56
|
-
expect(names).toContain('Asian');
|
|
57
|
-
expect(names).toContain('Black or African American');
|
|
58
|
-
expect(names).toContain('Hispanic or Latino');
|
|
59
|
-
expect(names).toContain('Middle Eastern or North African');
|
|
60
|
-
expect(names).toContain('Native Hawaiian or Pacific Islander');
|
|
61
|
-
expect(names).toContain('White');
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
it('has values 0 through 6', () => {
|
|
65
|
-
const values = ETHNICITY_OPTIONS.map(opt => opt.value).sort((a, b) => a - b);
|
|
66
|
-
expect(values).toEqual([0, 1, 2, 3, 4, 5, 6]);
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
it('each option has name and value properties', () => {
|
|
70
|
-
ETHNICITY_OPTIONS.forEach(option => {
|
|
71
|
-
expect(option).toHaveProperty('name');
|
|
72
|
-
expect(option).toHaveProperty('value');
|
|
73
|
-
expect(typeof option.name).toBe('string');
|
|
74
|
-
expect(typeof option.value).toBe('number');
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
it('American Indian or Alaska Native has value 0', () => {
|
|
79
|
-
const option = ETHNICITY_OPTIONS.find(opt => opt.name === 'American Indian or Alaska Native');
|
|
80
|
-
expect(option.value).toBe(0);
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
it('White has value 6', () => {
|
|
84
|
-
const option = ETHNICITY_OPTIONS.find(opt => opt.name === 'White');
|
|
85
|
-
expect(option.value).toBe(6);
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
75
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
-
import { formatDateRange, formatDayOfWeek, formatEventDate, formatEventDateTime, formatEventTime, formatMonth, formatNotificationTime, formatRelativeTime, formatTimeRange, getDateInTimezone, getDateParts, getHourInTimezone, } from '../format';
|
|
2
|
+
import { formatCleanTimeRange, formatDateRange, formatDayOfWeek, formatEventDate, formatEventDateTime, formatEventTime, formatHour, formatMonth, formatNotificationTime, formatRelativeTime, formatTimeRange, getDateInTimezone, getDateParts, getHourInTimezone, isToday, } from '../format';
|
|
3
3
|
import { DateTimeError, DateTimeErrorCode } from '../types';
|
|
4
4
|
describe('format utilities', () => {
|
|
5
5
|
describe('formatEventTime', () => {
|
|
@@ -265,4 +265,84 @@ describe('format utilities', () => {
|
|
|
265
265
|
expect(getDateInTimezone(utc, 'America/Los_Angeles')).toBe('2023-12-24');
|
|
266
266
|
});
|
|
267
267
|
});
|
|
268
|
+
describe('formatHour', () => {
|
|
269
|
+
it('formats morning hours correctly', () => {
|
|
270
|
+
expect(formatHour(8)).toBe('8 AM');
|
|
271
|
+
expect(formatHour(11)).toBe('11 AM');
|
|
272
|
+
});
|
|
273
|
+
it('formats afternoon hours correctly', () => {
|
|
274
|
+
expect(formatHour(13)).toBe('1 PM');
|
|
275
|
+
expect(formatHour(20)).toBe('8 PM');
|
|
276
|
+
expect(formatHour(23)).toBe('11 PM');
|
|
277
|
+
});
|
|
278
|
+
it('formats midnight correctly', () => {
|
|
279
|
+
expect(formatHour(0)).toBe('12 AM');
|
|
280
|
+
});
|
|
281
|
+
it('formats noon correctly', () => {
|
|
282
|
+
expect(formatHour(12)).toBe('12 PM');
|
|
283
|
+
});
|
|
284
|
+
it('handles edge case of 24', () => {
|
|
285
|
+
// 24 % 12 = 0, and 24 >= 12, so it shows 12 PM
|
|
286
|
+
// This is technically valid behavior - callers should normalize to 0-23
|
|
287
|
+
expect(formatHour(24)).toBe('12 PM');
|
|
288
|
+
});
|
|
289
|
+
});
|
|
290
|
+
describe('isToday', () => {
|
|
291
|
+
beforeEach(() => {
|
|
292
|
+
vi.useFakeTimers();
|
|
293
|
+
vi.setSystemTime(new Date('2023-12-25T12:00:00Z'));
|
|
294
|
+
});
|
|
295
|
+
afterEach(() => {
|
|
296
|
+
vi.useRealTimers();
|
|
297
|
+
});
|
|
298
|
+
it('returns true for today in the specified timezone', () => {
|
|
299
|
+
// Current time is Dec 25, 12:00 UTC = Dec 25, 4:00 AM in LA
|
|
300
|
+
const todayInLA = '2023-12-25T20:00:00Z'; // Dec 25, 12:00 PM in LA
|
|
301
|
+
expect(isToday(todayInLA, 'America/Los_Angeles')).toBe(true);
|
|
302
|
+
});
|
|
303
|
+
it('returns false for yesterday', () => {
|
|
304
|
+
const yesterday = '2023-12-24T12:00:00Z';
|
|
305
|
+
expect(isToday(yesterday, 'America/Los_Angeles')).toBe(false);
|
|
306
|
+
});
|
|
307
|
+
it('returns false for tomorrow', () => {
|
|
308
|
+
const tomorrow = '2023-12-26T12:00:00Z';
|
|
309
|
+
expect(isToday(tomorrow, 'America/Los_Angeles')).toBe(false);
|
|
310
|
+
});
|
|
311
|
+
it('handles timezone boundary correctly', () => {
|
|
312
|
+
// 3 AM UTC on Dec 25 = 7 PM Dec 24 in LA
|
|
313
|
+
// Current "now" is Dec 25, 12:00 UTC = Dec 25, 4:00 AM in LA
|
|
314
|
+
const utc = '2023-12-25T03:00:00Z';
|
|
315
|
+
expect(isToday(utc, 'America/Los_Angeles')).toBe(false); // It's Dec 24 in LA
|
|
316
|
+
});
|
|
317
|
+
it('throws on invalid timezone', () => {
|
|
318
|
+
expect(() => isToday('2023-12-25T12:00:00Z', 'Invalid/Zone')).toThrow();
|
|
319
|
+
});
|
|
320
|
+
});
|
|
321
|
+
describe('formatCleanTimeRange', () => {
|
|
322
|
+
it('omits minutes when times are on the hour', () => {
|
|
323
|
+
// 3 AM UTC = 7 PM in LA, 6 AM UTC = 10 PM in LA
|
|
324
|
+
const start = '2023-12-25T03:00:00Z';
|
|
325
|
+
const end = '2023-12-25T06:00:00Z';
|
|
326
|
+
expect(formatCleanTimeRange(start, end, 'America/Los_Angeles')).toBe('7 PM - 10 PM');
|
|
327
|
+
});
|
|
328
|
+
it('includes minutes when not on the hour', () => {
|
|
329
|
+
const start = '2023-12-25T03:30:00Z';
|
|
330
|
+
const end = '2023-12-25T06:00:00Z';
|
|
331
|
+
expect(formatCleanTimeRange(start, end, 'America/Los_Angeles')).toBe('7:30 PM - 10 PM');
|
|
332
|
+
});
|
|
333
|
+
it('handles both times with minutes', () => {
|
|
334
|
+
const start = '2023-12-25T03:15:00Z';
|
|
335
|
+
const end = '2023-12-25T06:45:00Z';
|
|
336
|
+
expect(formatCleanTimeRange(start, end, 'America/Los_Angeles')).toBe('7:15 PM - 10:45 PM');
|
|
337
|
+
});
|
|
338
|
+
it('handles midnight correctly', () => {
|
|
339
|
+
// 8 AM UTC = midnight in LA
|
|
340
|
+
const start = '2023-12-25T08:00:00Z';
|
|
341
|
+
const end = '2023-12-25T10:00:00Z';
|
|
342
|
+
expect(formatCleanTimeRange(start, end, 'America/Los_Angeles')).toBe('12 AM - 2 AM');
|
|
343
|
+
});
|
|
344
|
+
it('throws on invalid inputs', () => {
|
|
345
|
+
expect(() => formatCleanTimeRange('invalid', '2023-12-25T06:00:00Z', 'America/Los_Angeles')).toThrow();
|
|
346
|
+
});
|
|
347
|
+
});
|
|
268
348
|
});
|
|
@@ -155,4 +155,78 @@ export declare function getHourInTimezone(utcIso: ISODateString, timezone: Timez
|
|
|
155
155
|
* @returns Date string in YYYY-MM-DD format
|
|
156
156
|
*/
|
|
157
157
|
export declare function getDateInTimezone(utcIso: ISODateString, timezone: TimezoneId): string;
|
|
158
|
+
/**
|
|
159
|
+
* Formats an hour number (0-23) to a display string with AM/PM.
|
|
160
|
+
* This is a simple utility that doesn't require timezone since it works
|
|
161
|
+
* with a raw hour number, not a datetime.
|
|
162
|
+
*
|
|
163
|
+
* @param hour - Hour number (0-23)
|
|
164
|
+
* @returns Formatted hour string (e.g., "8 PM", "12 AM")
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* formatHour(8) // "8 AM"
|
|
168
|
+
* formatHour(20) // "8 PM"
|
|
169
|
+
* formatHour(0) // "12 AM"
|
|
170
|
+
* formatHour(12) // "12 PM"
|
|
171
|
+
*/
|
|
172
|
+
export declare function formatHour(hour: number): string;
|
|
173
|
+
/**
|
|
174
|
+
* Checks if a UTC datetime represents today in the specified timezone.
|
|
175
|
+
*
|
|
176
|
+
* @param utcIso - UTC ISO datetime string
|
|
177
|
+
* @param timezone - IANA timezone ID
|
|
178
|
+
* @returns True if the date is today in the given timezone
|
|
179
|
+
* @throws {DateTimeError} If timezone or ISO string is invalid
|
|
180
|
+
*
|
|
181
|
+
* @example
|
|
182
|
+
* isToday('2025-01-04T19:00:00Z', 'America/Los_Angeles')
|
|
183
|
+
* // true (if today is Jan 4, 2025 in LA)
|
|
184
|
+
*/
|
|
185
|
+
export declare function isToday(utcIso: ISODateString, timezone: TimezoneId): boolean;
|
|
186
|
+
/**
|
|
187
|
+
* Formats a date for simple display (e.g., lists, dropdowns).
|
|
188
|
+
* Format: "Jan 15, 2024"
|
|
189
|
+
*
|
|
190
|
+
* This is a convenience function that defaults to UTC when no timezone is provided.
|
|
191
|
+
* For timezone-aware formatting, use formatEventDate instead.
|
|
192
|
+
*
|
|
193
|
+
* @param utcIso - UTC ISO datetime string
|
|
194
|
+
* @param timezone - Optional IANA timezone ID (defaults to 'UTC')
|
|
195
|
+
* @returns Formatted date string (e.g., "Jan 15, 2024")
|
|
196
|
+
* @throws {DateTimeError} If ISO string is invalid
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* formatShortDate('2024-01-15T20:30:00Z')
|
|
200
|
+
* // "Jan 15, 2024" (in UTC)
|
|
201
|
+
*
|
|
202
|
+
* formatShortDate('2024-01-15T20:30:00Z', 'America/Los_Angeles')
|
|
203
|
+
* // "Jan 15, 2024" (in LA timezone)
|
|
204
|
+
*/
|
|
205
|
+
export declare function formatShortDate(utcIso: ISODateString, timezone?: TimezoneId): string;
|
|
206
|
+
/**
|
|
207
|
+
* Formats a time range with clean formatting (omits :00 minutes).
|
|
208
|
+
* More compact display for times on the hour.
|
|
209
|
+
*
|
|
210
|
+
* @param startUtc - Start time as UTC ISO string
|
|
211
|
+
* @param endUtc - End time as UTC ISO string
|
|
212
|
+
* @param timezone - IANA timezone ID
|
|
213
|
+
* @returns Formatted time range (e.g., "8 PM - 11 PM" or "8:30 PM - 11 PM")
|
|
214
|
+
* @throws {DateTimeError} If timezone or ISO strings are invalid
|
|
215
|
+
*
|
|
216
|
+
* @example
|
|
217
|
+
* formatCleanTimeRange(
|
|
218
|
+
* '2023-12-25T03:00:00Z',
|
|
219
|
+
* '2023-12-25T06:00:00Z',
|
|
220
|
+
* 'America/Los_Angeles'
|
|
221
|
+
* )
|
|
222
|
+
* // "7 PM - 10 PM" (times are on the hour, so no :00)
|
|
223
|
+
*
|
|
224
|
+
* formatCleanTimeRange(
|
|
225
|
+
* '2023-12-25T03:30:00Z',
|
|
226
|
+
* '2023-12-25T06:00:00Z',
|
|
227
|
+
* 'America/Los_Angeles'
|
|
228
|
+
* )
|
|
229
|
+
* // "7:30 PM - 10 PM"
|
|
230
|
+
*/
|
|
231
|
+
export declare function formatCleanTimeRange(startUtc: ISODateString, endUtc: ISODateString, timezone: TimezoneId): string;
|
|
158
232
|
//# sourceMappingURL=format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/lib/datetime/format.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,UAAU,EACX,MAAM,SAAS,CAAC;AA4CjB;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,EACpB,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,CAMR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,EACpB,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,CAOR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,EACpB,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,CAiBR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,MAAM,CAIR;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,MAAM,CA4BR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,MAAM,CAoDR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,SAAS,CASX;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,MAAM,CAkBR;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,EACpB,KAAK,GAAE,OAAc,GACpB,MAAM,CAMR;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,EACpB,KAAK,GAAE,OAAc,GACpB,MAAM,CAMR;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,MAAM,CAGR"}
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/lib/datetime/format.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,UAAU,EACX,MAAM,SAAS,CAAC;AA4CjB;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,EACpB,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,CAMR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,EACpB,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,CAOR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,EACpB,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,CAiBR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,MAAM,CAIR;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,MAAM,CA4BR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,MAAM,CAoDR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,SAAS,CASX;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,MAAM,CAkBR;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,EACpB,KAAK,GAAE,OAAc,GACpB,MAAM,CAMR;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,EACpB,KAAK,GAAE,OAAc,GACpB,MAAM,CAMR;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,MAAM,CAGR;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI/C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,OAAO,CAST;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,QAAQ,GAAE,UAAkB,GAC3B,MAAM,CAGR;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,UAAU,GACnB,MAAM,CAgBR"}
|
package/dist/datetime/format.js
CHANGED
|
@@ -313,3 +313,107 @@ export function getDateInTimezone(utcIso, timezone) {
|
|
|
313
313
|
const zonedDate = getZonedDate(utcIso, timezone);
|
|
314
314
|
return format(zonedDate, DATE_FORMATS.API_DATE);
|
|
315
315
|
}
|
|
316
|
+
// ============================================================================
|
|
317
|
+
// Additional Formatting Functions
|
|
318
|
+
// ============================================================================
|
|
319
|
+
/**
|
|
320
|
+
* Formats an hour number (0-23) to a display string with AM/PM.
|
|
321
|
+
* This is a simple utility that doesn't require timezone since it works
|
|
322
|
+
* with a raw hour number, not a datetime.
|
|
323
|
+
*
|
|
324
|
+
* @param hour - Hour number (0-23)
|
|
325
|
+
* @returns Formatted hour string (e.g., "8 PM", "12 AM")
|
|
326
|
+
*
|
|
327
|
+
* @example
|
|
328
|
+
* formatHour(8) // "8 AM"
|
|
329
|
+
* formatHour(20) // "8 PM"
|
|
330
|
+
* formatHour(0) // "12 AM"
|
|
331
|
+
* formatHour(12) // "12 PM"
|
|
332
|
+
*/
|
|
333
|
+
export function formatHour(hour) {
|
|
334
|
+
const suffix = hour >= 12 ? 'PM' : 'AM';
|
|
335
|
+
const displayHour = hour % 12 || 12;
|
|
336
|
+
return `${displayHour} ${suffix}`;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Checks if a UTC datetime represents today in the specified timezone.
|
|
340
|
+
*
|
|
341
|
+
* @param utcIso - UTC ISO datetime string
|
|
342
|
+
* @param timezone - IANA timezone ID
|
|
343
|
+
* @returns True if the date is today in the given timezone
|
|
344
|
+
* @throws {DateTimeError} If timezone or ISO string is invalid
|
|
345
|
+
*
|
|
346
|
+
* @example
|
|
347
|
+
* isToday('2025-01-04T19:00:00Z', 'America/Los_Angeles')
|
|
348
|
+
* // true (if today is Jan 4, 2025 in LA)
|
|
349
|
+
*/
|
|
350
|
+
export function isToday(utcIso, timezone) {
|
|
351
|
+
const zonedDate = getZonedDate(utcIso, timezone);
|
|
352
|
+
const nowZoned = toZonedTime(new Date(), timezone);
|
|
353
|
+
return (zonedDate.getDate() === nowZoned.getDate() &&
|
|
354
|
+
zonedDate.getMonth() === nowZoned.getMonth() &&
|
|
355
|
+
zonedDate.getFullYear() === nowZoned.getFullYear());
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Formats a date for simple display (e.g., lists, dropdowns).
|
|
359
|
+
* Format: "Jan 15, 2024"
|
|
360
|
+
*
|
|
361
|
+
* This is a convenience function that defaults to UTC when no timezone is provided.
|
|
362
|
+
* For timezone-aware formatting, use formatEventDate instead.
|
|
363
|
+
*
|
|
364
|
+
* @param utcIso - UTC ISO datetime string
|
|
365
|
+
* @param timezone - Optional IANA timezone ID (defaults to 'UTC')
|
|
366
|
+
* @returns Formatted date string (e.g., "Jan 15, 2024")
|
|
367
|
+
* @throws {DateTimeError} If ISO string is invalid
|
|
368
|
+
*
|
|
369
|
+
* @example
|
|
370
|
+
* formatShortDate('2024-01-15T20:30:00Z')
|
|
371
|
+
* // "Jan 15, 2024" (in UTC)
|
|
372
|
+
*
|
|
373
|
+
* formatShortDate('2024-01-15T20:30:00Z', 'America/Los_Angeles')
|
|
374
|
+
* // "Jan 15, 2024" (in LA timezone)
|
|
375
|
+
*/
|
|
376
|
+
export function formatShortDate(utcIso, timezone = 'UTC') {
|
|
377
|
+
const zonedDate = getZonedDate(utcIso, timezone);
|
|
378
|
+
return format(zonedDate, DATE_FORMATS.DISPLAY_DATE);
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Formats a time range with clean formatting (omits :00 minutes).
|
|
382
|
+
* More compact display for times on the hour.
|
|
383
|
+
*
|
|
384
|
+
* @param startUtc - Start time as UTC ISO string
|
|
385
|
+
* @param endUtc - End time as UTC ISO string
|
|
386
|
+
* @param timezone - IANA timezone ID
|
|
387
|
+
* @returns Formatted time range (e.g., "8 PM - 11 PM" or "8:30 PM - 11 PM")
|
|
388
|
+
* @throws {DateTimeError} If timezone or ISO strings are invalid
|
|
389
|
+
*
|
|
390
|
+
* @example
|
|
391
|
+
* formatCleanTimeRange(
|
|
392
|
+
* '2023-12-25T03:00:00Z',
|
|
393
|
+
* '2023-12-25T06:00:00Z',
|
|
394
|
+
* 'America/Los_Angeles'
|
|
395
|
+
* )
|
|
396
|
+
* // "7 PM - 10 PM" (times are on the hour, so no :00)
|
|
397
|
+
*
|
|
398
|
+
* formatCleanTimeRange(
|
|
399
|
+
* '2023-12-25T03:30:00Z',
|
|
400
|
+
* '2023-12-25T06:00:00Z',
|
|
401
|
+
* 'America/Los_Angeles'
|
|
402
|
+
* )
|
|
403
|
+
* // "7:30 PM - 10 PM"
|
|
404
|
+
*/
|
|
405
|
+
export function formatCleanTimeRange(startUtc, endUtc, timezone) {
|
|
406
|
+
const formatCleanTime = (utcIso) => {
|
|
407
|
+
const zonedDate = getZonedDate(utcIso, timezone);
|
|
408
|
+
const minutes = zonedDate.getMinutes();
|
|
409
|
+
if (minutes === 0) {
|
|
410
|
+
// Omit minutes if on the hour: "8 PM"
|
|
411
|
+
return format(zonedDate, 'h a');
|
|
412
|
+
}
|
|
413
|
+
// Include minutes: "8:30 PM"
|
|
414
|
+
return format(zonedDate, DATE_FORMATS.DISPLAY_TIME);
|
|
415
|
+
};
|
|
416
|
+
const startTime = formatCleanTime(startUtc);
|
|
417
|
+
const endTime = formatCleanTime(endUtc);
|
|
418
|
+
return `${startTime} - ${endTime}`;
|
|
419
|
+
}
|
package/dist/datetime/index.d.ts
CHANGED
|
@@ -38,6 +38,6 @@ export { DateTimeError, DateTimeErrorCode } from './types';
|
|
|
38
38
|
export { COMMON_US_TIMEZONES, DATE_FORMATS, DEFAULT_TIMEZONE, DURATIONS, DURATIONS_MINUTES, EVENT_DEFAULTS, LEGACY_TIMEZONE_MAP, RELATIVE_TIME_THRESHOLDS, } from './constants';
|
|
39
39
|
export { formatTimezoneForDisplay, getAllTimezones, getCommonUSTimezoneOptions, getIANATimezone, getTimezoneDisplayName, getTimezoneOffset, getTimezoneOptions, getUserTimezone, getVenueTimezone, isDST, isValidIANATimezone, isValidTimezone, normalizeTimezone, } from './timezone';
|
|
40
40
|
export type { TimezoneOption } from './timezone';
|
|
41
|
-
export { formatDateRange, formatDayOfWeek, formatEventDate, formatEventDateTime, formatEventTime, formatMonth, formatNotificationTime, formatRelativeTime, formatTimeRange, getDateInTimezone, getDateParts, getHourInTimezone, } from './format';
|
|
41
|
+
export { formatCleanTimeRange, formatDateRange, formatDayOfWeek, formatEventDate, formatEventDateTime, formatEventTime, formatHour, formatMonth, formatNotificationTime, formatRelativeTime, formatShortDate, formatTimeRange, getDateInTimezone, getDateParts, getHourInTimezone, isToday, } from './format';
|
|
42
42
|
export { combineDateAndTime, formatDateTimeForAPI, isNextDayTime, minutesToTimeString, parseDateTimeFromAPI, parseEndOfDay, parseLocalToUTC, parseStartOfDay, parseTimeToMinutes, parseUTCToLocal, stripNextDayPrefix, } from './parse';
|
|
43
43
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/datetime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,YAAY,EACV,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,UAAU,EACV,iBAAiB,GAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG3D,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,KAAK,EACL,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/datetime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,YAAY,EACV,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,UAAU,EACV,iBAAiB,GAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG3D,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,KAAK,EACL,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,OAAO,GACR,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
|
package/dist/datetime/index.js
CHANGED
|
@@ -39,6 +39,6 @@ export { COMMON_US_TIMEZONES, DATE_FORMATS, DEFAULT_TIMEZONE, DURATIONS, DURATIO
|
|
|
39
39
|
// Timezone utilities
|
|
40
40
|
export { formatTimezoneForDisplay, getAllTimezones, getCommonUSTimezoneOptions, getIANATimezone, getTimezoneDisplayName, getTimezoneOffset, getTimezoneOptions, getUserTimezone, getVenueTimezone, isDST, isValidIANATimezone, isValidTimezone, normalizeTimezone, } from './timezone';
|
|
41
41
|
// Format functions
|
|
42
|
-
export { formatDateRange, formatDayOfWeek, formatEventDate, formatEventDateTime, formatEventTime, formatMonth, formatNotificationTime, formatRelativeTime, formatTimeRange, getDateInTimezone, getDateParts, getHourInTimezone, } from './format';
|
|
42
|
+
export { formatCleanTimeRange, formatDateRange, formatDayOfWeek, formatEventDate, formatEventDateTime, formatEventTime, formatHour, formatMonth, formatNotificationTime, formatRelativeTime, formatShortDate, formatTimeRange, getDateInTimezone, getDateParts, getHourInTimezone, isToday, } from './format';
|
|
43
43
|
// Parse functions
|
|
44
44
|
export { combineDateAndTime, formatDateTimeForAPI, isNextDayTime, minutesToTimeString, parseDateTimeFromAPI, parseEndOfDay, parseLocalToUTC, parseStartOfDay, parseTimeToMinutes, parseUTCToLocal, stripNextDayPrefix, } from './parse';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timezone.d.ts","sourceRoot":"","sources":["../../src/lib/datetime/timezone.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE7D,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAiCD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CA0BzD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,UAAU,CAoBrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,UAAU,CAE5C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,UAAU,EACpB,IAAI,GAAE,IAAiB,GACtB,MAAM,CA2BR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAiBnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CA+C9D;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,GAAE,IAAiB,GAAG,OAAO,CA0B5E;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,CAuB/E;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,wBAAkB,CAAC;AAEnD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"timezone.d.ts","sourceRoot":"","sources":["../../src/lib/datetime/timezone.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE7D,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAiCD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CA0BzD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,UAAU,CAoBrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,UAAU,CAE5C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,UAAU,EACpB,IAAI,GAAE,IAAiB,GACtB,MAAM,CA2BR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAiBnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CA+C9D;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,GAAE,IAAiB,GAAG,OAAO,CA0B5E;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,CAuB/E;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,wBAAkB,CAAC;AAEnD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAI1C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA0BjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAOrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,IAAI,cAAc,EAAE,CAe7D"}
|
|
@@ -298,6 +298,8 @@ export const isValidIANATimezone = isValidTimezone;
|
|
|
298
298
|
* // ['Africa/Abidjan', 'Africa/Accra', ..., 'Pacific/Wallis']
|
|
299
299
|
*/
|
|
300
300
|
export function getAllTimezones() {
|
|
301
|
+
// Cast to any to support Intl.supportedValuesOf which is ES2023+
|
|
302
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
301
303
|
return Intl.supportedValuesOf('timeZone');
|
|
302
304
|
}
|
|
303
305
|
/**
|
package/dist/datetime/types.d.ts
CHANGED
|
@@ -74,6 +74,10 @@ export interface FormatOptions {
|
|
|
74
74
|
includeYear?: boolean;
|
|
75
75
|
/** Use short month names (default: true) */
|
|
76
76
|
shortMonth?: boolean;
|
|
77
|
+
/** Include date in the output (default: true) */
|
|
78
|
+
includeDate?: boolean;
|
|
79
|
+
/** Include time in the output (default: true) */
|
|
80
|
+
includeTime?: boolean;
|
|
77
81
|
}
|
|
78
82
|
/**
|
|
79
83
|
* Venue object with timezone information.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/datetime/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AAErC;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AAErC;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,mCAAmC;IACnC,KAAK,EAAE,aAAa,CAAC;IACrB,iCAAiC;IACjC,GAAG,EAAE,aAAa,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/datetime/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AAErC;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AAErC;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,mCAAmC;IACnC,KAAK,EAAE,aAAa,CAAC;IACrB,iCAAiC;IACjC,GAAG,EAAE,aAAa,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;aAGpB,IAAI,EAAE,iBAAiB;aACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjD,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAKpD;AAED;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,gBAAgB,qBAAqB;IACrC,kBAAkB,uBAAuB;IACzC,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;IACrC,WAAW,gBAAgB;CAC5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createFormStore.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/forms/createFormStore.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAEvC;;;;OAIG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAE1D,IAAI,EAAE,CAAC,CAAC;IACR,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAGzC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IAGpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAG1B,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IACtD,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IACnD,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,eAAe,EAAE,MAAM,IAAI,CAAC;IAG5B,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CAC3D;AAMD,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACtB,WAAW,EAAE,CAAC,EACd,OAAO,GAAE,gBAAgB,CAAC,CAAC,CAAM,GAChC,SAAS,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"createFormStore.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/forms/createFormStore.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAEvC;;;;OAIG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAE1D,IAAI,EAAE,CAAC,CAAC;IACR,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAGzC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IAGpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAG1B,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IACtD,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IACnD,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,eAAe,EAAE,MAAM,IAAI,CAAC;IAG5B,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CAC3D;AAMD,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACtB,WAAW,EAAE,CAAC,EACd,OAAO,GAAE,gBAAgB,CAAC,CAAC,CAAM,GAChC,SAAS,CAAC,CAAC,CAAC,CA0Od"}
|
|
@@ -111,11 +111,12 @@ export function createFormStore(schema, initialData, options = {}) {
|
|
|
111
111
|
}
|
|
112
112
|
function isSectionDirty(sectionName) {
|
|
113
113
|
const sectionFields = sections[sectionName];
|
|
114
|
-
|
|
114
|
+
const original = originalData;
|
|
115
|
+
if (!sectionFields || !original)
|
|
115
116
|
return false;
|
|
116
117
|
return sectionFields.some(field => {
|
|
117
118
|
const currentVal = JSON.stringify(data[field]);
|
|
118
|
-
const originalVal = JSON.stringify(
|
|
119
|
+
const originalVal = JSON.stringify(original[field]);
|
|
119
120
|
return currentVal !== originalVal;
|
|
120
121
|
});
|
|
121
122
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -48,6 +48,7 @@ export { default as Input } from "./primitives/Input/Input.svelte";
|
|
|
48
48
|
export { default as Select } from "./primitives/Input/Select.svelte";
|
|
49
49
|
export { default as Textarea } from "./primitives/Input/Textarea.svelte";
|
|
50
50
|
export { default as Label } from "./primitives/Label/Label.svelte";
|
|
51
|
+
export { default as NumberInput } from "./primitives/NumberInput/NumberInput.svelte";
|
|
51
52
|
export { default as Modal } from "./primitives/Modal/Modal.svelte";
|
|
52
53
|
export { default as Pagination } from "./primitives/Pagination/Pagination.svelte";
|
|
53
54
|
export { default as Radio } from "./primitives/Radio/Radio.svelte";
|
package/dist/index.js
CHANGED
|
@@ -82,6 +82,9 @@ export { default as Textarea } from './primitives/Input/Textarea.svelte';
|
|
|
82
82
|
// Label
|
|
83
83
|
export { default as Label } from './primitives/Label/Label.svelte';
|
|
84
84
|
|
|
85
|
+
// NumberInput
|
|
86
|
+
export { default as NumberInput } from './primitives/NumberInput/NumberInput.svelte';
|
|
87
|
+
|
|
85
88
|
// Modal (base only - composite modals are in recipes/modals)
|
|
86
89
|
export { default as Modal } from './primitives/Modal/Modal.svelte';
|
|
87
90
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../src/lib/index.spec.js"],"names":[],"mappings":""}
|