@astryxdesign/core 0.2.0 → 0.3.0-canary.5f9896c

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 (1084) 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 +4 -4
  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 +82 -15
  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.js +1 -1
  143. package/dist/DateRangeInput/DateRangeInput.js +1 -1
  144. package/dist/DateTimeInput/DateTimeInput.js +1 -1
  145. package/dist/Dialog/Dialog.d.ts +33 -24
  146. package/dist/Dialog/Dialog.d.ts.map +1 -1
  147. package/dist/Dialog/Dialog.js +47 -31
  148. package/dist/Dialog/DialogHeader.d.ts +1 -1
  149. package/dist/Dialog/DialogHeader.js +1 -1
  150. package/dist/Dialog/index.d.ts +18 -1
  151. package/dist/Dialog/index.d.ts.map +1 -1
  152. package/dist/Dialog/index.js +14 -0
  153. package/dist/Divider/Divider.d.ts +2 -18
  154. package/dist/Divider/Divider.d.ts.map +1 -1
  155. package/dist/Divider/Divider.js +1 -15
  156. package/dist/Divider/index.d.ts +18 -1
  157. package/dist/Divider/index.d.ts.map +1 -1
  158. package/dist/Divider/index.js +14 -0
  159. package/dist/DropdownMenu/DropdownMenu.d.ts +9 -3
  160. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  161. package/dist/DropdownMenu/DropdownMenu.js +23 -19
  162. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
  163. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  164. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
  165. package/dist/DropdownMenu/DropdownMenuItem.d.ts +1 -1
  166. package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
  167. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts +8 -11
  168. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
  169. package/dist/DropdownMenu/DropdownMenuRadioGroup.js +3 -1
  170. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +1 -1
  171. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  172. package/dist/DropdownMenu/DropdownMenuRadioItem.js +6 -2
  173. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
  174. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  175. package/dist/DropdownMenu/DropdownMenuSubMenu.js +14 -6
  176. package/dist/DropdownMenu/menuItemHover.d.ts +1 -0
  177. package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
  178. package/dist/DropdownMenu/menuItemHover.js +1 -0
  179. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  180. package/dist/DropdownMenu/renderDropdownItems.js +6 -4
  181. package/dist/EmptyState/EmptyState.d.ts +1 -1
  182. package/dist/EmptyState/EmptyState.js +1 -1
  183. package/dist/Field/Field.d.ts +1 -1
  184. package/dist/Field/Field.js +1 -1
  185. package/dist/Field/FieldLabel.d.ts +4 -3
  186. package/dist/Field/FieldLabel.d.ts.map +1 -1
  187. package/dist/Field/FieldLabel.js +48 -5
  188. package/dist/FieldStatus/FieldStatus.d.ts +1 -18
  189. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  190. package/dist/FieldStatus/FieldStatus.js +13 -17
  191. package/dist/FieldStatus/index.d.ts +19 -1
  192. package/dist/FieldStatus/index.d.ts.map +1 -1
  193. package/dist/FieldStatus/index.js +14 -0
  194. package/dist/FileInput/FileInput.js +1 -1
  195. package/dist/FormLayout/FormLayout.d.ts +1 -1
  196. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  197. package/dist/FormLayout/FormLayout.js +1 -1
  198. package/dist/Grid/Grid.d.ts +2 -10
  199. package/dist/Grid/Grid.d.ts.map +1 -1
  200. package/dist/Grid/Grid.js +1 -10
  201. package/dist/Grid/GridSpan.d.ts +1 -1
  202. package/dist/Grid/GridSpan.js +1 -1
  203. package/dist/HStack/HStack.d.ts +1 -1
  204. package/dist/HStack/HStack.js +1 -1
  205. package/dist/Heading/Heading.d.ts +2 -2
  206. package/dist/Heading/Heading.d.ts.map +1 -1
  207. package/dist/Heading/Heading.js +5 -4
  208. package/dist/HoverCard/HoverCard.d.ts +1 -1
  209. package/dist/HoverCard/HoverCard.js +1 -1
  210. package/dist/Icon/Icon.d.ts +1 -1
  211. package/dist/Icon/Icon.d.ts.map +1 -1
  212. package/dist/Icon/Icon.js +4 -2
  213. package/dist/Icon/defaultIcons.d.ts.map +1 -1
  214. package/dist/Icon/defaultIcons.js +14 -0
  215. package/dist/Icon/globalIconRegistry.d.ts +48 -6
  216. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  217. package/dist/Icon/globalIconRegistry.js +74 -7
  218. package/dist/Icon/index.d.ts +4 -3
  219. package/dist/Icon/index.d.ts.map +1 -1
  220. package/dist/Icon/index.js +2 -1
  221. package/dist/Icon/useIcon.d.ts +14 -0
  222. package/dist/Icon/useIcon.d.ts.map +1 -0
  223. package/dist/Icon/useIcon.js +21 -0
  224. package/dist/IconButton/IconButton.d.ts +1 -1
  225. package/dist/IconButton/IconButton.js +1 -1
  226. package/dist/InputGroup/InputGroup.d.ts +1 -1
  227. package/dist/InputGroup/InputGroup.js +1 -1
  228. package/dist/InputGroup/InputGroupText.d.ts +1 -1
  229. package/dist/InputGroup/InputGroupText.js +1 -1
  230. package/dist/Item/Item.d.ts +17 -4
  231. package/dist/Item/Item.d.ts.map +1 -1
  232. package/dist/Item/Item.js +32 -7
  233. package/dist/Kbd/Kbd.d.ts +1 -1
  234. package/dist/Kbd/Kbd.js +1 -1
  235. package/dist/Layout/Layout.d.ts +1 -1
  236. package/dist/Layout/Layout.js +1 -1
  237. package/dist/Layout/LayoutContent.d.ts +1 -1
  238. package/dist/Layout/LayoutContent.js +1 -1
  239. package/dist/Layout/LayoutFooter.d.ts +1 -1
  240. package/dist/Layout/LayoutFooter.js +1 -1
  241. package/dist/Layout/LayoutHeader.d.ts +1 -1
  242. package/dist/Layout/LayoutHeader.js +1 -1
  243. package/dist/Layout/LayoutPanel.d.ts +1 -1
  244. package/dist/Layout/LayoutPanel.js +1 -1
  245. package/dist/Lightbox/Lightbox.d.ts +6 -4
  246. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  247. package/dist/Lightbox/Lightbox.js +117 -26
  248. package/dist/Link/Link.d.ts +1 -1
  249. package/dist/Link/Link.js +1 -1
  250. package/dist/Link/LinkProvider.d.ts +2 -2
  251. package/dist/Link/LinkProvider.js +2 -2
  252. package/dist/List/List.d.ts +1 -1
  253. package/dist/List/List.js +1 -1
  254. package/dist/List/ListItem.d.ts +12 -2
  255. package/dist/List/ListItem.d.ts.map +1 -1
  256. package/dist/List/ListItem.js +3 -1
  257. package/dist/Markdown/Markdown.d.ts.map +1 -1
  258. package/dist/Markdown/Markdown.js +35 -13
  259. package/dist/MetadataList/MetadataList.d.ts +2 -2
  260. package/dist/MetadataList/MetadataList.d.ts.map +1 -1
  261. package/dist/MetadataList/MetadataList.js +38 -12
  262. package/dist/MetadataList/MetadataListItem.d.ts +1 -1
  263. package/dist/MetadataList/MetadataListItem.js +1 -1
  264. package/dist/MobileNav/MobileNav.d.ts +1 -1
  265. package/dist/MobileNav/MobileNav.js +1 -1
  266. package/dist/MoreMenu/MoreMenu.d.ts +1 -1
  267. package/dist/MoreMenu/MoreMenu.js +3 -3
  268. package/dist/MultiSelector/MultiSelector.d.ts +13 -4
  269. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  270. package/dist/MultiSelector/MultiSelector.js +118 -24
  271. package/dist/NavIcon/NavIcon.d.ts +1 -1
  272. package/dist/NavIcon/NavIcon.js +1 -1
  273. package/dist/NavMenu/index.d.ts +0 -2
  274. package/dist/NavMenu/index.d.ts.map +1 -1
  275. package/dist/NavMenu/index.js +1 -3
  276. package/dist/NumberInput/NumberInput.d.ts +1 -1
  277. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  278. package/dist/NumberInput/NumberInput.js +16 -5
  279. package/dist/Outline/Outline.js +1 -1
  280. package/dist/OverflowList/OverflowList.d.ts +1 -1
  281. package/dist/OverflowList/OverflowList.js +1 -1
  282. package/dist/Pagination/Pagination.d.ts +26 -21
  283. package/dist/Pagination/Pagination.d.ts.map +1 -1
  284. package/dist/Pagination/Pagination.js +169 -41
  285. package/dist/Pagination/index.d.ts +22 -1
  286. package/dist/Pagination/index.d.ts.map +1 -1
  287. package/dist/Pagination/index.js +14 -0
  288. package/dist/Popover/Popover.d.ts +20 -3
  289. package/dist/Popover/Popover.d.ts.map +1 -1
  290. package/dist/Popover/Popover.js +5 -1
  291. package/dist/Popover/usePopover.d.ts.map +1 -1
  292. package/dist/Popover/usePopover.js +14 -3
  293. package/dist/PowerSearch/PowerSearch.d.ts +1 -1
  294. package/dist/PowerSearch/PowerSearch.js +1 -1
  295. package/dist/ProgressBar/ProgressBar.d.ts +56 -22
  296. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  297. package/dist/ProgressBar/ProgressBar.js +169 -22
  298. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts +27 -0
  299. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts.map +1 -0
  300. package/dist/ProgressBar/ProgressBarMarkTooltip.js +35 -0
  301. package/dist/ProgressBar/index.d.ts +21 -1
  302. package/dist/ProgressBar/index.d.ts.map +1 -1
  303. package/dist/ProgressBar/index.js +14 -0
  304. package/dist/RadioList/RadioList.d.ts +1 -1
  305. package/dist/RadioList/RadioList.js +1 -1
  306. package/dist/RadioList/RadioListItem.d.ts +1 -1
  307. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  308. package/dist/RadioList/RadioListItem.js +2 -2
  309. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  310. package/dist/Resizable/ResizeHandle.js +15 -11
  311. package/dist/Section/Section.d.ts +2 -19
  312. package/dist/Section/Section.d.ts.map +1 -1
  313. package/dist/Section/Section.js +1 -15
  314. package/dist/Section/index.d.ts +19 -1
  315. package/dist/Section/index.d.ts.map +1 -1
  316. package/dist/Section/index.js +14 -0
  317. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  318. package/dist/SegmentedControl/SegmentedControl.js +1 -1
  319. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  320. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  321. package/dist/SegmentedControl/SegmentedControlItem.js +4 -3
  322. package/dist/SelectableCard/SelectableCard.d.ts +4 -3
  323. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  324. package/dist/SelectableCard/SelectableCard.js +15 -3
  325. package/dist/Selector/Selector.d.ts +12 -3
  326. package/dist/Selector/Selector.d.ts.map +1 -1
  327. package/dist/Selector/Selector.js +109 -21
  328. package/dist/SideNav/SideNav.d.ts +1 -1
  329. package/dist/SideNav/SideNav.js +1 -1
  330. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  331. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  332. package/dist/SideNav/SideNavCollapseButton.js +4 -3
  333. package/dist/SideNav/SideNavHeading.d.ts +1 -1
  334. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  335. package/dist/SideNav/SideNavHeading.js +8 -7
  336. package/dist/SideNav/SideNavItem.d.ts +2 -2
  337. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  338. package/dist/SideNav/SideNavItem.js +6 -7
  339. package/dist/SideNav/SideNavSection.d.ts +1 -1
  340. package/dist/SideNav/SideNavSection.js +1 -1
  341. package/dist/Skeleton/Skeleton.d.ts +1 -1
  342. package/dist/Skeleton/Skeleton.d.ts.map +1 -1
  343. package/dist/Skeleton/Skeleton.js +3 -3
  344. package/dist/Slider/Slider.d.ts.map +1 -1
  345. package/dist/Slider/Slider.js +78 -68
  346. package/dist/Spinner/Spinner.d.ts +1 -1
  347. package/dist/Spinner/Spinner.js +1 -1
  348. package/dist/Stack/Stack.d.ts +1 -1
  349. package/dist/Stack/Stack.js +1 -1
  350. package/dist/Stack/StackItem.d.ts +1 -1
  351. package/dist/Stack/StackItem.js +1 -1
  352. package/dist/Stack/stack.stylex.d.ts +3 -3
  353. package/dist/StatusDot/StatusDot.d.ts +1 -20
  354. package/dist/StatusDot/StatusDot.d.ts.map +1 -1
  355. package/dist/StatusDot/StatusDot.js +2 -17
  356. package/dist/StatusDot/index.d.ts +21 -1
  357. package/dist/StatusDot/index.d.ts.map +1 -1
  358. package/dist/StatusDot/index.js +14 -0
  359. package/dist/Switch/Switch.d.ts +2 -6
  360. package/dist/Switch/Switch.d.ts.map +1 -1
  361. package/dist/Switch/Switch.js +18 -10
  362. package/dist/TabList/Tab.d.ts +1 -1
  363. package/dist/TabList/Tab.js +1 -1
  364. package/dist/TabList/TabList.d.ts +1 -1
  365. package/dist/TabList/TabList.js +1 -1
  366. package/dist/TabList/TabMenu.d.ts +1 -1
  367. package/dist/TabList/TabMenu.d.ts.map +1 -1
  368. package/dist/TabList/TabMenu.js +11 -3
  369. package/dist/Table/BaseTable.d.ts +1 -1
  370. package/dist/Table/BaseTable.d.ts.map +1 -1
  371. package/dist/Table/BaseTable.js +4 -7
  372. package/dist/Table/Table.d.ts +1 -1
  373. package/dist/Table/Table.js +1 -1
  374. package/dist/Table/TableCell.d.ts +1 -1
  375. package/dist/Table/TableCell.js +4 -2
  376. package/dist/Table/TableHeaderCell.d.ts +1 -1
  377. package/dist/Table/TableHeaderCell.js +4 -2
  378. package/dist/Table/TableRow.d.ts +1 -1
  379. package/dist/Table/TableRow.js +1 -1
  380. package/dist/Table/index.d.ts +1 -1
  381. package/dist/Table/index.d.ts.map +1 -1
  382. package/dist/Table/index.js +1 -1
  383. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +1 -1
  384. package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +1 -1
  385. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
  386. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  387. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +22 -4
  388. package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
  389. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  390. package/dist/Table/plugins/tree/useTableTreeData.js +36 -2
  391. package/dist/Table/types.d.ts +0 -9
  392. package/dist/Table/types.d.ts.map +1 -1
  393. package/dist/Text/Text.d.ts +11 -2
  394. package/dist/Text/Text.d.ts.map +1 -1
  395. package/dist/Text/Text.js +26 -3
  396. package/dist/Text/index.d.ts +31 -1
  397. package/dist/Text/index.d.ts.map +1 -1
  398. package/dist/Text/index.js +23 -0
  399. package/dist/TextArea/TextArea.d.ts +1 -1
  400. package/dist/TextArea/TextArea.d.ts.map +1 -1
  401. package/dist/TextArea/TextArea.js +107 -39
  402. package/dist/TextInput/TextInput.d.ts +1 -1
  403. package/dist/TextInput/TextInput.js +1 -1
  404. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  405. package/dist/Thumbnail/Thumbnail.js +52 -46
  406. package/dist/TimeInput/TimeInput.js +1 -1
  407. package/dist/Timestamp/Timestamp.d.ts +26 -12
  408. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  409. package/dist/Timestamp/Timestamp.js +128 -65
  410. package/dist/Timestamp/TimestampHoverCard.d.ts +45 -0
  411. package/dist/Timestamp/TimestampHoverCard.d.ts.map +1 -0
  412. package/dist/Timestamp/TimestampHoverCard.js +228 -0
  413. package/dist/Timestamp/formatInstant.d.ts +3 -3
  414. package/dist/Timestamp/formatInstant.d.ts.map +1 -1
  415. package/dist/Timestamp/formatInstant.js +7 -2
  416. package/dist/Timestamp/tooltipEntries.d.ts +17 -2
  417. package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
  418. package/dist/Timestamp/tooltipEntries.js +4 -2
  419. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  420. package/dist/Toast/ToastViewport.js +61 -9
  421. package/dist/ToggleButton/ToggleButton.d.ts +1 -1
  422. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  423. package/dist/ToggleButton/ToggleButton.js +4 -2
  424. package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
  425. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  426. package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
  427. package/dist/Token/Token.d.ts +6 -28
  428. package/dist/Token/Token.d.ts.map +1 -1
  429. package/dist/Token/Token.js +69 -58
  430. package/dist/Token/TokenLink.d.ts +62 -0
  431. package/dist/Token/TokenLink.d.ts.map +1 -0
  432. package/dist/Token/TokenLink.js +76 -0
  433. package/dist/Token/index.d.ts +27 -1
  434. package/dist/Token/index.d.ts.map +1 -1
  435. package/dist/Token/index.js +14 -0
  436. package/dist/Tokenizer/Tokenizer.d.ts +1 -1
  437. package/dist/Tokenizer/Tokenizer.js +1 -1
  438. package/dist/Toolbar/Toolbar.d.ts +1 -1
  439. package/dist/Toolbar/Toolbar.js +1 -1
  440. package/dist/Tooltip/Tooltip.d.ts +1 -1
  441. package/dist/Tooltip/Tooltip.js +1 -1
  442. package/dist/TopNav/TopNav.d.ts +1 -1
  443. package/dist/TopNav/TopNav.js +1 -1
  444. package/dist/TopNav/TopNavHeading.d.ts +2 -8
  445. package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
  446. package/dist/TopNav/TopNavHeading.js +8 -10
  447. package/dist/TopNav/TopNavItem.d.ts +1 -1
  448. package/dist/TopNav/TopNavItem.js +1 -1
  449. package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
  450. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  451. package/dist/TopNav/TopNavMegaMenu.js +15 -7
  452. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  453. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
  454. package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
  455. package/dist/TopNav/TopNavMegaMenuItem.js +1 -1
  456. package/dist/TopNav/TopNavMenu.d.ts +1 -1
  457. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  458. package/dist/TopNav/TopNavMenu.js +5 -4
  459. package/dist/TreeList/TreeList.d.ts +1 -1
  460. package/dist/TreeList/TreeList.js +1 -1
  461. package/dist/TreeList/TreeListBranches.js +1 -1
  462. package/dist/TreeList/TreeListItem.d.ts +1 -1
  463. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  464. package/dist/TreeList/TreeListItem.js +4 -3
  465. package/dist/TreeList/TreeListTypes.d.ts +1 -17
  466. package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
  467. package/dist/TreeList/index.d.ts +18 -1
  468. package/dist/TreeList/index.d.ts.map +1 -1
  469. package/dist/TreeList/index.js +14 -0
  470. package/dist/Typeahead/BaseTypeahead.d.ts +10 -1
  471. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  472. package/dist/Typeahead/BaseTypeahead.js +3 -1
  473. package/dist/Typeahead/Typeahead.d.ts +1 -1
  474. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  475. package/dist/Typeahead/Typeahead.js +9 -2
  476. package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
  477. package/dist/Typeahead/TypeaheadItem.js +1 -1
  478. package/dist/VStack/VStack.d.ts +1 -1
  479. package/dist/VStack/VStack.js +1 -1
  480. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  481. package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
  482. package/dist/astryx.css +115 -33
  483. package/dist/astryx.umd.js +50 -54
  484. package/dist/astryx.umd.js.map +4 -4
  485. package/dist/hooks/containerReveal.pool.stylex.d.ts +303 -0
  486. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -0
  487. package/dist/hooks/containerReveal.pool.stylex.js +292 -0
  488. package/dist/hooks/index.d.ts +2 -0
  489. package/dist/hooks/index.d.ts.map +1 -1
  490. package/dist/hooks/index.js +2 -1
  491. package/dist/hooks/useContainerReveal.d.ts +83 -0
  492. package/dist/hooks/useContainerReveal.d.ts.map +1 -0
  493. package/dist/hooks/useContainerReveal.js +123 -0
  494. package/dist/hooks/useGridFocus.d.ts +8 -6
  495. package/dist/hooks/useGridFocus.d.ts.map +1 -1
  496. package/dist/hooks/useInputContainer.d.ts.map +1 -1
  497. package/dist/hooks/useInputContainer.js +29 -1
  498. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  499. package/dist/hooks/useInputStatusIcon.js +11 -0
  500. package/dist/hooks/useKeyboardHint.d.ts +2 -2
  501. package/dist/hooks/useKeyboardHint.d.ts.map +1 -1
  502. package/dist/hooks/useKeyboardHint.js +5 -3
  503. package/dist/hooks/useListFocus.d.ts +8 -7
  504. package/dist/hooks/useListFocus.d.ts.map +1 -1
  505. package/dist/hooks/useTreeFocus.d.ts.map +1 -1
  506. package/dist/hooks/useTreeFocus.js +13 -2
  507. package/dist/i18n/InternationalizationProvider.d.ts +6 -0
  508. package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
  509. package/dist/i18n/useDirection.d.ts.map +1 -1
  510. package/dist/i18n/useDirection.js +6 -3
  511. package/dist/index.d.ts +2 -1
  512. package/dist/index.d.ts.map +1 -1
  513. package/dist/index.js +3 -3
  514. package/dist/theme/Theme.d.ts.map +1 -1
  515. package/dist/theme/Theme.js +2 -7
  516. package/dist/theme/contrast.d.ts +45 -0
  517. package/dist/theme/contrast.d.ts.map +1 -0
  518. package/dist/theme/contrast.js +88 -0
  519. package/dist/theme/defineTheme.d.ts +9 -3
  520. package/dist/theme/defineTheme.d.ts.map +1 -1
  521. package/dist/theme/defineTheme.js +6 -4
  522. package/dist/theme/expandColorScale.d.ts +32 -3
  523. package/dist/theme/expandColorScale.d.ts.map +1 -1
  524. package/dist/theme/expandColorScale.js +102 -13
  525. package/dist/theme/generateThemeRules.d.ts +0 -6
  526. package/dist/theme/generateThemeRules.d.ts.map +1 -1
  527. package/dist/theme/generateThemeRules.js +0 -15
  528. package/dist/theme/index.d.ts +9 -7
  529. package/dist/theme/index.d.ts.map +1 -1
  530. package/dist/theme/index.js +4 -3
  531. package/dist/theme/themeRegistry.d.ts +32 -0
  532. package/dist/theme/themeRegistry.d.ts.map +1 -0
  533. package/dist/theme/themeRegistry.js +49 -0
  534. package/dist/theme/tokens.stylex.d.ts +0 -17
  535. package/dist/theme/tokens.stylex.d.ts.map +1 -1
  536. package/dist/theme/tokens.stylex.js +0 -22
  537. package/dist/theme/types.d.ts +10 -2
  538. package/dist/theme/types.d.ts.map +1 -1
  539. package/dist/theme/useTheme.d.ts +9 -0
  540. package/dist/theme/useTheme.d.ts.map +1 -1
  541. package/dist/theme/useTheme.js +82 -27
  542. package/dist/utils/rtlStyles.d.ts +21 -0
  543. package/dist/utils/rtlStyles.d.ts.map +1 -1
  544. package/dist/utils/rtlStyles.js +26 -1
  545. package/groups.doc.mjs +2 -2
  546. package/locales/en.json +124 -0
  547. package/locales/pseudo.json +93 -0
  548. package/package.json +9 -13
  549. package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
  550. package/src/AlertDialog/AlertDialog.tsx +1 -1
  551. package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
  552. package/src/AppShell/AppShell.doc.mjs +3 -3
  553. package/src/AppShell/AppShell.test.tsx +55 -0
  554. package/src/AppShell/AppShell.tsx +27 -22
  555. package/src/AppShell/index.ts +20 -1
  556. package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
  557. package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
  558. package/src/AspectRatio/AspectRatio.tsx +1 -1
  559. package/src/Avatar/Avatar.doc.mjs +3 -3
  560. package/src/Avatar/Avatar.tsx +8 -3
  561. package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
  562. package/src/Avatar/AvatarStatusDot.tsx +2 -27
  563. package/src/Avatar/index.ts +26 -1
  564. package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
  565. package/src/AvatarGroup/AvatarGroup.test.tsx +21 -1
  566. package/src/AvatarGroup/AvatarGroup.tsx +3 -7
  567. package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
  568. package/src/AvatarGroup/AvatarGroupOverflow.tsx +5 -3
  569. package/src/Badge/Badge.doc.mjs +3 -3
  570. package/src/Badge/Badge.tsx +2 -31
  571. package/src/Badge/index.ts +32 -6
  572. package/src/Banner/Banner.doc.mjs +3 -3
  573. package/src/Banner/Banner.tsx +8 -45
  574. package/src/Banner/index.ts +39 -7
  575. package/src/Blockquote/Blockquote.doc.mjs +3 -3
  576. package/src/Blockquote/Blockquote.tsx +1 -1
  577. package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
  578. package/src/Breadcrumbs/BreadcrumbItem.tsx +5 -3
  579. package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
  580. package/src/Breadcrumbs/Breadcrumbs.test.tsx +1 -1
  581. package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
  582. package/src/Breadcrumbs/index.ts +19 -5
  583. package/src/Button/Button.doc.mjs +3 -3
  584. package/src/Button/Button.test.tsx +16 -0
  585. package/src/Button/Button.tsx +6 -23
  586. package/src/Button/index.ts +22 -7
  587. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
  588. package/src/ButtonGroup/ButtonGroup.tsx +1 -1
  589. package/src/Calendar/Calendar.doc.mjs +3 -3
  590. package/src/Calendar/Calendar.test.tsx +22 -6
  591. package/src/Calendar/Calendar.tsx +1 -1
  592. package/src/Calendar/index.ts +1 -6
  593. package/src/Calendar/styles.ts +2 -2
  594. package/src/Calendar/utils.ts +0 -11
  595. package/src/Card/Card.doc.mjs +3 -3
  596. package/src/Card/Card.tsx +1 -1
  597. package/src/Carousel/Carousel.doc.mjs +10 -3
  598. package/src/Carousel/Carousel.test.tsx +232 -1
  599. package/src/Carousel/Carousel.tsx +144 -21
  600. package/src/Carousel/index.ts +1 -1
  601. package/src/Center/Center.doc.mjs +41 -3
  602. package/src/Center/Center.test.tsx +75 -0
  603. package/src/Center/Center.tsx +38 -3
  604. package/src/Chat/Chat.doc.mjs +3 -3
  605. package/src/Chat/ChatComposer.doc.mjs +1 -1
  606. package/src/Chat/ChatComposer.tsx +5 -5
  607. package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
  608. package/src/Chat/ChatComposerDrawer.tsx +5 -5
  609. package/src/Chat/ChatComposerInput.doc.mjs +1 -1
  610. package/src/Chat/ChatComposerInput.tsx +1 -1
  611. package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
  612. package/src/Chat/ChatDictationButton.doc.mjs +3 -3
  613. package/src/Chat/ChatDictationButton.tsx +1 -1
  614. package/src/Chat/ChatLayout.doc.mjs +1 -1
  615. package/src/Chat/ChatLayout.test.tsx +57 -0
  616. package/src/Chat/ChatLayout.tsx +23 -2
  617. package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
  618. package/src/Chat/ChatLayoutScrollButton.tsx +1 -1
  619. package/src/Chat/ChatMessage.doc.mjs +1 -1
  620. package/src/Chat/ChatMessage.tsx +1 -1
  621. package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
  622. package/src/Chat/ChatMessageBubble.tsx +1 -1
  623. package/src/Chat/ChatMessageList.doc.mjs +1 -1
  624. package/src/Chat/ChatMessageList.tsx +1 -1
  625. package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
  626. package/src/Chat/ChatSendButton.doc.mjs +1 -1
  627. package/src/Chat/ChatSendButton.tsx +5 -3
  628. package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
  629. package/src/Chat/ChatSystemMessage.tsx +1 -1
  630. package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
  631. package/src/Chat/ChatTokenizedText.tsx +1 -1
  632. package/src/Chat/ChatToolCalls.doc.mjs +3 -3
  633. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  634. package/src/CheckboxInput/CheckboxInput.test.tsx +56 -0
  635. package/src/CheckboxInput/CheckboxInput.tsx +18 -3
  636. package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
  637. package/src/CheckboxList/CheckboxList.test.tsx +94 -3
  638. package/src/CheckboxList/CheckboxList.tsx +1 -1
  639. package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
  640. package/src/CheckboxList/CheckboxListItem.tsx +18 -11
  641. package/src/Citation/Citation.doc.mjs +2 -2
  642. package/src/Citation/Citation.tsx +1 -1
  643. package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
  644. package/src/ClickableCard/ClickableCard.tsx +3 -3
  645. package/src/Code/Code.tsx +2 -2
  646. package/src/CodeBlock/Code.doc.mjs +1 -1
  647. package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
  648. package/src/CodeBlock/CodeBlock.test.tsx +17 -0
  649. package/src/CodeBlock/CodeBlock.tsx +2 -2
  650. package/src/Collapsible/Collapsible.doc.mjs +3 -3
  651. package/src/Collapsible/Collapsible.tsx +3 -3
  652. package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
  653. package/src/Collapsible/CollapsibleGroup.tsx +1 -1
  654. package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
  655. package/src/Collapsible/useCollapsible.doc.mjs +2 -2
  656. package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
  657. package/src/CommandPalette/CommandPalette.tsx +1 -1
  658. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
  659. package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
  660. package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
  661. package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
  662. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
  663. package/src/CommandPalette/CommandPaletteGroup.test.tsx +6 -2
  664. package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
  665. package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
  666. package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
  667. package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
  668. package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
  669. package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
  670. package/src/CommandPalette/CommandPaletteList.tsx +1 -1
  671. package/src/ComplexSelector/ComplexSelector.doc.mjs +179 -0
  672. package/src/ComplexSelector/ComplexSelector.test.tsx +156 -0
  673. package/src/ComplexSelector/ComplexSelector.tsx +429 -0
  674. package/src/ComplexSelector/index.ts +17 -0
  675. package/src/ContextMenu/ContextMenu.doc.mjs +3 -3
  676. package/src/ContextMenu/ContextMenu.test.tsx +17 -2
  677. package/src/ContextMenu/ContextMenu.tsx +27 -6
  678. package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
  679. package/src/DateInput/DateInput.doc.mjs +3 -3
  680. package/src/DateInput/DateInput.test.tsx +7 -3
  681. package/src/DateInput/DateInput.tsx +1 -1
  682. package/src/DateRangeInput/DateRangeInput.doc.mjs +2 -2
  683. package/src/DateRangeInput/DateRangeInput.test.tsx +7 -2
  684. package/src/DateRangeInput/DateRangeInput.tsx +1 -1
  685. package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -3
  686. package/src/DateTimeInput/DateTimeInput.test.tsx +6 -2
  687. package/src/DateTimeInput/DateTimeInput.tsx +1 -1
  688. package/src/Dialog/Dialog.doc.mjs +7 -5
  689. package/src/Dialog/Dialog.test.tsx +46 -3
  690. package/src/Dialog/Dialog.tsx +61 -44
  691. package/src/Dialog/DialogHeader.doc.mjs +1 -1
  692. package/src/Dialog/DialogHeader.tsx +1 -1
  693. package/src/Dialog/index.ts +18 -1
  694. package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
  695. package/src/Divider/Divider.doc.mjs +3 -3
  696. package/src/Divider/Divider.tsx +2 -19
  697. package/src/Divider/index.ts +19 -5
  698. package/src/DropdownMenu/DropdownMenu.doc.mjs +20 -5
  699. package/src/DropdownMenu/DropdownMenu.test.tsx +122 -0
  700. package/src/DropdownMenu/DropdownMenu.tsx +31 -20
  701. package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
  702. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
  703. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +1 -1
  704. package/src/DropdownMenu/DropdownMenuItem.tsx +1 -1
  705. package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +5 -13
  706. package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +9 -10
  707. package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
  708. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +11 -2
  709. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +84 -2
  710. package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
  711. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +46 -1
  712. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +24 -8
  713. package/src/DropdownMenu/menuItemHover.ts +1 -0
  714. package/src/DropdownMenu/renderDropdownItems.tsx +14 -2
  715. package/src/EmptyState/EmptyState.doc.mjs +3 -3
  716. package/src/EmptyState/EmptyState.tsx +1 -1
  717. package/src/Field/Field.doc.mjs +7 -3
  718. package/src/Field/Field.tsx +1 -1
  719. package/src/Field/FieldLabel.doc.mjs +1 -1
  720. package/src/Field/FieldLabel.test.tsx +103 -0
  721. package/src/Field/FieldLabel.tsx +61 -5
  722. package/src/FieldStatus/FieldStatus.doc.mjs +3 -2
  723. package/src/FieldStatus/FieldStatus.test.tsx +61 -0
  724. package/src/FieldStatus/FieldStatus.tsx +16 -23
  725. package/src/FieldStatus/index.ts +20 -5
  726. package/src/FileInput/FileInput.doc.mjs +3 -3
  727. package/src/FileInput/FileInput.tsx +1 -1
  728. package/src/FormLayout/FormLayout.doc.mjs +3 -3
  729. package/src/FormLayout/FormLayout.tsx +2 -5
  730. package/src/Grid/Grid.doc.mjs +3 -8
  731. package/src/Grid/Grid.tsx +1 -25
  732. package/src/Grid/GridSpan.doc.mjs +1 -1
  733. package/src/Grid/GridSpan.tsx +1 -1
  734. package/src/HStack/HStack.tsx +1 -1
  735. package/src/Heading/Heading.tsx +4 -3
  736. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  737. package/src/HoverCard/HoverCard.tsx +1 -1
  738. package/src/HoverCard/useHoverCard.doc.mjs +2 -2
  739. package/src/Icon/Icon.doc.mjs +7 -6
  740. package/src/Icon/Icon.test.tsx +23 -0
  741. package/src/Icon/Icon.tsx +4 -2
  742. package/src/Icon/defaultIcons.tsx +14 -0
  743. package/src/Icon/globalIconRegistry.test.tsx +87 -1
  744. package/src/Icon/globalIconRegistry.tsx +111 -9
  745. package/src/Icon/index.ts +9 -7
  746. package/src/Icon/useIcon.ts +23 -0
  747. package/src/IconButton/IconButton.doc.mjs +2 -2
  748. package/src/IconButton/IconButton.tsx +1 -1
  749. package/src/InputGroup/InputGroup.doc.mjs +2 -2
  750. package/src/InputGroup/InputGroup.tsx +1 -1
  751. package/src/InputGroup/InputGroupText.doc.mjs +1 -1
  752. package/src/InputGroup/InputGroupText.tsx +1 -1
  753. package/src/Item/Item.doc.mjs +8 -3
  754. package/src/Item/Item.test.tsx +88 -0
  755. package/src/Item/Item.tsx +58 -12
  756. package/src/Kbd/Kbd.doc.mjs +3 -3
  757. package/src/Kbd/Kbd.tsx +1 -1
  758. package/src/Layer/Layer.doc.mjs +2 -2
  759. package/src/Layer/useLayer.doc.mjs +2 -2
  760. package/src/Layout/Layout.doc.mjs +3 -3
  761. package/src/Layout/Layout.tsx +1 -1
  762. package/src/Layout/LayoutContent.doc.mjs +1 -1
  763. package/src/Layout/LayoutContent.tsx +1 -1
  764. package/src/Layout/LayoutFooter.doc.mjs +1 -1
  765. package/src/Layout/LayoutFooter.tsx +1 -1
  766. package/src/Layout/LayoutHeader.doc.mjs +1 -1
  767. package/src/Layout/LayoutHeader.tsx +1 -1
  768. package/src/Layout/LayoutPanel.doc.mjs +1 -1
  769. package/src/Layout/LayoutPanel.tsx +1 -1
  770. package/src/Lightbox/Lightbox.doc.mjs +5 -5
  771. package/src/Lightbox/Lightbox.test.tsx +211 -0
  772. package/src/Lightbox/Lightbox.tsx +109 -22
  773. package/src/Link/Link.doc.mjs +3 -3
  774. package/src/Link/Link.tsx +1 -1
  775. package/src/Link/LinkProvider.doc.mjs +2 -2
  776. package/src/Link/LinkProvider.tsx +2 -2
  777. package/src/List/List.doc.mjs +3 -3
  778. package/src/List/List.tsx +1 -1
  779. package/src/List/ListItem.doc.mjs +13 -1
  780. package/src/List/ListItem.tsx +14 -1
  781. package/src/Markdown/Markdown.doc.mjs +81 -1
  782. package/src/Markdown/Markdown.test.tsx +92 -0
  783. package/src/Markdown/Markdown.tsx +96 -68
  784. package/src/Markdown/parser.perf.test.ts +47 -35
  785. package/src/MetadataList/MetadataList.doc.mjs +3 -3
  786. package/src/MetadataList/MetadataList.test.tsx +82 -0
  787. package/src/MetadataList/MetadataList.tsx +45 -20
  788. package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
  789. package/src/MetadataList/MetadataListItem.tsx +1 -1
  790. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  791. package/src/MobileNav/MobileNav.tsx +1 -1
  792. package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
  793. package/src/MoreMenu/MoreMenu.tsx +3 -3
  794. package/src/MultiSelector/MultiSelector.doc.mjs +35 -10
  795. package/src/MultiSelector/MultiSelector.test.tsx +303 -3
  796. package/src/MultiSelector/MultiSelector.tsx +223 -58
  797. package/src/NavIcon/NavIcon.doc.mjs +3 -3
  798. package/src/NavIcon/NavIcon.tsx +1 -1
  799. package/src/NavMenu/NavHeadingMenu.test.tsx +0 -16
  800. package/src/NavMenu/NavMenu.doc.mjs +2 -2
  801. package/src/NavMenu/index.ts +0 -4
  802. package/src/NumberInput/NumberInput.doc.mjs +3 -6
  803. package/src/NumberInput/NumberInput.test.tsx +38 -3
  804. package/src/NumberInput/NumberInput.tsx +24 -1
  805. package/src/Outline/Outline.doc.mjs +3 -3
  806. package/src/Outline/Outline.tsx +1 -1
  807. package/src/OverflowList/OverflowList.doc.mjs +3 -3
  808. package/src/OverflowList/OverflowList.tsx +1 -1
  809. package/src/Overlay/Overlay.doc.mjs +2 -2
  810. package/src/Pagination/Pagination.doc.mjs +55 -8
  811. package/src/Pagination/Pagination.test.tsx +567 -0
  812. package/src/Pagination/Pagination.tsx +223 -41
  813. package/src/Pagination/index.ts +22 -1
  814. package/src/Popover/Popover.doc.mjs +31 -3
  815. package/src/Popover/Popover.test.tsx +41 -0
  816. package/src/Popover/Popover.tsx +25 -2
  817. package/src/Popover/usePopover.doc.mjs +2 -2
  818. package/src/Popover/usePopover.tsx +10 -4
  819. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  820. package/src/PowerSearch/PowerSearch.tsx +1 -1
  821. package/src/ProgressBar/ProgressBar.doc.mjs +24 -3
  822. package/src/ProgressBar/ProgressBar.test.tsx +523 -2
  823. package/src/ProgressBar/ProgressBar.tsx +250 -25
  824. package/src/ProgressBar/ProgressBarMarkTooltip.tsx +43 -0
  825. package/src/ProgressBar/index.ts +22 -1
  826. package/src/RadioList/RadioList.doc.mjs +3 -3
  827. package/src/RadioList/RadioList.test.tsx +26 -4
  828. package/src/RadioList/RadioList.tsx +1 -1
  829. package/src/RadioList/RadioListItem.doc.mjs +1 -1
  830. package/src/RadioList/RadioListItem.tsx +9 -2
  831. package/src/Resizable/Resizable.doc.mjs +2 -2
  832. package/src/Resizable/ResizeHandle.test.tsx +52 -3
  833. package/src/Resizable/ResizeHandle.tsx +25 -13
  834. package/src/Resizable/useResizable.doc.mjs +2 -2
  835. package/src/Section/Section.doc.mjs +3 -3
  836. package/src/Section/Section.tsx +2 -20
  837. package/src/Section/index.ts +20 -5
  838. package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
  839. package/src/SegmentedControl/SegmentedControl.test.tsx +28 -0
  840. package/src/SegmentedControl/SegmentedControl.tsx +1 -1
  841. package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
  842. package/src/SegmentedControl/SegmentedControlItem.tsx +21 -3
  843. package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
  844. package/src/SelectableCard/SelectableCard.test.tsx +55 -0
  845. package/src/SelectableCard/SelectableCard.tsx +19 -3
  846. package/src/Selector/Selector.doc.mjs +28 -8
  847. package/src/Selector/Selector.test.tsx +222 -3
  848. package/src/Selector/Selector.tsx +202 -52
  849. package/src/Selector/SelectorOption.doc.mjs +1 -1
  850. package/src/SideNav/SideNav.doc.mjs +3 -3
  851. package/src/SideNav/SideNav.tsx +1 -1
  852. package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
  853. package/src/SideNav/SideNavCollapseButton.tsx +4 -3
  854. package/src/SideNav/SideNavHeading.doc.mjs +1 -1
  855. package/src/SideNav/SideNavHeading.tsx +8 -9
  856. package/src/SideNav/SideNavItem.doc.mjs +1 -1
  857. package/src/SideNav/SideNavItem.tsx +5 -6
  858. package/src/SideNav/SideNavSection.doc.mjs +1 -1
  859. package/src/SideNav/SideNavSection.tsx +1 -1
  860. package/src/Skeleton/Skeleton.doc.mjs +3 -3
  861. package/src/Skeleton/Skeleton.test.tsx +16 -0
  862. package/src/Skeleton/Skeleton.tsx +14 -2
  863. package/src/Slider/Slider.doc.mjs +3 -3
  864. package/src/Slider/Slider.tsx +9 -13
  865. package/src/Spinner/Spinner.doc.mjs +3 -3
  866. package/src/Spinner/Spinner.tsx +1 -1
  867. package/src/Stack/Stack.doc.mjs +3 -3
  868. package/src/Stack/Stack.tsx +1 -1
  869. package/src/Stack/StackItem.tsx +1 -1
  870. package/src/StatusDot/StatusDot.doc.mjs +15 -6
  871. package/src/StatusDot/StatusDot.tsx +2 -22
  872. package/src/StatusDot/index.ts +22 -5
  873. package/src/Switch/Switch.doc.mjs +5 -5
  874. package/src/Switch/Switch.test.tsx +71 -25
  875. package/src/Switch/Switch.tsx +56 -18
  876. package/src/TabList/Tab.doc.mjs +1 -1
  877. package/src/TabList/Tab.tsx +1 -1
  878. package/src/TabList/TabList.doc.mjs +3 -3
  879. package/src/TabList/TabList.test.tsx +21 -18
  880. package/src/TabList/TabList.tsx +1 -1
  881. package/src/TabList/TabMenu.doc.mjs +1 -1
  882. package/src/TabList/TabMenu.tsx +11 -3
  883. package/src/Table/BaseTable.tsx +4 -5
  884. package/src/Table/Table.doc.mjs +5 -5
  885. package/src/Table/Table.test.tsx +27 -49
  886. package/src/Table/Table.tsx +1 -1
  887. package/src/Table/TableCell.doc.mjs +1 -1
  888. package/src/Table/TableCell.tsx +2 -2
  889. package/src/Table/TableHeaderCell.doc.mjs +1 -1
  890. package/src/Table/TableHeaderCell.tsx +2 -2
  891. package/src/Table/TableRow.doc.mjs +1 -1
  892. package/src/Table/TableRow.tsx +1 -1
  893. package/src/Table/index.ts +1 -1
  894. package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +1 -1
  895. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +19 -0
  896. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +24 -4
  897. package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
  898. package/src/Table/plugins/tree/useTableTreeData.tsx +54 -1
  899. package/src/Table/types.ts +0 -9
  900. package/src/Table/useTableColumnResize.doc.mjs +1 -1
  901. package/src/Table/useTableColumnSettings.doc.mjs +1 -1
  902. package/src/Table/useTableFilterState.doc.mjs +1 -1
  903. package/src/Table/useTableFiltering.doc.mjs +1 -1
  904. package/src/Table/useTableGroupedRows.doc.mjs +2 -2
  905. package/src/Table/useTablePagination.doc.mjs +1 -1
  906. package/src/Table/useTableRowExpansion.doc.mjs +57 -4
  907. package/src/Table/useTableRowIndex.doc.mjs +2 -2
  908. package/src/Table/useTableRowStatus.doc.mjs +3 -3
  909. package/src/Table/useTableSelection.doc.mjs +1 -1
  910. package/src/Table/useTableSelectionState.doc.mjs +1 -1
  911. package/src/Table/useTableSortable.doc.mjs +1 -1
  912. package/src/Table/useTableStickyColumns.doc.mjs +1 -1
  913. package/src/Table/useTableTreeData.doc.mjs +10 -1
  914. package/src/Table/useTableTreeState.doc.mjs +1 -1
  915. package/src/Text/Heading.doc.mjs +4 -4
  916. package/src/Text/Text.doc.mjs +4 -4
  917. package/src/Text/Text.test.tsx +42 -0
  918. package/src/Text/Text.tsx +26 -2
  919. package/src/Text/index.ts +32 -6
  920. package/src/TextArea/TextArea.doc.mjs +5 -5
  921. package/src/TextArea/TextArea.test.tsx +112 -7
  922. package/src/TextArea/TextArea.tsx +143 -50
  923. package/src/TextInput/TextInput.doc.mjs +3 -3
  924. package/src/TextInput/TextInput.tsx +1 -1
  925. package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
  926. package/src/Thumbnail/Thumbnail.test.tsx +24 -1
  927. package/src/Thumbnail/Thumbnail.tsx +28 -35
  928. package/src/TimeInput/TimeInput.doc.mjs +3 -3
  929. package/src/TimeInput/TimeInput.tsx +1 -1
  930. package/src/Timestamp/Timestamp.doc.mjs +29 -24
  931. package/src/Timestamp/Timestamp.test.tsx +438 -107
  932. package/src/Timestamp/Timestamp.tsx +167 -103
  933. package/src/Timestamp/TimestampHoverCard.tsx +283 -0
  934. package/src/Timestamp/formatInstant.ts +9 -4
  935. package/src/Timestamp/tooltipEntries.test.ts +9 -0
  936. package/src/Timestamp/tooltipEntries.ts +18 -2
  937. package/src/Toast/Toast.doc.mjs +3 -3
  938. package/src/Toast/ToastViewport.test.tsx +218 -8
  939. package/src/Toast/ToastViewport.tsx +71 -12
  940. package/src/Toast/useToast.doc.mjs +2 -2
  941. package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
  942. package/src/ToggleButton/ToggleButton.test.tsx +24 -0
  943. package/src/ToggleButton/ToggleButton.tsx +20 -2
  944. package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
  945. package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
  946. package/src/Token/Token.doc.mjs +3 -3
  947. package/src/Token/Token.test.tsx +145 -0
  948. package/src/Token/Token.tsx +75 -61
  949. package/src/Token/TokenLink.tsx +107 -0
  950. package/src/Token/index.ts +28 -1
  951. package/src/Tokenizer/Tokenizer.doc.mjs +3 -3
  952. package/src/Tokenizer/Tokenizer.tsx +1 -1
  953. package/src/Toolbar/Toolbar.doc.mjs +3 -3
  954. package/src/Toolbar/Toolbar.tsx +1 -1
  955. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  956. package/src/Tooltip/Tooltip.tsx +1 -1
  957. package/src/Tooltip/useTooltip.doc.mjs +2 -2
  958. package/src/TopNav/TopNav.doc.mjs +3 -3
  959. package/src/TopNav/TopNav.test.tsx +2 -2
  960. package/src/TopNav/TopNav.tsx +1 -1
  961. package/src/TopNav/TopNavHeading.doc.mjs +1 -12
  962. package/src/TopNav/TopNavHeading.tsx +8 -18
  963. package/src/TopNav/TopNavItem.doc.mjs +1 -1
  964. package/src/TopNav/TopNavItem.tsx +1 -1
  965. package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
  966. package/src/TopNav/TopNavMegaMenu.tsx +32 -6
  967. package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
  968. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
  969. package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
  970. package/src/TopNav/TopNavMegaMenuItem.tsx +1 -1
  971. package/src/TopNav/TopNavMenu.doc.mjs +1 -1
  972. package/src/TopNav/TopNavMenu.tsx +5 -4
  973. package/src/TreeList/TreeList.doc.mjs +3 -3
  974. package/src/TreeList/TreeList.test.tsx +10 -6
  975. package/src/TreeList/TreeList.tsx +1 -1
  976. package/src/TreeList/TreeListBranches.tsx +1 -1
  977. package/src/TreeList/TreeListItem.tsx +4 -3
  978. package/src/TreeList/TreeListTypes.ts +1 -18
  979. package/src/TreeList/index.ts +19 -1
  980. package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
  981. package/src/Typeahead/BaseTypeahead.tsx +13 -1
  982. package/src/Typeahead/Typeahead.doc.mjs +3 -3
  983. package/src/Typeahead/Typeahead.test.tsx +62 -0
  984. package/src/Typeahead/Typeahead.tsx +7 -1
  985. package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
  986. package/src/Typeahead/TypeaheadItem.tsx +1 -1
  987. package/src/VStack/VStack.tsx +1 -1
  988. package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
  989. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
  990. package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
  991. package/src/__tests__/forcedColors.ts +60 -0
  992. package/src/__tests__/inputWidthContract.test.tsx +8 -1
  993. package/src/doc-mjs.d.ts +5 -2
  994. package/src/docPropLiterals.test.ts +1 -1
  995. package/src/docPropReferences.test.ts +1 -1
  996. package/src/hooks/containerReveal.pool.stylex.ts +571 -0
  997. package/src/hooks/index.ts +7 -0
  998. package/src/hooks/useClickableContainer.doc.mjs +2 -2
  999. package/src/hooks/useContainerReveal.doc.mjs +75 -0
  1000. package/src/hooks/useContainerReveal.test.tsx +116 -0
  1001. package/src/hooks/useContainerReveal.ts +181 -0
  1002. package/src/hooks/useEntryAnimation.doc.mjs +2 -2
  1003. package/src/hooks/useFocusTrap.doc.mjs +2 -2
  1004. package/src/hooks/useGridFocus.doc.mjs +2 -2
  1005. package/src/hooks/useGridFocus.ts +8 -6
  1006. package/src/hooks/useHotkeys.doc.mjs +2 -2
  1007. package/src/hooks/useImageMode.doc.mjs +2 -2
  1008. package/src/hooks/useInputContainer.doc.mjs +2 -2
  1009. package/src/hooks/useInputContainer.test.tsx +180 -0
  1010. package/src/hooks/useInputContainer.ts +36 -1
  1011. package/src/hooks/useInputStatusIcon.test.tsx +59 -0
  1012. package/src/hooks/useInputStatusIcon.tsx +12 -1
  1013. package/src/hooks/useKeyboardHint.doc.mjs +2 -2
  1014. package/src/hooks/useKeyboardHint.test.tsx +22 -0
  1015. package/src/hooks/useKeyboardHint.tsx +7 -3
  1016. package/src/hooks/useListFocus.doc.mjs +2 -2
  1017. package/src/hooks/useListFocus.ts +8 -7
  1018. package/src/hooks/useMediaQuery.doc.mjs +2 -2
  1019. package/src/hooks/useOverflow.doc.mjs +2 -2
  1020. package/src/hooks/useScrollLock.doc.mjs +2 -2
  1021. package/src/hooks/useScrollOverflow.doc.mjs +2 -2
  1022. package/src/hooks/useStreamingText.doc.mjs +2 -2
  1023. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  1024. package/src/hooks/useTreeFocus.test.tsx +53 -1
  1025. package/src/hooks/useTreeFocus.ts +13 -2
  1026. package/src/i18n/InternationalizationProvider.doc.mjs +14 -2
  1027. package/src/i18n/InternationalizationProvider.tsx +6 -0
  1028. package/src/i18n/useDirection.ts +6 -3
  1029. package/src/i18n/useTranslator.doc.mjs +2 -2
  1030. package/src/index.ts +2 -18
  1031. package/src/theme/MediaTheme.doc.mjs +2 -2
  1032. package/src/theme/SyntaxTheme.doc.mjs +2 -2
  1033. package/src/theme/Theme.doc.mjs +2 -2
  1034. package/src/theme/Theme.tsx +3 -7
  1035. package/src/theme/contrast.test.ts +94 -0
  1036. package/src/theme/contrast.ts +99 -0
  1037. package/src/theme/defineTheme.test.ts +29 -30
  1038. package/src/theme/defineTheme.ts +11 -5
  1039. package/src/theme/expandColorScale.test.ts +401 -1
  1040. package/src/theme/expandColorScale.ts +143 -19
  1041. package/src/theme/generateThemeRules.ts +0 -15
  1042. package/src/theme/index.ts +11 -13
  1043. package/src/theme/themeRegistry.test.ts +59 -0
  1044. package/src/theme/themeRegistry.ts +53 -0
  1045. package/src/theme/tokens.stylex.ts +0 -19
  1046. package/src/theme/types.ts +14 -13
  1047. package/src/theme/useTheme.doc.mjs +2 -2
  1048. package/src/theme/useTheme.test.tsx +48 -3
  1049. package/src/theme/useTheme.ts +100 -29
  1050. package/src/utils/rtlStyles.ts +22 -0
  1051. package/dist/NavMenu/NavMenuItem.d.ts +0 -13
  1052. package/dist/NavMenu/NavMenuItem.d.ts.map +0 -1
  1053. package/dist/NavMenu/NavMenuItem.js +0 -16
  1054. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +0 -9
  1055. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +0 -1
  1056. package/dist/Thumbnail/thumbnail.markers.stylex.js +0 -14
  1057. package/dist/authoring/doc.d.ts +0 -145
  1058. package/dist/authoring/doc.d.ts.map +0 -1
  1059. package/dist/authoring/doc.js +0 -100
  1060. package/dist/authoring/index.d.ts +0 -29
  1061. package/dist/authoring/index.d.ts.map +0 -1
  1062. package/dist/authoring/index.js +0 -28
  1063. package/dist/authoring/integration.d.ts +0 -35
  1064. package/dist/authoring/integration.d.ts.map +0 -1
  1065. package/dist/authoring/integration.js +0 -30
  1066. package/dist/authoring/template.d.ts +0 -66
  1067. package/dist/authoring/template.d.ts.map +0 -1
  1068. package/dist/authoring/template.js +0 -55
  1069. package/dist/config.d.ts +0 -80
  1070. package/dist/config.d.ts.map +0 -1
  1071. package/dist/config.js +0 -40
  1072. package/dist/docs-types.d.ts +0 -969
  1073. package/dist/docs-types.d.ts.map +0 -1
  1074. package/dist/docs-types.js +0 -1
  1075. package/src/NavMenu/NavMenuItem.tsx +0 -19
  1076. package/src/Thumbnail/thumbnail.markers.stylex.ts +0 -12
  1077. package/src/authoring/doc.ts +0 -164
  1078. package/src/authoring/index.test.ts +0 -52
  1079. package/src/authoring/index.ts +0 -50
  1080. package/src/authoring/integration.ts +0 -42
  1081. package/src/authoring/template.ts +0 -74
  1082. package/src/config.test.ts +0 -16
  1083. package/src/config.ts +0 -92
  1084. 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: 'PowerSearch',
