@astryxdesign/core 0.2.0 → 0.3.0-canary.1b8b3f2

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.
Files changed (1102) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/README.md +5 -3
  3. package/dist/AlertDialog/AlertDialog.d.ts +1 -1
  4. package/dist/AlertDialog/AlertDialog.js +1 -1
  5. package/dist/AppShell/AppShell.d.ts +2 -20
  6. package/dist/AppShell/AppShell.d.ts.map +1 -1
  7. package/dist/AppShell/AppShell.js +25 -18
  8. package/dist/AppShell/index.d.ts +20 -1
  9. package/dist/AppShell/index.d.ts.map +1 -1
  10. package/dist/AppShell/index.js +14 -0
  11. package/dist/AspectRatio/AspectRatio.d.ts +1 -1
  12. package/dist/AspectRatio/AspectRatio.js +1 -1
  13. package/dist/Avatar/Avatar.d.ts +1 -1
  14. package/dist/Avatar/Avatar.d.ts.map +1 -1
  15. package/dist/Avatar/Avatar.js +35 -14
  16. package/dist/Avatar/AvatarStatusDot.d.ts +2 -26
  17. package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
  18. package/dist/Avatar/AvatarStatusDot.js +1 -22
  19. package/dist/Avatar/index.d.ts +26 -1
  20. package/dist/Avatar/index.d.ts.map +1 -1
  21. package/dist/Avatar/index.js +21 -0
  22. package/dist/AvatarGroup/AvatarGroup.d.ts +1 -1
  23. package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
  24. package/dist/AvatarGroup/AvatarGroup.js +4 -8
  25. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +2 -2
  26. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
  27. package/dist/AvatarGroup/AvatarGroupOverflow.js +7 -3
  28. package/dist/Badge/Badge.d.ts +2 -30
  29. package/dist/Badge/Badge.d.ts.map +1 -1
  30. package/dist/Badge/Badge.js +2 -17
  31. package/dist/Badge/index.d.ts +31 -2
  32. package/dist/Badge/index.d.ts.map +1 -1
  33. package/dist/Badge/index.js +15 -1
  34. package/dist/Banner/Banner.d.ts +2 -37
  35. package/dist/Banner/Banner.d.ts.map +1 -1
  36. package/dist/Banner/Banner.js +6 -34
  37. package/dist/Banner/index.d.ts +37 -1
  38. package/dist/Banner/index.d.ts.map +1 -1
  39. package/dist/Banner/index.js +27 -0
  40. package/dist/Blockquote/Blockquote.d.ts +1 -1
  41. package/dist/Blockquote/Blockquote.js +1 -1
  42. package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
  43. package/dist/Breadcrumbs/BreadcrumbItem.js +4 -3
  44. package/dist/Breadcrumbs/Breadcrumbs.d.ts +2 -18
  45. package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  46. package/dist/Breadcrumbs/Breadcrumbs.js +1 -15
  47. package/dist/Breadcrumbs/index.d.ts +18 -1
  48. package/dist/Breadcrumbs/index.d.ts.map +1 -1
  49. package/dist/Breadcrumbs/index.js +14 -0
  50. package/dist/Button/Button.d.ts +3 -21
  51. package/dist/Button/Button.d.ts.map +1 -1
  52. package/dist/Button/Button.js +6 -19
  53. package/dist/Button/index.d.ts +21 -3
  54. package/dist/Button/index.d.ts.map +1 -1
  55. package/dist/Button/index.js +15 -1
  56. package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
  57. package/dist/ButtonGroup/ButtonGroup.js +1 -1
  58. package/dist/Calendar/Calendar.js +1 -1
  59. package/dist/Calendar/index.d.ts +1 -1
  60. package/dist/Calendar/index.d.ts.map +1 -1
  61. package/dist/Calendar/index.js +1 -1
  62. package/dist/Calendar/styles.d.ts +2 -2
  63. package/dist/Calendar/styles.js +2 -2
  64. package/dist/Calendar/utils.d.ts +0 -4
  65. package/dist/Calendar/utils.d.ts.map +1 -1
  66. package/dist/Calendar/utils.js +1 -8
  67. package/dist/Card/Card.d.ts +1 -1
  68. package/dist/Card/Card.js +1 -1
  69. package/dist/Carousel/Carousel.d.ts +54 -3
  70. package/dist/Carousel/Carousel.d.ts.map +1 -1
  71. package/dist/Carousel/Carousel.js +90 -27
  72. package/dist/Carousel/index.d.ts +1 -1
  73. package/dist/Carousel/index.d.ts.map +1 -1
  74. package/dist/Center/Center.d.ts +21 -4
  75. package/dist/Center/Center.d.ts.map +1 -1
  76. package/dist/Center/Center.js +11 -3
  77. package/dist/Chat/ChatComposer.d.ts +1 -1
  78. package/dist/Chat/ChatComposer.js +9 -9
  79. package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
  80. package/dist/Chat/ChatComposerDrawer.js +5 -5
  81. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  82. package/dist/Chat/ChatComposerInput.js +1 -1
  83. package/dist/Chat/ChatDictationButton.d.ts +1 -1
  84. package/dist/Chat/ChatDictationButton.js +1 -1
  85. package/dist/Chat/ChatLayout.d.ts +8 -1
  86. package/dist/Chat/ChatLayout.d.ts.map +1 -1
  87. package/dist/Chat/ChatLayout.js +15 -4
  88. package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
  89. package/dist/Chat/ChatLayoutScrollButton.js +1 -1
  90. package/dist/Chat/ChatMessage.d.ts +1 -1
  91. package/dist/Chat/ChatMessage.js +1 -1
  92. package/dist/Chat/ChatMessageBubble.d.ts +1 -1
  93. package/dist/Chat/ChatMessageBubble.js +1 -1
  94. package/dist/Chat/ChatMessageList.d.ts +1 -1
  95. package/dist/Chat/ChatMessageList.js +1 -1
  96. package/dist/Chat/ChatSendButton.d.ts.map +1 -1
  97. package/dist/Chat/ChatSendButton.js +4 -2
  98. package/dist/Chat/ChatSystemMessage.d.ts +1 -1
  99. package/dist/Chat/ChatSystemMessage.js +1 -1
  100. package/dist/Chat/ChatTokenizedText.d.ts +1 -1
  101. package/dist/Chat/ChatTokenizedText.js +1 -1
  102. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  103. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  104. package/dist/CheckboxInput/CheckboxInput.js +3 -3
  105. package/dist/CheckboxList/CheckboxList.d.ts +1 -1
  106. package/dist/CheckboxList/CheckboxList.js +1 -1
  107. package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
  108. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  109. package/dist/CheckboxList/CheckboxListItem.js +20 -5
  110. package/dist/Citation/Citation.d.ts +1 -1
  111. package/dist/Citation/Citation.js +1 -1
  112. package/dist/ClickableCard/ClickableCard.d.ts +3 -3
  113. package/dist/ClickableCard/ClickableCard.js +3 -3
  114. package/dist/Code/Code.d.ts +2 -2
  115. package/dist/Code/Code.js +2 -2
  116. package/dist/CodeBlock/CodeBlock.js +2 -2
  117. package/dist/Collapsible/Collapsible.d.ts +1 -1
  118. package/dist/Collapsible/Collapsible.js +3 -3
  119. package/dist/Collapsible/CollapsibleGroup.d.ts +1 -1
  120. package/dist/Collapsible/CollapsibleGroup.js +1 -1
  121. package/dist/Collapsible/CollapsibleGroupContext.js +1 -1
  122. package/dist/CommandPalette/CommandPalette.d.ts +1 -1
  123. package/dist/CommandPalette/CommandPalette.js +1 -1
  124. package/dist/CommandPalette/CommandPaletteEmpty.js +1 -1
  125. package/dist/CommandPalette/CommandPaletteFooter.js +1 -1
  126. package/dist/CommandPalette/CommandPaletteGroup.js +1 -1
  127. package/dist/CommandPalette/CommandPaletteInput.d.ts +2 -2
  128. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  129. package/dist/CommandPalette/CommandPaletteInput.js +4 -2
  130. package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
  131. package/dist/CommandPalette/CommandPaletteItem.js +1 -1
  132. package/dist/CommandPalette/CommandPaletteList.js +1 -1
  133. package/dist/ComplexSelector/ComplexSelector.d.ts +108 -0
  134. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -0
  135. package/dist/ComplexSelector/ComplexSelector.js +316 -0
  136. package/dist/ComplexSelector/index.d.ts +7 -0
  137. package/dist/ComplexSelector/index.d.ts.map +1 -0
  138. package/dist/ComplexSelector/index.js +10 -0
  139. package/dist/ContextMenu/ContextMenu.d.ts +2 -2
  140. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  141. package/dist/ContextMenu/ContextMenu.js +24 -6
  142. package/dist/DateInput/DateInput.d.ts +9 -2
  143. package/dist/DateInput/DateInput.d.ts.map +1 -1
  144. package/dist/DateInput/DateInput.js +4 -2
  145. package/dist/DateRangeInput/DateRangeInput.d.ts +9 -2
  146. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  147. package/dist/DateRangeInput/DateRangeInput.js +4 -2
  148. package/dist/DateTimeInput/DateTimeInput.d.ts +9 -1
  149. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  150. package/dist/DateTimeInput/DateTimeInput.js +4 -2
  151. package/dist/Dialog/Dialog.d.ts +33 -24
  152. package/dist/Dialog/Dialog.d.ts.map +1 -1
  153. package/dist/Dialog/Dialog.js +47 -31
  154. package/dist/Dialog/DialogHeader.d.ts +1 -1
  155. package/dist/Dialog/DialogHeader.js +1 -1
  156. package/dist/Dialog/index.d.ts +18 -1
  157. package/dist/Dialog/index.d.ts.map +1 -1
  158. package/dist/Dialog/index.js +14 -0
  159. package/dist/Divider/Divider.d.ts +2 -18
  160. package/dist/Divider/Divider.d.ts.map +1 -1
  161. package/dist/Divider/Divider.js +1 -15
  162. package/dist/Divider/index.d.ts +18 -1
  163. package/dist/Divider/index.d.ts.map +1 -1
  164. package/dist/Divider/index.js +14 -0
  165. package/dist/DropdownMenu/DropdownMenu.d.ts +9 -3
  166. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  167. package/dist/DropdownMenu/DropdownMenu.js +23 -19
  168. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
  169. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  170. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
  171. package/dist/DropdownMenu/DropdownMenuItem.d.ts +1 -1
  172. package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
  173. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts +8 -11
  174. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
  175. package/dist/DropdownMenu/DropdownMenuRadioGroup.js +3 -1
  176. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +1 -1
  177. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  178. package/dist/DropdownMenu/DropdownMenuRadioItem.js +6 -2
  179. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
  180. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  181. package/dist/DropdownMenu/DropdownMenuSubMenu.js +14 -6
  182. package/dist/DropdownMenu/menuItemHover.d.ts +1 -0
  183. package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
  184. package/dist/DropdownMenu/menuItemHover.js +1 -0
  185. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  186. package/dist/DropdownMenu/renderDropdownItems.js +6 -4
  187. package/dist/EmptyState/EmptyState.d.ts +1 -1
  188. package/dist/EmptyState/EmptyState.js +1 -1
  189. package/dist/Field/Field.d.ts +1 -1
  190. package/dist/Field/Field.js +1 -1
  191. package/dist/Field/FieldLabel.d.ts +4 -3
  192. package/dist/Field/FieldLabel.d.ts.map +1 -1
  193. package/dist/Field/FieldLabel.js +48 -5
  194. package/dist/FieldStatus/FieldStatus.d.ts +1 -18
  195. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  196. package/dist/FieldStatus/FieldStatus.js +13 -17
  197. package/dist/FieldStatus/index.d.ts +19 -1
  198. package/dist/FieldStatus/index.d.ts.map +1 -1
  199. package/dist/FieldStatus/index.js +14 -0
  200. package/dist/FileInput/FileInput.js +1 -1
  201. package/dist/FormLayout/FormLayout.d.ts +1 -1
  202. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  203. package/dist/FormLayout/FormLayout.js +1 -1
  204. package/dist/Grid/Grid.d.ts +2 -10
  205. package/dist/Grid/Grid.d.ts.map +1 -1
  206. package/dist/Grid/Grid.js +1 -10
  207. package/dist/Grid/GridSpan.d.ts +1 -1
  208. package/dist/Grid/GridSpan.js +1 -1
  209. package/dist/HStack/HStack.d.ts +1 -1
  210. package/dist/HStack/HStack.js +1 -1
  211. package/dist/Heading/Heading.d.ts +2 -2
  212. package/dist/Heading/Heading.d.ts.map +1 -1
  213. package/dist/Heading/Heading.js +5 -4
  214. package/dist/HoverCard/HoverCard.d.ts +1 -1
  215. package/dist/HoverCard/HoverCard.js +1 -1
  216. package/dist/Icon/Icon.d.ts +1 -1
  217. package/dist/Icon/Icon.d.ts.map +1 -1
  218. package/dist/Icon/Icon.js +4 -2
  219. package/dist/Icon/defaultIcons.d.ts.map +1 -1
  220. package/dist/Icon/defaultIcons.js +14 -0
  221. package/dist/Icon/globalIconRegistry.d.ts +48 -6
  222. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  223. package/dist/Icon/globalIconRegistry.js +74 -7
  224. package/dist/Icon/index.d.ts +4 -3
  225. package/dist/Icon/index.d.ts.map +1 -1
  226. package/dist/Icon/index.js +2 -1
  227. package/dist/Icon/useIcon.d.ts +14 -0
  228. package/dist/Icon/useIcon.d.ts.map +1 -0
  229. package/dist/Icon/useIcon.js +21 -0
  230. package/dist/IconButton/IconButton.d.ts +1 -1
  231. package/dist/IconButton/IconButton.js +1 -1
  232. package/dist/InputGroup/InputGroup.d.ts +1 -1
  233. package/dist/InputGroup/InputGroup.js +1 -1
  234. package/dist/InputGroup/InputGroupText.d.ts +1 -1
  235. package/dist/InputGroup/InputGroupText.js +1 -1
  236. package/dist/Item/Item.d.ts +17 -4
  237. package/dist/Item/Item.d.ts.map +1 -1
  238. package/dist/Item/Item.js +32 -7
  239. package/dist/Kbd/Kbd.d.ts +1 -1
  240. package/dist/Kbd/Kbd.js +1 -1
  241. package/dist/Layout/Layout.d.ts +1 -1
  242. package/dist/Layout/Layout.js +1 -1
  243. package/dist/Layout/LayoutContent.d.ts +1 -1
  244. package/dist/Layout/LayoutContent.js +1 -1
  245. package/dist/Layout/LayoutFooter.d.ts +1 -1
  246. package/dist/Layout/LayoutFooter.js +1 -1
  247. package/dist/Layout/LayoutHeader.d.ts +1 -1
  248. package/dist/Layout/LayoutHeader.js +1 -1
  249. package/dist/Layout/LayoutPanel.d.ts +1 -1
  250. package/dist/Layout/LayoutPanel.js +1 -1
  251. package/dist/Lightbox/Lightbox.d.ts +6 -4
  252. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  253. package/dist/Lightbox/Lightbox.js +173 -79
  254. package/dist/Link/Link.d.ts +1 -1
  255. package/dist/Link/Link.js +1 -1
  256. package/dist/Link/LinkProvider.d.ts +2 -2
  257. package/dist/Link/LinkProvider.js +2 -2
  258. package/dist/List/List.d.ts +1 -1
  259. package/dist/List/List.js +1 -1
  260. package/dist/List/ListItem.d.ts +12 -2
  261. package/dist/List/ListItem.d.ts.map +1 -1
  262. package/dist/List/ListItem.js +3 -1
  263. package/dist/Markdown/Markdown.d.ts.map +1 -1
  264. package/dist/Markdown/Markdown.js +35 -13
  265. package/dist/MetadataList/MetadataList.d.ts +2 -2
  266. package/dist/MetadataList/MetadataList.d.ts.map +1 -1
  267. package/dist/MetadataList/MetadataList.js +38 -12
  268. package/dist/MetadataList/MetadataListItem.d.ts +1 -1
  269. package/dist/MetadataList/MetadataListItem.js +1 -1
  270. package/dist/MobileNav/MobileNav.d.ts +1 -1
  271. package/dist/MobileNav/MobileNav.js +9 -9
  272. package/dist/MoreMenu/MoreMenu.d.ts +1 -1
  273. package/dist/MoreMenu/MoreMenu.js +3 -3
  274. package/dist/MultiSelector/MultiSelector.d.ts +13 -4
  275. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  276. package/dist/MultiSelector/MultiSelector.js +118 -24
  277. package/dist/NavIcon/NavIcon.d.ts +1 -1
  278. package/dist/NavIcon/NavIcon.js +1 -1
  279. package/dist/NavMenu/index.d.ts +0 -2
  280. package/dist/NavMenu/index.d.ts.map +1 -1
  281. package/dist/NavMenu/index.js +1 -3
  282. package/dist/NumberInput/NumberInput.d.ts +1 -1
  283. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  284. package/dist/NumberInput/NumberInput.js +16 -5
  285. package/dist/Outline/Outline.js +1 -1
  286. package/dist/OverflowList/OverflowList.d.ts +1 -1
  287. package/dist/OverflowList/OverflowList.js +1 -1
  288. package/dist/Pagination/Pagination.d.ts +26 -21
  289. package/dist/Pagination/Pagination.d.ts.map +1 -1
  290. package/dist/Pagination/Pagination.js +174 -52
  291. package/dist/Pagination/index.d.ts +22 -1
  292. package/dist/Pagination/index.d.ts.map +1 -1
  293. package/dist/Pagination/index.js +14 -0
  294. package/dist/Popover/Popover.d.ts +20 -3
  295. package/dist/Popover/Popover.d.ts.map +1 -1
  296. package/dist/Popover/Popover.js +5 -1
  297. package/dist/Popover/usePopover.d.ts.map +1 -1
  298. package/dist/Popover/usePopover.js +14 -3
  299. package/dist/PowerSearch/PowerSearch.d.ts +1 -1
  300. package/dist/PowerSearch/PowerSearch.js +1 -1
  301. package/dist/ProgressBar/ProgressBar.d.ts +56 -22
  302. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  303. package/dist/ProgressBar/ProgressBar.js +169 -22
  304. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts +27 -0
  305. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts.map +1 -0
  306. package/dist/ProgressBar/ProgressBarMarkTooltip.js +35 -0
  307. package/dist/ProgressBar/index.d.ts +21 -1
  308. package/dist/ProgressBar/index.d.ts.map +1 -1
  309. package/dist/ProgressBar/index.js +14 -0
  310. package/dist/RadioList/RadioList.d.ts +1 -1
  311. package/dist/RadioList/RadioList.js +1 -1
  312. package/dist/RadioList/RadioListItem.d.ts +1 -1
  313. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  314. package/dist/RadioList/RadioListItem.js +2 -2
  315. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  316. package/dist/Resizable/ResizeHandle.js +15 -11
  317. package/dist/Section/Section.d.ts +2 -19
  318. package/dist/Section/Section.d.ts.map +1 -1
  319. package/dist/Section/Section.js +1 -15
  320. package/dist/Section/index.d.ts +19 -1
  321. package/dist/Section/index.d.ts.map +1 -1
  322. package/dist/Section/index.js +14 -0
  323. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  324. package/dist/SegmentedControl/SegmentedControl.js +1 -1
  325. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  326. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  327. package/dist/SegmentedControl/SegmentedControlItem.js +4 -3
  328. package/dist/SelectableCard/SelectableCard.d.ts +4 -3
  329. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  330. package/dist/SelectableCard/SelectableCard.js +15 -3
  331. package/dist/Selector/Selector.d.ts +12 -3
  332. package/dist/Selector/Selector.d.ts.map +1 -1
  333. package/dist/Selector/Selector.js +114 -21
  334. package/dist/SideNav/SideNav.d.ts +1 -1
  335. package/dist/SideNav/SideNav.js +1 -1
  336. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  337. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  338. package/dist/SideNav/SideNavCollapseButton.js +4 -3
  339. package/dist/SideNav/SideNavHeading.d.ts +1 -1
  340. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  341. package/dist/SideNav/SideNavHeading.js +8 -7
  342. package/dist/SideNav/SideNavItem.d.ts +2 -2
  343. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  344. package/dist/SideNav/SideNavItem.js +6 -7
  345. package/dist/SideNav/SideNavSection.d.ts +1 -1
  346. package/dist/SideNav/SideNavSection.js +1 -1
  347. package/dist/Skeleton/Skeleton.d.ts +1 -1
  348. package/dist/Skeleton/Skeleton.d.ts.map +1 -1
  349. package/dist/Skeleton/Skeleton.js +3 -3
  350. package/dist/Slider/Slider.d.ts.map +1 -1
  351. package/dist/Slider/Slider.js +78 -68
  352. package/dist/Spinner/Spinner.d.ts +1 -1
  353. package/dist/Spinner/Spinner.js +1 -1
  354. package/dist/Stack/Stack.d.ts +1 -1
  355. package/dist/Stack/Stack.js +1 -1
  356. package/dist/Stack/StackItem.d.ts +1 -1
  357. package/dist/Stack/StackItem.js +1 -1
  358. package/dist/Stack/stack.stylex.d.ts +3 -3
  359. package/dist/StatusDot/StatusDot.d.ts +1 -20
  360. package/dist/StatusDot/StatusDot.d.ts.map +1 -1
  361. package/dist/StatusDot/StatusDot.js +2 -17
  362. package/dist/StatusDot/index.d.ts +21 -1
  363. package/dist/StatusDot/index.d.ts.map +1 -1
  364. package/dist/StatusDot/index.js +14 -0
  365. package/dist/Switch/Switch.d.ts +2 -6
  366. package/dist/Switch/Switch.d.ts.map +1 -1
  367. package/dist/Switch/Switch.js +28 -20
  368. package/dist/TabList/Tab.d.ts +1 -1
  369. package/dist/TabList/Tab.js +1 -1
  370. package/dist/TabList/TabList.d.ts +1 -1
  371. package/dist/TabList/TabList.js +1 -1
  372. package/dist/TabList/TabMenu.d.ts +1 -1
  373. package/dist/TabList/TabMenu.d.ts.map +1 -1
  374. package/dist/TabList/TabMenu.js +11 -3
  375. package/dist/Table/BaseTable.d.ts +1 -1
  376. package/dist/Table/BaseTable.d.ts.map +1 -1
  377. package/dist/Table/BaseTable.js +4 -7
  378. package/dist/Table/Table.d.ts +1 -1
  379. package/dist/Table/Table.js +1 -1
  380. package/dist/Table/TableCell.d.ts +1 -1
  381. package/dist/Table/TableCell.js +4 -2
  382. package/dist/Table/TableHeaderCell.d.ts +1 -1
  383. package/dist/Table/TableHeaderCell.js +4 -2
  384. package/dist/Table/TableRow.d.ts +1 -1
  385. package/dist/Table/TableRow.js +1 -1
  386. package/dist/Table/index.d.ts +1 -1
  387. package/dist/Table/index.d.ts.map +1 -1
  388. package/dist/Table/index.js +1 -1
  389. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +1 -1
  390. package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +1 -1
  391. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
  392. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  393. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +27 -11
  394. package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
  395. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  396. package/dist/Table/plugins/tree/useTableTreeData.js +36 -2
  397. package/dist/Table/types.d.ts +0 -9
  398. package/dist/Table/types.d.ts.map +1 -1
  399. package/dist/Text/Text.d.ts +11 -2
  400. package/dist/Text/Text.d.ts.map +1 -1
  401. package/dist/Text/Text.js +26 -3
  402. package/dist/Text/index.d.ts +31 -1
  403. package/dist/Text/index.d.ts.map +1 -1
  404. package/dist/Text/index.js +23 -0
  405. package/dist/TextArea/TextArea.d.ts +1 -1
  406. package/dist/TextArea/TextArea.d.ts.map +1 -1
  407. package/dist/TextArea/TextArea.js +107 -39
  408. package/dist/TextInput/TextInput.d.ts +1 -1
  409. package/dist/TextInput/TextInput.js +1 -1
  410. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  411. package/dist/Thumbnail/Thumbnail.js +52 -46
  412. package/dist/TimeInput/TimeInput.js +1 -1
  413. package/dist/Timestamp/Timestamp.d.ts +26 -12
  414. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  415. package/dist/Timestamp/Timestamp.js +128 -65
  416. package/dist/Timestamp/TimestampHoverCard.d.ts +45 -0
  417. package/dist/Timestamp/TimestampHoverCard.d.ts.map +1 -0
  418. package/dist/Timestamp/TimestampHoverCard.js +228 -0
  419. package/dist/Timestamp/formatInstant.d.ts +3 -3
  420. package/dist/Timestamp/formatInstant.d.ts.map +1 -1
  421. package/dist/Timestamp/formatInstant.js +7 -2
  422. package/dist/Timestamp/tooltipEntries.d.ts +17 -2
  423. package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
  424. package/dist/Timestamp/tooltipEntries.js +4 -2
  425. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  426. package/dist/Toast/ToastViewport.js +61 -9
  427. package/dist/ToggleButton/ToggleButton.d.ts +1 -1
  428. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  429. package/dist/ToggleButton/ToggleButton.js +4 -2
  430. package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
  431. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  432. package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
  433. package/dist/Token/Token.d.ts +6 -28
  434. package/dist/Token/Token.d.ts.map +1 -1
  435. package/dist/Token/Token.js +69 -58
  436. package/dist/Token/TokenLink.d.ts +62 -0
  437. package/dist/Token/TokenLink.d.ts.map +1 -0
  438. package/dist/Token/TokenLink.js +76 -0
  439. package/dist/Token/index.d.ts +27 -1
  440. package/dist/Token/index.d.ts.map +1 -1
  441. package/dist/Token/index.js +14 -0
  442. package/dist/Tokenizer/Tokenizer.d.ts +1 -1
  443. package/dist/Tokenizer/Tokenizer.js +1 -1
  444. package/dist/Toolbar/Toolbar.d.ts +1 -1
  445. package/dist/Toolbar/Toolbar.js +1 -1
  446. package/dist/Tooltip/Tooltip.d.ts +1 -1
  447. package/dist/Tooltip/Tooltip.js +1 -1
  448. package/dist/TopNav/TopNav.d.ts +1 -1
  449. package/dist/TopNav/TopNav.d.ts.map +1 -1
  450. package/dist/TopNav/TopNav.js +7 -6
  451. package/dist/TopNav/TopNavHeading.d.ts +2 -8
  452. package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
  453. package/dist/TopNav/TopNavHeading.js +8 -10
  454. package/dist/TopNav/TopNavItem.d.ts +1 -1
  455. package/dist/TopNav/TopNavItem.js +1 -1
  456. package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
  457. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  458. package/dist/TopNav/TopNavMegaMenu.js +27 -16
  459. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  460. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
  461. package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
  462. package/dist/TopNav/TopNavMegaMenuItem.js +1 -1
  463. package/dist/TopNav/TopNavMenu.d.ts +1 -1
  464. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  465. package/dist/TopNav/TopNavMenu.js +5 -4
  466. package/dist/TreeList/TreeList.d.ts +1 -1
  467. package/dist/TreeList/TreeList.js +1 -1
  468. package/dist/TreeList/TreeListBranches.js +1 -1
  469. package/dist/TreeList/TreeListItem.d.ts +1 -1
  470. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  471. package/dist/TreeList/TreeListItem.js +4 -3
  472. package/dist/TreeList/TreeListTypes.d.ts +1 -17
  473. package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
  474. package/dist/TreeList/index.d.ts +18 -1
  475. package/dist/TreeList/index.d.ts.map +1 -1
  476. package/dist/TreeList/index.js +14 -0
  477. package/dist/Typeahead/BaseTypeahead.d.ts +10 -1
  478. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  479. package/dist/Typeahead/BaseTypeahead.js +3 -1
  480. package/dist/Typeahead/Typeahead.d.ts +1 -1
  481. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  482. package/dist/Typeahead/Typeahead.js +9 -2
  483. package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
  484. package/dist/Typeahead/TypeaheadItem.js +1 -1
  485. package/dist/VStack/VStack.d.ts +1 -1
  486. package/dist/VStack/VStack.js +1 -1
  487. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  488. package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
  489. package/dist/astryx.css +116 -37
  490. package/dist/astryx.umd.js +50 -54
  491. package/dist/astryx.umd.js.map +4 -4
  492. package/dist/hooks/containerReveal.pool.stylex.d.ts +303 -0
  493. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -0
  494. package/dist/hooks/containerReveal.pool.stylex.js +292 -0
  495. package/dist/hooks/index.d.ts +2 -0
  496. package/dist/hooks/index.d.ts.map +1 -1
  497. package/dist/hooks/index.js +2 -1
  498. package/dist/hooks/useContainerReveal.d.ts +83 -0
  499. package/dist/hooks/useContainerReveal.d.ts.map +1 -0
  500. package/dist/hooks/useContainerReveal.js +123 -0
  501. package/dist/hooks/useGridFocus.d.ts +8 -6
  502. package/dist/hooks/useGridFocus.d.ts.map +1 -1
  503. package/dist/hooks/useInputContainer.d.ts.map +1 -1
  504. package/dist/hooks/useInputContainer.js +29 -1
  505. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  506. package/dist/hooks/useInputStatusIcon.js +11 -0
  507. package/dist/hooks/useKeyboardHint.d.ts +2 -2
  508. package/dist/hooks/useKeyboardHint.d.ts.map +1 -1
  509. package/dist/hooks/useKeyboardHint.js +5 -3
  510. package/dist/hooks/useListFocus.d.ts +8 -7
  511. package/dist/hooks/useListFocus.d.ts.map +1 -1
  512. package/dist/hooks/useLongPress.d.ts.map +1 -1
  513. package/dist/hooks/useLongPress.js +12 -2
  514. package/dist/hooks/useTreeFocus.d.ts.map +1 -1
  515. package/dist/hooks/useTreeFocus.js +13 -2
  516. package/dist/i18n/InternationalizationProvider.d.ts +6 -0
  517. package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
  518. package/dist/i18n/useDirection.d.ts.map +1 -1
  519. package/dist/i18n/useDirection.js +6 -3
  520. package/dist/index.d.ts +2 -1
  521. package/dist/index.d.ts.map +1 -1
  522. package/dist/index.js +3 -3
  523. package/dist/theme/Theme.d.ts.map +1 -1
  524. package/dist/theme/Theme.js +2 -7
  525. package/dist/theme/contrast.d.ts +45 -0
  526. package/dist/theme/contrast.d.ts.map +1 -0
  527. package/dist/theme/contrast.js +88 -0
  528. package/dist/theme/defineTheme.d.ts +9 -3
  529. package/dist/theme/defineTheme.d.ts.map +1 -1
  530. package/dist/theme/defineTheme.js +6 -4
  531. package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
  532. package/dist/theme/derivedVarRegistry.js +0 -13
  533. package/dist/theme/expandColorScale.d.ts +32 -3
  534. package/dist/theme/expandColorScale.d.ts.map +1 -1
  535. package/dist/theme/expandColorScale.js +102 -13
  536. package/dist/theme/generateThemeRules.d.ts +0 -6
  537. package/dist/theme/generateThemeRules.d.ts.map +1 -1
  538. package/dist/theme/generateThemeRules.js +0 -15
  539. package/dist/theme/index.d.ts +9 -7
  540. package/dist/theme/index.d.ts.map +1 -1
  541. package/dist/theme/index.js +4 -3
  542. package/dist/theme/themeRegistry.d.ts +32 -0
  543. package/dist/theme/themeRegistry.d.ts.map +1 -0
  544. package/dist/theme/themeRegistry.js +49 -0
  545. package/dist/theme/tokens.stylex.d.ts +0 -17
  546. package/dist/theme/tokens.stylex.d.ts.map +1 -1
  547. package/dist/theme/tokens.stylex.js +0 -22
  548. package/dist/theme/types.d.ts +10 -2
  549. package/dist/theme/types.d.ts.map +1 -1
  550. package/dist/theme/useTheme.d.ts +9 -0
  551. package/dist/theme/useTheme.d.ts.map +1 -1
  552. package/dist/theme/useTheme.js +82 -27
  553. package/dist/utils/rtlStyles.d.ts +23 -2
  554. package/dist/utils/rtlStyles.d.ts.map +1 -1
  555. package/dist/utils/rtlStyles.js +28 -3
  556. package/groups.doc.mjs +2 -2
  557. package/locales/en.json +124 -0
  558. package/locales/pseudo.json +93 -0
  559. package/package.json +9 -13
  560. package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
  561. package/src/AlertDialog/AlertDialog.tsx +1 -1
  562. package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
  563. package/src/AppShell/AppShell.doc.mjs +3 -3
  564. package/src/AppShell/AppShell.test.tsx +55 -0
  565. package/src/AppShell/AppShell.tsx +27 -22
  566. package/src/AppShell/index.ts +20 -1
  567. package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
  568. package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
  569. package/src/AspectRatio/AspectRatio.tsx +1 -1
  570. package/src/Avatar/Avatar.doc.mjs +4 -15
  571. package/src/Avatar/Avatar.test.tsx +33 -8
  572. package/src/Avatar/Avatar.tsx +58 -25
  573. package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
  574. package/src/Avatar/AvatarStatusDot.tsx +2 -27
  575. package/src/Avatar/index.ts +26 -1
  576. package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
  577. package/src/AvatarGroup/AvatarGroup.test.tsx +21 -1
  578. package/src/AvatarGroup/AvatarGroup.tsx +3 -7
  579. package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
  580. package/src/AvatarGroup/AvatarGroupOverflow.tsx +5 -3
  581. package/src/Badge/Badge.doc.mjs +3 -3
  582. package/src/Badge/Badge.tsx +2 -31
  583. package/src/Badge/index.ts +32 -6
  584. package/src/Banner/Banner.doc.mjs +3 -3
  585. package/src/Banner/Banner.tsx +8 -45
  586. package/src/Banner/index.ts +39 -7
  587. package/src/Blockquote/Blockquote.doc.mjs +3 -3
  588. package/src/Blockquote/Blockquote.tsx +1 -1
  589. package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
  590. package/src/Breadcrumbs/BreadcrumbItem.tsx +5 -3
  591. package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
  592. package/src/Breadcrumbs/Breadcrumbs.test.tsx +1 -1
  593. package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
  594. package/src/Breadcrumbs/index.ts +19 -5
  595. package/src/Button/Button.doc.mjs +3 -3
  596. package/src/Button/Button.test.tsx +16 -0
  597. package/src/Button/Button.tsx +6 -23
  598. package/src/Button/index.ts +22 -7
  599. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
  600. package/src/ButtonGroup/ButtonGroup.tsx +1 -1
  601. package/src/Calendar/Calendar.doc.mjs +3 -3
  602. package/src/Calendar/Calendar.test.tsx +22 -6
  603. package/src/Calendar/Calendar.tsx +1 -1
  604. package/src/Calendar/index.ts +1 -6
  605. package/src/Calendar/styles.ts +2 -2
  606. package/src/Calendar/utils.ts +0 -11
  607. package/src/Card/Card.doc.mjs +3 -3
  608. package/src/Card/Card.tsx +1 -1
  609. package/src/Carousel/Carousel.doc.mjs +10 -3
  610. package/src/Carousel/Carousel.test.tsx +232 -1
  611. package/src/Carousel/Carousel.tsx +154 -27
  612. package/src/Carousel/index.ts +1 -1
  613. package/src/Center/Center.doc.mjs +41 -3
  614. package/src/Center/Center.test.tsx +75 -0
  615. package/src/Center/Center.tsx +38 -3
  616. package/src/Chat/Chat.doc.mjs +3 -3
  617. package/src/Chat/ChatComposer.doc.mjs +1 -1
  618. package/src/Chat/ChatComposer.tsx +5 -5
  619. package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
  620. package/src/Chat/ChatComposerDrawer.tsx +5 -5
  621. package/src/Chat/ChatComposerInput.doc.mjs +1 -1
  622. package/src/Chat/ChatComposerInput.tsx +1 -1
  623. package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
  624. package/src/Chat/ChatDictationButton.doc.mjs +3 -3
  625. package/src/Chat/ChatDictationButton.tsx +1 -1
  626. package/src/Chat/ChatLayout.doc.mjs +1 -1
  627. package/src/Chat/ChatLayout.test.tsx +57 -0
  628. package/src/Chat/ChatLayout.tsx +23 -2
  629. package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
  630. package/src/Chat/ChatLayoutScrollButton.tsx +1 -1
  631. package/src/Chat/ChatMessage.doc.mjs +1 -1
  632. package/src/Chat/ChatMessage.tsx +1 -1
  633. package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
  634. package/src/Chat/ChatMessageBubble.tsx +1 -1
  635. package/src/Chat/ChatMessageList.doc.mjs +1 -1
  636. package/src/Chat/ChatMessageList.tsx +1 -1
  637. package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
  638. package/src/Chat/ChatSendButton.doc.mjs +1 -1
  639. package/src/Chat/ChatSendButton.tsx +5 -3
  640. package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
  641. package/src/Chat/ChatSystemMessage.tsx +1 -1
  642. package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
  643. package/src/Chat/ChatTokenizedText.tsx +1 -1
  644. package/src/Chat/ChatToolCalls.doc.mjs +3 -3
  645. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  646. package/src/CheckboxInput/CheckboxInput.test.tsx +56 -0
  647. package/src/CheckboxInput/CheckboxInput.tsx +18 -3
  648. package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
  649. package/src/CheckboxList/CheckboxList.test.tsx +94 -3
  650. package/src/CheckboxList/CheckboxList.tsx +1 -1
  651. package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
  652. package/src/CheckboxList/CheckboxListItem.tsx +18 -11
  653. package/src/Citation/Citation.doc.mjs +2 -2
  654. package/src/Citation/Citation.tsx +1 -1
  655. package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
  656. package/src/ClickableCard/ClickableCard.tsx +3 -3
  657. package/src/Code/Code.tsx +2 -2
  658. package/src/CodeBlock/Code.doc.mjs +1 -1
  659. package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
  660. package/src/CodeBlock/CodeBlock.test.tsx +17 -0
  661. package/src/CodeBlock/CodeBlock.tsx +2 -2
  662. package/src/Collapsible/Collapsible.doc.mjs +3 -3
  663. package/src/Collapsible/Collapsible.tsx +3 -3
  664. package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
  665. package/src/Collapsible/CollapsibleGroup.tsx +1 -1
  666. package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
  667. package/src/Collapsible/useCollapsible.doc.mjs +2 -2
  668. package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
  669. package/src/CommandPalette/CommandPalette.tsx +1 -1
  670. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
  671. package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
  672. package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
  673. package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
  674. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
  675. package/src/CommandPalette/CommandPaletteGroup.test.tsx +6 -2
  676. package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
  677. package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
  678. package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
  679. package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
  680. package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
  681. package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
  682. package/src/CommandPalette/CommandPaletteList.tsx +1 -1
  683. package/src/ComplexSelector/ComplexSelector.doc.mjs +220 -0
  684. package/src/ComplexSelector/ComplexSelector.test.tsx +156 -0
  685. package/src/ComplexSelector/ComplexSelector.tsx +429 -0
  686. package/src/ComplexSelector/index.ts +17 -0
  687. package/src/ContextMenu/ContextMenu.doc.mjs +3 -3
  688. package/src/ContextMenu/ContextMenu.test.tsx +17 -2
  689. package/src/ContextMenu/ContextMenu.tsx +27 -6
  690. package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
  691. package/src/DateInput/DateInput.doc.mjs +17 -3
  692. package/src/DateInput/DateInput.test.tsx +62 -3
  693. package/src/DateInput/DateInput.tsx +18 -2
  694. package/src/DateRangeInput/DateRangeInput.doc.mjs +10 -2
  695. package/src/DateRangeInput/DateRangeInput.test.tsx +73 -2
  696. package/src/DateRangeInput/DateRangeInput.tsx +18 -2
  697. package/src/DateTimeInput/DateTimeInput.doc.mjs +17 -3
  698. package/src/DateTimeInput/DateTimeInput.test.tsx +62 -2
  699. package/src/DateTimeInput/DateTimeInput.tsx +18 -2
  700. package/src/Dialog/Dialog.doc.mjs +7 -5
  701. package/src/Dialog/Dialog.test.tsx +46 -3
  702. package/src/Dialog/Dialog.tsx +61 -44
  703. package/src/Dialog/DialogHeader.doc.mjs +1 -1
  704. package/src/Dialog/DialogHeader.tsx +1 -1
  705. package/src/Dialog/index.ts +18 -1
  706. package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
  707. package/src/Divider/Divider.doc.mjs +3 -3
  708. package/src/Divider/Divider.tsx +2 -19
  709. package/src/Divider/index.ts +19 -5
  710. package/src/DropdownMenu/DropdownMenu.doc.mjs +20 -5
  711. package/src/DropdownMenu/DropdownMenu.test.tsx +122 -0
  712. package/src/DropdownMenu/DropdownMenu.tsx +31 -20
  713. package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
  714. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
  715. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +1 -1
  716. package/src/DropdownMenu/DropdownMenuItem.tsx +1 -1
  717. package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +5 -13
  718. package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +9 -10
  719. package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
  720. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +11 -2
  721. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +84 -2
  722. package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
  723. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +46 -1
  724. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +24 -8
  725. package/src/DropdownMenu/menuItemHover.ts +1 -0
  726. package/src/DropdownMenu/renderDropdownItems.tsx +14 -2
  727. package/src/EmptyState/EmptyState.doc.mjs +3 -3
  728. package/src/EmptyState/EmptyState.tsx +1 -1
  729. package/src/Field/Field.doc.mjs +7 -3
  730. package/src/Field/Field.tsx +1 -1
  731. package/src/Field/FieldLabel.doc.mjs +1 -1
  732. package/src/Field/FieldLabel.test.tsx +103 -0
  733. package/src/Field/FieldLabel.tsx +61 -5
  734. package/src/FieldStatus/FieldStatus.doc.mjs +3 -2
  735. package/src/FieldStatus/FieldStatus.test.tsx +61 -0
  736. package/src/FieldStatus/FieldStatus.tsx +16 -23
  737. package/src/FieldStatus/index.ts +20 -5
  738. package/src/FileInput/FileInput.doc.mjs +3 -3
  739. package/src/FileInput/FileInput.tsx +1 -1
  740. package/src/FormLayout/FormLayout.doc.mjs +3 -3
  741. package/src/FormLayout/FormLayout.tsx +2 -5
  742. package/src/Grid/Grid.doc.mjs +3 -8
  743. package/src/Grid/Grid.tsx +1 -25
  744. package/src/Grid/GridSpan.doc.mjs +1 -1
  745. package/src/Grid/GridSpan.tsx +1 -1
  746. package/src/HStack/HStack.tsx +1 -1
  747. package/src/Heading/Heading.tsx +4 -3
  748. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  749. package/src/HoverCard/HoverCard.tsx +1 -1
  750. package/src/HoverCard/useHoverCard.doc.mjs +2 -2
  751. package/src/Icon/Icon.doc.mjs +7 -6
  752. package/src/Icon/Icon.test.tsx +23 -0
  753. package/src/Icon/Icon.tsx +4 -2
  754. package/src/Icon/defaultIcons.tsx +14 -0
  755. package/src/Icon/globalIconRegistry.test.tsx +87 -1
  756. package/src/Icon/globalIconRegistry.tsx +111 -9
  757. package/src/Icon/index.ts +9 -7
  758. package/src/Icon/useIcon.ts +23 -0
  759. package/src/IconButton/IconButton.doc.mjs +2 -2
  760. package/src/IconButton/IconButton.tsx +1 -1
  761. package/src/InputGroup/InputGroup.doc.mjs +2 -2
  762. package/src/InputGroup/InputGroup.tsx +1 -1
  763. package/src/InputGroup/InputGroupText.doc.mjs +1 -1
  764. package/src/InputGroup/InputGroupText.tsx +1 -1
  765. package/src/Item/Item.doc.mjs +8 -3
  766. package/src/Item/Item.test.tsx +88 -0
  767. package/src/Item/Item.tsx +58 -12
  768. package/src/Kbd/Kbd.doc.mjs +3 -3
  769. package/src/Kbd/Kbd.tsx +1 -1
  770. package/src/Layer/Layer.doc.mjs +2 -2
  771. package/src/Layer/useLayer.doc.mjs +2 -2
  772. package/src/Layout/Layout.doc.mjs +3 -3
  773. package/src/Layout/Layout.tsx +1 -1
  774. package/src/Layout/LayoutContent.doc.mjs +1 -1
  775. package/src/Layout/LayoutContent.tsx +1 -1
  776. package/src/Layout/LayoutFooter.doc.mjs +1 -1
  777. package/src/Layout/LayoutFooter.tsx +1 -1
  778. package/src/Layout/LayoutHeader.doc.mjs +1 -1
  779. package/src/Layout/LayoutHeader.tsx +1 -1
  780. package/src/Layout/LayoutPanel.doc.mjs +1 -1
  781. package/src/Layout/LayoutPanel.tsx +1 -1
  782. package/src/Lightbox/Lightbox.doc.mjs +6 -6
  783. package/src/Lightbox/Lightbox.test.tsx +211 -0
  784. package/src/Lightbox/Lightbox.tsx +152 -60
  785. package/src/Link/Link.doc.mjs +3 -3
  786. package/src/Link/Link.tsx +1 -1
  787. package/src/Link/LinkProvider.doc.mjs +2 -2
  788. package/src/Link/LinkProvider.tsx +2 -2
  789. package/src/List/List.doc.mjs +3 -3
  790. package/src/List/List.tsx +1 -1
  791. package/src/List/ListItem.doc.mjs +13 -1
  792. package/src/List/ListItem.tsx +14 -1
  793. package/src/Markdown/Markdown.doc.mjs +81 -1
  794. package/src/Markdown/Markdown.test.tsx +92 -0
  795. package/src/Markdown/Markdown.tsx +96 -68
  796. package/src/Markdown/parser.perf.test.ts +47 -35
  797. package/src/MetadataList/MetadataList.doc.mjs +3 -3
  798. package/src/MetadataList/MetadataList.test.tsx +82 -0
  799. package/src/MetadataList/MetadataList.tsx +45 -20
  800. package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
  801. package/src/MetadataList/MetadataListItem.tsx +1 -1
  802. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  803. package/src/MobileNav/MobileNav.tsx +4 -4
  804. package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
  805. package/src/MoreMenu/MoreMenu.tsx +3 -3
  806. package/src/MultiSelector/MultiSelector.doc.mjs +35 -10
  807. package/src/MultiSelector/MultiSelector.test.tsx +303 -3
  808. package/src/MultiSelector/MultiSelector.tsx +223 -58
  809. package/src/NavIcon/NavIcon.doc.mjs +3 -3
  810. package/src/NavIcon/NavIcon.tsx +1 -1
  811. package/src/NavMenu/NavHeadingMenu.test.tsx +0 -16
  812. package/src/NavMenu/NavMenu.doc.mjs +2 -2
  813. package/src/NavMenu/index.ts +0 -4
  814. package/src/NumberInput/NumberInput.doc.mjs +3 -6
  815. package/src/NumberInput/NumberInput.test.tsx +38 -3
  816. package/src/NumberInput/NumberInput.tsx +24 -1
  817. package/src/Outline/Outline.doc.mjs +3 -3
  818. package/src/Outline/Outline.tsx +1 -1
  819. package/src/OverflowList/OverflowList.doc.mjs +3 -3
  820. package/src/OverflowList/OverflowList.tsx +1 -1
  821. package/src/Overlay/Overlay.doc.mjs +2 -2
  822. package/src/Pagination/Pagination.doc.mjs +55 -8
  823. package/src/Pagination/Pagination.test.tsx +582 -0
  824. package/src/Pagination/Pagination.tsx +247 -55
  825. package/src/Pagination/index.ts +22 -1
  826. package/src/Popover/Popover.doc.mjs +31 -3
  827. package/src/Popover/Popover.test.tsx +41 -0
  828. package/src/Popover/Popover.tsx +25 -2
  829. package/src/Popover/usePopover.doc.mjs +2 -2
  830. package/src/Popover/usePopover.tsx +10 -4
  831. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  832. package/src/PowerSearch/PowerSearch.tsx +1 -1
  833. package/src/ProgressBar/ProgressBar.doc.mjs +24 -3
  834. package/src/ProgressBar/ProgressBar.test.tsx +523 -2
  835. package/src/ProgressBar/ProgressBar.tsx +250 -25
  836. package/src/ProgressBar/ProgressBarMarkTooltip.tsx +43 -0
  837. package/src/ProgressBar/index.ts +22 -1
  838. package/src/RadioList/RadioList.doc.mjs +3 -3
  839. package/src/RadioList/RadioList.test.tsx +26 -4
  840. package/src/RadioList/RadioList.tsx +1 -1
  841. package/src/RadioList/RadioListItem.doc.mjs +1 -1
  842. package/src/RadioList/RadioListItem.tsx +9 -2
  843. package/src/Resizable/Resizable.doc.mjs +2 -2
  844. package/src/Resizable/ResizeHandle.test.tsx +52 -3
  845. package/src/Resizable/ResizeHandle.tsx +25 -13
  846. package/src/Resizable/useResizable.doc.mjs +2 -2
  847. package/src/Section/Section.doc.mjs +3 -3
  848. package/src/Section/Section.tsx +2 -20
  849. package/src/Section/index.ts +20 -5
  850. package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
  851. package/src/SegmentedControl/SegmentedControl.test.tsx +28 -0
  852. package/src/SegmentedControl/SegmentedControl.tsx +1 -1
  853. package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
  854. package/src/SegmentedControl/SegmentedControlItem.tsx +21 -3
  855. package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
  856. package/src/SelectableCard/SelectableCard.test.tsx +55 -0
  857. package/src/SelectableCard/SelectableCard.tsx +19 -3
  858. package/src/Selector/Selector.doc.mjs +29 -8
  859. package/src/Selector/Selector.test.tsx +299 -3
  860. package/src/Selector/Selector.tsx +213 -53
  861. package/src/Selector/SelectorOption.doc.mjs +1 -1
  862. package/src/SideNav/SideNav.doc.mjs +3 -3
  863. package/src/SideNav/SideNav.tsx +1 -1
  864. package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
  865. package/src/SideNav/SideNavCollapseButton.tsx +4 -3
  866. package/src/SideNav/SideNavHeading.doc.mjs +1 -1
  867. package/src/SideNav/SideNavHeading.tsx +8 -9
  868. package/src/SideNav/SideNavItem.doc.mjs +1 -1
  869. package/src/SideNav/SideNavItem.tsx +5 -6
  870. package/src/SideNav/SideNavSection.doc.mjs +1 -1
  871. package/src/SideNav/SideNavSection.tsx +1 -1
  872. package/src/Skeleton/Skeleton.doc.mjs +3 -3
  873. package/src/Skeleton/Skeleton.test.tsx +16 -0
  874. package/src/Skeleton/Skeleton.tsx +14 -2
  875. package/src/Slider/Slider.doc.mjs +3 -3
  876. package/src/Slider/Slider.tsx +9 -13
  877. package/src/Spinner/Spinner.doc.mjs +3 -3
  878. package/src/Spinner/Spinner.tsx +1 -1
  879. package/src/Stack/Stack.doc.mjs +113 -3
  880. package/src/Stack/Stack.tsx +1 -1
  881. package/src/Stack/StackItem.tsx +1 -1
  882. package/src/StatusDot/StatusDot.doc.mjs +15 -6
  883. package/src/StatusDot/StatusDot.tsx +2 -22
  884. package/src/StatusDot/index.ts +22 -5
  885. package/src/Switch/Switch.doc.mjs +5 -5
  886. package/src/Switch/Switch.test.tsx +71 -25
  887. package/src/Switch/Switch.tsx +63 -26
  888. package/src/TabList/Tab.doc.mjs +1 -1
  889. package/src/TabList/Tab.tsx +1 -1
  890. package/src/TabList/TabList.doc.mjs +3 -3
  891. package/src/TabList/TabList.test.tsx +21 -18
  892. package/src/TabList/TabList.tsx +1 -1
  893. package/src/TabList/TabMenu.doc.mjs +1 -1
  894. package/src/TabList/TabMenu.tsx +11 -3
  895. package/src/Table/BaseTable.tsx +4 -5
  896. package/src/Table/Table.doc.mjs +5 -5
  897. package/src/Table/Table.test.tsx +27 -49
  898. package/src/Table/Table.tsx +1 -1
  899. package/src/Table/TableCell.doc.mjs +1 -1
  900. package/src/Table/TableCell.tsx +2 -2
  901. package/src/Table/TableHeaderCell.doc.mjs +1 -1
  902. package/src/Table/TableHeaderCell.tsx +2 -2
  903. package/src/Table/TableRow.doc.mjs +1 -1
  904. package/src/Table/TableRow.tsx +1 -1
  905. package/src/Table/index.ts +1 -1
  906. package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +1 -1
  907. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +19 -0
  908. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +30 -11
  909. package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
  910. package/src/Table/plugins/tree/useTableTreeData.tsx +54 -1
  911. package/src/Table/types.ts +0 -9
  912. package/src/Table/useTableColumnResize.doc.mjs +1 -1
  913. package/src/Table/useTableColumnSettings.doc.mjs +1 -1
  914. package/src/Table/useTableFilterState.doc.mjs +1 -1
  915. package/src/Table/useTableFiltering.doc.mjs +1 -1
  916. package/src/Table/useTableGroupedRows.doc.mjs +2 -2
  917. package/src/Table/useTablePagination.doc.mjs +1 -1
  918. package/src/Table/useTableRowExpansion.doc.mjs +57 -4
  919. package/src/Table/useTableRowIndex.doc.mjs +2 -2
  920. package/src/Table/useTableRowStatus.doc.mjs +3 -3
  921. package/src/Table/useTableSelection.doc.mjs +1 -1
  922. package/src/Table/useTableSelectionState.doc.mjs +1 -1
  923. package/src/Table/useTableSortable.doc.mjs +1 -1
  924. package/src/Table/useTableStickyColumns.doc.mjs +1 -1
  925. package/src/Table/useTableTreeData.doc.mjs +10 -1
  926. package/src/Table/useTableTreeState.doc.mjs +1 -1
  927. package/src/Text/Heading.doc.mjs +4 -4
  928. package/src/Text/Text.doc.mjs +4 -4
  929. package/src/Text/Text.test.tsx +42 -0
  930. package/src/Text/Text.tsx +26 -2
  931. package/src/Text/index.ts +32 -6
  932. package/src/TextArea/TextArea.doc.mjs +5 -5
  933. package/src/TextArea/TextArea.test.tsx +112 -7
  934. package/src/TextArea/TextArea.tsx +143 -50
  935. package/src/TextInput/TextInput.doc.mjs +3 -3
  936. package/src/TextInput/TextInput.tsx +1 -1
  937. package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
  938. package/src/Thumbnail/Thumbnail.test.tsx +24 -1
  939. package/src/Thumbnail/Thumbnail.tsx +28 -35
  940. package/src/TimeInput/TimeInput.doc.mjs +3 -3
  941. package/src/TimeInput/TimeInput.tsx +1 -1
  942. package/src/Timestamp/Timestamp.doc.mjs +30 -24
  943. package/src/Timestamp/Timestamp.test.tsx +438 -107
  944. package/src/Timestamp/Timestamp.tsx +167 -103
  945. package/src/Timestamp/TimestampHoverCard.tsx +283 -0
  946. package/src/Timestamp/formatInstant.ts +9 -4
  947. package/src/Timestamp/tooltipEntries.test.ts +9 -0
  948. package/src/Timestamp/tooltipEntries.ts +18 -2
  949. package/src/Toast/Toast.doc.mjs +3 -3
  950. package/src/Toast/ToastViewport.test.tsx +218 -8
  951. package/src/Toast/ToastViewport.tsx +71 -12
  952. package/src/Toast/useToast.doc.mjs +2 -2
  953. package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
  954. package/src/ToggleButton/ToggleButton.test.tsx +24 -0
  955. package/src/ToggleButton/ToggleButton.tsx +20 -2
  956. package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
  957. package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
  958. package/src/Token/Token.doc.mjs +3 -3
  959. package/src/Token/Token.test.tsx +145 -0
  960. package/src/Token/Token.tsx +75 -61
  961. package/src/Token/TokenLink.tsx +107 -0
  962. package/src/Token/index.ts +28 -1
  963. package/src/Tokenizer/Tokenizer.doc.mjs +3 -3
  964. package/src/Tokenizer/Tokenizer.tsx +1 -1
  965. package/src/Toolbar/Toolbar.doc.mjs +3 -3
  966. package/src/Toolbar/Toolbar.tsx +1 -1
  967. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  968. package/src/Tooltip/Tooltip.tsx +1 -1
  969. package/src/Tooltip/useTooltip.doc.mjs +2 -2
  970. package/src/TopNav/TopNav.doc.mjs +3 -3
  971. package/src/TopNav/TopNav.test.tsx +2 -2
  972. package/src/TopNav/TopNav.tsx +2 -4
  973. package/src/TopNav/TopNavHeading.doc.mjs +1 -12
  974. package/src/TopNav/TopNavHeading.tsx +8 -18
  975. package/src/TopNav/TopNavItem.doc.mjs +1 -1
  976. package/src/TopNav/TopNavItem.tsx +1 -1
  977. package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
  978. package/src/TopNav/TopNavMegaMenu.tsx +35 -11
  979. package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
  980. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
  981. package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
  982. package/src/TopNav/TopNavMegaMenuItem.tsx +1 -1
  983. package/src/TopNav/TopNavMenu.doc.mjs +1 -1
  984. package/src/TopNav/TopNavMenu.tsx +5 -4
  985. package/src/TreeList/TreeList.doc.mjs +3 -3
  986. package/src/TreeList/TreeList.test.tsx +10 -6
  987. package/src/TreeList/TreeList.tsx +1 -1
  988. package/src/TreeList/TreeListBranches.tsx +1 -1
  989. package/src/TreeList/TreeListItem.tsx +4 -3
  990. package/src/TreeList/TreeListTypes.ts +1 -18
  991. package/src/TreeList/index.ts +19 -1
  992. package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
  993. package/src/Typeahead/BaseTypeahead.tsx +13 -1
  994. package/src/Typeahead/Typeahead.doc.mjs +3 -3
  995. package/src/Typeahead/Typeahead.test.tsx +62 -0
  996. package/src/Typeahead/Typeahead.tsx +7 -1
  997. package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
  998. package/src/Typeahead/TypeaheadItem.tsx +1 -1
  999. package/src/VStack/VStack.tsx +1 -1
  1000. package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
  1001. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
  1002. package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
  1003. package/src/__tests__/forcedColors.ts +60 -0
  1004. package/src/__tests__/inputWidthContract.test.tsx +8 -1
  1005. package/src/doc-mjs.d.ts +5 -2
  1006. package/src/docPropLiterals.test.ts +1 -1
  1007. package/src/docPropReferences.test.ts +1 -1
  1008. package/src/hooks/containerReveal.pool.stylex.ts +571 -0
  1009. package/src/hooks/index.ts +7 -0
  1010. package/src/hooks/useClickableContainer.doc.mjs +2 -2
  1011. package/src/hooks/useContainerReveal.doc.mjs +75 -0
  1012. package/src/hooks/useContainerReveal.test.tsx +116 -0
  1013. package/src/hooks/useContainerReveal.ts +181 -0
  1014. package/src/hooks/useEntryAnimation.doc.mjs +2 -2
  1015. package/src/hooks/useFocusTrap.doc.mjs +2 -2
  1016. package/src/hooks/useGridFocus.doc.mjs +2 -2
  1017. package/src/hooks/useGridFocus.ts +8 -6
  1018. package/src/hooks/useHotkeys.doc.mjs +2 -2
  1019. package/src/hooks/useImageMode.doc.mjs +2 -2
  1020. package/src/hooks/useImageMode.test.ts +1 -1
  1021. package/src/hooks/useInputContainer.doc.mjs +2 -2
  1022. package/src/hooks/useInputContainer.test.tsx +180 -0
  1023. package/src/hooks/useInputContainer.ts +36 -1
  1024. package/src/hooks/useInputStatusIcon.test.tsx +59 -0
  1025. package/src/hooks/useInputStatusIcon.tsx +12 -1
  1026. package/src/hooks/useKeyboardHint.doc.mjs +2 -2
  1027. package/src/hooks/useKeyboardHint.test.tsx +22 -0
  1028. package/src/hooks/useKeyboardHint.tsx +7 -3
  1029. package/src/hooks/useListFocus.doc.mjs +2 -2
  1030. package/src/hooks/useListFocus.ts +8 -7
  1031. package/src/hooks/useLongPress.test.tsx +18 -0
  1032. package/src/hooks/useLongPress.ts +12 -2
  1033. package/src/hooks/useMediaQuery.doc.mjs +2 -2
  1034. package/src/hooks/useOverflow.doc.mjs +2 -2
  1035. package/src/hooks/useScrollLock.doc.mjs +2 -2
  1036. package/src/hooks/useScrollOverflow.doc.mjs +2 -2
  1037. package/src/hooks/useStreamingText.doc.mjs +2 -2
  1038. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  1039. package/src/hooks/useTreeFocus.test.tsx +53 -1
  1040. package/src/hooks/useTreeFocus.ts +13 -2
  1041. package/src/i18n/InternationalizationProvider.doc.mjs +14 -2
  1042. package/src/i18n/InternationalizationProvider.tsx +6 -0
  1043. package/src/i18n/useDirection.ts +6 -3
  1044. package/src/i18n/useTranslator.doc.mjs +2 -2
  1045. package/src/index.ts +2 -18
  1046. package/src/theme/MediaTheme.doc.mjs +2 -2
  1047. package/src/theme/SyntaxTheme.doc.mjs +2 -2
  1048. package/src/theme/Theme.doc.mjs +2 -2
  1049. package/src/theme/Theme.tsx +3 -7
  1050. package/src/theme/contrast.test.ts +94 -0
  1051. package/src/theme/contrast.ts +99 -0
  1052. package/src/theme/defineTheme.test.ts +29 -30
  1053. package/src/theme/defineTheme.ts +11 -5
  1054. package/src/theme/derivedVarRegistry.test.ts +0 -1
  1055. package/src/theme/derivedVarRegistry.ts +0 -6
  1056. package/src/theme/expandColorScale.test.ts +401 -1
  1057. package/src/theme/expandColorScale.ts +143 -19
  1058. package/src/theme/generateThemeRules.test.ts +20 -20
  1059. package/src/theme/generateThemeRules.ts +0 -15
  1060. package/src/theme/index.ts +11 -13
  1061. package/src/theme/themeRegistry.test.ts +59 -0
  1062. package/src/theme/themeRegistry.ts +53 -0
  1063. package/src/theme/tokens.stylex.ts +0 -19
  1064. package/src/theme/types.ts +14 -13
  1065. package/src/theme/useTheme.doc.mjs +2 -2
  1066. package/src/theme/useTheme.test.tsx +48 -3
  1067. package/src/theme/useTheme.ts +100 -29
  1068. package/src/utils/rtlStyles.ts +24 -2
  1069. package/dist/NavMenu/NavMenuItem.d.ts +0 -13
  1070. package/dist/NavMenu/NavMenuItem.d.ts.map +0 -1
  1071. package/dist/NavMenu/NavMenuItem.js +0 -16
  1072. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +0 -9
  1073. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +0 -1
  1074. package/dist/Thumbnail/thumbnail.markers.stylex.js +0 -14
  1075. package/dist/authoring/doc.d.ts +0 -145
  1076. package/dist/authoring/doc.d.ts.map +0 -1
  1077. package/dist/authoring/doc.js +0 -100
  1078. package/dist/authoring/index.d.ts +0 -29
  1079. package/dist/authoring/index.d.ts.map +0 -1
  1080. package/dist/authoring/index.js +0 -28
  1081. package/dist/authoring/integration.d.ts +0 -35
  1082. package/dist/authoring/integration.d.ts.map +0 -1
  1083. package/dist/authoring/integration.js +0 -30
  1084. package/dist/authoring/template.d.ts +0 -66
  1085. package/dist/authoring/template.d.ts.map +0 -1
  1086. package/dist/authoring/template.js +0 -55
  1087. package/dist/config.d.ts +0 -80
  1088. package/dist/config.d.ts.map +0 -1
  1089. package/dist/config.js +0 -40
  1090. package/dist/docs-types.d.ts +0 -969
  1091. package/dist/docs-types.d.ts.map +0 -1
  1092. package/dist/docs-types.js +0 -1
  1093. package/src/NavMenu/NavMenuItem.tsx +0 -19
  1094. package/src/Thumbnail/thumbnail.markers.stylex.ts +0 -12
  1095. package/src/authoring/doc.ts +0 -164
  1096. package/src/authoring/index.test.ts +0 -52
  1097. package/src/authoring/index.ts +0 -50
  1098. package/src/authoring/integration.ts +0 -42
  1099. package/src/authoring/template.ts +0 -74
  1100. package/src/config.test.ts +0 -16
  1101. package/src/config.ts +0 -92
  1102. package/src/docs-types.ts +0 -1108
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'ChatComposerTokenElement',
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'ChatDictationButton',
@@ -65,7 +65,7 @@ export const docs = {
65
65
 
66
66
  };
