@astryxdesign/core 0.4.5 → 0.4.6-canary.cea9ecd
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 +134 -0
- package/dist/Avatar/Avatar.d.ts +10 -5
- package/dist/Avatar/Avatar.d.ts.map +1 -1
- package/dist/Avatar/Avatar.js +139 -30
- package/dist/Avatar/AvatarStatusDot.d.ts +2 -1
- package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
- package/dist/Avatar/AvatarStatusDot.js +30 -4
- package/dist/Avatar/AvatarStatusLabelContext.d.ts +39 -0
- package/dist/Avatar/AvatarStatusLabelContext.d.ts.map +1 -0
- package/dist/Avatar/AvatarStatusLabelContext.js +41 -0
- package/dist/AvatarGroup/AvatarGroup.d.ts +3 -1
- package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
- package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
- package/dist/AvatarGroup/AvatarGroupOverflow.js +15 -9
- package/dist/Blockquote/Blockquote.d.ts +4 -3
- package/dist/Blockquote/Blockquote.d.ts.map +1 -1
- package/dist/Blockquote/Blockquote.js +9 -10
- package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +21 -5
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.js +47 -34
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +7 -7
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +21 -12
- package/dist/Calendar/hooks/useCalendarNavigation.d.ts.map +1 -1
- package/dist/Calendar/hooks/useCalendarNavigation.js +8 -4
- package/dist/Calendar/styles.d.ts +2 -2
- package/dist/Calendar/styles.d.ts.map +1 -1
- package/dist/Calendar/styles.js +5 -5
- package/dist/Center/Center.d.ts +23 -1
- package/dist/Center/Center.d.ts.map +1 -1
- package/dist/Center/Center.js +12 -6
- package/dist/Chat/ChatComposer.d.ts.map +1 -1
- package/dist/Chat/ChatComposer.js +3 -3
- package/dist/Chat/ChatComposerDrawer.d.ts.map +1 -1
- package/dist/Chat/ChatComposerDrawer.js +2 -2
- package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
- package/dist/Chat/ChatToolCalls.js +2 -2
- package/dist/Chat/useChatDictation.d.ts +1 -1
- package/dist/Chat/useChatDictation.d.ts.map +1 -1
- package/dist/Chat/useSpeechRecognition.d.ts +1 -1
- package/dist/Chat/useSpeechRecognition.d.ts.map +1 -1
- package/dist/Chat/useSpeechRecognition.js +4 -3
- package/dist/Chat/useTriggerMenu.d.ts.map +1 -1
- package/dist/Chat/useTriggerMenu.js +2 -2
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +2 -2
- package/dist/Citation/Citation.d.ts.map +1 -1
- package/dist/Citation/Citation.js +5 -5
- package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/ClickableCard/ClickableCard.js +4 -4
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +1 -1
- package/dist/Collapsible/Collapsible.d.ts.map +1 -1
- package/dist/Collapsible/Collapsible.js +2 -2
- package/dist/CommandPalette/CommandPaletteItem.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteItem.js +3 -3
- package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
- package/dist/ComplexSelector/ComplexSelector.js +6 -6
- package/dist/DateInput/DateInput.d.ts +31 -2
- package/dist/DateInput/DateInput.d.ts.map +1 -1
- package/dist/DateInput/DateInput.js +90 -22
- package/dist/DateInput/MonthScroller.d.ts +35 -0
- package/dist/DateInput/MonthScroller.d.ts.map +1 -0
- package/dist/DateInput/MonthScroller.js +658 -0
- package/dist/DateInput/MonthYearWheels.d.ts +24 -0
- package/dist/DateInput/MonthYearWheels.d.ts.map +1 -0
- package/dist/DateInput/MonthYearWheels.js +114 -0
- package/dist/DateInput/TouchDateField.d.ts +10 -0
- package/dist/DateInput/TouchDateField.d.ts.map +1 -0
- package/dist/DateInput/TouchDateField.js +810 -0
- package/dist/DateInput/Wheel.d.ts +41 -0
- package/dist/DateInput/Wheel.d.ts.map +1 -0
- package/dist/DateInput/Wheel.js +315 -0
- package/dist/DateInput/monthGeometry.d.ts +65 -0
- package/dist/DateInput/monthGeometry.d.ts.map +1 -0
- package/dist/DateInput/monthGeometry.js +98 -0
- package/dist/DateInput/tokens.stylex.d.ts +63 -0
- package/dist/DateInput/tokens.stylex.d.ts.map +1 -0
- package/dist/DateInput/tokens.stylex.js +74 -0
- package/dist/DateInput/useOwnScrollGesture.d.ts +41 -0
- package/dist/DateInput/useOwnScrollGesture.d.ts.map +1 -0
- package/dist/DateInput/useOwnScrollGesture.js +202 -0
- package/dist/DateInput/usePointerDragScroll.d.ts +15 -0
- package/dist/DateInput/usePointerDragScroll.d.ts.map +1 -0
- package/dist/DateInput/usePointerDragScroll.js +216 -0
- package/dist/DateInput/useScrollSettle.d.ts +26 -0
- package/dist/DateInput/useScrollSettle.d.ts.map +1 -0
- package/dist/DateInput/useScrollSettle.js +149 -0
- package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/DateRangeInput/DateRangeInput.js +17 -14
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +17 -14
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +3 -3
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +2 -2
- package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuItem.js +2 -2
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.js +2 -2
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.js +2 -2
- package/dist/Field/FieldLabel.d.ts.map +1 -1
- package/dist/Field/FieldLabel.js +4 -4
- package/dist/Field/InputClearButton.d.ts.map +1 -1
- package/dist/Field/InputClearButton.js +6 -0
- package/dist/Field/inputStyles.stylex.d.ts +1 -1
- package/dist/Field/inputStyles.stylex.d.ts.map +1 -1
- package/dist/Field/inputStyles.stylex.js +5 -5
- package/dist/FileInput/FileInput.d.ts.map +1 -1
- package/dist/FileInput/FileInput.js +6 -6
- package/dist/HoverCard/HoverCard.d.ts +13 -3
- package/dist/HoverCard/HoverCard.d.ts.map +1 -1
- package/dist/HoverCard/HoverCard.js +2 -0
- package/dist/HoverCard/index.d.ts +1 -1
- package/dist/HoverCard/index.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.d.ts +17 -2
- package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.js +78 -9
- package/dist/InputGroup/InputGroup.js +1 -1
- package/dist/Item/Item.d.ts +9 -1
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +52 -14
- package/dist/Layer/index.d.ts +4 -2
- package/dist/Layer/index.d.ts.map +1 -1
- package/dist/Layer/index.js +2 -0
- package/dist/Layer/useLayer.d.ts.map +1 -1
- package/dist/Layer/useLayer.js +3 -2
- package/dist/Layer/useTouchTrigger.d.ts +113 -0
- package/dist/Layer/useTouchTrigger.d.ts.map +1 -0
- package/dist/Layer/useTouchTrigger.js +241 -0
- package/dist/Layout/container.stylex.d.ts +4 -2
- package/dist/Layout/container.stylex.d.ts.map +1 -1
- package/dist/Layout/container.stylex.js +19 -11
- package/dist/Layout/index.d.ts +1 -0
- package/dist/Layout/index.d.ts.map +1 -1
- package/dist/Layout/index.js +4 -0
- package/dist/Layout/padding.stylex.d.ts +315 -12
- package/dist/Layout/padding.stylex.d.ts.map +1 -1
- package/dist/Layout/padding.stylex.js +389 -12
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +5 -4
- package/dist/Link/Link.d.ts.map +1 -1
- package/dist/Link/Link.js +6 -6
- package/dist/MetadataList/MetadataList.d.ts.map +1 -1
- package/dist/MetadataList/MetadataList.js +1 -1
- package/dist/MobileNav/MobileNav.d.ts +1 -0
- package/dist/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/MobileNav/MobileNav.js +24 -6
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +8 -8
- package/dist/NavItem/navItemStyles.stylex.d.ts +4 -4
- package/dist/NavItem/navItemStyles.stylex.d.ts.map +1 -1
- package/dist/NavItem/navItemStyles.stylex.js +4 -4
- package/dist/NavMenu/NavHeadingMenuItem.d.ts.map +1 -1
- package/dist/NavMenu/NavHeadingMenuItem.js +3 -3
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +36 -8
- package/dist/Outline/Outline.d.ts.map +1 -1
- package/dist/Outline/Outline.js +3 -3
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Pagination/Pagination.js +2 -2
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +11 -12
- package/dist/PowerSearch/PowerSearchToken.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchToken.js +3 -1
- package/dist/PowerSearch/formatFilterValue.d.ts +11 -2
- package/dist/PowerSearch/formatFilterValue.d.ts.map +1 -1
- package/dist/PowerSearch/formatFilterValue.js +23 -8
- package/dist/RadioList/RadioListItem.d.ts +2 -2
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +70 -40
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +7 -7
- package/dist/Section/Section.d.ts +36 -1
- package/dist/Section/Section.d.ts.map +1 -1
- package/dist/Section/Section.js +12 -2
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +7 -2
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +3 -3
- package/dist/Selector/Selector.d.ts +26 -1
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +93 -20
- package/dist/Selector/SelectorOption.d.ts +14 -1
- package/dist/Selector/SelectorOption.d.ts.map +1 -1
- package/dist/Selector/SelectorOption.js +6 -0
- package/dist/Selector/SelectorRowLayoutContext.d.ts +8 -0
- package/dist/Selector/SelectorRowLayoutContext.d.ts.map +1 -0
- package/dist/Selector/SelectorRowLayoutContext.js +27 -0
- package/dist/Selector/types.d.ts +1 -0
- package/dist/Selector/types.d.ts.map +1 -1
- package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
- package/dist/SideNav/SideNavHeading.js +4 -4
- package/dist/SideNav/SideNavItem.d.ts.map +1 -1
- package/dist/SideNav/SideNavItem.js +3 -3
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +7 -7
- package/dist/Stack/Stack.d.ts +23 -1
- package/dist/Stack/Stack.d.ts.map +1 -1
- package/dist/Stack/Stack.js +12 -6
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +2 -2
- package/dist/TabList/Tab.d.ts.map +1 -1
- package/dist/TabList/Tab.js +1 -1
- package/dist/TabList/TabMenu.d.ts.map +1 -1
- package/dist/TabList/TabMenu.js +3 -3
- package/dist/Table/TableRow.js +4 -4
- package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
- package/dist/Table/plugins/columnResize/useTableColumnResize.js +1 -1
- package/dist/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
- package/dist/Table/plugins/filtering/useTableFiltering.js +2 -2
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +2 -2
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +2 -2
- package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
- package/dist/Table/plugins/sortable/useTableSortable.js +1 -1
- package/dist/Table/plugins/sortable/useTableSortableState.d.ts +5 -3
- package/dist/Table/plugins/sortable/useTableSortableState.d.ts.map +1 -1
- package/dist/Table/plugins/sortable/useTableSortableState.js +12 -9
- package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
- package/dist/Table/plugins/tree/useTableTreeData.js +3 -3
- package/dist/TextArea/TextArea.js +1 -1
- package/dist/TextInput/TextInput.js +1 -1
- package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.js +3 -3
- package/dist/TimeInput/TimeInput.js +2 -2
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +6 -4
- package/dist/Timestamp/formatInstant.d.ts +3 -2
- package/dist/Timestamp/formatInstant.d.ts.map +1 -1
- package/dist/Timestamp/formatInstant.js +8 -8
- package/dist/Timestamp/tooltipEntries.d.ts +2 -1
- package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
- package/dist/Timestamp/tooltipEntries.js +5 -3
- package/dist/Toast/Toast.d.ts +4 -3
- package/dist/Toast/Toast.d.ts.map +1 -1
- package/dist/Toast/Toast.js +10 -7
- package/dist/Token/Token.d.ts.map +1 -1
- package/dist/Token/Token.js +6 -6
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +1 -1
- package/dist/Tooltip/Tooltip.d.ts +16 -3
- package/dist/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip/Tooltip.js +2 -0
- package/dist/Tooltip/index.d.ts +1 -1
- package/dist/Tooltip/index.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.d.ts +21 -2
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +71 -13
- package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
- package/dist/TopNav/TopNavHeading.js +4 -4
- package/dist/TopNav/TopNavItem.d.ts.map +1 -1
- package/dist/TopNav/TopNavItem.js +3 -3
- package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenu.js +2 -2
- package/dist/TopNav/TopNavMegaMenuItem.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenuItem.js +2 -2
- package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMenu.js +4 -4
- package/dist/TreeList/TreeListItem.d.ts.map +1 -1
- package/dist/TreeList/TreeListItem.js +7 -7
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +2 -2
- package/dist/Typeahead/Typeahead.d.ts.map +1 -1
- package/dist/Typeahead/Typeahead.js +1 -1
- package/dist/astryx.css +124 -62
- package/dist/hooks/containerReveal.stylex.d.ts.map +1 -1
- package/dist/hooks/containerReveal.stylex.js +18 -18
- package/dist/hooks/scrollbarGutter.d.ts +28 -0
- package/dist/hooks/scrollbarGutter.d.ts.map +1 -0
- package/dist/hooks/scrollbarGutter.js +103 -0
- package/dist/hooks/useAutoMediaMode.d.ts +31 -0
- package/dist/hooks/useAutoMediaMode.d.ts.map +1 -0
- package/dist/hooks/useAutoMediaMode.js +201 -0
- package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
- package/dist/hooks/useInputStatusIcon.js +1 -1
- package/dist/hooks/useListFocus.d.ts +5 -2
- package/dist/hooks/useListFocus.d.ts.map +1 -1
- package/dist/hooks/useListFocus.js +12 -6
- package/dist/hooks/useScrollLock.d.ts +4 -0
- package/dist/hooks/useScrollLock.d.ts.map +1 -1
- package/dist/hooks/useScrollLock.js +13 -1
- package/dist/i18n/InternationalizationContext.d.ts.map +1 -1
- package/dist/i18n/InternationalizationContext.js +2 -0
- package/dist/i18n/index.d.ts +6 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +6 -0
- package/dist/i18n/useCollator.d.ts +12 -0
- package/dist/i18n/useCollator.d.ts.map +1 -0
- package/dist/i18n/useCollator.js +40 -0
- package/dist/i18n/useLocale.d.ts +3 -0
- package/dist/i18n/useLocale.d.ts.map +1 -0
- package/dist/i18n/useLocale.js +31 -0
- package/dist/theme/MediaTheme.d.ts +25 -5
- package/dist/theme/MediaTheme.d.ts.map +1 -1
- package/dist/theme/MediaTheme.js +31 -6
- package/dist/theme/defineTheme.d.ts +5 -0
- package/dist/theme/defineTheme.d.ts.map +1 -1
- package/dist/theme/defineTheme.js +5 -0
- package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
- package/dist/theme/derivedVarRegistry.js +7 -0
- package/dist/theme/generateThemeRules.d.ts.map +1 -1
- package/dist/theme/generateThemeRules.js +66 -5
- package/dist/theme/index.d.ts +1 -1
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/syntax/index.d.ts +6 -0
- package/dist/theme/syntax/index.d.ts.map +1 -1
- package/dist/theme/syntax/index.js +7 -2
- package/dist/utils/dateParser.d.ts +4 -3
- package/dist/utils/dateParser.d.ts.map +1 -1
- package/dist/utils/dateParser.js +8 -8
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/plainDate.d.ts +5 -2
- package/dist/utils/plainDate.d.ts.map +1 -1
- package/dist/utils/plainDate.js +20 -4
- package/locales/en.json +28 -0
- package/locales/pseudo.json +21 -0
- package/package.json +3 -3
- package/src/Avatar/Avatar.doc.mjs +10 -6
- package/src/Avatar/Avatar.test.tsx +219 -1
- package/src/Avatar/Avatar.tsx +179 -37
- package/src/Avatar/AvatarStatusDot.tsx +30 -4
- package/src/Avatar/AvatarStatusLabelContext.ts +47 -0
- package/src/AvatarGroup/AvatarGroup.doc.mjs +10 -6
- package/src/AvatarGroup/AvatarGroup.test.tsx +62 -0
- package/src/AvatarGroup/AvatarGroup.tsx +3 -1
- package/src/AvatarGroup/AvatarGroupOverflow.tsx +31 -8
- package/src/Banner/Banner.doc.mjs +2 -0
- package/src/Blockquote/Blockquote.doc.mjs +30 -7
- package/src/Blockquote/Blockquote.test.tsx +34 -3
- package/src/Blockquote/Blockquote.tsx +11 -9
- package/src/BottomSheet/BottomSheet.doc.mjs +3 -3
- package/src/BottomSheet/BottomSheet.test.tsx +24 -0
- package/src/BottomSheet/BottomSheetPanel.test.tsx +91 -0
- package/src/BottomSheet/BottomSheetPanel.tsx +58 -3
- package/src/Breadcrumbs/BreadcrumbItem.tsx +36 -23
- package/src/Breadcrumbs/Breadcrumbs.doc.mjs +26 -2
- package/src/Breadcrumbs/Breadcrumbs.test.tsx +31 -0
- package/src/Button/Button.tsx +12 -9
- package/src/Calendar/Calendar.tsx +15 -9
- package/src/Calendar/hooks/useCalendarNavigation.ts +6 -4
- package/src/Calendar/styles.ts +8 -5
- package/src/Center/Center.doc.mjs +48 -0
- package/src/Center/Center.test.tsx +158 -0
- package/src/Center/Center.tsx +50 -9
- package/src/Chat/ChatComposer.tsx +11 -5
- package/src/Chat/ChatComposerDrawer.tsx +4 -1
- package/src/Chat/ChatToolCalls.tsx +13 -4
- package/src/Chat/{useChatDictation.test.ts → useChatDictation.test.tsx} +29 -14
- package/src/Chat/useChatDictation.ts +1 -1
- package/src/Chat/useSpeechRecognition.ts +5 -3
- package/src/Chat/useTriggerMenu.tsx +4 -1
- package/src/CheckboxInput/CheckboxInput.tsx +5 -2
- package/src/Citation/Citation.test.tsx +6 -1
- package/src/Citation/Citation.tsx +11 -5
- package/src/ClickableCard/ClickableCard.tsx +7 -4
- package/src/CodeBlock/CodeBlock.tsx +4 -1
- package/src/Collapsible/Collapsible.tsx +5 -2
- package/src/CommandPalette/CommandPaletteItem.tsx +6 -3
- package/src/ComplexSelector/ComplexSelector.doc.mjs +10 -0
- package/src/ComplexSelector/ComplexSelector.tsx +14 -7
- package/src/DateInput/DateInput.test.tsx +17 -1
- package/src/DateInput/DateInput.tsx +93 -21
- package/src/DateInput/DateInputTouch.test.tsx +2582 -0
- package/src/DateInput/MonthScroller.tsx +878 -0
- package/src/DateInput/MonthYearWheels.tsx +147 -0
- package/src/DateInput/TouchDateField.tsx +1223 -0
- package/src/DateInput/Wheel.tsx +473 -0
- package/src/DateInput/monthGeometry.ts +118 -0
- package/src/DateInput/tokens.stylex.ts +99 -0
- package/src/DateInput/useOwnScrollGesture.ts +227 -0
- package/src/DateInput/usePointerDragScroll.ts +220 -0
- package/src/DateInput/useScrollSettle.ts +164 -0
- package/src/DateRangeInput/DateRangeInput.doc.mjs +1 -1
- package/src/DateRangeInput/DateRangeInput.tsx +31 -13
- package/src/DateTimeInput/DateTimeInput.tsx +25 -9
- package/src/Dialog/Dialog.test.tsx +24 -0
- package/src/Dialog/Dialog.tsx +3 -0
- package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +5 -2
- package/src/DropdownMenu/DropdownMenuItem.tsx +5 -2
- package/src/DropdownMenu/DropdownMenuRadioItem.tsx +5 -2
- package/src/DropdownMenu/DropdownMenuSubMenu.tsx +5 -2
- package/src/Field/Field.doc.mjs +2 -0
- package/src/Field/FieldLabel.tsx +9 -3
- package/src/Field/InputClearButton.test.tsx +110 -3
- package/src/Field/InputClearButton.tsx +38 -0
- package/src/Field/inputStyles.stylex.ts +17 -13
- package/src/FileInput/FileInput.tsx +15 -8
- package/src/FormLayout/FormLayout.doc.mjs +1 -1
- package/src/HoverCard/HoverCard.doc.mjs +18 -0
- package/src/HoverCard/HoverCard.test.tsx +189 -0
- package/src/HoverCard/HoverCard.tsx +22 -2
- package/src/HoverCard/index.ts +1 -0
- package/src/HoverCard/useHoverCard.doc.mjs +2 -0
- package/src/HoverCard/useHoverCard.tsx +103 -7
- package/src/InputGroup/InputGroup.tsx +1 -1
- package/src/Item/Item.doc.mjs +1 -0
- package/src/Item/Item.test.tsx +50 -0
- package/src/Item/Item.tsx +54 -6
- package/src/Layer/index.ts +10 -0
- package/src/Layer/useLayer.tsx +13 -2
- package/src/Layer/useTouchTrigger.test.ts +70 -0
- package/src/Layer/useTouchTrigger.ts +366 -0
- package/src/Layout/Layout.doc.mjs +18 -0
- package/src/Layout/container.stylex.ts +11 -3
- package/src/Layout/index.ts +4 -0
- package/src/Layout/overlayPaddingReset.test.tsx +222 -0
- package/src/Layout/padding.stylex.ts +192 -12
- package/src/Lightbox/Lightbox.tsx +11 -3
- package/src/Link/Link.tsx +9 -6
- package/src/MetadataList/MetadataList.tsx +4 -1
- package/src/MobileNav/MobileNav.tsx +61 -5
- package/src/MobileNav/MobileNavEntryAnimation.test.tsx +212 -0
- package/src/MobileNav/MobileNavScrollbarGutter.test.tsx +109 -0
- package/src/MultiSelector/MultiSelector.test.tsx +1 -1
- package/src/MultiSelector/MultiSelector.tsx +26 -10
- package/src/NavItem/navItemStyles.stylex.ts +7 -4
- package/src/NavMenu/NavHeadingMenuItem.tsx +6 -3
- package/src/NumberInput/NumberInput.doc.mjs +24 -0
- package/src/NumberInput/NumberInput.test.tsx +138 -0
- package/src/NumberInput/NumberInput.tsx +47 -8
- package/src/Outline/Outline.tsx +5 -2
- package/src/Pagination/Pagination.tsx +5 -2
- package/src/Popover/Popover.test.tsx +27 -1
- package/src/PowerSearch/PowerSearch.tsx +17 -8
- package/src/PowerSearch/PowerSearchToken.tsx +3 -0
- package/src/PowerSearch/formatFilterValue.test.ts +22 -2
- package/src/PowerSearch/formatFilterValue.ts +31 -6
- package/src/RadioList/RadioList.doc.mjs +1 -1
- package/src/RadioList/RadioList.test.tsx +170 -2
- package/src/RadioList/RadioListItem.tsx +88 -53
- package/src/Resizable/ResizeHandle.test.tsx +22 -0
- package/src/Resizable/ResizeHandle.tsx +25 -7
- package/src/Section/Section.doc.mjs +55 -0
- package/src/Section/Section.test.tsx +201 -4
- package/src/Section/Section.tsx +69 -0
- package/src/SegmentedControl/SegmentedControl.test.tsx +31 -0
- package/src/SegmentedControl/SegmentedControlItem.tsx +15 -3
- package/src/SelectableCard/SelectableCard.tsx +6 -3
- package/src/Selector/Selector.doc.mjs +16 -2
- package/src/Selector/Selector.test.tsx +525 -1
- package/src/Selector/Selector.tsx +180 -25
- package/src/Selector/SelectorOption.doc.mjs +7 -0
- package/src/Selector/SelectorOption.tsx +21 -0
- package/src/Selector/SelectorRowLayoutContext.ts +32 -0
- package/src/Selector/types.ts +4 -4
- package/src/SideNav/SideNavHeading.tsx +14 -5
- package/src/SideNav/SideNavItem.tsx +9 -3
- package/src/Slider/Slider.tsx +25 -6
- package/src/Stack/Stack.doc.mjs +72 -0
- package/src/Stack/Stack.test.tsx +156 -0
- package/src/Stack/Stack.tsx +50 -8
- package/src/Switch/Switch.tsx +5 -2
- package/src/TabList/Tab.tsx +4 -1
- package/src/TabList/TabMenu.tsx +9 -3
- package/src/Table/TableRow.tsx +4 -4
- package/src/Table/plugins/columnResize/useTableColumnResize.tsx +6 -2
- package/src/Table/plugins/filtering/useTableFiltering.tsx +4 -1
- package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +10 -3
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +6 -3
- package/src/Table/plugins/sortable/useTableSortable.tsx +4 -1
- package/src/Table/plugins/sortable/useTableSortableState.test.tsx +34 -0
- package/src/Table/plugins/sortable/useTableSortableState.tsx +26 -23
- package/src/Table/plugins/tree/useTableTreeData.tsx +10 -4
- package/src/TextArea/TextArea.doc.mjs +1 -1
- package/src/TextArea/TextArea.tsx +1 -1
- package/src/TextInput/TextInput.tsx +1 -1
- package/src/Thumbnail/Thumbnail.tsx +9 -3
- package/src/TimeInput/TimeInput.tsx +1 -1
- package/src/Timestamp/Timestamp.test.tsx +27 -7
- package/src/Timestamp/Timestamp.tsx +8 -4
- package/src/Timestamp/formatInstant.ts +9 -7
- package/src/Timestamp/tooltipEntries.test.ts +11 -6
- package/src/Timestamp/tooltipEntries.ts +6 -2
- package/src/Toast/Toast.tsx +9 -7
- package/src/Token/Token.tsx +14 -5
- package/src/Tokenizer/Tokenizer.tsx +4 -1
- package/src/Tooltip/Tooltip.doc.mjs +18 -0
- package/src/Tooltip/Tooltip.test.tsx +254 -1
- package/src/Tooltip/Tooltip.tsx +22 -2
- package/src/Tooltip/index.ts +1 -0
- package/src/Tooltip/useTooltip.doc.mjs +2 -0
- package/src/Tooltip/useTooltip.tsx +99 -21
- package/src/TopNav/TopNavHeading.tsx +13 -4
- package/src/TopNav/TopNavItem.tsx +6 -3
- package/src/TopNav/TopNavMegaMenu.tsx +5 -2
- package/src/TopNav/TopNavMegaMenuItem.tsx +5 -2
- package/src/TopNav/TopNavMenu.tsx +10 -4
- package/src/TreeList/TreeListItem.tsx +22 -7
- package/src/Typeahead/BaseTypeahead.tsx +5 -2
- package/src/Typeahead/Typeahead.tsx +4 -1
- package/src/hooks/containerReveal.stylex.ts +54 -18
- package/src/hooks/scrollbarGutter.test.ts +167 -0
- package/src/hooks/scrollbarGutter.ts +121 -0
- package/src/hooks/useAutoMediaMode.test.ts +109 -0
- package/src/hooks/useAutoMediaMode.ts +233 -0
- package/src/hooks/useInputStatusIcon.tsx +4 -1
- package/src/hooks/useListFocus.doc.mjs +2 -2
- package/src/hooks/useListFocus.test.tsx +65 -3
- package/src/hooks/useListFocus.ts +15 -7
- package/src/hooks/useScrollLock.doc.mjs +4 -4
- package/src/hooks/useScrollLock.test.ts +73 -0
- package/src/hooks/useScrollLock.ts +14 -0
- package/src/i18n/InternationalizationContext.ts +2 -0
- package/src/i18n/__tests__/e2e-powersearch.test.tsx +37 -1
- package/src/i18n/__tests__/useCollator.test.tsx +115 -0
- package/src/i18n/__tests__/useLocale.test.tsx +52 -0
- package/src/i18n/index.ts +6 -0
- package/src/i18n/useCollator.doc.mjs +84 -0
- package/src/i18n/useCollator.ts +44 -0
- package/src/i18n/useLocale.doc.mjs +70 -0
- package/src/i18n/useLocale.ts +34 -0
- package/src/i18n/useTranslator.doc.mjs +1 -1
- package/src/reset.css +9 -2
- package/src/reset.test.ts +22 -0
- package/src/theme/MediaTheme.doc.mjs +23 -4
- package/src/theme/MediaTheme.dom.test.tsx +97 -0
- package/src/theme/MediaTheme.tsx +42 -7
- package/src/theme/defineTheme.test.ts +9 -3
- package/src/theme/defineTheme.ts +5 -0
- package/src/theme/derivedVarRegistry.test.ts +19 -5
- package/src/theme/derivedVarRegistry.ts +4 -0
- package/src/theme/generateThemeRules.test.ts +118 -0
- package/src/theme/generateThemeRules.ts +83 -5
- package/src/theme/index.ts +1 -1
- package/src/theme/syntax/index.ts +6 -2
- package/src/theme/syntax/serverSafeSyntax.test.ts +68 -0
- package/src/utils/dateParser.test.ts +20 -0
- package/src/utils/dateParser.ts +14 -7
- package/src/utils/index.ts +2 -0
- package/src/utils/plainDate.test.ts +6 -0
- package/src/utils/plainDate.ts +21 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/HoverCard/index.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAGH,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,YAAY,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/HoverCard/index.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAGH,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,YAAY,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file useHoverCard.ts
|
|
3
|
-
* @input Uses useLayer, React hooks
|
|
4
|
-
* @output Exports useHoverCard hook for hover/focus triggered layers
|
|
3
|
+
* @input Uses useLayer, useTouchTrigger, React hooks
|
|
4
|
+
* @output Exports useHoverCard hook for hover/focus/tap triggered layers
|
|
5
5
|
* @position Layer hook; builds on useLayer for hover card behavior
|
|
6
6
|
*
|
|
7
7
|
* SYNC: When modified, update:
|
|
@@ -9,10 +9,15 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { type ReactNode, type RefCallback } from 'react';
|
|
11
11
|
import { type ContextRenderProps, type LayerAlignment, type LayerPlacement } from '../Layer/useLayer';
|
|
12
|
+
import { type LayerTouchTrigger } from '../Layer/useTouchTrigger';
|
|
12
13
|
/**
|
|
13
14
|
* Focus trigger behavior for hover cards
|
|
14
15
|
*/
|
|
15
16
|
export type HoverCardFocusTrigger = 'auto' | 'always' | 'never';
|
|
17
|
+
/**
|
|
18
|
+
* Touch trigger behavior for hover cards
|
|
19
|
+
*/
|
|
20
|
+
export type HoverCardTouchTrigger = LayerTouchTrigger;
|
|
16
21
|
export interface HoverCardOptions {
|
|
17
22
|
/**
|
|
18
23
|
* Position placement relative to anchor
|
|
@@ -43,6 +48,16 @@ export interface HoverCardOptions {
|
|
|
43
48
|
* @default 'auto'
|
|
44
49
|
*/
|
|
45
50
|
focusTrigger?: HoverCardFocusTrigger;
|
|
51
|
+
/**
|
|
52
|
+
* What a tap does on a touch pointer, where there is no hover:
|
|
53
|
+
* - `auto`: tap opens the card, unless the trigger performs an action of its
|
|
54
|
+
* own (a button, a link, a form control) — that tap belongs to the control
|
|
55
|
+
* - `tap`: tap always opens the card, even on a trigger that acts
|
|
56
|
+
* - `none`: touch never opens the card
|
|
57
|
+
*
|
|
58
|
+
* @default 'auto'
|
|
59
|
+
*/
|
|
60
|
+
touchTrigger?: HoverCardTouchTrigger;
|
|
46
61
|
/**
|
|
47
62
|
* Whether the hover card is enabled.
|
|
48
63
|
* When false, hover/focus triggers are disabled.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHoverCard.d.ts","sourceRoot":"","sources":["../../src/HoverCard/useHoverCard.tsx"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"useHoverCard.d.ts","sourceRoot":"","sources":["../../src/HoverCard/useHoverCard.tsx"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AA4BlC;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC;IAErC;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC;IAErC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAE9B;;;OAGG;IACH,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAEtC;;;;OAIG;IACH,cAAc,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAEzC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;OAOG;IACH,eAAe,EAAE,CACf,QAAQ,EAAE,SAAS,EACnB,KAAK,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,KAC5C,SAAS,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAyBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CA8X5E"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @file useHoverCard.ts
|
|
7
|
-
* @input Uses useLayer, React hooks
|
|
8
|
-
* @output Exports useHoverCard hook for hover/focus triggered layers
|
|
7
|
+
* @input Uses useLayer, useTouchTrigger, React hooks
|
|
8
|
+
* @output Exports useHoverCard hook for hover/focus/tap triggered layers
|
|
9
9
|
* @position Layer hook; builds on useLayer for hover card behavior
|
|
10
10
|
*
|
|
11
11
|
* SYNC: When modified, update:
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
import { useCallback, useEffect, useRef } from 'react';
|
|
15
15
|
import * as stylex from '@stylexjs/stylex';
|
|
16
16
|
import { useLayer } from "../Layer/useLayer.js";
|
|
17
|
+
import { useTouchTrigger } from "../Layer/useTouchTrigger.js";
|
|
17
18
|
import { layerAnimations } from "../Layer/layerAnimations.stylex.js";
|
|
18
19
|
import "../theme/tokens.stylex.js";
|
|
19
20
|
import { colorVars, shadowVars, radiusVars, spacingVars } from "../theme/tokens.stylex.js";
|
|
@@ -33,6 +34,10 @@ const styles = {
|
|
|
33
34
|
* Focus trigger behavior for hover cards
|
|
34
35
|
*/
|
|
35
36
|
|
|
37
|
+
/**
|
|
38
|
+
* Touch trigger behavior for hover cards
|
|
39
|
+
*/
|
|
40
|
+
|
|
36
41
|
/**
|
|
37
42
|
* Check if an element is naturally focusable
|
|
38
43
|
*/
|
|
@@ -79,6 +84,7 @@ export function useHoverCard(options = {}) {
|
|
|
79
84
|
delay = 300,
|
|
80
85
|
hideDelay = 200,
|
|
81
86
|
focusTrigger = 'auto',
|
|
87
|
+
touchTrigger = 'auto',
|
|
82
88
|
isEnabled = true,
|
|
83
89
|
label,
|
|
84
90
|
isOpen,
|
|
@@ -112,6 +118,28 @@ export function useHoverCard(options = {}) {
|
|
|
112
118
|
}
|
|
113
119
|
}, []);
|
|
114
120
|
|
|
121
|
+
// Touch resolves immediately: the hover delays exist to filter out a pointer
|
|
122
|
+
// passing across the trigger, and a tap is never that.
|
|
123
|
+
const showNow = useCallback(() => {
|
|
124
|
+
clearTimeouts();
|
|
125
|
+
layer.show();
|
|
126
|
+
}, [clearTimeouts, layer]);
|
|
127
|
+
const hideNow = useCallback(() => {
|
|
128
|
+
clearTimeouts();
|
|
129
|
+
isHoveringContentRef.current = false;
|
|
130
|
+
layer.hide();
|
|
131
|
+
}, [clearTimeouts, layer]);
|
|
132
|
+
const touch = useTouchTrigger({
|
|
133
|
+
touchTrigger,
|
|
134
|
+
isEnabled,
|
|
135
|
+
isControlled: isOpen !== undefined,
|
|
136
|
+
isOpen: layer.isOpen,
|
|
137
|
+
layerId: layer.id,
|
|
138
|
+
triggerRef,
|
|
139
|
+
show: showNow,
|
|
140
|
+
hide: hideNow
|
|
141
|
+
});
|
|
142
|
+
|
|
115
143
|
// Schedule show with delay (suppressed when isOpen is false)
|
|
116
144
|
const scheduleShow = useCallback(() => {
|
|
117
145
|
if (!isEnabled || isOpen === false) {
|
|
@@ -139,15 +167,37 @@ export function useHoverCard(options = {}) {
|
|
|
139
167
|
|
|
140
168
|
// Event handlers
|
|
141
169
|
const handleMouseEnter = useCallback(() => {
|
|
170
|
+
// A tap synthesizes mouseenter. On touch the tap path owns the decision,
|
|
171
|
+
// so hover must not also fire — without this a hover card opens on every
|
|
172
|
+
// tap of its trigger and has nothing to close it.
|
|
173
|
+
if (touch.isTouchPointerRef.current) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
142
176
|
scheduleShow();
|
|
143
|
-
}, [scheduleShow]);
|
|
177
|
+
}, [touch, scheduleShow]);
|
|
144
178
|
const handleMouseLeave = useCallback(() => {
|
|
179
|
+
// On touch the synthesized mouseleave arrives with the next tap elsewhere,
|
|
180
|
+
// which the outside-tap dismissal already handles.
|
|
181
|
+
if (touch.isTouchPointerRef.current) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
145
184
|
scheduleHide();
|
|
146
|
-
}, [scheduleHide]);
|
|
185
|
+
}, [touch, scheduleHide]);
|
|
186
|
+
|
|
187
|
+
// Tap-to-open on touch; on a mouse this does nothing and hover still rules.
|
|
188
|
+
const handlePointerDown = useCallback(event => {
|
|
189
|
+
touch.handlePointerDown(event);
|
|
190
|
+
}, [touch]);
|
|
147
191
|
const handleFocusIn = useCallback(() => {
|
|
148
192
|
if (!isEnabled) {
|
|
149
193
|
return;
|
|
150
194
|
}
|
|
195
|
+
// A tap focuses the trigger it activates. Opening on that focus would
|
|
196
|
+
// reinstate exactly the behavior the touch path just decided against —
|
|
197
|
+
// and on an action trigger it covers the thing the user tapped.
|
|
198
|
+
if (touch.isTouchInteraction()) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
151
201
|
// Skip showing if we're in the middle of an Escape dismiss
|
|
152
202
|
if (isEscapeDismissingRef.current) {
|
|
153
203
|
isEscapeDismissingRef.current = false;
|
|
@@ -155,7 +205,7 @@ export function useHoverCard(options = {}) {
|
|
|
155
205
|
}
|
|
156
206
|
clearTimeouts();
|
|
157
207
|
layer.show();
|
|
158
|
-
}, [isEnabled, clearTimeouts, layer]);
|
|
208
|
+
}, [isEnabled, touch, clearTimeouts, layer]);
|
|
159
209
|
const handleFocusOut = useCallback(e => {
|
|
160
210
|
// Check if focus is moving to the hover card content
|
|
161
211
|
const relatedTarget = e.relatedTarget;
|
|
@@ -172,11 +222,15 @@ export function useHoverCard(options = {}) {
|
|
|
172
222
|
e.stopPropagation();
|
|
173
223
|
// Hide immediately without refocusing (we're already on trigger)
|
|
174
224
|
clearTimeouts();
|
|
225
|
+
touch.clearTapOpen();
|
|
175
226
|
layer.hide();
|
|
176
227
|
}
|
|
177
|
-
}, [clearTimeouts, layer]);
|
|
228
|
+
}, [touch, clearTimeouts, layer]);
|
|
178
229
|
|
|
179
230
|
// Interaction ref that handles event listeners only
|
|
231
|
+
const {
|
|
232
|
+
handlePointerEnter
|
|
233
|
+
} = touch;
|
|
180
234
|
const interactionRef = useCallback(el => {
|
|
181
235
|
// Cleanup previous element
|
|
182
236
|
if (triggerRef.current) {
|
|
@@ -185,11 +239,17 @@ export function useHoverCard(options = {}) {
|
|
|
185
239
|
triggerRef.current.removeEventListener('focusin', handleFocusIn);
|
|
186
240
|
triggerRef.current.removeEventListener('focusout', handleFocusOut);
|
|
187
241
|
triggerRef.current.removeEventListener('keydown', handleKeyDown);
|
|
242
|
+
triggerRef.current.removeEventListener('pointerenter', handlePointerEnter);
|
|
243
|
+
triggerRef.current.removeEventListener('pointerdown', handlePointerDown);
|
|
188
244
|
}
|
|
189
245
|
if (el) {
|
|
190
|
-
// Attach hover listeners
|
|
246
|
+
// Attach hover listeners. `pointerenter` runs before the synthesized
|
|
247
|
+
// `mouseenter` a tap produces, which is what lets the hover path know
|
|
248
|
+
// it is looking at a finger.
|
|
249
|
+
el.addEventListener('pointerenter', handlePointerEnter);
|
|
191
250
|
el.addEventListener('mouseenter', handleMouseEnter);
|
|
192
251
|
el.addEventListener('mouseleave', handleMouseLeave);
|
|
252
|
+
el.addEventListener('pointerdown', handlePointerDown);
|
|
193
253
|
|
|
194
254
|
// Attach focus listeners based on focusTrigger option
|
|
195
255
|
const shouldAttachFocus = focusTrigger === 'always' || focusTrigger === 'auto' && isFocusable(el);
|
|
@@ -202,7 +262,7 @@ export function useHoverCard(options = {}) {
|
|
|
202
262
|
el.addEventListener('keydown', handleKeyDown);
|
|
203
263
|
}
|
|
204
264
|
triggerRef.current = el;
|
|
205
|
-
}, [focusTrigger, handleMouseEnter, handleMouseLeave, handleFocusIn, handleFocusOut, handleKeyDown]);
|
|
265
|
+
}, [focusTrigger, handleMouseEnter, handleMouseLeave, handleFocusIn, handleFocusOut, handleKeyDown, handlePointerEnter, handlePointerDown]);
|
|
206
266
|
|
|
207
267
|
// Combined ref - shorthand for calling both positionRef and interactionRef
|
|
208
268
|
const ref = useCallback(el => {
|
|
@@ -268,10 +328,18 @@ export function useHoverCard(options = {}) {
|
|
|
268
328
|
className: "x1lliihq x1vlblms xvmdzux x126nfab x1t818jl"
|
|
269
329
|
},
|
|
270
330
|
onMouseEnter: () => {
|
|
331
|
+
// Touch synthesizes these over the card too; letting a tap inside
|
|
332
|
+
// register as "hovering content" would block every later hide.
|
|
333
|
+
if (touch.isTouchPointerRef.current) {
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
271
336
|
isHoveringContentRef.current = true;
|
|
272
337
|
clearTimeouts();
|
|
273
338
|
},
|
|
274
339
|
onMouseLeave: () => {
|
|
340
|
+
if (touch.isTouchPointerRef.current) {
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
275
343
|
isHoveringContentRef.current = false;
|
|
276
344
|
scheduleHide();
|
|
277
345
|
},
|
|
@@ -283,6 +351,7 @@ export function useHoverCard(options = {}) {
|
|
|
283
351
|
isEscapeDismissingRef.current = true;
|
|
284
352
|
// Hide immediately
|
|
285
353
|
clearTimeouts();
|
|
354
|
+
touch.clearTapOpen();
|
|
286
355
|
layer.hide();
|
|
287
356
|
// Refocus the trigger
|
|
288
357
|
triggerRef.current?.focus();
|
|
@@ -308,7 +377,7 @@ export function useHoverCard(options = {}) {
|
|
|
308
377
|
},
|
|
309
378
|
children: children
|
|
310
379
|
}), renderProps);
|
|
311
|
-
}, [layer, placement, alignment, label, clearTimeouts, scheduleHide, popoverXstyle]);
|
|
380
|
+
}, [layer, placement, alignment, label, clearTimeouts, scheduleHide, popoverXstyle, touch]);
|
|
312
381
|
return {
|
|
313
382
|
ref,
|
|
314
383
|
positionRef: layer.ref,
|
package/dist/Item/Item.d.ts
CHANGED
|
@@ -68,6 +68,14 @@ export interface ItemProps extends BaseProps<HTMLElement> {
|
|
|
68
68
|
* and text-overflow: ellipsis is applied.
|
|
69
69
|
*/
|
|
70
70
|
descriptionLines?: number;
|
|
71
|
+
/**
|
|
72
|
+
* How the label and description sit together. `stacked` puts the description
|
|
73
|
+
* on its own line below the label; `inline` keeps both on one line, with the
|
|
74
|
+
* description ellipsizing first, so the row fits a fixed-height host.
|
|
75
|
+
*
|
|
76
|
+
* @default 'stacked'
|
|
77
|
+
*/
|
|
78
|
+
layout?: 'stacked' | 'inline';
|
|
71
79
|
/**
|
|
72
80
|
* Click handler. Makes the item clickable with button semantics.
|
|
73
81
|
*/
|
|
@@ -139,7 +147,7 @@ export interface ItemProps extends BaseProps<HTMLElement> {
|
|
|
139
147
|
* />
|
|
140
148
|
* ```
|
|
141
149
|
*/
|
|
142
|
-
export declare function Item({ as: Component, marker, startContent, label, description, endContent, align, density, labelLines, descriptionLines, onClick, interactiveRef, href, target: targetFromProps, rel: relFromProps, isHighlighted, isSelected, isDisabled, xstyle, className, style, ref, role, ...restProps }: ItemProps): import("react").JSX.Element;
|
|
150
|
+
export declare function Item({ as: Component, marker, startContent, label, description, endContent, align, density, labelLines, descriptionLines, layout, onClick, interactiveRef, href, target: targetFromProps, rel: relFromProps, isHighlighted, isSelected, isDisabled, xstyle, className, style, ref, role, ...restProps }: ItemProps): import("react").JSX.Element;
|
|
143
151
|
export declare namespace Item {
|
|
144
152
|
var displayName: string;
|
|
145
153
|
}
|
package/dist/Item/Item.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../src/Item/Item.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAS,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAU7C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAa5C,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC3C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,SAAU,SAAQ,SAAS,CAAC,WAAW,CAAC;IACvD,yCAAyC;IACzC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE7B;;;OAGG;IACH,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;IAE3B;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IAEzB;;;OAGG;IACH,KAAK,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;;OAGG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IAEvB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAE5C;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAErD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAE5B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../src/Item/Item.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAS,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAU7C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAa5C,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC3C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,SAAU,SAAQ,SAAS,CAAC,WAAW,CAAC;IACvD,yCAAyC;IACzC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE7B;;;OAGG;IACH,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;IAE3B;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IAEzB;;;OAGG;IACH,KAAK,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;;OAGG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IAEvB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAE9B;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAE5C;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAErD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAE5B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA+LD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,IAAI,CAAC,EACnB,EAAE,EAAE,SAAiB,EACrB,MAAM,EACN,YAAY,EACZ,KAAK,EACL,WAAW,EACX,UAAU,EACV,KAAgB,EAChB,OAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,MAAkB,EAClB,OAAO,EACP,cAAc,EACd,IAAI,EACJ,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,YAAY,EACjB,aAAqB,EACrB,UAAkB,EAClB,UAAkB,EAClB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,IAAI,EACJ,GAAG,SAAS,EACb,EAAE,SAAS,+BAqNX;yBA/Oe,IAAI"}
|
package/dist/Item/Item.js
CHANGED
|
@@ -62,11 +62,11 @@ const styles = {
|
|
|
62
62
|
$$css: true
|
|
63
63
|
},
|
|
64
64
|
interactive: {
|
|
65
|
-
kkrTdU: "x1ypdohk",
|
|
65
|
+
kkrTdU: "x1ypdohk x16khyan",
|
|
66
66
|
k1ekBW: "x15406qy",
|
|
67
67
|
kIyJzY: "xkvfbh3",
|
|
68
68
|
kAMwcw: "xlr8y92",
|
|
69
|
-
kWkggS: "xjbqb8w
|
|
69
|
+
kWkggS: "xjbqb8w xoevpu5 xyxi2l3",
|
|
70
70
|
$$css: true
|
|
71
71
|
},
|
|
72
72
|
highlighted: {
|
|
@@ -78,10 +78,19 @@ const styles = {
|
|
|
78
78
|
$$css: true
|
|
79
79
|
},
|
|
80
80
|
disabled: {
|
|
81
|
-
kkrTdU: "
|
|
81
|
+
kkrTdU: "xt0e3qv",
|
|
82
82
|
kfzvcC: "x47corl",
|
|
83
83
|
$$css: true
|
|
84
84
|
},
|
|
85
|
+
inlineLabel: {
|
|
86
|
+
kmuXW: "x2lah0s",
|
|
87
|
+
$$css: true
|
|
88
|
+
},
|
|
89
|
+
inlineDescription: {
|
|
90
|
+
kmuXW: "xs83m0k",
|
|
91
|
+
k7Eaqz: "xeuugli",
|
|
92
|
+
$$css: true
|
|
93
|
+
},
|
|
85
94
|
label: {
|
|
86
95
|
kMwMTN: "x5tbw38",
|
|
87
96
|
kGuDYH: "xjm74w1",
|
|
@@ -174,6 +183,7 @@ export function Item({
|
|
|
174
183
|
density = 'balanced',
|
|
175
184
|
labelLines,
|
|
176
185
|
descriptionLines,
|
|
186
|
+
layout = 'stacked',
|
|
177
187
|
onClick,
|
|
178
188
|
interactiveRef,
|
|
179
189
|
href,
|
|
@@ -223,13 +233,17 @@ export function Item({
|
|
|
223
233
|
const isStringLabel = typeof label === 'string';
|
|
224
234
|
const isStringDescription = typeof description === 'string';
|
|
225
235
|
const labelTruncateStyle = labelLines != null ? labelLines === 1 ? styles.labelSingleTruncate : styles.labelMultiTruncate : isStringLabel ? styles.labelSingleTruncate : null;
|
|
226
|
-
|
|
236
|
+
|
|
237
|
+
// Inline rows are one line by definition, so the description always
|
|
238
|
+
// ellipsizes there — a ReactNode description cannot wrap the row open.
|
|
239
|
+
const isInline = layout === 'inline' && description != null;
|
|
240
|
+
const descriptionTruncateStyle = descriptionLines != null ? descriptionLines === 1 ? styles.descriptionSingleTruncate : styles.descriptionMultiTruncate : isStringDescription || isInline ? styles.descriptionSingleTruncate : null;
|
|
227
241
|
const labelAndDescription = /*#__PURE__*/_jsxs(_Fragment, {
|
|
228
242
|
children: [/*#__PURE__*/_jsx("span", {
|
|
229
|
-
...stylex.props(styles.label, labelTruncateStyle, labelLines != null && labelLines > 1 && dynamicStyles.lineClamp(labelLines)),
|
|
243
|
+
...stylex.props(styles.label, isInline && styles.inlineLabel, labelTruncateStyle, labelLines != null && labelLines > 1 && dynamicStyles.lineClamp(labelLines)),
|
|
230
244
|
children: label
|
|
231
245
|
}), description != null && /*#__PURE__*/_jsx("span", {
|
|
232
|
-
...stylex.props(styles.description, descriptionTruncateStyle, descriptionLines != null && descriptionLines > 1 && dynamicStyles.lineClamp(descriptionLines)),
|
|
246
|
+
...stylex.props(styles.description, isInline && styles.inlineDescription, descriptionTruncateStyle, descriptionLines != null && descriptionLines > 1 && dynamicStyles.lineClamp(descriptionLines)),
|
|
233
247
|
children: description
|
|
234
248
|
})]
|
|
235
249
|
});
|
|
@@ -259,10 +273,16 @@ export function Item({
|
|
|
259
273
|
0: {
|
|
260
274
|
className: "x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h"
|
|
261
275
|
},
|
|
276
|
+
2: {
|
|
277
|
+
className: "x78zum5 x98rzlu xeuugli x1yc453h x1q0g3np x6s0dn4 x1lfs0n9"
|
|
278
|
+
},
|
|
262
279
|
1: {
|
|
263
280
|
className: "x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h xbyyjgo"
|
|
281
|
+
},
|
|
282
|
+
3: {
|
|
283
|
+
className: "x78zum5 x98rzlu xeuugli x1yc453h x1q0g3np x6s0dn4 x1lfs0n9 xbyyjgo"
|
|
264
284
|
}
|
|
265
|
-
}[!!isDisabled << 0],
|
|
285
|
+
}[!!isInline << 1 | !!isDisabled << 0],
|
|
266
286
|
children: labelAndDescription
|
|
267
287
|
}) : href != null ? /*#__PURE__*/_jsx(LinkComponent, {
|
|
268
288
|
href: href,
|
|
@@ -272,12 +292,18 @@ export function Item({
|
|
|
272
292
|
tabIndex: isDisabled ? -1 : undefined,
|
|
273
293
|
...{
|
|
274
294
|
0: {
|
|
275
|
-
className: "xmper1u xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1hl2dhg x1a2a7pz"
|
|
295
|
+
className: "xmper1u x16khyan xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1hl2dhg x1a2a7pz"
|
|
296
|
+
},
|
|
297
|
+
2: {
|
|
298
|
+
className: "xmper1u x16khyan xln7xf2 x1heor9g x78zum5 x98rzlu xeuugli x1yc453h x1hl2dhg x1a2a7pz x1q0g3np x6s0dn4 x1lfs0n9"
|
|
276
299
|
},
|
|
277
300
|
1: {
|
|
278
|
-
className: "xmper1u xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1hl2dhg x1a2a7pz xbyyjgo"
|
|
301
|
+
className: "xmper1u x16khyan xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1hl2dhg x1a2a7pz xbyyjgo"
|
|
302
|
+
},
|
|
303
|
+
3: {
|
|
304
|
+
className: "xmper1u x16khyan xln7xf2 x1heor9g x78zum5 x98rzlu xeuugli x1yc453h x1hl2dhg x1a2a7pz x1q0g3np x6s0dn4 x1lfs0n9 xbyyjgo"
|
|
279
305
|
}
|
|
280
|
-
}[!!isDisabled << 0],
|
|
306
|
+
}[!!isInline << 1 | !!isDisabled << 0],
|
|
281
307
|
children: labelAndDescription
|
|
282
308
|
}) : onClick != null ? /*#__PURE__*/_jsx("button", {
|
|
283
309
|
type: "button",
|
|
@@ -285,22 +311,34 @@ export function Item({
|
|
|
285
311
|
disabled: isDisabled,
|
|
286
312
|
...{
|
|
287
313
|
0: {
|
|
288
|
-
className: "xmper1u xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1a2a7pz"
|
|
314
|
+
className: "xmper1u x16khyan xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1a2a7pz"
|
|
315
|
+
},
|
|
316
|
+
2: {
|
|
317
|
+
className: "xmper1u x16khyan xln7xf2 x1heor9g x78zum5 x98rzlu xeuugli x1yc453h x1a2a7pz x1q0g3np x6s0dn4 x1lfs0n9"
|
|
289
318
|
},
|
|
290
319
|
1: {
|
|
291
|
-
className: "xmper1u xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1a2a7pz xbyyjgo"
|
|
320
|
+
className: "xmper1u x16khyan xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1a2a7pz xbyyjgo"
|
|
321
|
+
},
|
|
322
|
+
3: {
|
|
323
|
+
className: "xmper1u x16khyan xln7xf2 x1heor9g x78zum5 x98rzlu xeuugli x1yc453h x1a2a7pz x1q0g3np x6s0dn4 x1lfs0n9 xbyyjgo"
|
|
292
324
|
}
|
|
293
|
-
}[!!isDisabled << 0],
|
|
325
|
+
}[!!isInline << 1 | !!isDisabled << 0],
|
|
294
326
|
children: labelAndDescription
|
|
295
327
|
}) : /*#__PURE__*/_jsx("span", {
|
|
296
328
|
...{
|
|
297
329
|
0: {
|
|
298
330
|
className: "x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h"
|
|
299
331
|
},
|
|
332
|
+
2: {
|
|
333
|
+
className: "x78zum5 x98rzlu xeuugli x1yc453h x1q0g3np x6s0dn4 x1lfs0n9"
|
|
334
|
+
},
|
|
300
335
|
1: {
|
|
301
336
|
className: "x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h xbyyjgo"
|
|
337
|
+
},
|
|
338
|
+
3: {
|
|
339
|
+
className: "x78zum5 x98rzlu xeuugli x1yc453h x1q0g3np x6s0dn4 x1lfs0n9 xbyyjgo"
|
|
302
340
|
}
|
|
303
|
-
}[!!isDisabled << 0],
|
|
341
|
+
}[!!isInline << 1 | !!isDisabled << 0],
|
|
304
342
|
children: labelAndDescription
|
|
305
343
|
}), endContent != null && /*#__PURE__*/_jsx("span", {
|
|
306
344
|
...{
|
package/dist/Layer/index.d.ts
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
*/
|
|
14
14
|
export { useLayer } from './useLayer';
|
|
15
15
|
export type { LayerAlignment, LayerPlacement, ContextRenderProps, FixedRenderProps, ContextLayerOptions, FixedLayerOptions, ContextLayerReturn, FixedLayerReturn, } from './useLayer';
|
|
16
|
+
export { useTouchTrigger, isActionTrigger } from './useTouchTrigger';
|
|
17
|
+
export type { LayerTouchTrigger, UseTouchTriggerOptions, UseTouchTriggerReturn, } from './useTouchTrigger';
|
|
16
18
|
export { LayerProvider } from './LayerProvider';
|
|
17
19
|
export type { LayerProviderProps } from './LayerProvider';
|
|
18
20
|
export { LayerContext, useLayerContext } from './LayerContext';
|
|
@@ -21,7 +23,7 @@ export { layerAnimations } from './layerAnimations.stylex';
|
|
|
21
23
|
export { usePopover, Popover } from '../Popover';
|
|
22
24
|
export type { UsePopoverOptions, UsePopoverReturn, PopoverProps, } from '../Popover';
|
|
23
25
|
export { useHoverCard, HoverCard } from '../HoverCard';
|
|
24
|
-
export type { HoverCardFocusTrigger, HoverCardOptions, HoverCardReturn, HoverCardProps, } from '../HoverCard';
|
|
26
|
+
export type { HoverCardFocusTrigger, HoverCardTouchTrigger, HoverCardOptions, HoverCardReturn, HoverCardProps, } from '../HoverCard';
|
|
25
27
|
export { useTooltip, Tooltip } from '../Tooltip';
|
|
26
|
-
export type { TooltipFocusTrigger, TooltipOptions, TooltipReturn, TooltipProps, } from '../Tooltip';
|
|
28
|
+
export type { TooltipFocusTrigger, TooltipTouchTrigger, TooltipOptions, TooltipReturn, TooltipProps, } from '../Tooltip';
|
|
27
29
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Layer/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,YAAY,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,YAAY,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAC,YAAY,EAAE,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC7D,YAAY,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAC,UAAU,EAAE,OAAO,EAAC,MAAM,YAAY,CAAC;AAC/C,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAC,YAAY,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AACrD,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAC,UAAU,EAAE,OAAO,EAAC,MAAM,YAAY,CAAC;AAC/C,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Layer/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,YAAY,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAC,eAAe,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AACnE,YAAY,EACV,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,YAAY,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAC,YAAY,EAAE,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC7D,YAAY,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAC,UAAU,EAAE,OAAO,EAAC,MAAM,YAAY,CAAC;AAC/C,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAC,YAAY,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AACrD,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAC,UAAU,EAAE,OAAO,EAAC,MAAM,YAAY,CAAC;AAC/C,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC"}
|
package/dist/Layer/index.js
CHANGED
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
|
|
19
19
|
// Core layer hook (remains in Layer)
|
|
20
20
|
export { useLayer } from "./useLayer.js";
|
|
21
|
+
// Shared touch behavior for the hover layers
|
|
22
|
+
export { useTouchTrigger, isActionTrigger } from "./useTouchTrigger.js";
|
|
21
23
|
// Layer provider
|
|
22
24
|
export { LayerProvider } from "./LayerProvider.js";
|
|
23
25
|
export { LayerContext, useLayerContext } from "./LayerContext.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLayer.d.ts","sourceRoot":"","sources":["../../src/Layer/useLayer.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,EAMZ,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"useLayer.d.ts","sourceRoot":"","sources":["../../src/Layer/useLayer.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,EAMZ,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAgDnD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAClC;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B;;;;;;;;;;OAUG;IACH,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACpB;;;;OAIG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACpD;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED;;GAEG;AACH,UAAU,gBAAgB;IACxB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,IAAI,EAAE,SAAS,CAAC;IAChB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAE9B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;OAGG;IACH,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,kBAAkB,KAAK,SAAS,CAAC;CACxE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,GAAG,EAAE,SAAS,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;OAGG;IACH,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,KAAK,SAAS,CAAC;CACrE;AAmFD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,GAAE,cAAwB,EACnC,SAAS,GAAE,cAAyB,GACnC,MAAM,CAgBR;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAAC;AAC3E,wBAAgB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAAC"}
|
package/dist/Layer/useLayer.js
CHANGED
|
@@ -20,6 +20,7 @@ import { addAnchorName, removeAnchorName } from "./anchorName.js";
|
|
|
20
20
|
import { resolveLayerPortalTarget } from "./layerHost.js";
|
|
21
21
|
import "../theme/tokens.stylex.js";
|
|
22
22
|
import { typeScaleVars, typographyVars } from "../theme/tokens.stylex.js";
|
|
23
|
+
import { overlayPaddingReset } from "../Layout/padding.stylex.js";
|
|
23
24
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
25
|
const _temp = {
|
|
25
26
|
keoZOQ: "x1vhfslr",
|
|
@@ -453,7 +454,7 @@ export function useLayer(options) {
|
|
|
453
454
|
positionTryFallbacks: getPositionTryFallbacks(placement, alignment)
|
|
454
455
|
};
|
|
455
456
|
const offsetStyle = positioning === 'anchor' && offset ? placement === 'above' || placement === 'below' ? styles.offsetBlock(toCssLength(offset)) : styles.offsetInline(toCssLength(offset)) : null;
|
|
456
|
-
const stylexResult = stylex.props(styles.base, offsetStyle, xstyle);
|
|
457
|
+
const stylexResult = stylex.props(styles.base, overlayPaddingReset.reset, offsetStyle, xstyle);
|
|
457
458
|
const combinedClassName = extraClassName ? `${extraClassName} ${stylexResult.className ?? ''}` : stylexResult.className;
|
|
458
459
|
|
|
459
460
|
// The marker gives us the actual JSX parent without mounting arbitrary
|
|
@@ -496,7 +497,7 @@ export function useLayer(options) {
|
|
|
496
497
|
top: y,
|
|
497
498
|
left: x
|
|
498
499
|
};
|
|
499
|
-
const stylexResult = stylex.props(styles.base, styles.fixed, xstyle);
|
|
500
|
+
const stylexResult = stylex.props(styles.base, overlayPaddingReset.reset, styles.fixed, xstyle);
|
|
500
501
|
const combinedClassName = extraClassName ? `${extraClassName} ${stylexResult.className ?? ''}` : stylexResult.className;
|
|
501
502
|
return /*#__PURE__*/_jsx("div", {
|
|
502
503
|
ref: popoverRefCallback,
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file useTouchTrigger.ts
|
|
3
|
+
* @input Touch trigger mode, layer open state, trigger ref, show/hide callbacks
|
|
4
|
+
* @output Exports useTouchTrigger hook, isActionTrigger, LayerTouchTrigger type
|
|
5
|
+
* @position Layer hook; shared touch behavior for useTooltip and useHoverCard
|
|
6
|
+
*
|
|
7
|
+
* SYNC: When modified, update:
|
|
8
|
+
* - /packages/core/src/Layer/index.ts
|
|
9
|
+
*
|
|
10
|
+
* Hover is the one trigger a touch screen cannot express. A tap synthesizes
|
|
11
|
+
* `mouseenter`, so an untreated hover layer either opens on every tap and
|
|
12
|
+
* lingers with nothing to close it, or swallows the tap the user aimed at the
|
|
13
|
+
* control underneath.
|
|
14
|
+
*
|
|
15
|
+
* What the trigger DOES decides which of those the tap deserves. A trigger
|
|
16
|
+
* that performs an action — a button, a link, a form control — keeps its tap:
|
|
17
|
+
* the layer stays shut, because the tap already has somewhere to go and a hint
|
|
18
|
+
* about a control the user just operated is noise. A trigger that performs no
|
|
19
|
+
* action — an info icon, an abbreviation, a truncated label — has nothing to
|
|
20
|
+
* lose, so the tap opens the layer and the next tap outside dismisses it. That
|
|
21
|
+
* is `auto`; `tap` and `none` state the choice outright, which is what an
|
|
22
|
+
* icon-button whose only job is to reveal the layer needs.
|
|
23
|
+
*/
|
|
24
|
+
import { type RefObject } from 'react';
|
|
25
|
+
/**
|
|
26
|
+
* How a hover layer behaves on a touch pointer.
|
|
27
|
+
*
|
|
28
|
+
* - `auto`: tap-to-open, unless the trigger performs an action of its own
|
|
29
|
+
* - `tap`: always tap-to-open, even on a trigger that performs an action
|
|
30
|
+
* - `none`: never open on touch
|
|
31
|
+
*/
|
|
32
|
+
export type LayerTouchTrigger = 'auto' | 'tap' | 'none';
|
|
33
|
+
/**
|
|
34
|
+
* Whether activating this element does something other than reveal the layer.
|
|
35
|
+
*
|
|
36
|
+
* Deliberately narrower than "focusable": the wrapper a text-only Tooltip
|
|
37
|
+
* renders carries `tabindex=0` so keyboard users can reach the hint, and it
|
|
38
|
+
* still performs no action.
|
|
39
|
+
*
|
|
40
|
+
* True only decides that the layer stays shut — the tap itself is never
|
|
41
|
+
* swallowed. Nothing here calls `preventDefault` or `stopPropagation`, so an
|
|
42
|
+
* inert trigger that happens to carry its own `onClick` (a `<div onClick>`
|
|
43
|
+
* with no role) gets both: the layer opens and the handler runs.
|
|
44
|
+
*/
|
|
45
|
+
export declare function isActionTrigger(element: HTMLElement): boolean;
|
|
46
|
+
export interface UseTouchTriggerOptions {
|
|
47
|
+
/** How the layer should behave on a touch pointer. */
|
|
48
|
+
touchTrigger: LayerTouchTrigger;
|
|
49
|
+
/** Whether the layer's triggers are live at all. */
|
|
50
|
+
isEnabled: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Whether the consumer controls visibility. A controlled layer is never
|
|
53
|
+
* toggled by a tap — its visibility is the consumer's to own.
|
|
54
|
+
*/
|
|
55
|
+
isControlled: boolean;
|
|
56
|
+
/** Whether the layer is currently open. */
|
|
57
|
+
isOpen: boolean;
|
|
58
|
+
/** Element id of the layer surface, so taps inside it count as inside. */
|
|
59
|
+
layerId: string;
|
|
60
|
+
/** The trigger element the layer is anchored to. */
|
|
61
|
+
triggerRef: RefObject<HTMLElement | null>;
|
|
62
|
+
/** Open the layer immediately, with no hover delay. */
|
|
63
|
+
show: () => void;
|
|
64
|
+
/** Close the layer immediately. */
|
|
65
|
+
hide: () => void;
|
|
66
|
+
}
|
|
67
|
+
export interface UseTouchTriggerReturn {
|
|
68
|
+
/**
|
|
69
|
+
* Whether the pointer in play on this trigger has no hover of its own: a
|
|
70
|
+
* finger, or a pen that has landed. A hovering pen reads as false, because
|
|
71
|
+
* it hovers.
|
|
72
|
+
*/
|
|
73
|
+
isTouchPointerRef: RefObject<boolean>;
|
|
74
|
+
/**
|
|
75
|
+
* Whether the interaction in flight is a touch one. Unlike the raw ref this
|
|
76
|
+
* goes false again as soon as the user reaches for the keyboard, so
|
|
77
|
+
* focus-driven triggers stay available after a tap.
|
|
78
|
+
*/
|
|
79
|
+
isTouchInteraction: () => boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Attach to the trigger: records pointer type ahead of synthesized hover.
|
|
82
|
+
* Arrival alone only marks a finger — a pen hovers, so it is left to the
|
|
83
|
+
* hover path until it presses.
|
|
84
|
+
*/
|
|
85
|
+
handlePointerEnter: (event: PointerEvent) => void;
|
|
86
|
+
/**
|
|
87
|
+
* Attach to the trigger. Returns true when the press was a touch one and
|
|
88
|
+
* this hook has dealt with it, meaning the caller's own pointer-down
|
|
89
|
+
* behavior must not also run.
|
|
90
|
+
*/
|
|
91
|
+
handlePointerDown: (event: PointerEvent) => boolean;
|
|
92
|
+
/** Forget a tap-open. Call from every other close path (Escape, controlled). */
|
|
93
|
+
clearTapOpen: () => void;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Touch behavior shared by the hover layers.
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```
|
|
100
|
+
* const touch = useTouchTrigger({
|
|
101
|
+
* touchTrigger,
|
|
102
|
+
* isEnabled,
|
|
103
|
+
* isControlled: isOpen !== undefined,
|
|
104
|
+
* isOpen: layer.isOpen,
|
|
105
|
+
* layerId: layer.id,
|
|
106
|
+
* triggerRef,
|
|
107
|
+
* show: showNow,
|
|
108
|
+
* hide: hideNow,
|
|
109
|
+
* });
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
export declare function useTouchTrigger(options: UseTouchTriggerOptions): UseTouchTriggerReturn;
|
|
113
|
+
//# sourceMappingURL=useTouchTrigger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTouchTrigger.d.ts","sourceRoot":"","sources":["../../src/Layer/useTouchTrigger.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAiC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAMrE;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAmCxD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAoB7D;AAeD,MAAM,WAAW,sBAAsB;IACrC,sDAAsD;IACtD,YAAY,EAAE,iBAAiB,CAAC;IAEhC,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB,2CAA2C;IAC3C,MAAM,EAAE,OAAO,CAAC;IAEhB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAEhB,oDAAoD;IACpD,UAAU,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAE1C,uDAAuD;IACvD,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB,mCAAmC;IACnC,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,iBAAiB,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAEtC;;;;OAIG;IACH,kBAAkB,EAAE,MAAM,OAAO,CAAC;IAElC;;;;OAIG;IACH,kBAAkB,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAElD;;;;OAIG;IACH,iBAAiB,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC;IAEpD,gFAAgF;IAChF,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,sBAAsB,GAC9B,qBAAqB,CAiKvB"}
|