@@ -172,7 +172,7 @@ export const docs = {
172
172
  // See .context/decisions/dense-compression-protocol.md
173
173
  // -------------------------------------------------------
174
174
 
175
- /** @type {import('../docs-types').ComponentDoc} */
175
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
176
176
  export const docsZh = {
177
177
  name: 'PowerSearch',
178
178
  displayName: 'Power Search',
@@ -319,7 +319,7 @@ export const docsZh = {
319
319
  },
320
320
  };
321
321
 
322
- /** @type {import('../docs-types').TranslationDoc} */
322
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
323
323
  export const docsDense = {
324
324
  description:
325
325
  'Structured filter bar where each token represents filter (field+operator+value). Users select fields from typeahead dropdown, configure operators+values in edit popover, manage filters as removable tokens.',
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * SYNC: When modified, update:
13
13
  * - /packages/core/src/PowerSearch/index.ts
14
- * - /packages/cli/templates/blocks/components/PowerSearch/ (showcase blocks)
14
+ * - /packages/cli/assets/templates/blocks/components/PowerSearch/ (showcase blocks)
15
15
  */
16
16
 
17
17
  import 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: 'ProgressBar',
@@ -56,6 +56,12 @@ export const docs = {
56
56
  description: 'Animated loading indicator for unknown progress.',
57
57
  default: 'false',
58
58
  },
59
+ {
60
+ name: 'marks',
61
+ type: 'ReadonlyArray<{value: number; label: string}>',
62
+ description:
63
+ 'Fixed target marks drawn on the track at values in the same 0..max scale as value (e.g. a goal line). They stay visible whether progress is below or past them, and take their color from what they sit on: a mark inside the filled area uses the fill variant\'s on-color (on-accent, on-warning, on-error, …), a mark still out on the bare track uses the primary text color (the secondary one on a disabled bar, which dims everything it draws). Each mark requires a label — it is the mark\'s accessible name and the text revealed via a tooltip on hover/focus. Ignored when indeterminate.',
64
+ },
59
65
  {
60
66
  name: 'isDisabled',
61
67
  type: 'boolean',
@@ -74,6 +80,10 @@ export const docs = {
74
80
  {className: 'astryx-progressbar', visualProps: ['variant']},
75
81
  {className: 'astryx-progressbar-fill', visualProps: ['variant']},
76
82
  {className: 'astryx-progressbar-track'},
83
+ {
84
+ className: 'astryx-progressbar-mark',
85
+ visualProps: ['variant', 'placement'],
86
+ },
77
87
  ],
78
88
  },
79
89
  usage: {
@@ -90,7 +100,7 @@ export const docs = {
90
100
  },
91
101
  };
92
102
 
93
- /** @type {import('../docs-types').ComponentDoc} */
103
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
94
104
  export const docsZh = {
95
105
  name: 'ProgressBar',
96
106
  displayName: 'Progress Bar',
@@ -143,6 +153,12 @@ export const docsZh = {
143
153
  description: '用于未知进度的动画加载指示器。',
144
154
  default: 'false',
145
155
  },
156
+ {
157
+ name: 'marks',
158
+ type: 'ReadonlyArray<{value: number; label: string}>',
159
+ description:
160
+ '在轨道上按与 value 相同的 0..max 刻度绘制的固定目标标记(例如目标线)。无论进度低于还是超过它们都保持可见,并根据所处位置取色:位于已填充区域内的标记使用与填充变体配对的前景色(on-accent、on-warning、on-error 等),仍位于空轨道上的标记使用主文本颜色(禁用状态下会降为次要文本颜色,与其整体弱化的呈现保持一致)。每个标记都必须提供 label——它既是标记的无障碍名称,也是悬停/聚焦时通过工具提示显示的文本。不确定模式下忽略。',
161
+ },
146
162
  {
147
163
  name: 'isDisabled',
148
164
  type: 'boolean',
@@ -161,6 +177,10 @@ export const docsZh = {
161
177
  {className: 'astryx-progressbar', visualProps: ['variant']},
162
178
  {className: 'astryx-progressbar-fill', visualProps: ['variant']},
163
179
  {className: 'astryx-progressbar-track'},
180
+ {
181
+ className: 'astryx-progressbar-mark',
182
+ visualProps: ['variant', 'placement'],
183
+ },
164
184
  ],
165
185
  },
166
186
  usage: {
@@ -177,7 +197,7 @@ export const docsZh = {
177
197
  },
178
198
  };
179
199
 
180
- /** @type {import('../docs-types').TranslationDoc} */
200
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
181
201
  export const docsDense = {
182
202
  description:
183
203
  'Progress bar for displaying determinate or indeterminate progress.',
@@ -202,6 +222,7 @@ export const docsDense = {
202
222
  formatValueLabel: 'Custom value label formatter; defaults to percentage string.',
203
223
  variant: 'Semantic color variant.',
204
224
  isIndeterminate: 'Animated loading indicator for unknown progress.',
225
+ marks: 'Fixed target marks ({value, label?}) drawn on the track in the 0..max scale; stay visible past the fill. Marks inside the fill take the variant on-color; marks on the bare track take the primary text color (secondary when disabled). A label reveals a tooltip on hover/focus. Ignored when indeterminate.',
205
226
  isDisabled: 'Visually disabled: grays out fill and text.',
206
227
  xstyle: 'StyleX styles for layout customization. Must be stylex.create() value.',
207
228
  },
@@ -1,9 +1,18 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- import {describe, it, expect} from 'vitest';
4
- import {render, screen} from '@testing-library/react';
3
+ import {describe, it, expect, beforeAll} from 'vitest';
4
+ import {render, screen, waitFor} from '@testing-library/react';
5
5
  import {ProgressBar} from './ProgressBar';
6
6
 
7
+ // A labeled mark wraps the tick in a lazily-loaded Tooltip (React.lazy +
8
+ // Suspense). Preload that chunk once so the Tooltip (and its
9
+ // aria-describedby) is present synchronously on first render, keeping these
10
+ // tests deterministic rather than racing the dynamic import's default 1s
11
+ // Suspense timeout.
12
+ beforeAll(async () => {
13
+ await import('./ProgressBarMarkTooltip');
14
+ });
15
+
7
16
  describe('ProgressBar', () => {
8
17
  it('renders with default props', () => {
9
18
  render(<ProgressBar value={50} label="Progress" />);
@@ -277,4 +286,516 @@ describe('ProgressBar', () => {
277
286
  expect(css).toMatch(/:is\(\[dir="rtl"\][^)]*\)[^{]*\{\s*animation-name:/);
278
287
  });
279
288
  });
289
+
290
+ // Target marks
291
+ describe('target marks', () => {
292
+ const MARK = '.astryx-progressbar-mark';
293
+
294
+ // The StyleX atomic classes on an element, without the stable astryx-*
295
+ // theme classes and the bare variant/placement tokens — so a comparison
296
+ // reflects the resolved styles, not the reflected props.
297
+ function styleClasses(el: HTMLElement): string {
298
+ return Array.from(el.classList)
299
+ .filter(c => /^x[a-z0-9]+$/.test(c))
300
+ .sort()
301
+ .join(' ');
302
+ }
303
+
304
+ it('renders no mark elements when marks is omitted', () => {
305
+ const {container} = render(<ProgressBar value={50} label="Progress" />);
306
+ expect(container.querySelectorAll(MARK)).toHaveLength(0);
307
+ });
308
+
309
+ it('renders no mark elements for an empty marks array', () => {
310
+ const {container} = render(
311
+ <ProgressBar value={50} label="Progress" marks={[]} />,
312
+ );
313
+ expect(container.querySelectorAll(MARK)).toHaveLength(0);
314
+ });
315
+
316
+ it('renders a mark at the position matching its value', () => {
317
+ const {container} = render(
318
+ <ProgressBar
319
+ value={40}
320
+ label="Progress"
321
+ marks={[{value: 80, label: 'M'}]}
322
+ />,
323
+ );
324
+ const marks = container.querySelectorAll<HTMLElement>(MARK);
325
+ expect(marks).toHaveLength(1);
326
+ // value 80 of max 100 -> 80% along the track (RTL-safe logical property).
327
+ expect(marks[0].style.insetInlineStart).toBe('80%');
328
+ });
329
+
330
+ it('positions marks relative to a custom max', () => {
331
+ const {container} = render(
332
+ <ProgressBar
333
+ value={1}
334
+ max={5}
335
+ label="Steps"
336
+ marks={[{value: 4, label: 'M'}]}
337
+ />,
338
+ );
339
+ const marks = container.querySelectorAll<HTMLElement>(MARK);
340
+ // value 4 of max 5 -> 80%.
341
+ expect(marks[0].style.insetInlineStart).toBe('80%');
342
+ });
343
+
344
+ it('keeps a mark past the current value visible', () => {
345
+ // A mark beyond the fill still renders — it layers above the fill.
346
+ const {container} = render(
347
+ <ProgressBar
348
+ value={20}
349
+ label="Progress"
350
+ marks={[{value: 90, label: 'M'}]}
351
+ />,
352
+ );
353
+ const marks = container.querySelectorAll<HTMLElement>(MARK);
354
+ expect(marks).toHaveLength(1);
355
+ expect(marks[0].style.insetInlineStart).toBe('90%');
356
+ });
357
+
358
+ it('renders multiple marks', () => {
359
+ const {container} = render(
360
+ <ProgressBar
361
+ value={50}
362
+ label="Progress"
363
+ marks={[
364
+ {value: 25, label: 'M'},
365
+ {value: 50, label: 'M'},
366
+ {value: 80, label: 'M'},
367
+ ]}
368
+ />,
369
+ );
370
+ expect(container.querySelectorAll(MARK)).toHaveLength(3);
371
+ });
372
+
373
+ it('clamps out-of-range mark positions to the track edges', () => {
374
+ const {container} = render(
375
+ <ProgressBar
376
+ value={50}
377
+ label="Progress"
378
+ marks={[
379
+ {value: -10, label: 'M'},
380
+ {value: 150, label: 'M'},
381
+ ]}
382
+ />,
383
+ );
384
+ const marks = container.querySelectorAll<HTMLElement>(MARK);
385
+ expect(marks).toHaveLength(2);
386
+ expect(marks[0].style.insetInlineStart).toBe('0%');
387
+ expect(marks[1].style.insetInlineStart).toBe('100%');
388
+ });
389
+
390
+ it('drops non-finite mark values', () => {
391
+ const {container} = render(
392
+ <ProgressBar
393
+ value={50}
394
+ label="Progress"
395
+ marks={[
396
+ {value: NaN, label: 'M'},
397
+ {value: Infinity, label: 'M'},
398
+ {value: 60, label: 'M'},
399
+ ]}
400
+ />,
401
+ );
402
+ const marks = container.querySelectorAll<HTMLElement>(MARK);
403
+ expect(marks).toHaveLength(1);
404
+ expect(marks[0].style.insetInlineStart).toBe('60%');
405
+ });
406
+
407
+ it('does not render marks in indeterminate mode', () => {
408
+ const {container} = render(
409
+ <ProgressBar
410
+ isIndeterminate
411
+ label="Loading"
412
+ marks={[{value: 80, label: 'M'}]}
413
+ />,
414
+ );
415
+ expect(container.querySelectorAll(MARK)).toHaveLength(0);
416
+ });
417
+
418
+ // Mark color follows what the mark sits on: inside the filled area it
419
+ // takes the fill variant's on-color, out on the bare track it takes the
420
+ // primary text color. The choice is reflected as `data-placement`
421
+ // (plus `data-variant`, mirroring the fill) so themes can target it and
422
+ // tests can assert it without reading atomic class names.
423
+ it('marks the ticks inside the filled area as placed on the fill', () => {
424
+ const {container} = render(
425
+ <ProgressBar
426
+ value={60}
427
+ label="Progress"
428
+ marks={[
429
+ {value: 25, label: 'Behind'},
430
+ {value: 90, label: 'Ahead'},
431
+ ]}
432
+ />,
433
+ );
434
+ const marks = container.querySelectorAll<HTMLElement>(MARK);
435
+ expect(marks[0]).toHaveAttribute('data-placement', 'fill');
436
+ expect(marks[1]).toHaveAttribute('data-placement', 'track');
437
+ // Different placements resolve to different color styles.
438
+ expect(styleClasses(marks[0])).not.toBe(styleClasses(marks[1]));
439
+ });
440
+
441
+ it('treats a mark exactly at the current value as on the fill', () => {
442
+ const {container} = render(
443
+ <ProgressBar
444
+ value={70}
445
+ label="Progress"
446
+ marks={[{value: 70, label: 'Goal'}]}
447
+ />,
448
+ );
449
+ expect(container.querySelector(MARK)).toHaveAttribute(
450
+ 'data-placement',
451
+ 'fill',
452
+ );
453
+ });
454
+
455
+ it('places every mark on the track at zero progress', () => {
456
+ // With no fill drawn, even a mark at 0 sits on the bare track.
457
+ const {container} = render(
458
+ <ProgressBar
459
+ value={0}
460
+ label="Progress"
461
+ marks={[
462
+ {value: 0, label: 'Start'},
463
+ {value: 50, label: 'Goal'},
464
+ ]}
465
+ />,
466
+ );
467
+ const marks = container.querySelectorAll<HTMLElement>(MARK);
468
+ expect(marks[0]).toHaveAttribute('data-placement', 'track');
469
+ expect(marks[1]).toHaveAttribute('data-placement', 'track');
470
+ expect(styleClasses(marks[0])).toBe(styleClasses(marks[1]));
471
+ });
472
+
473
+ it('mirrors the fill variant on marks so the on-color matches the bar', () => {
474
+ const {container} = render(
475
+ <ProgressBar
476
+ value={80}
477
+ variant="warning"
478
+ label="Budget used"
479
+ marks={[
480
+ {value: 50, label: 'Half'},
481
+ {value: 95, label: 'Cap'},
482
+ ]}
483
+ />,
484
+ );
485
+ const marks = container.querySelectorAll<HTMLElement>(MARK);
486
+ expect(marks[0]).toHaveAttribute('data-variant', 'warning');
487
+ expect(marks[0]).toHaveAttribute('data-placement', 'fill');
488
+ expect(marks[1]).toHaveAttribute('data-variant', 'warning');
489
+ expect(marks[1]).toHaveAttribute('data-placement', 'track');
490
+ });
491
+
492
+ it('uses the disabled variant for marks when the bar is disabled', () => {
493
+ const {container} = render(
494
+ <ProgressBar
495
+ value={80}
496
+ variant="error"
497
+ isDisabled
498
+ label="Canceled"
499
+ marks={[{value: 50, label: 'Half'}]}
500
+ />,
501
+ );
502
+ expect(container.querySelector(MARK)).toHaveAttribute(
503
+ 'data-variant',
504
+ 'disabled',
505
+ );
506
+ });
507
+
508
+ it('keeps one plain foreground on both sides for neutral and disabled bars', () => {
509
+ // The neutral/disabled fill is the muted gray — it carries no semantic
510
+ // weight and has no on-token, so a mark on it takes the same plain
511
+ // foreground it would have out on the track.
512
+ for (const props of [
513
+ {variant: 'neutral'} as const,
514
+ {isDisabled: true} as const,
515
+ ]) {
516
+ const {container, unmount} = render(
517
+ <ProgressBar
518
+ value={60}
519
+ label="Progress"
520
+ {...props}
521
+ marks={[
522
+ {value: 20, label: 'On fill'},
523
+ {value: 90, label: 'On track'},
524
+ ]}
525
+ />,
526
+ );
527
+ const marks = container.querySelectorAll<HTMLElement>(MARK);
528
+ expect(marks[0]).toHaveAttribute('data-placement', 'fill');
529
+ expect(marks[1]).toHaveAttribute('data-placement', 'track');
530
+ expect(styleClasses(marks[0])).toBe(styleClasses(marks[1]));
531
+ unmount();
532
+ }
533
+ });
534
+
535
+ it("dims a disabled bar's marks below a live one's", () => {
536
+ // A disabled bar is deliberately low-emphasis (its label and value text
537
+ // drop to muted colors), so its marks step down to the secondary
538
+ // foreground on both sides rather than shouting over the grayed-out
539
+ // bar. A live neutral bar — same muted gray fill — keeps the
540
+ // full-contrast primary foreground.
541
+ const MARKS = [
542
+ {value: 20, label: 'On fill'},
543
+ {value: 90, label: 'On track'},
544
+ ];
545
+ const {container: live} = render(
546
+ <ProgressBar value={60} variant="neutral" label="A" marks={MARKS} />,
547
+ );
548
+ const {container: off} = render(
549
+ <ProgressBar value={60} isDisabled label="B" marks={MARKS} />,
550
+ );
551
+ const liveMarks = live.querySelectorAll<HTMLElement>(MARK);
552
+ const offMarks = off.querySelectorAll<HTMLElement>(MARK);
553
+ expect(styleClasses(offMarks[0])).not.toBe(styleClasses(liveMarks[0]));
554
+ expect(styleClasses(offMarks[1])).not.toBe(styleClasses(liveMarks[1]));
555
+ });
556
+
557
+ it('recolors marks per variant when they sit on the fill', () => {
558
+ // Two bars at the same progress with different variants give their
559
+ // on-fill marks different colors (different atomic classes), while
560
+ // their on-track marks stay the same divider color.
561
+ const {container: accent} = render(
562
+ <ProgressBar
563
+ value={60}
564
+ variant="accent"
565
+ label="A"
566
+ marks={[
567
+ {value: 20, label: 'On fill'},
568
+ {value: 90, label: 'On track'},
569
+ ]}
570
+ />,
571
+ );
572
+ const {container: error} = render(
573
+ <ProgressBar
574
+ value={60}
575
+ variant="error"
576
+ label="B"
577
+ marks={[
578
+ {value: 20, label: 'On fill'},
579
+ {value: 90, label: 'On track'},
580
+ ]}
581
+ />,
582
+ );
583
+ const accentMarks = accent.querySelectorAll<HTMLElement>(MARK);
584
+ const errorMarks = error.querySelectorAll<HTMLElement>(MARK);
585
+ expect(styleClasses(accentMarks[0])).not.toBe(
586
+ styleClasses(errorMarks[0]),
587
+ );
588
+ expect(styleClasses(accentMarks[1])).toBe(styleClasses(errorMarks[1]));
589
+ });
590
+
591
+ it('renders every mark as a focusable trigger (label is required, never decorative)', () => {
592
+ const {container} = render(
593
+ <ProgressBar
594
+ value={50}
595
+ label="Progress"
596
+ marks={[{value: 80, label: 'Goal'}]}
597
+ />,
598
+ );
599
+ const mark = container.querySelector<HTMLElement>(MARK)!;
600
+ // A mark always stands for something meaningful, so it is never
601
+ // aria-hidden and is always keyboard-focusable to reveal its label.
602
+ expect(mark).not.toHaveAttribute('aria-hidden');
603
+ expect(mark).toHaveAttribute('tabindex', '0');
604
+ // The name comes from the Tooltip (aria-describedby), not a role/label on
605
+ // the tick itself, so the progressbar's own subtree stays clean.
606
+ expect(mark).not.toHaveAttribute('role');
607
+ expect(mark).not.toHaveAttribute('aria-label');
608
+ });
609
+
610
+ it('reveals a labeled mark via a focusable Tooltip trigger', async () => {
611
+ const {container} = render(
612
+ <ProgressBar
613
+ value={50}
614
+ label="Progress"
615
+ marks={[{value: 80, label: 'Goal'}]}
616
+ />,
617
+ );
618
+ // Focusable so keyboard users can reveal the label; named via the
619
+ // Tooltip's aria-describedby rather than a labeled child of the bar.
620
+ // The Tooltip loads lazily (Suspense), so re-query the live element and
621
+ // wait for it to attach aria-describedby.
622
+ const mark0 = container.querySelector<HTMLElement>(MARK)!;
623
+ expect(mark0).toHaveAttribute('tabindex', '0');
624
+ expect(mark0).not.toHaveAttribute('aria-hidden');
625
+ await waitFor(() =>
626
+ expect(container.querySelector(MARK)).toHaveAttribute(
627
+ 'aria-describedby',
628
+ ),
629
+ );
630
+ const mark = container.querySelector<HTMLElement>(MARK)!;
631
+ const tip = document.getElementById(
632
+ mark.getAttribute('aria-describedby')!,
633
+ );
634
+ expect(tip).toHaveTextContent('Goal');
635
+ });
636
+
637
+ it('keeps the progressbar element free of role="img"/aria-label children', () => {
638
+ // Marks are children of role="progressbar" (unchanged DOM), but a
639
+ // mark uses a Tooltip (aria-describedby) rather than a
640
+ // role="img"+aria-label child, so nothing muddies what SRs announce for
641
+ // the bar.
642
+ const {container} = render(
643
+ <ProgressBar
644
+ value={50}
645
+ label="Progress"
646
+ marks={[{value: 80, label: 'Goal'}]}
647
+ />,
648
+ );
649
+ const progressbar = screen.getByRole('progressbar');
650
+ // Mark is a child of the progressbar (DOM unchanged from main).
651
+ expect(progressbar.querySelector(MARK)).not.toBeNull();
652
+ // But it is not a labeled graphic that pollutes the a11y subtree.
653
+ expect(progressbar.querySelector('[role="img"]')).toBeNull();
654
+ expect(progressbar.querySelector('[aria-label]')).toBeNull();
655
+ expect(container.querySelectorAll(MARK)).toHaveLength(1);
656
+ });
657
+
658
+ it('does not add mark info to the progressbar aria-valuetext', () => {
659
+ render(
660
+ <ProgressBar
661
+ value={50}
662
+ label="Progress"
663
+ marks={[{value: 80, label: 'Goal'}]}
664
+ />,
665
+ );
666
+ const progressbar = screen.getByRole('progressbar');
667
+ expect(progressbar.getAttribute('aria-valuetext')).toBe('50%');
668
+ });
669
+
670
+ it('renders marks as children of the progressbar (unchanged DOM)', () => {
671
+ // Marks stay children of role="progressbar", after the fill — the same
672
+ // shape as main. The fill remains the first child.
673
+ const {container} = render(
674
+ <ProgressBar
675
+ value={50}
676
+ label="Progress"
677
+ marks={[{value: 80, label: 'M'}]}
678
+ />,
679
+ );
680
+ const progressbar = screen.getByRole('progressbar');
681
+ const fill = progressbar.firstElementChild as HTMLElement;
682
+ expect(fill.style.width).toBe('50%');
683
+ expect(fill.classList.contains('astryx-progressbar-mark')).toBe(false);
684
+ const mark = container.querySelector<HTMLElement>(MARK)!;
685
+ expect(mark.closest('[role="progressbar"]')).toBe(progressbar);
686
+ expect(container.querySelectorAll(MARK)).toHaveLength(1);
687
+ });
688
+
689
+ it('does not clip marks in determinate mode (track carries no overflow:hidden)', () => {
690
+ // In determinate mode the track must NOT clip, so a themed taller mark
691
+ // can overhang the bar. (Indeterminate mode re-adds the clip — covered
692
+ // separately — but marks are suppressed there, so nothing overhangs.)
693
+ render(
694
+ <ProgressBar
695
+ value={50}
696
+ label="Progress"
697
+ marks={[{value: 80, label: 'M'}]}
698
+ />,
699
+ );
700
+ const progressbar = screen.getByRole('progressbar');
701
+ const trackClass = Array.from(progressbar.classList).find(c =>
702
+ c.startsWith('x'),
703
+ );
704
+ let css = '';
705
+ for (const sheet of Array.from(document.styleSheets)) {
706
+ try {
707
+ for (const rule of Array.from(sheet.cssRules)) {
708
+ css += rule.cssText + '\n';
709
+ }
710
+ } catch {
711
+ // ignore cross-origin sheets
712
+ }
713
+ }
714
+ css += Array.from(document.querySelectorAll('style'))
715
+ .map(s => s.textContent || '')
716
+ .join('\n');
717
+ // The atomic class that would set overflow:hidden must not be applied to
718
+ // the track. Sanity-check the bar still rendered with a StyleX class.
719
+ expect(trackClass).toBeDefined();
720
+ // No rule targeting the track's classes sets overflow:hidden. (StyleX
721
+ // atomic classes are unique per declaration; if overflow:hidden were on
722
+ // the track we'd see it applied. We assert the track element's computed
723
+ // intent by checking no overflow:hidden atomic is in its class list's
724
+ // rules — simplest robust check: the track style object omits it.)
725
+ const trackHasOverflowHidden = Array.from(progressbar.classList).some(
726
+ cls => {
727
+ const re = new RegExp(
728
+ `\\.${cls}\\b[^{]*\\{[^}]*overflow:\\s*hidden`,
729
+ 'i',
730
+ );
731
+ return re.test(css);
732
+ },
733
+ );
734
+ expect(trackHasOverflowHidden).toBe(false);
735
+ });
736
+
737
+ it('clips the track in indeterminate mode (the sliding fill must not escape)', () => {
738
+ // Regression: the indeterminate fill slides from translateX -100% to
739
+ // 250%, deliberately overshooting the track, and relies on the track
740
+ // clipping it to the visible window. Determinate mode drops the clip so
741
+ // marks can overhang — indeterminate mode must keep it.
742
+ render(<ProgressBar isIndeterminate label="Loading" />);
743
+ const progressbar = screen.getByRole('progressbar');
744
+ let css = '';
745
+ for (const sheet of Array.from(document.styleSheets)) {
746
+ try {
747
+ for (const rule of Array.from(sheet.cssRules)) {
748
+ css += rule.cssText + '\n';
749
+ }
750
+ } catch {
751
+ // ignore cross-origin sheets
752
+ }
753
+ }
754
+ css += Array.from(document.querySelectorAll('style'))
755
+ .map(s => s.textContent || '')
756
+ .join('\n');
757
+ const trackHasOverflowHidden = Array.from(progressbar.classList).some(
758
+ cls => {
759
+ const re = new RegExp(
760
+ `\\.${cls}\\b[^{]*\\{[^}]*overflow:\\s*hidden`,
761
+ 'i',
762
+ );
763
+ return re.test(css);
764
+ },
765
+ );
766
+ expect(trackHasOverflowHidden).toBe(true);
767
+ });
768
+
769
+ it('renders the mark on the stable progressbar-mark target, centered for symmetric overhang', () => {
770
+ // The mark's width/height/color are directly overridable via the
771
+ // `progressbar-mark` theme target (no dedicated CSS vars). It is centered
772
+ // on the track (translate -50%,-50%) so a themed taller tick overhangs the
773
+ // bar symmetrically above and below without being clipped.
774
+ const {container} = render(
775
+ <ProgressBar
776
+ value={50}
777
+ label="Progress"
778
+ marks={[{value: 80, label: 'M'}]}
779
+ />,
780
+ );
781
+ const mark = container.querySelector<HTMLElement>(MARK)!;
782
+ expect(mark.className).toContain('astryx-progressbar-mark');
783
+ let css = '';
784
+ for (const sheet of Array.from(document.styleSheets)) {
785
+ try {
786
+ for (const rule of Array.from(sheet.cssRules)) {
787
+ css += rule.cssText + '\n';
788
+ }
789
+ } catch {
790
+ // ignore cross-origin sheets
791
+ }
792
+ }
793
+ css += Array.from(document.querySelectorAll('style'))
794
+ .map(s => s.textContent || '')
795
+ .join('\n');
796
+ // Centered so any themed overhang stays symmetric.
797
+ expect(css).toMatch(/translate\(-50%,\s*-50%\)/);
798
+ expect(container.querySelectorAll(MARK)).toHaveLength(1);
799
+ });
800
+ });
280
801
  });