67
67
 
68
- /** @type {import('../docs-types').TranslationDoc} */
68
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
69
69
  export const docsZh = {
70
70
  usage: {
71
71
  description:
@@ -87,7 +87,7 @@ export const docsZh = {
87
87
  },
88
88
  };
89
89
 
90
- /** @type {import('../docs-types').TranslationDoc} */
90
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
91
91
  export const docsDense = {
92
92
  description: 'mic toggle btn for voice input in chat composer; idle=mic icon, listening=freq bars; pairs w/ useChatDictation',
93
93
  usage: {
@@ -15,7 +15,7 @@
15
15
  *
16
16
  * SYNC: When modified, update:
17
17
  * - /packages/core/src/Chat/index.ts (exports)
18
- * - /packages/cli/templates/blocks/components/ChatDictationButton/ (block examples)
18
+ * - /packages/cli/assets/templates/blocks/components/ChatDictationButton/ (block examples)
19
19
  */
20
20
 
21
21
  import React from 'react';
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'ChatLayout',
@@ -103,6 +103,63 @@ describe('ChatLayout', () => {
103
103
  });
104
104
  });
105
105
 
106
+ // ---------------------------------------------------------------------------
107
+ // Self-scroll layout contract (#2573)
108
+ //
109
+ // jsdom has no layout, so these assert the class-level CSS intent: the root
110
+ // must be a flex column whose message area flexes (grow, no shrink) instead
111
+ // of forcing minHeight: 100%. With minHeight: 100% the in-flow sticky dock
112
+ // added its full height on top of the message area, so the root always
113
+ // overflowed by exactly the dock height (phantom scrollbar). Real-layout
114
+ // geometry was verified in a browser; see the PR for measurements.
115
+ // ---------------------------------------------------------------------------
116
+
117
+ describe('ChatLayout — self-scroll layout contract (#2573)', () => {
118
+ it('root is a flex column so the dock height is part of the 100%', () => {
119
+ render(
120
+ <ChatLayout composer={<div>composer</div>} data-testid="layout">
121
+ <div>msg</div>
122
+ </ChatLayout>,
123
+ );
124
+ const root = screen.getByTestId('layout');
125
+ expect(root).toHaveStyle({display: 'flex', flexDirection: 'column'});
126
+ });
127
+
128
+ it('message area flexes to fill leftover space instead of minHeight: 100%', () => {
129
+ render(
130
+ <ChatLayout composer={<div>composer</div>} data-testid="layout">
131
+ <div>msg</div>
132
+ </ChatLayout>,
133
+ );
134
+ const messageArea = screen.getByTestId('layout')
135
+ .firstElementChild as HTMLElement;
136
+ expect(messageArea).toHaveStyle({flexGrow: '1', flexShrink: '0'});
137
+ // minHeight: 100% is the phantom-scrollbar bug — it must not come back.
138
+ expect(getComputedStyle(messageArea).minHeight).not.toBe('100%');
139
+ });
140
+
141
+ it('dock is sticky in self-scroll mode and fixed with an external scrollRef', () => {
142
+ const {rerender} = render(
143
+ <ChatLayout composer={<div>composer</div>} data-testid="layout">
144
+ <div>msg</div>
145
+ </ChatLayout>,
146
+ );
147
+ const dock = screen.getByTestId('layout').lastElementChild as HTMLElement;
148
+ expect(dock).toHaveStyle({position: 'sticky'});
149
+
150
+ const scrollRef = {current: document.documentElement};
151
+ rerender(
152
+ <ChatLayout
153
+ composer={<div>composer</div>}
154
+ data-testid="layout"
155
+ scrollRef={scrollRef}>
156
+ <div>msg</div>
157
+ </ChatLayout>,
158
+ );
159
+ expect(dock).toHaveStyle({position: 'fixed'});
160
+ });
161
+ });
162
+
106
163
  // ---------------------------------------------------------------------------
107
164
  // First-fill scroll positioning
108
165
  //
@@ -12,6 +12,13 @@
12
12
  * Provides the scroll container ref and content ref, renders the
13
13
  * scroll-to-bottom button, frosted glass dock, and message area.
14
14
  *
15
+ * Layout contract: the root is a flex column. The message area flexes
16
+ * (grow 1, shrink 0) to fill the space the dock doesn't need; the sticky
17
+ * dock keeps its natural height in flow. Short content therefore fills
18
+ * exactly 100% with no overflow, and long content grows past the root so
19
+ * self-scroll mode scrolls (#2573). In external-scrollRef mode the dock
20
+ * is position: fixed (out of flow) and the message area fills the root.
21
+ *
15
22
  * Density (compact/balanced/spacious) is controlled via a prop with
16
23
  * 'balanced' as the default. No JS measurement or ResizeObserver needed.
17
24
  * The container-type on root enables container queries in child components.
@@ -19,7 +26,7 @@
19
26
  * SYNC: When modified, update these files to stay in sync:
20
27
  * - /packages/core/src/Chat/index.ts (exports)
21
28
  * - /apps/storybook/stories/ChatLayout.stories.tsx
22
- * - /packages/cli/templates/blocks/components/ChatLayout/ (block examples)
29
+ * - /packages/cli/assets/templates/blocks/components/ChatLayout/ (block examples)
23
30
  */
24
31
 
25
32
  import {type ReactNode, useMemo, useRef} from 'react';
@@ -100,6 +107,13 @@ const styles = stylex.create({
100
107
  containerType: 'inline-size',
101
108
  minHeight: 0,
102
109
  flex: 1,
110
+ // Flex column so the sticky dock's natural height is part of the 100%:
111
+ // messageArea flexes to fill the leftover space instead of forcing
112
+ // minHeight: 100% on its own. Without this, the in-flow sticky dock
113
+ // adds its full height on top of the 100% message area and the root
114
+ // always overflows by exactly the dock height (#2573).
115
+ display: 'flex',
116
+ flexDirection: 'column',
103
117
  },
104
118
  rootScrollable: {
105
119
  overflowY: 'auto',
@@ -116,7 +130,11 @@ const styles = stylex.create({
116
130
  display: 'flex',
117
131
  flexDirection: 'column',
118
132
  marginInline: 'auto',
119
- minHeight: '100%',
133
+ // Fill the space the dock doesn't need (grow), but never shrink below
134
+ // content height — long content must overflow the root so it scrolls.
135
+ flexGrow: 1,
136
+ flexShrink: 0,
137
+ flexBasis: 'auto',
120
138
  paddingBlockEnd: spacingVars['--spacing-6'],
121
139
  width: '100%',
122
140
  maxWidth: '100%',
@@ -139,6 +157,9 @@ const styles = stylex.create({
139
157
  zIndex: 0,
140
158
  isolation: 'isolate',
141
159
  pointerEvents: 'none',
160
+ // Keep the sticky dock at its natural height as a flex item.
161
+ // (Inert in fixed mode — position: fixed takes it out of flex layout.)
162
+ flexShrink: 0,
142
163
  },
143
164
  dockContainerFixed: {
144
165
  position: 'fixed',
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'ChatLayoutScrollButton',
@@ -13,7 +13,7 @@
13
13
  *
14
14
  * SYNC: When modified, update:
15
15
  * - /packages/core/src/Chat/index.ts (exports)
16
- * - /packages/cli/templates/blocks/components/ChatLayoutScrollButton/ (block examples)
16
+ * - /packages/cli/assets/templates/blocks/components/ChatLayoutScrollButton/ (block examples)
17
17
  */
18
18
 
19
19
  import React from 'react';
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'ChatMessage',
@@ -16,7 +16,7 @@
16
16
  * SYNC: When modified, update these files to stay in sync:
17
17
  * - /packages/core/src/Chat/index.ts (exports)
18
18
  * - /apps/storybook/stories/Chat.stories.tsx
19
- * - /packages/cli/templates/blocks/components/ChatMessage/ (block examples)
19
+ * - /packages/cli/assets/templates/blocks/components/ChatMessage/ (block examples)
20
20
  */
21
21
 
22
22
  import {type ReactNode, useMemo, useId} from 'react';
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'ChatMessageBubble',
@@ -22,7 +22,7 @@
22
22
  * SYNC: When modified, update these files to stay in sync:
23
23
  * - /packages/core/src/Chat/index.ts (exports)
24
24
  * - /apps/storybook/stories/Chat.stories.tsx
25
- * - /packages/cli/templates/blocks/components/ChatMessageBubble/ (block examples)
25
+ * - /packages/cli/assets/templates/blocks/components/ChatMessageBubble/ (block examples)
26
26
  */
27
27
 
28
28
  import type {ReactNode} from 'react';
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'ChatMessageList',
@@ -19,7 +19,7 @@
19
19
  * SYNC: When modified, update these files to stay in sync:
20
20
  * - /packages/core/src/Chat/index.ts (exports)
21
21
  * - /apps/storybook/stories/Chat.stories.tsx
22
- * - /packages/cli/templates/blocks/components/ChatMessageList/ (block examples)
22
+ * - /packages/cli/assets/templates/blocks/components/ChatMessageList/ (block examples)
23
23
  */
24
24
 
25
25
  import {type ReactNode, useEffect, useMemo, useRef, useTransition} from 'react';
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'ChatMessageMetadata',
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'ChatSendButton',
@@ -20,7 +20,7 @@
20
20
  import React, {type ReactNode} from 'react';
21
21
  import * as stylex from '@stylexjs/stylex';
22
22
  import {Button} from '../Button';
23
- import {getIcon} from '../Icon/globalIconRegistry';
23
+ import {useIcon} from '../Icon';
24
24
  import {useChatComposerContext} from './ChatContext';
25
25
 
26
26
  import type {BaseProps} from '../BaseProps';
@@ -95,6 +95,8 @@ export function ChatSendButton(props: ChatSendButtonProps): ReactNode {
95
95
  } = props;
96
96
 
97
97
  const handleSend = onSend ?? (() => context?.onSubmit(''));
98
+ const defaultStopIcon = useIcon('stop');
99
+ const defaultSendIcon = useIcon('arrowUp');
98
100
 
99
101
  return (
100
102
  <Button
@@ -108,8 +110,8 @@ export function ChatSendButton(props: ChatSendButtonProps): ReactNode {
108
110
  size={size}
109
111
  icon={
110
112
  isStopShown
111
- ? (stopIcon ?? getIcon('stop'))
112
- : (sendIcon ?? getIcon('arrowUp'))
113
+ ? (stopIcon ?? defaultStopIcon)
114
+ : (sendIcon ?? defaultSendIcon)
113
115
  }
114
116
  isIconOnly
115
117
  isDisabled={!isStopShown && isDisabled}
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'ChatSystemMessage',
@@ -16,7 +16,7 @@
16
16
  * SYNC: When modified, update these files to stay in sync:
17
17
  * - /packages/core/src/Chat/index.ts (exports)
18
18
  * - /apps/storybook/stories/Chat.stories.tsx
19
- * - /packages/cli/templates/blocks/components/ChatSystemMessage/ (block examples)
19
+ * - /packages/cli/assets/templates/blocks/components/ChatSystemMessage/ (block examples)
20
20
  */
21
21
 
22
22
  import type {ReactNode} from 'react';
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'ChatTokenizedText',
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * SYNC: When modified, update:
16
16
  * - /packages/core/src/Chat/index.ts
17
- * - /packages/cli/templates/blocks/components/ChatTokenizedText/ (block examples)
17
+ * - /packages/cli/assets/templates/blocks/components/ChatTokenizedText/ (block examples)
18
18
  */
19
19
 
20
20
  import React, {type ReactNode} from 'react';
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'ChatToolCalls',
@@ -73,7 +73,7 @@ export const docs = {
73
73
  ],
74
74
  };
75
75
 
76
- /** @type {import('../docs-types').TranslationDoc} */
76
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
77
77
  export const docsZh = {
78
78
  usage: {
79
79
  description:
@@ -97,7 +97,7 @@ export const docsZh = {
97
97
  },
98
98
  };
99
99
 
100
- /** @type {import('../docs-types').TranslationDoc} */
100
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
101
101
  export const docsDense = {
102
102
  description: 'tool/function call display from LLM response; single=inline, multiple=collapsible summary w/ latest at surface',
103
103
  usage: {
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'CheckboxInput',
@@ -153,7 +153,7 @@ export const docs = {
153
153
  },
154
154
  };
155
155
 
156
- /** @type {import('../docs-types').ComponentDoc} */
156
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
157
157
  export const docsZh = {
158
158
  name: 'CheckboxInput',
159
159
  displayName: 'Checkbox Input',
@@ -211,7 +211,7 @@ export const docsZh = {
211
211
  },
212
212
  };
213
213
 
214
- /** @type {import('../docs-types').TranslationDoc} */
214
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
215
215
  export const docsDense = {
216
216
  description: 'single on/off toggle for settings, terms, and opt-in choices',
217
217
  usage: {
@@ -13,6 +13,7 @@ import {describe, it, expect, vi, beforeEach, afterEach} from 'vitest';
13
13
  import {render, screen, fireEvent, waitFor} from '@testing-library/react';
14
14
  import userEvent from '@testing-library/user-event';
15
15
  import {CheckboxInput} from './CheckboxInput';
16
+ import {getForcedColorsRules} from '../__tests__/forcedColors';
16
17
  import {__resetLiveRegionsForTest} from '../hooks/useAnnounce';
17
18
 
18
19
  afterEach(() => {
@@ -143,6 +144,39 @@ describe('CheckboxInput', () => {
143
144
  expect(checkbox).toHaveAttribute('aria-describedby', description.id);
144
145
  });
145
146
 
147
+ it('toggles when clicking on the description', async () => {
148
+ const user = userEvent.setup();
149
+ const handleChange = vi.fn();
150
+ render(
151
+ <CheckboxInput
152
+ label="Subscribe"
153
+ description="Receive weekly updates"
154
+ value={false}
155
+ onChange={handleChange}
156
+ />,
157
+ );
158
+ await user.click(screen.getByText('Receive weekly updates'));
159
+ expect(handleChange).toHaveBeenCalledWith(true, expect.any(Object));
160
+ });
161
+
162
+ it('does not fold the description into the checkbox accessible name', () => {
163
+ // The description stays a sibling of the <label>, so it must NOT become
164
+ // part of the checkbox's accessible name (which is computed from the
165
+ // associated label). It belongs in the accessible DESCRIPTION only
166
+ // (via aria-describedby) — otherwise screen readers announce it twice.
167
+ render(
168
+ <CheckboxInput
169
+ label="Email notifications"
170
+ description="We'll send weekly digests"
171
+ value={false}
172
+ onChange={() => {}}
173
+ />,
174
+ );
175
+ const checkbox = screen.getByRole('checkbox');
176
+ expect(checkbox).toHaveAccessibleName('Email notifications');
177
+ expect(checkbox).toHaveAccessibleDescription("We'll send weekly digests");
178
+ });
179
+
146
180
  it('is disabled when isDisabled prop is true', () => {
147
181
  render(
148
182
  <CheckboxInput
@@ -543,3 +577,25 @@ describe('CheckboxInput', () => {
543
577
  });
544
578
  });
545
579
  });
580
+
581
+ // jsdom cannot emulate forced-colors rendering, so this asserts that the
582
+ // compiled output includes the forced-colors rule; visual behavior needs
583
+ // manual verification under Windows High Contrast.
584
+ describe('forced colors (WCAG 1.4.11)', () => {
585
+ it('compiles a forced-colors fill so the indeterminate mark survives Windows High Contrast', () => {
586
+ render(
587
+ <CheckboxInput label="All" value="indeterminate" onChange={() => {}} />,
588
+ );
589
+ // The painted indeterminate bar would be stripped to Canvas (invisible);
590
+ // CanvasText keeps it perceivable.
591
+ expect(getForcedColorsRules()).toContain('background-color: canvastext;');
592
+ });
593
+
594
+ it('compiles a forced-colors color so the checkmark survives Windows High Contrast', () => {
595
+ render(<CheckboxInput label="Accept" value={true} onChange={() => {}} />);
596
+ // The check strokes with currentColor; forced colors leaves it the same
597
+ // white as the flattened box, so it needs its own CanvasText color to stay
598
+ // perceivable on the Canvas box.
599
+ expect(getForcedColorsRules()).toContain('color: canvastext;');
600
+ });
601
+ });
@@ -13,7 +13,7 @@
13
13
  * - /packages/core/src/CheckboxInput/CheckboxInput.test.tsx (tests for new/changed behavior)
14
14
  * - /packages/core/src/CheckboxInput/index.ts (exports if types change)
15
15
  * - /apps/storybook/stories/CheckboxInput.stories.tsx (storybook stories)
16
- * - /packages/cli/templates/blocks/components/CheckboxInput/ (showcase blocks)
16
+ * - /packages/cli/assets/templates/blocks/components/CheckboxInput/ (showcase blocks)
17
17
  */
18
18
 
19
19
  import {
@@ -158,14 +158,29 @@ const styles = stylex.create({
158
158
  },
159
159
  checkmark: {
160
160
  display: 'none',
161
- color: colorVars['--color-on-accent'],
161
+ color: {
162
+ default: colorVars['--color-on-accent'],
163
+ // Forced colors (Windows High Contrast) does not reliably force an SVG
164
+ // stroke painted with currentColor, so the check stays the same white as
165
+ // the flattened (Canvas) box fill — a white check on a white box.
166
+ // CanvasText keeps it perceivable on the Canvas box, matching the
167
+ // indeterminate mark (WCAG 1.4.11).
168
+ '@media (forced-colors: active)': 'CanvasText',
169
+ },
162
170
  },
163
171
  checkmarkVisible: {
164
172
  display: 'block',
165
173
  },
166
174
  indeterminateMark: {
167
175
  display: 'none',
168
- backgroundColor: colorVars['--color-on-accent'],
176
+ backgroundColor: {
177
+ default: colorVars['--color-on-accent'],
178
+ // Forced colors (Windows High Contrast) strips painted backgrounds,
179
+ // which would make the indeterminate bar invisible; CanvasText keeps it
180
+ // perceivable on the Canvas box fill (WCAG 1.4.11). The checkmark carries
181
+ // the matching CanvasText treatment on its own style.
182
+ '@media (forced-colors: active)': 'CanvasText',
183
+ },
169
184
  borderRadius: radiusVars['--radius-full'],
170
185
  },
171
186
  indeterminateMarkVisible: {
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'CheckboxList',
@@ -121,7 +121,7 @@ export const docs = {
121
121
  },
122
122
  };
123
123
 
124
- /** @type {import('../docs-types').TranslationDoc} */
124
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
125
125
  export const docsZh = {
126
126
  usage: {
127
127
  description: 'CheckboxList shows a small group of checkboxes so users can turn several options on or off at once. Place it in settings pages, filter panels, or forms where every choice should be visible without scrolling. For a single standalone checkbox (like "I agree to the terms"), use CheckboxInput instead. If only one option can be picked, use RadioList. If the list is long enough to need searching or scrolling, use MultiSelector instead.',
@@ -136,7 +136,7 @@ export const docsZh = {
136
136
  },
137
137
  };
138
138
 
139
- /** @type {import('../docs-types').TranslationDoc} */
139
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
140
140
  export const docsDense = {
141
141
  description:
142
142
  'Checkbox group component for multi-value selection. Collection mode (parent state) + standalone mode (per-item state).',
@@ -154,14 +154,105 @@ describe('CheckboxList', () => {
154
154
  </CheckboxList>,
155
155
  );
156
156
 
157
- // Click the interactive row (invisible-button pattern), which is where the
158
- // composed onClick lives — not the inner checkbox.
159
- await user.click(screen.getByRole('button', {name: 'Option B'}));
157
+ // The row is a pointer-only click surface (no invisible row button — the
158
+ // checkbox is the option's only tab stop). Click the row's label area,
159
+ // where the composed onClick fires — not the inner checkbox.
160
+ expect(
161
+ screen.queryByRole('button', {name: 'Option B'}),
162
+ ).not.toBeInTheDocument();
163
+ // The text also exists in the checkbox's visually hidden <label>; target
164
+ // the row's label <span> to click the row surface.
165
+ await user.click(screen.getByText('Option B', {selector: 'span'}));
160
166
 
161
167
  expect(handleClick).toHaveBeenCalledTimes(1);
162
168
  expect(handleChange).toHaveBeenCalledWith(['a', 'b']);
163
169
  });
164
170
 
171
+ describe('single tab stop per option (WCAG 4.1.2 / APG checkbox pattern)', () => {
172
+ it('renders exactly one focusable control per option — the checkbox, no row button', () => {
173
+ render(
174
+ <CheckboxList label="Preferences" value={['a']} onChange={() => {}}>
175
+ <CheckboxListItem label="Option A" value="a" />
176
+ <CheckboxListItem label="Option B" value="b" />
177
+ </CheckboxList>,
178
+ );
179
+ // No invisible whole-row button duplicating the checkbox's action.
180
+ expect(screen.queryByRole('button')).not.toBeInTheDocument();
181
+ for (const item of screen.getAllByRole('listitem')) {
182
+ const focusables = item.querySelectorAll(
183
+ 'button, a[href], input, select, textarea, [tabindex]:not([tabindex="-1"])',
184
+ );
185
+ expect(focusables).toHaveLength(1);
186
+ expect(focusables[0]).toBe(within(item).getByRole('checkbox'));
187
+ }
188
+ });
189
+
190
+ it('Tab moves directly from one option checkbox to the next', async () => {
191
+ const user = userEvent.setup();
192
+ render(
193
+ <CheckboxList label="Preferences" value={[]} onChange={() => {}}>
194
+ <CheckboxListItem label="Option A" value="a" />
195
+ <CheckboxListItem label="Option B" value="b" />
196
+ </CheckboxList>,
197
+ );
198
+ await user.tab();
199
+ expect(screen.getByRole('checkbox', {name: 'Option A'})).toHaveFocus();
200
+ await user.tab();
201
+ expect(screen.getByRole('checkbox', {name: 'Option B'})).toHaveFocus();
202
+ // No further tab stop inside the list (the row itself is not focusable).
203
+ await user.tab();
204
+ expect(document.body).toHaveFocus();
205
+ });
206
+
207
+ it('clicking the row surface (outside the checkbox) still toggles', async () => {
208
+ const user = userEvent.setup();
209
+ const handleChange = vi.fn();
210
+ render(
211
+ <CheckboxList label="Preferences" value={['a']} onChange={handleChange}>
212
+ <CheckboxListItem label="Option A" value="a" />
213
+ <CheckboxListItem label="Option B" value="b" />
214
+ </CheckboxList>,
215
+ );
216
+ // The text also exists in the checkbox's visually hidden <label>;
217
+ // target the row's label <span> to click the row surface.
218
+ await user.click(screen.getByText('Option B', {selector: 'span'}));
219
+ expect(handleChange).toHaveBeenCalledTimes(1);
220
+ expect(handleChange).toHaveBeenCalledWith(['a', 'b']);
221
+ });
222
+
223
+ it('toggles with Space on the focused checkbox, which reports checked state', async () => {
224
+ const user = userEvent.setup();
225
+ const handleChange = vi.fn();
226
+ render(
227
+ <CheckboxList label="Preferences" value={['a']} onChange={handleChange}>
228
+ <CheckboxListItem label="Option A" value="a" />
229
+ <CheckboxListItem label="Option B" value="b" />
230
+ </CheckboxList>,
231
+ );
232
+ await user.tab();
233
+ // The focused control is the checkbox itself, so its accessible name
234
+ // and checked state are what assistive tech announces on focus.
235
+ const checkboxA = screen.getByRole('checkbox', {name: 'Option A'});
236
+ expect(checkboxA).toHaveFocus();
237
+ expect(checkboxA).toBeChecked();
238
+ await user.keyboard(' ');
239
+ expect(handleChange).toHaveBeenCalledTimes(1);
240
+ expect(handleChange).toHaveBeenCalledWith([]);
241
+ });
242
+
243
+ it('the row itself is not focusable', () => {
244
+ render(
245
+ <CheckboxList label="Preferences" value={[]} onChange={() => {}}>
246
+ <CheckboxListItem label="Option A" value="a" />
247
+ </CheckboxList>,
248
+ );
249
+ const item = screen.getByRole('listitem');
250
+ expect(item).not.toHaveAttribute('tabindex');
251
+ item.focus();
252
+ expect(item).not.toHaveFocus();
253
+ });
254
+ });
255
+
165
256
  it('disables all checkboxes when group isDisabled is true', () => {
166
257
  render(
167
258
  <CheckboxList