@astryxdesign/core 0.1.4 → 0.1.5-canary.76e6697
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 +141 -0
- package/dist/AlertDialog/AlertDialog.d.ts +1 -1
- package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
- package/dist/AlertDialog/AlertDialog.js +20 -18
- package/dist/AlertDialog/useImperativeAlertDialog.d.ts +0 -2
- package/dist/AlertDialog/useImperativeAlertDialog.d.ts.map +1 -1
- package/dist/AlertDialog/useImperativeAlertDialog.js +3 -5
- package/dist/AppShell/AppShell.d.ts +1 -1
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +55 -53
- package/dist/AspectRatio/AspectRatio.d.ts +48 -10
- package/dist/AspectRatio/AspectRatio.d.ts.map +1 -1
- package/dist/AspectRatio/AspectRatio.js +33 -12
- package/dist/AspectRatio/index.d.ts +1 -1
- package/dist/AspectRatio/index.d.ts.map +1 -1
- package/dist/Avatar/Avatar.d.ts.map +1 -1
- package/dist/Avatar/Avatar.js +28 -26
- package/dist/Avatar/AvatarStatusDot.js +6 -6
- package/dist/AvatarGroup/AvatarGroup.js +6 -6
- package/dist/AvatarGroup/AvatarGroupOverflow.js +7 -7
- package/dist/Badge/Badge.js +3 -3
- package/dist/Banner/Banner.d.ts.map +1 -1
- package/dist/Banner/Banner.js +32 -25
- package/dist/Blockquote/Blockquote.js +7 -7
- package/dist/Breadcrumbs/BreadcrumbItem.js +17 -17
- package/dist/Breadcrumbs/Breadcrumbs.js +7 -7
- package/dist/Button/Button.js +19 -19
- package/dist/ButtonGroup/ButtonGroup.js +7 -7
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +68 -48
- package/dist/Calendar/dayCellUtils.d.ts.map +1 -1
- package/dist/Calendar/styles.d.ts +2 -2
- package/dist/Calendar/styles.d.ts.map +1 -1
- package/dist/Calendar/styles.js +2 -2
- package/dist/Card/Card.d.ts +4 -2
- package/dist/Card/Card.d.ts.map +1 -1
- package/dist/Card/Card.js +18 -10
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +24 -21
- package/dist/Center/Center.js +3 -3
- package/dist/Chat/ChatComposer.js +23 -23
- package/dist/Chat/ChatComposerDrawer.js +14 -14
- package/dist/Chat/ChatComposerInput.d.ts +1 -1
- package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
- package/dist/Chat/ChatComposerInput.js +27 -15
- package/dist/Chat/ChatDictationButton.d.ts +1 -1
- package/dist/Chat/ChatDictationButton.d.ts.map +1 -1
- package/dist/Chat/ChatDictationButton.js +13 -11
- package/dist/Chat/ChatLayout.js +17 -17
- package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
- package/dist/Chat/ChatLayoutScrollButton.d.ts.map +1 -1
- package/dist/Chat/ChatLayoutScrollButton.js +12 -10
- package/dist/Chat/ChatMessage.js +12 -12
- package/dist/Chat/ChatMessageBubble.js +7 -7
- package/dist/Chat/ChatMessageList.js +14 -14
- package/dist/Chat/ChatMessageMetadata.d.ts +1 -1
- package/dist/Chat/ChatMessageMetadata.d.ts.map +1 -1
- package/dist/Chat/ChatMessageMetadata.js +14 -12
- package/dist/Chat/ChatPastedTextToken.js +13 -13
- package/dist/Chat/ChatSendButton.js +3 -3
- package/dist/Chat/ChatSystemMessage.d.ts +1 -1
- package/dist/Chat/ChatSystemMessage.d.ts.map +1 -1
- package/dist/Chat/ChatSystemMessage.js +17 -17
- package/dist/Chat/ChatTokenizedText.d.ts +1 -1
- package/dist/Chat/ChatTokenizedText.d.ts.map +1 -1
- package/dist/Chat/ChatTokenizedText.js +24 -15
- package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
- package/dist/Chat/ChatToolCalls.js +81 -74
- package/dist/Chat/index.d.ts +1 -1
- package/dist/Chat/index.d.ts.map +1 -1
- package/dist/Chat/useTriggerMenu.d.ts.map +1 -1
- package/dist/Chat/useTriggerMenu.js +15 -15
- package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +25 -23
- package/dist/CheckboxList/CheckboxList.js +9 -9
- package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +8 -6
- package/dist/Citation/Citation.js +10 -10
- package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/ClickableCard/ClickableCard.js +32 -9
- package/dist/Code/Code.js +3 -3
- package/dist/CodeBlock/CodeBlock.d.ts +10 -1
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +88 -52
- package/dist/Collapsible/Collapsible.d.ts +9 -3
- package/dist/Collapsible/Collapsible.d.ts.map +1 -1
- package/dist/Collapsible/Collapsible.js +109 -22
- package/dist/Collapsible/CollapsibleGroup.d.ts +37 -7
- package/dist/Collapsible/CollapsibleGroup.d.ts.map +1 -1
- package/dist/Collapsible/CollapsibleGroup.js +64 -12
- package/dist/Collapsible/CollapsibleGroupContext.d.ts +24 -0
- package/dist/Collapsible/CollapsibleGroupContext.d.ts.map +1 -1
- package/dist/Collapsible/CollapsibleGroupContext.js +26 -3
- package/dist/Collapsible/index.d.ts +1 -0
- package/dist/Collapsible/index.d.ts.map +1 -1
- package/dist/Collapsible/useCollapsible.d.ts +4 -1
- package/dist/Collapsible/useCollapsible.d.ts.map +1 -1
- package/dist/Collapsible/useCollapsible.js +20 -6
- package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPalette.js +36 -34
- package/dist/CommandPalette/CommandPaletteEmpty.js +3 -3
- package/dist/CommandPalette/CommandPaletteFooter.js +16 -16
- package/dist/CommandPalette/CommandPaletteGroup.js +5 -5
- package/dist/CommandPalette/CommandPaletteInput.js +13 -13
- package/dist/CommandPalette/CommandPaletteItem.js +3 -3
- package/dist/CommandPalette/CommandPaletteList.js +3 -3
- package/dist/ContextMenu/ContextMenu.d.ts +7 -2
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +76 -43
- package/dist/DateInput/DateInput.js +18 -18
- package/dist/DateRangeInput/DateRangeInput.js +21 -21
- package/dist/DateTimeInput/DateTimeInput.d.ts +5 -2
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +30 -26
- package/dist/DateTimeInput/index.d.ts +1 -1
- package/dist/DateTimeInput/index.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +9 -9
- package/dist/Dialog/DialogHeader.js +16 -16
- package/dist/Dialog/useImperativeDialog.js +3 -3
- package/dist/Divider/Divider.js +7 -7
- package/dist/DropdownMenu/DropdownMenu.js +10 -10
- package/dist/DropdownMenu/DropdownMenuItem.d.ts +2 -17
- package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuItem.js +3 -3
- package/dist/DropdownMenu/renderDropdownItems.js +10 -10
- package/dist/EmptyState/EmptyState.js +9 -9
- package/dist/Field/Field.js +17 -17
- package/dist/Field/FieldLabel.js +15 -15
- package/dist/Field/InputClearButton.js +5 -5
- package/dist/FieldStatus/FieldStatus.js +3 -3
- package/dist/FileInput/FileInput.js +29 -29
- package/dist/FormLayout/FormLayout.js +5 -5
- package/dist/Grid/Grid.d.ts +4 -3
- package/dist/Grid/Grid.d.ts.map +1 -1
- package/dist/Grid/Grid.js +29 -12
- package/dist/Grid/GridSpan.js +3 -3
- package/dist/HStack/HStack.js +3 -3
- package/dist/Heading/Heading.js +10 -10
- package/dist/HoverCard/HoverCard.js +9 -9
- package/dist/HoverCard/useHoverCard.d.ts +5 -1
- package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.js +3 -3
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +16 -12
- package/dist/Icon/defaultIcons.js +116 -116
- package/dist/IconButton/IconButton.js +3 -3
- package/dist/InputGroup/InputGroup.js +11 -11
- package/dist/InputGroup/InputGroupText.js +3 -3
- package/dist/Item/Item.js +18 -18
- package/dist/Kbd/Kbd.js +5 -5
- package/dist/Layer/LayerProvider.js +7 -7
- package/dist/Layer/useLayer.d.ts +29 -2
- package/dist/Layer/useLayer.d.ts.map +1 -1
- package/dist/Layer/useLayer.js +44 -31
- package/dist/Layout/Layout.js +21 -21
- package/dist/Layout/LayoutContent.js +3 -3
- package/dist/Layout/LayoutFooter.js +5 -5
- package/dist/Layout/LayoutHeader.js +5 -5
- package/dist/Layout/LayoutPanel.js +3 -3
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +55 -31
- package/dist/Lightbox/useLightbox.d.ts +0 -1
- package/dist/Lightbox/useLightbox.d.ts.map +1 -1
- package/dist/Lightbox/useLightbox.js +3 -4
- package/dist/Link/Link.d.ts +0 -2
- package/dist/Link/Link.d.ts.map +1 -1
- package/dist/Link/Link.js +15 -17
- package/dist/Link/LinkProvider.js +3 -3
- package/dist/Link/useLinkify.js +3 -3
- package/dist/List/List.js +11 -11
- package/dist/List/ListItem.js +11 -11
- package/dist/Markdown/Markdown.d.ts.map +1 -1
- package/dist/Markdown/Markdown.js +102 -102
- package/dist/MetadataList/MetadataList.js +10 -10
- package/dist/MetadataList/MetadataListItem.js +15 -15
- package/dist/MobileNav/MobileNav.d.ts +1 -1
- package/dist/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/MobileNav/MobileNav.js +26 -23
- package/dist/MobileNav/MobileNavToggle.js +5 -5
- package/dist/MoreMenu/MoreMenu.js +3 -3
- package/dist/MultiSelector/MultiSelector.js +56 -56
- package/dist/NavIcon/NavIcon.js +3 -3
- package/dist/NavMenu/NavHeadingMenu.js +5 -5
- package/dist/NavMenu/NavHeadingMenuItem.js +8 -8
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +48 -32
- package/dist/Outline/Outline.js +15 -15
- package/dist/OverflowList/OverflowList.js +8 -8
- package/dist/Overlay/Overlay.js +3 -3
- package/dist/Overlay/OverlayScrim.js +5 -5
- package/dist/Overlay/useOverlay.d.ts +0 -3
- package/dist/Overlay/useOverlay.d.ts.map +1 -1
- package/dist/Overlay/useOverlay.js +3 -6
- package/dist/Pagination/Pagination.d.ts +1 -1
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Pagination/Pagination.js +125 -72
- package/dist/Popover/Popover.js +16 -16
- package/dist/Popover/usePopover.js +7 -7
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +110 -92
- package/dist/PowerSearch/PowerSearchEditPopover.js +84 -84
- package/dist/PowerSearch/PowerSearchFilterEditor.js +3 -3
- package/dist/PowerSearch/PowerSearchToken.js +5 -5
- package/dist/PowerSearch/PowerSearchValueEditor.js +54 -54
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +25 -18
- package/dist/RadioList/RadioList.js +7 -7
- package/dist/RadioList/RadioListItem.d.ts +1 -1
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +24 -21
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +28 -10
- package/dist/Section/Section.js +5 -5
- package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControl.js +32 -10
- package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +18 -12
- package/dist/SelectableCard/SelectableCard.js +5 -5
- package/dist/Selector/Selector.js +46 -46
- package/dist/Selector/SelectorOption.js +3 -3
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +38 -34
- package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
- package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
- package/dist/SideNav/SideNavCollapseButton.js +8 -6
- package/dist/SideNav/SideNavHeading.js +87 -87
- package/dist/SideNav/SideNavItem.js +42 -42
- package/dist/SideNav/SideNavSection.d.ts +1 -1
- package/dist/SideNav/SideNavSection.d.ts.map +1 -1
- package/dist/SideNav/SideNavSection.js +18 -16
- package/dist/Skeleton/Skeleton.js +3 -3
- package/dist/Slider/Slider.js +23 -23
- package/dist/Spinner/Spinner.js +9 -9
- package/dist/StatusDot/StatusDot.js +5 -5
- package/dist/Switch/Switch.d.ts +8 -4
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +34 -29
- package/dist/TabList/Tab.js +18 -18
- package/dist/TabList/TabList.js +5 -5
- package/dist/TabList/TabMenu.d.ts.map +1 -1
- package/dist/TabList/TabMenu.js +57 -30
- package/dist/TabList/tab.markers.stylex.d.ts +1 -1
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +50 -39
- package/dist/Table/Table.js +7 -7
- package/dist/Table/TableBody.d.ts +1 -1
- package/dist/Table/TableBody.d.ts.map +1 -1
- package/dist/Table/TableBody.js +9 -5
- package/dist/Table/TableCell.js +3 -3
- package/dist/Table/TableFooter.d.ts +1 -1
- package/dist/Table/TableFooter.d.ts.map +1 -1
- package/dist/Table/TableFooter.js +9 -5
- package/dist/Table/TableHeader.d.ts +1 -1
- package/dist/Table/TableHeader.d.ts.map +1 -1
- package/dist/Table/TableHeader.js +9 -5
- package/dist/Table/TableHeaderCell.js +3 -3
- package/dist/Table/TableRow.js +5 -5
- package/dist/Table/index.d.ts +2 -0
- package/dist/Table/index.d.ts.map +1 -1
- package/dist/Table/index.js +1 -0
- package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
- package/dist/Table/plugins/columnResize/useTableColumnResize.js +14 -11
- package/dist/Table/plugins/filtering/useTableFiltering.js +71 -71
- package/dist/Table/plugins/groupedRows/index.d.ts +3 -0
- package/dist/Table/plugins/groupedRows/index.d.ts.map +1 -0
- package/dist/Table/plugins/groupedRows/index.js +3 -0
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +78 -0
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -0
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +250 -0
- package/dist/Table/plugins/pagination/paginateData.d.ts.map +1 -1
- package/dist/Table/plugins/pagination/paginateData.js +5 -1
- package/dist/Table/plugins/pagination/useTablePagination.js +7 -7
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +23 -23
- package/dist/Table/plugins/selection/useTableSelection.js +18 -18
- package/dist/Table/plugins/selection/useTableSelectionState.d.ts.map +1 -1
- package/dist/Table/plugins/selection/useTableSelectionState.js +11 -1
- package/dist/Table/plugins/sortable/useTableSortable.js +17 -17
- package/dist/Table/plugins/sortable/useTableSortableState.d.ts.map +1 -1
- package/dist/Table/plugins/sortable/useTableSortableState.js +8 -4
- package/dist/Table/tableContextMenu.js +9 -9
- package/dist/Text/Text.js +10 -10
- package/dist/TextArea/TextArea.js +14 -14
- package/dist/TextInput/TextInput.js +15 -15
- package/dist/Thumbnail/Thumbnail.d.ts +3 -2
- package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.js +30 -29
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +26 -21
- package/dist/Timestamp/Timestamp.d.ts +1 -1
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +37 -26
- package/dist/Toast/Toast.d.ts.map +1 -1
- package/dist/Toast/Toast.js +25 -17
- package/dist/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/Toast/ToastViewport.js +23 -11
- package/dist/Toast/useToast.d.ts.map +1 -1
- package/dist/Toast/useToast.js +44 -4
- package/dist/ToggleButton/ToggleButton.js +12 -12
- package/dist/ToggleButton/ToggleButtonGroup.js +5 -5
- package/dist/Token/Token.js +21 -21
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +36 -34
- package/dist/Toolbar/Toolbar.js +18 -18
- package/dist/Tooltip/Tooltip.js +11 -11
- package/dist/Tooltip/useTooltip.d.ts +5 -1
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +3 -3
- package/dist/TopNav/TopNav.js +32 -32
- package/dist/TopNav/TopNavHeading.js +67 -67
- package/dist/TopNav/TopNavItem.js +5 -5
- package/dist/TopNav/TopNavMegaMenu.js +30 -30
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +25 -14
- package/dist/TopNav/TopNavMegaMenuItem.js +16 -16
- package/dist/TopNav/TopNavMenu.js +32 -32
- package/dist/TreeList/TreeList.js +8 -8
- package/dist/TreeList/TreeListBranches.js +11 -11
- package/dist/TreeList/TreeListItem.js +30 -30
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +23 -20
- package/dist/Typeahead/Typeahead.js +12 -12
- package/dist/Typeahead/TypeaheadItem.js +10 -10
- package/dist/VStack/VStack.js +3 -3
- package/dist/VisuallyHidden/VisuallyHidden.d.ts +0 -3
- package/dist/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
- package/dist/VisuallyHidden/VisuallyHidden.js +0 -3
- package/dist/astryx.css +7 -0
- package/dist/astryx.umd.js +63 -63
- package/dist/astryx.umd.js.map +4 -4
- package/dist/docs-types.d.ts +8 -2
- package/dist/docs-types.d.ts.map +1 -1
- package/dist/hooks/focusableSelector.d.ts +1 -1
- package/dist/hooks/focusableSelector.d.ts.map +1 -1
- package/dist/hooks/focusableSelector.js +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/useFocusTrap.d.ts +3 -0
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.js +38 -1
- package/dist/hooks/useHotkeys.d.ts +51 -0
- package/dist/hooks/useHotkeys.d.ts.map +1 -0
- package/dist/hooks/useHotkeys.js +160 -0
- package/dist/hooks/useInteractiveRole.d.ts +6 -2
- package/dist/hooks/useInteractiveRole.d.ts.map +1 -1
- package/dist/hooks/useInteractiveRole.js +6 -2
- package/dist/hooks/useKeyboardHint.js +9 -9
- package/dist/hooks/useStreamingText.d.ts +3 -1
- package/dist/hooks/useStreamingText.d.ts.map +1 -1
- package/dist/hooks/useStreamingText.js +14 -5
- package/dist/theme/MediaTheme.js +3 -3
- package/dist/theme/Theme.js +7 -7
- package/dist/theme/defineTheme.d.ts +1 -1
- package/dist/theme/defineTheme.d.ts.map +1 -1
- package/dist/theme/expandColorScale.d.ts.map +1 -1
- package/dist/theme/expandColorScale.js +10 -3
- package/dist/theme/hct.d.ts +0 -15
- package/dist/theme/hct.d.ts.map +1 -1
- package/dist/theme/hct.js +9 -9
- package/dist/theme/syntax/SyntaxTheme.js +5 -5
- package/dist/theme/tokens.d.ts +10 -2
- package/dist/theme/tokens.d.ts.map +1 -1
- package/dist/theme/tokens.js +220 -4
- package/dist/theme/useTheme.d.ts +3 -2
- package/dist/theme/useTheme.d.ts.map +1 -1
- package/dist/theme/useTheme.js +73 -6
- package/dist/utils/color.d.ts +42 -0
- package/dist/utils/color.d.ts.map +1 -0
- package/dist/utils/color.js +150 -0
- package/dist/utils/composeEventHandlers.d.ts +30 -0
- package/dist/utils/composeEventHandlers.d.ts.map +1 -0
- package/dist/utils/composeEventHandlers.js +40 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/timeParser.d.ts.map +1 -1
- package/dist/utils/timeParser.js +8 -5
- package/package.json +4 -4
- package/src/AlertDialog/AlertDialog.doc.mjs +4 -0
- package/src/AlertDialog/AlertDialog.tsx +2 -0
- package/src/AlertDialog/useImperativeAlertDialog.tsx +0 -2
- package/src/AppShell/AppShell.tsx +2 -0
- package/src/AspectRatio/AspectRatio.doc.mjs +28 -1
- package/src/AspectRatio/AspectRatio.test.tsx +142 -1
- package/src/AspectRatio/AspectRatio.tsx +70 -10
- package/src/AspectRatio/index.ts +5 -1
- package/src/Avatar/Avatar.doc.mjs +11 -0
- package/src/Avatar/Avatar.test.tsx +32 -1
- package/src/Avatar/Avatar.tsx +14 -22
- package/src/Avatar/AvatarStatusDot.tsx +2 -2
- package/src/AvatarGroup/AvatarGroup.doc.mjs +1 -0
- package/src/AvatarGroup/AvatarGroup.tsx +2 -2
- package/src/AvatarGroup/AvatarGroupOverflow.tsx +2 -2
- package/src/Banner/Banner.doc.mjs +8 -0
- package/src/Banner/Banner.test.tsx +38 -0
- package/src/Banner/Banner.tsx +8 -1
- package/src/Calendar/Calendar.doc.mjs +1 -1
- package/src/Calendar/Calendar.test.tsx +122 -17
- package/src/Calendar/Calendar.tsx +26 -5
- package/src/Calendar/dayCellUtils.ts +3 -1
- package/src/Calendar/styles.ts +12 -2
- package/src/Card/Card.doc.mjs +1 -1
- package/src/Card/Card.tsx +16 -6
- package/src/Carousel/Carousel.doc.mjs +12 -12
- package/src/Carousel/Carousel.test.tsx +13 -0
- package/src/Carousel/Carousel.tsx +4 -2
- package/src/Chat/Chat.doc.mjs +1 -1
- package/src/Chat/ChatComposerInput.test.tsx +27 -1
- package/src/Chat/ChatComposerInput.tsx +20 -15
- package/src/Chat/ChatDictationButton.test.tsx +43 -0
- package/src/Chat/ChatDictationButton.tsx +4 -4
- package/src/Chat/ChatLayoutScrollButton.test.tsx +33 -0
- package/src/Chat/ChatLayoutScrollButton.tsx +3 -1
- package/src/Chat/ChatMessageMetadata.test.tsx +32 -0
- package/src/Chat/ChatMessageMetadata.tsx +4 -6
- package/src/Chat/ChatSystemMessage.test.tsx +26 -11
- package/src/Chat/ChatSystemMessage.tsx +7 -7
- package/src/Chat/ChatTokenizedText.test.tsx +29 -16
- package/src/Chat/ChatTokenizedText.tsx +15 -8
- package/src/Chat/ChatToolCalls.test.tsx +55 -0
- package/src/Chat/ChatToolCalls.tsx +10 -12
- package/src/Chat/index.ts +1 -4
- package/src/Chat/useTriggerMenu.tsx +1 -4
- package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
- package/src/CheckboxInput/CheckboxInput.test.tsx +71 -4
- package/src/CheckboxInput/CheckboxInput.tsx +2 -0
- package/src/CheckboxList/CheckboxList.test.tsx +19 -0
- package/src/CheckboxList/CheckboxListItem.tsx +11 -2
- package/src/Citation/Citation.doc.mjs +5 -0
- package/src/ClickableCard/ClickableCard.tsx +45 -2
- package/src/CodeBlock/CodeBlock.doc.mjs +7 -2
- package/src/CodeBlock/CodeBlock.test.tsx +122 -3
- package/src/CodeBlock/CodeBlock.tsx +62 -4
- package/src/Collapsible/Collapsible.doc.mjs +8 -4
- package/src/Collapsible/Collapsible.test.tsx +403 -0
- package/src/Collapsible/Collapsible.tsx +85 -10
- package/src/Collapsible/CollapsibleGroup.doc.mjs +27 -3
- package/src/Collapsible/CollapsibleGroup.test.tsx +314 -0
- package/src/Collapsible/CollapsibleGroup.tsx +97 -9
- package/src/Collapsible/CollapsibleGroupContext.tsx +34 -2
- package/src/Collapsible/index.ts +1 -0
- package/src/Collapsible/useCollapsible.ts +20 -6
- package/src/CommandPalette/CommandPalette.doc.mjs +5 -0
- package/src/CommandPalette/CommandPalette.tsx +5 -3
- package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +5 -0
- package/src/CommandPalette/CommandPaletteGroup.doc.mjs +10 -0
- package/src/CommandPalette/CommandPaletteInput.doc.mjs +6 -0
- package/src/CommandPalette/CommandPaletteItem.doc.mjs +6 -0
- package/src/CommandPalette/CommandPaletteList.doc.mjs +9 -0
- package/src/ContextMenu/ContextMenu.doc.mjs +15 -0
- package/src/ContextMenu/ContextMenu.test.tsx +87 -0
- package/src/ContextMenu/ContextMenu.tsx +87 -28
- package/src/ContextMenu/ContextMenuItem.doc.mjs +6 -0
- package/src/DateInput/DateInput.test.tsx +11 -20
- package/src/DateRangeInput/DateRangeInput.doc.mjs +9 -6
- package/src/DateRangeInput/DateRangeInput.test.tsx +31 -44
- package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -2
- package/src/DateTimeInput/DateTimeInput.test.tsx +118 -16
- package/src/DateTimeInput/DateTimeInput.tsx +8 -2
- package/src/DateTimeInput/index.ts +1 -0
- package/src/Dialog/Dialog.doc.mjs +4 -0
- package/src/Dialog/DialogHeader.doc.mjs +45 -0
- package/src/DropdownMenu/DropdownMenu.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenu.test.tsx +22 -2
- package/src/DropdownMenu/DropdownMenuItem.tsx +5 -17
- package/src/EmptyState/EmptyState.doc.mjs +1 -1
- package/src/Field/Field.test.tsx +1 -4
- package/src/Field/FieldLabel.test.tsx +2 -2
- package/src/FieldStatus/FieldStatus.test.tsx +282 -0
- package/src/FormLayout/__snapshots__/FormLayout.test.tsx.snap +0 -3
- package/src/Grid/Grid.test.tsx +43 -18
- package/src/Grid/Grid.tsx +26 -9
- package/src/HoverCard/HoverCard.doc.mjs +6 -6
- package/src/HoverCard/useHoverCard.doc.mjs +5 -5
- package/src/HoverCard/useHoverCard.tsx +9 -2
- package/src/Icon/Icon.test.tsx +41 -29
- package/src/Icon/Icon.tsx +6 -2
- package/src/InputGroup/InputGroup.doc.mjs +1 -0
- package/src/InputGroup/InputGroup.tsx +2 -2
- package/src/InteractiveRoleContext/InteractiveRoleContext.test.tsx +185 -0
- package/src/Item/Item.tsx +1 -1
- package/src/Layer/useLayer.doc.mjs +2 -2
- package/src/Layer/useLayer.test.tsx +221 -2
- package/src/Layer/useLayer.tsx +69 -30
- package/src/Layout/Layout.test.tsx +285 -0
- package/src/Layout/LayoutContent.doc.mjs +12 -0
- package/src/Layout/LayoutPanel.doc.mjs +40 -0
- package/src/Layout/LayoutSlots.test.tsx +364 -0
- package/src/Lightbox/Lightbox.doc.mjs +5 -0
- package/src/Lightbox/Lightbox.test.tsx +123 -2
- package/src/Lightbox/Lightbox.tsx +29 -1
- package/src/Lightbox/useLightbox.tsx +0 -1
- package/src/Link/Link.tsx +0 -2
- package/src/Markdown/Markdown.tsx +9 -7
- package/src/Markdown/parser.perf.test.ts +34 -12
- package/src/MobileNav/MobileNav.test.tsx +56 -0
- package/src/MobileNav/MobileNav.tsx +13 -8
- package/src/NavMenu/NavMenu.doc.mjs +15 -0
- package/src/NumberInput/NumberInput.test.tsx +48 -3
- package/src/NumberInput/NumberInput.tsx +32 -15
- package/src/Outline/Outline.doc.mjs +2 -0
- package/src/Outline/parseOutlineFromMarkdown.test.ts +80 -0
- package/src/OverflowList/OverflowList.test.tsx +416 -0
- package/src/Overlay/Overlay.doc.mjs +6 -0
- package/src/Overlay/Overlay.test.tsx +356 -0
- package/src/Overlay/useOverlay.tsx +0 -3
- package/src/Pagination/Pagination.test.tsx +162 -0
- package/src/Pagination/Pagination.tsx +80 -26
- package/src/Popover/Popover.doc.mjs +6 -6
- package/src/Popover/Popover.test.tsx +65 -0
- package/src/Popover/usePopover.doc.mjs +1 -1
- package/src/PowerSearch/PowerSearch.doc.mjs +2 -2
- package/src/PowerSearch/PowerSearch.test.tsx +109 -1
- package/src/PowerSearch/PowerSearch.tsx +37 -16
- package/src/ProgressBar/ProgressBar.doc.mjs +2 -0
- package/src/ProgressBar/ProgressBar.test.tsx +30 -0
- package/src/ProgressBar/ProgressBar.tsx +12 -5
- package/src/RadioList/RadioList.test.tsx +19 -0
- package/src/RadioList/RadioListItem.tsx +9 -4
- package/src/Resizable/ResizeHandle.test.tsx +218 -0
- package/src/Resizable/ResizeHandle.tsx +22 -4
- package/src/SegmentedControl/SegmentedControl.doc.mjs +1 -1
- package/src/SegmentedControl/SegmentedControl.test.tsx +192 -0
- package/src/SegmentedControl/SegmentedControl.tsx +27 -5
- package/src/SegmentedControl/SegmentedControlItem.tsx +9 -4
- package/src/SelectableCard/SelectableCard.doc.mjs +1 -1
- package/src/Selector/Selector.test.tsx +27 -1
- package/src/SideNav/SideNav.doc.mjs +7 -1
- package/src/SideNav/SideNav.test.tsx +66 -0
- package/src/SideNav/SideNav.tsx +6 -2
- package/src/SideNav/SideNavCollapseButton.tsx +4 -3
- package/src/SideNav/SideNavSection.tsx +6 -4
- package/src/SizeContext/SizeContext.test.tsx +226 -0
- package/src/Switch/Switch.doc.mjs +7 -7
- package/src/Switch/Switch.test.tsx +102 -3
- package/src/Switch/Switch.tsx +20 -7
- package/src/TabList/TabList.test.tsx +185 -1
- package/src/TabList/TabMenu.tsx +45 -9
- package/src/Table/BaseTable.tsx +13 -2
- package/src/Table/Table.doc.mjs +6 -1
- package/src/Table/Table.test.tsx +87 -0
- package/src/Table/TableBody.tsx +15 -2
- package/src/Table/TableFooter.tsx +15 -2
- package/src/Table/TableHeader.tsx +15 -2
- package/src/Table/index.ts +5 -0
- package/src/Table/plugins/columnResize/useTableColumnResize.test.tsx +13 -0
- package/src/Table/plugins/columnResize/useTableColumnResize.tsx +3 -1
- package/src/Table/plugins/groupedRows/index.ts +7 -0
- package/src/Table/plugins/groupedRows/useTableGroupedRows.test.tsx +231 -0
- package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +349 -0
- package/src/Table/plugins/pagination/paginateData.ts +5 -1
- package/src/Table/plugins/pagination/useTablePagination.test.tsx +13 -0
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +1 -1
- package/src/Table/plugins/selection/useTableSelectionState.test.tsx +23 -0
- package/src/Table/plugins/selection/useTableSelectionState.tsx +11 -6
- package/src/Table/plugins/sortable/useTableSortableState.test.tsx +35 -1
- package/src/Table/plugins/sortable/useTableSortableState.tsx +8 -4
- package/src/Table/useTableGroupedRows.doc.mjs +71 -0
- package/src/TextArea/TextArea.test.tsx +3 -3
- package/src/TextInput/TextInput.test.tsx +3 -3
- package/src/Thumbnail/Thumbnail.test.tsx +36 -2
- package/src/Thumbnail/Thumbnail.tsx +4 -2
- package/src/TimeInput/TimeInput.test.tsx +37 -0
- package/src/TimeInput/TimeInput.tsx +11 -1
- package/src/Timestamp/Timestamp.doc.mjs +1 -1
- package/src/Timestamp/Timestamp.test.tsx +52 -0
- package/src/Timestamp/Timestamp.tsx +30 -16
- package/src/Toast/Toast.tsx +11 -3
- package/src/Toast/ToastViewport.test.tsx +64 -0
- package/src/Toast/ToastViewport.tsx +12 -0
- package/src/Toast/useToast.test.tsx +258 -0
- package/src/Toast/useToast.tsx +41 -0
- package/src/ToggleButton/ToggleButton.doc.mjs +1 -0
- package/src/Tokenizer/Tokenizer.doc.mjs +2 -2
- package/src/Tokenizer/Tokenizer.test.tsx +54 -0
- package/src/Tokenizer/Tokenizer.tsx +5 -4
- package/src/Tooltip/Tooltip.doc.mjs +6 -6
- package/src/Tooltip/useTooltip.doc.mjs +5 -5
- package/src/Tooltip/useTooltip.tsx +12 -2
- package/src/TopNav/TopNav.doc.mjs +1 -1
- package/src/TopNav/TopNav.test.tsx +23 -7
- package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +9 -2
- package/src/TreeList/TreeList.doc.mjs +2 -2
- package/src/Typeahead/BaseTypeahead.doc.mjs +19 -0
- package/src/Typeahead/BaseTypeahead.tsx +5 -2
- package/src/Typeahead/Typeahead.doc.mjs +1 -1
- package/src/Typeahead/Typeahead.test.tsx +45 -1
- package/src/VisuallyHidden/VisuallyHidden.tsx +0 -3
- package/src/__tests__/TestIcon.tsx +26 -0
- package/src/__tests__/fastRoleQueries.ts +66 -0
- package/src/docPropReferences.test.ts +178 -0
- package/src/docs-types.ts +9 -1
- package/src/hooks/focusableSelector.ts +1 -1
- package/src/hooks/index.ts +3 -0
- package/src/hooks/useFocusTrap.doc.mjs +4 -2
- package/src/hooks/useFocusTrap.test.tsx +149 -1
- package/src/hooks/useFocusTrap.ts +50 -1
- package/src/hooks/useHotkeys.doc.mjs +52 -0
- package/src/hooks/useHotkeys.test.ts +245 -0
- package/src/hooks/useHotkeys.ts +203 -0
- package/src/hooks/useInteractiveRole.ts +12 -4
- package/src/hooks/useStreamingText.test.ts +54 -19
- package/src/hooks/useStreamingText.ts +16 -5
- package/src/hooks/useTreeFocus.test.tsx +1 -3
- package/src/reset.css +29 -0
- package/src/theme/SyntaxTheme.doc.mjs +4 -4
- package/src/theme/defineTheme.ts +4 -13
- package/src/theme/derivedVarRegistry.test.ts +2 -2
- package/src/theme/expandColorScale.test.ts +29 -0
- package/src/theme/expandColorScale.ts +11 -6
- package/src/theme/hct.ts +9 -17
- package/src/theme/themingTargets.test.ts +353 -0
- package/src/theme/tokens.test.ts +182 -9
- package/src/theme/tokens.ts +239 -4
- package/src/theme/useTheme.test.tsx +126 -2
- package/src/theme/useTheme.ts +87 -6
- package/src/utils/color.test.ts +133 -0
- package/src/utils/color.ts +148 -0
- package/src/utils/composeEventHandlers.test.ts +71 -0
- package/src/utils/composeEventHandlers.ts +44 -0
- package/src/utils/index.ts +4 -0
- package/src/utils/mergeProps.test.ts +166 -0
- package/src/utils/sharedResizeObserver.test.ts +2 -2
- package/src/utils/timeParser.test.ts +13 -0
- package/src/utils/timeParser.ts +8 -5
- package/dist/Carousel/carousel.markers.stylex.d.ts +0 -7
- package/dist/Carousel/carousel.markers.stylex.d.ts.map +0 -1
- package/dist/Carousel/carousel.markers.stylex.js +0 -12
- package/src/Carousel/carousel.markers.stylex.ts +0 -10
|
@@ -24,7 +24,7 @@ import "../theme/tokens.stylex.js";
|
|
|
24
24
|
import { colorVars, durationVars, easeVars, radiusVars, spacingVars } from "../theme/tokens.stylex.js";
|
|
25
25
|
import { mergeProps, mergeRefs } from "../utils/index.js";
|
|
26
26
|
import { themeProps } from "../utils/themeProps.js";
|
|
27
|
-
import {
|
|
27
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
28
28
|
const KEYBOARD_STEP = 10;
|
|
29
29
|
const KEYBOARD_LARGE_STEP = 50;
|
|
30
30
|
function resolveEffectiveSide(pillPlacement, isReversed, isCollapsed) {
|
|
@@ -251,6 +251,9 @@ export function ResizeHandle({
|
|
|
251
251
|
...props
|
|
252
252
|
}) {
|
|
253
253
|
const handleRef = useRef(null);
|
|
254
|
+
// Removes the in-flight drag's window listeners (and resets body styles).
|
|
255
|
+
// Held in a ref so unmount can tear down a drag that never got a pointerup.
|
|
256
|
+
const dragCleanupRef = useRef(null);
|
|
254
257
|
const [isDragging, setIsDragging] = useState(false);
|
|
255
258
|
const [isHovered, setIsHovered] = useState(false);
|
|
256
259
|
const [isFocused, setIsFocused] = useState(false);
|
|
@@ -302,10 +305,12 @@ export function ResizeHandle({
|
|
|
302
305
|
window.removeEventListener('pointermove', onMove);
|
|
303
306
|
window.removeEventListener('pointerup', onUp);
|
|
304
307
|
window.removeEventListener('pointercancel', onCancel);
|
|
308
|
+
dragCleanupRef.current = null;
|
|
305
309
|
}
|
|
306
310
|
window.addEventListener('pointermove', onMove);
|
|
307
311
|
window.addEventListener('pointerup', onUp);
|
|
308
312
|
window.addEventListener('pointercancel', onCancel);
|
|
313
|
+
dragCleanupRef.current = cleanup;
|
|
309
314
|
}, [isDisabled, resizable, isHorizontal, getRTLMultiplier, sign]);
|
|
310
315
|
|
|
311
316
|
// --- Keyboard ---
|
|
@@ -376,20 +381,25 @@ export function ResizeHandle({
|
|
|
376
381
|
}, [isDisabled, resizable]);
|
|
377
382
|
|
|
378
383
|
// --- Cleanup on unmount ---
|
|
384
|
+
// A drag in flight when the handle unmounts never gets its pointerup, so
|
|
385
|
+
// tear down the window listeners here too — otherwise every pointermove
|
|
386
|
+
// keeps driving the (still-mounted) region's resize state after the handle
|
|
387
|
+
// is gone, and the body cursor/user-select overrides stick.
|
|
379
388
|
useEffect(() => {
|
|
380
389
|
return () => {
|
|
381
|
-
if (
|
|
390
|
+
if (dragCleanupRef.current) {
|
|
391
|
+
dragCleanupRef.current();
|
|
382
392
|
document.body.style.cursor = '';
|
|
383
393
|
document.body.style.userSelect = '';
|
|
384
394
|
}
|
|
385
395
|
};
|
|
386
|
-
}, [
|
|
396
|
+
}, []);
|
|
387
397
|
|
|
388
398
|
// --- ARIA ---
|
|
389
399
|
const ariaValueNow = resizable ? resizable._size : undefined;
|
|
390
400
|
const ariaValueMin = resizable ? resizable._minSizePx : undefined;
|
|
391
401
|
const ariaValueMax = resizable && resizable._maxSizePx !== Infinity ? resizable._maxSizePx : undefined;
|
|
392
|
-
return /*#__PURE__*/
|
|
402
|
+
return /*#__PURE__*/_jsxDEV("div", {
|
|
393
403
|
ref: mergeRefs(ref, handleRef),
|
|
394
404
|
role: "separator",
|
|
395
405
|
"aria-orientation": isHorizontal ? 'vertical' : 'horizontal',
|
|
@@ -405,7 +415,16 @@ export function ResizeHandle({
|
|
|
405
415
|
"data-resizing": isDragging || undefined,
|
|
406
416
|
...mergeProps(themeProps('resize-handle'), stylex.props(styles.handle, isOverlay && styles.overlay, isOverlay && (isHorizontal ? styles.overlayHorizontal : styles.overlayVertical), !isOverlay && (isHorizontal ? styles.horizontal : styles.vertical), !isOverlay && !hasDivider && (isHorizontal ? styles.noDividerHorizontal : styles.noDividerVertical), !isOverlay && hasDivider && isInteracting && !isDragging && styles.handleHover, !isOverlay && hasDivider && isDragging && styles.handleActive, isDisabled && styles.disabled, xstyle), className),
|
|
407
417
|
...props,
|
|
408
|
-
|
|
418
|
+
// Keyboard resizing must fire from the focusable separator, not a child:
|
|
419
|
+
// keydown fires on the focused element and bubbles up, so a handler on a
|
|
420
|
+
// descendant never runs (per the WAI-ARIA window-splitter pattern).
|
|
421
|
+
// Placed after {...props} and composed with any consumer onKeyDown so
|
|
422
|
+
// this accessibility-critical handler can't be clobbered by a passed prop.
|
|
423
|
+
onKeyDown: e => {
|
|
424
|
+
props.onKeyDown?.(e);
|
|
425
|
+
handleKeyDown(e);
|
|
426
|
+
},
|
|
427
|
+
children: [/*#__PURE__*/_jsxDEV("div", {
|
|
409
428
|
...stylex.props(styles.hitArea, isHorizontal ? styles.hitAreaHorizontal : styles.hitAreaVertical, isHorizontal ? dynamicStyles.hitAreaBiasX(hitAreaBias(effectiveSide)) : dynamicStyles.hitAreaBiasY(hitAreaBias(effectiveSide)), isDisabled && styles.disabled),
|
|
410
429
|
onPointerDown: handlePointerDown,
|
|
411
430
|
onPointerEnter: () => setIsHovered(true),
|
|
@@ -413,11 +432,10 @@ export function ResizeHandle({
|
|
|
413
432
|
if (!isDragging) {
|
|
414
433
|
setIsHovered(false);
|
|
415
434
|
}
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
}), children ?? /*#__PURE__*/_jsx("div", {
|
|
435
|
+
}
|
|
436
|
+
}, void 0, false), children ?? /*#__PURE__*/_jsxDEV("div", {
|
|
419
437
|
...mergeProps(themeProps('resize-handle-pill'), stylex.props(styles.pill, isHorizontal ? styles.pillHorizontal : styles.pillVertical, effectiveSide !== 'center' && (isHorizontal ? dynamicStyles.pillOffsetX(effectiveSide === 'start' ? -1 : 1) : dynamicStyles.pillOffsetY(effectiveSide === 'start' ? -1 : 1)), isAlwaysVisible ? styles.pillVisible : styles.pillHidden, isInteracting && !isDragging && styles.pillHover, isDragging && styles.pillActive))
|
|
420
|
-
})]
|
|
421
|
-
});
|
|
438
|
+
}, void 0, false)]
|
|
439
|
+
}, void 0, true);
|
|
422
440
|
}
|
|
423
441
|
ResizeHandle.displayName = 'ResizeHandle';
|
package/dist/Section/Section.js
CHANGED
|
@@ -40,7 +40,7 @@ import { themeProps } from "../utils/themeProps.js";
|
|
|
40
40
|
* Visual variant for the section.
|
|
41
41
|
* Extensible via module augmentation of SectionVariantMap.
|
|
42
42
|
*/
|
|
43
|
-
import {
|
|
43
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
44
44
|
const variantStyles = {
|
|
45
45
|
section: {
|
|
46
46
|
kWkggS: "x10xzikg",
|
|
@@ -157,7 +157,7 @@ export function Section({
|
|
|
157
157
|
const effectivePadding = padding ?? 4;
|
|
158
158
|
const paddingToken = spacingStepToToken[effectivePadding];
|
|
159
159
|
const outerStylex = stylex.props(nestedStyles.outer, dynamicStyles.sizing(width ?? null, height ?? null, maxWidth ?? null, minHeight ?? null), xstyle);
|
|
160
|
-
return /*#__PURE__*/
|
|
160
|
+
return /*#__PURE__*/_jsxDEV("div", {
|
|
161
161
|
ref: ref,
|
|
162
162
|
className: [outerStylex.className, className].filter(Boolean).join(' ') || undefined,
|
|
163
163
|
style: style && outerStylex.style ? {
|
|
@@ -165,7 +165,7 @@ export function Section({
|
|
|
165
165
|
...style
|
|
166
166
|
} : style || outerStylex.style,
|
|
167
167
|
...props,
|
|
168
|
-
children: /*#__PURE__*/
|
|
168
|
+
children: /*#__PURE__*/_jsxDEV("div", {
|
|
169
169
|
...mergeProps(themeProps('section', {
|
|
170
170
|
variant
|
|
171
171
|
}), stylex.props(nestedStyles.inner, ...container(useThemeDefault ? {
|
|
@@ -177,7 +177,7 @@ export function Section({
|
|
|
177
177
|
paddingOuterY: paddingToken
|
|
178
178
|
}), !useThemeDefault && effectivePadding !== 4 && paddingStyles[effectivePadding], !useThemeDefault && effectivePadding !== 4 && containerPaddingInlineVarStyles[effectivePadding], !useThemeDefault && effectivePadding !== 4 && containerPaddingBlockStartVarStyles[effectivePadding], !useThemeDefault && effectivePadding !== 4 && containerPaddingBlockEndVarStyles[effectivePadding], !useThemeDefault && sectionPaddingPropagationStyles[effectivePadding], paddingBlock != null && paddingBlockStyles[paddingBlock], paddingBlock != null && containerPaddingBlockStartVarStyles[paddingBlock], paddingBlock != null && containerPaddingBlockEndVarStyles[paddingBlock], variantStyles[variant], dividers?.includes('top') && dividerStyles.top, dividers?.includes('bottom') && dividerStyles.bottom, dividers?.includes('start') && dividerStyles.start, dividers?.includes('end') && dividerStyles.end)),
|
|
179
179
|
children: children
|
|
180
|
-
})
|
|
181
|
-
});
|
|
180
|
+
}, void 0, false)
|
|
181
|
+
}, void 0, false);
|
|
182
182
|
}
|
|
183
183
|
Section.displayName = 'Section';
|
|
@@ -73,7 +73,7 @@ export interface SegmentedControlProps extends Omit<BaseProps<HTMLDivElement>, '
|
|
|
73
73
|
* </SegmentedControl>
|
|
74
74
|
* ```
|
|
75
75
|
*/
|
|
76
|
-
export declare function SegmentedControl({ ref, value, onChange, label, size: sizeProp, layout, isDisabled, disabledMessage, children, xstyle, className, style, }: SegmentedControlProps): React.JSX.Element;
|
|
76
|
+
export declare function SegmentedControl({ ref, value, onChange, label, size: sizeProp, layout, isDisabled, disabledMessage, children, xstyle, className, style, onKeyDown: onKeyDownProp, onFocus: onFocusProp, onBlur: onBlurProp, ...rest }: SegmentedControlProps): React.JSX.Element;
|
|
77
77
|
export declare namespace SegmentedControl {
|
|
78
78
|
var displayName: string;
|
|
79
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../src/SegmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,EAAuB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAOlE,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AA8CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EAAE,QAAQ,EACd,MAAc,EACd,UAAkB,EAClB,eAAe,EACf,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,
|
|
1
|
+
{"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../src/SegmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,EAAuB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAOlE,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AA8CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EAAE,QAAQ,EACd,MAAc,EACd,UAAkB,EAClB,eAAe,EACf,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,GAAG,IAAI,EACR,EAAE,qBAAqB,qBAuIvB;yBAxJe,gBAAgB"}
|
|
@@ -22,10 +22,10 @@ import { SegmentedControlContext } from "./SegmentedControlContext.js";
|
|
|
22
22
|
import { useListFocus } from "../hooks/useListFocus.js";
|
|
23
23
|
import { useKeyboardHint } from "../hooks/useKeyboardHint.js";
|
|
24
24
|
import { useTooltip } from "../Tooltip/index.js";
|
|
25
|
-
import { mergeProps, mergeRefs } from "../utils/index.js";
|
|
25
|
+
import { mergeProps, mergeRefs, composeEventHandlers } from "../utils/index.js";
|
|
26
26
|
import { useSize } from "../SizeContext/SizeContext.js";
|
|
27
27
|
import { themeProps } from "../utils/themeProps.js";
|
|
28
|
-
import {
|
|
28
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
29
29
|
// =============================================================================
|
|
30
30
|
// Styles
|
|
31
31
|
// =============================================================================
|
|
@@ -98,7 +98,11 @@ export function SegmentedControl({
|
|
|
98
98
|
children,
|
|
99
99
|
xstyle,
|
|
100
100
|
className,
|
|
101
|
-
style
|
|
101
|
+
style,
|
|
102
|
+
onKeyDown: onKeyDownProp,
|
|
103
|
+
onFocus: onFocusProp,
|
|
104
|
+
onBlur: onBlurProp,
|
|
105
|
+
...rest
|
|
102
106
|
}) {
|
|
103
107
|
const size = useSize(sizeProp, 'md');
|
|
104
108
|
|
|
@@ -136,9 +140,13 @@ export function SegmentedControl({
|
|
|
136
140
|
isEnabled: !isDisabled
|
|
137
141
|
});
|
|
138
142
|
const handleContainerKeyDown = useCallback(e => {
|
|
143
|
+
onKeyDownProp?.(e);
|
|
144
|
+
if (e.defaultPrevented) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
139
147
|
hint.onKeyDown(e);
|
|
140
148
|
handleKeyDown(e);
|
|
141
|
-
}, [hint, handleKeyDown]);
|
|
149
|
+
}, [onKeyDownProp, hint, handleKeyDown]);
|
|
142
150
|
|
|
143
151
|
// Selection-follows-focus (APG radiogroup): useListFocus only *moves* focus,
|
|
144
152
|
// so whenever it lands focus on a new radio (arrow/Home/End, or a click) we
|
|
@@ -148,11 +156,24 @@ export function SegmentedControl({
|
|
|
148
156
|
// and the already-selected value is skipped so an initial Tab-in (or a click
|
|
149
157
|
// on the current segment) is a no-op, matching click behavior.
|
|
150
158
|
const handleContainerFocus = useCallback(e => {
|
|
159
|
+
onFocusProp?.(e);
|
|
160
|
+
if (e.defaultPrevented) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
151
163
|
hint.onFocus(e);
|
|
152
164
|
handleFocus(e);
|
|
153
165
|
if (isDisabled) {
|
|
154
166
|
return;
|
|
155
167
|
}
|
|
168
|
+
// Only select when focus moved WITHIN the group (arrow/Home/End — APG
|
|
169
|
+
// selection-follows-focus). When focus is entering from outside, Tab
|
|
170
|
+
// must stay a pure focus move: with an unmatched or disabled-selected
|
|
171
|
+
// value the roving tab stop falls back to the first enabled radio, and
|
|
172
|
+
// selecting it here would rewrite the form value on mere traversal.
|
|
173
|
+
// Clicks are unaffected: the item's own handleClick selects.
|
|
174
|
+
if (!e.currentTarget.contains(e.relatedTarget)) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
156
177
|
const focused = e.target?.closest('[role="radio"][data-value]');
|
|
157
178
|
if (!focused || focused.getAttribute('aria-disabled') === 'true') {
|
|
158
179
|
return;
|
|
@@ -161,7 +182,7 @@ export function SegmentedControl({
|
|
|
161
182
|
if (nextValue != null && nextValue !== value) {
|
|
162
183
|
onChange(nextValue);
|
|
163
184
|
}
|
|
164
|
-
}, [hint, handleFocus, isDisabled, onChange, value]);
|
|
185
|
+
}, [onFocusProp, hint, handleFocus, isDisabled, onChange, value]);
|
|
165
186
|
const contextValue = useMemo(() => ({
|
|
166
187
|
value,
|
|
167
188
|
onChange,
|
|
@@ -170,22 +191,23 @@ export function SegmentedControl({
|
|
|
170
191
|
isDisabled,
|
|
171
192
|
hasDisabledMessage: showsDisabledMessage
|
|
172
193
|
}), [value, onChange, size, layout, isDisabled, showsDisabledMessage]);
|
|
173
|
-
return /*#__PURE__*/
|
|
194
|
+
return /*#__PURE__*/_jsxDEV(SegmentedControlContext, {
|
|
174
195
|
value: contextValue,
|
|
175
|
-
children: [/*#__PURE__*/
|
|
196
|
+
children: [/*#__PURE__*/_jsxDEV("div", {
|
|
176
197
|
ref: mergeRefs(ref, listRef, disabledMessageTooltip.ref),
|
|
198
|
+
...rest,
|
|
177
199
|
role: "radiogroup",
|
|
178
200
|
"aria-label": label,
|
|
179
201
|
"aria-disabled": isDisabled || undefined,
|
|
180
202
|
"aria-describedby": showsDisabledMessage ? disabledMessageTooltip.describedBy : undefined,
|
|
181
203
|
onKeyDown: handleContainerKeyDown,
|
|
182
204
|
onFocus: handleContainerFocus,
|
|
183
|
-
onBlur: hint.onBlur,
|
|
205
|
+
onBlur: composeEventHandlers(onBlurProp, hint.onBlur),
|
|
184
206
|
...mergeProps(themeProps('segmented-control', {
|
|
185
207
|
size
|
|
186
208
|
}), stylex.props(styles.container, sizeStyles[size], layout === 'fill' && styles.fill, isDisabled && (showsDisabledMessage ? styles.disabledWithMessage : styles.disabled), xstyle), className, style),
|
|
187
209
|
children: [children, hint.hintElement]
|
|
188
|
-
}), showsDisabledMessage && disabledMessageTooltip.renderTooltip(disabledMessage)]
|
|
189
|
-
});
|
|
210
|
+
}, void 0, true), showsDisabledMessage && disabledMessageTooltip.renderTooltip(disabledMessage)]
|
|
211
|
+
}, void 0, true);
|
|
190
212
|
}
|
|
191
213
|
SegmentedControl.displayName = 'SegmentedControl';
|
|
@@ -48,7 +48,7 @@ export interface SegmentedControlItemProps extends BaseProps<HTMLButtonElement>
|
|
|
48
48
|
* <SegmentedControlItem value="grid" label="Grid" icon={<GridIcon />} />
|
|
49
49
|
* ```
|
|
50
50
|
*/
|
|
51
|
-
export declare function SegmentedControlItem({ ref, value, label, isLabelHidden, icon, isDisabled, }: SegmentedControlItemProps): React.JSX.Element;
|
|
51
|
+
export declare function SegmentedControlItem({ ref, value, label, isLabelHidden, icon, isDisabled, onClick: onClickProp, ...rest }: SegmentedControlItemProps): React.JSX.Element;
|
|
52
52
|
export declare namespace SegmentedControlItem {
|
|
53
53
|
var displayName: string;
|
|
54
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControlItem.d.ts","sourceRoot":"","sources":["../../src/SegmentedControl/SegmentedControlItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"SegmentedControlItem.d.ts","sourceRoot":"","sources":["../../src/SegmentedControl/SegmentedControlItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,EAAC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAe5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,MAAM,WAAW,yBAA0B,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAC7E,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA6FD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,GAAG,EACH,KAAK,EACL,KAAK,EACL,aAAqB,EACrB,IAAI,EACJ,UAAkB,EAClB,OAAO,EAAE,WAAW,EACpB,GAAG,IAAI,EACR,EAAE,yBAAyB,qBAgE3B;yBAzEe,oBAAoB"}
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
* - /packages/core/src/SegmentedControl/SegmentedControl.test.tsx
|
|
15
15
|
* - /packages/cli/templates/blocks/components/SegmentedControl/ (showcase blocks)
|
|
16
16
|
*/
|
|
17
|
-
import React
|
|
17
|
+
import React from 'react';
|
|
18
18
|
import * as stylex from '@stylexjs/stylex';
|
|
19
19
|
import "../theme/tokens.stylex.js";
|
|
20
20
|
import { colorVars, spacingVars, sizeVars, durationVars, easeVars, fontWeightVars, shadowVars, typeScaleVars } from "../theme/tokens.stylex.js";
|
|
21
21
|
import { useSegmentedControlContext } from "./SegmentedControlContext.js";
|
|
22
|
-
import { mergeProps } from "../utils/index.js";
|
|
22
|
+
import { mergeProps, composeEventHandlers } from "../utils/index.js";
|
|
23
23
|
import { themeProps } from "../utils/themeProps.js";
|
|
24
|
-
import {
|
|
24
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
25
25
|
// =============================================================================
|
|
26
26
|
// Styles
|
|
27
27
|
// =============================================================================
|
|
@@ -134,7 +134,9 @@ export function SegmentedControlItem({
|
|
|
134
134
|
label,
|
|
135
135
|
isLabelHidden = false,
|
|
136
136
|
icon,
|
|
137
|
-
isDisabled = false
|
|
137
|
+
isDisabled = false,
|
|
138
|
+
onClick: onClickProp,
|
|
139
|
+
...rest
|
|
138
140
|
}) {
|
|
139
141
|
const ctx = useSegmentedControlContext();
|
|
140
142
|
const isSelected = ctx.value === value;
|
|
@@ -146,17 +148,21 @@ export function SegmentedControlItem({
|
|
|
146
148
|
const keepsSelectedFocusable = isSelected && (ctx.hasDisabledMessage ?? false) && !isDisabled;
|
|
147
149
|
const size = ctx.size;
|
|
148
150
|
const isFill = ctx.layout === 'fill';
|
|
149
|
-
|
|
151
|
+
|
|
152
|
+
// Consumer-first: a consumer onClick can call preventDefault() to opt out of
|
|
153
|
+
// selection; otherwise selection proceeds when enabled and not selected.
|
|
154
|
+
const handleClick = composeEventHandlers(onClickProp, () => {
|
|
150
155
|
if (!isItemDisabled && !isSelected) {
|
|
151
156
|
ctx.onChange(value);
|
|
152
157
|
}
|
|
153
|
-
}
|
|
154
|
-
const iconElement = icon ? /*#__PURE__*/
|
|
158
|
+
});
|
|
159
|
+
const iconElement = icon ? /*#__PURE__*/_jsxDEV("span", {
|
|
155
160
|
...stylex.props(styles.icon, iconSizeStyles[size]),
|
|
156
161
|
children: icon
|
|
157
|
-
}) : null;
|
|
158
|
-
return /*#__PURE__*/
|
|
162
|
+
}, void 0, false) : null;
|
|
163
|
+
return /*#__PURE__*/_jsxDEV("button", {
|
|
159
164
|
ref: ref,
|
|
165
|
+
...rest,
|
|
160
166
|
type: "button",
|
|
161
167
|
role: "radio",
|
|
162
168
|
"aria-checked": isSelected,
|
|
@@ -176,9 +182,9 @@ export function SegmentedControlItem({
|
|
|
176
182
|
selected: isSelected ? 'selected' : null,
|
|
177
183
|
disabled: isItemDisabled ? 'disabled' : null
|
|
178
184
|
}), stylex.props(styles.base, sizeStyles[size], isFill && styles.fill, isSelected && styles.selected, !isSelected && !isItemDisabled && styles.hover, isItemDisabled && styles.disabled)),
|
|
179
|
-
children: [iconElement, !isLabelHidden && /*#__PURE__*/
|
|
185
|
+
children: [iconElement, !isLabelHidden && /*#__PURE__*/_jsxDEV("span", {
|
|
180
186
|
children: label
|
|
181
|
-
})]
|
|
182
|
-
});
|
|
187
|
+
}, void 0, false)]
|
|
188
|
+
}, void 0, true);
|
|
183
189
|
}
|
|
184
190
|
SegmentedControlItem.displayName = 'SegmentedControlItem';
|
|
@@ -37,7 +37,7 @@ import { themeProps } from "../utils/themeProps.js";
|
|
|
37
37
|
// =============================================================================
|
|
38
38
|
// Styles — selection + interaction; Card handles the rest
|
|
39
39
|
// =============================================================================
|
|
40
|
-
import {
|
|
40
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
41
41
|
const styles = {
|
|
42
42
|
interactive: {
|
|
43
43
|
kVAEAm: "x1n2onr6",
|
|
@@ -237,7 +237,7 @@ export function SelectableCard({
|
|
|
237
237
|
onMouseUp(e);
|
|
238
238
|
onMouseUpProp(e);
|
|
239
239
|
} : onMouseUp;
|
|
240
|
-
return /*#__PURE__*/
|
|
240
|
+
return /*#__PURE__*/_jsxDEV(Card, {
|
|
241
241
|
ref: mergeRefs(ref, containerRef),
|
|
242
242
|
width: width,
|
|
243
243
|
height: height,
|
|
@@ -255,7 +255,7 @@ export function SelectableCard({
|
|
|
255
255
|
onClick: !isDisabled ? composedOnClick : undefined,
|
|
256
256
|
onMouseUp: !isDisabled ? composedOnMouseUp : undefined,
|
|
257
257
|
...props,
|
|
258
|
-
children: [/*#__PURE__*/
|
|
258
|
+
children: [/*#__PURE__*/_jsxDEV("input", {
|
|
259
259
|
ref: interactiveRef,
|
|
260
260
|
type: "checkbox",
|
|
261
261
|
checked: isSelected,
|
|
@@ -265,7 +265,7 @@ export function SelectableCard({
|
|
|
265
265
|
...{
|
|
266
266
|
className: "x10l6tqk x1i1rx1s xjm9jq1 x1717udv xkdpibf xb3r6kr xzpqnlu xuxw1ft xc342km"
|
|
267
267
|
}
|
|
268
|
-
}), children]
|
|
269
|
-
});
|
|
268
|
+
}, void 0, false), children]
|
|
269
|
+
}, void 0, true);
|
|
270
270
|
}
|
|
271
271
|
SelectableCard.displayName = 'SelectableCard';
|
|
@@ -35,7 +35,7 @@ import { themeProps } from "../utils/themeProps.js";
|
|
|
35
35
|
import { groupStyles } from "../InputGroup/groupStyles.js";
|
|
36
36
|
import { useInputGroup } from "../InputGroup/InputGroupContext.js";
|
|
37
37
|
import { VisuallyHidden } from "../VisuallyHidden/index.js";
|
|
38
|
-
import {
|
|
38
|
+
import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "react/jsx-dev-runtime";
|
|
39
39
|
const styles = {
|
|
40
40
|
triggerContainer: {
|
|
41
41
|
kVAEAm: "x1n2onr6",
|
|
@@ -158,10 +158,10 @@ const STATUS_ICON_COLOR_MAP = {
|
|
|
158
158
|
function DefaultOption({
|
|
159
159
|
option
|
|
160
160
|
}) {
|
|
161
|
-
return /*#__PURE__*/
|
|
161
|
+
return /*#__PURE__*/_jsxDEV(SelectorOption, {
|
|
162
162
|
icon: option.icon,
|
|
163
163
|
label: option.label ?? option.value
|
|
164
|
-
});
|
|
164
|
+
}, void 0, false);
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
/**
|
|
@@ -388,11 +388,11 @@ export function Selector(props) {
|
|
|
388
388
|
if (!hasSearch) {
|
|
389
389
|
return null;
|
|
390
390
|
}
|
|
391
|
-
return /*#__PURE__*/
|
|
391
|
+
return /*#__PURE__*/_jsxDEV("div", {
|
|
392
392
|
...{
|
|
393
393
|
className: "xf314gf xu0wf1k"
|
|
394
394
|
},
|
|
395
|
-
children: /*#__PURE__*/
|
|
395
|
+
children: /*#__PURE__*/_jsxDEV("input", {
|
|
396
396
|
ref: searchRef,
|
|
397
397
|
id: searchId
|
|
398
398
|
// When hasSearch is set, focus moves into this input on open, so it —
|
|
@@ -420,15 +420,15 @@ export function Selector(props) {
|
|
|
420
420
|
...{
|
|
421
421
|
className: "x9f619 xh8yej3 xu0wf1k xf314gf x1litavf x1y0btm7 xvy26l8 xh6dtrn x10xzikg x9ynric xcr08ib xdk3u5w x1tgivj0 x1a2a7pz xzeu18z x1wfwxd8"
|
|
422
422
|
}
|
|
423
|
-
})
|
|
424
|
-
});
|
|
423
|
+
}, void 0, false)
|
|
424
|
+
}, void 0, false);
|
|
425
425
|
}, [hasSearch, searchId, listboxId, searchQuery, searchPlaceholder, onKeyDown, popover.isOpen, highlightedIndex, getItemId]);
|
|
426
426
|
|
|
427
427
|
// Render an individual item
|
|
428
428
|
const renderItem = useCallback((item, flatIndex) => {
|
|
429
429
|
const isHighlighted = flatIndex === highlightedIndex;
|
|
430
430
|
const isSelected = item.value === normalizedValue;
|
|
431
|
-
return /*#__PURE__*/
|
|
431
|
+
return /*#__PURE__*/_jsxDEV("div", {
|
|
432
432
|
id: getItemId(flatIndex),
|
|
433
433
|
role: "option",
|
|
434
434
|
"aria-selected": isSelected,
|
|
@@ -436,19 +436,19 @@ export function Selector(props) {
|
|
|
436
436
|
onClick: () => onItemSelect(item),
|
|
437
437
|
onMouseEnter: () => onItemMouseEnter(item, flatIndex),
|
|
438
438
|
...stylex.props(styles.item, itemSizeStyles[size], isHighlighted && styles.itemHighlighted, isSelected && styles.itemSelected, item.disabled && styles.itemDisabled),
|
|
439
|
-
children: [/*#__PURE__*/
|
|
439
|
+
children: [/*#__PURE__*/_jsxDEV("span", {
|
|
440
440
|
...{
|
|
441
441
|
className: "x78zum5 x6s0dn4 x1txdalj x98rzlu xeuugli"
|
|
442
442
|
},
|
|
443
|
-
children: renderOption ? renderOption(item) : /*#__PURE__*/
|
|
443
|
+
children: renderOption ? renderOption(item) : /*#__PURE__*/_jsxDEV(DefaultOption, {
|
|
444
444
|
option: item
|
|
445
|
-
})
|
|
446
|
-
}), isSelected && /*#__PURE__*/
|
|
445
|
+
}, void 0, false)
|
|
446
|
+
}, void 0, false), isSelected && /*#__PURE__*/_jsxDEV(Icon, {
|
|
447
447
|
icon: "check",
|
|
448
448
|
size: "sm",
|
|
449
449
|
color: "accent"
|
|
450
|
-
})]
|
|
451
|
-
}, item.value);
|
|
450
|
+
}, void 0, false)]
|
|
451
|
+
}, item.value, true);
|
|
452
452
|
}, [renderOption, highlightedIndex, size, normalizedValue, getItemId, onItemSelect, onItemMouseEnter]);
|
|
453
453
|
|
|
454
454
|
// Render all options (handling sections/dividers)
|
|
@@ -456,12 +456,12 @@ export function Selector(props) {
|
|
|
456
456
|
// When search is active, render filtered items flat (no sections/dividers)
|
|
457
457
|
if (hasSearch && searchQuery) {
|
|
458
458
|
if (filteredItems.length === 0) {
|
|
459
|
-
return [/*#__PURE__*/
|
|
459
|
+
return [/*#__PURE__*/_jsxDEV("div", {
|
|
460
460
|
...{
|
|
461
461
|
className: "x1b2ylru x2b8uid xv1l7n4 x9ynric xcr08ib"
|
|
462
462
|
},
|
|
463
463
|
children: "No results found"
|
|
464
|
-
}, "empty")];
|
|
464
|
+
}, "empty", false)];
|
|
465
465
|
}
|
|
466
466
|
return filteredItems.map((item, index) => renderItem(item, index));
|
|
467
467
|
}
|
|
@@ -470,9 +470,9 @@ export function Selector(props) {
|
|
|
470
470
|
for (let i = 0; i < options.length; i++) {
|
|
471
471
|
const option = options[i];
|
|
472
472
|
if (isDivider(option)) {
|
|
473
|
-
elements.push(/*#__PURE__*/
|
|
473
|
+
elements.push(/*#__PURE__*/_jsxDEV(Divider, {
|
|
474
474
|
xstyle: styles.divider
|
|
475
|
-
}, `divider-${i}
|
|
475
|
+
}, `divider-${i}`, false));
|
|
476
476
|
} else if (isSection(option)) {
|
|
477
477
|
const sectionItems = [];
|
|
478
478
|
for (const opt of option.options) {
|
|
@@ -480,16 +480,16 @@ export function Selector(props) {
|
|
|
480
480
|
flatIndex++;
|
|
481
481
|
}
|
|
482
482
|
if (option.title) {
|
|
483
|
-
elements.push(/*#__PURE__*/
|
|
483
|
+
elements.push(/*#__PURE__*/_jsxDEV(Divider, {
|
|
484
484
|
label: option.title,
|
|
485
485
|
xstyle: styles.sectionDivider
|
|
486
|
-
}, `section-divider-${i}
|
|
486
|
+
}, `section-divider-${i}`, false));
|
|
487
487
|
}
|
|
488
|
-
elements.push(/*#__PURE__*/
|
|
488
|
+
elements.push(/*#__PURE__*/_jsxDEV("div", {
|
|
489
489
|
role: "group",
|
|
490
490
|
"aria-label": option.title,
|
|
491
491
|
children: sectionItems
|
|
492
|
-
}, `section-${i}
|
|
492
|
+
}, `section-${i}`, false));
|
|
493
493
|
} else if (isOptionData(option)) {
|
|
494
494
|
elements.push(renderItem(normalizeOption(option), flatIndex));
|
|
495
495
|
flatIndex++;
|
|
@@ -497,8 +497,8 @@ export function Selector(props) {
|
|
|
497
497
|
}
|
|
498
498
|
return elements;
|
|
499
499
|
}, [options, renderItem, hasSearch, searchQuery, filteredItems]);
|
|
500
|
-
const selectorContent = /*#__PURE__*/
|
|
501
|
-
children: [/*#__PURE__*/
|
|
500
|
+
const selectorContent = /*#__PURE__*/_jsxDEV(_Fragment, {
|
|
501
|
+
children: [/*#__PURE__*/_jsxDEV("div", {
|
|
502
502
|
ref: el => {
|
|
503
503
|
popover.triggerRef(el);
|
|
504
504
|
// Anchor + hover/focus listeners for the disabled-message tooltip.
|
|
@@ -515,10 +515,10 @@ export function Selector(props) {
|
|
|
515
515
|
children: [startIcon && renderIconSlot(startIcon, {
|
|
516
516
|
size: 'sm',
|
|
517
517
|
color: 'secondary'
|
|
518
|
-
}), inputGroup && /*#__PURE__*/
|
|
518
|
+
}), inputGroup && /*#__PURE__*/_jsxDEV(VisuallyHidden, {
|
|
519
519
|
id: inputLabelId,
|
|
520
520
|
children: label
|
|
521
|
-
}), /*#__PURE__*/
|
|
521
|
+
}, void 0, false), /*#__PURE__*/_jsxDEV("button", {
|
|
522
522
|
ref: triggerRef,
|
|
523
523
|
id: triggerId,
|
|
524
524
|
type: "button"
|
|
@@ -548,13 +548,13 @@ export function Selector(props) {
|
|
|
548
548
|
...{
|
|
549
549
|
className: "x78zum5 x6s0dn4 x1qughib x1txdalj x1iyjqo2 xs83m0k x1r8uery xeuugli x1717udv x1ghz6dp xc342km xng3xce xjbqb8w xjb2p0i x1qlqyl8 x15bjb6t x1heor9g x1ypdohk x1a2a7pz"
|
|
550
550
|
},
|
|
551
|
-
children: /*#__PURE__*/
|
|
551
|
+
children: /*#__PURE__*/_jsxDEV("span", {
|
|
552
552
|
...{
|
|
553
553
|
className: "x1iyjqo2 xeuugli xb3r6kr xlyipyv xuxw1ft x1yc453h"
|
|
554
554
|
},
|
|
555
555
|
children: selectedItem?.label ?? placeholder
|
|
556
|
-
})
|
|
557
|
-
}), htmlName != null && /*#__PURE__*/
|
|
556
|
+
}, void 0, false)
|
|
557
|
+
}, void 0, false), htmlName != null && /*#__PURE__*/_jsxDEV("input", {
|
|
558
558
|
type: "hidden",
|
|
559
559
|
name: htmlName,
|
|
560
560
|
value: value ?? ''
|
|
@@ -562,21 +562,21 @@ export function Selector(props) {
|
|
|
562
562
|
// mirror that for the hidden carrier.
|
|
563
563
|
,
|
|
564
564
|
disabled: isDisabled
|
|
565
|
-
}), isBusy && /*#__PURE__*/
|
|
565
|
+
}, void 0, false), isBusy && /*#__PURE__*/_jsxDEV(Spinner, {
|
|
566
566
|
size: "sm"
|
|
567
|
-
}), hasClear && value != null && !isDisabled && /*#__PURE__*/
|
|
567
|
+
}, void 0, false), hasClear && value != null && !isDisabled && /*#__PURE__*/_jsxDEV("button", {
|
|
568
568
|
type: "button",
|
|
569
569
|
onClick: handleClear,
|
|
570
570
|
"aria-label": `Clear ${label}`,
|
|
571
571
|
...{
|
|
572
572
|
className: "x78zum5 x6s0dn4 xl56j7k x1717udv x1ghz6dp xc342km xng3xce xjbqb8w x1ypdohk xh6dtrn x1a2a7pz x1p25gnr x1y3gkto"
|
|
573
573
|
},
|
|
574
|
-
children: /*#__PURE__*/
|
|
574
|
+
children: /*#__PURE__*/_jsxDEV(Icon, {
|
|
575
575
|
icon: "close",
|
|
576
576
|
size: "sm",
|
|
577
577
|
color: "secondary"
|
|
578
|
-
})
|
|
579
|
-
}), /*#__PURE__*/
|
|
578
|
+
}, void 0, false)
|
|
579
|
+
}, void 0, false), /*#__PURE__*/_jsxDEV("span", {
|
|
580
580
|
...{
|
|
581
581
|
0: {
|
|
582
582
|
className: "x2lah0s x78zum5 x6s0dn4 xl56j7k x1kky2od xlup9mm x11xpdln xuedmi6 xlr8y92 x1g0ag68 xv9yike"
|
|
@@ -591,18 +591,18 @@ export function Selector(props) {
|
|
|
591
591
|
className: "x2lah0s x78zum5 x6s0dn4 xl56j7k x1kky2od xlup9mm x11xpdln xuedmi6 xlr8y92 x1g0ag68 xv9yike x19jd1h0 xq2gx43"
|
|
592
592
|
}
|
|
593
593
|
}[!!(!status && popover.isOpen) << 1 | !!status << 0],
|
|
594
|
-
children: status ? /*#__PURE__*/
|
|
594
|
+
children: status ? /*#__PURE__*/_jsxDEV(Icon, {
|
|
595
595
|
icon: STATUS_ICON_MAP[status.type],
|
|
596
596
|
size: "sm",
|
|
597
597
|
color: STATUS_ICON_COLOR_MAP[status.type]
|
|
598
|
-
}) : /*#__PURE__*/
|
|
598
|
+
}, void 0, false) : /*#__PURE__*/_jsxDEV(Icon, {
|
|
599
599
|
icon: "chevronDown",
|
|
600
600
|
size: "sm",
|
|
601
601
|
color: "inherit"
|
|
602
|
-
})
|
|
603
|
-
})]
|
|
604
|
-
}), popover.render(hasSearch ? /*#__PURE__*/
|
|
605
|
-
children: [renderSearch(), /*#__PURE__*/
|
|
602
|
+
}, void 0, false)
|
|
603
|
+
}, void 0, false)]
|
|
604
|
+
}, void 0, true), popover.render(hasSearch ? /*#__PURE__*/_jsxDEV("div", {
|
|
605
|
+
children: [renderSearch(), /*#__PURE__*/_jsxDEV("div", {
|
|
606
606
|
ref: listboxRef,
|
|
607
607
|
id: listboxId,
|
|
608
608
|
role: "listbox",
|
|
@@ -611,8 +611,8 @@ export function Selector(props) {
|
|
|
611
611
|
className: "x9f619 xuyqlj2 x1odjw0f x9epnlk x1hc1fzr x1ey1afo"
|
|
612
612
|
},
|
|
613
613
|
children: renderOptions()
|
|
614
|
-
})]
|
|
615
|
-
}) : /*#__PURE__*/
|
|
614
|
+
}, void 0, false)]
|
|
615
|
+
}, void 0, true) : /*#__PURE__*/_jsxDEV("div", {
|
|
616
616
|
ref: listboxRef,
|
|
617
617
|
id: listboxId,
|
|
618
618
|
role: "listbox",
|
|
@@ -626,17 +626,17 @@ export function Selector(props) {
|
|
|
626
626
|
}
|
|
627
627
|
}[!!!isPositioned << 0],
|
|
628
628
|
children: renderOptions()
|
|
629
|
-
}), {
|
|
629
|
+
}, void 0, false), {
|
|
630
630
|
placement: popoverPlacement,
|
|
631
631
|
alignment: 'start',
|
|
632
632
|
xstyle: [styles.popover, layerAnimations[popoverPlacement]],
|
|
633
633
|
style: popoverOffsetStyle
|
|
634
634
|
}), showsDisabledMessage && disabledMessageTooltip.renderTooltip(disabledMessage)]
|
|
635
|
-
});
|
|
635
|
+
}, void 0, true);
|
|
636
636
|
if (inputGroup) {
|
|
637
637
|
return selectorContent;
|
|
638
638
|
}
|
|
639
|
-
return /*#__PURE__*/
|
|
639
|
+
return /*#__PURE__*/_jsxDEV(Field, {
|
|
640
640
|
label: label,
|
|
641
641
|
isLabelHidden: isLabelHidden,
|
|
642
642
|
description: description,
|
|
@@ -653,6 +653,6 @@ export function Selector(props) {
|
|
|
653
653
|
labelTooltip: labelTooltip,
|
|
654
654
|
width: width,
|
|
655
655
|
children: selectorContent
|
|
656
|
-
});
|
|
656
|
+
}, void 0, false);
|
|
657
657
|
}
|
|
658
658
|
Selector.displayName = 'Selector';
|