pixelize-design-library 2.4.2-beta.61 → 2.4.2-beta.62
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/CHANGELOG.md +153 -0
- package/COMPONENT-GOTCHAS.md +119 -1
- package/dist/Components/Accordion/Accordion.js +2 -2
- package/dist/Components/AddressCard/AddressCard.js +2 -1
- package/dist/Components/Apexcharts/ApexLineChart/ApexLineChart.js +1 -1
- package/dist/Components/AppSwitcher/AppSwitcher.js +1 -1
- package/dist/Components/AppearanceSettings/AppearanceSettings.js +1 -1
- package/dist/Components/AudioRecorder/AudioRecorder.js +2 -1
- package/dist/Components/Avatar/Avatar.d.ts +2 -1
- package/dist/Components/Avatar/Avatar.js +5 -3
- package/dist/Components/Backdrop/Backdrop.js +1 -1
- package/dist/Components/BagBar/BagBar.js +2 -1
- package/dist/Components/ButtonGroupIcon/ButtonGroupIcon.js +1 -1
- package/dist/Components/CalendarGrid/CalendarGrid.js +5 -5
- package/dist/Components/CalendarGrid/calendarMath.js +18 -6
- package/dist/Components/Card/PaymentCard/PaymentCard.js +6 -5
- package/dist/Components/CartItem/CartItem.js +2 -1
- package/dist/Components/Checkbox/Checkbox.d.ts +18 -3
- package/dist/Components/Checkbox/Checkbox.js +9 -7
- package/dist/Components/CheckoutKit/selectable.js +1 -1
- package/dist/Components/ChoiceCard/ChoiceCard.d.ts +3 -0
- package/dist/Components/ChoiceCard/ChoiceCard.js +16 -0
- package/dist/Components/ChoiceCard/ChoiceCardGroup.d.ts +3 -0
- package/dist/Components/ChoiceCard/ChoiceCardGroup.js +6 -0
- package/dist/Components/ChoiceCard/ChoiceCardProps.d.ts +28 -0
- package/dist/Components/ChoiceCard/ChoiceCardProps.js +2 -0
- package/dist/Components/CircularProgress/CircularProgress.js +4 -8
- package/dist/Components/CircularProgress/CircularProgressProps.d.ts +5 -3
- package/dist/Components/CircularProgress/arc.d.ts +9 -1
- package/dist/Components/CircularProgress/arc.js +15 -1
- package/dist/Components/Common/FormLabel.js +1 -1
- package/dist/Components/Common/FormattedDescription.js +1 -1
- package/dist/Components/Common/HelperText.d.ts +5 -4
- package/dist/Components/Common/HelperText.js +10 -7
- package/dist/Components/Common/fieldStyles.d.ts +4 -4
- package/dist/Components/Common/fieldStyles.js +2 -1
- package/dist/Components/ContactForm/ContactForm.js +1 -1
- package/dist/Components/CopyButton/CopyButton.js +12 -5
- package/dist/Components/CouponField/CouponField.js +4 -3
- package/dist/Components/CustomModulesTable/CustomModulesTableProps.d.ts +18 -0
- package/dist/Components/CustomModulesTable/EditModuleModal.js +1 -1
- package/dist/Components/DatePicker/CalendarPanel.js +2 -2
- package/dist/Components/DatePicker/DatePicker.js +8 -2
- package/dist/Components/DatePicker/RangeDatePicker.d.ts +9 -3
- package/dist/Components/DatePicker/RangeDatePicker.js +6 -5
- package/dist/Components/DatePicker/SingleDatePicker.d.ts +9 -5
- package/dist/Components/DatePicker/SingleDatePicker.js +7 -4
- package/dist/Components/DatePicker/ThemeDatePicker.d.ts +8 -4
- package/dist/Components/DatePicker/ThemeDatePicker.js +9 -6
- package/dist/Components/DatePicker/TimeOnlyPicker.d.ts +9 -5
- package/dist/Components/DatePicker/TimeOnlyPicker.js +6 -4
- package/dist/Components/DatePicker/TimePickerInput.d.ts +2 -2
- package/dist/Components/DatePicker/TimePickerInput.js +6 -5
- package/dist/Components/DescriptionList/DescriptionList.d.ts +1 -1
- package/dist/Components/DescriptionList/DescriptionList.js +3 -3
- package/dist/Components/DescriptionList/DescriptionListProps.d.ts +3 -3
- package/dist/Components/Dropdown/DropDown.js +12 -4
- package/dist/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtp.js +2 -1
- package/dist/Components/EmptyState/EmptyState.js +2 -2
- package/dist/Components/EmptyState/EmptyStateProps.d.ts +3 -3
- package/dist/Components/FileUpload/FileUpload.js +21 -15
- package/dist/Components/FileUpload/useObjectUrl.d.ts +1 -0
- package/dist/Components/FileUpload/useObjectUrl.js +14 -0
- package/dist/Components/FileUploader/FileUploader.js +9 -3
- package/dist/Components/FileUploader/FileUploaderProps.d.ts +8 -0
- package/dist/Components/FilterBar/FilterBar.d.ts +1 -1
- package/dist/Components/FilterBar/FilterBar.js +2 -2
- package/dist/Components/FilterBar/FilterBarProps.d.ts +3 -3
- package/dist/Components/FilterSidebar/FilterSidebar.js +10 -6
- package/dist/Components/Form/FormWrapper.js +1 -1
- package/dist/Components/FormField/FormField.d.ts +3 -0
- package/dist/Components/FormField/FormField.js +57 -0
- package/dist/Components/FormField/FormFieldProps.d.ts +33 -0
- package/dist/Components/FormField/FormFieldProps.js +2 -0
- package/dist/Components/Header/HeaderActions.js +2 -2
- package/dist/Components/Header/components/mobileMenu.js +1 -1
- package/dist/Components/IconButton/IconButton.d.ts +5 -0
- package/dist/Components/IconButton/IconButton.js +24 -0
- package/dist/Components/IconButton/IconButtonProps.d.ts +10 -0
- package/dist/Components/IconButton/IconButtonProps.js +2 -0
- package/dist/Components/Input/PhoneNumberInput.js +14 -0
- package/dist/Components/Input/PhoneNumberInputProps.d.ts +1 -0
- package/dist/Components/KanbanBoard/AccountCard.js +3 -2
- package/dist/Components/KanbanBoard/AccountRow.js +1 -1
- package/dist/Components/KanbanBoard/KanbanBoard.js +56 -39
- package/dist/Components/KanbanBoard/MeasuredItem.js +6 -14
- package/dist/Components/KanbanBoard/boardStore.d.ts +8 -0
- package/dist/Components/KanbanBoard/boardStore.js +27 -0
- package/dist/Components/Kbd/Kbd.js +1 -1
- package/dist/Components/LimitReachedModal/LimitReachedModal.js +1 -1
- package/dist/Components/Loading/Loading.js +1 -1
- package/dist/Components/MediaGallery/MediaGallery.js +1 -1
- package/dist/Components/MediaGallery/MediaLightbox.js +2 -1
- package/dist/Components/MediaGallery/glass.js +2 -1
- package/dist/Components/MediaViewer/MediaViewer.js +1 -1
- package/dist/Components/MediaViewer/components/MediaAudioPlayer.js +7 -7
- package/dist/Components/MediaViewer/components/MediaImageViewer.js +1 -1
- package/dist/Components/MediaViewer/components/MediaScrubber.js +5 -1
- package/dist/Components/MediaViewer/components/MediaVideoPlayer.js +7 -7
- package/dist/Components/MediaViewer/components/PlaybackTimeline.d.ts +20 -0
- package/dist/Components/MediaViewer/components/PlaybackTimeline.js +47 -0
- package/dist/Components/MediaViewer/components/TileChip.js +1 -1
- package/dist/Components/Modal/Modal.js +1 -1
- package/dist/Components/MoreItems/MoreItems.js +2 -2
- package/dist/Components/NavigationBar/NavigationBar.js +2 -2
- package/dist/Components/NoteTextArea/NoteTextArea.js +18 -4
- package/dist/Components/NoteTextArea/NoteTextAreaProps.d.ts +12 -0
- package/dist/Components/Notification/Notification.js +17 -3
- package/dist/Components/Notification/NotificationProps.d.ts +17 -1
- package/dist/Components/NotificationBell/NotificationBell.js +5 -1
- package/dist/Components/NotificationBell/NotificationItem.js +1 -1
- package/dist/Components/NotificationBell/NotificationList.js +1 -1
- package/dist/Components/OffersList/OffersList.js +2 -1
- package/dist/Components/OptionChip/OptionChip.js +3 -2
- package/dist/Components/OrderStatusTimeline/OrderStatusTimeline.js +2 -1
- package/dist/Components/OrderSummary/OrderSummary.js +5 -5
- package/dist/Components/OrganizationDetails/OrganizationDetails.js +7 -1
- package/dist/Components/PageHeader/PageHeader.d.ts +1 -1
- package/dist/Components/PageHeader/PageHeader.js +2 -2
- package/dist/Components/PageHeader/PageHeaderProps.d.ts +3 -3
- package/dist/Components/Pagination/Pagination.d.ts +5 -0
- package/dist/Components/Pagination/Pagination.js +48 -0
- package/dist/Components/Pagination/PaginationProps.d.ts +46 -0
- package/dist/Components/Pagination/PaginationProps.js +9 -0
- package/dist/Components/Pagination/pageWindow.d.ts +4 -0
- package/dist/Components/Pagination/pageWindow.js +22 -0
- package/dist/Components/PaymentOption/PaymentOption.js +1 -1
- package/dist/Components/PersonChip/PersonChip.js +2 -2
- package/dist/Components/PinInput/PinInput.d.ts +1 -1
- package/dist/Components/PinInput/PinInput.js +17 -2
- package/dist/Components/PinInput/PinInputProps.d.ts +9 -1
- package/dist/Components/PincodeChecker/PincodeChecker.js +4 -4
- package/dist/Components/PlanPill/PlanPill.js +2 -1
- package/dist/Components/PriceBlock/PriceBlock.js +3 -3
- package/dist/Components/Primitives/Primitives.d.ts +2 -2
- package/dist/Components/Primitives/Primitives.js +2 -3
- package/dist/Components/ProductBadges/ProductBadges.js +2 -1
- package/dist/Components/ProductCard/ProductCard.js +1 -1
- package/dist/Components/ProductCard/ProductCardAction.js +2 -2
- package/dist/Components/ProductCard/ProductCardSwatches.js +2 -1
- package/dist/Components/ProductCard/cardMetrics.d.ts +1 -1
- package/dist/Components/ProductCard/cardMetrics.js +5 -1
- package/dist/Components/ProfileCard/ProfileCardProps.d.ts +11 -0
- package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +3 -2
- package/dist/Components/QuantityStepper/QuantityStepper.js +2 -1
- package/dist/Components/RadioButton/RadioButton.d.ts +11 -2
- package/dist/Components/RadioButton/RadioButton.js +9 -6
- package/dist/Components/RangeSlider/RangeSlider.js +3 -3
- package/dist/Components/Rating/Rating.js +2 -1
- package/dist/Components/Reorder/Reorder.js +3 -2
- package/dist/Components/ReviewList/ReviewList.js +3 -3
- package/dist/Components/ReviewSummary/ReviewSummary.js +3 -3
- package/dist/Components/SaveBar/SaveBar.d.ts +1 -1
- package/dist/Components/SaveBar/SaveBar.js +2 -2
- package/dist/Components/SaveBar/SaveBarProps.d.ts +3 -3
- package/dist/Components/Search/Search.js +2 -9
- package/dist/Components/Search/ctrlShortcut.d.ts +1 -0
- package/dist/Components/Search/ctrlShortcut.js +29 -0
- package/dist/Components/SearchSelect/SearchSelect.js +117 -30
- package/dist/Components/SegmentedControl/SegmentedControl.d.ts +8 -2
- package/dist/Components/SegmentedControl/SegmentedControl.js +9 -5
- package/dist/Components/Select/SelectPopup.js +6 -4
- package/dist/Components/SelectSearch/SelectSearch.js +5 -4
- package/dist/Components/SettingRow/SettingRow.js +1 -1
- package/dist/Components/SideBar/SecondaryBar.js +2 -1
- package/dist/Components/SideBar/SideBar.js +82 -21
- package/dist/Components/SideBar/components/MenuItemBox.d.ts +2 -2
- package/dist/Components/SideBar/components/MenuItemBox.js +4 -3
- package/dist/Components/SideBar/components/MenuItems.d.ts +2 -2
- package/dist/Components/SideBar/components/MenuItems.js +3 -3
- package/dist/Components/SideBar/components/OtherApps.js +5 -1
- package/dist/Components/SideBar/components/OverflowTooltipText.js +4 -5
- package/dist/Components/SideBar/components/PinnedSection.js +2 -2
- package/dist/Components/SideBar/components/TextTruncation.js +11 -6
- package/dist/Components/SideBar/sidebarScale.d.ts +1 -1
- package/dist/Components/SideBar/sidebarScale.js +2 -1
- package/dist/Components/SignInActivityTable/SignInActivityTableProps.d.ts +8 -0
- package/dist/Components/Skeletons/SkeletonProps.d.ts +5 -2
- package/dist/Components/Skeletons/Skeletons.d.ts +1 -1
- package/dist/Components/Skeletons/Skeletons.js +4 -2
- package/dist/Components/SkipLink/SkipLink.d.ts +4 -0
- package/dist/Components/SkipLink/SkipLink.js +54 -0
- package/dist/Components/SkipLink/SkipLinkProps.d.ts +8 -0
- package/dist/Components/SkipLink/SkipLinkProps.js +2 -0
- package/dist/Components/Slider/Slider.d.ts +2 -2
- package/dist/Components/Slider/Slider.js +11 -4
- package/dist/Components/SpecTable/SpecTable.js +2 -1
- package/dist/Components/StageProgress/StageItem.js +2 -5
- package/dist/Components/StageProgress/StageProgress.js +2 -1
- package/dist/Components/StageProgress/StageProgressProps.d.ts +1 -1
- package/dist/Components/StageProgress/StepperStage.js +2 -6
- package/dist/Components/StageProgress/centerInStrip.d.ts +2 -0
- package/dist/Components/StageProgress/centerInStrip.js +15 -0
- package/dist/Components/StatCard/StatCard.d.ts +1 -1
- package/dist/Components/StatCard/StatCard.js +5 -4
- package/dist/Components/StatCard/StatCardProps.d.ts +3 -3
- package/dist/Components/StickyBuyBar/StickyBuyBar.js +1 -1
- package/dist/Components/Table/components/TableActions.js +40 -24
- package/dist/Components/Table/components/TableBody.js +25 -40
- package/dist/Components/Table/components/rowMeasurer.d.ts +8 -0
- package/dist/Components/Table/components/rowMeasurer.js +71 -0
- package/dist/Components/Table/filters/TableFilters.js +2 -13
- package/dist/Components/Table/hooks/useTable.js +12 -9
- package/dist/Components/Tabs/components/CountBadge.js +3 -3
- package/dist/Components/Tabs/components/Tab.d.ts +2 -1
- package/dist/Components/Tabs/components/Tab.js +4 -3
- package/dist/Components/Tabs/components/TabList.js +16 -1
- package/dist/Components/Tag/Tag.d.ts +2 -2
- package/dist/Components/Tag/Tag.js +15 -12
- package/dist/Components/Tag/Tag.styles.js +6 -4
- package/dist/Components/TagInput/TagInput.d.ts +3 -0
- package/dist/Components/TagInput/TagInput.js +99 -0
- package/dist/Components/TagInput/TagInputProps.d.ts +46 -0
- package/dist/Components/TagInput/TagInputProps.js +2 -0
- package/dist/Components/TagInput/tagEntries.d.ts +15 -0
- package/dist/Components/TagInput/tagEntries.js +45 -0
- package/dist/Components/TimePicker/TimePicker.d.ts +3 -0
- package/dist/Components/TimePicker/TimePicker.js +50 -0
- package/dist/Components/TimePicker/TimePickerProps.d.ts +44 -0
- package/dist/Components/TimePicker/TimePickerProps.js +2 -0
- package/dist/Components/TimePicker/timeParts.d.ts +10 -0
- package/dist/Components/TimePicker/timeParts.js +36 -0
- package/dist/Components/Timeline/Timeline.js +11 -9
- package/dist/Components/Toaster/Toaster.js +2 -1
- package/dist/Components/Toggle/TableToggle.js +4 -3
- package/dist/Components/ToggleSwitch/ToggleSwitch.d.ts +3 -2
- package/dist/Components/ToggleSwitch/ToggleSwitch.js +6 -5
- package/dist/Components/ToolTip/ToolTip.js +86 -8
- package/dist/Components/UpgradeButton/UpgradeButton.js +4 -2
- package/dist/Components/UserDetails/UserDetails.js +7 -1
- package/dist/Components/VisuallyHidden/VisuallyHidden.d.ts +15 -0
- package/dist/Components/VisuallyHidden/VisuallyHidden.js +21 -0
- package/dist/Components/VisuallyHidden/VisuallyHiddenProps.d.ts +3 -0
- package/dist/Components/VisuallyHidden/VisuallyHiddenProps.js +2 -0
- package/dist/Components/WizardDialog/WizardDialog.js +10 -5
- package/dist/Components/WizardDialog/WizardDialogProps.d.ts +4 -0
- package/dist/Components/WorkspaceWindow/WorkspaceTrayPreview.js +5 -1
- package/dist/Components/WorkspaceWindow/WorkspaceWindow.js +15 -2
- package/dist/Components/WorkspaceWindow/WorkspaceWindowProps.d.ts +2 -1
- package/dist/Hooks/sharedResizeObserver.d.ts +6 -0
- package/dist/Hooks/sharedResizeObserver.js +77 -0
- package/dist/Hooks/useIsTruncated.js +3 -4
- package/dist/Theme/chakra/Menu.styles.d.ts +1 -1
- package/dist/Theme/chakra/common.web.d.ts +1 -0
- package/dist/Theme/chakra/componentStyles.d.ts +1 -1
- package/dist/Theme/chakra/createBrandTheme.d.ts +3 -0
- package/dist/Theme/chakra/createBrandTheme.js +34 -4
- package/dist/Theme/chakra/focusRing.styles.d.ts +2 -0
- package/dist/Theme/chakra/focusRing.styles.js +5 -1
- package/dist/Theme/chakra/fonts.web.d.ts +2 -0
- package/dist/Theme/chakra/motion.d.ts +14 -0
- package/dist/Theme/chakra/motion.js +26 -1
- package/dist/Theme/index.d.ts +2 -1
- package/dist/Theme/index.js +12 -9
- package/dist/Theme/provider/PixelizeThemeProvider.d.ts +4 -1
- package/dist/Theme/provider/PixelizeThemeProvider.js +21 -12
- package/dist/Theme/provider/ThemeSwitcher.js +3 -2
- package/dist/Theme/themeProps.d.ts +3 -0
- package/dist/Theme/tokens/brands/emerald/palette.dark.js +2 -1
- package/dist/Theme/tokens/brands/index.d.ts +1 -1
- package/dist/Theme/tokens/brands/index.js +14 -13
- package/dist/Theme/tokens/brands/lavender/palette.dark.js +2 -1
- package/dist/Theme/tokens/brands/meadow/palette.dark.js +2 -1
- package/dist/Theme/tokens/brands/radiant/palette.dark.js +2 -1
- package/dist/Theme/tokens/brands/rosewood/palette.dark.js +2 -1
- package/dist/Theme/tokens/brands/skyline/palette.dark.js +2 -1
- package/dist/Theme/tokens/brands/slate/palette.dark.js +2 -1
- package/dist/Theme/tokens/brands/storefront/palette.dark.js +2 -1
- package/dist/Theme/tokens/brands/zinc/palette.dark.js +28 -24
- package/dist/Theme/tokens/builders/color.js +11 -7
- package/dist/Theme/tokens/builders/filledSurface.d.ts +3 -1
- package/dist/Theme/tokens/builders/filledSurface.js +7 -7
- package/dist/Theme/tokens/builders/lazy.d.ts +5 -0
- package/dist/Theme/tokens/builders/lazy.js +55 -0
- package/dist/Theme/tokens/builders/memo.d.ts +9 -0
- package/dist/Theme/tokens/builders/memo.js +28 -0
- package/dist/Theme/tokens/builders/memoByReads.d.ts +2 -0
- package/dist/Theme/tokens/builders/memoByReads.js +50 -0
- package/dist/Theme/tokens/builders/outlineRung.js +10 -2
- package/dist/Theme/tokens/builders/tone.js +5 -4
- package/dist/Theme/tokens/primitives/borderWidths.d.ts +6 -0
- package/dist/Theme/tokens/primitives/borderWidths.js +5 -0
- package/dist/Theme/tokens/primitives/index.d.ts +8 -3
- package/dist/Theme/tokens/primitives/index.js +8 -1
- package/dist/Theme/tokens/primitives/motion.d.ts +25 -2
- package/dist/Theme/tokens/primitives/motion.js +23 -5
- package/dist/Theme/tokens/primitives/optionRowSizes.d.ts +1 -1
- package/dist/Theme/tokens/primitives/optionRowSizes.js +2 -1
- package/dist/Theme/tokens/primitives/radii.d.ts +15 -0
- package/dist/Theme/tokens/primitives/radii.js +14 -0
- package/dist/Theme/tokens/primitives/shadows.d.ts +5 -1
- package/dist/Theme/tokens/primitives/shadows.js +5 -1
- package/dist/Theme/tokens/primitives/states.d.ts +1 -0
- package/dist/Theme/tokens/primitives/states.js +4 -0
- package/dist/Theme/tokens/primitives/typography.d.ts +17 -0
- package/dist/Theme/tokens/primitives/typography.js +21 -1
- package/dist/Theme/tokens/primitives/zIndices.d.ts +1 -0
- package/dist/Theme/tokens/primitives/zIndices.js +1 -0
- package/dist/Utils/formatDate.d.ts +25 -0
- package/dist/Utils/formatDate.js +144 -0
- package/dist/esm/Components/Accordion/Accordion.js +2 -2
- package/dist/esm/Components/AddressCard/AddressCard.js +2 -1
- package/dist/esm/Components/Apexcharts/ApexLineChart/ApexLineChart.js +1 -1
- package/dist/esm/Components/AppSwitcher/AppSwitcher.js +1 -1
- package/dist/esm/Components/AppearanceSettings/AppearanceSettings.js +1 -1
- package/dist/esm/Components/AudioRecorder/AudioRecorder.js +2 -1
- package/dist/esm/Components/Avatar/Avatar.js +6 -4
- package/dist/esm/Components/Backdrop/Backdrop.js +1 -1
- package/dist/esm/Components/BagBar/BagBar.js +2 -1
- package/dist/esm/Components/ButtonGroupIcon/ButtonGroupIcon.js +1 -1
- package/dist/esm/Components/CalendarGrid/CalendarGrid.js +6 -6
- package/dist/esm/Components/CalendarGrid/calendarMath.js +18 -6
- package/dist/esm/Components/Card/PaymentCard/PaymentCard.js +6 -5
- package/dist/esm/Components/CartItem/CartItem.js +2 -1
- package/dist/esm/Components/Checkbox/Checkbox.js +8 -5
- package/dist/esm/Components/CheckoutKit/selectable.js +1 -1
- package/dist/esm/Components/ChoiceCard/ChoiceCard.js +14 -0
- package/dist/esm/Components/ChoiceCard/ChoiceCardGroup.js +4 -0
- package/dist/esm/Components/ChoiceCard/ChoiceCardProps.js +1 -0
- package/dist/esm/Components/CircularProgress/CircularProgress.js +5 -9
- package/dist/esm/Components/CircularProgress/arc.js +13 -0
- package/dist/esm/Components/Common/FormLabel.js +1 -1
- package/dist/esm/Components/Common/FormattedDescription.js +1 -1
- package/dist/esm/Components/Common/HelperText.js +11 -8
- package/dist/esm/Components/Common/fieldStyles.js +2 -1
- package/dist/esm/Components/ContactForm/ContactForm.js +1 -1
- package/dist/esm/Components/CopyButton/CopyButton.js +14 -7
- package/dist/esm/Components/CouponField/CouponField.js +4 -3
- package/dist/esm/Components/CustomModulesTable/EditModuleModal.js +1 -1
- package/dist/esm/Components/DatePicker/CalendarPanel.js +2 -2
- package/dist/esm/Components/DatePicker/DatePicker.js +8 -2
- package/dist/esm/Components/DatePicker/RangeDatePicker.js +8 -6
- package/dist/esm/Components/DatePicker/SingleDatePicker.js +7 -4
- package/dist/esm/Components/DatePicker/ThemeDatePicker.js +7 -4
- package/dist/esm/Components/DatePicker/TimeOnlyPicker.js +5 -3
- package/dist/esm/Components/DatePicker/TimePickerInput.js +8 -6
- package/dist/esm/Components/DescriptionList/DescriptionList.js +3 -3
- package/dist/esm/Components/Dropdown/DropDown.js +12 -4
- package/dist/esm/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtp.js +2 -1
- package/dist/esm/Components/EmptyState/EmptyState.js +2 -2
- package/dist/esm/Components/FileUpload/FileUpload.js +21 -15
- package/dist/esm/Components/FileUpload/useObjectUrl.js +10 -0
- package/dist/esm/Components/FileUploader/FileUploader.js +9 -3
- package/dist/esm/Components/FilterBar/FilterBar.js +2 -2
- package/dist/esm/Components/FilterSidebar/FilterSidebar.js +10 -6
- package/dist/esm/Components/Form/FormWrapper.js +1 -1
- package/dist/esm/Components/FormField/FormField.js +52 -0
- package/dist/esm/Components/FormField/FormFieldProps.js +1 -0
- package/dist/esm/Components/Header/HeaderActions.js +2 -2
- package/dist/esm/Components/Header/components/mobileMenu.js +1 -1
- package/dist/esm/Components/IconButton/IconButton.js +21 -0
- package/dist/esm/Components/IconButton/IconButtonProps.js +1 -0
- package/dist/esm/Components/Input/PhoneNumberInput.js +15 -1
- package/dist/esm/Components/KanbanBoard/AccountCard.js +3 -2
- package/dist/esm/Components/KanbanBoard/AccountRow.js +1 -1
- package/dist/esm/Components/KanbanBoard/KanbanBoard.js +56 -39
- package/dist/esm/Components/KanbanBoard/MeasuredItem.js +6 -14
- package/dist/esm/Components/KanbanBoard/boardStore.js +22 -0
- package/dist/esm/Components/Kbd/Kbd.js +1 -1
- package/dist/esm/Components/LimitReachedModal/LimitReachedModal.js +1 -1
- package/dist/esm/Components/Loading/Loading.js +1 -1
- package/dist/esm/Components/MediaGallery/MediaGallery.js +2 -2
- package/dist/esm/Components/MediaGallery/MediaLightbox.js +2 -1
- package/dist/esm/Components/MediaGallery/glass.js +2 -1
- package/dist/esm/Components/MediaViewer/MediaViewer.js +1 -1
- package/dist/esm/Components/MediaViewer/components/MediaAudioPlayer.js +7 -7
- package/dist/esm/Components/MediaViewer/components/MediaImageViewer.js +1 -1
- package/dist/esm/Components/MediaViewer/components/MediaScrubber.js +5 -1
- package/dist/esm/Components/MediaViewer/components/MediaVideoPlayer.js +7 -7
- package/dist/esm/Components/MediaViewer/components/PlaybackTimeline.js +38 -0
- package/dist/esm/Components/MediaViewer/components/TileChip.js +1 -1
- package/dist/esm/Components/Modal/Modal.js +1 -1
- package/dist/esm/Components/MoreItems/MoreItems.js +2 -2
- package/dist/esm/Components/NavigationBar/NavigationBar.js +2 -2
- package/dist/esm/Components/NoteTextArea/NoteTextArea.js +18 -4
- package/dist/esm/Components/Notification/Notification.js +17 -3
- package/dist/esm/Components/NotificationBell/NotificationBell.js +2 -1
- package/dist/esm/Components/NotificationBell/NotificationItem.js +1 -1
- package/dist/esm/Components/NotificationBell/NotificationList.js +1 -1
- package/dist/esm/Components/OffersList/OffersList.js +2 -1
- package/dist/esm/Components/OptionChip/OptionChip.js +3 -2
- package/dist/esm/Components/OrderStatusTimeline/OrderStatusTimeline.js +2 -1
- package/dist/esm/Components/OrderSummary/OrderSummary.js +5 -5
- package/dist/esm/Components/OrganizationDetails/OrganizationDetails.js +7 -1
- package/dist/esm/Components/PageHeader/PageHeader.js +2 -2
- package/dist/esm/Components/Pagination/Pagination.js +42 -0
- package/dist/esm/Components/Pagination/PaginationProps.js +6 -0
- package/dist/esm/Components/Pagination/pageWindow.js +16 -0
- package/dist/esm/Components/PaymentOption/PaymentOption.js +1 -1
- package/dist/esm/Components/PersonChip/PersonChip.js +2 -2
- package/dist/esm/Components/PinInput/PinInput.js +14 -2
- package/dist/esm/Components/PincodeChecker/PincodeChecker.js +4 -4
- package/dist/esm/Components/PlanPill/PlanPill.js +2 -1
- package/dist/esm/Components/PriceBlock/PriceBlock.js +3 -3
- package/dist/esm/Components/Primitives/Primitives.js +1 -1
- package/dist/esm/Components/ProductBadges/ProductBadges.js +2 -1
- package/dist/esm/Components/ProductCard/ProductCard.js +1 -1
- package/dist/esm/Components/ProductCard/ProductCardAction.js +3 -3
- package/dist/esm/Components/ProductCard/ProductCardSwatches.js +2 -1
- package/dist/esm/Components/ProductCard/cardMetrics.js +2 -1
- package/dist/esm/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +3 -2
- package/dist/esm/Components/QuantityStepper/QuantityStepper.js +2 -1
- package/dist/esm/Components/RadioButton/RadioButton.js +7 -4
- package/dist/esm/Components/RangeSlider/RangeSlider.js +3 -3
- package/dist/esm/Components/Rating/Rating.js +2 -1
- package/dist/esm/Components/Reorder/Reorder.js +3 -2
- package/dist/esm/Components/ReviewList/ReviewList.js +3 -3
- package/dist/esm/Components/ReviewSummary/ReviewSummary.js +3 -3
- package/dist/esm/Components/SaveBar/SaveBar.js +2 -2
- package/dist/esm/Components/Search/Search.js +2 -9
- package/dist/esm/Components/Search/ctrlShortcut.js +25 -0
- package/dist/esm/Components/SearchSelect/SearchSelect.js +120 -33
- package/dist/esm/Components/SegmentedControl/SegmentedControl.js +11 -6
- package/dist/esm/Components/Select/SelectPopup.js +6 -4
- package/dist/esm/Components/SelectSearch/SelectSearch.js +5 -4
- package/dist/esm/Components/SettingRow/SettingRow.js +1 -1
- package/dist/esm/Components/SideBar/SecondaryBar.js +2 -1
- package/dist/esm/Components/SideBar/SideBar.js +83 -22
- package/dist/esm/Components/SideBar/components/MenuItemBox.js +4 -3
- package/dist/esm/Components/SideBar/components/MenuItems.js +4 -4
- package/dist/esm/Components/SideBar/components/OtherApps.js +2 -1
- package/dist/esm/Components/SideBar/components/OverflowTooltipText.js +4 -5
- package/dist/esm/Components/SideBar/components/PinnedSection.js +2 -2
- package/dist/esm/Components/SideBar/components/TextTruncation.js +9 -7
- package/dist/esm/Components/SideBar/sidebarScale.js +2 -1
- package/dist/esm/Components/Skeletons/Skeletons.js +4 -2
- package/dist/esm/Components/SkipLink/SkipLink.js +50 -0
- package/dist/esm/Components/SkipLink/SkipLinkProps.js +1 -0
- package/dist/esm/Components/Slider/Slider.js +11 -4
- package/dist/esm/Components/SpecTable/SpecTable.js +2 -1
- package/dist/esm/Components/StageProgress/StageItem.js +2 -5
- package/dist/esm/Components/StageProgress/StageProgress.js +2 -1
- package/dist/esm/Components/StageProgress/StepperStage.js +2 -6
- package/dist/esm/Components/StageProgress/centerInStrip.js +11 -0
- package/dist/esm/Components/StatCard/StatCard.js +5 -4
- package/dist/esm/Components/StickyBuyBar/StickyBuyBar.js +2 -2
- package/dist/esm/Components/Table/components/TableActions.js +42 -26
- package/dist/esm/Components/Table/components/TableBody.js +25 -40
- package/dist/esm/Components/Table/components/rowMeasurer.js +66 -0
- package/dist/esm/Components/Table/filters/TableFilters.js +3 -14
- package/dist/esm/Components/Table/hooks/useTable.js +12 -9
- package/dist/esm/Components/Tabs/components/CountBadge.js +3 -3
- package/dist/esm/Components/Tabs/components/Tab.js +5 -4
- package/dist/esm/Components/Tabs/components/TabList.js +16 -1
- package/dist/esm/Components/Tag/Tag.js +11 -8
- package/dist/esm/Components/Tag/Tag.styles.js +6 -4
- package/dist/esm/Components/TagInput/TagInput.js +94 -0
- package/dist/esm/Components/TagInput/TagInputProps.js +1 -0
- package/dist/esm/Components/TagInput/tagEntries.js +39 -0
- package/dist/esm/Components/TimePicker/TimePicker.js +45 -0
- package/dist/esm/Components/TimePicker/TimePickerProps.js +1 -0
- package/dist/esm/Components/TimePicker/timeParts.js +26 -0
- package/dist/esm/Components/Timeline/Timeline.js +11 -9
- package/dist/esm/Components/Toaster/Toaster.js +2 -1
- package/dist/esm/Components/Toggle/TableToggle.js +4 -3
- package/dist/esm/Components/ToggleSwitch/ToggleSwitch.js +7 -5
- package/dist/esm/Components/ToolTip/ToolTip.js +89 -11
- package/dist/esm/Components/UpgradeButton/UpgradeButton.js +4 -2
- package/dist/esm/Components/UserDetails/UserDetails.js +7 -1
- package/dist/esm/Components/VisuallyHidden/VisuallyHidden.js +18 -0
- package/dist/esm/Components/VisuallyHidden/VisuallyHiddenProps.js +1 -0
- package/dist/esm/Components/WizardDialog/WizardDialog.js +11 -6
- package/dist/esm/Components/WorkspaceWindow/WorkspaceTrayPreview.js +2 -1
- package/dist/esm/Components/WorkspaceWindow/WorkspaceWindow.js +13 -3
- package/dist/esm/Hooks/sharedResizeObserver.js +73 -0
- package/dist/esm/Hooks/useIsTruncated.js +3 -4
- package/dist/esm/Theme/chakra/createBrandTheme.js +34 -4
- package/dist/esm/Theme/chakra/focusRing.styles.js +3 -0
- package/dist/esm/Theme/chakra/motion.js +25 -0
- package/dist/esm/Theme/index.js +12 -9
- package/dist/esm/Theme/provider/PixelizeThemeProvider.js +22 -13
- package/dist/esm/Theme/provider/ThemeSwitcher.js +3 -2
- package/dist/esm/Theme/tokens/brands/emerald/palette.dark.js +2 -1
- package/dist/esm/Theme/tokens/brands/index.js +14 -13
- package/dist/esm/Theme/tokens/brands/lavender/palette.dark.js +2 -1
- package/dist/esm/Theme/tokens/brands/meadow/palette.dark.js +2 -1
- package/dist/esm/Theme/tokens/brands/radiant/palette.dark.js +2 -1
- package/dist/esm/Theme/tokens/brands/rosewood/palette.dark.js +2 -1
- package/dist/esm/Theme/tokens/brands/skyline/palette.dark.js +2 -1
- package/dist/esm/Theme/tokens/brands/slate/palette.dark.js +2 -1
- package/dist/esm/Theme/tokens/brands/storefront/palette.dark.js +2 -1
- package/dist/esm/Theme/tokens/brands/zinc/palette.dark.js +28 -24
- package/dist/esm/Theme/tokens/builders/color.js +10 -6
- package/dist/esm/Theme/tokens/builders/filledSurface.js +7 -7
- package/dist/esm/Theme/tokens/builders/lazy.js +49 -0
- package/dist/esm/Theme/tokens/builders/memo.js +21 -0
- package/dist/esm/Theme/tokens/builders/memoByReads.js +46 -0
- package/dist/esm/Theme/tokens/builders/outlineRung.js +10 -2
- package/dist/esm/Theme/tokens/builders/tone.js +5 -4
- package/dist/esm/Theme/tokens/primitives/borderWidths.js +2 -0
- package/dist/esm/Theme/tokens/primitives/index.js +5 -3
- package/dist/esm/Theme/tokens/primitives/motion.js +20 -4
- package/dist/esm/Theme/tokens/primitives/optionRowSizes.js +2 -1
- package/dist/esm/Theme/tokens/primitives/radii.js +13 -0
- package/dist/esm/Theme/tokens/primitives/shadows.js +3 -1
- package/dist/esm/Theme/tokens/primitives/states.js +1 -0
- package/dist/esm/Theme/tokens/primitives/typography.js +20 -0
- package/dist/esm/Theme/tokens/primitives/zIndices.js +1 -0
- package/dist/esm/Utils/formatDate.js +138 -0
- package/dist/esm/index.js +18 -2
- package/dist/index.d.ts +33 -5
- package/dist/index.js +47 -4
- package/package.json +1 -1
|
@@ -2,9 +2,9 @@ import { buildDarkPalette } from "../../builders/buildDarkPalette.js";
|
|
|
2
2
|
import { rotateScaleHue } from "../../builders/brandInk.js";
|
|
3
3
|
import { buildPrimaryOpacity, buildPrimaryShadowTint } from "../../builders/buildBrandTokens.js";
|
|
4
4
|
import { pickAccentText, onFilled } from "../../builders/accentText.js";
|
|
5
|
+
import { lazyPalette } from "../../builders/lazy.js";
|
|
5
6
|
import light from "./palette.light.js";
|
|
6
7
|
// NOTE: zinc dark INVERTS the primary (near-white fill, dark label) to match shadcn — every other brand lifts its own hue instead. Most ramps below are literals ported from Mobile-Components.
|
|
7
|
-
const derived = buildDarkPalette(light);
|
|
8
8
|
const PRIMARY_500 = "#e4e4e7";
|
|
9
9
|
const SECONDARY_500 = "#a1a1aa";
|
|
10
10
|
const primary = {
|
|
@@ -146,28 +146,32 @@ const table = {
|
|
|
146
146
|
900: "#a1a1aa",
|
|
147
147
|
},
|
|
148
148
|
};
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
149
|
+
const buildPalette = () => {
|
|
150
|
+
const derived = buildDarkPalette(light);
|
|
151
|
+
return {
|
|
152
|
+
...derived,
|
|
153
|
+
gradient: { from: PRIMARY_500, to: "#a1a1aa" },
|
|
154
|
+
primary,
|
|
155
|
+
secondary,
|
|
156
|
+
tertiary: { ...rotateScaleHue(secondary), opacity: secondary.opacity },
|
|
157
|
+
// NOTE: backgroundColor/sidebar fall through to `...derived` — mobile's literals collapse distinct elevation steps, breaking darkSurfaces.test.ts.
|
|
158
|
+
background,
|
|
159
|
+
text,
|
|
160
|
+
header,
|
|
161
|
+
gray,
|
|
162
|
+
border,
|
|
163
|
+
boxborder,
|
|
164
|
+
placeholder,
|
|
165
|
+
disabled,
|
|
166
|
+
table,
|
|
167
|
+
accentText: pickAccentText(primary, derived.backgroundColor.main),
|
|
168
|
+
onPrimary: onFilled(PRIMARY_500, derived.white, derived.black),
|
|
169
|
+
boxShadow: {
|
|
170
|
+
primary: buildPrimaryShadowTint(PRIMARY_500),
|
|
171
|
+
error: derived.boxShadow.error,
|
|
172
|
+
default: "#00000080",
|
|
173
|
+
},
|
|
174
|
+
};
|
|
172
175
|
};
|
|
176
|
+
const palette = lazyPalette(light, buildPalette);
|
|
173
177
|
export default palette;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// Pure color math, no dependencies or platform APIs — safe for the mobile port.
|
|
2
|
+
import { memoize } from "./memo.js";
|
|
2
3
|
const clamp = (n, min, max) => Math.min(max, Math.max(min, n));
|
|
3
4
|
// NOTE: #rrggbbaa throws on purpose — alpha over an unknown backdrop has no defined luminance; composite first.
|
|
4
5
|
export function hexToRgb(hex) {
|
|
@@ -105,14 +106,17 @@ export function mix(a, b, weight) {
|
|
|
105
106
|
b: ca.b + (cb.b - ca.b) * w,
|
|
106
107
|
});
|
|
107
108
|
}
|
|
109
|
+
const linearChannel = (v) => {
|
|
110
|
+
const c = v / 255;
|
|
111
|
+
return c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);
|
|
112
|
+
};
|
|
113
|
+
const luminanceOf = memoize((hex) => {
|
|
114
|
+
const { r, g, b } = hexToRgb(hex);
|
|
115
|
+
return 0.2126 * linearChannel(r) + 0.7152 * linearChannel(g) + 0.0722 * linearChannel(b);
|
|
116
|
+
}, (hex) => hex, 4096);
|
|
108
117
|
/** WCAG 2.1 relative luminance. */
|
|
109
118
|
export function relativeLuminance(hex) {
|
|
110
|
-
|
|
111
|
-
const channel = (v) => {
|
|
112
|
-
const c = v / 255;
|
|
113
|
-
return c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);
|
|
114
|
-
};
|
|
115
|
-
return 0.2126 * channel(r) + 0.7152 * channel(g) + 0.0722 * channel(b);
|
|
119
|
+
return luminanceOf(hex);
|
|
116
120
|
}
|
|
117
121
|
/** WCAG 2.1 contrast ratio, 1–21. AA body text needs >= 4.5. */
|
|
118
122
|
export function contrastRatio(a, b) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { contrastRatio } from "./color.js";
|
|
2
2
|
import { AA_NORMAL_TEXT, isDarkCanvas, onFilled } from "./accentText.js";
|
|
3
3
|
import { AA_NON_TEXT } from "./outlineRung.js";
|
|
4
|
+
import { memoize, scaleKey } from "./memo.js";
|
|
4
5
|
const RUNGS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
|
|
5
6
|
// NOTE: "darker than [500]" is [600]/[700] in light but [400]/[300] in dark, since dark ramps run dark -> light.
|
|
6
7
|
const FILL_STEP_RUNGS = { light: [600, 700], dark: [400, 300] };
|
|
@@ -51,12 +52,8 @@ export const darkerFillRung = (scale, canvas, white, step) => {
|
|
|
51
52
|
};
|
|
52
53
|
/** Label ink for a specific fill swatch — always `onFilled`, exported for style configs. */
|
|
53
54
|
export const labelOnFill = (fill, white, black) => onFilled(fill, white, black);
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const { white, black, backgroundColor, background } = colors;
|
|
57
|
-
const canvas = contrastRatio(scale[500], backgroundColor.main) <= contrastRatio(scale[500], background[50])
|
|
58
|
-
? backgroundColor.main
|
|
59
|
-
: background[50];
|
|
55
|
+
const filledSurfaceMemo = memoize((scale, white, black, main, card) => {
|
|
56
|
+
const canvas = contrastRatio(scale[500], main) <= contrastRatio(scale[500], card) ? main : card;
|
|
60
57
|
const rung = solidFillRung(scale, white, canvas);
|
|
61
58
|
const fill = scale[rung];
|
|
62
59
|
const hoverRung = darkerFillRung(scale, canvas, white, 0);
|
|
@@ -74,4 +71,7 @@ export const resolveFilledSurface = (scale, colors) => {
|
|
|
74
71
|
activeFill,
|
|
75
72
|
activeColor: labelOnFill(activeFill, white, black),
|
|
76
73
|
};
|
|
77
|
-
};
|
|
74
|
+
}, (scale, white, black, main, card) => `${scaleKey(scale)}|${white}|${black}|${main}|${card}`);
|
|
75
|
+
export const resolveFilledSurface = (scale, colors) => ({
|
|
76
|
+
...filledSurfaceMemo(scale, colors.white, colors.black, colors.backgroundColor.main, colors.background[50]),
|
|
77
|
+
});
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const dataProperty = (value) => ({
|
|
2
|
+
value,
|
|
3
|
+
writable: true,
|
|
4
|
+
enumerable: true,
|
|
5
|
+
configurable: true,
|
|
6
|
+
});
|
|
7
|
+
// NOTE: first read of any key builds once and swaps every getter for a plain data property.
|
|
8
|
+
export const lazyObject = (keys, build) => {
|
|
9
|
+
const target = {};
|
|
10
|
+
let built;
|
|
11
|
+
const materialise = () => {
|
|
12
|
+
if (built)
|
|
13
|
+
return built;
|
|
14
|
+
const value = build();
|
|
15
|
+
built = value;
|
|
16
|
+
if (!Object.isSealed(target)) {
|
|
17
|
+
keys.forEach((key) => Object.defineProperty(target, key, dataProperty(value[key])));
|
|
18
|
+
}
|
|
19
|
+
return value;
|
|
20
|
+
};
|
|
21
|
+
keys.forEach((key) => Object.defineProperty(target, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
configurable: true,
|
|
24
|
+
get: () => materialise()[key],
|
|
25
|
+
set: (next) => {
|
|
26
|
+
materialise();
|
|
27
|
+
Object.defineProperty(target, key, dataProperty(next));
|
|
28
|
+
},
|
|
29
|
+
}));
|
|
30
|
+
return target;
|
|
31
|
+
};
|
|
32
|
+
// NOTE: order matches finalizeLightPalette and buildDarkPalette, which append these after the source keys.
|
|
33
|
+
const DERIVED = {
|
|
34
|
+
accentText: true,
|
|
35
|
+
textMuted: true,
|
|
36
|
+
semanticText: true,
|
|
37
|
+
onPrimary: true,
|
|
38
|
+
onSemantic: true,
|
|
39
|
+
focusRing: true,
|
|
40
|
+
surfaceRaised: true,
|
|
41
|
+
star: true,
|
|
42
|
+
};
|
|
43
|
+
const DERIVED_KEYS = Object.keys(DERIVED);
|
|
44
|
+
export const paletteKeys = (source) => [
|
|
45
|
+
...Object.keys(source),
|
|
46
|
+
...DERIVED_KEYS.filter((key) => !(key in source)),
|
|
47
|
+
];
|
|
48
|
+
/** A palette derived from `source` on its first read; same keys, order and values as `build()`. */
|
|
49
|
+
export const lazyPalette = (source, build) => lazyObject(paletteKeys(source), build);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const registry = [];
|
|
2
|
+
export const MEMO_LIMIT = 1024;
|
|
3
|
+
// NOTE: clear-on-overflow, not LRU — a hit stays one Map lookup; contrast walks mint many one-off keys.
|
|
4
|
+
export const memoize = (fn, keyOf, limit = MEMO_LIMIT) => {
|
|
5
|
+
const cache = new Map();
|
|
6
|
+
registry.push({ cache, limit });
|
|
7
|
+
return (...args) => {
|
|
8
|
+
const key = keyOf(...args);
|
|
9
|
+
const hit = cache.get(key);
|
|
10
|
+
if (hit !== undefined)
|
|
11
|
+
return hit;
|
|
12
|
+
const value = fn(...args);
|
|
13
|
+
if (cache.size >= limit)
|
|
14
|
+
cache.clear();
|
|
15
|
+
cache.set(key, value);
|
|
16
|
+
return value;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export const scaleKey = (s) => `${s[50]}|${s[100]}|${s[200]}|${s[300]}|${s[400]}|${s[500]}|${s[600]}|${s[700]}|${s[800]}|${s[900]}`;
|
|
20
|
+
export const memoCaches = () => registry.map(({ cache, limit }) => ({ size: cache.size, limit }));
|
|
21
|
+
export const clearMemoCaches = () => registry.forEach(({ cache }) => cache.clear());
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export const READS_MEMO_LIMIT = 16;
|
|
2
|
+
// NOTE: keyed on exactly the props a call read; a call that enumerates or probes props is never cached.
|
|
3
|
+
export const memoiseByReads = (fn, limit = READS_MEMO_LIMIT) => {
|
|
4
|
+
const entries = [];
|
|
5
|
+
return (props) => {
|
|
6
|
+
const source = props;
|
|
7
|
+
const hit = entries.find((entry) => entry.keys.every((key, i) => Object.is(source[key], entry.values[i])));
|
|
8
|
+
if (hit)
|
|
9
|
+
return hit.result;
|
|
10
|
+
const reads = new Map();
|
|
11
|
+
let opaque = false;
|
|
12
|
+
const tracked = new Proxy(props, {
|
|
13
|
+
get(target, key, receiver) {
|
|
14
|
+
const value = Reflect.get(target, key, receiver);
|
|
15
|
+
if (typeof key !== "string")
|
|
16
|
+
opaque = true;
|
|
17
|
+
else if (!reads.has(key))
|
|
18
|
+
reads.set(key, value);
|
|
19
|
+
return value;
|
|
20
|
+
},
|
|
21
|
+
has(target, key) {
|
|
22
|
+
opaque = true;
|
|
23
|
+
return Reflect.has(target, key);
|
|
24
|
+
},
|
|
25
|
+
ownKeys(target) {
|
|
26
|
+
opaque = true;
|
|
27
|
+
return Reflect.ownKeys(target);
|
|
28
|
+
},
|
|
29
|
+
getOwnPropertyDescriptor(target, key) {
|
|
30
|
+
opaque = true;
|
|
31
|
+
return Reflect.getOwnPropertyDescriptor(target, key);
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
const result = fn(tracked);
|
|
35
|
+
if (!opaque) {
|
|
36
|
+
if (entries.length >= limit)
|
|
37
|
+
entries.shift();
|
|
38
|
+
entries.push({
|
|
39
|
+
keys: [...reads.keys()],
|
|
40
|
+
values: [...reads.values()],
|
|
41
|
+
result,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { contrastRatio, hexToHsl, relativeLuminance, withLightness } from "./color.js";
|
|
2
|
+
import { memoize } from "./memo.js";
|
|
2
3
|
export const MIN_PERCEPTIBLE_STEP = 1.15;
|
|
3
4
|
export const AA_NON_TEXT = 3;
|
|
4
5
|
// NOTE: settles below AA_NON_TEXT — focusRing.ts covers the 1.4.11 gate instead.
|
|
@@ -22,7 +23,8 @@ export function tintStep(seed, backdrop, target) {
|
|
|
22
23
|
}
|
|
23
24
|
return withLightness(seed, away > 0 ? 100 : 0, s);
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
+
const contrastKey = (hex, backdrop, target) => `${hex}|${backdrop}|${target}`;
|
|
27
|
+
const liftMemo = memoize((hex, backdrop, target) => {
|
|
26
28
|
if (contrastRatio(hex, backdrop) >= target)
|
|
27
29
|
return hex;
|
|
28
30
|
const { s, l: start } = hexToHsl(hex);
|
|
@@ -38,8 +40,11 @@ export function liftToContrast(hex, backdrop, target = AA_NON_TEXT) {
|
|
|
38
40
|
}
|
|
39
41
|
const ends = [withLightness(hex, 100, s), withLightness(hex, 0, s)];
|
|
40
42
|
return contrastRatio(ends[0], backdrop) >= contrastRatio(ends[1], backdrop) ? ends[0] : ends[1];
|
|
43
|
+
}, contrastKey);
|
|
44
|
+
export function liftToContrast(hex, backdrop, target = AA_NON_TEXT) {
|
|
45
|
+
return liftMemo(hex, backdrop, target);
|
|
41
46
|
}
|
|
42
|
-
|
|
47
|
+
const softenMemo = memoize((hex, backdrop, target) => {
|
|
43
48
|
if (contrastRatio(hex, backdrop) <= target)
|
|
44
49
|
return hex;
|
|
45
50
|
const { s, l: start } = hexToHsl(hex);
|
|
@@ -52,6 +57,9 @@ export function softenToContrast(hex, backdrop, target) {
|
|
|
52
57
|
softest = next;
|
|
53
58
|
}
|
|
54
59
|
return softest;
|
|
60
|
+
}, contrastKey);
|
|
61
|
+
export function softenToContrast(hex, backdrop, target) {
|
|
62
|
+
return softenMemo(hex, backdrop, target);
|
|
55
63
|
}
|
|
56
64
|
// NOTE: border[*] is untouched — it draws decorative table gridlines, outside 1.4.11.
|
|
57
65
|
export function withOutlineRung(palette) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isDarkCanvas } from "./accentText.js";
|
|
2
2
|
import { compositeOver } from "./color.js";
|
|
3
3
|
import { liftToContrast } from "./outlineRung.js";
|
|
4
|
+
import { memoize } from "./memo.js";
|
|
4
5
|
export const TONES = ["neutral", "info", "success", "warning", "error"];
|
|
5
6
|
export const toneToColorScheme = {
|
|
6
7
|
neutral: "gray",
|
|
@@ -26,10 +27,8 @@ const SOFT_INK_TARGET = 6.5;
|
|
|
26
27
|
const withAlpha = (hex, alpha) => `${hex}${Math.round(Math.min(1, Math.max(0, alpha)) * 255)
|
|
27
28
|
.toString(16)
|
|
28
29
|
.padStart(2, "0")}`;
|
|
29
|
-
|
|
30
|
-
export const resolveSoftTone = (colors, scale, surface = colors.backgroundColor.main) => {
|
|
30
|
+
const softToneMemo = memoize((hue, surface) => {
|
|
31
31
|
const dark = isDarkCanvas(surface);
|
|
32
|
-
const hue = scale[500];
|
|
33
32
|
const bgAlpha = dark ? BG_ALPHA.dark : BG_ALPHA.light;
|
|
34
33
|
const ringAlpha = dark ? RING_ALPHA.dark : RING_ALPHA.light;
|
|
35
34
|
const bg = withAlpha(hue, bgAlpha);
|
|
@@ -44,4 +43,6 @@ export const resolveSoftTone = (colors, scale, surface = colors.backgroundColor.
|
|
|
44
43
|
activeBg: withAlpha(hue, bgAlpha + STATE_STEP * 1.75),
|
|
45
44
|
activeBorder: withAlpha(hue, ringAlpha + STATE_STEP * 2),
|
|
46
45
|
};
|
|
47
|
-
};
|
|
46
|
+
}, (hue, surface) => `${hue}|${surface}`);
|
|
47
|
+
/** Translucent tint of the scale's own `[500]` hue — one rung for every scheme, any surface. */
|
|
48
|
+
export const resolveSoftTone = (colors, scale, surface = colors.backgroundColor.main) => ({ ...softToneMemo(scale[500], surface) });
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export { default as space } from "./space.js";
|
|
2
2
|
export { default as sizes } from "./sizes.js";
|
|
3
|
-
export { default as radii } from "./radii.js";
|
|
4
|
-
export
|
|
3
|
+
export { default as radii, RADIUS_ROLE } from "./radii.js";
|
|
4
|
+
export * from "./borderWidths.js";
|
|
5
|
+
export * from "./states.js";
|
|
6
|
+
export { default as shadows, shadowsDark, shadowsFor } from "./shadows.js";
|
|
5
7
|
export { default as zIndices } from "./zIndices.js";
|
|
6
8
|
export { default as breakpoints } from "./breakpoints.js";
|
|
7
9
|
export { default as lineHeights } from "./lineHeights.js";
|
|
8
10
|
export { default as letterSpacings } from "./letterSpacings.js";
|
|
9
|
-
export { default as typography, fonts, fontSizes, fontWeights } from "./typography.js";
|
|
11
|
+
export { default as typography, fonts, fontSizes, fontWeights, NUMERIC_TEXT, TEXT_STYLES } from "./typography.js";
|
|
10
12
|
export * from "./controlSizes.js";
|
|
11
13
|
export * from "./motion.js";
|
|
@@ -1,8 +1,24 @@
|
|
|
1
|
-
export const MOTION_MS = { fast: 150, base: 200 };
|
|
2
|
-
|
|
1
|
+
export const MOTION_MS = { fast: 150, base: 200, enter: 200, exit: 200 };
|
|
2
|
+
/** Pebble easing curves (mobile `pebble-spec.json` motion.easing); `in` is Pebble's `accelerate`. */
|
|
3
|
+
export const MOTION_BEZIER = {
|
|
4
|
+
standard: [0.2, 0, 0, 1],
|
|
5
|
+
out: [0.16, 1, 0.3, 1],
|
|
6
|
+
in: [0.3, 0, 1, 1],
|
|
7
|
+
};
|
|
8
|
+
export const cubicBezierCss = (curve) => `cubic-bezier(${curve.join(", ")})`;
|
|
9
|
+
export const MOTION_EASE = cubicBezierCss(MOTION_BEZIER.standard);
|
|
10
|
+
export const MOTION_EASE_OUT = cubicBezierCss(MOTION_BEZIER.out);
|
|
11
|
+
export const MOTION_EASE_IN = cubicBezierCss(MOTION_BEZIER.in);
|
|
12
|
+
/** Periods for loops that are feedback, not transitions: skeleton pulse, spinner turn, progress sweep. */
|
|
13
|
+
export const MOTION_LOOP_MS = { pulse: 700, spin: 800, sweep: 1200 };
|
|
3
14
|
/** A `transition` value for named properties only — `all` also animates layout and colour flips. */
|
|
4
|
-
export const transitionFor = (properties, speed = "fast") => {
|
|
15
|
+
export const transitionFor = (properties, speed = "fast", curve = "standard") => {
|
|
5
16
|
if (properties.includes("all"))
|
|
6
17
|
throw new Error("transitionFor: name the properties, never `all`");
|
|
7
|
-
|
|
18
|
+
const ease = cubicBezierCss(MOTION_BEZIER[curve]);
|
|
19
|
+
return properties.map((p) => `${p} ${MOTION_MS[speed]}ms ${ease}`).join(", ");
|
|
20
|
+
};
|
|
21
|
+
export const motionTransition = (speed = "base", curve = "standard") => {
|
|
22
|
+
const [x1, y1, x2, y2] = MOTION_BEZIER[curve];
|
|
23
|
+
return { duration: MOTION_MS[speed] / 1000, ease: [x1, y1, x2, y2] };
|
|
8
24
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RADIUS_ROLE } from "./radii.js";
|
|
1
2
|
/** One density for every option row — Select, SearchSelect, SelectSearch, table filters and Chakra's MenuItem. */
|
|
2
3
|
export const OPTION_ROW_SIZES = {
|
|
3
4
|
xs: {
|
|
@@ -21,5 +22,5 @@ export const OPTION_ROW_SIZES = {
|
|
|
21
22
|
avatarSize: "sm", virtualRowHeightPx: 40,
|
|
22
23
|
},
|
|
23
24
|
};
|
|
24
|
-
export const OPTION_ROW_RADIUS =
|
|
25
|
+
export const OPTION_ROW_RADIUS = RADIUS_ROLE.option;
|
|
25
26
|
export const optionRowSpec = (size) => OPTION_ROW_SIZES[size];
|
|
@@ -9,4 +9,17 @@ const radii = {
|
|
|
9
9
|
"3xl": "1.5rem",
|
|
10
10
|
full: "9999px",
|
|
11
11
|
};
|
|
12
|
+
/** Radius by the role a surface plays; read this instead of picking a scale step. */
|
|
13
|
+
export const RADIUS_ROLE = {
|
|
14
|
+
control: "lg",
|
|
15
|
+
field: "lg",
|
|
16
|
+
option: "md",
|
|
17
|
+
tooltip: "lg",
|
|
18
|
+
chip: "full",
|
|
19
|
+
card: "xl",
|
|
20
|
+
float: "xl",
|
|
21
|
+
dialog: "xl",
|
|
22
|
+
sheet: "xl",
|
|
23
|
+
media: "lg",
|
|
24
|
+
};
|
|
12
25
|
export default radii;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Light-mode
|
|
1
|
+
/** Light-mode ramp. A theme should carry `shadowsFor(mode)`, never this one in dark. */
|
|
2
2
|
const shadows = {
|
|
3
3
|
xs: "0 0 0 1px rgba(0, 0, 0, 0.05)",
|
|
4
4
|
sm: "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
|
|
@@ -12,4 +12,6 @@ const shadows = {
|
|
|
12
12
|
none: "none",
|
|
13
13
|
darkLg: "0 10px 15px -3px rgba(0, 0, 0, 0.5), 0 4px 6px -2px rgba(0, 0, 0, 0.5)",
|
|
14
14
|
};
|
|
15
|
+
export const shadowsDark = { ...shadows };
|
|
16
|
+
export const shadowsFor = (mode) => mode === "dark" ? shadowsDark : shadows;
|
|
15
17
|
export default shadows;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const DISABLED_OPACITY = 0.5;
|
|
@@ -5,7 +5,9 @@ export const fonts = {
|
|
|
5
5
|
mono: "Inter Variable, sans-serif",
|
|
6
6
|
};
|
|
7
7
|
export const fontSizes = {
|
|
8
|
+
"xs-minus": "0.6875rem",
|
|
8
9
|
xs: "0.75rem",
|
|
10
|
+
"xs-plus": "0.8125rem",
|
|
9
11
|
sm: "0.875rem",
|
|
10
12
|
md: "1rem",
|
|
11
13
|
lg: "1.125rem",
|
|
@@ -30,5 +32,23 @@ export const fontWeights = {
|
|
|
30
32
|
extrabold: 800,
|
|
31
33
|
black: 900,
|
|
32
34
|
};
|
|
35
|
+
export const NUMERIC_TEXT = { fontVariantNumeric: "tabular-nums" };
|
|
36
|
+
/** Pebble's text variants at web density; bound to Chakra as `textStyle="<name>"`. */
|
|
37
|
+
export const TEXT_STYLES = {
|
|
38
|
+
title: { fontSize: "1.5rem", lineHeight: "1.875rem", fontWeight: 700, letterSpacing: "-0.02em" },
|
|
39
|
+
heading: { fontSize: "1.25rem", lineHeight: "1.625rem", fontWeight: 600, letterSpacing: "-0.015em" },
|
|
40
|
+
subheading: { fontSize: "1rem", lineHeight: "1.375rem", fontWeight: 600, letterSpacing: "-0.006em" },
|
|
41
|
+
body: { fontSize: "0.875rem", lineHeight: "1.25rem", fontWeight: 400, letterSpacing: "0" },
|
|
42
|
+
ui: { fontSize: "0.8125rem", lineHeight: "1.125rem", fontWeight: 500, letterSpacing: "0" },
|
|
43
|
+
label: { fontSize: "0.8125rem", lineHeight: "1.125rem", fontWeight: 600, letterSpacing: "0" },
|
|
44
|
+
caption: { fontSize: "0.75rem", lineHeight: "1rem", fontWeight: 500, letterSpacing: "0" },
|
|
45
|
+
overline: {
|
|
46
|
+
fontSize: "0.6875rem",
|
|
47
|
+
lineHeight: "0.875rem",
|
|
48
|
+
fontWeight: 600,
|
|
49
|
+
letterSpacing: "0.06em",
|
|
50
|
+
textTransform: "uppercase",
|
|
51
|
+
},
|
|
52
|
+
};
|
|
33
53
|
const typography = { fonts, fontSizes, fontWeights };
|
|
34
54
|
export default typography;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { DEFAULT_LOCALE } from "./price.js";
|
|
2
|
+
export const DEFAULT_DATE_FALLBACK = "—";
|
|
3
|
+
const DAY_KEY = /^(\d{4})-(\d{2})-(\d{2})$/;
|
|
4
|
+
const EPOCH_DIGITS = /^-?\d+$/;
|
|
5
|
+
const ENGLISH = /^en(?:-|$)/i;
|
|
6
|
+
const RUNTIME_SPACES = /[\u2009\u202f]/g;
|
|
7
|
+
const ONE_DIGIT = /^\d$/;
|
|
8
|
+
const formatters = new Map();
|
|
9
|
+
const build = (locale, options) => {
|
|
10
|
+
try {
|
|
11
|
+
return new Intl.DateTimeFormat(locale, options);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
try {
|
|
15
|
+
return new Intl.DateTimeFormat(DEFAULT_LOCALE, options);
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return new Intl.DateTimeFormat(DEFAULT_LOCALE, { ...options, timeZone: undefined });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
const formatterFor = (locale, options) => {
|
|
23
|
+
const key = JSON.stringify([locale, options]);
|
|
24
|
+
let formatter = formatters.get(key);
|
|
25
|
+
if (!formatter) {
|
|
26
|
+
const format = build(locale, options);
|
|
27
|
+
formatter = { format, english: ENGLISH.test(format.resolvedOptions().locale) };
|
|
28
|
+
formatters.set(key, formatter);
|
|
29
|
+
}
|
|
30
|
+
return formatter;
|
|
31
|
+
};
|
|
32
|
+
const utcNoon = ({ year, month, day }) => {
|
|
33
|
+
const date = new Date(Date.UTC(2000, month, day, 12));
|
|
34
|
+
date.setUTCFullYear(year);
|
|
35
|
+
return date;
|
|
36
|
+
};
|
|
37
|
+
const isValidDay = (day) => {
|
|
38
|
+
const probe = utcNoon(day);
|
|
39
|
+
return probe.getUTCFullYear() === day.year && probe.getUTCMonth() === day.month && probe.getUTCDate() === day.day;
|
|
40
|
+
};
|
|
41
|
+
const resolve = (value) => {
|
|
42
|
+
let date;
|
|
43
|
+
if (value instanceof Date)
|
|
44
|
+
date = value;
|
|
45
|
+
else if (typeof value === "number")
|
|
46
|
+
date = new Date(value);
|
|
47
|
+
else if (typeof value === "string") {
|
|
48
|
+
const text = value.trim();
|
|
49
|
+
if (!text)
|
|
50
|
+
return null;
|
|
51
|
+
const key = DAY_KEY.exec(text);
|
|
52
|
+
if (key) {
|
|
53
|
+
const day = { year: Number(key[1]), month: Number(key[2]) - 1, day: Number(key[3]) };
|
|
54
|
+
return isValidDay(day) ? { kind: "day", day } : null;
|
|
55
|
+
}
|
|
56
|
+
date = new Date(EPOCH_DIGITS.test(text) ? Number(text) : text);
|
|
57
|
+
}
|
|
58
|
+
else
|
|
59
|
+
return null;
|
|
60
|
+
return Number.isNaN(date.getTime()) ? null : { kind: "instant", date };
|
|
61
|
+
};
|
|
62
|
+
const ZONE_PARTS = { year: "numeric", month: "numeric", day: "numeric" };
|
|
63
|
+
const dayIn = (date, timeZone) => {
|
|
64
|
+
if (timeZone === undefined)
|
|
65
|
+
return { year: date.getFullYear(), month: date.getMonth(), day: date.getDate() };
|
|
66
|
+
const read = {};
|
|
67
|
+
for (const part of formatterFor("en-US", { ...ZONE_PARTS, timeZone }).format.formatToParts(date)) {
|
|
68
|
+
read[part.type] = Number(part.value);
|
|
69
|
+
}
|
|
70
|
+
return { year: read.year, month: read.month - 1, day: read.day };
|
|
71
|
+
};
|
|
72
|
+
const toDay = (resolved, timeZone) => resolved.kind === "day" ? resolved.day : dayIn(resolved.date, timeZone);
|
|
73
|
+
const dayOrdinal = ({ year, month, day }) => year * 10000 + month * 100 + day;
|
|
74
|
+
const dateFields = (options) => ({
|
|
75
|
+
day: "2-digit",
|
|
76
|
+
month: "short",
|
|
77
|
+
...(options.year === "never" ? {} : { year: "numeric" }),
|
|
78
|
+
});
|
|
79
|
+
const join = (parts, english) => parts
|
|
80
|
+
.map(({ type, value }) => {
|
|
81
|
+
if (type === "day" && ONE_DIGIT.test(value))
|
|
82
|
+
return `0${value}`;
|
|
83
|
+
if (english && type === "month" && value === "Sept")
|
|
84
|
+
return "Sep";
|
|
85
|
+
return value;
|
|
86
|
+
})
|
|
87
|
+
.join("")
|
|
88
|
+
.replace(RUNTIME_SPACES, " ");
|
|
89
|
+
const dayFormatter = (options) => { var _a; return formatterFor((_a = options.locale) !== null && _a !== void 0 ? _a : DEFAULT_LOCALE, { ...dateFields(options), timeZone: "UTC" }); };
|
|
90
|
+
const formatDay = (day, options) => {
|
|
91
|
+
const { format, english } = dayFormatter(options);
|
|
92
|
+
return join(format.formatToParts(utcNoon(day)), english);
|
|
93
|
+
};
|
|
94
|
+
/** "09 Oct 2026" in en-IN; locale order and month names otherwise. Null or invalid input gives `fallback`. */
|
|
95
|
+
export function formatDate(value, options = {}) {
|
|
96
|
+
var _a;
|
|
97
|
+
const resolved = resolve(value);
|
|
98
|
+
if (!resolved)
|
|
99
|
+
return (_a = options.fallback) !== null && _a !== void 0 ? _a : DEFAULT_DATE_FALLBACK;
|
|
100
|
+
return formatDay(toDay(resolved, options.timeZone), options);
|
|
101
|
+
}
|
|
102
|
+
/** "09 Oct 2026, 2:05 pm" in en-IN; a bare `YYYY-MM-DD` has no time, so it prints the date alone. */
|
|
103
|
+
export function formatDateTime(value, options = {}) {
|
|
104
|
+
var _a, _b;
|
|
105
|
+
const resolved = resolve(value);
|
|
106
|
+
if (!resolved)
|
|
107
|
+
return (_a = options.fallback) !== null && _a !== void 0 ? _a : DEFAULT_DATE_FALLBACK;
|
|
108
|
+
if (resolved.kind === "day")
|
|
109
|
+
return formatDay(resolved.day, options);
|
|
110
|
+
const { format, english } = formatterFor((_b = options.locale) !== null && _b !== void 0 ? _b : DEFAULT_LOCALE, {
|
|
111
|
+
...dateFields(options),
|
|
112
|
+
hour: "numeric",
|
|
113
|
+
minute: "2-digit",
|
|
114
|
+
...(options.time ? { hour12: options.time === "12h" } : {}),
|
|
115
|
+
...(options.timeZone ? { timeZone: options.timeZone } : {}),
|
|
116
|
+
});
|
|
117
|
+
return join(format.formatToParts(resolved.date), english);
|
|
118
|
+
}
|
|
119
|
+
/** "09 – 24 Oct 2026": what both ends share is written once; reversed ends are reordered, one missing end prints the other. */
|
|
120
|
+
export function formatDateRange(start, end, options = {}) {
|
|
121
|
+
var _a;
|
|
122
|
+
const first = resolve(start);
|
|
123
|
+
const second = resolve(end);
|
|
124
|
+
if (!first || !second) {
|
|
125
|
+
const only = first !== null && first !== void 0 ? first : second;
|
|
126
|
+
return only ? formatDay(toDay(only, options.timeZone), options) : ((_a = options.fallback) !== null && _a !== void 0 ? _a : DEFAULT_DATE_FALLBACK);
|
|
127
|
+
}
|
|
128
|
+
const a = toDay(first, options.timeZone);
|
|
129
|
+
const b = toDay(second, options.timeZone);
|
|
130
|
+
const [from, to] = dayOrdinal(a) <= dayOrdinal(b) ? [a, b] : [b, a];
|
|
131
|
+
if (dayOrdinal(from) === dayOrdinal(to))
|
|
132
|
+
return formatDay(from, options);
|
|
133
|
+
const { format, english } = dayFormatter(options);
|
|
134
|
+
if (typeof format.formatRangeToParts !== "function") {
|
|
135
|
+
return `${formatDay(from, options)} – ${formatDay(to, options)}`;
|
|
136
|
+
}
|
|
137
|
+
return join(format.formatRangeToParts(utcNoon(from), utcNoon(to)), english);
|
|
138
|
+
}
|
package/dist/esm/index.js
CHANGED
|
@@ -170,13 +170,18 @@ export { scrollbarStyles, globalScrollbarStyles, SCROLLBAR_WIDTH, } from "./Them
|
|
|
170
170
|
export { placeholderInk, placeholderInkOn, fieldSurfaces } from "./Theme/tokens/builders/placeholderInk.js";
|
|
171
171
|
export { resolveGradient, gradientCss, inkSafeGradient as inkSafeGradientToken, } from "./Theme/tokens/builders/gradientInk.js";
|
|
172
172
|
export { CONTROL_SIZES, CONTROL_SIZE_NAMES, DEFAULT_CONTROL_SIZE, isControlSize, } from "./Theme/tokens/primitives/controlSizes.js";
|
|
173
|
-
export { MOTION_MS, MOTION_EASE, transitionFor } from "./Theme/tokens/primitives/motion.js";
|
|
173
|
+
export { MOTION_MS, MOTION_EASE, MOTION_EASE_OUT, MOTION_EASE_IN, MOTION_BEZIER, MOTION_LOOP_MS, transitionFor, motionTransition, } from "./Theme/tokens/primitives/motion.js";
|
|
174
|
+
export { RADIUS_ROLE } from "./Theme/tokens/primitives/radii.js";
|
|
175
|
+
export { BORDER_WIDTHS } from "./Theme/tokens/primitives/borderWidths.js";
|
|
176
|
+
export { DISABLED_OPACITY } from "./Theme/tokens/primitives/states.js";
|
|
177
|
+
export { NUMERIC_TEXT, TEXT_STYLES } from "./Theme/tokens/primitives/typography.js";
|
|
178
|
+
export { shadowsFor } from "./Theme/tokens/primitives/shadows.js";
|
|
174
179
|
export { TONES, isTone, toneToColorScheme, toneToSemantic, toneScale, toneInk, resolveSoftTone, } from "./Theme/tokens/builders/tone.js";
|
|
175
180
|
export { overlayScrim, SCRIM_OPACITY } from "./Theme/tokens/builders/scrim.js";
|
|
176
181
|
export { tooltipSurface } from "./Theme/tokens/builders/tooltipSurface.js";
|
|
177
182
|
export { buildSurfaceRaised, raisedRule, RAISED_OVERLAY } from "./Theme/tokens/builders/surfaceRaised.js";
|
|
178
183
|
export { overlayScrimStyles, OVERLAY_BLUR } from "./Theme/chakra/overlay.styles.js";
|
|
179
|
-
export { usePrefersReducedMotion, reducedMotionSx, REDUCED_MOTION_QUERY } from "./Theme/chakra/motion.js";
|
|
184
|
+
export { usePrefersReducedMotion, reducedMotionSx, REDUCED_MOTION_QUERY, MOTION_KEEP_CLASS, } from "./Theme/chakra/motion.js";
|
|
180
185
|
export { useFieldIds } from "./Components/Common/useFieldIds.js";
|
|
181
186
|
export { default as FieldMessage } from "./Components/Common/FieldMessage.js";
|
|
182
187
|
export { fieldControlStyles, controlSizeStyles } from "./Components/Common/fieldStyles.js";
|
|
@@ -276,3 +281,14 @@ export { default as PinToggle } from "./Components/NavLauncher/PinToggle.js";
|
|
|
276
281
|
export { default as NewTabLink } from "./Components/NavLauncher/NewTabLink.js";
|
|
277
282
|
export { searchLauncher, searchLauncherSections, flattenScreens } from "./Components/NavLauncher/match.js";
|
|
278
283
|
export { default as WizardDialog, Wizard, wizardTransition, firstInvalidStep, } from "./Components/WizardDialog/WizardDialog.js";
|
|
284
|
+
export { default as Pagination } from "./Components/Pagination/Pagination.js";
|
|
285
|
+
export { defaultPaginationLabels } from "./Components/Pagination/PaginationProps.js";
|
|
286
|
+
export { default as ChoiceCard } from "./Components/ChoiceCard/ChoiceCard.js";
|
|
287
|
+
export { default as ChoiceCardGroup } from "./Components/ChoiceCard/ChoiceCardGroup.js";
|
|
288
|
+
export { default as IconButton } from "./Components/IconButton/IconButton.js";
|
|
289
|
+
export { default as FormField } from "./Components/FormField/FormField.js";
|
|
290
|
+
export { default as VisuallyHidden } from "./Components/VisuallyHidden/VisuallyHidden.js";
|
|
291
|
+
export { default as SkipLink } from "./Components/SkipLink/SkipLink.js";
|
|
292
|
+
export { formatDate, formatDateTime, formatDateRange, DEFAULT_DATE_FALLBACK } from "./Utils/formatDate.js";
|
|
293
|
+
export { default as TimePicker } from "./Components/TimePicker/TimePicker.js";
|
|
294
|
+
export { default as TagInput } from "./Components/TagInput/TagInput.js";
|