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
|
@@ -27,6 +27,7 @@ const PANEL_EASE = "cubic-bezier(0.22, 1, 0.36, 1)";
|
|
|
27
27
|
const EXPANDED_WIDTH = "13rem";
|
|
28
28
|
const COLLAPSE_MS = { ...motion_2.MOTION_MS, slow: 260 };
|
|
29
29
|
const NO_ACTIVE_MENU = "\u0000pinned-active";
|
|
30
|
+
const WIDTH_TRANSITION_FALLBACK_MS = 1000;
|
|
30
31
|
const inlineTransitions = (collapse) => {
|
|
31
32
|
var _a;
|
|
32
33
|
if (collapse === "none")
|
|
@@ -47,6 +48,7 @@ const OtherApps_1 = __importDefault(require("./components/OtherApps"));
|
|
|
47
48
|
const PinnedSection_1 = __importDefault(require("./components/PinnedSection"));
|
|
48
49
|
const sidebarScale_1 = require("./sidebarScale");
|
|
49
50
|
const viewportHeight_1 = require("../../Theme/tokens/builders/viewportHeight");
|
|
51
|
+
const sharedResizeObserver_1 = require("../../Hooks/sharedResizeObserver");
|
|
50
52
|
const SidebarHeader = ({ logo, companyName, companySubtitle, toggle, isLoading, onToggle, overlay, onClose, }) => {
|
|
51
53
|
const theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
52
54
|
const activeAccent = (0, sidebarAccentColors_1.getSidebarActiveAccent)(theme.colors);
|
|
@@ -59,7 +61,7 @@ const SidebarHeader = ({ logo, companyName, companySubtitle, toggle, isLoading,
|
|
|
59
61
|
, {
|
|
60
62
|
// Rail-safe pairing, not a raw primary fill: primary[500] equals the rail itself on
|
|
61
63
|
// some brands (zinc), making the tile disappear. See THEME-CONTRACT.md sidebar rules.
|
|
62
|
-
bg: theme.colors.sidebar.activeBg, color: activeAccent.label, borderRadius: "lg", boxSize: "1.75rem", display: "flex", alignItems: "center", justifyContent: "center", fontWeight:
|
|
64
|
+
bg: theme.colors.sidebar.activeBg, color: activeAccent.label, borderRadius: "lg", boxSize: "1.75rem", display: "flex", alignItems: "center", justifyContent: "center", fontWeight: 700, flexShrink: 0, cursor: toggle ? "pointer" : undefined, onClick: toggle ? onToggle : undefined, children: (0, jsx_runtime_1.jsx)(defaultLogo_1.default, {}) }));
|
|
63
65
|
return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { h: Sidebar_1.HEADER_HEIGHT, w: "100%", alignItems: "center", justifyContent: toggle ? "center" : "flex-start", gap: 2, px: toggle ? "8px" : "10px", borderBottom: "1px solid", borderColor: theme.colors.sidebar.divider, minW: 0, overflow: "hidden", flexShrink: 0, children: [logoNode, !toggle && ((0, jsx_runtime_1.jsxs)(react_2.Box, { flex: "1", minW: 0, children: [(0, jsx_runtime_1.jsx)(OverflowTooltipText_1.default, { placement: "right", fontWeight: 600, fontSize: sidebarScale_1.SIDEBAR_CHROME.titleFontSize, textAlign: "left", color: theme.colors.white, lineHeight: "1.3", as: "p", width: "100%", children: companyName !== null && companyName !== void 0 ? companyName : "" }), companySubtitle && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: sidebarScale_1.SIDEBAR_CHROME.metaFontSize, color: theme.colors.sidebar.mutedLabel, lineHeight: "1.3", isTruncated: true, children: companySubtitle }))] })), !toggle && ((0, jsx_runtime_1.jsx)(react_2.Box, { as: "button", type: "button", onClick: overlay ? onClose : onToggle, "aria-label": overlay ? "Close menu" : "Collapse sidebar", w: "22px", h: "22px", borderRadius: "lg", bg: "whiteAlpha.200", display: "flex", alignItems: "center", justifyContent: "center", flexShrink: 0, position: "relative", _hover: { bg: "whiteAlpha.300" }, transition: "background 0.15s", sx: {
|
|
64
66
|
...(0, sidebarFocus_1.sidebarFocusStyles)(theme.colors),
|
|
65
67
|
"&::after": {
|
|
@@ -80,7 +82,7 @@ const SkeletonMenuRow = ({ toggle }) => {
|
|
|
80
82
|
const AddNewButton = ({ toggle, onClick, overlay }) => {
|
|
81
83
|
const theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
82
84
|
const activeAccent = (0, sidebarAccentColors_1.getSidebarActiveAccent)(theme.colors);
|
|
83
|
-
return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { as: "button", type: "button", "data-group": "", "aria-label": "Add New", alignItems: "center", gap: "9px", px: "10px", py: overlay ? "11px" : "7px", borderRadius: "lg", cursor: "pointer", border: "none", bg: "transparent", w: "100%", mb: "2px", justifyContent: toggle ? "center" : "flex-start", _hover: { backgroundColor: "whiteAlpha.200" }, transition: "background 0.12s", sx: (0, sidebarFocus_1.sidebarFocusStyles)(theme.colors), onClick: onClick, children: [(0, jsx_runtime_1.jsx)(react_2.Box, { w: "18px", h: "18px", display: "flex", alignItems: "center", justifyContent: "center", flexShrink: 0, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 16, color: activeAccent.icon }) }), !toggle && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: sidebarScale_1.SIDEBAR_ROW.fontSize, color: theme.colors.white, fontWeight:
|
|
85
|
+
return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { as: "button", type: "button", "data-group": "", "aria-label": "Add New", alignItems: "center", gap: "9px", px: "10px", py: overlay ? "11px" : "7px", borderRadius: "lg", cursor: "pointer", border: "none", bg: "transparent", w: "100%", mb: "2px", justifyContent: toggle ? "center" : "flex-start", _hover: { backgroundColor: "whiteAlpha.200" }, transition: "background 0.12s", sx: (0, sidebarFocus_1.sidebarFocusStyles)(theme.colors), onClick: onClick, children: [(0, jsx_runtime_1.jsx)(react_2.Box, { w: "18px", h: "18px", display: "flex", alignItems: "center", justifyContent: "center", flexShrink: 0, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 16, color: activeAccent.icon }) }), !toggle && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: sidebarScale_1.SIDEBAR_ROW.fontSize, color: theme.colors.white, fontWeight: 500, children: "Add New" }))] }));
|
|
84
86
|
};
|
|
85
87
|
const deriveInitials = (user) => {
|
|
86
88
|
if (user.initials)
|
|
@@ -104,7 +106,7 @@ const UserFooter = ({ user, toggle, overlay }) => {
|
|
|
104
106
|
const ControlCell = ({ onClick, ariaLabel, label, accent, children }) => {
|
|
105
107
|
const theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
106
108
|
const activeAccent = (0, sidebarAccentColors_1.getSidebarActiveAccent)(theme.colors);
|
|
107
|
-
return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { as: "button", type: "button", "aria-label": ariaLabel, flex: "1", minW: 0, alignItems: "center", justifyContent: "center", gap: "7px", px: "10px", py: "14px", cursor: "pointer", border: "none", bg: accent ? "whiteAlpha.300" : "transparent", onClick: onClick, _hover: { bg: accent ? "whiteAlpha.400" : "whiteAlpha.200" }, transition: "background 0.15s", sx: (0, sidebarFocus_1.sidebarFocusStyles)(theme.colors), children: [children, label && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: sidebarScale_1.SIDEBAR_CHROME.labelFontSize, color: accent ? activeAccent.label : theme.colors.sidebar.mutedLabel, fontWeight:
|
|
109
|
+
return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { as: "button", type: "button", "aria-label": ariaLabel, flex: "1", minW: 0, alignItems: "center", justifyContent: "center", gap: "7px", px: "10px", py: "14px", cursor: "pointer", border: "none", bg: accent ? "whiteAlpha.300" : "transparent", onClick: onClick, _hover: { bg: accent ? "whiteAlpha.400" : "whiteAlpha.200" }, transition: "background 0.15s", sx: (0, sidebarFocus_1.sidebarFocusStyles)(theme.colors), children: [children, label && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: sidebarScale_1.SIDEBAR_CHROME.labelFontSize, color: accent ? activeAccent.label : theme.colors.sidebar.mutedLabel, fontWeight: 500, children: label }))] }));
|
|
108
110
|
};
|
|
109
111
|
// Collapse (mini-rail) sits next to the Hide/Show navbar-mode toggle. In the
|
|
110
112
|
// desktop mobile-nav overlay only "Show" (return to the docked sidebar) is shown;
|
|
@@ -149,11 +151,16 @@ function Sidebar({ menus, activeMenu, handleMenuClick, handleSecondaryNavClick,
|
|
|
149
151
|
// In overlay mode, navigating to a leaf item auto-closes the overlay (content
|
|
150
152
|
// returns to full-screen). Parent items with a submenu only expand, so they
|
|
151
153
|
// must NOT close it.
|
|
152
|
-
const
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
154
|
+
const menuClickRef = (0, react_1.useRef)(handleMenuClick);
|
|
155
|
+
menuClickRef.current = handleMenuClick;
|
|
156
|
+
const overlayRef = (0, react_1.useRef)(overlay);
|
|
157
|
+
overlayRef.current = overlay;
|
|
158
|
+
const handleMenuClickInternal = (0, react_1.useCallback)((menu) => {
|
|
159
|
+
var _a;
|
|
160
|
+
(_a = menuClickRef.current) === null || _a === void 0 ? void 0 : _a.call(menuClickRef, menu);
|
|
161
|
+
if (overlayRef.current && !(menu.subMenu && menu.subMenu.length > 0))
|
|
162
|
+
closeOverlayRef.current();
|
|
163
|
+
}, []);
|
|
157
164
|
// Refs let the effects read the latest values without adding them to dep arrays,
|
|
158
165
|
// which would cause infinite toggle loops since changeToggle flips state.
|
|
159
166
|
const toggleRef = (0, react_1.useRef)(toggle);
|
|
@@ -234,46 +241,100 @@ function Sidebar({ menus, activeMenu, handleMenuClick, handleSecondaryNavClick,
|
|
|
234
241
|
}, [isOverlayOpen]);
|
|
235
242
|
// Swipe-left-to-close. Tracks pointer start; commits to a horizontal drag only
|
|
236
243
|
// when the gesture is mostly horizontal, so vertical menu scrolling is unaffected.
|
|
244
|
+
// NOTE: drag offset goes to the panel's inline style per frame; React sees start/end.
|
|
237
245
|
const dragStart = (0, react_1.useRef)(null);
|
|
238
|
-
const
|
|
246
|
+
const dragOffset = (0, react_1.useRef)(0);
|
|
247
|
+
const dragFrame = (0, react_1.useRef)(null);
|
|
248
|
+
const isDragging = (0, react_1.useRef)(false);
|
|
239
249
|
const [dragging, setDragging] = (0, react_1.useState)(false);
|
|
250
|
+
const paintDrag = () => {
|
|
251
|
+
var _a;
|
|
252
|
+
dragFrame.current = null;
|
|
253
|
+
(_a = panelRef.current) === null || _a === void 0 ? void 0 : _a.style.setProperty("transform", `translateX(${dragOffset.current}px)`);
|
|
254
|
+
};
|
|
255
|
+
const cancelDragFrame = () => {
|
|
256
|
+
if (dragFrame.current !== null)
|
|
257
|
+
cancelAnimationFrame(dragFrame.current);
|
|
258
|
+
dragFrame.current = null;
|
|
259
|
+
};
|
|
260
|
+
(0, react_1.useEffect)(() => cancelDragFrame, []);
|
|
261
|
+
(0, react_1.useEffect)(() => {
|
|
262
|
+
const panel = panelRef.current;
|
|
263
|
+
if (!panel)
|
|
264
|
+
return;
|
|
265
|
+
const running = new Set();
|
|
266
|
+
let resume = null;
|
|
267
|
+
let fallback;
|
|
268
|
+
const finish = () => {
|
|
269
|
+
running.clear();
|
|
270
|
+
window.clearTimeout(fallback);
|
|
271
|
+
resume === null || resume === void 0 ? void 0 : resume();
|
|
272
|
+
resume = null;
|
|
273
|
+
};
|
|
274
|
+
const onRun = (e) => {
|
|
275
|
+
if (e.propertyName !== "width" || !e.target)
|
|
276
|
+
return;
|
|
277
|
+
running.add(e.target);
|
|
278
|
+
resume !== null && resume !== void 0 ? resume : (resume = (0, sharedResizeObserver_1.suspendResizeWithin)(panel));
|
|
279
|
+
window.clearTimeout(fallback);
|
|
280
|
+
fallback = window.setTimeout(finish, WIDTH_TRANSITION_FALLBACK_MS);
|
|
281
|
+
};
|
|
282
|
+
const onEnd = (e) => {
|
|
283
|
+
if (e.propertyName !== "width" || !e.target)
|
|
284
|
+
return;
|
|
285
|
+
running.delete(e.target);
|
|
286
|
+
if (running.size === 0)
|
|
287
|
+
finish();
|
|
288
|
+
};
|
|
289
|
+
panel.addEventListener("transitionrun", onRun);
|
|
290
|
+
panel.addEventListener("transitionend", onEnd);
|
|
291
|
+
panel.addEventListener("transitioncancel", onEnd);
|
|
292
|
+
return () => {
|
|
293
|
+
panel.removeEventListener("transitionrun", onRun);
|
|
294
|
+
panel.removeEventListener("transitionend", onEnd);
|
|
295
|
+
panel.removeEventListener("transitioncancel", onEnd);
|
|
296
|
+
finish();
|
|
297
|
+
};
|
|
298
|
+
}, []);
|
|
240
299
|
const onPointerDown = (e) => {
|
|
241
300
|
if (!isOverlayOpen)
|
|
242
301
|
return;
|
|
243
302
|
dragStart.current = { x: e.clientX, y: e.clientY };
|
|
244
303
|
};
|
|
245
304
|
const onPointerMove = (e) => {
|
|
305
|
+
var _a;
|
|
246
306
|
const start = dragStart.current;
|
|
247
307
|
if (!start)
|
|
248
308
|
return;
|
|
249
309
|
const dx = e.clientX - start.x;
|
|
250
310
|
const dy = e.clientY - start.y;
|
|
251
|
-
if (!
|
|
311
|
+
if (!isDragging.current) {
|
|
252
312
|
if (Math.abs(dy) > Math.abs(dx)) {
|
|
253
313
|
dragStart.current = null; // vertical → let the list scroll
|
|
254
314
|
return;
|
|
255
315
|
}
|
|
256
|
-
if (dx
|
|
257
|
-
setDragging(true);
|
|
258
|
-
else
|
|
316
|
+
if (dx >= -6)
|
|
259
317
|
return;
|
|
318
|
+
isDragging.current = true;
|
|
319
|
+
setDragging(true);
|
|
260
320
|
}
|
|
261
|
-
|
|
321
|
+
dragOffset.current = Math.min(0, dx);
|
|
322
|
+
(_a = dragFrame.current) !== null && _a !== void 0 ? _a : (dragFrame.current = requestAnimationFrame(paintDrag));
|
|
262
323
|
};
|
|
263
324
|
const onPointerUp = (e) => {
|
|
325
|
+
var _a;
|
|
264
326
|
const start = dragStart.current;
|
|
265
|
-
const committed =
|
|
327
|
+
const committed = isDragging.current;
|
|
266
328
|
dragStart.current = null;
|
|
329
|
+
isDragging.current = false;
|
|
330
|
+
dragOffset.current = 0;
|
|
331
|
+
cancelDragFrame();
|
|
332
|
+
(_a = panelRef.current) === null || _a === void 0 ? void 0 : _a.style.removeProperty("transform");
|
|
267
333
|
setDragging(false);
|
|
268
|
-
setDragX(0);
|
|
269
334
|
if (committed && start && e.clientX - start.x < -96)
|
|
270
335
|
onMobileClose === null || onMobileClose === void 0 ? void 0 : onMobileClose();
|
|
271
336
|
};
|
|
272
|
-
const baseTransform =
|
|
273
|
-
? `translateX(${dragX}px)`
|
|
274
|
-
: isOverlayOpen
|
|
275
|
-
? "translateX(0)"
|
|
276
|
-
: "translateX(-100%)";
|
|
337
|
+
const baseTransform = isOverlayOpen ? "translateX(0)" : "translateX(-100%)";
|
|
277
338
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_2.Box, { display: mobileNav ? "block" : { base: "block", lg: "none" }, position: "fixed", inset: 0, ...(0, overlay_styles_1.overlayScrimStyles)(theme.colors), zIndex: Z_SCRIM, opacity: isOverlayOpen ? 1 : 0, visibility: isOverlayOpen ? "visible" : "hidden", transition: "opacity 0.28s ease, visibility 0.28s ease", sx: { [motion_1.REDUCED_MOTION_QUERY]: { transition: "none" } }, onClick: closeOverlay, "aria-hidden": "true" }), (0, jsx_runtime_1.jsxs)(react_2.Box, { ref: panelRef, onKeyDown: trapTab, tabIndex: overlay ? -1 : undefined, outline: "none", position: mobileNav ? "fixed" : { base: "fixed", lg: "sticky" }, top: 0, left: mobileNav ? 0 : { base: 0, lg: "auto" }, bottom: mobileNav ? 0 : { base: 0, lg: "auto" }, zIndex: mobileNav ? Z_PANEL : { base: Z_PANEL, lg: "auto" }, maxW: mobileNav ? "88vw" : { base: "88vw", lg: "none" }, transform: mobileNav ? baseTransform : { base: baseTransform, lg: "none" }, transition: mobileNav
|
|
278
339
|
? dragging
|
|
279
340
|
? "none"
|
|
@@ -17,5 +17,5 @@ interface Props {
|
|
|
17
17
|
* routed through the in-app handler.
|
|
18
18
|
*/
|
|
19
19
|
export declare const isBrowserNavigationGesture: (e: React.MouseEvent) => boolean;
|
|
20
|
-
declare const
|
|
21
|
-
export default
|
|
20
|
+
declare const _default: React.NamedExoticComponent<Props>;
|
|
21
|
+
export default _default;
|
|
@@ -47,6 +47,7 @@ const useCustomTheme_1 = require("../../../Theme/useCustomTheme");
|
|
|
47
47
|
const sidebarAccentColors_1 = require("../sidebarAccentColors");
|
|
48
48
|
const tone_1 = require("../../../Theme/tokens/builders/tone");
|
|
49
49
|
const sidebarAccent_1 = require("../../../Theme/tokens/builders/sidebarAccent");
|
|
50
|
+
const zIndices_1 = __importDefault(require("../../../Theme/tokens/primitives/zIndices"));
|
|
50
51
|
const paletteFromTheme_1 = require("../../../Theme/chakra/paletteFromTheme");
|
|
51
52
|
const TextTruncation_1 = __importDefault(require("./TextTruncation"));
|
|
52
53
|
const sidebarId_1 = require("../sidebarId");
|
|
@@ -113,7 +114,7 @@ const MenuItemBox = ({ menu, activeMenu, toggle, handleClick, isOpen, onToggle,
|
|
|
113
114
|
h: rowHeight,
|
|
114
115
|
borderRadius: "lg",
|
|
115
116
|
px: "10px",
|
|
116
|
-
fontWeight:
|
|
117
|
+
fontWeight: 500,
|
|
117
118
|
border: "none",
|
|
118
119
|
borderLeft: "2px solid",
|
|
119
120
|
borderLeftColor: isAnyActive ? theme.colors.sidebar.activeIcon : "transparent",
|
|
@@ -151,7 +152,7 @@ const MenuItemBox = ({ menu, activeMenu, toggle, handleClick, isOpen, onToggle,
|
|
|
151
152
|
return;
|
|
152
153
|
e.preventDefault();
|
|
153
154
|
handleToggleSubMenu(e);
|
|
154
|
-
}, "data-menu-id": String((_c = menu.id) !== null && _c !== void 0 ? _c : title), children: buttonContent }) }), (0, jsx_runtime_1.jsx)(react_2.Portal, { children: (0, jsx_runtime_1.jsx)(react_2.PopoverContent, { borderRadius: "lg", bg: theme.colors.sidebar.elevated, boxShadow: "lg", minW: "10rem", maxW: "14rem", py: "0.125rem", ml: "-0.5rem", border: 'none', cursor: isBlocked ? "not-allowed" : "pointer", zIndex:
|
|
155
|
+
}, "data-menu-id": String((_c = menu.id) !== null && _c !== void 0 ? _c : title), children: buttonContent }) }), (0, jsx_runtime_1.jsx)(react_2.Portal, { children: (0, jsx_runtime_1.jsx)(react_2.PopoverContent, { borderRadius: "lg", bg: theme.colors.sidebar.elevated, boxShadow: "lg", minW: "10rem", maxW: "14rem", py: "0.125rem", ml: "-0.5rem", border: 'none', cursor: isBlocked ? "not-allowed" : "pointer", zIndex: zIndices_1.default.popover, children: (0, jsx_runtime_1.jsx)(react_2.PopoverBody, { p: "0.625rem", color: theme.colors.white, children: (0, jsx_runtime_1.jsx)(MenuPopoverContent_1.default, { menu: menu, handleMenuClick: handleClick, activeMenu: activeMenu }) }) }) })] }));
|
|
155
156
|
}
|
|
156
157
|
const row = ((0, jsx_runtime_1.jsx)(react_2.Box, { ...commonStyles, as: rowAs, type: hasSubMenu ? "button" : undefined, href: hasSubMenu ? undefined : url !== null && url !== void 0 ? url : "#", "aria-expanded": hasSubMenu ? !!isOpen : undefined, "aria-controls": hasSubMenu ? submenuPanelId : undefined, "aria-current": isAnyActive ? "page" : undefined, "aria-disabled": isBlocked ? true : undefined, onClick: (e) => {
|
|
157
158
|
if (!hasSubMenu && url && (0, exports.isBrowserNavigationGesture)(e))
|
|
@@ -197,4 +198,4 @@ const MenuItemBox = ({ menu, activeMenu, toggle, handleClick, isOpen, onToggle,
|
|
|
197
198
|
return sub.locked && sub.lockedReason ? ((0, jsx_runtime_1.jsx)(ToolTip_1.default, { label: sub.lockedReason, placement: "top", children: subRow }, subKey)) : ((0, jsx_runtime_1.jsx)(react_1.default.Fragment, { children: subRow }, subKey));
|
|
198
199
|
}) }) }))] }));
|
|
199
200
|
};
|
|
200
|
-
exports.default = MenuItemBox;
|
|
201
|
+
exports.default = react_1.default.memo(MenuItemBox);
|
|
@@ -54,11 +54,11 @@ const MenuItems = ({ menus, activeMenu, handleMenuClick, toggle, selectedSubMenu
|
|
|
54
54
|
setOpenMenuId(activeMenu);
|
|
55
55
|
}
|
|
56
56
|
}, [activeMenu, menus]);
|
|
57
|
-
const handleToggle = (menu, clickY) => {
|
|
57
|
+
const handleToggle = (0, react_1.useCallback)((menu, clickY) => {
|
|
58
58
|
setOpenMenuId((prev) => (prev === menu.id ? null : menu.id));
|
|
59
59
|
if (typeof clickY === "number")
|
|
60
60
|
setLastClickY(clickY);
|
|
61
|
-
};
|
|
61
|
+
}, []);
|
|
62
62
|
(0, react_1.useEffect)(() => {
|
|
63
63
|
if (openMenuId == null)
|
|
64
64
|
return;
|
|
@@ -151,4 +151,4 @@ const MenuItems = ({ menus, activeMenu, handleMenuClick, toggle, selectedSubMenu
|
|
|
151
151
|
return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [showGroup && !isFirstGroup && ((0, jsx_runtime_1.jsx)(react_2.Box, { h: "1px", bg: theme.colors.sidebar.divider, mx: 2, my: overlay ? "3px" : "5px" })), showGroup && !toggle && ((0, jsx_runtime_1.jsx)(react_2.Box, { "aria-hidden": "true", px: "10px", pt: overlay ? "6px" : "10px", pb: "3px", fontSize: "9.5px", fontWeight: 600, textTransform: "uppercase", letterSpacing: "0.1em", color: theme.colors.sidebar.mutedLabel, whiteSpace: "nowrap", overflow: "hidden", children: menu.group })), (0, jsx_runtime_1.jsx)(MenuItemBox_1.default, { menu: menu, activeMenu: activeMenu, toggle: toggle, handleClick: handleMenuClick, selectedSubMenu: selectedSubMenu, isOpen: openMenuId === menu.id, onToggle: handleToggle, overlay: overlay })] }, `${String((_c = (_b = (_a = menu.id) !== null && _a !== void 0 ? _a : menu.url) !== null && _b !== void 0 ? _b : menu.title) !== null && _c !== void 0 ? _c : idx)}-${idx}`));
|
|
152
152
|
}) }));
|
|
153
153
|
};
|
|
154
|
-
exports.default = MenuItems;
|
|
154
|
+
exports.default = (0, react_1.memo)(MenuItems);
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
7
|
const react_1 = require("@chakra-ui/react");
|
|
5
8
|
const useCustomTheme_1 = require("../../../Theme/useCustomTheme");
|
|
9
|
+
const zIndices_1 = __importDefault(require("../../../Theme/tokens/primitives/zIndices"));
|
|
6
10
|
const sidebarFocus_1 = require("../sidebarFocus");
|
|
7
11
|
const OtherApps = ({ toggle, otherApps }) => {
|
|
8
12
|
const theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
@@ -18,6 +22,6 @@ const OtherApps = ({ toggle, otherApps }) => {
|
|
|
18
22
|
var _a;
|
|
19
23
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_1.Flex, { alignItems: "center", gap: 2, mb: 1, onClick: app.onClick, children: [(_a = app.icon) !== null && _a !== void 0 ? _a : ((0, jsx_runtime_1.jsx)(react_1.Box, { w: "0.5rem", h: "0.5rem", borderRadius: "full", bg: app.color, boxShadow: `0 0 5px ${app.color}`, flexShrink: 0 })), (0, jsx_runtime_1.jsx)(react_1.Text, { fontSize: "sm", fontWeight: 700, color: theme.colors.white, children: app.name })] }), app.description && ((0, jsx_runtime_1.jsx)(react_1.Text, { fontSize: "xs", color: theme.colors.sidebar.mutedLabel, children: app.description }))] }));
|
|
20
24
|
};
|
|
21
|
-
return ((0, jsx_runtime_1.jsxs)(react_1.Box, { borderTop: "1px solid", borderColor: theme.colors.sidebar.divider, py: toggle ? "6px" : 2, px: "6px", flexShrink: 0, children: [!toggle && ((0, jsx_runtime_1.jsx)(react_1.Text, { fontSize: "9.5px", fontWeight: 600, color: theme.colors.sidebar.mutedLabel, letterSpacing: "0.1em", textTransform: "uppercase", px: 2, pt: "2px", pb: "5px", children: "Switch app" })), (0, jsx_runtime_1.jsx)(react_1.Box, { display: "grid", gridTemplateColumns: toggle ? "1fr" : "repeat(4, 1fr)", gap: "3px", children: otherApps.map((app) => toggle ? ((0, jsx_runtime_1.jsxs)(react_1.Popover, { trigger: "hover", placement: "right-start", closeOnBlur: false, isLazy: true, children: [(0, jsx_runtime_1.jsx)(react_1.PopoverTrigger, { children: (0, jsx_runtime_1.jsx)(react_1.Box, { w: "100%", children: appCell(app) }) }), (0, jsx_runtime_1.jsx)(react_1.Portal, { children: (0, jsx_runtime_1.jsx)(react_1.PopoverContent, { borderRadius: "lg", bg: theme.colors.sidebar.elevated, boxShadow: "lg", minW: "10rem", maxW: "14rem", py: "0.125rem", ml: "-0.5rem", border: "none", cursor: "pointer", zIndex:
|
|
25
|
+
return ((0, jsx_runtime_1.jsxs)(react_1.Box, { borderTop: "1px solid", borderColor: theme.colors.sidebar.divider, py: toggle ? "6px" : 2, px: "6px", flexShrink: 0, children: [!toggle && ((0, jsx_runtime_1.jsx)(react_1.Text, { fontSize: "9.5px", fontWeight: 600, color: theme.colors.sidebar.mutedLabel, letterSpacing: "0.1em", textTransform: "uppercase", px: 2, pt: "2px", pb: "5px", children: "Switch app" })), (0, jsx_runtime_1.jsx)(react_1.Box, { display: "grid", gridTemplateColumns: toggle ? "1fr" : "repeat(4, 1fr)", gap: "3px", children: otherApps.map((app) => toggle ? ((0, jsx_runtime_1.jsxs)(react_1.Popover, { trigger: "hover", placement: "right-start", closeOnBlur: false, isLazy: true, children: [(0, jsx_runtime_1.jsx)(react_1.PopoverTrigger, { children: (0, jsx_runtime_1.jsx)(react_1.Box, { w: "100%", children: appCell(app) }) }), (0, jsx_runtime_1.jsx)(react_1.Portal, { children: (0, jsx_runtime_1.jsx)(react_1.PopoverContent, { borderRadius: "lg", bg: theme.colors.sidebar.elevated, boxShadow: "lg", minW: "10rem", maxW: "14rem", py: "0.125rem", ml: "-0.5rem", border: "none", cursor: "pointer", zIndex: zIndices_1.default.popover, color: theme.colors.white, children: (0, jsx_runtime_1.jsx)(react_1.PopoverBody, { p: 3, children: flyoutBody(app) }) }) })] }, app.name)) : ((0, jsx_runtime_1.jsx)(react_1.Box, { w: "100%", children: appCell(app) }, app.name))) })] }));
|
|
22
26
|
};
|
|
23
27
|
exports.default = OtherApps;
|
|
@@ -7,6 +7,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
7
7
|
const react_1 = require("react");
|
|
8
8
|
const react_2 = require("@chakra-ui/react");
|
|
9
9
|
const ToolTip_1 = __importDefault(require("../../ToolTip/ToolTip"));
|
|
10
|
+
const sharedResizeObserver_1 = require("../../../Hooks/sharedResizeObserver");
|
|
10
11
|
const OverflowTooltipText = ({ children, placement = "bottom", maxWidth = "100%", isTooltipDisabled = false, ...textProps }) => {
|
|
11
12
|
const textRef = (0, react_1.useRef)(null);
|
|
12
13
|
const shadowRef = (0, react_1.useRef)(null);
|
|
@@ -22,11 +23,9 @@ const OverflowTooltipText = ({ children, placement = "bottom", maxWidth = "100%"
|
|
|
22
23
|
}
|
|
23
24
|
};
|
|
24
25
|
checkTruncation();
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
return () => resizeObserver.disconnect();
|
|
26
|
+
if (!textRef.current)
|
|
27
|
+
return;
|
|
28
|
+
return (0, sharedResizeObserver_1.observeResize)(textRef.current, checkTruncation);
|
|
30
29
|
}, [children]);
|
|
31
30
|
const shouldShowTooltip = isTruncated && !isTooltipDisabled;
|
|
32
31
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ToolTip_1.default, { label: children, isDisabled: !shouldShowTooltip, placement: placement, hasArrow: true, children: (0, jsx_runtime_1.jsx)(react_2.Text, { ref: textRef, isTruncated: true, whiteSpace: "nowrap", overflow: "hidden",
|
|
@@ -75,7 +75,7 @@ const PinnedSection = ({ items, label = exports.DEFAULT_PINNED_LABEL, limit = ex
|
|
|
75
75
|
};
|
|
76
76
|
const renderRow = (item) => {
|
|
77
77
|
const isActive = activeIndex >= 0 && String(item.id) === String(activeId);
|
|
78
|
-
const anchor = ((0, jsx_runtime_1.jsx)(react_2.Box, { as: "a", href: item.url, "data-group": "", "data-pinned-id": String(item.id), "aria-label": toggle ? item.title : undefined, "aria-current": isActive ? "page" : undefined, display: "flex", alignItems: "center", textAlign: "left", textDecoration: "none", w: "100%", h: rowHeight, borderRadius: "lg", pl: "10px", pr: !toggle && onUnpin ? `calc(10px + ${UNPIN_SIZE})` : "10px", fontWeight:
|
|
78
|
+
const anchor = ((0, jsx_runtime_1.jsx)(react_2.Box, { as: "a", href: item.url, "data-group": "", "data-pinned-id": String(item.id), "aria-label": toggle ? item.title : undefined, "aria-current": isActive ? "page" : undefined, display: "flex", alignItems: "center", textAlign: "left", textDecoration: "none", w: "100%", h: rowHeight, borderRadius: "lg", pl: "10px", pr: !toggle && onUnpin ? `calc(10px + ${UNPIN_SIZE})` : "10px", fontWeight: 500, borderLeft: "2px solid", borderLeftColor: isActive ? theme.colors.sidebar.activeIcon : "transparent", backgroundColor: isActive ? LADDER.active : "transparent", color: theme.colors.sidebar.mutedIcon, _hover: { backgroundColor: isActive ? LADDER.activeHover : LADDER.hover }, cursor: "pointer", transition: "background 0.12s", sx: (0, sidebarFocus_1.sidebarFocusStyles)(theme.colors), onClick: (e) => {
|
|
79
79
|
if (item.url && (0, MenuItemBox_1.isBrowserNavigationGesture)(e))
|
|
80
80
|
return;
|
|
81
81
|
e.preventDefault();
|
|
@@ -89,7 +89,7 @@ const PinnedSection = ({ items, label = exports.DEFAULT_PINNED_LABEL, limit = ex
|
|
|
89
89
|
const disclosureLabel = showAll
|
|
90
90
|
? text.showLess
|
|
91
91
|
: text.showMore.replace("{count}", String(hiddenCount));
|
|
92
|
-
const disclosureButton = ((0, jsx_runtime_1.jsxs)(react_2.Box, { as: "button", type: "button", "aria-expanded": showAll, "aria-label": toggle ? disclosureLabel : undefined, onClick: () => setShowAll((v) => !v), display: "flex", alignItems: "center", justifyContent: toggle ? "center" : "flex-start", gap: "9px", w: "100%", h: rowHeight, px: "10px", borderRadius: "lg", border: "none", borderLeft: "2px solid transparent", bg: "transparent", cursor: "pointer", color: theme.colors.sidebar.mutedLabel, fontSize: sidebarScale_1.SIDEBAR_ROW.fontSize, fontWeight:
|
|
92
|
+
const disclosureButton = ((0, jsx_runtime_1.jsxs)(react_2.Box, { as: "button", type: "button", "aria-expanded": showAll, "aria-label": toggle ? disclosureLabel : undefined, onClick: () => setShowAll((v) => !v), display: "flex", alignItems: "center", justifyContent: toggle ? "center" : "flex-start", gap: "9px", w: "100%", h: rowHeight, px: "10px", borderRadius: "lg", border: "none", borderLeft: "2px solid transparent", bg: "transparent", cursor: "pointer", color: theme.colors.sidebar.mutedLabel, fontSize: sidebarScale_1.SIDEBAR_ROW.fontSize, fontWeight: 500, _hover: {
|
|
93
93
|
backgroundColor: LADDER.hover,
|
|
94
94
|
color: theme.colors.white,
|
|
95
95
|
}, transition: "background 0.12s", sx: (0, sidebarFocus_1.sidebarFocusStyles)(theme.colors), children: [(0, jsx_runtime_1.jsx)(react_2.Icon, { as: showAll ? lucide_react_1.ChevronUp : lucide_react_1.ChevronDown, fontSize: "md", flexShrink: 0 }), !toggle && (0, jsx_runtime_1.jsx)("span", { children: disclosureLabel })] }));
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
7
|
const react_1 = require("react");
|
|
5
8
|
const react_2 = require("@chakra-ui/react");
|
|
9
|
+
const sharedResizeObserver_1 = require("../../../Hooks/sharedResizeObserver");
|
|
10
|
+
const ToolTip_1 = __importDefault(require("../../ToolTip/ToolTip"));
|
|
11
|
+
// NOTE: an explicit preventOverflow opts out of ToolTip's 8px edge padding, keeping Chakra's placement.
|
|
12
|
+
const CHAKRA_DEFAULT_OVERFLOW = [{ name: "preventOverflow", options: {} }];
|
|
6
13
|
const TruncatedTextWithTooltip = ({ children, ...props }) => {
|
|
7
14
|
const textRef = (0, react_1.useRef)(null);
|
|
8
15
|
const shadowRef = (0, react_1.useRef)(null);
|
|
@@ -18,13 +25,11 @@ const TruncatedTextWithTooltip = ({ children, ...props }) => {
|
|
|
18
25
|
}
|
|
19
26
|
};
|
|
20
27
|
checkTruncation();
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
return () => resizeObserver.disconnect();
|
|
28
|
+
if (!textRef.current)
|
|
29
|
+
return;
|
|
30
|
+
return (0, sharedResizeObserver_1.observeResize)(textRef.current, checkTruncation);
|
|
26
31
|
}, [children]);
|
|
27
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(
|
|
32
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ToolTip_1.default, { label: children, isDisabled: !isTruncated, hasArrow: true, placement: "right", openDelay: 0, closeOnClick: true, modifiers: CHAKRA_DEFAULT_OVERFLOW, children: (0, jsx_runtime_1.jsx)(react_2.Text, { ref: textRef, isTruncated: true, whiteSpace: "nowrap", overflow: "hidden",
|
|
28
33
|
// NOTE: padding lifts descenders out of the clip box; margin keeps the label's height.
|
|
29
34
|
py: "0.35em", my: "-0.35em", textOverflow: "ellipsis", maxW: "100%", ...props, children: children }) }), (0, jsx_runtime_1.jsx)(react_2.Box, { ref: shadowRef, position: "fixed", top: "-9999px", left: "-9999px", visibility: "hidden", whiteSpace: "nowrap", fontSize: props.fontSize, fontWeight: props.fontWeight, fontFamily: props.fontFamily, lineHeight: props.lineHeight, px: props.px, py: props.py, children: children })] }));
|
|
30
35
|
};
|
|
@@ -4,7 +4,7 @@ export declare const SIDEBAR_ROW: {
|
|
|
4
4
|
/** Rail row in the mobile overlay — the WCAG 2.5.5 touch target. */
|
|
5
5
|
readonly overlayHeight: "44px";
|
|
6
6
|
readonly subHeight: "28px";
|
|
7
|
-
readonly fontSize:
|
|
7
|
+
readonly fontSize: string;
|
|
8
8
|
readonly iconSize: "1rem";
|
|
9
9
|
};
|
|
10
10
|
/** Header/footer text around the rows; every row itself uses SIDEBAR_ROW.fontSize. */
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SIDEBAR_CHROME = exports.SIDEBAR_ROW = void 0;
|
|
4
|
+
const typography_1 = require("../../Theme/tokens/primitives/typography");
|
|
4
5
|
/** One type and row scale for the whole sidebar — rail, submenu, flyout, secondary bar and chrome. */
|
|
5
6
|
exports.SIDEBAR_ROW = {
|
|
6
7
|
height: "32px",
|
|
7
8
|
/** Rail row in the mobile overlay — the WCAG 2.5.5 touch target. */
|
|
8
9
|
overlayHeight: "44px",
|
|
9
10
|
subHeight: "28px",
|
|
10
|
-
fontSize: "
|
|
11
|
+
fontSize: typography_1.fontSizes["xs-plus"],
|
|
11
12
|
iconSize: "1rem",
|
|
12
13
|
};
|
|
13
14
|
/** Header/footer text around the rows; every row itself uses SIDEBAR_ROW.fontSize. */
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
export type SignInDevice = {
|
|
3
3
|
/** Falls back to "—" when falsy; device and activity below don't — a blank one renders as an empty cell, not a dash. */
|
|
4
4
|
browser: string;
|
|
5
|
+
/** Free text such as "MacBook Pro"; a blank value renders an empty cell. */
|
|
5
6
|
device: string;
|
|
7
|
+
/** Shown verbatim, e.g. "2 hours ago"; the component never formats dates. */
|
|
6
8
|
activity: string;
|
|
7
9
|
};
|
|
8
10
|
/**
|
|
@@ -10,15 +12,21 @@ export type SignInDevice = {
|
|
|
10
12
|
* key has a sensible English default so the component works standalone.
|
|
11
13
|
*/
|
|
12
14
|
export type SignInActivityLabels = {
|
|
15
|
+
/** Card heading; defaults to "Recent Sign-in Devices". */
|
|
13
16
|
title?: string;
|
|
14
17
|
browser?: string;
|
|
15
18
|
device?: string;
|
|
19
|
+
/** Third column header; defaults to "Recent Activity". */
|
|
16
20
|
recentActivity?: string;
|
|
21
|
+
/** Empty-state title shown when `devices` is empty. */
|
|
17
22
|
noActivity?: string;
|
|
18
23
|
};
|
|
19
24
|
/** Read-only 3-column device list (browser, device, activity) on raw Chakra table parts, not the library Table — no row actions, closed props, no ref/...rest passthrough. */
|
|
20
25
|
export interface SignInActivityTableProps {
|
|
26
|
+
/** Rendered in array order and keyed by index; an empty array shows the empty state. */
|
|
21
27
|
devices: SignInDevice[];
|
|
28
|
+
/** Replaces the table with four skeleton bars; the heading stays. */
|
|
22
29
|
isLoading?: boolean;
|
|
30
|
+
/** Partial overrides merged over the English defaults, per key. */
|
|
23
31
|
labels?: SignInActivityLabels;
|
|
24
32
|
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import type { HTMLAttributes } from "react";
|
|
1
2
|
import { SkeletonProps as ChakraSkeleton, SkeletonTextProps } from "@chakra-ui/react";
|
|
2
|
-
|
|
3
|
-
export type SkeletonProps = Pick<ChakraSkeleton, "startColor" | "endColor" | "height" | "isLoaded" | "bg" | "color" | "fadeDuration" | "children" | "speed" | "size" | "mt" | "alignSelf" | "flexShrink" | "noOfLines" | "width"> & {
|
|
3
|
+
type SkeletonOwnProps = Pick<ChakraSkeleton, "startColor" | "endColor" | "height" | "isLoaded" | "bg" | "color" | "fadeDuration" | "children" | "speed" | "size" | "mt" | "alignSelf" | "flexShrink" | "noOfLines" | "width"> & {
|
|
4
4
|
/** isLoaded, children, bg, color, fadeDuration only apply to type="skeleton" — circle/text accept but silently ignore them. */
|
|
5
5
|
type: "skeleton" | "circle" | "text";
|
|
6
6
|
/** Corner radius for type="skeleton" (theme default when unset); circle/text ignore it. */
|
|
7
7
|
borderRadius?: ChakraSkeleton["borderRadius"];
|
|
8
8
|
} & Partial<Pick<SkeletonTextProps, "spacing" | "skeletonHeight">>;
|
|
9
|
+
/** Closed style-prop list (no margin beyond `mt` on text); plain HTML attributes (id, className, data-*, aria-*) land on the rendered root. */
|
|
10
|
+
export type SkeletonProps = SkeletonOwnProps & Omit<HTMLAttributes<HTMLDivElement>, keyof SkeletonOwnProps | "dangerouslySetInnerHTML">;
|
|
11
|
+
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { SkeletonProps } from "./SkeletonProps";
|
|
2
2
|
/** Renders exactly one of Skeleton/SkeletonCircle/SkeletonText per `type` — not a layout wrapper combining all three. */
|
|
3
|
-
export default function Skeletons({ startColor, endColor, height, borderRadius, isLoaded, bg, color, fadeDuration, children, type, speed, size, mt, noOfLines, spacing, skeletonHeight, width, }: SkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export default function Skeletons({ startColor, endColor, height, borderRadius, isLoaded, bg, color, fadeDuration, children, type, speed, size, mt, noOfLines, spacing, skeletonHeight, width, alignSelf, flexShrink, ...rest }: SkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -4,6 +4,8 @@ exports.default = Skeletons;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("@chakra-ui/react");
|
|
6
6
|
/** Renders exactly one of Skeleton/SkeletonCircle/SkeletonText per `type` — not a layout wrapper combining all three. */
|
|
7
|
-
function Skeletons({ startColor, endColor, height = "1.25rem", borderRadius, isLoaded, bg, color, fadeDuration, children, type, speed, size, mt, noOfLines, spacing, skeletonHeight, width, }) {
|
|
8
|
-
|
|
7
|
+
function Skeletons({ startColor, endColor, height = "1.25rem", borderRadius, isLoaded, bg, color, fadeDuration, children, type, speed, size, mt, noOfLines, spacing, skeletonHeight, width, alignSelf, flexShrink, ...rest }) {
|
|
8
|
+
void alignSelf;
|
|
9
|
+
void flexShrink;
|
|
10
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [type === "skeleton" && ((0, jsx_runtime_1.jsx)(react_1.Skeleton, { ...rest, height: height, isLoaded: isLoaded, bg: bg, color: color, fadeDuration: fadeDuration, startColor: startColor, endColor: endColor, speed: speed, width: width, borderRadius: borderRadius, children: children })), type === "circle" && (0, jsx_runtime_1.jsx)(react_1.SkeletonCircle, { ...rest, size: size, speed: speed }), type === "text" && ((0, jsx_runtime_1.jsx)(react_1.SkeletonText, { ...rest, mt: mt, noOfLines: noOfLines, spacing: spacing, skeletonHeight: skeletonHeight }))] }));
|
|
9
11
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { SkipLinkProps } from "./SkipLinkProps";
|
|
2
|
+
export declare const missingTargetWarning: (targetId: string) => string;
|
|
3
|
+
declare const SkipLink: import("react").ForwardRefExoticComponent<SkipLinkProps & import("react").RefAttributes<HTMLAnchorElement>>;
|
|
4
|
+
export default SkipLink;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.missingTargetWarning = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_2 = require("@chakra-ui/react");
|
|
7
|
+
const useCustomTheme_1 = require("../../Theme/useCustomTheme");
|
|
8
|
+
const focusRing_styles_1 = require("../../Theme/chakra/focusRing.styles");
|
|
9
|
+
const radii_1 = require("../../Theme/tokens/primitives/radii");
|
|
10
|
+
const VisuallyHidden_1 = require("../VisuallyHidden/VisuallyHidden");
|
|
11
|
+
const FOCUSABLE = "a[href], area[href], button, input, select, textarea, iframe, summary, [tabindex], [contenteditable='true']";
|
|
12
|
+
const missingTargetWarning = (targetId) => `[pixelize-design-library] SkipLink: no element with id "${targetId}" to skip to.`;
|
|
13
|
+
exports.missingTargetWarning = missingTargetWarning;
|
|
14
|
+
const SkipLink = (0, react_1.forwardRef)(function SkipLink({ targetId = "main-content", children = "Skip to main content", onClick, ...rest }, ref) {
|
|
15
|
+
const { colors } = (0, useCustomTheme_1.useCustomTheme)();
|
|
16
|
+
const handleClick = (event) => {
|
|
17
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(event);
|
|
18
|
+
if (event.defaultPrevented)
|
|
19
|
+
return;
|
|
20
|
+
const target = document.getElementById(targetId);
|
|
21
|
+
if (!target) {
|
|
22
|
+
if (process.env.NODE_ENV !== "production")
|
|
23
|
+
console.warn((0, exports.missingTargetWarning)(targetId));
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
event.preventDefault();
|
|
27
|
+
if (!target.matches(FOCUSABLE))
|
|
28
|
+
target.setAttribute("tabindex", "-1");
|
|
29
|
+
target.focus();
|
|
30
|
+
};
|
|
31
|
+
return ((0, jsx_runtime_1.jsx)(react_2.chakra.a, { ...rest, ref: ref, href: `#${targetId}`, onClick: handleClick, sx: {
|
|
32
|
+
...VisuallyHidden_1.visuallyHiddenStyle,
|
|
33
|
+
_focusVisible: {
|
|
34
|
+
clip: "auto",
|
|
35
|
+
width: "auto",
|
|
36
|
+
height: "auto",
|
|
37
|
+
margin: 0,
|
|
38
|
+
overflow: "visible",
|
|
39
|
+
top: 4,
|
|
40
|
+
left: 4,
|
|
41
|
+
px: 4,
|
|
42
|
+
py: 2,
|
|
43
|
+
zIndex: "skipLink",
|
|
44
|
+
borderRadius: radii_1.RADIUS_ROLE.control,
|
|
45
|
+
bg: colors.surfaceRaised,
|
|
46
|
+
color: colors.accentText,
|
|
47
|
+
fontSize: "sm",
|
|
48
|
+
fontWeight: 600,
|
|
49
|
+
textDecoration: "none",
|
|
50
|
+
...(0, focusRing_styles_1.focusVisibleRing)(colors),
|
|
51
|
+
},
|
|
52
|
+
}, children: children }));
|
|
53
|
+
});
|
|
54
|
+
exports.default = SkipLink;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AnchorHTMLAttributes, ReactNode } from "react";
|
|
2
|
+
/** A "skip to content" link, invisible until keyboard focus; other `<a>` attributes land on the anchor. */
|
|
3
|
+
export interface SkipLinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "href" | "color" | "children" | "dangerouslySetInnerHTML"> {
|
|
4
|
+
/** Id of the element to jump to, without `#`; it receives focus (gaining `tabindex="-1"` if it is not focusable). Defaults to "main-content". */
|
|
5
|
+
targetId?: string;
|
|
6
|
+
/** The link text; defaults to "Skip to main content". */
|
|
7
|
+
children?: ReactNode;
|
|
8
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
type ImageSliderProps = {
|
|
3
3
|
images: SliderImage[];
|
|
4
|
-
/**
|
|
4
|
+
/** ms between slides; <= 0 disables auto-advance (no timer). Also paused while hovered or focused, and off under reduced motion. */
|
|
5
5
|
interval?: number;
|
|
6
6
|
isArrow?: boolean;
|
|
7
7
|
mobileImages?: SliderImage[];
|
|
@@ -15,6 +15,6 @@ type SliderImage = {
|
|
|
15
15
|
/** Sorts the main track, but pagination dots follow the array's original order — pass images pre-sorted by order to keep dots in sync. */
|
|
16
16
|
order: number;
|
|
17
17
|
};
|
|
18
|
-
/** Auto-advancing image/content carousel — NOT a numeric range input; for that use Chakra's Slider via the Primitives barrel (exported as RangeSlider). */
|
|
18
|
+
/** Auto-advancing image/content carousel (pauses on hover/focus, never auto-advances under reduced motion) — NOT a numeric range input; for that use Chakra's Slider via the Primitives barrel (exported as RangeSlider). */
|
|
19
19
|
declare const Slider: React.FC<ImageSliderProps>;
|
|
20
20
|
export default Slider;
|
|
@@ -8,11 +8,15 @@ const useCustomTheme_1 = require("../../Theme/useCustomTheme");
|
|
|
8
8
|
const accentText_1 = require("../../Theme/tokens/builders/accentText");
|
|
9
9
|
const outlineRung_1 = require("../../Theme/tokens/builders/outlineRung");
|
|
10
10
|
const motion_1 = require("../../Theme/tokens/primitives/motion");
|
|
11
|
-
|
|
11
|
+
const motion_2 = require("../../Theme/chakra/motion");
|
|
12
|
+
/** Auto-advancing image/content carousel (pauses on hover/focus, never auto-advances under reduced motion) — NOT a numeric range input; for that use Chakra's Slider via the Primitives barrel (exported as RangeSlider). */
|
|
12
13
|
const Slider = ({ images, interval = 5000, isArrow = false, mobileImages, }) => {
|
|
13
14
|
var _a, _b;
|
|
14
15
|
const { colors } = (0, useCustomTheme_1.useCustomTheme)();
|
|
15
16
|
const [currentIndex, setCurrentIndex] = (0, react_1.useState)(0);
|
|
17
|
+
const [hovered, setHovered] = (0, react_1.useState)(false);
|
|
18
|
+
const [focused, setFocused] = (0, react_1.useState)(false);
|
|
19
|
+
const reducedMotion = (0, motion_2.usePrefersReducedMotion)();
|
|
16
20
|
const timeoutRef = (0, react_1.useRef)(null);
|
|
17
21
|
const isMobile = (_a = (0, react_2.useBreakpointValue)({ base: true, md: false })) !== null && _a !== void 0 ? _a : false;
|
|
18
22
|
const slides = (isMobile && mobileImages && mobileImages.length > 0) ? mobileImages : images;
|
|
@@ -23,14 +27,14 @@ const Slider = ({ images, interval = 5000, isArrow = false, mobileImages, }) =>
|
|
|
23
27
|
setCurrentIndex((prev) => (prev - 1 + slides.length) % slides.length);
|
|
24
28
|
}, [slides.length]);
|
|
25
29
|
(0, react_1.useEffect)(() => {
|
|
26
|
-
if (interval > 0) {
|
|
30
|
+
if (interval > 0 && !hovered && !focused && !reducedMotion) {
|
|
27
31
|
timeoutRef.current = setTimeout(nextSlide, interval);
|
|
28
32
|
}
|
|
29
33
|
return () => {
|
|
30
34
|
if (timeoutRef.current)
|
|
31
35
|
clearTimeout(timeoutRef.current);
|
|
32
36
|
};
|
|
33
|
-
}, [currentIndex, interval, nextSlide]);
|
|
37
|
+
}, [currentIndex, interval, nextSlide, hovered, focused, reducedMotion]);
|
|
34
38
|
(0, react_1.useEffect)(() => {
|
|
35
39
|
if (currentIndex >= slides.length) {
|
|
36
40
|
setCurrentIndex(0);
|
|
@@ -43,7 +47,10 @@ const Slider = ({ images, interval = 5000, isArrow = false, mobileImages, }) =>
|
|
|
43
47
|
const chipHoverBg = (0, outlineRung_1.resolveHoverTint)(colors.gray[200], chipBg);
|
|
44
48
|
const chipHoverInk = (0, accentText_1.onFilled)(chipHoverBg, colors.white, colors.black);
|
|
45
49
|
const dotInactiveInk = (0, outlineRung_1.liftToContrast)(colors.gray[400], chipBg, outlineRung_1.AA_NON_TEXT);
|
|
46
|
-
return ((0, jsx_runtime_1.jsxs)(react_2.Box, { position: "relative", w: "100%", h: "auto", overflow: "hidden",
|
|
50
|
+
return ((0, jsx_runtime_1.jsxs)(react_2.Box, { position: "relative", w: "100%", h: "auto", overflow: "hidden", onMouseEnter: () => setHovered(true), onMouseLeave: () => setHovered(false), onFocus: () => setFocused(true), onBlur: (e) => {
|
|
51
|
+
if (!e.currentTarget.contains(e.relatedTarget))
|
|
52
|
+
setFocused(false);
|
|
53
|
+
}, children: [(0, jsx_runtime_1.jsx)(react_2.Flex, { w: `${slides.length * 100}%`, transform: `translateX(-${(currentIndex * 100) / slides.length}%)`, transition: reducedMotion ? "none" : "transform 0.5s ease", children: [...slides]
|
|
47
54
|
.sort((a, b) => a.order - b.order)
|
|
48
55
|
.map((image, idx) => ((0, jsx_runtime_1.jsx)(react_2.Box, { w: `${100 / slides.length}%`, h: "auto", flexShrink: 0, display: "flex", justifyContent: "center", alignItems: "center", children: (0, jsx_runtime_1.jsx)(react_2.AspectRatio, { ratio: ratio, w: "100%", children: (0, jsx_runtime_1.jsx)(react_2.Image, { src: isMobile && image.mobilePreviewUrl
|
|
49
56
|
? image.mobilePreviewUrl
|