@astryxdesign/core 0.2.0-canary.85f5022 → 0.2.0-canary.8dfd7cf
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/dist/AlertDialog/AlertDialog.d.ts +1 -1
- package/dist/AlertDialog/AlertDialog.js +1 -1
- package/dist/AppShell/AppShell.d.ts +2 -20
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +1 -14
- package/dist/AppShell/index.d.ts +20 -1
- package/dist/AppShell/index.d.ts.map +1 -1
- package/dist/AppShell/index.js +14 -0
- package/dist/AspectRatio/AspectRatio.d.ts +1 -1
- package/dist/AspectRatio/AspectRatio.js +1 -1
- package/dist/Avatar/Avatar.d.ts +1 -1
- package/dist/Avatar/Avatar.d.ts.map +1 -1
- package/dist/Avatar/Avatar.js +4 -4
- package/dist/Avatar/AvatarStatusDot.d.ts +2 -26
- package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
- package/dist/Avatar/AvatarStatusDot.js +1 -22
- package/dist/Avatar/index.d.ts +26 -1
- package/dist/Avatar/index.d.ts.map +1 -1
- package/dist/Avatar/index.js +21 -0
- package/dist/AvatarGroup/AvatarGroup.d.ts +1 -1
- package/dist/AvatarGroup/AvatarGroup.js +1 -1
- package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +2 -2
- package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
- package/dist/AvatarGroup/AvatarGroupOverflow.js +7 -3
- package/dist/Badge/Badge.d.ts +2 -30
- package/dist/Badge/Badge.d.ts.map +1 -1
- package/dist/Badge/Badge.js +2 -17
- package/dist/Badge/index.d.ts +31 -2
- package/dist/Badge/index.d.ts.map +1 -1
- package/dist/Badge/index.js +15 -1
- package/dist/Banner/Banner.d.ts +2 -37
- package/dist/Banner/Banner.d.ts.map +1 -1
- package/dist/Banner/Banner.js +6 -34
- package/dist/Banner/index.d.ts +37 -1
- package/dist/Banner/index.d.ts.map +1 -1
- package/dist/Banner/index.js +27 -0
- package/dist/Blockquote/Blockquote.d.ts +1 -1
- package/dist/Blockquote/Blockquote.js +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.js +4 -3
- package/dist/Breadcrumbs/Breadcrumbs.d.ts +2 -18
- package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.js +1 -15
- package/dist/Breadcrumbs/index.d.ts +18 -1
- package/dist/Breadcrumbs/index.d.ts.map +1 -1
- package/dist/Breadcrumbs/index.js +14 -0
- package/dist/Button/Button.d.ts +3 -21
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +6 -19
- package/dist/Button/index.d.ts +21 -3
- package/dist/Button/index.d.ts.map +1 -1
- package/dist/Button/index.js +15 -1
- package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
- package/dist/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/Calendar/Calendar.js +1 -1
- package/dist/Calendar/styles.d.ts +2 -2
- package/dist/Calendar/styles.js +2 -2
- package/dist/Card/Card.d.ts +1 -1
- package/dist/Card/Card.js +1 -1
- package/dist/Carousel/Carousel.d.ts +1 -1
- package/dist/Carousel/Carousel.js +1 -1
- package/dist/Center/Center.d.ts +21 -4
- package/dist/Center/Center.d.ts.map +1 -1
- package/dist/Center/Center.js +11 -3
- package/dist/Chat/ChatComposer.d.ts +1 -1
- package/dist/Chat/ChatComposer.js +9 -9
- package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
- package/dist/Chat/ChatComposerDrawer.js +3 -3
- package/dist/Chat/ChatComposerInput.d.ts +1 -1
- package/dist/Chat/ChatComposerInput.js +1 -1
- package/dist/Chat/ChatDictationButton.d.ts +1 -1
- package/dist/Chat/ChatDictationButton.js +1 -1
- package/dist/Chat/ChatLayout.d.ts +8 -1
- package/dist/Chat/ChatLayout.d.ts.map +1 -1
- package/dist/Chat/ChatLayout.js +15 -4
- package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
- package/dist/Chat/ChatLayoutScrollButton.js +1 -1
- package/dist/Chat/ChatMessage.d.ts +1 -1
- package/dist/Chat/ChatMessage.js +1 -1
- package/dist/Chat/ChatMessageBubble.d.ts +1 -1
- package/dist/Chat/ChatMessageBubble.js +1 -1
- package/dist/Chat/ChatMessageList.d.ts +1 -1
- package/dist/Chat/ChatMessageList.js +1 -1
- package/dist/Chat/ChatSendButton.d.ts.map +1 -1
- package/dist/Chat/ChatSendButton.js +4 -2
- package/dist/Chat/ChatSystemMessage.d.ts +1 -1
- package/dist/Chat/ChatSystemMessage.js +1 -1
- package/dist/Chat/ChatTokenizedText.d.ts +1 -1
- package/dist/Chat/ChatTokenizedText.js +1 -1
- package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +3 -3
- package/dist/CheckboxList/CheckboxList.d.ts +1 -1
- package/dist/CheckboxList/CheckboxList.js +1 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +20 -5
- package/dist/Citation/Citation.d.ts +1 -1
- package/dist/Citation/Citation.js +1 -1
- package/dist/ClickableCard/ClickableCard.d.ts +3 -3
- package/dist/ClickableCard/ClickableCard.js +3 -3
- package/dist/Code/Code.d.ts +2 -2
- package/dist/Code/Code.js +2 -2
- package/dist/CodeBlock/CodeBlock.js +2 -2
- package/dist/Collapsible/Collapsible.d.ts +1 -1
- package/dist/Collapsible/Collapsible.js +3 -3
- package/dist/Collapsible/CollapsibleGroup.d.ts +1 -1
- package/dist/Collapsible/CollapsibleGroup.js +1 -1
- package/dist/Collapsible/CollapsibleGroupContext.js +1 -1
- package/dist/CommandPalette/CommandPalette.d.ts +1 -1
- package/dist/CommandPalette/CommandPalette.js +1 -1
- package/dist/CommandPalette/CommandPaletteEmpty.js +1 -1
- package/dist/CommandPalette/CommandPaletteFooter.js +1 -1
- package/dist/CommandPalette/CommandPaletteGroup.js +1 -1
- package/dist/CommandPalette/CommandPaletteInput.d.ts +2 -2
- package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteInput.js +4 -2
- package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
- package/dist/CommandPalette/CommandPaletteItem.js +1 -1
- package/dist/CommandPalette/CommandPaletteList.js +1 -1
- package/dist/ContextMenu/ContextMenu.d.ts +2 -2
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +24 -6
- package/dist/DateInput/DateInput.js +1 -1
- package/dist/DateRangeInput/DateRangeInput.js +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +1 -1
- package/dist/Dialog/Dialog.d.ts +46 -23
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +59 -31
- package/dist/Dialog/DialogHeader.d.ts +1 -1
- package/dist/Dialog/DialogHeader.js +1 -1
- package/dist/Dialog/index.d.ts +18 -1
- package/dist/Dialog/index.d.ts.map +1 -1
- package/dist/Dialog/index.js +14 -0
- package/dist/Divider/Divider.d.ts +2 -18
- package/dist/Divider/Divider.d.ts.map +1 -1
- package/dist/Divider/Divider.js +1 -15
- package/dist/Divider/index.d.ts +18 -1
- package/dist/Divider/index.d.ts.map +1 -1
- package/dist/Divider/index.js +14 -0
- package/dist/DropdownMenu/DropdownMenu.d.ts +9 -3
- package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenu.js +23 -19
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
- package/dist/DropdownMenu/DropdownMenuItem.d.ts +1 -1
- package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts +8 -11
- package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioGroup.js +3 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.js +6 -2
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.js +14 -6
- package/dist/DropdownMenu/menuItemHover.d.ts +1 -0
- package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
- package/dist/DropdownMenu/menuItemHover.js +1 -0
- package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
- package/dist/DropdownMenu/renderDropdownItems.js +6 -4
- package/dist/EmptyState/EmptyState.d.ts +1 -1
- package/dist/EmptyState/EmptyState.js +1 -1
- package/dist/Field/Field.d.ts +1 -1
- package/dist/Field/Field.js +1 -1
- package/dist/Field/FieldLabel.d.ts +4 -3
- package/dist/Field/FieldLabel.d.ts.map +1 -1
- package/dist/Field/FieldLabel.js +48 -5
- package/dist/FieldStatus/FieldStatus.d.ts +1 -18
- package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
- package/dist/FieldStatus/FieldStatus.js +13 -17
- package/dist/FieldStatus/index.d.ts +19 -1
- package/dist/FieldStatus/index.d.ts.map +1 -1
- package/dist/FieldStatus/index.js +14 -0
- package/dist/FileInput/FileInput.js +1 -1
- package/dist/FormLayout/FormLayout.d.ts +1 -1
- package/dist/FormLayout/FormLayout.d.ts.map +1 -1
- package/dist/FormLayout/FormLayout.js +1 -1
- package/dist/Grid/Grid.d.ts +1 -1
- package/dist/Grid/Grid.js +1 -1
- package/dist/Grid/GridSpan.d.ts +1 -1
- package/dist/Grid/GridSpan.js +1 -1
- package/dist/HStack/HStack.d.ts +1 -1
- package/dist/HStack/HStack.js +1 -1
- package/dist/Heading/Heading.d.ts +2 -2
- package/dist/Heading/Heading.d.ts.map +1 -1
- package/dist/Heading/Heading.js +5 -4
- package/dist/HoverCard/HoverCard.d.ts +1 -1
- package/dist/HoverCard/HoverCard.js +1 -1
- package/dist/Icon/Icon.d.ts +1 -1
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +4 -2
- package/dist/Icon/globalIconRegistry.d.ts +6 -4
- package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
- package/dist/Icon/globalIconRegistry.js +25 -6
- package/dist/Icon/index.d.ts +3 -2
- package/dist/Icon/index.d.ts.map +1 -1
- package/dist/Icon/index.js +1 -0
- package/dist/Icon/useIcon.d.ts +14 -0
- package/dist/Icon/useIcon.d.ts.map +1 -0
- package/dist/Icon/useIcon.js +21 -0
- package/dist/IconButton/IconButton.d.ts +1 -1
- package/dist/IconButton/IconButton.js +1 -1
- package/dist/InputGroup/InputGroup.d.ts +1 -1
- package/dist/InputGroup/InputGroup.js +1 -1
- package/dist/InputGroup/InputGroupText.d.ts +1 -1
- package/dist/InputGroup/InputGroupText.js +1 -1
- package/dist/Item/Item.d.ts +17 -4
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +32 -7
- package/dist/Kbd/Kbd.d.ts +1 -1
- package/dist/Kbd/Kbd.js +1 -1
- package/dist/Layout/Layout.d.ts +1 -1
- package/dist/Layout/Layout.js +1 -1
- package/dist/Layout/LayoutContent.d.ts +1 -1
- package/dist/Layout/LayoutContent.js +1 -1
- package/dist/Layout/LayoutFooter.d.ts +1 -1
- package/dist/Layout/LayoutFooter.js +1 -1
- package/dist/Layout/LayoutHeader.d.ts +1 -1
- package/dist/Layout/LayoutHeader.js +1 -1
- package/dist/Layout/LayoutPanel.d.ts +1 -1
- package/dist/Layout/LayoutPanel.js +1 -1
- package/dist/Lightbox/Lightbox.d.ts +1 -1
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +16 -3
- package/dist/Link/Link.d.ts +1 -1
- package/dist/Link/Link.js +1 -1
- package/dist/Link/LinkProvider.d.ts +2 -2
- package/dist/Link/LinkProvider.js +2 -2
- package/dist/List/List.d.ts +1 -1
- package/dist/List/List.js +1 -1
- package/dist/List/ListItem.d.ts +12 -2
- package/dist/List/ListItem.d.ts.map +1 -1
- package/dist/List/ListItem.js +3 -1
- package/dist/Markdown/Markdown.js +4 -4
- package/dist/MetadataList/MetadataList.d.ts +2 -2
- package/dist/MetadataList/MetadataList.d.ts.map +1 -1
- package/dist/MetadataList/MetadataList.js +5 -3
- package/dist/MetadataList/MetadataListItem.d.ts +1 -1
- package/dist/MetadataList/MetadataListItem.js +1 -1
- package/dist/MobileNav/MobileNav.d.ts +1 -1
- package/dist/MobileNav/MobileNav.js +1 -1
- package/dist/MoreMenu/MoreMenu.d.ts +1 -1
- package/dist/MoreMenu/MoreMenu.js +3 -3
- package/dist/MultiSelector/MultiSelector.d.ts +1 -1
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +21 -6
- package/dist/NavIcon/NavIcon.d.ts +1 -1
- package/dist/NavIcon/NavIcon.js +1 -1
- package/dist/NumberInput/NumberInput.d.ts +1 -1
- package/dist/NumberInput/NumberInput.js +1 -1
- package/dist/Outline/Outline.js +1 -1
- package/dist/OverflowList/OverflowList.d.ts +1 -1
- package/dist/OverflowList/OverflowList.js +1 -1
- package/dist/Pagination/Pagination.d.ts +1 -20
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Pagination/Pagination.js +1 -15
- package/dist/Pagination/index.d.ts +21 -1
- package/dist/Pagination/index.d.ts.map +1 -1
- package/dist/Pagination/index.js +14 -0
- package/dist/Popover/Popover.d.ts +20 -3
- package/dist/Popover/Popover.d.ts.map +1 -1
- package/dist/Popover/Popover.js +5 -1
- package/dist/Popover/usePopover.d.ts.map +1 -1
- package/dist/Popover/usePopover.js +14 -3
- package/dist/PowerSearch/PowerSearch.d.ts +1 -1
- package/dist/PowerSearch/PowerSearch.js +1 -1
- package/dist/ProgressBar/ProgressBar.d.ts +1 -20
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +1 -15
- package/dist/ProgressBar/index.d.ts +21 -1
- package/dist/ProgressBar/index.d.ts.map +1 -1
- package/dist/ProgressBar/index.js +14 -0
- package/dist/RadioList/RadioList.d.ts +1 -1
- package/dist/RadioList/RadioList.js +1 -1
- package/dist/RadioList/RadioListItem.d.ts +1 -1
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +2 -2
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +3 -10
- package/dist/Section/Section.d.ts +2 -19
- package/dist/Section/Section.d.ts.map +1 -1
- package/dist/Section/Section.js +1 -15
- package/dist/Section/index.d.ts +19 -1
- package/dist/Section/index.d.ts.map +1 -1
- package/dist/Section/index.js +14 -0
- package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +4 -3
- package/dist/SelectableCard/SelectableCard.d.ts +4 -3
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +15 -3
- package/dist/Selector/Selector.d.ts +1 -1
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +12 -3
- package/dist/SideNav/SideNav.d.ts +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 +4 -3
- package/dist/SideNav/SideNavHeading.d.ts +1 -1
- package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
- package/dist/SideNav/SideNavHeading.js +8 -7
- package/dist/SideNav/SideNavItem.d.ts +2 -2
- package/dist/SideNav/SideNavItem.d.ts.map +1 -1
- package/dist/SideNav/SideNavItem.js +6 -7
- package/dist/SideNav/SideNavSection.d.ts +1 -1
- package/dist/SideNav/SideNavSection.js +1 -1
- package/dist/Skeleton/Skeleton.d.ts +1 -1
- package/dist/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/Skeleton/Skeleton.js +3 -3
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +78 -68
- package/dist/Spinner/Spinner.d.ts +1 -1
- package/dist/Spinner/Spinner.js +1 -1
- package/dist/Stack/Stack.d.ts +1 -1
- package/dist/Stack/Stack.js +1 -1
- package/dist/Stack/StackItem.d.ts +1 -1
- package/dist/Stack/StackItem.js +1 -1
- package/dist/StatusDot/StatusDot.d.ts +1 -20
- package/dist/StatusDot/StatusDot.d.ts.map +1 -1
- package/dist/StatusDot/StatusDot.js +2 -17
- package/dist/StatusDot/index.d.ts +21 -1
- package/dist/StatusDot/index.d.ts.map +1 -1
- package/dist/StatusDot/index.js +14 -0
- package/dist/Switch/Switch.d.ts +1 -1
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +16 -5
- package/dist/TabList/Tab.d.ts +1 -1
- package/dist/TabList/Tab.js +1 -1
- package/dist/TabList/TabList.d.ts +1 -1
- package/dist/TabList/TabList.js +1 -1
- package/dist/TabList/TabMenu.d.ts +1 -1
- package/dist/TabList/TabMenu.js +1 -1
- package/dist/Table/BaseTable.d.ts +1 -1
- package/dist/Table/BaseTable.js +1 -1
- package/dist/Table/Table.d.ts +1 -1
- package/dist/Table/Table.js +1 -1
- package/dist/Table/TableCell.d.ts +1 -1
- package/dist/Table/TableCell.js +1 -1
- package/dist/Table/TableHeaderCell.d.ts +1 -1
- package/dist/Table/TableHeaderCell.js +1 -1
- package/dist/Table/TableRow.d.ts +1 -1
- package/dist/Table/TableRow.js +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +22 -4
- package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
- package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
- package/dist/Table/plugins/tree/useTableTreeData.js +36 -2
- package/dist/Text/Text.d.ts +11 -2
- package/dist/Text/Text.d.ts.map +1 -1
- package/dist/Text/Text.js +26 -3
- package/dist/Text/index.d.ts +31 -1
- package/dist/Text/index.d.ts.map +1 -1
- package/dist/Text/index.js +23 -0
- package/dist/TextArea/TextArea.d.ts +1 -1
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +107 -39
- package/dist/TextInput/TextInput.d.ts +1 -1
- package/dist/TextInput/TextInput.js +1 -1
- package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.js +52 -46
- package/dist/TimeInput/TimeInput.js +1 -1
- package/dist/Timestamp/Timestamp.js +2 -2
- package/dist/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/Toast/ToastViewport.js +61 -9
- package/dist/ToggleButton/ToggleButton.d.ts +1 -1
- package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
- package/dist/ToggleButton/ToggleButton.js +4 -2
- package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
- package/dist/Token/Token.d.ts +6 -28
- package/dist/Token/Token.d.ts.map +1 -1
- package/dist/Token/Token.js +69 -58
- package/dist/Token/TokenLink.d.ts +62 -0
- package/dist/Token/TokenLink.d.ts.map +1 -0
- package/dist/Token/TokenLink.js +76 -0
- package/dist/Token/index.d.ts +27 -1
- package/dist/Token/index.d.ts.map +1 -1
- package/dist/Token/index.js +14 -0
- package/dist/Tokenizer/Tokenizer.d.ts +1 -1
- package/dist/Tokenizer/Tokenizer.js +1 -1
- package/dist/Toolbar/Toolbar.d.ts +1 -1
- package/dist/Toolbar/Toolbar.js +1 -1
- package/dist/Tooltip/Tooltip.d.ts +1 -1
- package/dist/Tooltip/Tooltip.js +1 -1
- package/dist/TopNav/TopNav.d.ts +1 -1
- package/dist/TopNav/TopNav.js +1 -1
- package/dist/TopNav/TopNavHeading.d.ts +1 -1
- package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
- package/dist/TopNav/TopNavHeading.js +7 -6
- package/dist/TopNav/TopNavItem.d.ts +1 -1
- package/dist/TopNav/TopNavItem.js +1 -1
- package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
- package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenu.js +15 -7
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
- package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
- package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
- package/dist/TopNav/TopNavMegaMenuItem.js +1 -1
- package/dist/TopNav/TopNavMenu.d.ts +1 -1
- package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMenu.js +5 -4
- package/dist/TreeList/TreeList.d.ts +1 -1
- package/dist/TreeList/TreeList.js +1 -1
- package/dist/TreeList/TreeListBranches.js +1 -1
- package/dist/TreeList/TreeListItem.d.ts +1 -1
- package/dist/TreeList/TreeListItem.d.ts.map +1 -1
- package/dist/TreeList/TreeListItem.js +4 -3
- package/dist/TreeList/TreeListTypes.d.ts +1 -17
- package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
- package/dist/TreeList/index.d.ts +18 -1
- package/dist/TreeList/index.d.ts.map +1 -1
- package/dist/TreeList/index.js +14 -0
- package/dist/Typeahead/BaseTypeahead.d.ts +10 -1
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +3 -1
- package/dist/Typeahead/Typeahead.d.ts +1 -1
- package/dist/Typeahead/Typeahead.d.ts.map +1 -1
- package/dist/Typeahead/Typeahead.js +9 -2
- package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
- package/dist/Typeahead/TypeaheadItem.js +1 -1
- package/dist/VStack/VStack.d.ts +1 -1
- package/dist/VStack/VStack.js +1 -1
- package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
- package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
- package/dist/astryx.css +96 -24
- package/dist/astryx.umd.js +50 -50
- package/dist/astryx.umd.js.map +4 -4
- package/dist/hooks/containerReveal.pool.stylex.d.ts +303 -0
- package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -0
- package/dist/hooks/containerReveal.pool.stylex.js +292 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +2 -1
- package/dist/hooks/useContainerReveal.d.ts +83 -0
- package/dist/hooks/useContainerReveal.d.ts.map +1 -0
- package/dist/hooks/useContainerReveal.js +123 -0
- package/dist/hooks/useInputContainer.d.ts.map +1 -1
- package/dist/hooks/useInputContainer.js +29 -1
- package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
- package/dist/hooks/useInputStatusIcon.js +11 -0
- package/dist/hooks/useKeyboardHint.d.ts +2 -2
- package/dist/hooks/useKeyboardHint.d.ts.map +1 -1
- package/dist/hooks/useKeyboardHint.js +5 -3
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/theme/Theme.d.ts.map +1 -1
- package/dist/theme/Theme.js +2 -7
- package/dist/theme/defineTheme.d.ts +6 -0
- package/dist/theme/defineTheme.d.ts.map +1 -1
- package/dist/theme/defineTheme.js +4 -1
- package/dist/theme/expandColorScale.d.ts +19 -2
- package/dist/theme/expandColorScale.d.ts.map +1 -1
- package/dist/theme/expandColorScale.js +38 -10
- package/dist/theme/index.d.ts +6 -4
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +2 -1
- package/dist/theme/themeRegistry.d.ts +32 -0
- package/dist/theme/themeRegistry.d.ts.map +1 -0
- package/dist/theme/themeRegistry.js +49 -0
- package/dist/theme/types.d.ts +10 -2
- package/dist/theme/types.d.ts.map +1 -1
- package/dist/theme/useTheme.d.ts +9 -0
- package/dist/theme/useTheme.d.ts.map +1 -1
- package/dist/theme/useTheme.js +82 -27
- package/dist/utils/rtlStyles.d.ts +21 -0
- package/dist/utils/rtlStyles.d.ts.map +1 -1
- package/dist/utils/rtlStyles.js +26 -1
- package/groups.doc.mjs +2 -2
- package/locales/en.json +40 -0
- package/locales/pseudo.json +30 -0
- package/package.json +4 -13
- package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
- package/src/AlertDialog/AlertDialog.tsx +1 -1
- package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
- package/src/AppShell/AppShell.doc.mjs +3 -3
- package/src/AppShell/AppShell.tsx +2 -20
- package/src/AppShell/index.ts +20 -1
- package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
- package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
- package/src/AspectRatio/AspectRatio.tsx +1 -1
- package/src/Avatar/Avatar.doc.mjs +3 -3
- package/src/Avatar/Avatar.tsx +8 -3
- package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
- package/src/Avatar/AvatarStatusDot.tsx +2 -27
- package/src/Avatar/index.ts +26 -1
- package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
- package/src/AvatarGroup/AvatarGroup.test.tsx +21 -1
- package/src/AvatarGroup/AvatarGroup.tsx +1 -1
- package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
- package/src/AvatarGroup/AvatarGroupOverflow.tsx +5 -3
- package/src/Badge/Badge.doc.mjs +3 -3
- package/src/Badge/Badge.tsx +2 -31
- package/src/Badge/index.ts +32 -6
- package/src/Banner/Banner.doc.mjs +3 -3
- package/src/Banner/Banner.tsx +8 -45
- package/src/Banner/index.ts +39 -7
- package/src/Blockquote/Blockquote.doc.mjs +3 -3
- package/src/Blockquote/Blockquote.tsx +1 -1
- package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
- package/src/Breadcrumbs/BreadcrumbItem.tsx +5 -3
- package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
- package/src/Breadcrumbs/Breadcrumbs.test.tsx +1 -1
- package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
- package/src/Breadcrumbs/index.ts +19 -5
- package/src/Button/Button.doc.mjs +3 -3
- package/src/Button/Button.test.tsx +16 -0
- package/src/Button/Button.tsx +6 -23
- package/src/Button/index.ts +22 -7
- package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
- package/src/ButtonGroup/ButtonGroup.tsx +1 -1
- package/src/Calendar/Calendar.doc.mjs +3 -3
- package/src/Calendar/Calendar.test.tsx +15 -3
- package/src/Calendar/Calendar.tsx +1 -1
- package/src/Calendar/styles.ts +2 -2
- package/src/Card/Card.doc.mjs +3 -3
- package/src/Card/Card.tsx +1 -1
- package/src/Carousel/Carousel.doc.mjs +3 -3
- package/src/Carousel/Carousel.tsx +1 -1
- package/src/Center/Center.doc.mjs +41 -3
- package/src/Center/Center.test.tsx +75 -0
- package/src/Center/Center.tsx +38 -3
- package/src/Chat/Chat.doc.mjs +3 -3
- package/src/Chat/ChatComposer.doc.mjs +1 -1
- package/src/Chat/ChatComposer.tsx +5 -5
- package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
- package/src/Chat/ChatComposerDrawer.tsx +3 -3
- package/src/Chat/ChatComposerInput.doc.mjs +1 -1
- package/src/Chat/ChatComposerInput.tsx +1 -1
- package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
- package/src/Chat/ChatDictationButton.doc.mjs +3 -3
- package/src/Chat/ChatDictationButton.tsx +1 -1
- package/src/Chat/ChatLayout.doc.mjs +1 -1
- package/src/Chat/ChatLayout.test.tsx +57 -0
- package/src/Chat/ChatLayout.tsx +23 -2
- package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
- package/src/Chat/ChatLayoutScrollButton.tsx +1 -1
- package/src/Chat/ChatMessage.doc.mjs +1 -1
- package/src/Chat/ChatMessage.tsx +1 -1
- package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
- package/src/Chat/ChatMessageBubble.tsx +1 -1
- package/src/Chat/ChatMessageList.doc.mjs +1 -1
- package/src/Chat/ChatMessageList.tsx +1 -1
- package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
- package/src/Chat/ChatSendButton.doc.mjs +1 -1
- package/src/Chat/ChatSendButton.tsx +5 -3
- package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
- package/src/Chat/ChatSystemMessage.tsx +1 -1
- package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
- package/src/Chat/ChatTokenizedText.tsx +1 -1
- package/src/Chat/ChatToolCalls.doc.mjs +3 -3
- package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
- package/src/CheckboxInput/CheckboxInput.test.tsx +56 -0
- package/src/CheckboxInput/CheckboxInput.tsx +18 -3
- package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
- package/src/CheckboxList/CheckboxList.test.tsx +94 -3
- package/src/CheckboxList/CheckboxList.tsx +1 -1
- package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
- package/src/CheckboxList/CheckboxListItem.tsx +18 -11
- package/src/Citation/Citation.doc.mjs +2 -2
- package/src/Citation/Citation.tsx +1 -1
- package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
- package/src/ClickableCard/ClickableCard.tsx +3 -3
- package/src/Code/Code.tsx +2 -2
- package/src/CodeBlock/Code.doc.mjs +1 -1
- package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
- package/src/CodeBlock/CodeBlock.test.tsx +17 -0
- package/src/CodeBlock/CodeBlock.tsx +2 -2
- package/src/Collapsible/Collapsible.doc.mjs +3 -3
- package/src/Collapsible/Collapsible.tsx +3 -3
- package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
- package/src/Collapsible/CollapsibleGroup.tsx +1 -1
- package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
- package/src/Collapsible/useCollapsible.doc.mjs +2 -2
- package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
- package/src/CommandPalette/CommandPalette.tsx +1 -1
- package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
- package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
- package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
- package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
- package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
- package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
- package/src/CommandPalette/CommandPaletteList.tsx +1 -1
- package/src/ContextMenu/ContextMenu.doc.mjs +3 -3
- package/src/ContextMenu/ContextMenu.test.tsx +17 -2
- package/src/ContextMenu/ContextMenu.tsx +27 -6
- package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
- package/src/DateInput/DateInput.doc.mjs +3 -3
- package/src/DateInput/DateInput.tsx +1 -1
- package/src/DateRangeInput/DateRangeInput.doc.mjs +2 -2
- package/src/DateRangeInput/DateRangeInput.tsx +1 -1
- package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -3
- package/src/DateTimeInput/DateTimeInput.tsx +1 -1
- package/src/Dialog/Dialog.doc.mjs +9 -5
- package/src/Dialog/Dialog.test.tsx +84 -1
- package/src/Dialog/Dialog.tsx +87 -45
- package/src/Dialog/DialogHeader.doc.mjs +1 -1
- package/src/Dialog/DialogHeader.tsx +1 -1
- package/src/Dialog/index.ts +18 -1
- package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
- package/src/Divider/Divider.doc.mjs +3 -3
- package/src/Divider/Divider.tsx +2 -19
- package/src/Divider/index.ts +19 -5
- package/src/DropdownMenu/DropdownMenu.doc.mjs +20 -5
- package/src/DropdownMenu/DropdownMenu.test.tsx +122 -0
- package/src/DropdownMenu/DropdownMenu.tsx +31 -20
- package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
- package/src/DropdownMenu/DropdownMenuItem.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuItem.tsx +1 -1
- package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +5 -13
- package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +9 -10
- package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuRadioItem.tsx +11 -2
- package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +84 -2
- package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
- package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +46 -1
- package/src/DropdownMenu/DropdownMenuSubMenu.tsx +24 -8
- package/src/DropdownMenu/menuItemHover.ts +1 -0
- package/src/DropdownMenu/renderDropdownItems.tsx +14 -2
- package/src/EmptyState/EmptyState.doc.mjs +3 -3
- package/src/EmptyState/EmptyState.tsx +1 -1
- package/src/Field/Field.doc.mjs +7 -3
- package/src/Field/Field.tsx +1 -1
- package/src/Field/FieldLabel.doc.mjs +1 -1
- package/src/Field/FieldLabel.test.tsx +103 -0
- package/src/Field/FieldLabel.tsx +61 -5
- package/src/FieldStatus/FieldStatus.doc.mjs +3 -2
- package/src/FieldStatus/FieldStatus.test.tsx +61 -0
- package/src/FieldStatus/FieldStatus.tsx +16 -23
- package/src/FieldStatus/index.ts +20 -5
- package/src/FileInput/FileInput.doc.mjs +3 -3
- package/src/FileInput/FileInput.tsx +1 -1
- package/src/FormLayout/FormLayout.doc.mjs +3 -3
- package/src/FormLayout/FormLayout.tsx +2 -5
- package/src/Grid/Grid.doc.mjs +3 -3
- package/src/Grid/Grid.tsx +1 -1
- package/src/Grid/GridSpan.doc.mjs +1 -1
- package/src/Grid/GridSpan.tsx +1 -1
- package/src/HStack/HStack.tsx +1 -1
- package/src/Heading/Heading.tsx +4 -3
- package/src/HoverCard/HoverCard.doc.mjs +3 -3
- package/src/HoverCard/HoverCard.tsx +1 -1
- package/src/HoverCard/useHoverCard.doc.mjs +2 -2
- package/src/Icon/Icon.doc.mjs +3 -3
- package/src/Icon/Icon.test.tsx +23 -0
- package/src/Icon/Icon.tsx +4 -2
- package/src/Icon/globalIconRegistry.test.tsx +52 -1
- package/src/Icon/globalIconRegistry.tsx +43 -6
- package/src/Icon/index.ts +7 -7
- package/src/Icon/useIcon.ts +23 -0
- package/src/IconButton/IconButton.doc.mjs +2 -2
- package/src/IconButton/IconButton.tsx +1 -1
- package/src/InputGroup/InputGroup.doc.mjs +2 -2
- package/src/InputGroup/InputGroup.tsx +1 -1
- package/src/InputGroup/InputGroupText.doc.mjs +1 -1
- package/src/InputGroup/InputGroupText.tsx +1 -1
- package/src/Item/Item.doc.mjs +8 -3
- package/src/Item/Item.test.tsx +88 -0
- package/src/Item/Item.tsx +58 -12
- package/src/Kbd/Kbd.doc.mjs +3 -3
- package/src/Kbd/Kbd.tsx +1 -1
- package/src/Layer/Layer.doc.mjs +2 -2
- package/src/Layer/useLayer.doc.mjs +2 -2
- package/src/Layout/Layout.doc.mjs +3 -3
- package/src/Layout/Layout.tsx +1 -1
- package/src/Layout/LayoutContent.doc.mjs +1 -1
- package/src/Layout/LayoutContent.tsx +1 -1
- package/src/Layout/LayoutFooter.doc.mjs +1 -1
- package/src/Layout/LayoutFooter.tsx +1 -1
- package/src/Layout/LayoutHeader.doc.mjs +1 -1
- package/src/Layout/LayoutHeader.tsx +1 -1
- package/src/Layout/LayoutPanel.doc.mjs +1 -1
- package/src/Layout/LayoutPanel.tsx +1 -1
- package/src/Lightbox/Lightbox.doc.mjs +3 -3
- package/src/Lightbox/Lightbox.test.tsx +33 -0
- package/src/Lightbox/Lightbox.tsx +16 -4
- package/src/Link/Link.doc.mjs +3 -3
- package/src/Link/Link.tsx +1 -1
- package/src/Link/LinkProvider.doc.mjs +2 -2
- package/src/Link/LinkProvider.tsx +2 -2
- package/src/List/List.doc.mjs +3 -3
- package/src/List/List.tsx +1 -1
- package/src/List/ListItem.doc.mjs +13 -1
- package/src/List/ListItem.tsx +14 -1
- package/src/Markdown/Markdown.doc.mjs +1 -1
- package/src/Markdown/Markdown.tsx +3 -3
- package/src/MetadataList/MetadataList.doc.mjs +3 -3
- package/src/MetadataList/MetadataList.test.tsx +24 -0
- package/src/MetadataList/MetadataList.tsx +7 -3
- package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
- package/src/MetadataList/MetadataListItem.tsx +1 -1
- package/src/MobileNav/MobileNav.doc.mjs +3 -3
- package/src/MobileNav/MobileNav.tsx +1 -1
- package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
- package/src/MoreMenu/MoreMenu.tsx +3 -3
- package/src/MultiSelector/MultiSelector.doc.mjs +3 -3
- package/src/MultiSelector/MultiSelector.test.tsx +110 -0
- package/src/MultiSelector/MultiSelector.tsx +36 -11
- package/src/NavIcon/NavIcon.doc.mjs +3 -3
- package/src/NavIcon/NavIcon.tsx +1 -1
- package/src/NavMenu/NavMenu.doc.mjs +2 -2
- package/src/NumberInput/NumberInput.doc.mjs +3 -3
- package/src/NumberInput/NumberInput.tsx +1 -1
- package/src/Outline/Outline.doc.mjs +3 -3
- package/src/Outline/Outline.tsx +1 -1
- package/src/OverflowList/OverflowList.doc.mjs +3 -3
- package/src/OverflowList/OverflowList.tsx +1 -1
- package/src/Overlay/Overlay.doc.mjs +2 -2
- package/src/Pagination/Pagination.doc.mjs +3 -3
- package/src/Pagination/Pagination.tsx +2 -22
- package/src/Pagination/index.ts +21 -1
- package/src/Popover/Popover.doc.mjs +31 -3
- package/src/Popover/Popover.test.tsx +41 -0
- package/src/Popover/Popover.tsx +25 -2
- package/src/Popover/usePopover.doc.mjs +2 -2
- package/src/Popover/usePopover.tsx +10 -4
- package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
- package/src/PowerSearch/PowerSearch.tsx +1 -1
- package/src/ProgressBar/ProgressBar.doc.mjs +3 -3
- package/src/ProgressBar/ProgressBar.tsx +2 -22
- package/src/ProgressBar/index.ts +22 -5
- package/src/RadioList/RadioList.doc.mjs +3 -3
- package/src/RadioList/RadioList.test.tsx +26 -4
- package/src/RadioList/RadioList.tsx +1 -1
- package/src/RadioList/RadioListItem.doc.mjs +1 -1
- package/src/RadioList/RadioListItem.tsx +9 -2
- package/src/Resizable/Resizable.doc.mjs +2 -2
- package/src/Resizable/ResizeHandle.test.tsx +3 -2
- package/src/Resizable/ResizeHandle.tsx +8 -12
- package/src/Resizable/useResizable.doc.mjs +2 -2
- package/src/Section/Section.doc.mjs +3 -3
- package/src/Section/Section.tsx +2 -20
- package/src/Section/index.ts +20 -5
- package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
- package/src/SegmentedControl/SegmentedControl.test.tsx +28 -0
- package/src/SegmentedControl/SegmentedControl.tsx +1 -1
- package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
- package/src/SegmentedControl/SegmentedControlItem.tsx +21 -3
- package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
- package/src/SelectableCard/SelectableCard.test.tsx +55 -0
- package/src/SelectableCard/SelectableCard.tsx +19 -3
- package/src/Selector/Selector.doc.mjs +3 -3
- package/src/Selector/Selector.test.tsx +52 -0
- package/src/Selector/Selector.tsx +16 -5
- package/src/Selector/SelectorOption.doc.mjs +1 -1
- package/src/SideNav/SideNav.doc.mjs +3 -3
- package/src/SideNav/SideNav.tsx +1 -1
- package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
- package/src/SideNav/SideNavCollapseButton.tsx +4 -3
- package/src/SideNav/SideNavHeading.doc.mjs +1 -1
- package/src/SideNav/SideNavHeading.tsx +8 -9
- package/src/SideNav/SideNavItem.doc.mjs +1 -1
- package/src/SideNav/SideNavItem.tsx +5 -6
- package/src/SideNav/SideNavSection.doc.mjs +1 -1
- package/src/SideNav/SideNavSection.tsx +1 -1
- package/src/Skeleton/Skeleton.doc.mjs +3 -3
- package/src/Skeleton/Skeleton.test.tsx +16 -0
- package/src/Skeleton/Skeleton.tsx +14 -2
- package/src/Slider/Slider.doc.mjs +3 -3
- package/src/Slider/Slider.tsx +9 -13
- package/src/Spinner/Spinner.doc.mjs +3 -3
- package/src/Spinner/Spinner.tsx +1 -1
- package/src/Stack/Stack.doc.mjs +3 -3
- package/src/Stack/Stack.tsx +1 -1
- package/src/Stack/StackItem.tsx +1 -1
- package/src/StatusDot/StatusDot.doc.mjs +3 -3
- package/src/StatusDot/StatusDot.tsx +2 -22
- package/src/StatusDot/index.ts +22 -5
- package/src/Switch/Switch.doc.mjs +3 -3
- package/src/Switch/Switch.test.tsx +71 -0
- package/src/Switch/Switch.tsx +53 -4
- package/src/TabList/Tab.doc.mjs +1 -1
- package/src/TabList/Tab.tsx +1 -1
- package/src/TabList/TabList.doc.mjs +3 -3
- package/src/TabList/TabList.tsx +1 -1
- package/src/TabList/TabMenu.doc.mjs +1 -1
- package/src/TabList/TabMenu.tsx +1 -1
- package/src/Table/BaseTable.tsx +1 -1
- package/src/Table/Table.doc.mjs +3 -3
- package/src/Table/Table.tsx +1 -1
- package/src/Table/TableCell.doc.mjs +1 -1
- package/src/Table/TableCell.tsx +1 -1
- package/src/Table/TableHeaderCell.doc.mjs +1 -1
- package/src/Table/TableHeaderCell.tsx +1 -1
- package/src/Table/TableRow.doc.mjs +1 -1
- package/src/Table/TableRow.tsx +1 -1
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +19 -0
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +24 -4
- package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
- package/src/Table/plugins/tree/useTableTreeData.tsx +54 -1
- package/src/Table/useTableColumnResize.doc.mjs +1 -1
- package/src/Table/useTableColumnSettings.doc.mjs +1 -1
- package/src/Table/useTableFilterState.doc.mjs +1 -1
- package/src/Table/useTableFiltering.doc.mjs +1 -1
- package/src/Table/useTableGroupedRows.doc.mjs +2 -2
- package/src/Table/useTablePagination.doc.mjs +1 -1
- package/src/Table/useTableRowExpansion.doc.mjs +57 -4
- package/src/Table/useTableRowIndex.doc.mjs +2 -2
- package/src/Table/useTableRowStatus.doc.mjs +2 -2
- package/src/Table/useTableSelection.doc.mjs +1 -1
- package/src/Table/useTableSelectionState.doc.mjs +1 -1
- package/src/Table/useTableSortable.doc.mjs +1 -1
- package/src/Table/useTableStickyColumns.doc.mjs +1 -1
- package/src/Table/useTableTreeData.doc.mjs +10 -1
- package/src/Table/useTableTreeState.doc.mjs +1 -1
- package/src/Text/Heading.doc.mjs +4 -4
- package/src/Text/Text.doc.mjs +4 -4
- package/src/Text/Text.test.tsx +42 -0
- package/src/Text/Text.tsx +26 -2
- package/src/Text/index.ts +32 -6
- package/src/TextArea/TextArea.doc.mjs +5 -5
- package/src/TextArea/TextArea.test.tsx +112 -7
- package/src/TextArea/TextArea.tsx +143 -50
- package/src/TextInput/TextInput.doc.mjs +3 -3
- package/src/TextInput/TextInput.tsx +1 -1
- package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
- package/src/Thumbnail/Thumbnail.test.tsx +24 -1
- package/src/Thumbnail/Thumbnail.tsx +28 -35
- package/src/TimeInput/TimeInput.doc.mjs +3 -3
- package/src/TimeInput/TimeInput.tsx +1 -1
- package/src/Timestamp/Timestamp.doc.mjs +3 -3
- package/src/Timestamp/Timestamp.tsx +1 -1
- package/src/Toast/Toast.doc.mjs +3 -3
- package/src/Toast/ToastViewport.test.tsx +218 -8
- package/src/Toast/ToastViewport.tsx +71 -12
- package/src/Toast/useToast.doc.mjs +2 -2
- package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
- package/src/ToggleButton/ToggleButton.test.tsx +24 -0
- package/src/ToggleButton/ToggleButton.tsx +20 -2
- package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
- package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
- package/src/Token/Token.doc.mjs +3 -3
- package/src/Token/Token.test.tsx +145 -0
- package/src/Token/Token.tsx +75 -61
- package/src/Token/TokenLink.tsx +107 -0
- package/src/Token/index.ts +28 -1
- package/src/Tokenizer/Tokenizer.doc.mjs +3 -3
- package/src/Tokenizer/Tokenizer.tsx +1 -1
- package/src/Toolbar/Toolbar.doc.mjs +3 -3
- package/src/Toolbar/Toolbar.tsx +1 -1
- package/src/Tooltip/Tooltip.doc.mjs +3 -3
- package/src/Tooltip/Tooltip.tsx +1 -1
- package/src/Tooltip/useTooltip.doc.mjs +2 -2
- package/src/TopNav/TopNav.doc.mjs +3 -3
- package/src/TopNav/TopNav.tsx +1 -1
- package/src/TopNav/TopNavHeading.doc.mjs +1 -1
- package/src/TopNav/TopNavHeading.tsx +7 -8
- package/src/TopNav/TopNavItem.doc.mjs +1 -1
- package/src/TopNav/TopNavItem.tsx +1 -1
- package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
- package/src/TopNav/TopNavMegaMenu.tsx +32 -6
- package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
- package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
- package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
- package/src/TopNav/TopNavMegaMenuItem.tsx +1 -1
- package/src/TopNav/TopNavMenu.doc.mjs +1 -1
- package/src/TopNav/TopNavMenu.tsx +5 -4
- package/src/TreeList/TreeList.doc.mjs +3 -3
- package/src/TreeList/TreeList.tsx +1 -1
- package/src/TreeList/TreeListBranches.tsx +1 -1
- package/src/TreeList/TreeListItem.tsx +4 -3
- package/src/TreeList/TreeListTypes.ts +1 -18
- package/src/TreeList/index.ts +19 -1
- package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
- package/src/Typeahead/BaseTypeahead.tsx +13 -1
- package/src/Typeahead/Typeahead.doc.mjs +3 -3
- package/src/Typeahead/Typeahead.test.tsx +62 -0
- package/src/Typeahead/Typeahead.tsx +7 -1
- package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
- package/src/Typeahead/TypeaheadItem.tsx +1 -1
- package/src/VStack/VStack.tsx +1 -1
- package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
- package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
- package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
- package/src/__tests__/forcedColors.ts +60 -0
- package/src/__tests__/inputWidthContract.test.tsx +8 -1
- package/src/doc-mjs.d.ts +5 -2
- package/src/docPropLiterals.test.ts +1 -1
- package/src/docPropReferences.test.ts +1 -1
- package/src/hooks/containerReveal.pool.stylex.ts +571 -0
- package/src/hooks/index.ts +7 -0
- package/src/hooks/useClickableContainer.doc.mjs +2 -2
- package/src/hooks/useContainerReveal.doc.mjs +75 -0
- package/src/hooks/useContainerReveal.test.tsx +116 -0
- package/src/hooks/useContainerReveal.ts +181 -0
- package/src/hooks/useEntryAnimation.doc.mjs +2 -2
- package/src/hooks/useFocusTrap.doc.mjs +2 -2
- package/src/hooks/useGridFocus.doc.mjs +2 -2
- package/src/hooks/useHotkeys.doc.mjs +2 -2
- package/src/hooks/useImageMode.doc.mjs +2 -2
- package/src/hooks/useInputContainer.doc.mjs +2 -2
- package/src/hooks/useInputContainer.test.tsx +180 -0
- package/src/hooks/useInputContainer.ts +36 -1
- package/src/hooks/useInputStatusIcon.test.tsx +59 -0
- package/src/hooks/useInputStatusIcon.tsx +12 -1
- package/src/hooks/useKeyboardHint.doc.mjs +2 -2
- package/src/hooks/useKeyboardHint.test.tsx +22 -0
- package/src/hooks/useKeyboardHint.tsx +7 -3
- package/src/hooks/useListFocus.doc.mjs +2 -2
- package/src/hooks/useMediaQuery.doc.mjs +2 -2
- package/src/hooks/useOverflow.doc.mjs +2 -2
- package/src/hooks/useScrollLock.doc.mjs +2 -2
- package/src/hooks/useScrollOverflow.doc.mjs +2 -2
- package/src/hooks/useStreamingText.doc.mjs +2 -2
- package/src/hooks/useTreeFocus.doc.mjs +2 -2
- package/src/i18n/InternationalizationProvider.doc.mjs +2 -2
- package/src/i18n/useTranslator.doc.mjs +2 -2
- package/src/index.ts +14 -10
- package/src/theme/MediaTheme.doc.mjs +2 -2
- package/src/theme/SyntaxTheme.doc.mjs +2 -2
- package/src/theme/Theme.doc.mjs +2 -2
- package/src/theme/Theme.tsx +3 -7
- package/src/theme/defineTheme.ts +11 -1
- package/src/theme/expandColorScale.test.ts +144 -0
- package/src/theme/expandColorScale.ts +53 -15
- package/src/theme/index.ts +11 -9
- package/src/theme/themeRegistry.test.ts +59 -0
- package/src/theme/themeRegistry.ts +53 -0
- package/src/theme/types.ts +14 -13
- package/src/theme/useTheme.doc.mjs +2 -2
- package/src/theme/useTheme.test.tsx +48 -3
- package/src/theme/useTheme.ts +100 -29
- package/src/utils/rtlStyles.ts +22 -0
- package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +0 -9
- package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +0 -1
- package/dist/Thumbnail/thumbnail.markers.stylex.js +0 -14
- package/dist/authoring/doc.d.ts +0 -145
- package/dist/authoring/doc.d.ts.map +0 -1
- package/dist/authoring/doc.js +0 -100
- package/dist/authoring/index.d.ts +0 -29
- package/dist/authoring/index.d.ts.map +0 -1
- package/dist/authoring/index.js +0 -28
- package/dist/authoring/integration.d.ts +0 -35
- package/dist/authoring/integration.d.ts.map +0 -1
- package/dist/authoring/integration.js +0 -30
- package/dist/authoring/template.d.ts +0 -66
- package/dist/authoring/template.d.ts.map +0 -1
- package/dist/authoring/template.js +0 -55
- package/dist/config.d.ts +0 -80
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -40
- package/dist/docs-types.d.ts +0 -969
- package/dist/docs-types.d.ts.map +0 -1
- package/dist/docs-types.js +0 -1
- package/src/Thumbnail/thumbnail.markers.stylex.ts +0 -12
- package/src/authoring/doc.ts +0 -164
- package/src/authoring/index.test.ts +0 -52
- package/src/authoring/index.ts +0 -50
- package/src/authoring/integration.ts +0 -42
- package/src/authoring/template.ts +0 -74
- package/src/config.test.ts +0 -16
- package/src/config.ts +0 -92
- package/src/docs-types.ts +0 -1108
|
@@ -4,6 +4,19 @@ import {describe, it, expect} from 'vitest';
|
|
|
4
4
|
import {expandColorScale} from './expandColorScale';
|
|
5
5
|
import {defineTheme} from './defineTheme';
|
|
6
6
|
import {generateThemeRules} from './generateThemeRules';
|
|
7
|
+
import {resolveThemeTokens} from './tokens';
|
|
8
|
+
import {colorDefaults} from './tokens.stylex';
|
|
9
|
+
|
|
10
|
+
/** Light-mode half of colorDefaults['--color-accent'] — the hue an accent-less config seeds from. */
|
|
11
|
+
const DEFAULT_ACCENT = '#0064E0';
|
|
12
|
+
const DEFAULT_ACCENT_DARK = '#2694FE';
|
|
13
|
+
|
|
14
|
+
/** The three tokens that only exist when a seed accent is supplied. */
|
|
15
|
+
const ACCENT_TOKENS = [
|
|
16
|
+
'--color-accent',
|
|
17
|
+
'--color-accent-muted',
|
|
18
|
+
'--color-on-accent',
|
|
19
|
+
] as const;
|
|
7
20
|
|
|
8
21
|
describe('expandColorScale', () => {
|
|
9
22
|
it('produces all expected token keys', () => {
|
|
@@ -86,6 +99,82 @@ describe('expandColorScale', () => {
|
|
|
86
99
|
});
|
|
87
100
|
});
|
|
88
101
|
|
|
102
|
+
describe('expandColorScale — neutral-only themes (#2279)', () => {
|
|
103
|
+
it('accent is optional — a config without one expands', () => {
|
|
104
|
+
const tokens = expandColorScale({neutralStyle: 'warm'});
|
|
105
|
+
expect(tokens['--color-background-surface']).toMatch(/^light-dark\(#/);
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
it('expands an empty config', () => {
|
|
109
|
+
const tokens = expandColorScale({});
|
|
110
|
+
expect(tokens['--color-background-surface']).toMatch(/^light-dark\(#/);
|
|
111
|
+
expect(tokens).not.toHaveProperty('--color-accent');
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
it('omits the accent tokens so they fall through to colorDefaults', () => {
|
|
115
|
+
const tokens = expandColorScale({neutralStyle: 'warm'});
|
|
116
|
+
for (const key of ACCENT_TOKENS) {
|
|
117
|
+
expect(tokens).not.toHaveProperty(key);
|
|
118
|
+
}
|
|
119
|
+
// ...and the reference tokens still point at whatever --color-accent resolves to.
|
|
120
|
+
expect(tokens['--color-text-accent']).toBe('var(--color-accent)');
|
|
121
|
+
expect(tokens['--color-icon-accent']).toBe('var(--color-accent)');
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
it('seeds the neutral palettes from the light half of the default accent', () => {
|
|
125
|
+
// Drift guard: the module's DEFAULT_ACCENT_SEED is private, so pin the
|
|
126
|
+
// colorDefaults value it is copied from. Re-coloring the default accent
|
|
127
|
+
// without re-seeding would silently change every neutral-only theme.
|
|
128
|
+
expect(colorDefaults['--color-accent']).toBe(
|
|
129
|
+
`light-dark(${DEFAULT_ACCENT}, ${DEFAULT_ACCENT_DARK})`,
|
|
130
|
+
);
|
|
131
|
+
|
|
132
|
+
const neutralOnly = expandColorScale({neutralStyle: 'warm'});
|
|
133
|
+
const seeded = expandColorScale({
|
|
134
|
+
accent: DEFAULT_ACCENT,
|
|
135
|
+
neutralStyle: 'warm',
|
|
136
|
+
});
|
|
137
|
+
for (const [key, value] of Object.entries(seeded)) {
|
|
138
|
+
if ((ACCENT_TOKENS as ReadonlyArray<string>).includes(key)) {
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
expect(neutralOnly[key], key).toBe(value);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
it('honours neutralStyle and contrast without an accent', () => {
|
|
146
|
+
const warm = expandColorScale({neutralStyle: 'warm'});
|
|
147
|
+
const cool = expandColorScale({neutralStyle: 'cool'});
|
|
148
|
+
expect(warm['--color-neutral']).not.toBe(cool['--color-neutral']);
|
|
149
|
+
|
|
150
|
+
const high = expandColorScale({contrast: 'high'});
|
|
151
|
+
const standard = expandColorScale({contrast: 'standard'});
|
|
152
|
+
expect(high['--color-text-primary']).not.toBe(
|
|
153
|
+
standard['--color-text-primary'],
|
|
154
|
+
);
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
it('does not re-color themes that do pass an accent', () => {
|
|
158
|
+
// Seeding from the default hex derives a DIFFERENT accent than the default
|
|
159
|
+
// token holds, so "just default the seed" is not behavior-preserving —
|
|
160
|
+
// omitting the tokens is the only way a neutral-only theme keeps the
|
|
161
|
+
// default accent.
|
|
162
|
+
const tokens = expandColorScale({accent: DEFAULT_ACCENT});
|
|
163
|
+
expect(tokens['--color-accent']).toMatch(/^light-dark\(#/);
|
|
164
|
+
expect(tokens['--color-accent']).not.toBe(colorDefaults['--color-accent']);
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
it('treats an empty accent as supplied, not absent', () => {
|
|
168
|
+
// '' is falsy but not nullish. Only an absent accent is neutral-only; a
|
|
169
|
+
// supplied-but-malformed one keeps its pre-#2279 behavior (the hex parser
|
|
170
|
+
// falls back to black) rather than silently dropping the accent tokens.
|
|
171
|
+
const tokens = expandColorScale({accent: ''});
|
|
172
|
+
for (const key of ACCENT_TOKENS) {
|
|
173
|
+
expect(tokens).toHaveProperty(key);
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
|
|
89
178
|
describe('expandColorScale + defineTheme integration', () => {
|
|
90
179
|
it('explicit token overrides win over generated values', () => {
|
|
91
180
|
const theme = defineTheme({
|
|
@@ -110,4 +199,59 @@ describe('expandColorScale + defineTheme integration', () => {
|
|
|
110
199
|
// The base token itself stays a resolved color pair.
|
|
111
200
|
expect(css).toMatch(/--color-accent: light-dark\(#/);
|
|
112
201
|
});
|
|
202
|
+
|
|
203
|
+
it('a neutral-only theme leaves the accent tokens at their defaults (#2279)', () => {
|
|
204
|
+
const theme = defineTheme({
|
|
205
|
+
name: 'test-neutral-only',
|
|
206
|
+
color: {neutralStyle: 'warm'},
|
|
207
|
+
});
|
|
208
|
+
for (const key of ACCENT_TOKENS) {
|
|
209
|
+
expect(theme.tokens).not.toHaveProperty(key);
|
|
210
|
+
}
|
|
211
|
+
// Neutrals are still themed.
|
|
212
|
+
expect(theme.tokens['--color-background-surface']).toMatch(
|
|
213
|
+
/^light-dark\(#/,
|
|
214
|
+
);
|
|
215
|
+
|
|
216
|
+
const css = generateThemeRules(theme).join('\n');
|
|
217
|
+
expect(css).not.toContain('--color-accent:');
|
|
218
|
+
expect(css).not.toContain('--color-on-accent:');
|
|
219
|
+
expect(css).toContain('--color-background-surface:');
|
|
220
|
+
});
|
|
221
|
+
|
|
222
|
+
it('a neutral-only theme resolves accent tokens to the defaults at runtime (#2279)', () => {
|
|
223
|
+
// The CSS side falls through by simply not emitting the tokens. The JS side
|
|
224
|
+
// (useTheme/resolveThemeTokens) has to agree: the omitted tokens come back
|
|
225
|
+
// from tokenDefaults, and the var() references the theme DOES emit resolve
|
|
226
|
+
// against them instead of leaking a literal 'var(--color-accent)'.
|
|
227
|
+
const theme = defineTheme({
|
|
228
|
+
name: 'test-neutral-only-runtime',
|
|
229
|
+
color: {neutralStyle: 'warm'},
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
const light = resolveThemeTokens(theme, {mode: 'light'});
|
|
233
|
+
expect(light['--color-accent']).toBe(DEFAULT_ACCENT);
|
|
234
|
+
expect(light['--color-text-accent']).toBe(DEFAULT_ACCENT);
|
|
235
|
+
expect(light['--color-icon-accent']).toBe(DEFAULT_ACCENT);
|
|
236
|
+
|
|
237
|
+
const dark = resolveThemeTokens(theme, {mode: 'dark'});
|
|
238
|
+
expect(dark['--color-accent']).toBe(DEFAULT_ACCENT_DARK);
|
|
239
|
+
expect(dark['--color-text-accent']).toBe(DEFAULT_ACCENT_DARK);
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
it('an explicit accent token still wins on a neutral-only theme (#2279)', () => {
|
|
243
|
+
// Neutral scale from HCT + a hand-picked accent: the tokens map is the only
|
|
244
|
+
// source of --color-accent, so the reference tokens follow it.
|
|
245
|
+
const theme = defineTheme({
|
|
246
|
+
name: 'test-neutral-only-explicit-accent',
|
|
247
|
+
color: {neutralStyle: 'warm'},
|
|
248
|
+
tokens: {'--color-accent': ['#AA0000', '#FF5555']},
|
|
249
|
+
});
|
|
250
|
+
expect(
|
|
251
|
+
resolveThemeTokens(theme, {mode: 'light'})['--color-text-accent'],
|
|
252
|
+
).toBe('#AA0000');
|
|
253
|
+
|
|
254
|
+
const css = generateThemeRules(theme).join('\n');
|
|
255
|
+
expect(css).toContain('--color-text-accent: var(--color-accent);');
|
|
256
|
+
});
|
|
113
257
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @file expandColorScale.ts
|
|
5
|
-
* @input Color scale configuration { accent
|
|
5
|
+
* @input Color scale configuration { accent?, neutralStyle?, contrast? }
|
|
6
6
|
* @output Token overrides for derivable color tokens
|
|
7
7
|
* @position Theme utility; consumed by defineTheme.ts
|
|
8
8
|
*
|
|
@@ -11,6 +11,10 @@
|
|
|
11
11
|
* derive from the accent — status colors, categorical hues, and fixed
|
|
12
12
|
* tokens (on-dark/on-light) fall through to colorDefaults.
|
|
13
13
|
*
|
|
14
|
+
* `accent` is optional: a neutral-only config still gets the full neutral
|
|
15
|
+
* ramp (seeded from the default accent's hue) while the accent tokens
|
|
16
|
+
* themselves fall through to colorDefaults, same as the tokens above.
|
|
17
|
+
*
|
|
14
18
|
* SYNC: When modified, update:
|
|
15
19
|
* - /packages/core/src/theme/defineTheme.ts
|
|
16
20
|
*/
|
|
@@ -31,11 +35,21 @@ import {hexToHct, tonalPalette, hexWithAlpha} from './hct';
|
|
|
31
35
|
*
|
|
32
36
|
* // With customization
|
|
33
37
|
* { accent: '#B7410E', neutralStyle: 'warm', contrast: 'high' }
|
|
38
|
+
*
|
|
39
|
+
* // Neutral-only — keeps the default accent, themes the neutrals
|
|
40
|
+
* { neutralStyle: 'warm' }
|
|
34
41
|
* ```
|
|
35
42
|
*/
|
|
36
43
|
export interface ColorScaleConfig {
|
|
37
|
-
/**
|
|
38
|
-
|
|
44
|
+
/**
|
|
45
|
+
* Seed accent color as hex (#RRGGBB). Everything derives from this.
|
|
46
|
+
*
|
|
47
|
+
* Optional. When omitted, the neutral palettes are seeded from the
|
|
48
|
+
* default accent's hue and the accent tokens (--color-accent,
|
|
49
|
+
* --color-accent-muted, --color-on-accent) are not generated — they
|
|
50
|
+
* fall through to colorDefaults.
|
|
51
|
+
*/
|
|
52
|
+
accent?: string;
|
|
39
53
|
|
|
40
54
|
/**
|
|
41
55
|
* Neutral tone warmth. Controls how much of the seed's hue bleeds
|
|
@@ -69,6 +83,14 @@ const NEUTRAL_VARIANT_CHROMA: Record<string, number> = {
|
|
|
69
83
|
neutral: 6,
|
|
70
84
|
};
|
|
71
85
|
|
|
86
|
+
/**
|
|
87
|
+
* Hue source for accent-less configs — the light half of
|
|
88
|
+
* colorDefaults['--color-accent'] (a test guards the two against drift).
|
|
89
|
+
* Only its hue reaches the output: the accent tokens stay ungenerated, so
|
|
90
|
+
* they keep their colorDefaults values rather than this seed's derivation.
|
|
91
|
+
*/
|
|
92
|
+
const DEFAULT_ACCENT_SEED = '#0064E0';
|
|
93
|
+
|
|
72
94
|
// =============================================================================
|
|
73
95
|
// Computation
|
|
74
96
|
// =============================================================================
|
|
@@ -89,18 +111,23 @@ function accentWithAlpha(alpha: number): string {
|
|
|
89
111
|
* --color-on-dark/on-light) are NOT generated — they fall through
|
|
90
112
|
* to colorDefaults.
|
|
91
113
|
*
|
|
114
|
+
* Without an `accent`, the accent tokens join that fall-through set: the
|
|
115
|
+
* neutrals are seeded from the default accent's hue, and --color-accent,
|
|
116
|
+
* --color-accent-muted and --color-on-accent keep their colorDefaults values.
|
|
117
|
+
*
|
|
92
118
|
* @example
|
|
93
119
|
* ```
|
|
94
120
|
* const tokens = expandColorScale({ accent: '#0064E0' });
|
|
95
121
|
* // tokens['--color-accent'] === 'light-dark(#..., #...)'
|
|
122
|
+
*
|
|
123
|
+
* const neutralOnly = expandColorScale({ neutralStyle: 'warm' });
|
|
124
|
+
* // neutralOnly['--color-accent'] === undefined
|
|
96
125
|
* ```
|
|
97
126
|
*/
|
|
98
|
-
export function expandColorScale(
|
|
99
|
-
config: ColorScaleConfig,
|
|
100
|
-
): ColorScaleTokens {
|
|
127
|
+
export function expandColorScale(config: ColorScaleConfig): ColorScaleTokens {
|
|
101
128
|
const {accent, neutralStyle = 'cool', contrast = 'standard'} = config;
|
|
102
129
|
|
|
103
|
-
const seed = hexToHct(accent);
|
|
130
|
+
const seed = hexToHct(accent ?? DEFAULT_ACCENT_SEED);
|
|
104
131
|
const seedHue = seed.hue;
|
|
105
132
|
|
|
106
133
|
const primaryChroma = Math.max(seed.chroma, 48);
|
|
@@ -119,14 +146,25 @@ export function expandColorScale(
|
|
|
119
146
|
const textSecondaryDarkTone = isHigh ? 80 : 70;
|
|
120
147
|
|
|
121
148
|
return {
|
|
122
|
-
// Core semantic
|
|
123
|
-
|
|
124
|
-
//
|
|
125
|
-
//
|
|
126
|
-
//
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
149
|
+
// Core semantic — only with a seed accent. Without one these fall through
|
|
150
|
+
// to colorDefaults, whose --color-accent is NOT what the default seed
|
|
151
|
+
// derives: defaulting the seed instead of omitting the tokens would
|
|
152
|
+
// recolor every neutral-only theme. Nullish and not truthy, matching the
|
|
153
|
+
// seed above, so a supplied-but-malformed accent keeps its old behavior.
|
|
154
|
+
...(accent != null
|
|
155
|
+
? {
|
|
156
|
+
'--color-accent': ld(P[40], P[80]),
|
|
157
|
+
// Derived accent tokens reference --color-accent instead of baking its
|
|
158
|
+
// resolved hex, so a scoped override of the base token re-accents the
|
|
159
|
+
// whole subtree at runtime. --color-on-accent stays baked: it is a
|
|
160
|
+
// contrast computation against the accent, which CSS cannot express.
|
|
161
|
+
'--color-accent-muted': ld(
|
|
162
|
+
accentWithAlpha(0.2),
|
|
163
|
+
accentWithAlpha(0.25),
|
|
164
|
+
),
|
|
165
|
+
'--color-on-accent': ld(P[100], P[20]),
|
|
166
|
+
}
|
|
167
|
+
: null),
|
|
130
168
|
'--color-neutral': ld(hexWithAlpha(N[10], 0.1), hexWithAlpha(N[90], 0.2)),
|
|
131
169
|
'--color-background-surface': ld(N[99], N[10]),
|
|
132
170
|
'--color-background-body': ld(N[95], N[5]),
|
package/src/theme/index.ts
CHANGED
|
@@ -30,6 +30,12 @@ export {
|
|
|
30
30
|
isDefinedTheme,
|
|
31
31
|
tokenDefaults,
|
|
32
32
|
} from './defineTheme';
|
|
33
|
+
export {
|
|
34
|
+
registerTheme,
|
|
35
|
+
getRegisteredTheme,
|
|
36
|
+
getRegisteredThemes,
|
|
37
|
+
resetThemes,
|
|
38
|
+
} from './themeRegistry';
|
|
33
39
|
export type {
|
|
34
40
|
DefineThemeInput,
|
|
35
41
|
DefinedTheme,
|
|
@@ -71,19 +77,13 @@ export {expandTypeScale, generateTypeScaleComponents} from './expandTypeScale';
|
|
|
71
77
|
export type {TypeScaleConfig, TypeScaleTokens} from './expandTypeScale';
|
|
72
78
|
|
|
73
79
|
export {expandRadiusScale} from './expandRadiusScale';
|
|
74
|
-
export type {
|
|
75
|
-
RadiusScaleConfig,
|
|
76
|
-
RadiusScaleTokens,
|
|
77
|
-
} from './expandRadiusScale';
|
|
80
|
+
export type {RadiusScaleConfig, RadiusScaleTokens} from './expandRadiusScale';
|
|
78
81
|
|
|
79
82
|
export {expandColorScale} from './expandColorScale';
|
|
80
83
|
export type {ColorScaleConfig, ColorScaleTokens} from './expandColorScale';
|
|
81
84
|
|
|
82
85
|
export {expandMotionScale} from './expandMotionScale';
|
|
83
|
-
export type {
|
|
84
|
-
MotionScaleConfig,
|
|
85
|
-
MotionScaleTokens,
|
|
86
|
-
} from './expandMotionScale';
|
|
86
|
+
export type {MotionScaleConfig, MotionScaleTokens} from './expandMotionScale';
|
|
87
87
|
|
|
88
88
|
// Export token defaults and vars for use in custom components and themes
|
|
89
89
|
export {
|
|
@@ -132,7 +132,7 @@ export type {
|
|
|
132
132
|
TypeScaleVarName,
|
|
133
133
|
} from './tokens.stylex';
|
|
134
134
|
|
|
135
|
-
export {useTheme, ThemeContext} from './useTheme';
|
|
135
|
+
export {useTheme, useThemeName, ThemeContext} from './useTheme';
|
|
136
136
|
export type {UseThemeReturn, ThemeContextValue} from './useTheme';
|
|
137
137
|
export {
|
|
138
138
|
resolveThemeToken,
|
|
@@ -146,6 +146,7 @@ export type {
|
|
|
146
146
|
ResolvedThemeMode,
|
|
147
147
|
} from './tokens';
|
|
148
148
|
|
|
149
|
+
export type {TextColorMap} from '../Text';
|
|
149
150
|
export type {
|
|
150
151
|
ThemeMode,
|
|
151
152
|
HeadingTag,
|
|
@@ -155,6 +156,7 @@ export type {
|
|
|
155
156
|
TextSize,
|
|
156
157
|
TextWeight,
|
|
157
158
|
TextColor,
|
|
159
|
+
BuiltinTextColor,
|
|
158
160
|
TypographyConfig,
|
|
159
161
|
TypographyRole,
|
|
160
162
|
FontWeight,
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
import {describe, it, expect, beforeEach} from 'vitest';
|
|
4
|
+
import {defineTheme} from './defineTheme';
|
|
5
|
+
import {
|
|
6
|
+
getRegisteredTheme,
|
|
7
|
+
getRegisteredThemes,
|
|
8
|
+
registerTheme,
|
|
9
|
+
resetThemes,
|
|
10
|
+
} from './themeRegistry';
|
|
11
|
+
|
|
12
|
+
describe('themeRegistry', () => {
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
resetThemes();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it('registers and resolves themes by name', () => {
|
|
18
|
+
const theme = defineTheme({
|
|
19
|
+
name: 'brand',
|
|
20
|
+
tokens: {'--color-accent': '#123456'},
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
expect(getRegisteredTheme('brand')).toBe(theme);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('returns null for empty or unknown names', () => {
|
|
27
|
+
expect(getRegisteredTheme(null)).toBeNull();
|
|
28
|
+
expect(getRegisteredTheme('')).toBeNull();
|
|
29
|
+
expect(getRegisteredTheme('missing')).toBeNull();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it('replaces an existing theme with the same name', () => {
|
|
33
|
+
const first = defineTheme({name: 'brand'});
|
|
34
|
+
const second = defineTheme({
|
|
35
|
+
name: 'brand',
|
|
36
|
+
tokens: {'--color-accent': '#654321'},
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
expect(getRegisteredTheme('brand')).not.toBe(first);
|
|
40
|
+
expect(getRegisteredTheme('brand')).toBe(second);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it('returns a defensive snapshot of registered themes', () => {
|
|
44
|
+
const theme = defineTheme({name: 'brand'});
|
|
45
|
+
const snapshot = getRegisteredThemes();
|
|
46
|
+
|
|
47
|
+
expect(snapshot.get('brand')).toBe(theme);
|
|
48
|
+
expect(snapshot).not.toBe(getRegisteredThemes());
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('allows explicit registration of built theme objects', () => {
|
|
52
|
+
const theme = defineTheme({name: 'built'});
|
|
53
|
+
resetThemes();
|
|
54
|
+
|
|
55
|
+
registerTheme(theme);
|
|
56
|
+
|
|
57
|
+
expect(getRegisteredTheme('built')).toBe(theme);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file themeRegistry.ts
|
|
5
|
+
* @input DefinedTheme objects from defineTheme() or built theme packages
|
|
6
|
+
* @output Exports registerTheme, getRegisteredTheme, getRegisteredThemes, resetThemes
|
|
7
|
+
* @position Server-safe theme registry for theme-name-based SSR resolution
|
|
8
|
+
*
|
|
9
|
+
* This module has NO 'use client' directive. It is importable from SSR/RSC and
|
|
10
|
+
* lets code resolve theme data by stable theme name without React context.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import type {DefinedTheme} from './defineTheme';
|
|
14
|
+
|
|
15
|
+
const themeRegistry = new Map<string, DefinedTheme>();
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Register a defined theme under its `name`.
|
|
19
|
+
*
|
|
20
|
+
* Registration is idempotent and replaces any previous theme with the same
|
|
21
|
+
* name. Call from app initialization, theme packages, or <Theme> to make the
|
|
22
|
+
* theme available to SSR-safe resolvers by name.
|
|
23
|
+
*/
|
|
24
|
+
export function registerTheme(theme: DefinedTheme): void {
|
|
25
|
+
themeRegistry.set(theme.name, theme);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Return a previously registered theme by name.
|
|
30
|
+
*/
|
|
31
|
+
export function getRegisteredTheme(
|
|
32
|
+
name: string | null | undefined,
|
|
33
|
+
): DefinedTheme | null {
|
|
34
|
+
if (name == null || name === '') {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
return themeRegistry.get(name) ?? null;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Return all registered themes keyed by theme name.
|
|
42
|
+
*/
|
|
43
|
+
export function getRegisteredThemes(): ReadonlyMap<string, DefinedTheme> {
|
|
44
|
+
return new Map(themeRegistry);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Reset the theme registry. For testing only.
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
51
|
+
export function resetThemes(): void {
|
|
52
|
+
themeRegistry.clear();
|
|
53
|
+
}
|
package/src/theme/types.ts
CHANGED
|
@@ -15,11 +15,7 @@
|
|
|
15
15
|
* Raw CSS values (e.g. '800') are accepted as an escape hatch.
|
|
16
16
|
*/
|
|
17
17
|
export type FontWeight =
|
|
18
|
-
| '
|
|
19
|
-
| 'medium'
|
|
20
|
-
| 'semibold'
|
|
21
|
-
| 'bold'
|
|
22
|
-
| (string & {});
|
|
18
|
+
'normal' | 'medium' | 'semibold' | 'bold' | (string & {});
|
|
23
19
|
|
|
24
20
|
/**
|
|
25
21
|
* A typography role declaration (body, heading, or code).
|
|
@@ -152,18 +148,23 @@ export type TextSize =
|
|
|
152
148
|
/**
|
|
153
149
|
* Font weight variants for Text/Heading
|
|
154
150
|
*/
|
|
151
|
+
import type {TextColorMap} from '../Text';
|
|
152
|
+
|
|
155
153
|
export type TextWeight = 'normal' | 'medium' | 'semibold' | 'bold';
|
|
156
154
|
|
|
157
155
|
/**
|
|
158
|
-
*
|
|
156
|
+
* Built-in text color variants for Text/Heading. The concrete keys that ship
|
|
157
|
+
* with the design system, independent of theme augmentation — used where a
|
|
158
|
+
* value must be one of the real StyleX color styles (see `resolveStyleColor`).
|
|
159
159
|
*/
|
|
160
|
-
export type
|
|
161
|
-
| '
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
160
|
+
export type BuiltinTextColor =
|
|
161
|
+
'primary' | 'secondary' | 'disabled' | 'placeholder' | 'accent' | 'inherit';
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Text color variants for Text/Heading. Extensible via module augmentation of
|
|
165
|
+
* `TextColorMap`.
|
|
166
|
+
*/
|
|
167
|
+
export type TextColor = keyof TextColorMap;
|
|
167
168
|
|
|
168
169
|
/**
|
|
169
170
|
* Display mode for Text/Heading
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
|
-
/** @type {import('
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').HookDoc} */
|
|
4
4
|
export const docs = {
|
|
5
5
|
name: 'useTheme',
|
|
6
6
|
displayName: 'useTheme',
|
|
@@ -87,7 +87,7 @@ export const docs = {
|
|
|
87
87
|
importPath: '@astryxdesign/core/theme',
|
|
88
88
|
};
|
|
89
89
|
|
|
90
|
-
/** @type {import('
|
|
90
|
+
/** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
|
|
91
91
|
export const docsDense = {
|
|
92
92
|
description:
|
|
93
93
|
'Programmatic access to theme tokens for SVG/canvas/charts needing JS values instead of CSS vars.',
|
|
@@ -5,6 +5,7 @@ import {render, renderHook, act, waitFor} from '@testing-library/react';
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import {Theme} from './Theme';
|
|
7
7
|
import {defineTheme} from './defineTheme';
|
|
8
|
+
import {resetThemes} from './themeRegistry';
|
|
8
9
|
import {useTheme} from './useTheme';
|
|
9
10
|
import {resolveThemeTokens} from './tokens';
|
|
10
11
|
|
|
@@ -152,6 +153,8 @@ describe('useTheme', () => {
|
|
|
152
153
|
// straight to OS preference (see Theme.tsx's useRootThemeSync).
|
|
153
154
|
describe('useTheme mode resolution without a ThemeContext ancestor', () => {
|
|
154
155
|
afterEach(async () => {
|
|
156
|
+
resetThemes();
|
|
157
|
+
document.documentElement.removeAttribute('data-astryx-theme');
|
|
155
158
|
// The hook from each `it` below is still mounted and subscribed to the
|
|
156
159
|
// shared MutationObserver when this runs (RTL's own cleanup — which
|
|
157
160
|
// unmounts it — is registered after this file's afterEach), so removing
|
|
@@ -184,6 +187,46 @@ describe('useTheme mode resolution without a ThemeContext ancestor', () => {
|
|
|
184
187
|
|
|
185
188
|
await waitFor(() => expect(result.current.mode).toBe('dark'));
|
|
186
189
|
});
|
|
190
|
+
|
|
191
|
+
it('resolves registered theme tokens from <html data-astryx-theme> when set', () => {
|
|
192
|
+
defineTheme({
|
|
193
|
+
name: 'root-brand',
|
|
194
|
+
tokens: {'--color-accent': ['#010203', '#AABBCC']},
|
|
195
|
+
});
|
|
196
|
+
document.documentElement.setAttribute('data-astryx-theme', 'root-brand');
|
|
197
|
+
document.documentElement.setAttribute('data-theme', 'dark');
|
|
198
|
+
|
|
199
|
+
const {result} = renderHook(() => useTheme());
|
|
200
|
+
|
|
201
|
+
expect(result.current.name).toBe('root-brand');
|
|
202
|
+
expect(result.current.token('--color-accent')).toBe('#AABBCC');
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
it('stays live when <html data-astryx-theme> changes after mount', async () => {
|
|
206
|
+
defineTheme({
|
|
207
|
+
name: 'first-brand',
|
|
208
|
+
tokens: {'--color-accent': '#111111'},
|
|
209
|
+
});
|
|
210
|
+
defineTheme({
|
|
211
|
+
name: 'second-brand',
|
|
212
|
+
tokens: {'--color-accent': '#222222'},
|
|
213
|
+
});
|
|
214
|
+
document.documentElement.setAttribute('data-astryx-theme', 'first-brand');
|
|
215
|
+
|
|
216
|
+
const {result} = renderHook(() => useTheme());
|
|
217
|
+
expect(result.current.name).toBe('first-brand');
|
|
218
|
+
expect(result.current.token('--color-accent')).toBe('#111111');
|
|
219
|
+
|
|
220
|
+
act(() => {
|
|
221
|
+
document.documentElement.setAttribute(
|
|
222
|
+
'data-astryx-theme',
|
|
223
|
+
'second-brand',
|
|
224
|
+
);
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
await waitFor(() => expect(result.current.name).toBe('second-brand'));
|
|
228
|
+
expect(result.current.token('--color-accent')).toBe('#222222');
|
|
229
|
+
});
|
|
187
230
|
});
|
|
188
231
|
|
|
189
232
|
// Covers the singleton MutationObserver + no-op gating in useRootThemeModeAttr:
|
|
@@ -193,7 +236,9 @@ describe('useTheme mode resolution without a ThemeContext ancestor', () => {
|
|
|
193
236
|
// zero as they unmount.
|
|
194
237
|
describe('useTheme root-attribute observer lifecycle', () => {
|
|
195
238
|
afterEach(() => {
|
|
239
|
+
resetThemes();
|
|
196
240
|
document.documentElement.removeAttribute('data-theme');
|
|
241
|
+
document.documentElement.removeAttribute('data-astryx-theme');
|
|
197
242
|
// vi.stubGlobal'd MutationObserver stubs below are torn down here even if
|
|
198
243
|
// a test fails partway through, instead of relying on a manual restore
|
|
199
244
|
// line at the end of each test that a mid-test throw would skip.
|
|
@@ -237,13 +282,13 @@ describe('useTheme root-attribute observer lifecycle', () => {
|
|
|
237
282
|
const first = renderHook(() => useTheme());
|
|
238
283
|
const second = renderHook(() => useTheme());
|
|
239
284
|
|
|
240
|
-
expect(ObserverSpy).toHaveBeenCalledTimes(
|
|
241
|
-
expect(observe).toHaveBeenCalledTimes(
|
|
285
|
+
expect(ObserverSpy).toHaveBeenCalledTimes(2);
|
|
286
|
+
expect(observe).toHaveBeenCalledTimes(2);
|
|
242
287
|
|
|
243
288
|
first.unmount();
|
|
244
289
|
expect(disconnect).not.toHaveBeenCalled();
|
|
245
290
|
|
|
246
291
|
second.unmount();
|
|
247
|
-
expect(disconnect).toHaveBeenCalledTimes(
|
|
292
|
+
expect(disconnect).toHaveBeenCalledTimes(2);
|
|
248
293
|
});
|
|
249
294
|
});
|