@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
package/src/Stack/Stack.doc.mjs
CHANGED
|
@@ -46,12 +46,36 @@ export const docs = {
|
|
|
46
46
|
description:
|
|
47
47
|
'Inline (horizontal) padding. Overrides padding on the inline axis when both are set.',
|
|
48
48
|
},
|
|
49
|
+
{
|
|
50
|
+
name: 'paddingInlineStart',
|
|
51
|
+
type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
|
|
52
|
+
description:
|
|
53
|
+
'Inline-start padding, using the spacing scale (left in LTR, right in RTL). Overrides paddingInline and padding on that edge only.',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: 'paddingInlineEnd',
|
|
57
|
+
type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
|
|
58
|
+
description:
|
|
59
|
+
'Inline-end padding, using the spacing scale (right in LTR, left in RTL). Overrides paddingInline and padding on that edge only.',
|
|
60
|
+
},
|
|
49
61
|
{
|
|
50
62
|
name: 'paddingBlock',
|
|
51
63
|
type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
|
|
52
64
|
description:
|
|
53
65
|
'Block (vertical) padding. Overrides padding on the block axis when both are set.',
|
|
54
66
|
},
|
|
67
|
+
{
|
|
68
|
+
name: 'paddingBlockStart',
|
|
69
|
+
type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
|
|
70
|
+
description:
|
|
71
|
+
'Block-start (top) padding, using the spacing scale. Overrides paddingBlock and padding on that edge only.',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: 'paddingBlockEnd',
|
|
75
|
+
type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
|
|
76
|
+
description:
|
|
77
|
+
'Block-end (bottom) padding, using the spacing scale. Overrides paddingBlock and padding on that edge only.',
|
|
78
|
+
},
|
|
55
79
|
{
|
|
56
80
|
name: 'isScrollable',
|
|
57
81
|
type: 'boolean',
|
|
@@ -150,12 +174,36 @@ export const docs = {
|
|
|
150
174
|
description:
|
|
151
175
|
'Inline (horizontal) padding, using the spacing scale. Overrides padding on the inline axis when both are set.',
|
|
152
176
|
},
|
|
177
|
+
{
|
|
178
|
+
name: 'paddingInlineStart',
|
|
179
|
+
type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
|
|
180
|
+
description:
|
|
181
|
+
'Inline-start padding, using the spacing scale (left in LTR, right in RTL). Overrides paddingInline and padding on that edge only.',
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
name: 'paddingInlineEnd',
|
|
185
|
+
type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
|
|
186
|
+
description:
|
|
187
|
+
'Inline-end padding, using the spacing scale (right in LTR, left in RTL). Overrides paddingInline and padding on that edge only.',
|
|
188
|
+
},
|
|
153
189
|
{
|
|
154
190
|
name: 'paddingBlock',
|
|
155
191
|
type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
|
|
156
192
|
description:
|
|
157
193
|
'Block (vertical) padding, using the spacing scale. Overrides padding on the block axis when both are set.',
|
|
158
194
|
},
|
|
195
|
+
{
|
|
196
|
+
name: 'paddingBlockStart',
|
|
197
|
+
type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
|
|
198
|
+
description:
|
|
199
|
+
'Block-start (top) padding, using the spacing scale. Overrides paddingBlock and padding on that edge only.',
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
name: 'paddingBlockEnd',
|
|
203
|
+
type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
|
|
204
|
+
description:
|
|
205
|
+
'Block-end (bottom) padding, using the spacing scale. Overrides paddingBlock and padding on that edge only.',
|
|
206
|
+
},
|
|
159
207
|
{
|
|
160
208
|
name: 'isScrollable',
|
|
161
209
|
type: 'boolean',
|
|
@@ -253,12 +301,36 @@ export const docs = {
|
|
|
253
301
|
description:
|
|
254
302
|
'Inline (horizontal) padding, using the spacing scale. Overrides padding on the inline axis when both are set.',
|
|
255
303
|
},
|
|
304
|
+
{
|
|
305
|
+
name: 'paddingInlineStart',
|
|
306
|
+
type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
|
|
307
|
+
description:
|
|
308
|
+
'Inline-start padding, using the spacing scale (left in LTR, right in RTL). Overrides paddingInline and padding on that edge only.',
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
name: 'paddingInlineEnd',
|
|
312
|
+
type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
|
|
313
|
+
description:
|
|
314
|
+
'Inline-end padding, using the spacing scale (right in LTR, left in RTL). Overrides paddingInline and padding on that edge only.',
|
|
315
|
+
},
|
|
256
316
|
{
|
|
257
317
|
name: 'paddingBlock',
|
|
258
318
|
type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
|
|
259
319
|
description:
|
|
260
320
|
'Block (vertical) padding, using the spacing scale. Overrides padding on the block axis when both are set.',
|
|
261
321
|
},
|
|
322
|
+
{
|
|
323
|
+
name: 'paddingBlockStart',
|
|
324
|
+
type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
|
|
325
|
+
description:
|
|
326
|
+
'Block-start (top) padding, using the spacing scale. Overrides paddingBlock and padding on that edge only.',
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
name: 'paddingBlockEnd',
|
|
330
|
+
type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
|
|
331
|
+
description:
|
|
332
|
+
'Block-end (bottom) padding, using the spacing scale. Overrides paddingBlock and padding on that edge only.',
|
|
333
|
+
},
|
|
262
334
|
{
|
|
263
335
|
name: 'isScrollable',
|
|
264
336
|
type: 'boolean',
|
package/src/Stack/Stack.test.tsx
CHANGED
|
@@ -13,6 +13,22 @@ import {describe, it, expect, vi} from 'vitest';
|
|
|
13
13
|
import {render, screen} from '@testing-library/react';
|
|
14
14
|
import {Stack} from './Stack';
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* The functional class output, as an order-insensitive set. StyleX's dev
|
|
18
|
+
* runtime also emits readable debug classes naming the style object a
|
|
19
|
+
* declaration came from ("padding__paddingBlockStyles.2"); those record
|
|
20
|
+
* provenance rather than applied CSS and survive even when the declaration
|
|
21
|
+
* they name loses a merge, so they are dropped here.
|
|
22
|
+
*/
|
|
23
|
+
function classSet(el: HTMLElement): Set<string> {
|
|
24
|
+
return new Set(
|
|
25
|
+
el.className
|
|
26
|
+
.split(' ')
|
|
27
|
+
.filter(Boolean)
|
|
28
|
+
.filter(c => !c.includes('__') && !c.includes('.')),
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
16
32
|
describe('Stack', () => {
|
|
17
33
|
it('defaults to vertical direction', () => {
|
|
18
34
|
render(
|
|
@@ -314,4 +330,144 @@ describe('Stack', () => {
|
|
|
314
330
|
const withScroll = screen.getByTestId('stack').className;
|
|
315
331
|
expect(withScroll).not.toBe(withoutScroll);
|
|
316
332
|
});
|
|
333
|
+
|
|
334
|
+
it('applies a class when paddingBlockStart is set on its own', () => {
|
|
335
|
+
const {rerender} = render(
|
|
336
|
+
<Stack data-testid="stack">
|
|
337
|
+
<div>Content</div>
|
|
338
|
+
</Stack>,
|
|
339
|
+
);
|
|
340
|
+
const baseline = screen.getByTestId('stack').className;
|
|
341
|
+
rerender(
|
|
342
|
+
<Stack paddingBlockStart={2} data-testid="stack">
|
|
343
|
+
<div>Content</div>
|
|
344
|
+
</Stack>,
|
|
345
|
+
);
|
|
346
|
+
expect(screen.getByTestId('stack').className).not.toBe(baseline);
|
|
347
|
+
});
|
|
348
|
+
|
|
349
|
+
it('lets paddingBlockStart/paddingBlockEnd override only their own edge', () => {
|
|
350
|
+
const {rerender} = render(
|
|
351
|
+
<Stack padding={4} paddingBlockStart={2} data-testid="stack">
|
|
352
|
+
<div>Content</div>
|
|
353
|
+
</Stack>,
|
|
354
|
+
);
|
|
355
|
+
const perEdge = classSet(screen.getByTestId('stack'));
|
|
356
|
+
rerender(
|
|
357
|
+
<Stack
|
|
358
|
+
paddingInline={4}
|
|
359
|
+
paddingBlockStart={2}
|
|
360
|
+
paddingBlockEnd={4}
|
|
361
|
+
data-testid="stack">
|
|
362
|
+
<div>Content</div>
|
|
363
|
+
</Stack>,
|
|
364
|
+
);
|
|
365
|
+
expect(perEdge).toEqual(classSet(screen.getByTestId('stack')));
|
|
366
|
+
});
|
|
367
|
+
|
|
368
|
+
it('gives paddingBlockEnd precedence over paddingBlock', () => {
|
|
369
|
+
const {rerender} = render(
|
|
370
|
+
<Stack paddingBlock={6} paddingBlockEnd={0} data-testid="stack">
|
|
371
|
+
<div>Content</div>
|
|
372
|
+
</Stack>,
|
|
373
|
+
);
|
|
374
|
+
const overridden = classSet(screen.getByTestId('stack'));
|
|
375
|
+
rerender(
|
|
376
|
+
<Stack paddingBlockStart={6} paddingBlockEnd={0} data-testid="stack">
|
|
377
|
+
<div>Content</div>
|
|
378
|
+
</Stack>,
|
|
379
|
+
);
|
|
380
|
+
expect(overridden).toEqual(classSet(screen.getByTestId('stack')));
|
|
381
|
+
});
|
|
382
|
+
|
|
383
|
+
it('leaves padding/paddingBlock output unchanged when no edge prop is set', () => {
|
|
384
|
+
const {rerender} = render(
|
|
385
|
+
<Stack padding={3} data-testid="stack">
|
|
386
|
+
<div>Content</div>
|
|
387
|
+
</Stack>,
|
|
388
|
+
);
|
|
389
|
+
const uniform = classSet(screen.getByTestId('stack'));
|
|
390
|
+
rerender(
|
|
391
|
+
<Stack paddingInline={3} paddingBlock={3} data-testid="stack">
|
|
392
|
+
<div>Content</div>
|
|
393
|
+
</Stack>,
|
|
394
|
+
);
|
|
395
|
+
expect(uniform).toEqual(classSet(screen.getByTestId('stack')));
|
|
396
|
+
});
|
|
397
|
+
|
|
398
|
+
it('applies a class when paddingInlineStart is set on its own', () => {
|
|
399
|
+
const {rerender} = render(
|
|
400
|
+
<Stack data-testid="stack">
|
|
401
|
+
<div>Content</div>
|
|
402
|
+
</Stack>,
|
|
403
|
+
);
|
|
404
|
+
const baseline = screen.getByTestId('stack').className;
|
|
405
|
+
rerender(
|
|
406
|
+
<Stack paddingInlineStart={2} data-testid="stack">
|
|
407
|
+
<div>Content</div>
|
|
408
|
+
</Stack>,
|
|
409
|
+
);
|
|
410
|
+
expect(screen.getByTestId('stack').className).not.toBe(baseline);
|
|
411
|
+
});
|
|
412
|
+
|
|
413
|
+
it('lets paddingInlineStart/paddingInlineEnd override only their own edge', () => {
|
|
414
|
+
const {rerender} = render(
|
|
415
|
+
<Stack padding={4} paddingInlineStart={2} data-testid="stack">
|
|
416
|
+
<div>Content</div>
|
|
417
|
+
</Stack>,
|
|
418
|
+
);
|
|
419
|
+
const perEdge = classSet(screen.getByTestId('stack'));
|
|
420
|
+
rerender(
|
|
421
|
+
<Stack
|
|
422
|
+
paddingInlineStart={2}
|
|
423
|
+
paddingInlineEnd={4}
|
|
424
|
+
paddingBlock={4}
|
|
425
|
+
data-testid="stack">
|
|
426
|
+
<div>Content</div>
|
|
427
|
+
</Stack>,
|
|
428
|
+
);
|
|
429
|
+
expect(perEdge).toEqual(classSet(screen.getByTestId('stack')));
|
|
430
|
+
});
|
|
431
|
+
|
|
432
|
+
it('gives paddingInlineEnd precedence over paddingInline', () => {
|
|
433
|
+
const {rerender} = render(
|
|
434
|
+
<Stack paddingInline={6} paddingInlineEnd={0} data-testid="stack">
|
|
435
|
+
<div>Content</div>
|
|
436
|
+
</Stack>,
|
|
437
|
+
);
|
|
438
|
+
const overridden = classSet(screen.getByTestId('stack'));
|
|
439
|
+
rerender(
|
|
440
|
+
<Stack paddingInlineStart={6} paddingInlineEnd={0} data-testid="stack">
|
|
441
|
+
<div>Content</div>
|
|
442
|
+
</Stack>,
|
|
443
|
+
);
|
|
444
|
+
expect(overridden).toEqual(classSet(screen.getByTestId('stack')));
|
|
445
|
+
});
|
|
446
|
+
|
|
447
|
+
it('resolves all four edges independently', () => {
|
|
448
|
+
// One prop per edge, each a different step: the four-edge spelling and the
|
|
449
|
+
// shorthand-plus-overrides spelling must agree.
|
|
450
|
+
const {rerender} = render(
|
|
451
|
+
<Stack
|
|
452
|
+
paddingInlineStart={1}
|
|
453
|
+
paddingInlineEnd={2}
|
|
454
|
+
paddingBlockStart={3}
|
|
455
|
+
paddingBlockEnd={4}
|
|
456
|
+
data-testid="stack">
|
|
457
|
+
<div>Content</div>
|
|
458
|
+
</Stack>,
|
|
459
|
+
);
|
|
460
|
+
const explicit = classSet(screen.getByTestId('stack'));
|
|
461
|
+
rerender(
|
|
462
|
+
<Stack
|
|
463
|
+
padding={4}
|
|
464
|
+
paddingInlineStart={1}
|
|
465
|
+
paddingInlineEnd={2}
|
|
466
|
+
paddingBlockStart={3}
|
|
467
|
+
data-testid="stack">
|
|
468
|
+
<div>Content</div>
|
|
469
|
+
</Stack>,
|
|
470
|
+
);
|
|
471
|
+
expect(explicit).toEqual(classSet(screen.getByTestId('stack')));
|
|
472
|
+
});
|
|
317
473
|
});
|
package/src/Stack/Stack.tsx
CHANGED
|
@@ -25,8 +25,10 @@ import {
|
|
|
25
25
|
} from './stack.stylex';
|
|
26
26
|
import type {SizeValue} from '../utils/types';
|
|
27
27
|
import {
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
paddingInlineStartStyles,
|
|
29
|
+
paddingInlineEndStyles,
|
|
30
|
+
paddingBlockStartStyles,
|
|
31
|
+
paddingBlockEndStyles,
|
|
30
32
|
} from '../Layout/padding.stylex';
|
|
31
33
|
import {mergeProps} from '../utils';
|
|
32
34
|
import {themeProps} from '../utils/themeProps';
|
|
@@ -140,12 +142,38 @@ export interface StackProps extends BaseProps<HTMLElement> {
|
|
|
140
142
|
*/
|
|
141
143
|
paddingInline?: SpacingStep;
|
|
142
144
|
|
|
145
|
+
/**
|
|
146
|
+
* Inline-start padding, using the spacing scale. Logical: the left edge in
|
|
147
|
+
* LTR, the right edge in RTL.
|
|
148
|
+
* Overrides `paddingInline` and `padding` on that edge only.
|
|
149
|
+
*/
|
|
150
|
+
paddingInlineStart?: SpacingStep;
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Inline-end padding, using the spacing scale. Logical: the right edge in
|
|
154
|
+
* LTR, the left edge in RTL.
|
|
155
|
+
* Overrides `paddingInline` and `padding` on that edge only.
|
|
156
|
+
*/
|
|
157
|
+
paddingInlineEnd?: SpacingStep;
|
|
158
|
+
|
|
143
159
|
/**
|
|
144
160
|
* Block (vertical) padding, using the spacing scale.
|
|
145
161
|
* Overrides `padding` on the block axis when both are set.
|
|
146
162
|
*/
|
|
147
163
|
paddingBlock?: SpacingStep;
|
|
148
164
|
|
|
165
|
+
/**
|
|
166
|
+
* Block-start (top) padding, using the spacing scale.
|
|
167
|
+
* Overrides `paddingBlock` and `padding` on that edge only.
|
|
168
|
+
*/
|
|
169
|
+
paddingBlockStart?: SpacingStep;
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Block-end (bottom) padding, using the spacing scale.
|
|
173
|
+
* Overrides `paddingBlock` and `padding` on that edge only.
|
|
174
|
+
*/
|
|
175
|
+
paddingBlockEnd?: SpacingStep;
|
|
176
|
+
|
|
149
177
|
/**
|
|
150
178
|
* Enables scrollable overflow (`overflow: auto`) for the stack.
|
|
151
179
|
*
|
|
@@ -211,7 +239,11 @@ export function Stack({
|
|
|
211
239
|
gap,
|
|
212
240
|
padding,
|
|
213
241
|
paddingInline,
|
|
242
|
+
paddingInlineStart,
|
|
243
|
+
paddingInlineEnd,
|
|
214
244
|
paddingBlock,
|
|
245
|
+
paddingBlockStart,
|
|
246
|
+
paddingBlockEnd,
|
|
215
247
|
isScrollable,
|
|
216
248
|
width,
|
|
217
249
|
height,
|
|
@@ -242,10 +274,14 @@ export function Stack({
|
|
|
242
274
|
? (resolvedVAlign as StackCrossAlignment | undefined)
|
|
243
275
|
: (resolvedHAlign as StackCrossAlignment | undefined);
|
|
244
276
|
|
|
245
|
-
// Resolve padding to per-
|
|
246
|
-
//
|
|
247
|
-
const
|
|
248
|
-
|
|
277
|
+
// Resolve padding to per-edge values. Most specific wins, per edge:
|
|
278
|
+
// edge prop -> axis prop -> `padding`.
|
|
279
|
+
const resolvedPaddingInlineStart =
|
|
280
|
+
paddingInlineStart ?? paddingInline ?? padding;
|
|
281
|
+
const resolvedPaddingInlineEnd = paddingInlineEnd ?? paddingInline ?? padding;
|
|
282
|
+
const resolvedPaddingBlockStart =
|
|
283
|
+
paddingBlockStart ?? paddingBlock ?? padding;
|
|
284
|
+
const resolvedPaddingBlockEnd = paddingBlockEnd ?? paddingBlock ?? padding;
|
|
249
285
|
|
|
250
286
|
const stylexProps = stylex.props(
|
|
251
287
|
...stack({
|
|
@@ -255,8 +291,14 @@ export function Stack({
|
|
|
255
291
|
gap,
|
|
256
292
|
wrap,
|
|
257
293
|
}),
|
|
258
|
-
|
|
259
|
-
|
|
294
|
+
resolvedPaddingInlineStart != null &&
|
|
295
|
+
paddingInlineStartStyles[resolvedPaddingInlineStart],
|
|
296
|
+
resolvedPaddingInlineEnd != null &&
|
|
297
|
+
paddingInlineEndStyles[resolvedPaddingInlineEnd],
|
|
298
|
+
resolvedPaddingBlockStart != null &&
|
|
299
|
+
paddingBlockStartStyles[resolvedPaddingBlockStart],
|
|
300
|
+
resolvedPaddingBlockEnd != null &&
|
|
301
|
+
paddingBlockEndStyles[resolvedPaddingBlockEnd],
|
|
260
302
|
isScrollable && overflowStyles.scrollable,
|
|
261
303
|
xstyle,
|
|
262
304
|
);
|
package/src/Switch/Switch.tsx
CHANGED
|
@@ -161,7 +161,10 @@ const styles = stylex.create({
|
|
|
161
161
|
margin: 0,
|
|
162
162
|
padding: 0,
|
|
163
163
|
opacity: 0,
|
|
164
|
-
cursor:
|
|
164
|
+
cursor: {
|
|
165
|
+
default: 'pointer',
|
|
166
|
+
':is(:disabled,[aria-disabled="true"])': 'default',
|
|
167
|
+
},
|
|
165
168
|
zIndex: 1,
|
|
166
169
|
minInlineSize: {
|
|
167
170
|
default: null,
|
|
@@ -185,7 +188,7 @@ const styles = stylex.create({
|
|
|
185
188
|
},
|
|
186
189
|
},
|
|
187
190
|
inputDisabled: {
|
|
188
|
-
cursor: '
|
|
191
|
+
cursor: 'default',
|
|
189
192
|
},
|
|
190
193
|
inputBusy: {
|
|
191
194
|
pointerEvents: 'none',
|
package/src/TabList/Tab.tsx
CHANGED
|
@@ -101,7 +101,10 @@ const styles = stylex.create({
|
|
|
101
101
|
lineHeight: typeScaleVars['--text-label-leading'],
|
|
102
102
|
fontWeight: fontWeightVars['--font-weight-normal'],
|
|
103
103
|
color: colorVars['--color-text-secondary'],
|
|
104
|
-
cursor:
|
|
104
|
+
cursor: {
|
|
105
|
+
default: 'pointer',
|
|
106
|
+
':is(:disabled,[aria-disabled="true"])': 'default',
|
|
107
|
+
},
|
|
105
108
|
textDecoration: 'none',
|
|
106
109
|
whiteSpace: 'nowrap',
|
|
107
110
|
transitionProperty: 'color',
|
package/src/TabList/TabMenu.tsx
CHANGED
|
@@ -87,7 +87,10 @@ const styles = stylex.create({
|
|
|
87
87
|
lineHeight: typeScaleVars['--text-label-leading'],
|
|
88
88
|
fontWeight: fontWeightVars['--font-weight-normal'],
|
|
89
89
|
color: colorVars['--color-text-secondary'],
|
|
90
|
-
cursor:
|
|
90
|
+
cursor: {
|
|
91
|
+
default: 'pointer',
|
|
92
|
+
':is(:disabled,[aria-disabled="true"])': 'default',
|
|
93
|
+
},
|
|
91
94
|
textDecoration: 'none',
|
|
92
95
|
transitionProperty: 'color',
|
|
93
96
|
transitionDuration: durationVars['--duration-fast'],
|
|
@@ -185,13 +188,16 @@ const styles = stylex.create({
|
|
|
185
188
|
lineHeight: typeScaleVars['--text-label-leading'],
|
|
186
189
|
fontWeight: fontWeightVars['--font-weight-normal'],
|
|
187
190
|
color: colorVars['--color-text-primary'],
|
|
188
|
-
cursor:
|
|
191
|
+
cursor: {
|
|
192
|
+
default: 'pointer',
|
|
193
|
+
':is(:disabled,[aria-disabled="true"])': 'default',
|
|
194
|
+
},
|
|
189
195
|
transitionProperty: 'background-color',
|
|
190
196
|
transitionDuration: durationVars['--duration-fast'],
|
|
191
197
|
transitionTimingFunction: easeVars['--ease-standard'],
|
|
192
198
|
backgroundColor: {
|
|
193
199
|
default: 'transparent',
|
|
194
|
-
':hover': {
|
|
200
|
+
':hover:where(:not(:disabled,[aria-disabled="true"]))': {
|
|
195
201
|
'@media (hover: hover)': colorVars['--color-overlay-hover'],
|
|
196
202
|
},
|
|
197
203
|
},
|
package/src/Table/TableRow.tsx
CHANGED
|
@@ -61,13 +61,13 @@ const hoverRowStyles = stylex.create({
|
|
|
61
61
|
row: {
|
|
62
62
|
backgroundColor: {
|
|
63
63
|
default: null,
|
|
64
|
-
':hover': {
|
|
64
|
+
':hover:where(:not(:disabled,[aria-disabled="true"]))': {
|
|
65
65
|
'@media (hover: hover)': colorVars['--color-overlay-hover'],
|
|
66
66
|
},
|
|
67
67
|
},
|
|
68
68
|
'--table-row-overlay': {
|
|
69
69
|
default: null,
|
|
70
|
-
':hover': {
|
|
70
|
+
':hover:where(:not(:disabled,[aria-disabled="true"]))': {
|
|
71
71
|
'@media (hover: hover)': colorVars['--color-overlay-hover'],
|
|
72
72
|
},
|
|
73
73
|
},
|
|
@@ -82,14 +82,14 @@ const stripedHoverRowStyles = stylex.create({
|
|
|
82
82
|
backgroundColor: {
|
|
83
83
|
default: null,
|
|
84
84
|
':nth-child(even)': colorVars['--color-background-muted'],
|
|
85
|
-
':hover': {
|
|
85
|
+
':hover:where(:not(:disabled,[aria-disabled="true"]))': {
|
|
86
86
|
'@media (hover: hover)': colorVars['--color-overlay-hover'],
|
|
87
87
|
},
|
|
88
88
|
},
|
|
89
89
|
'--table-row-overlay': {
|
|
90
90
|
default: null,
|
|
91
91
|
':nth-child(even)': colorVars['--color-background-muted'],
|
|
92
|
-
':hover': {
|
|
92
|
+
':hover:where(:not(:disabled,[aria-disabled="true"]))': {
|
|
93
93
|
'@media (hover: hover)': colorVars['--color-overlay-hover'],
|
|
94
94
|
},
|
|
95
95
|
},
|
|
@@ -207,7 +207,10 @@ const handleStyles = stylex.create({
|
|
|
207
207
|
// Wide transparent hit area; the visible indicator uses ::after to span
|
|
208
208
|
// the full handle height independently of the border box.
|
|
209
209
|
width: '8px',
|
|
210
|
-
cursor:
|
|
210
|
+
cursor: {
|
|
211
|
+
default: 'ew-resize',
|
|
212
|
+
':is(:disabled,[aria-disabled="true"])': 'default',
|
|
213
|
+
},
|
|
211
214
|
zIndex: 1,
|
|
212
215
|
touchAction: 'none',
|
|
213
216
|
userSelect: 'none',
|
|
@@ -216,7 +219,8 @@ const handleStyles = stylex.create({
|
|
|
216
219
|
// can't receive :hover directly.
|
|
217
220
|
'--indicator-color': {
|
|
218
221
|
default: 'transparent',
|
|
219
|
-
':hover
|
|
222
|
+
':hover:where(:not(:disabled,[aria-disabled="true"]))':
|
|
223
|
+
colorVars['--color-accent'],
|
|
220
224
|
':focus-visible': colorVars['--color-accent'],
|
|
221
225
|
},
|
|
222
226
|
'@media (pointer: coarse)': {
|
|
@@ -362,7 +362,10 @@ const filterStyles = stylex.create({
|
|
|
362
362
|
triggerButton: {
|
|
363
363
|
background: 'none',
|
|
364
364
|
border: 'none',
|
|
365
|
-
cursor:
|
|
365
|
+
cursor: {
|
|
366
|
+
default: 'pointer',
|
|
367
|
+
':is(:disabled,[aria-disabled="true"])': 'default',
|
|
368
|
+
},
|
|
366
369
|
display: 'inline-flex',
|
|
367
370
|
alignItems: 'center',
|
|
368
371
|
justifyContent: 'center',
|
|
@@ -113,7 +113,10 @@ export interface UseTableGroupedRowsResult<T extends Record<string, unknown>> {
|
|
|
113
113
|
|
|
114
114
|
const styles = stylex.create({
|
|
115
115
|
headerRow: {
|
|
116
|
-
cursor:
|
|
116
|
+
cursor: {
|
|
117
|
+
default: 'pointer',
|
|
118
|
+
':is(:disabled,[aria-disabled="true"])': 'default',
|
|
119
|
+
},
|
|
117
120
|
userSelect: 'none',
|
|
118
121
|
backgroundColor: colorVars['--color-background-muted'],
|
|
119
122
|
// Divider beneath each group header row (Ernest review #2).
|
|
@@ -145,10 +148,14 @@ const styles = stylex.create({
|
|
|
145
148
|
margin: 0,
|
|
146
149
|
background: 'transparent',
|
|
147
150
|
border: 'none',
|
|
148
|
-
cursor:
|
|
151
|
+
cursor: {
|
|
152
|
+
default: 'pointer',
|
|
153
|
+
':is(:disabled,[aria-disabled="true"])': 'default',
|
|
154
|
+
},
|
|
149
155
|
color: {
|
|
150
156
|
default: colorVars['--color-icon-secondary'],
|
|
151
|
-
':hover
|
|
157
|
+
':hover:where(:not(:disabled,[aria-disabled="true"]))':
|
|
158
|
+
colorVars['--color-icon-primary'],
|
|
152
159
|
},
|
|
153
160
|
},
|
|
154
161
|
chevronIcon: {
|
|
@@ -77,7 +77,10 @@ const expansionStyles = stylex.create({
|
|
|
77
77
|
background: 'transparent',
|
|
78
78
|
border: 'none',
|
|
79
79
|
borderRadius: radiusVars['--radius-inner'],
|
|
80
|
-
cursor:
|
|
80
|
+
cursor: {
|
|
81
|
+
default: 'pointer',
|
|
82
|
+
':is(:disabled,[aria-disabled="true"])': 'default',
|
|
83
|
+
},
|
|
81
84
|
color: colorVars['--color-icon-secondary'],
|
|
82
85
|
transitionProperty: 'transform, color',
|
|
83
86
|
transitionDuration: '150ms',
|
|
@@ -85,11 +88,11 @@ const expansionStyles = stylex.create({
|
|
|
85
88
|
// Match IconButton ghost hover: subtle overlay background.
|
|
86
89
|
backgroundImage: {
|
|
87
90
|
default: null,
|
|
88
|
-
':hover': {
|
|
91
|
+
':hover:where(:not(:disabled,[aria-disabled="true"]))': {
|
|
89
92
|
'@media (hover: hover)': `linear-gradient(${colorVars['--color-overlay-hover']}, ${colorVars['--color-overlay-hover']})`,
|
|
90
93
|
},
|
|
91
94
|
},
|
|
92
|
-
':hover': {
|
|
95
|
+
':hover:where(:not(:disabled,[aria-disabled="true"]))': {
|
|
93
96
|
color: colorVars['--color-icon-primary'],
|
|
94
97
|
},
|
|
95
98
|
},
|
|
@@ -125,7 +125,10 @@ const sortStyles = stylex.create({
|
|
|
125
125
|
border: 'none',
|
|
126
126
|
padding: 0,
|
|
127
127
|
margin: 0,
|
|
128
|
-
cursor:
|
|
128
|
+
cursor: {
|
|
129
|
+
default: 'pointer',
|
|
130
|
+
':is(:disabled,[aria-disabled="true"])': 'default',
|
|
131
|
+
},
|
|
129
132
|
font: 'inherit',
|
|
130
133
|
color: 'inherit',
|
|
131
134
|
width: '100%',
|
|
@@ -17,6 +17,7 @@ import {useTableSortable} from './useTableSortable';
|
|
|
17
17
|
import type {TableSortState} from './useTableSortable';
|
|
18
18
|
import {useTableSortableState} from './useTableSortableState';
|
|
19
19
|
import type {UseTableSortableStateConfig} from './useTableSortableState';
|
|
20
|
+
import {InternationalizationProvider} from '../../../i18n';
|
|
20
21
|
|
|
21
22
|
// =============================================================================
|
|
22
23
|
// Test Data
|
|
@@ -119,6 +120,39 @@ describe('useTableSortableState', () => {
|
|
|
119
120
|
]);
|
|
120
121
|
});
|
|
121
122
|
|
|
123
|
+
it('re-sorts strings when the provider locale changes', () => {
|
|
124
|
+
const localeData: Employee[] = [
|
|
125
|
+
{
|
|
126
|
+
id: '1',
|
|
127
|
+
name: 'z',
|
|
128
|
+
age: 1,
|
|
129
|
+
department: 'Test',
|
|
130
|
+
salary: 1,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
id: '2',
|
|
134
|
+
name: 'ä',
|
|
135
|
+
age: 2,
|
|
136
|
+
department: 'Test',
|
|
137
|
+
salary: 2,
|
|
138
|
+
},
|
|
139
|
+
];
|
|
140
|
+
const table = (locale: string) => (
|
|
141
|
+
<InternationalizationProvider locale={locale}>
|
|
142
|
+
<SortableStateTable
|
|
143
|
+
data={localeData}
|
|
144
|
+
defaultSort={[{sortKey: 'name', direction: 'ascending'}]}
|
|
145
|
+
/>
|
|
146
|
+
</InternationalizationProvider>
|
|
147
|
+
);
|
|
148
|
+
|
|
149
|
+
const {rerender} = render(table('sv-SE'));
|
|
150
|
+
expect(getNameColumnValues()).toEqual(['z', 'ä']);
|
|
151
|
+
|
|
152
|
+
rerender(table('de-DE'));
|
|
153
|
+
expect(getNameColumnValues()).toEqual(['ä', 'z']);
|
|
154
|
+
});
|
|
155
|
+
|
|
122
156
|
it('renders unsorted when no defaultSort', () => {
|
|
123
157
|
render(<SortableStateTable />);
|
|
124
158
|
|