@astryxdesign/core 0.3.0 → 0.4.0
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 +156 -0
- package/dist/AlertDialog/AlertDialog.d.ts +10 -2
- package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
- package/dist/AlertDialog/AlertDialog.js +22 -3
- package/dist/AppShell/AppShell.d.ts +2 -2
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +40 -9
- package/dist/AspectRatio/AspectRatio.d.ts +13 -0
- package/dist/AspectRatio/AspectRatio.d.ts.map +1 -1
- package/dist/AspectRatio/AspectRatio.js +9 -0
- package/dist/Avatar/Avatar.d.ts.map +1 -1
- package/dist/Avatar/Avatar.js +33 -20
- package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
- package/dist/AvatarGroup/AvatarGroupOverflow.js +2 -3
- package/dist/Banner/Banner.d.ts.map +1 -1
- package/dist/Banner/Banner.js +15 -14
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.js +21 -8
- package/dist/Breadcrumbs/index.d.ts +2 -1
- package/dist/Breadcrumbs/index.d.ts.map +1 -1
- package/dist/Breadcrumbs/index.js +1 -0
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +11 -15
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +2 -1
- package/dist/Calendar/styles.d.ts +0 -2
- package/dist/Calendar/styles.d.ts.map +1 -1
- package/dist/Calendar/styles.js +0 -2
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +8 -12
- package/dist/Chat/ChatDictationButton.d.ts.map +1 -1
- package/dist/Chat/ChatDictationButton.js +2 -1
- package/dist/Chat/ChatLayoutScrollButton.d.ts.map +1 -1
- package/dist/Chat/ChatLayoutScrollButton.js +3 -1
- package/dist/Chat/ChatSendButton.d.ts.map +1 -1
- package/dist/Chat/ChatSendButton.js +4 -3
- package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
- package/dist/Chat/ChatToolCalls.js +17 -17
- package/dist/Chat/useTriggerMenu.d.ts.map +1 -1
- package/dist/Chat/useTriggerMenu.js +2 -6
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +36 -125
- package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/ClickableCard/ClickableCard.js +3 -11
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +84 -67
- package/dist/Collapsible/Collapsible.d.ts.map +1 -1
- package/dist/Collapsible/Collapsible.js +35 -15
- package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
- package/dist/CommandPalette/CommandPaletteItem.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteItem.js +6 -3
- package/dist/CommandPalette/CommandPaletteList.js +1 -1
- package/dist/ComplexSelector/ComplexSelector.d.ts +1 -1
- package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
- package/dist/ComplexSelector/ComplexSelector.js +35 -33
- package/dist/ContextMenu/ContextMenu.d.ts +2 -2
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +1 -1
- package/dist/ContextMenu/index.d.ts +2 -1
- package/dist/ContextMenu/index.d.ts.map +1 -1
- package/dist/ContextMenu/index.js +1 -0
- package/dist/DateInput/DateInput.d.ts +9 -2
- package/dist/DateInput/DateInput.d.ts.map +1 -1
- package/dist/DateInput/DateInput.js +24 -23
- package/dist/DateRangeInput/DateRangeInput.d.ts +9 -2
- package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/DateRangeInput/DateRangeInput.js +11 -16
- package/dist/DateTimeInput/DateTimeInput.d.ts +9 -1
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +22 -17
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +4 -4
- package/dist/DropdownMenu/DropdownMenu.d.ts +33 -8
- package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenu.js +62 -20
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +8 -11
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +32 -31
- package/dist/DropdownMenu/DropdownMenuDivider.d.ts +25 -0
- package/dist/DropdownMenu/DropdownMenuDivider.d.ts.map +1 -0
- package/dist/DropdownMenu/DropdownMenuDivider.js +66 -0
- package/dist/DropdownMenu/DropdownMenuItem.d.ts +15 -2
- package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuItem.js +20 -8
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +5 -5
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.js +24 -67
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.js +2 -8
- package/dist/DropdownMenu/index.d.ts +2 -1
- package/dist/DropdownMenu/index.d.ts.map +1 -1
- package/dist/DropdownMenu/index.js +4 -0
- package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
- package/dist/DropdownMenu/renderDropdownItems.js +35 -27
- package/dist/EmptyState/EmptyState.d.ts.map +1 -1
- package/dist/EmptyState/EmptyState.js +9 -5
- package/dist/Field/InputClearButton.d.ts +16 -3
- package/dist/Field/InputClearButton.d.ts.map +1 -1
- package/dist/Field/InputClearButton.js +15 -4
- package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.js +3 -19
- package/dist/Indicator/CheckIndicator.d.ts +25 -0
- package/dist/Indicator/CheckIndicator.d.ts.map +1 -0
- package/dist/Indicator/CheckIndicator.js +155 -0
- package/dist/Indicator/CheckboxIndicator.d.ts +22 -0
- package/dist/Indicator/CheckboxIndicator.d.ts.map +1 -0
- package/dist/Indicator/CheckboxIndicator.js +173 -0
- package/dist/Indicator/RadioIndicator.d.ts +23 -0
- package/dist/Indicator/RadioIndicator.d.ts.map +1 -0
- package/dist/Indicator/RadioIndicator.js +137 -0
- package/dist/Indicator/index.d.ts +24 -0
- package/dist/Indicator/index.d.ts.map +1 -0
- package/dist/Indicator/index.js +26 -0
- package/dist/Indicator/indicator.markers.stylex.d.ts +16 -0
- package/dist/Indicator/indicator.markers.stylex.d.ts.map +1 -0
- package/dist/Indicator/indicator.markers.stylex.js +21 -0
- package/dist/Indicator/indicatorRegistry.d.ts +71 -0
- package/dist/Indicator/indicatorRegistry.d.ts.map +1 -0
- package/dist/Indicator/indicatorRegistry.js +93 -0
- package/dist/Indicator/types.d.ts +167 -0
- package/dist/Indicator/types.d.ts.map +1 -0
- package/dist/Indicator/types.js +1 -0
- package/dist/Indicator/useIndicator.d.ts +18 -0
- package/dist/Indicator/useIndicator.d.ts.map +1 -0
- package/dist/Indicator/useIndicator.js +30 -0
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +4 -8
- package/dist/Layer/useLayer.d.ts +14 -0
- package/dist/Layer/useLayer.d.ts.map +1 -1
- package/dist/Layer/useLayer.js +25 -2
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +56 -53
- package/dist/Link/Link.d.ts.map +1 -1
- package/dist/Link/Link.js +4 -5
- package/dist/MobileNav/MobileNav.js +8 -8
- package/dist/MoreMenu/MoreMenu.d.ts +14 -1
- package/dist/MoreMenu/MoreMenu.d.ts.map +1 -1
- package/dist/MoreMenu/MoreMenu.js +4 -0
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +78 -75
- package/dist/NumberInput/NumberInput.d.ts +27 -1
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +230 -42
- package/dist/Outline/Outline.d.ts.map +1 -1
- package/dist/Outline/Outline.js +2 -3
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Pagination/Pagination.js +61 -63
- package/dist/Popover/Popover.d.ts.map +1 -1
- package/dist/Popover/Popover.js +6 -8
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +1 -1
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchEditPopover.js +7 -0
- package/dist/ProgressBar/ProgressBar.d.ts +11 -4
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +96 -6
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +29 -84
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +2 -3
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +2 -3
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +3 -11
- package/dist/Selector/Selector.d.ts +2 -1
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +164 -94
- package/dist/Selector/hooks.d.ts +18 -6
- package/dist/Selector/hooks.d.ts.map +1 -1
- package/dist/Selector/hooks.js +57 -40
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +1 -1
- package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
- package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
- package/dist/SideNav/SideNavCollapseButton.js +29 -14
- package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
- package/dist/SideNav/SideNavHeading.js +56 -20
- package/dist/SideNav/SideNavItem.d.ts.map +1 -1
- package/dist/SideNav/SideNavItem.js +28 -22
- package/dist/Stack/stack.stylex.d.ts +3 -3
- package/dist/Switch/Switch.js +11 -10
- package/dist/TabList/Tab.d.ts.map +1 -1
- package/dist/TabList/Tab.js +2 -3
- package/dist/TabList/TabMenu.d.ts.map +1 -1
- package/dist/TabList/TabMenu.js +41 -19
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +8 -0
- package/dist/Table/index.d.ts +1 -1
- package/dist/Table/index.d.ts.map +1 -1
- package/dist/Table/index.js +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +22 -18
- package/dist/Table/plugins/rowExpansion/index.d.ts +1 -1
- package/dist/Table/plugins/rowExpansion/index.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/index.js +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +41 -76
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +94 -345
- package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
- package/dist/Table/plugins/sortable/useTableSortable.js +23 -4
- package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
- package/dist/Table/plugins/tree/useTableTreeData.js +29 -33
- package/dist/Table/tableContextMenu.d.ts.map +1 -1
- package/dist/Table/tableContextMenu.js +2 -1
- package/dist/Table/types.d.ts +11 -0
- package/dist/Table/types.d.ts.map +1 -1
- package/dist/TextArea/TextArea.d.ts +10 -1
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +16 -6
- package/dist/TextInput/TextInput.d.ts +10 -1
- package/dist/TextInput/TextInput.d.ts.map +1 -1
- package/dist/TextInput/TextInput.js +13 -19
- package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.js +32 -26
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +7 -15
- package/dist/Timestamp/TimestampHoverCard.d.ts.map +1 -1
- package/dist/Timestamp/TimestampHoverCard.js +16 -34
- package/dist/Token/Token.d.ts.map +1 -1
- package/dist/Token/Token.js +20 -11
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +4 -2
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +3 -19
- package/dist/TopNav/TopNav.d.ts.map +1 -1
- package/dist/TopNav/TopNav.js +6 -5
- package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
- package/dist/TopNav/TopNavHeading.js +54 -16
- package/dist/TopNav/TopNavItem.d.ts.map +1 -1
- package/dist/TopNav/TopNavItem.js +3 -9
- package/dist/TopNav/TopNavMegaMenu.d.ts +7 -0
- package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenu.js +146 -60
- package/dist/TopNav/TopNavMegaMenuItem.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenuItem.js +22 -3
- package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMenu.js +83 -38
- package/dist/TreeList/TreeList.d.ts.map +1 -1
- package/dist/TreeList/TreeList.js +13 -0
- package/dist/TreeList/TreeListBranches.d.ts +1 -1
- package/dist/TreeList/TreeListBranches.d.ts.map +1 -1
- package/dist/TreeList/TreeListBranches.js +14 -4
- package/dist/TreeList/TreeListItem.d.ts +11 -1
- package/dist/TreeList/TreeListItem.d.ts.map +1 -1
- package/dist/TreeList/TreeListItem.js +57 -30
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +16 -8
- package/dist/astryx.css +74 -85
- package/dist/astryx.umd.js +56 -56
- package/dist/astryx.umd.js.map +4 -4
- package/dist/hooks/containerReveal.stylex.d.ts +61 -0
- package/dist/hooks/containerReveal.stylex.d.ts.map +1 -0
- package/dist/hooks/containerReveal.stylex.js +63 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/useClipboard.d.ts +59 -0
- package/dist/hooks/useClipboard.d.ts.map +1 -0
- package/dist/hooks/useClipboard.js +106 -0
- package/dist/hooks/useContainerReveal.d.ts +14 -8
- package/dist/hooks/useContainerReveal.d.ts.map +1 -1
- package/dist/hooks/useContainerReveal.js +28 -69
- package/dist/hooks/useIndicatorFocusRing.d.ts +28 -0
- package/dist/hooks/useIndicatorFocusRing.d.ts.map +1 -0
- package/dist/hooks/useIndicatorFocusRing.js +96 -0
- package/dist/hooks/useLongPress.d.ts.map +1 -1
- package/dist/hooks/useLongPress.js +12 -2
- package/dist/hooks/useScrollLock.d.ts.map +1 -1
- package/dist/hooks/useScrollLock.js +33 -18
- package/dist/hooks/useStreamingText.d.ts +18 -3
- package/dist/hooks/useStreamingText.d.ts.map +1 -1
- package/dist/hooks/useStreamingText.js +47 -7
- package/dist/hooks/useTreeFocus.d.ts.map +1 -1
- package/dist/hooks/useTreeFocus.js +9 -3
- package/dist/hooks/useTypeahead.d.ts +3 -2
- package/dist/hooks/useTypeahead.d.ts.map +1 -1
- package/dist/hooks/useTypeahead.js +19 -7
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/theme/defineTheme.d.ts +16 -0
- package/dist/theme/defineTheme.d.ts.map +1 -1
- package/dist/theme/defineTheme.js +8 -0
- package/dist/theme/derivedVarRegistry.d.ts +8 -0
- package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
- package/dist/theme/derivedVarRegistry.js +14 -13
- package/dist/theme/expandColorScale.d.ts +3 -1
- package/dist/theme/expandColorScale.d.ts.map +1 -1
- package/dist/theme/expandColorScale.js +17 -7
- package/dist/theme/expandTypeScale.d.ts.map +1 -1
- package/dist/theme/expandTypeScale.js +17 -0
- package/dist/theme/generateThemeRules.d.ts.map +1 -1
- package/dist/theme/generateThemeRules.js +11 -0
- package/dist/theme/index.d.ts +1 -0
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/utils/focusOutline.stylex.d.ts +107 -0
- package/dist/utils/focusOutline.stylex.d.ts.map +1 -0
- package/dist/utils/focusOutline.stylex.js +130 -0
- package/dist/utils/focusReturn.d.ts +24 -0
- package/dist/utils/focusReturn.d.ts.map +1 -0
- package/dist/utils/focusReturn.js +29 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/mergeRefs.d.ts.map +1 -1
- package/dist/utils/mergeRefs.js +7 -5
- package/dist/utils/rtlStyles.d.ts +2 -2
- package/dist/utils/rtlStyles.js +2 -2
- package/dist/utils/themeProps.d.ts +20 -1
- package/dist/utils/themeProps.d.ts.map +1 -1
- package/dist/utils/themeProps.js +8 -2
- package/locales/en.json +12 -0
- package/locales/pseudo.json +9 -0
- package/package.json +7 -2
- package/src/AlertDialog/AlertDialog.doc.mjs +16 -3
- package/src/AlertDialog/AlertDialog.test.tsx +208 -1
- package/src/AlertDialog/AlertDialog.tsx +21 -3
- package/src/AppShell/AppShell.doc.mjs +11 -0
- package/src/AppShell/AppShell.test.tsx +139 -0
- package/src/AppShell/AppShell.tsx +32 -22
- package/src/AspectRatio/AspectRatio.doc.mjs +27 -3
- package/src/AspectRatio/AspectRatio.test.tsx +30 -0
- package/src/AspectRatio/AspectRatio.tsx +13 -0
- package/src/Avatar/Avatar.doc.mjs +2 -13
- package/src/Avatar/Avatar.test.tsx +33 -8
- package/src/Avatar/Avatar.tsx +52 -50
- package/src/AvatarGroup/AvatarGroupOverflow.tsx +2 -9
- package/src/Banner/Banner.tsx +9 -6
- package/src/Breadcrumbs/BreadcrumbItem.tsx +16 -6
- package/src/Breadcrumbs/index.ts +5 -1
- package/src/Button/Button.tsx +21 -41
- package/src/Calendar/Calendar.tsx +2 -1
- package/src/Calendar/styles.ts +0 -8
- package/src/Carousel/Carousel.doc.mjs +3 -0
- package/src/Carousel/Carousel.tsx +10 -6
- package/src/Chat/Chat.doc.mjs +2 -0
- package/src/Chat/ChatDictationButton.tsx +7 -1
- package/src/Chat/ChatLayoutScrollButton.test.tsx +22 -0
- package/src/Chat/ChatLayoutScrollButton.tsx +8 -1
- package/src/Chat/ChatSendButton.tsx +2 -3
- package/src/Chat/ChatToolCalls.test.tsx +35 -0
- package/src/Chat/ChatToolCalls.tsx +36 -16
- package/src/Chat/useTriggerMenu.tsx +2 -5
- package/src/CheckboxInput/CheckboxInput.doc.mjs +4 -2
- package/src/CheckboxInput/CheckboxInput.test.tsx +115 -0
- package/src/CheckboxInput/CheckboxInput.tsx +45 -202
- package/src/ClickableCard/ClickableCard.tsx +6 -11
- package/src/CodeBlock/CodeBlock.doc.mjs +3 -0
- package/src/CodeBlock/CodeBlock.test.tsx +91 -0
- package/src/CodeBlock/CodeBlock.tsx +57 -80
- package/src/Collapsible/Collapsible.tsx +22 -18
- package/src/CommandPalette/CommandPalette.test.tsx +29 -0
- package/src/CommandPalette/CommandPaletteItem.tsx +7 -4
- package/src/CommandPalette/CommandPaletteList.tsx +2 -2
- package/src/ComplexSelector/ComplexSelector.doc.mjs +42 -0
- package/src/ComplexSelector/ComplexSelector.test.tsx +64 -0
- package/src/ComplexSelector/ComplexSelector.tsx +46 -29
- package/src/ContextMenu/ContextMenu.doc.mjs +1 -1
- package/src/ContextMenu/ContextMenu.test.tsx +41 -0
- package/src/ContextMenu/ContextMenu.tsx +3 -3
- package/src/ContextMenu/index.ts +5 -1
- package/src/DateInput/DateInput.doc.mjs +18 -3
- package/src/DateInput/DateInput.test.tsx +93 -11
- package/src/DateInput/DateInput.tsx +41 -19
- package/src/DateRangeInput/DateRangeInput.doc.mjs +10 -2
- package/src/DateRangeInput/DateRangeInput.test.tsx +110 -14
- package/src/DateRangeInput/DateRangeInput.tsx +24 -12
- package/src/DateTimeInput/DateTimeInput.doc.mjs +16 -2
- package/src/DateTimeInput/DateTimeInput.test.tsx +75 -0
- package/src/DateTimeInput/DateTimeInput.tsx +35 -8
- package/src/Dialog/Dialog.tsx +2 -9
- package/src/DropdownMenu/DropdownMenu.doc.mjs +5 -9
- package/src/DropdownMenu/DropdownMenu.test.tsx +534 -4
- package/src/DropdownMenu/DropdownMenu.tsx +113 -52
- package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +27 -30
- package/src/DropdownMenu/DropdownMenuDivider.doc.mjs +34 -0
- package/src/DropdownMenu/DropdownMenuDivider.tsx +81 -0
- package/src/DropdownMenu/DropdownMenuItem.doc.mjs +39 -4
- package/src/DropdownMenu/DropdownMenuItem.tsx +48 -10
- package/src/DropdownMenu/DropdownMenuRadioItem.tsx +30 -76
- package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +25 -19
- package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +44 -14
- package/src/DropdownMenu/DropdownMenuSubMenu.tsx +1 -5
- package/src/DropdownMenu/index.ts +8 -1
- package/src/DropdownMenu/renderDropdownItems.tsx +33 -34
- package/src/EmptyState/EmptyState.doc.mjs +4 -0
- package/src/EmptyState/EmptyState.test.tsx +62 -0
- package/src/EmptyState/EmptyState.tsx +16 -6
- package/src/Field/Field.doc.mjs +1 -0
- package/src/Field/InputClearButton.test.tsx +117 -0
- package/src/Field/InputClearButton.tsx +30 -3
- package/src/HoverCard/useHoverCard.tsx +2 -23
- package/src/Icon/Icon.doc.mjs +2 -1
- package/src/Indicator/CheckIndicator.tsx +174 -0
- package/src/Indicator/CheckboxIndicator.tsx +257 -0
- package/src/Indicator/Indicator.doc.mjs +344 -0
- package/src/Indicator/Indicator.test.tsx +393 -0
- package/src/Indicator/RadioIndicator.tsx +206 -0
- package/src/Indicator/index.ts +45 -0
- package/src/Indicator/indicator.markers.stylex.ts +19 -0
- package/src/Indicator/indicatorRegistry.test.tsx +106 -0
- package/src/Indicator/indicatorRegistry.ts +120 -0
- package/src/Indicator/types.ts +186 -0
- package/src/Indicator/useIndicator.ts +39 -0
- package/src/Item/Item.doc.mjs +1 -1
- package/src/Item/Item.tsx +7 -14
- package/src/Layer/useLayer.doc.mjs +2 -2
- package/src/Layer/useLayer.test.tsx +85 -0
- package/src/Layer/useLayer.tsx +39 -1
- package/src/Lightbox/Lightbox.doc.mjs +1 -1
- package/src/Lightbox/Lightbox.tsx +43 -38
- package/src/Link/Link.tsx +4 -11
- package/src/MobileNav/MobileNav.tsx +3 -3
- package/src/MoreMenu/MoreMenu.doc.mjs +31 -0
- package/src/MoreMenu/MoreMenu.test.tsx +68 -1
- package/src/MoreMenu/MoreMenu.tsx +19 -0
- package/src/MultiSelector/MultiSelector.doc.mjs +9 -1
- package/src/MultiSelector/MultiSelector.test.tsx +255 -16
- package/src/MultiSelector/MultiSelector.tsx +103 -99
- package/src/NumberInput/NumberInput.doc.mjs +265 -50
- package/src/NumberInput/NumberInput.test.tsx +726 -21
- package/src/NumberInput/NumberInput.tsx +353 -59
- package/src/Outline/Outline.tsx +2 -5
- package/src/Pagination/Pagination.doc.mjs +1 -1
- package/src/Pagination/Pagination.test.tsx +22 -7
- package/src/Pagination/Pagination.tsx +38 -35
- package/src/Popover/Popover.tsx +6 -7
- package/src/PowerSearch/PowerSearch.tsx +1 -1
- package/src/PowerSearch/PowerSearchEditPopover.test.tsx +42 -0
- package/src/PowerSearch/PowerSearchEditPopover.tsx +7 -0
- package/src/ProgressBar/ProgressBar.doc.mjs +27 -5
- package/src/ProgressBar/ProgressBar.test.tsx +224 -1
- package/src/ProgressBar/ProgressBar.tsx +124 -22
- package/src/RadioList/RadioList.doc.mjs +4 -2
- package/src/RadioList/RadioListItem.tsx +31 -130
- package/src/Resizable/ResizeHandle.tsx +2 -9
- package/src/SegmentedControl/SegmentedControlItem.tsx +2 -9
- package/src/SelectableCard/SelectableCard.tsx +4 -9
- package/src/Selector/Selector.doc.mjs +7 -4
- package/src/Selector/Selector.test.tsx +935 -25
- package/src/Selector/Selector.tsx +189 -106
- package/src/Selector/hooks.ts +77 -50
- package/src/SideNav/SideNav.test.tsx +46 -0
- package/src/SideNav/SideNav.tsx +1 -0
- package/src/SideNav/SideNavCollapseButton.tsx +15 -10
- package/src/SideNav/SideNavHeading.tsx +48 -10
- package/src/SideNav/SideNavItem.tsx +20 -12
- package/src/Stack/Stack.doc.mjs +110 -0
- package/src/StatusDot/StatusDot.doc.mjs +12 -3
- package/src/Switch/Switch.test.tsx +32 -0
- package/src/Switch/Switch.tsx +8 -8
- package/src/TabList/Tab.tsx +2 -9
- package/src/TabList/TabMenu.tsx +14 -21
- package/src/Table/BaseTable.tsx +11 -0
- package/src/Table/index.ts +1 -4
- package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +30 -14
- package/src/Table/plugins/rowExpansion/index.ts +1 -4
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +125 -175
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +115 -458
- package/src/Table/plugins/sortable/useTableSortable.tsx +2 -6
- package/src/Table/plugins/tree/useTableTreeData.tsx +43 -24
- package/src/Table/tableContextMenu.test.tsx +27 -0
- package/src/Table/tableContextMenu.tsx +1 -0
- package/src/Table/types.ts +11 -0
- package/src/Table/useTableGroupedRows.doc.mjs +1 -1
- package/src/Table/useTableRowExpansion.doc.mjs +43 -66
- package/src/TextArea/TextArea.doc.mjs +42 -2
- package/src/TextArea/TextArea.test.tsx +219 -0
- package/src/TextArea/TextArea.tsx +34 -7
- package/src/TextInput/TextInput.doc.mjs +18 -2
- package/src/TextInput/TextInput.test.tsx +189 -0
- package/src/TextInput/TextInput.tsx +25 -31
- package/src/Thumbnail/Thumbnail.tsx +2 -9
- package/src/TimeInput/TimeInput.doc.mjs +2 -2
- package/src/TimeInput/TimeInput.test.tsx +30 -3
- package/src/TimeInput/TimeInput.tsx +9 -26
- package/src/Timestamp/Timestamp.doc.mjs +4 -3
- package/src/Timestamp/TimestampHoverCard.tsx +13 -35
- package/src/Token/Token.tsx +5 -28
- package/src/Tokenizer/Tokenizer.doc.mjs +2 -2
- package/src/Tokenizer/Tokenizer.test.tsx +45 -3
- package/src/Tokenizer/Tokenizer.tsx +10 -2
- package/src/Tooltip/useTooltip.tsx +2 -23
- package/src/TopNav/TopNav.tsx +1 -3
- package/src/TopNav/TopNavHeading.tsx +42 -13
- package/src/TopNav/TopNavItem.tsx +3 -21
- package/src/TopNav/TopNavMegaMenu.test.tsx +433 -33
- package/src/TopNav/TopNavMegaMenu.tsx +118 -53
- package/src/TopNav/TopNavMegaMenuItem.tsx +2 -9
- package/src/TopNav/TopNavMenu.tsx +34 -37
- package/src/TreeList/TreeList.doc.mjs +5 -0
- package/src/TreeList/TreeList.test.tsx +206 -7
- package/src/TreeList/TreeList.tsx +22 -0
- package/src/TreeList/TreeListBranches.tsx +25 -2
- package/src/TreeList/TreeListItem.tsx +89 -52
- package/src/Typeahead/BaseTypeahead.tsx +19 -6
- package/src/Typeahead/Typeahead.doc.mjs +1 -0
- package/src/Typeahead/Typeahead.test.tsx +76 -3
- package/src/hooks/containerReveal.stylex.ts +102 -0
- package/src/hooks/index.ts +4 -0
- package/src/hooks/useClipboard.doc.mjs +87 -0
- package/src/hooks/useClipboard.test.tsx +151 -0
- package/src/hooks/useClipboard.ts +135 -0
- package/src/hooks/useContainerReveal.doc.mjs +7 -7
- package/src/hooks/useContainerReveal.test.tsx +42 -62
- package/src/hooks/useContainerReveal.ts +36 -91
- package/src/hooks/useImageMode.test.ts +1 -1
- package/src/hooks/useIndicatorFocusRing.tsx +120 -0
- package/src/hooks/useLongPress.test.tsx +18 -0
- package/src/hooks/useLongPress.ts +12 -2
- package/src/hooks/useScrollLock.test.ts +72 -0
- package/src/hooks/useScrollLock.ts +51 -19
- package/src/hooks/useStreamingText.test.ts +46 -1
- package/src/hooks/useStreamingText.ts +49 -7
- package/src/hooks/useTreeFocus.test.tsx +50 -0
- package/src/hooks/useTreeFocus.ts +14 -3
- package/src/hooks/useTypeahead.test.tsx +150 -0
- package/src/hooks/useTypeahead.ts +24 -9
- package/src/i18n/InternationalizationProvider.doc.mjs +7 -2
- package/src/index.ts +1 -0
- package/src/theme/defineTheme.ts +24 -0
- package/src/theme/derivedVarRegistry.test.ts +21 -1
- package/src/theme/derivedVarRegistry.ts +19 -6
- package/src/theme/expandColorScale.test.ts +14 -0
- package/src/theme/expandColorScale.ts +24 -9
- package/src/theme/expandTypeScale.test.ts +43 -0
- package/src/theme/expandTypeScale.ts +17 -0
- package/src/theme/generateThemeRules.test.ts +61 -20
- package/src/theme/generateThemeRules.ts +11 -0
- package/src/theme/index.ts +13 -0
- package/src/utils/focusOutline.stylex.ts +163 -0
- package/src/utils/focusReturn.test.ts +42 -0
- package/src/utils/focusReturn.ts +31 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/mergeRefs.test.ts +48 -0
- package/src/utils/mergeRefs.ts +12 -6
- package/src/utils/rtlStyles.ts +2 -2
- package/src/utils/themeProps.ts +26 -4
- package/dist/CheckboxInput/checkbox.markers.stylex.d.ts +0 -9
- package/dist/CheckboxInput/checkbox.markers.stylex.d.ts.map +0 -1
- package/dist/CheckboxInput/checkbox.markers.stylex.js +0 -14
- package/dist/RadioList/radio.markers.stylex.d.ts +0 -7
- package/dist/RadioList/radio.markers.stylex.d.ts.map +0 -1
- package/dist/RadioList/radio.markers.stylex.js +0 -12
- package/dist/hooks/containerReveal.pool.stylex.d.ts +0 -303
- package/dist/hooks/containerReveal.pool.stylex.d.ts.map +0 -1
- package/dist/hooks/containerReveal.pool.stylex.js +0 -292
- package/src/CheckboxInput/checkbox.markers.stylex.ts +0 -12
- package/src/RadioList/radio.markers.stylex.ts +0 -10
- package/src/hooks/containerReveal.pool.stylex.ts +0 -571
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckIndicator.d.ts","sourceRoot":"","sources":["../../src/Indicator/CheckIndicator.tsx"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AA6B5C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,IAAW,EACX,UAAkB,EAClB,QAAQ,EACR,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,iBAAiB,CAAC,sCA6EnC;yBAvFe,cAAc"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file CheckIndicator.tsx
|
|
5
|
+
* @input Indicator state props
|
|
6
|
+
* @output Exports CheckIndicator — the default single-selection mark
|
|
7
|
+
* @position Decorative check visual used wherever "this one is chosen" is
|
|
8
|
+
* marked without a control: selector options, menu rows
|
|
9
|
+
*
|
|
10
|
+
* This is the indicator a product replaces to change what "chosen" looks like.
|
|
11
|
+
* `defineTheme({indicators: {check: RadioIndicator}})` turns every
|
|
12
|
+
* single-selection mark into a radio, in one line, without any component
|
|
13
|
+
* knowing it happened.
|
|
14
|
+
*
|
|
15
|
+
* It draws NOTHING when unchecked, which is what makes it the default: a
|
|
16
|
+
* listbox should not show an empty box beside every row. A replacement is free
|
|
17
|
+
* to draw in both states — a radio does — and hosting components render the
|
|
18
|
+
* indicator unconditionally so that works.
|
|
19
|
+
*
|
|
20
|
+
* Unlike the checkbox and radio indicators, this one renders no chrome of its
|
|
21
|
+
* own: it IS the glyph. Two consequences, both deliberate:
|
|
22
|
+
*
|
|
23
|
+
* - It renders `<Icon>` directly rather than wrapping one, so the class the
|
|
24
|
+
* host passes (`selector-check`, say) lands on the same element as
|
|
25
|
+
* `astryx-icon` — one element carrying the mark and its theme target, per
|
|
26
|
+
* the wrapper reduction in #4838/#4846.
|
|
27
|
+
* - It adds NO theme target of its own. `astryx-checkbox` and `astryx-radio`
|
|
28
|
+
* exist because those indicators draw chrome that needs styling; a check
|
|
29
|
+
* is an icon, and `astryx-icon` plus the host's target already reach it.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
import * as stylex from '@stylexjs/stylex';
|
|
33
|
+
import { Icon } from "../Icon/Icon.js";
|
|
34
|
+
import "../theme/tokens.stylex.js";
|
|
35
|
+
import { colorVars } from "../theme/tokens.stylex.js";
|
|
36
|
+
import { isRenderable, mergeProps } from "../utils/index.js";
|
|
37
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
38
|
+
/** The check glyph matches the control sizes the indicator families share. */
|
|
39
|
+
const iconSizeForIndicator = {
|
|
40
|
+
sm: 'sm',
|
|
41
|
+
md: 'sm'
|
|
42
|
+
};
|
|
43
|
+
const styles = {
|
|
44
|
+
slot: {
|
|
45
|
+
k1xSpc: "x3nfvp2",
|
|
46
|
+
kGNEyG: "x6s0dn4",
|
|
47
|
+
kjj79g: "xl56j7k",
|
|
48
|
+
kmuXW: "x2lah0s",
|
|
49
|
+
kzqmXN: "xcdlrvm",
|
|
50
|
+
kZKoxP: "x1l36t39",
|
|
51
|
+
$$css: true
|
|
52
|
+
},
|
|
53
|
+
enabled: {
|
|
54
|
+
kMwMTN: "xqwr325",
|
|
55
|
+
$$css: true
|
|
56
|
+
},
|
|
57
|
+
disabled: {
|
|
58
|
+
kMwMTN: "xqa6c3m",
|
|
59
|
+
$$css: true
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* The default single-selection mark: a checkmark when chosen, nothing when not.
|
|
65
|
+
*
|
|
66
|
+
* Decorative and non-interactive — it renders `aria-hidden` and owns no role,
|
|
67
|
+
* state, or focus behavior; the option or row that hosts it keeps all of that.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```
|
|
71
|
+
* <CheckIndicator state={isSelected ? 'checked' : 'unchecked'} size="sm" />
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
74
|
+
* Swap every single-selection mark for a radio:
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```
|
|
78
|
+
* import {RadioIndicator} from '@astryxdesign/core/Indicator';
|
|
79
|
+
* defineTheme({name: 'brand', indicators: {check: RadioIndicator}});
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export function CheckIndicator({
|
|
83
|
+
state,
|
|
84
|
+
size = 'md',
|
|
85
|
+
isDisabled = false,
|
|
86
|
+
children,
|
|
87
|
+
ref,
|
|
88
|
+
className,
|
|
89
|
+
style,
|
|
90
|
+
xstyle,
|
|
91
|
+
...rest
|
|
92
|
+
}) {
|
|
93
|
+
const isChecked = state === 'checked';
|
|
94
|
+
|
|
95
|
+
// `children` (a pending Spinner, say) replaces the mark but keeps the
|
|
96
|
+
// indicator's place, matching the other indicators' contract. It is checked
|
|
97
|
+
// BEFORE `state`: a host passes a busy visual through in whatever state the
|
|
98
|
+
// row happens to be in, and an unchecked listbox row is the common one.
|
|
99
|
+
//
|
|
100
|
+
// `isRenderable`, not `children != null`: the idiom a host actually writes is
|
|
101
|
+
// `children={isBusy && <Spinner/>}`, which passes `false` when it is not
|
|
102
|
+
// busy. `false` is non-null, so a null check takes this branch, renders
|
|
103
|
+
// nothing inside it, and DELETES the mark on a chosen row (#4893).
|
|
104
|
+
//
|
|
105
|
+
// There is no glyph to hang the caller's props on in this branch, so they go
|
|
106
|
+
// on a span — every one of them, so a `data-testid`, an `id`, a handler or
|
|
107
|
+
// an `xstyle` behaves the same whether or not children are present.
|
|
108
|
+
if (isRenderable(children)) {
|
|
109
|
+
return /*#__PURE__*/_jsx("span", {
|
|
110
|
+
...rest,
|
|
111
|
+
ref: ref,
|
|
112
|
+
"aria-hidden": "true",
|
|
113
|
+
...mergeProps(stylex.props(styles.slot, isDisabled ? styles.disabled : styles.enabled, xstyle), className, style),
|
|
114
|
+
children: children
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Nothing to draw, and no box to reserve: an unmarked row keeps the layout
|
|
119
|
+
// it would have without this indicator.
|
|
120
|
+
if (!isChecked) {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
return /*#__PURE__*/_jsx(Icon
|
|
124
|
+
// Spread first so the indicator's own contract (below) wins over any
|
|
125
|
+
// same-named DOM attribute a caller passed through.
|
|
126
|
+
//
|
|
127
|
+
// An indicator declares span props (BaseProps<HTMLSpanElement>) while
|
|
128
|
+
// Icon declares SVG ones, so the handler types differ nominally. For a
|
|
129
|
+
// registry icon the element that actually receives these IS a span
|
|
130
|
+
// (IconFromRegistry renders one), so forwarding them is correct at
|
|
131
|
+
// runtime; the cast only reconciles the two declarations.
|
|
132
|
+
, {
|
|
133
|
+
...rest,
|
|
134
|
+
// After the spread, deliberately. Icon puts its own a11y defaults BEFORE
|
|
135
|
+
// `{...props}` as a documented escape hatch (Icon.tsx), which is right
|
|
136
|
+
// for an icon and wrong for an indicator — this one is decorative by
|
|
137
|
+
// contract, so it re-asserts it here rather than inheriting the hatch.
|
|
138
|
+
"aria-hidden": "true",
|
|
139
|
+
icon: "check",
|
|
140
|
+
size: iconSizeForIndicator[size],
|
|
141
|
+
color: isDisabled ? 'disabled' : 'accent'
|
|
142
|
+
// The focus ring rides in through xstyle (composed at resolution), but
|
|
143
|
+
// never paints here: it only activates under an owner's indicatorScope
|
|
144
|
+
// marker, and a listbox row that marks selection takes focus itself
|
|
145
|
+
// rather than marking its indicator.
|
|
146
|
+
,
|
|
147
|
+
xstyle: xstyle
|
|
148
|
+
// Icon merges className/style with its own rather than shadowing them,
|
|
149
|
+
// so the host's theme target composes with `astryx-icon`.
|
|
150
|
+
,
|
|
151
|
+
className: className,
|
|
152
|
+
style: style
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
CheckIndicator.displayName = 'CheckIndicator';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { IndicatorProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* The default checkbox visual: a square box with a checkmark or an
|
|
4
|
+
* indeterminate bar.
|
|
5
|
+
*
|
|
6
|
+
* Decorative and non-interactive — it renders `aria-hidden` and owns no input,
|
|
7
|
+
* role, or focus behavior. The focus ring lives on the owner's control wrapper
|
|
8
|
+
* (see CheckboxInput), so a theme that replaces this component keeps a visible
|
|
9
|
+
* focus indicator for free. Themes replace it wholesale through
|
|
10
|
+
* `defineTheme({indicators: {checkbox: MyCheckbox}})`, or restyle it through
|
|
11
|
+
* the `checkbox` theme target like any other component.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```
|
|
15
|
+
* <CheckboxIndicator state="indeterminate" size="sm" />
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function CheckboxIndicator({ state, size, isDisabled, children, ref, className, style, xstyle, ...rest }: IndicatorProps<'multiSelection'>): import("react").JSX.Element;
|
|
19
|
+
export declare namespace CheckboxIndicator {
|
|
20
|
+
var displayName: string;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=CheckboxIndicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxIndicator.d.ts","sourceRoot":"","sources":["../../src/Indicator/CheckboxIndicator.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAwI5C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,IAAW,EACX,UAAkB,EAClB,QAAQ,EACR,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,gBAAgB,CAAC,+BAwElC;yBAlFe,iBAAiB"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file CheckboxIndicator.tsx
|
|
5
|
+
* @input Indicator state props
|
|
6
|
+
* @output Exports CheckboxIndicator — the default checkbox selection visual
|
|
7
|
+
* @position Decorative checkbox visual shared by CheckboxInput, CheckboxList,
|
|
8
|
+
* and decorative menu markers
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import * as stylex from '@stylexjs/stylex';
|
|
12
|
+
import "../theme/tokens.stylex.js";
|
|
13
|
+
import { borderVars, colorVars, durationVars, easeVars, radiusVars } from "../theme/tokens.stylex.js";
|
|
14
|
+
import { isRenderable, mergeProps, themeProps } from "../utils/index.js";
|
|
15
|
+
import "./indicator.markers.stylex.js";
|
|
16
|
+
import { indicatorScope } from "./indicator.markers.stylex.js";
|
|
17
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
18
|
+
const styles = {
|
|
19
|
+
box: {
|
|
20
|
+
kB7OPa: "x9f619",
|
|
21
|
+
k1xSpc: "x78zum5",
|
|
22
|
+
kGNEyG: "x6s0dn4",
|
|
23
|
+
kjj79g: "xl56j7k",
|
|
24
|
+
kmuXW: "x2lah0s",
|
|
25
|
+
kMzoRj: "x1litavf",
|
|
26
|
+
ksu8eU: "x1y0btm7",
|
|
27
|
+
kaIpWk: "xx3sua9",
|
|
28
|
+
k1ekBW: "xts7igz",
|
|
29
|
+
kIyJzY: "xuedmi6 x12w9bfk",
|
|
30
|
+
kAMwcw: "xlr8y92",
|
|
31
|
+
$$css: true
|
|
32
|
+
},
|
|
33
|
+
unchecked: {
|
|
34
|
+
kMwMTN: "xqwr325",
|
|
35
|
+
kVAM5u: "xvy26l8 xilc7fp",
|
|
36
|
+
kWkggS: "x10xzikg xeultfy",
|
|
37
|
+
$$css: true
|
|
38
|
+
},
|
|
39
|
+
checked: {
|
|
40
|
+
kMwMTN: "x17wrial",
|
|
41
|
+
kVAM5u: "xad5do x1ozl1p1",
|
|
42
|
+
kWkggS: "x1ewilqj x17srpfb",
|
|
43
|
+
$$css: true
|
|
44
|
+
},
|
|
45
|
+
disabled: {
|
|
46
|
+
kSiTet: "xbyyjgo",
|
|
47
|
+
kVAM5u: "x14i3s5s x61roa7",
|
|
48
|
+
$$css: true
|
|
49
|
+
},
|
|
50
|
+
disabledUnchecked: {
|
|
51
|
+
kWkggS: "xwmxj5m xqxnq6d",
|
|
52
|
+
$$css: true
|
|
53
|
+
},
|
|
54
|
+
checkmark: {
|
|
55
|
+
k1xSpc: "x1s85apg",
|
|
56
|
+
kMwMTN: "x17wrial xs5hli",
|
|
57
|
+
$$css: true
|
|
58
|
+
},
|
|
59
|
+
checkmarkVisible: {
|
|
60
|
+
k1xSpc: "x1lliihq",
|
|
61
|
+
$$css: true
|
|
62
|
+
},
|
|
63
|
+
indeterminateMark: {
|
|
64
|
+
k1xSpc: "x1s85apg",
|
|
65
|
+
kWkggS: "x1azo05 xwvh9j7",
|
|
66
|
+
kaIpWk: "xjspbzw",
|
|
67
|
+
$$css: true
|
|
68
|
+
},
|
|
69
|
+
indeterminateMarkVisible: {
|
|
70
|
+
k1xSpc: "x1lliihq",
|
|
71
|
+
$$css: true
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const boxSizeStyles = {
|
|
75
|
+
sm: {
|
|
76
|
+
kzqmXN: "xw4jnvo",
|
|
77
|
+
kZKoxP: "x1qx5ct2",
|
|
78
|
+
$$css: true
|
|
79
|
+
},
|
|
80
|
+
md: {
|
|
81
|
+
kzqmXN: "xvy4d1p",
|
|
82
|
+
kZKoxP: "xxk0z11",
|
|
83
|
+
$$css: true
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const checkmarkSizeStyles = {
|
|
87
|
+
sm: {
|
|
88
|
+
kzqmXN: "xsmyaan",
|
|
89
|
+
kZKoxP: "x1kpxq89",
|
|
90
|
+
$$css: true
|
|
91
|
+
},
|
|
92
|
+
md: {
|
|
93
|
+
kzqmXN: "x6jxa94",
|
|
94
|
+
kZKoxP: "x1v9usgg",
|
|
95
|
+
$$css: true
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
const indeterminateSizeStyles = {
|
|
99
|
+
sm: {
|
|
100
|
+
kzqmXN: "x1fsd2vl",
|
|
101
|
+
kZKoxP: "x36qwtl",
|
|
102
|
+
$$css: true
|
|
103
|
+
},
|
|
104
|
+
md: {
|
|
105
|
+
kzqmXN: "xsmyaan",
|
|
106
|
+
kZKoxP: "x36qwtl",
|
|
107
|
+
$$css: true
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* The default checkbox visual: a square box with a checkmark or an
|
|
113
|
+
* indeterminate bar.
|
|
114
|
+
*
|
|
115
|
+
* Decorative and non-interactive — it renders `aria-hidden` and owns no input,
|
|
116
|
+
* role, or focus behavior. The focus ring lives on the owner's control wrapper
|
|
117
|
+
* (see CheckboxInput), so a theme that replaces this component keeps a visible
|
|
118
|
+
* focus indicator for free. Themes replace it wholesale through
|
|
119
|
+
* `defineTheme({indicators: {checkbox: MyCheckbox}})`, or restyle it through
|
|
120
|
+
* the `checkbox` theme target like any other component.
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```
|
|
124
|
+
* <CheckboxIndicator state="indeterminate" size="sm" />
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
export function CheckboxIndicator({
|
|
128
|
+
state,
|
|
129
|
+
size = 'md',
|
|
130
|
+
isDisabled = false,
|
|
131
|
+
children,
|
|
132
|
+
ref,
|
|
133
|
+
className,
|
|
134
|
+
style,
|
|
135
|
+
xstyle,
|
|
136
|
+
...rest
|
|
137
|
+
}) {
|
|
138
|
+
const isChecked = state === 'checked';
|
|
139
|
+
const isIndeterminate = state === 'indeterminate';
|
|
140
|
+
const isCheckedOrIndeterminate = isChecked || isIndeterminate;
|
|
141
|
+
return /*#__PURE__*/_jsx("span", {
|
|
142
|
+
...rest,
|
|
143
|
+
ref: ref,
|
|
144
|
+
"aria-hidden": "true",
|
|
145
|
+
...mergeProps(themeProps('checkbox-indicator', {
|
|
146
|
+
size,
|
|
147
|
+
checked: isChecked ? 'checked' : isIndeterminate ? 'indeterminate' : null,
|
|
148
|
+
disabled: isDisabled ? 'disabled' : null
|
|
149
|
+
},
|
|
150
|
+
// `checkbox` was the target before indicators existed; themes
|
|
151
|
+
// styling it keep working until the next major.
|
|
152
|
+
{
|
|
153
|
+
legacyNames: ['checkbox']
|
|
154
|
+
}), stylex.props(styles.box, boxSizeStyles[size], isCheckedOrIndeterminate ? styles.checked : styles.unchecked, isDisabled && styles.disabled, isDisabled && !isCheckedOrIndeterminate && styles.disabledUnchecked, xstyle), className, style),
|
|
155
|
+
children: isRenderable(children) ? children : /*#__PURE__*/_jsxs(_Fragment, {
|
|
156
|
+
children: [/*#__PURE__*/_jsx("svg", {
|
|
157
|
+
viewBox: "0 0 10 10",
|
|
158
|
+
...stylex.props(styles.checkmark, checkmarkSizeStyles[size], isChecked && styles.checkmarkVisible),
|
|
159
|
+
children: /*#__PURE__*/_jsx("path", {
|
|
160
|
+
d: "M8.5 2.5L4 7.5L1.5 5",
|
|
161
|
+
stroke: "currentColor",
|
|
162
|
+
strokeWidth: "1.5",
|
|
163
|
+
fill: "none",
|
|
164
|
+
strokeLinecap: "round",
|
|
165
|
+
strokeLinejoin: "round"
|
|
166
|
+
})
|
|
167
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
168
|
+
...stylex.props(styles.indeterminateMark, indeterminateSizeStyles[size], isIndeterminate && styles.indeterminateMarkVisible)
|
|
169
|
+
})]
|
|
170
|
+
})
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
CheckboxIndicator.displayName = 'CheckboxIndicator';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { IndicatorProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* The default radio visual: a circle with a filled inner dot when selected.
|
|
4
|
+
*
|
|
5
|
+
* Decorative and non-interactive — it renders `aria-hidden` and owns no input,
|
|
6
|
+
* role, or focus behavior. Themes replace it wholesale through
|
|
7
|
+
* `defineTheme({indicators: {radio: MyRadio}})`, or restyle it through the
|
|
8
|
+
* `radio` / `radio-dot` theme targets like any other component.
|
|
9
|
+
*
|
|
10
|
+
* Unlike an icon, a radio draws in *both* states — an empty circle when
|
|
11
|
+
* unchecked. That is what makes it usable as a selection indicator in
|
|
12
|
+
* components whose default is "a checkmark when selected, nothing otherwise".
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```
|
|
16
|
+
* <RadioIndicator state="checked" size="md" />
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function RadioIndicator({ state, size, isDisabled, children, ref, className, style, xstyle, ...rest }: IndicatorProps<'singleSelection'>): import("react").JSX.Element;
|
|
20
|
+
export declare namespace RadioIndicator {
|
|
21
|
+
var displayName: string;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=RadioIndicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioIndicator.d.ts","sourceRoot":"","sources":["../../src/Indicator/RadioIndicator.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAuG5C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,IAAW,EACX,UAAkB,EAClB,QAAQ,EACR,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,iBAAiB,CAAC,+BAqDnC;yBA/De,cAAc"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file RadioIndicator.tsx
|
|
5
|
+
* @input Indicator state props
|
|
6
|
+
* @output Exports RadioIndicator — the default radio selection visual
|
|
7
|
+
* @position Decorative radio visual shared by RadioList, decorative menu
|
|
8
|
+
* markers, and any selection slot themed to use a radio
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import * as stylex from '@stylexjs/stylex';
|
|
12
|
+
import "../theme/tokens.stylex.js";
|
|
13
|
+
import { borderVars, colorVars, durationVars, easeVars, radiusVars } from "../theme/tokens.stylex.js";
|
|
14
|
+
import { isRenderable, mergeProps, themeProps } from "../utils/index.js";
|
|
15
|
+
import "./indicator.markers.stylex.js";
|
|
16
|
+
import { indicatorScope } from "./indicator.markers.stylex.js";
|
|
17
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
|
+
const styles = {
|
|
19
|
+
circle: {
|
|
20
|
+
kB7OPa: "x9f619",
|
|
21
|
+
k1xSpc: "x78zum5",
|
|
22
|
+
kGNEyG: "x6s0dn4",
|
|
23
|
+
kjj79g: "xl56j7k",
|
|
24
|
+
kmuXW: "x2lah0s",
|
|
25
|
+
kMzoRj: "x1litavf",
|
|
26
|
+
ksu8eU: "x1y0btm7",
|
|
27
|
+
kaIpWk: "xjspbzw",
|
|
28
|
+
k1ekBW: "xts7igz",
|
|
29
|
+
kIyJzY: "xuedmi6 x12w9bfk",
|
|
30
|
+
kAMwcw: "xlr8y92",
|
|
31
|
+
$$css: true
|
|
32
|
+
},
|
|
33
|
+
unchecked: {
|
|
34
|
+
kVAM5u: "xvy26l8 xilc7fp",
|
|
35
|
+
kWkggS: "x10xzikg xeultfy",
|
|
36
|
+
$$css: true
|
|
37
|
+
},
|
|
38
|
+
checked: {
|
|
39
|
+
kVAM5u: "xad5do x1ozl1p1",
|
|
40
|
+
kWkggS: "x1ewilqj x17srpfb",
|
|
41
|
+
$$css: true
|
|
42
|
+
},
|
|
43
|
+
disabled: {
|
|
44
|
+
kSiTet: "xbyyjgo",
|
|
45
|
+
kVAM5u: "x14i3s5s x61roa7",
|
|
46
|
+
$$css: true
|
|
47
|
+
},
|
|
48
|
+
disabledUnchecked: {
|
|
49
|
+
kWkggS: "xwmxj5m xqxnq6d",
|
|
50
|
+
$$css: true
|
|
51
|
+
},
|
|
52
|
+
dot: {
|
|
53
|
+
kaIpWk: "xjspbzw",
|
|
54
|
+
kWkggS: "x1azo05 xwvh9j7",
|
|
55
|
+
$$css: true
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
const circleSizeStyles = {
|
|
59
|
+
sm: {
|
|
60
|
+
kzqmXN: "xw4jnvo",
|
|
61
|
+
kZKoxP: "x1qx5ct2",
|
|
62
|
+
$$css: true
|
|
63
|
+
},
|
|
64
|
+
md: {
|
|
65
|
+
kzqmXN: "xvy4d1p",
|
|
66
|
+
kZKoxP: "xxk0z11",
|
|
67
|
+
$$css: true
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const dotSizeStyles = {
|
|
71
|
+
sm: {
|
|
72
|
+
kzqmXN: "x1xc55vz",
|
|
73
|
+
kZKoxP: "xdk7pt",
|
|
74
|
+
$$css: true
|
|
75
|
+
},
|
|
76
|
+
md: {
|
|
77
|
+
kzqmXN: "x1fsd2vl",
|
|
78
|
+
kZKoxP: "x170jfvy",
|
|
79
|
+
$$css: true
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* The default radio visual: a circle with a filled inner dot when selected.
|
|
85
|
+
*
|
|
86
|
+
* Decorative and non-interactive — it renders `aria-hidden` and owns no input,
|
|
87
|
+
* role, or focus behavior. Themes replace it wholesale through
|
|
88
|
+
* `defineTheme({indicators: {radio: MyRadio}})`, or restyle it through the
|
|
89
|
+
* `radio` / `radio-dot` theme targets like any other component.
|
|
90
|
+
*
|
|
91
|
+
* Unlike an icon, a radio draws in *both* states — an empty circle when
|
|
92
|
+
* unchecked. That is what makes it usable as a selection indicator in
|
|
93
|
+
* components whose default is "a checkmark when selected, nothing otherwise".
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```
|
|
97
|
+
* <RadioIndicator state="checked" size="md" />
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
export function RadioIndicator({
|
|
101
|
+
state,
|
|
102
|
+
size = 'md',
|
|
103
|
+
isDisabled = false,
|
|
104
|
+
children,
|
|
105
|
+
ref,
|
|
106
|
+
className,
|
|
107
|
+
style,
|
|
108
|
+
xstyle,
|
|
109
|
+
...rest
|
|
110
|
+
}) {
|
|
111
|
+
// A radio has no partial state; anything other than unchecked reads as
|
|
112
|
+
// selected.
|
|
113
|
+
const isChecked = state !== 'unchecked';
|
|
114
|
+
return /*#__PURE__*/_jsx("span", {
|
|
115
|
+
...rest,
|
|
116
|
+
ref: ref,
|
|
117
|
+
"aria-hidden": "true",
|
|
118
|
+
...mergeProps(themeProps('radio-indicator', {
|
|
119
|
+
size,
|
|
120
|
+
checked: isChecked ? 'checked' : null,
|
|
121
|
+
disabled: isDisabled ? 'disabled' : null
|
|
122
|
+
},
|
|
123
|
+
// `radio` was the target before indicators existed; themes styling
|
|
124
|
+
// it keep working until the next major.
|
|
125
|
+
{
|
|
126
|
+
legacyNames: ['radio']
|
|
127
|
+
}), stylex.props(styles.circle, circleSizeStyles[size], isChecked ? styles.checked : styles.unchecked, isDisabled && styles.disabled, isDisabled && !isChecked && styles.disabledUnchecked, xstyle), className, style),
|
|
128
|
+
children: isRenderable(children) ? children : isChecked && /*#__PURE__*/_jsx("span", {
|
|
129
|
+
...mergeProps(themeProps('radio-indicator-dot', {
|
|
130
|
+
size
|
|
131
|
+
}, {
|
|
132
|
+
legacyNames: ['radio-dot']
|
|
133
|
+
}), stylex.props(styles.dot, dotSizeStyles[size]))
|
|
134
|
+
})
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
RadioIndicator.displayName = 'RadioIndicator';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file index.ts
|
|
3
|
+
* @input None (re-export barrel)
|
|
4
|
+
* @output Public indicator surface: components, registry, hook, types
|
|
5
|
+
* @position Entry point for the stateful control-visual layer
|
|
6
|
+
*
|
|
7
|
+
* Indicators are the componentized form of stateful control visuals — the
|
|
8
|
+
* checkbox box, the radio circle, the mark on a chosen option. They are
|
|
9
|
+
* decorative: the owning component keeps the role, state, and focus behavior,
|
|
10
|
+
* while the indicator turns state into a picture.
|
|
11
|
+
*
|
|
12
|
+
* That makes them themeable through CSS targets like any other component, and
|
|
13
|
+
* replaceable wholesale by name through `defineTheme({indicators})` — replace
|
|
14
|
+
* `check` and every single-selection mark in the app follows.
|
|
15
|
+
*/
|
|
16
|
+
export { CheckboxIndicator } from './CheckboxIndicator';
|
|
17
|
+
export { CheckIndicator } from './CheckIndicator';
|
|
18
|
+
export { RadioIndicator } from './RadioIndicator';
|
|
19
|
+
export { defaultIndicators, getIndicator } from './indicatorRegistry';
|
|
20
|
+
export type { CoreIndicatorName, IndicatorRegistrySource, } from './indicatorRegistry';
|
|
21
|
+
export { useIndicator } from './useIndicator';
|
|
22
|
+
export { indicatorScope } from './indicator.markers.stylex';
|
|
23
|
+
export type { IndicatorComponent, IndicatorFamily, IndicatorFamilyMap, IndicatorMap, IndicatorName, IndicatorNameOfFamily, IndicatorProps, IndicatorRegistry, IndicatorSize, IndicatorState, } from './types';
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Indicator/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAC,iBAAiB,EAAE,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACpE,YAAY,EACV,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAE1D,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file index.ts
|
|
5
|
+
* @input None (re-export barrel)
|
|
6
|
+
* @output Public indicator surface: components, registry, hook, types
|
|
7
|
+
* @position Entry point for the stateful control-visual layer
|
|
8
|
+
*
|
|
9
|
+
* Indicators are the componentized form of stateful control visuals — the
|
|
10
|
+
* checkbox box, the radio circle, the mark on a chosen option. They are
|
|
11
|
+
* decorative: the owning component keeps the role, state, and focus behavior,
|
|
12
|
+
* while the indicator turns state into a picture.
|
|
13
|
+
*
|
|
14
|
+
* That makes them themeable through CSS targets like any other component, and
|
|
15
|
+
* replaceable wholesale by name through `defineTheme({indicators})` — replace
|
|
16
|
+
* `check` and every single-selection mark in the app follows.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
export { CheckboxIndicator } from "./CheckboxIndicator.js";
|
|
20
|
+
export { CheckIndicator } from "./CheckIndicator.js";
|
|
21
|
+
export { RadioIndicator } from "./RadioIndicator.js";
|
|
22
|
+
|
|
23
|
+
// Registry (RSC-compatible, no 'use client')
|
|
24
|
+
export { defaultIndicators, getIndicator } from "./indicatorRegistry.js";
|
|
25
|
+
export { useIndicator } from "./useIndicator.js";
|
|
26
|
+
export { indicatorScope } from "./indicator.markers.stylex.js";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as stylex from '@stylexjs/stylex';
|
|
2
|
+
/**
|
|
3
|
+
* Scoped marker for indicator ancestor selectors.
|
|
4
|
+
*
|
|
5
|
+
* An owner (CheckboxInput's row, RadioListItem's row) applies this marker to
|
|
6
|
+
* the element whose hover and focus should drive the indicator's appearance.
|
|
7
|
+
* The indicator reads it through `stylex.when.ancestor()`, so interaction
|
|
8
|
+
* state stays in CSS instead of being threaded through React props — and
|
|
9
|
+
* owners that should *not* tint their indicator on hover (decorative menu
|
|
10
|
+
* markers, listbox options) simply don't apply the marker.
|
|
11
|
+
*
|
|
12
|
+
* Owners apply it only while enabled, so disabled controls get no hover
|
|
13
|
+
* feedback.
|
|
14
|
+
*/
|
|
15
|
+
export declare const indicatorScope: ReturnType<typeof stylex.defineMarker>;
|
|
16
|
+
//# sourceMappingURL=indicator.markers.stylex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indicator.markers.stylex.d.ts","sourceRoot":"","sources":["../../src/Indicator/indicator.markers.stylex.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,YAAY,CAC3C,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
import * as stylex from '@stylexjs/stylex';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Scoped marker for indicator ancestor selectors.
|
|
7
|
+
*
|
|
8
|
+
* An owner (CheckboxInput's row, RadioListItem's row) applies this marker to
|
|
9
|
+
* the element whose hover and focus should drive the indicator's appearance.
|
|
10
|
+
* The indicator reads it through `stylex.when.ancestor()`, so interaction
|
|
11
|
+
* state stays in CSS instead of being threaded through React props — and
|
|
12
|
+
* owners that should *not* tint their indicator on hover (decorative menu
|
|
13
|
+
* markers, listbox options) simply don't apply the marker.
|
|
14
|
+
*
|
|
15
|
+
* Owners apply it only while enabled, so disabled controls get no hover
|
|
16
|
+
* feedback.
|
|
17
|
+
*/
|
|
18
|
+
export const indicatorScope = {
|
|
19
|
+
x1odsvnm: "x1odsvnm",
|
|
20
|
+
$$css: true
|
|
21
|
+
};
|