@astryxdesign/core 0.2.0-canary.ea693ac → 0.2.0-canary.ebed74f

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 (951) hide show
  1. package/README.md +5 -3
  2. package/dist/AlertDialog/AlertDialog.d.ts +1 -1
  3. package/dist/AlertDialog/AlertDialog.js +1 -1
  4. package/dist/AppShell/AppShell.d.ts +2 -20
  5. package/dist/AppShell/AppShell.d.ts.map +1 -1
  6. package/dist/AppShell/AppShell.js +1 -14
  7. package/dist/AppShell/index.d.ts +20 -1
  8. package/dist/AppShell/index.d.ts.map +1 -1
  9. package/dist/AppShell/index.js +14 -0
  10. package/dist/AspectRatio/AspectRatio.d.ts +1 -1
  11. package/dist/AspectRatio/AspectRatio.js +1 -1
  12. package/dist/Avatar/Avatar.d.ts +1 -1
  13. package/dist/Avatar/Avatar.d.ts.map +1 -1
  14. package/dist/Avatar/Avatar.js +4 -4
  15. package/dist/Avatar/AvatarStatusDot.d.ts +2 -26
  16. package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
  17. package/dist/Avatar/AvatarStatusDot.js +1 -22
  18. package/dist/Avatar/index.d.ts +26 -1
  19. package/dist/Avatar/index.d.ts.map +1 -1
  20. package/dist/Avatar/index.js +21 -0
  21. package/dist/AvatarGroup/AvatarGroup.d.ts +1 -1
  22. package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
  23. package/dist/AvatarGroup/AvatarGroup.js +4 -8
  24. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +1 -1
  25. package/dist/AvatarGroup/AvatarGroupOverflow.js +1 -1
  26. package/dist/Badge/Badge.d.ts +2 -30
  27. package/dist/Badge/Badge.d.ts.map +1 -1
  28. package/dist/Badge/Badge.js +2 -17
  29. package/dist/Badge/index.d.ts +31 -2
  30. package/dist/Badge/index.d.ts.map +1 -1
  31. package/dist/Badge/index.js +15 -1
  32. package/dist/Banner/Banner.d.ts +2 -37
  33. package/dist/Banner/Banner.d.ts.map +1 -1
  34. package/dist/Banner/Banner.js +6 -34
  35. package/dist/Banner/index.d.ts +37 -1
  36. package/dist/Banner/index.d.ts.map +1 -1
  37. package/dist/Banner/index.js +27 -0
  38. package/dist/Blockquote/Blockquote.d.ts +1 -1
  39. package/dist/Blockquote/Blockquote.js +1 -1
  40. package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
  41. package/dist/Breadcrumbs/BreadcrumbItem.js +4 -3
  42. package/dist/Breadcrumbs/Breadcrumbs.d.ts +2 -18
  43. package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  44. package/dist/Breadcrumbs/Breadcrumbs.js +1 -15
  45. package/dist/Breadcrumbs/index.d.ts +18 -1
  46. package/dist/Breadcrumbs/index.d.ts.map +1 -1
  47. package/dist/Breadcrumbs/index.js +14 -0
  48. package/dist/Button/Button.d.ts +2 -20
  49. package/dist/Button/Button.d.ts.map +1 -1
  50. package/dist/Button/Button.js +2 -17
  51. package/dist/Button/index.d.ts +21 -3
  52. package/dist/Button/index.d.ts.map +1 -1
  53. package/dist/Button/index.js +15 -1
  54. package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
  55. package/dist/ButtonGroup/ButtonGroup.js +1 -1
  56. package/dist/Calendar/Calendar.js +1 -1
  57. package/dist/Calendar/styles.d.ts +2 -2
  58. package/dist/Calendar/styles.js +2 -2
  59. package/dist/Card/Card.d.ts +1 -1
  60. package/dist/Card/Card.js +1 -1
  61. package/dist/Carousel/Carousel.d.ts +54 -3
  62. package/dist/Carousel/Carousel.d.ts.map +1 -1
  63. package/dist/Carousel/Carousel.js +82 -15
  64. package/dist/Carousel/index.d.ts +1 -1
  65. package/dist/Carousel/index.d.ts.map +1 -1
  66. package/dist/Center/Center.d.ts +21 -4
  67. package/dist/Center/Center.d.ts.map +1 -1
  68. package/dist/Center/Center.js +11 -3
  69. package/dist/Chat/ChatComposer.d.ts +1 -1
  70. package/dist/Chat/ChatComposer.js +9 -9
  71. package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
  72. package/dist/Chat/ChatComposerDrawer.js +3 -3
  73. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  74. package/dist/Chat/ChatComposerInput.js +1 -1
  75. package/dist/Chat/ChatDictationButton.d.ts +1 -1
  76. package/dist/Chat/ChatDictationButton.js +1 -1
  77. package/dist/Chat/ChatLayout.d.ts +8 -1
  78. package/dist/Chat/ChatLayout.d.ts.map +1 -1
  79. package/dist/Chat/ChatLayout.js +15 -4
  80. package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
  81. package/dist/Chat/ChatLayoutScrollButton.js +1 -1
  82. package/dist/Chat/ChatMessage.d.ts +1 -1
  83. package/dist/Chat/ChatMessage.js +1 -1
  84. package/dist/Chat/ChatMessageBubble.d.ts +1 -1
  85. package/dist/Chat/ChatMessageBubble.js +1 -1
  86. package/dist/Chat/ChatMessageList.d.ts +1 -1
  87. package/dist/Chat/ChatMessageList.js +1 -1
  88. package/dist/Chat/ChatSendButton.d.ts.map +1 -1
  89. package/dist/Chat/ChatSendButton.js +4 -2
  90. package/dist/Chat/ChatSystemMessage.d.ts +1 -1
  91. package/dist/Chat/ChatSystemMessage.js +1 -1
  92. package/dist/Chat/ChatTokenizedText.d.ts +1 -1
  93. package/dist/Chat/ChatTokenizedText.js +1 -1
  94. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  95. package/dist/CheckboxInput/CheckboxInput.js +1 -1
  96. package/dist/CheckboxList/CheckboxList.d.ts +1 -1
  97. package/dist/CheckboxList/CheckboxList.js +1 -1
  98. package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
  99. package/dist/CheckboxList/CheckboxListItem.js +1 -1
  100. package/dist/Citation/Citation.d.ts +1 -1
  101. package/dist/Citation/Citation.js +1 -1
  102. package/dist/ClickableCard/ClickableCard.d.ts +3 -3
  103. package/dist/ClickableCard/ClickableCard.js +3 -3
  104. package/dist/Code/Code.d.ts +2 -2
  105. package/dist/Code/Code.js +2 -2
  106. package/dist/Collapsible/Collapsible.d.ts +1 -1
  107. package/dist/Collapsible/Collapsible.js +3 -3
  108. package/dist/Collapsible/CollapsibleGroup.d.ts +1 -1
  109. package/dist/Collapsible/CollapsibleGroup.js +1 -1
  110. package/dist/Collapsible/CollapsibleGroupContext.js +1 -1
  111. package/dist/CommandPalette/CommandPalette.d.ts +1 -1
  112. package/dist/CommandPalette/CommandPalette.js +1 -1
  113. package/dist/CommandPalette/CommandPaletteEmpty.js +1 -1
  114. package/dist/CommandPalette/CommandPaletteFooter.js +1 -1
  115. package/dist/CommandPalette/CommandPaletteGroup.js +1 -1
  116. package/dist/CommandPalette/CommandPaletteInput.d.ts +2 -2
  117. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  118. package/dist/CommandPalette/CommandPaletteInput.js +4 -2
  119. package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
  120. package/dist/CommandPalette/CommandPaletteItem.js +1 -1
  121. package/dist/CommandPalette/CommandPaletteList.js +1 -1
  122. package/dist/ContextMenu/ContextMenu.d.ts +2 -2
  123. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  124. package/dist/ContextMenu/ContextMenu.js +14 -5
  125. package/dist/DateInput/DateInput.js +1 -1
  126. package/dist/DateRangeInput/DateRangeInput.js +1 -1
  127. package/dist/DateTimeInput/DateTimeInput.js +1 -1
  128. package/dist/Dialog/Dialog.d.ts +46 -23
  129. package/dist/Dialog/Dialog.d.ts.map +1 -1
  130. package/dist/Dialog/Dialog.js +59 -31
  131. package/dist/Dialog/DialogHeader.d.ts +1 -1
  132. package/dist/Dialog/DialogHeader.js +1 -1
  133. package/dist/Dialog/index.d.ts +18 -1
  134. package/dist/Dialog/index.d.ts.map +1 -1
  135. package/dist/Dialog/index.js +14 -0
  136. package/dist/Divider/Divider.d.ts +2 -18
  137. package/dist/Divider/Divider.d.ts.map +1 -1
  138. package/dist/Divider/Divider.js +1 -15
  139. package/dist/Divider/index.d.ts +18 -1
  140. package/dist/Divider/index.d.ts.map +1 -1
  141. package/dist/Divider/index.js +14 -0
  142. package/dist/DropdownMenu/DropdownMenu.d.ts +9 -3
  143. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  144. package/dist/DropdownMenu/DropdownMenu.js +23 -19
  145. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
  146. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  147. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
  148. package/dist/DropdownMenu/DropdownMenuItem.d.ts +1 -1
  149. package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
  150. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  151. package/dist/DropdownMenu/DropdownMenuRadioItem.js +5 -1
  152. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
  153. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  154. package/dist/DropdownMenu/DropdownMenuSubMenu.js +14 -6
  155. package/dist/DropdownMenu/menuItemHover.d.ts +1 -0
  156. package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
  157. package/dist/DropdownMenu/menuItemHover.js +1 -0
  158. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  159. package/dist/DropdownMenu/renderDropdownItems.js +6 -4
  160. package/dist/EmptyState/EmptyState.d.ts +1 -1
  161. package/dist/EmptyState/EmptyState.js +1 -1
  162. package/dist/Field/Field.d.ts +1 -1
  163. package/dist/Field/Field.js +1 -1
  164. package/dist/Field/FieldLabel.d.ts +2 -2
  165. package/dist/Field/FieldLabel.d.ts.map +1 -1
  166. package/dist/Field/FieldLabel.js +41 -2
  167. package/dist/FieldStatus/FieldStatus.d.ts +1 -18
  168. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  169. package/dist/FieldStatus/FieldStatus.js +13 -17
  170. package/dist/FieldStatus/index.d.ts +19 -1
  171. package/dist/FieldStatus/index.d.ts.map +1 -1
  172. package/dist/FieldStatus/index.js +14 -0
  173. package/dist/FileInput/FileInput.js +1 -1
  174. package/dist/FormLayout/FormLayout.d.ts +1 -1
  175. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  176. package/dist/FormLayout/FormLayout.js +1 -1
  177. package/dist/Grid/Grid.d.ts +1 -1
  178. package/dist/Grid/Grid.js +1 -1
  179. package/dist/Grid/GridSpan.d.ts +1 -1
  180. package/dist/Grid/GridSpan.js +1 -1
  181. package/dist/HStack/HStack.d.ts +1 -1
  182. package/dist/HStack/HStack.js +1 -1
  183. package/dist/Heading/Heading.d.ts +2 -2
  184. package/dist/Heading/Heading.d.ts.map +1 -1
  185. package/dist/Heading/Heading.js +5 -4
  186. package/dist/HoverCard/HoverCard.d.ts +1 -1
  187. package/dist/HoverCard/HoverCard.js +1 -1
  188. package/dist/Icon/Icon.d.ts +1 -1
  189. package/dist/Icon/Icon.d.ts.map +1 -1
  190. package/dist/Icon/Icon.js +4 -2
  191. package/dist/Icon/globalIconRegistry.d.ts +47 -5
  192. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  193. package/dist/Icon/globalIconRegistry.js +74 -7
  194. package/dist/Icon/index.d.ts +4 -3
  195. package/dist/Icon/index.d.ts.map +1 -1
  196. package/dist/Icon/index.js +2 -1
  197. package/dist/Icon/useIcon.d.ts +14 -0
  198. package/dist/Icon/useIcon.d.ts.map +1 -0
  199. package/dist/Icon/useIcon.js +21 -0
  200. package/dist/IconButton/IconButton.d.ts +1 -1
  201. package/dist/IconButton/IconButton.js +1 -1
  202. package/dist/InputGroup/InputGroup.d.ts +1 -1
  203. package/dist/InputGroup/InputGroup.js +1 -1
  204. package/dist/InputGroup/InputGroupText.d.ts +1 -1
  205. package/dist/InputGroup/InputGroupText.js +1 -1
  206. package/dist/Item/Item.d.ts +1 -1
  207. package/dist/Item/Item.js +1 -1
  208. package/dist/Kbd/Kbd.d.ts +1 -1
  209. package/dist/Kbd/Kbd.js +1 -1
  210. package/dist/Layout/Layout.d.ts +1 -1
  211. package/dist/Layout/Layout.js +1 -1
  212. package/dist/Layout/LayoutContent.d.ts +1 -1
  213. package/dist/Layout/LayoutContent.js +1 -1
  214. package/dist/Layout/LayoutFooter.d.ts +1 -1
  215. package/dist/Layout/LayoutFooter.js +1 -1
  216. package/dist/Layout/LayoutHeader.d.ts +1 -1
  217. package/dist/Layout/LayoutHeader.js +1 -1
  218. package/dist/Layout/LayoutPanel.d.ts +1 -1
  219. package/dist/Layout/LayoutPanel.js +1 -1
  220. package/dist/Lightbox/Lightbox.d.ts +1 -1
  221. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  222. package/dist/Lightbox/Lightbox.js +16 -3
  223. package/dist/Link/Link.d.ts +1 -1
  224. package/dist/Link/Link.js +1 -1
  225. package/dist/Link/LinkProvider.d.ts +2 -2
  226. package/dist/Link/LinkProvider.js +2 -2
  227. package/dist/List/List.d.ts +1 -1
  228. package/dist/List/List.js +1 -1
  229. package/dist/List/ListItem.d.ts +1 -1
  230. package/dist/List/ListItem.js +1 -1
  231. package/dist/Markdown/Markdown.d.ts.map +1 -1
  232. package/dist/Markdown/Markdown.js +35 -13
  233. package/dist/MetadataList/MetadataList.d.ts +1 -1
  234. package/dist/MetadataList/MetadataList.js +1 -1
  235. package/dist/MetadataList/MetadataListItem.d.ts +1 -1
  236. package/dist/MetadataList/MetadataListItem.js +1 -1
  237. package/dist/MobileNav/MobileNav.d.ts +1 -1
  238. package/dist/MobileNav/MobileNav.js +1 -1
  239. package/dist/MoreMenu/MoreMenu.d.ts +1 -1
  240. package/dist/MoreMenu/MoreMenu.js +3 -3
  241. package/dist/MultiSelector/MultiSelector.d.ts +13 -4
  242. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  243. package/dist/MultiSelector/MultiSelector.js +105 -22
  244. package/dist/NavIcon/NavIcon.d.ts +1 -1
  245. package/dist/NavIcon/NavIcon.js +1 -1
  246. package/dist/NumberInput/NumberInput.d.ts +1 -1
  247. package/dist/NumberInput/NumberInput.js +1 -1
  248. package/dist/Outline/Outline.js +1 -1
  249. package/dist/OverflowList/OverflowList.d.ts +1 -1
  250. package/dist/OverflowList/OverflowList.js +1 -1
  251. package/dist/Pagination/Pagination.d.ts +1 -20
  252. package/dist/Pagination/Pagination.d.ts.map +1 -1
  253. package/dist/Pagination/Pagination.js +1 -15
  254. package/dist/Pagination/index.d.ts +21 -1
  255. package/dist/Pagination/index.d.ts.map +1 -1
  256. package/dist/Pagination/index.js +14 -0
  257. package/dist/Popover/Popover.d.ts +20 -3
  258. package/dist/Popover/Popover.d.ts.map +1 -1
  259. package/dist/Popover/Popover.js +5 -1
  260. package/dist/Popover/usePopover.d.ts.map +1 -1
  261. package/dist/Popover/usePopover.js +14 -3
  262. package/dist/PowerSearch/PowerSearch.d.ts +1 -1
  263. package/dist/PowerSearch/PowerSearch.js +1 -1
  264. package/dist/ProgressBar/ProgressBar.d.ts +1 -20
  265. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  266. package/dist/ProgressBar/ProgressBar.js +1 -15
  267. package/dist/ProgressBar/index.d.ts +21 -1
  268. package/dist/ProgressBar/index.d.ts.map +1 -1
  269. package/dist/ProgressBar/index.js +14 -0
  270. package/dist/RadioList/RadioList.d.ts +1 -1
  271. package/dist/RadioList/RadioList.js +1 -1
  272. package/dist/RadioList/RadioListItem.d.ts +1 -1
  273. package/dist/RadioList/RadioListItem.js +1 -1
  274. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  275. package/dist/Resizable/ResizeHandle.js +3 -10
  276. package/dist/Section/Section.d.ts +2 -19
  277. package/dist/Section/Section.d.ts.map +1 -1
  278. package/dist/Section/Section.js +1 -15
  279. package/dist/Section/index.d.ts +19 -1
  280. package/dist/Section/index.d.ts.map +1 -1
  281. package/dist/Section/index.js +14 -0
  282. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  283. package/dist/SegmentedControl/SegmentedControl.js +1 -1
  284. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  285. package/dist/SegmentedControl/SegmentedControlItem.js +1 -1
  286. package/dist/SelectableCard/SelectableCard.d.ts +4 -3
  287. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  288. package/dist/SelectableCard/SelectableCard.js +15 -3
  289. package/dist/Selector/Selector.d.ts +12 -3
  290. package/dist/Selector/Selector.d.ts.map +1 -1
  291. package/dist/Selector/Selector.js +104 -21
  292. package/dist/SideNav/SideNav.d.ts +1 -1
  293. package/dist/SideNav/SideNav.js +1 -1
  294. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  295. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  296. package/dist/SideNav/SideNavCollapseButton.js +4 -3
  297. package/dist/SideNav/SideNavHeading.d.ts +1 -1
  298. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  299. package/dist/SideNav/SideNavHeading.js +8 -7
  300. package/dist/SideNav/SideNavItem.d.ts +2 -2
  301. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  302. package/dist/SideNav/SideNavItem.js +6 -7
  303. package/dist/SideNav/SideNavSection.d.ts +1 -1
  304. package/dist/SideNav/SideNavSection.js +1 -1
  305. package/dist/Skeleton/Skeleton.d.ts +1 -1
  306. package/dist/Skeleton/Skeleton.js +1 -1
  307. package/dist/Slider/Slider.d.ts.map +1 -1
  308. package/dist/Slider/Slider.js +78 -68
  309. package/dist/Spinner/Spinner.d.ts +1 -1
  310. package/dist/Spinner/Spinner.js +1 -1
  311. package/dist/Stack/Stack.d.ts +1 -1
  312. package/dist/Stack/Stack.js +1 -1
  313. package/dist/Stack/StackItem.d.ts +1 -1
  314. package/dist/Stack/StackItem.js +1 -1
  315. package/dist/StatusDot/StatusDot.d.ts +1 -20
  316. package/dist/StatusDot/StatusDot.d.ts.map +1 -1
  317. package/dist/StatusDot/StatusDot.js +2 -17
  318. package/dist/StatusDot/index.d.ts +21 -1
  319. package/dist/StatusDot/index.d.ts.map +1 -1
  320. package/dist/StatusDot/index.js +14 -0
  321. package/dist/Switch/Switch.d.ts +1 -1
  322. package/dist/Switch/Switch.js +1 -1
  323. package/dist/TabList/Tab.d.ts +1 -1
  324. package/dist/TabList/Tab.js +1 -1
  325. package/dist/TabList/TabList.d.ts +1 -1
  326. package/dist/TabList/TabList.js +1 -1
  327. package/dist/TabList/TabMenu.d.ts +1 -1
  328. package/dist/TabList/TabMenu.js +1 -1
  329. package/dist/Table/BaseTable.d.ts +1 -1
  330. package/dist/Table/BaseTable.js +1 -1
  331. package/dist/Table/Table.d.ts +1 -1
  332. package/dist/Table/Table.js +1 -1
  333. package/dist/Table/TableCell.d.ts +1 -1
  334. package/dist/Table/TableCell.js +1 -1
  335. package/dist/Table/TableHeaderCell.d.ts +1 -1
  336. package/dist/Table/TableHeaderCell.js +1 -1
  337. package/dist/Table/TableRow.d.ts +1 -1
  338. package/dist/Table/TableRow.js +1 -1
  339. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
  340. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  341. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +21 -3
  342. package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
  343. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  344. package/dist/Table/plugins/tree/useTableTreeData.js +36 -2
  345. package/dist/Text/Text.d.ts +11 -2
  346. package/dist/Text/Text.d.ts.map +1 -1
  347. package/dist/Text/Text.js +26 -3
  348. package/dist/Text/index.d.ts +31 -1
  349. package/dist/Text/index.d.ts.map +1 -1
  350. package/dist/Text/index.js +23 -0
  351. package/dist/TextArea/TextArea.d.ts +1 -1
  352. package/dist/TextArea/TextArea.d.ts.map +1 -1
  353. package/dist/TextArea/TextArea.js +107 -39
  354. package/dist/TextInput/TextInput.d.ts +1 -1
  355. package/dist/TextInput/TextInput.js +1 -1
  356. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  357. package/dist/Thumbnail/Thumbnail.js +52 -46
  358. package/dist/TimeInput/TimeInput.js +1 -1
  359. package/dist/Timestamp/Timestamp.d.ts +4 -1
  360. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  361. package/dist/Timestamp/Timestamp.js +78 -7
  362. package/dist/Timestamp/formatInstant.d.ts +3 -3
  363. package/dist/Timestamp/formatInstant.d.ts.map +1 -1
  364. package/dist/Timestamp/formatInstant.js +2 -2
  365. package/dist/Timestamp/tooltipEntries.d.ts +3 -2
  366. package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
  367. package/dist/Timestamp/tooltipEntries.js +3 -2
  368. package/dist/ToggleButton/ToggleButton.d.ts +1 -1
  369. package/dist/ToggleButton/ToggleButton.js +1 -1
  370. package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
  371. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  372. package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
  373. package/dist/Token/Token.d.ts +2 -27
  374. package/dist/Token/Token.d.ts.map +1 -1
  375. package/dist/Token/Token.js +1 -15
  376. package/dist/Token/index.d.ts +27 -1
  377. package/dist/Token/index.d.ts.map +1 -1
  378. package/dist/Token/index.js +14 -0
  379. package/dist/Tokenizer/Tokenizer.d.ts +1 -1
  380. package/dist/Tokenizer/Tokenizer.js +1 -1
  381. package/dist/Toolbar/Toolbar.d.ts +1 -1
  382. package/dist/Toolbar/Toolbar.js +1 -1
  383. package/dist/Tooltip/Tooltip.d.ts +1 -1
  384. package/dist/Tooltip/Tooltip.js +1 -1
  385. package/dist/TopNav/TopNav.d.ts +1 -1
  386. package/dist/TopNav/TopNav.js +1 -1
  387. package/dist/TopNav/TopNavHeading.d.ts +1 -1
  388. package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
  389. package/dist/TopNav/TopNavHeading.js +7 -6
  390. package/dist/TopNav/TopNavItem.d.ts +1 -1
  391. package/dist/TopNav/TopNavItem.js +1 -1
  392. package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
  393. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  394. package/dist/TopNav/TopNavMegaMenu.js +15 -7
  395. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  396. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
  397. package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
  398. package/dist/TopNav/TopNavMegaMenuItem.js +1 -1
  399. package/dist/TopNav/TopNavMenu.d.ts +1 -1
  400. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  401. package/dist/TopNav/TopNavMenu.js +5 -4
  402. package/dist/TreeList/TreeList.d.ts +1 -1
  403. package/dist/TreeList/TreeList.js +1 -1
  404. package/dist/TreeList/TreeListBranches.js +1 -1
  405. package/dist/TreeList/TreeListItem.d.ts +1 -1
  406. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  407. package/dist/TreeList/TreeListItem.js +4 -3
  408. package/dist/TreeList/TreeListTypes.d.ts +1 -17
  409. package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
  410. package/dist/TreeList/index.d.ts +18 -1
  411. package/dist/TreeList/index.d.ts.map +1 -1
  412. package/dist/TreeList/index.js +14 -0
  413. package/dist/Typeahead/BaseTypeahead.d.ts +1 -1
  414. package/dist/Typeahead/BaseTypeahead.js +1 -1
  415. package/dist/Typeahead/Typeahead.d.ts +1 -1
  416. package/dist/Typeahead/Typeahead.js +1 -1
  417. package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
  418. package/dist/Typeahead/TypeaheadItem.js +1 -1
  419. package/dist/VStack/VStack.d.ts +1 -1
  420. package/dist/VStack/VStack.js +1 -1
  421. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  422. package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
  423. package/dist/astryx.css +83 -22
  424. package/dist/astryx.umd.js +50 -50
  425. package/dist/astryx.umd.js.map +4 -4
  426. package/dist/hooks/containerReveal.pool.stylex.d.ts +303 -0
  427. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -0
  428. package/dist/hooks/containerReveal.pool.stylex.js +292 -0
  429. package/dist/hooks/index.d.ts +2 -0
  430. package/dist/hooks/index.d.ts.map +1 -1
  431. package/dist/hooks/index.js +2 -1
  432. package/dist/hooks/useContainerReveal.d.ts +83 -0
  433. package/dist/hooks/useContainerReveal.d.ts.map +1 -0
  434. package/dist/hooks/useContainerReveal.js +123 -0
  435. package/dist/hooks/useGridFocus.d.ts +8 -6
  436. package/dist/hooks/useGridFocus.d.ts.map +1 -1
  437. package/dist/hooks/useInputContainer.d.ts.map +1 -1
  438. package/dist/hooks/useInputContainer.js +29 -1
  439. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  440. package/dist/hooks/useInputStatusIcon.js +11 -0
  441. package/dist/hooks/useKeyboardHint.d.ts +1 -1
  442. package/dist/hooks/useKeyboardHint.js +1 -1
  443. package/dist/hooks/useListFocus.d.ts +8 -7
  444. package/dist/hooks/useListFocus.d.ts.map +1 -1
  445. package/dist/hooks/useTreeFocus.d.ts.map +1 -1
  446. package/dist/hooks/useTreeFocus.js +13 -2
  447. package/dist/index.d.ts +2 -1
  448. package/dist/index.d.ts.map +1 -1
  449. package/dist/index.js +5 -1
  450. package/dist/theme/Theme.d.ts.map +1 -1
  451. package/dist/theme/Theme.js +2 -7
  452. package/dist/theme/defineTheme.d.ts +6 -0
  453. package/dist/theme/defineTheme.d.ts.map +1 -1
  454. package/dist/theme/defineTheme.js +4 -1
  455. package/dist/theme/expandColorScale.d.ts +19 -2
  456. package/dist/theme/expandColorScale.d.ts.map +1 -1
  457. package/dist/theme/expandColorScale.js +38 -10
  458. package/dist/theme/index.d.ts +6 -4
  459. package/dist/theme/index.d.ts.map +1 -1
  460. package/dist/theme/index.js +2 -1
  461. package/dist/theme/themeRegistry.d.ts +32 -0
  462. package/dist/theme/themeRegistry.d.ts.map +1 -0
  463. package/dist/theme/themeRegistry.js +49 -0
  464. package/dist/theme/types.d.ts +10 -2
  465. package/dist/theme/types.d.ts.map +1 -1
  466. package/dist/theme/useTheme.d.ts +9 -0
  467. package/dist/theme/useTheme.d.ts.map +1 -1
  468. package/dist/theme/useTheme.js +82 -27
  469. package/dist/utils/rtlStyles.d.ts +21 -0
  470. package/dist/utils/rtlStyles.d.ts.map +1 -1
  471. package/dist/utils/rtlStyles.js +26 -1
  472. package/groups.doc.mjs +2 -2
  473. package/locales/en.json +8 -0
  474. package/locales/pseudo.json +6 -0
  475. package/package.json +4 -13
  476. package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
  477. package/src/AlertDialog/AlertDialog.tsx +1 -1
  478. package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
  479. package/src/AppShell/AppShell.doc.mjs +3 -3
  480. package/src/AppShell/AppShell.tsx +2 -20
  481. package/src/AppShell/index.ts +20 -1
  482. package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
  483. package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
  484. package/src/AspectRatio/AspectRatio.tsx +1 -1
  485. package/src/Avatar/Avatar.doc.mjs +3 -3
  486. package/src/Avatar/Avatar.tsx +8 -3
  487. package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
  488. package/src/Avatar/AvatarStatusDot.tsx +2 -27
  489. package/src/Avatar/index.ts +26 -1
  490. package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
  491. package/src/AvatarGroup/AvatarGroup.tsx +3 -7
  492. package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
  493. package/src/AvatarGroup/AvatarGroupOverflow.tsx +1 -1
  494. package/src/Badge/Badge.doc.mjs +3 -3
  495. package/src/Badge/Badge.tsx +2 -31
  496. package/src/Badge/index.ts +32 -6
  497. package/src/Banner/Banner.doc.mjs +3 -3
  498. package/src/Banner/Banner.tsx +8 -45
  499. package/src/Banner/index.ts +39 -7
  500. package/src/Blockquote/Blockquote.doc.mjs +3 -3
  501. package/src/Blockquote/Blockquote.tsx +1 -1
  502. package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
  503. package/src/Breadcrumbs/BreadcrumbItem.tsx +5 -3
  504. package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
  505. package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
  506. package/src/Breadcrumbs/index.ts +19 -5
  507. package/src/Button/Button.doc.mjs +3 -3
  508. package/src/Button/Button.tsx +2 -21
  509. package/src/Button/index.ts +22 -7
  510. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
  511. package/src/ButtonGroup/ButtonGroup.tsx +1 -1
  512. package/src/Calendar/Calendar.doc.mjs +3 -3
  513. package/src/Calendar/Calendar.test.tsx +15 -3
  514. package/src/Calendar/Calendar.tsx +1 -1
  515. package/src/Calendar/styles.ts +2 -2
  516. package/src/Card/Card.doc.mjs +3 -3
  517. package/src/Card/Card.tsx +1 -1
  518. package/src/Carousel/Carousel.doc.mjs +10 -3
  519. package/src/Carousel/Carousel.test.tsx +232 -1
  520. package/src/Carousel/Carousel.tsx +144 -21
  521. package/src/Carousel/index.ts +1 -1
  522. package/src/Center/Center.doc.mjs +41 -3
  523. package/src/Center/Center.test.tsx +75 -0
  524. package/src/Center/Center.tsx +38 -3
  525. package/src/Chat/Chat.doc.mjs +3 -3
  526. package/src/Chat/ChatComposer.doc.mjs +1 -1
  527. package/src/Chat/ChatComposer.tsx +5 -5
  528. package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
  529. package/src/Chat/ChatComposerDrawer.tsx +3 -3
  530. package/src/Chat/ChatComposerInput.doc.mjs +1 -1
  531. package/src/Chat/ChatComposerInput.tsx +1 -1
  532. package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
  533. package/src/Chat/ChatDictationButton.doc.mjs +3 -3
  534. package/src/Chat/ChatDictationButton.tsx +1 -1
  535. package/src/Chat/ChatLayout.doc.mjs +1 -1
  536. package/src/Chat/ChatLayout.test.tsx +57 -0
  537. package/src/Chat/ChatLayout.tsx +23 -2
  538. package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
  539. package/src/Chat/ChatLayoutScrollButton.tsx +1 -1
  540. package/src/Chat/ChatMessage.doc.mjs +1 -1
  541. package/src/Chat/ChatMessage.tsx +1 -1
  542. package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
  543. package/src/Chat/ChatMessageBubble.tsx +1 -1
  544. package/src/Chat/ChatMessageList.doc.mjs +1 -1
  545. package/src/Chat/ChatMessageList.tsx +1 -1
  546. package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
  547. package/src/Chat/ChatSendButton.doc.mjs +1 -1
  548. package/src/Chat/ChatSendButton.tsx +5 -3
  549. package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
  550. package/src/Chat/ChatSystemMessage.tsx +1 -1
  551. package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
  552. package/src/Chat/ChatTokenizedText.tsx +1 -1
  553. package/src/Chat/ChatToolCalls.doc.mjs +3 -3
  554. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  555. package/src/CheckboxInput/CheckboxInput.test.tsx +33 -0
  556. package/src/CheckboxInput/CheckboxInput.tsx +1 -1
  557. package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
  558. package/src/CheckboxList/CheckboxList.tsx +1 -1
  559. package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
  560. package/src/CheckboxList/CheckboxListItem.tsx +1 -1
  561. package/src/Citation/Citation.doc.mjs +2 -2
  562. package/src/Citation/Citation.tsx +1 -1
  563. package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
  564. package/src/ClickableCard/ClickableCard.tsx +3 -3
  565. package/src/Code/Code.tsx +2 -2
  566. package/src/CodeBlock/Code.doc.mjs +1 -1
  567. package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
  568. package/src/Collapsible/Collapsible.doc.mjs +3 -3
  569. package/src/Collapsible/Collapsible.tsx +3 -3
  570. package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
  571. package/src/Collapsible/CollapsibleGroup.tsx +1 -1
  572. package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
  573. package/src/Collapsible/useCollapsible.doc.mjs +2 -2
  574. package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
  575. package/src/CommandPalette/CommandPalette.tsx +1 -1
  576. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
  577. package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
  578. package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
  579. package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
  580. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
  581. package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
  582. package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
  583. package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
  584. package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
  585. package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
  586. package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
  587. package/src/CommandPalette/CommandPaletteList.tsx +1 -1
  588. package/src/ContextMenu/ContextMenu.doc.mjs +3 -3
  589. package/src/ContextMenu/ContextMenu.tsx +17 -5
  590. package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
  591. package/src/DateInput/DateInput.doc.mjs +3 -3
  592. package/src/DateInput/DateInput.tsx +1 -1
  593. package/src/DateRangeInput/DateRangeInput.doc.mjs +2 -2
  594. package/src/DateRangeInput/DateRangeInput.tsx +1 -1
  595. package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -3
  596. package/src/DateTimeInput/DateTimeInput.tsx +1 -1
  597. package/src/Dialog/Dialog.doc.mjs +9 -5
  598. package/src/Dialog/Dialog.test.tsx +84 -1
  599. package/src/Dialog/Dialog.tsx +87 -45
  600. package/src/Dialog/DialogHeader.doc.mjs +1 -1
  601. package/src/Dialog/DialogHeader.tsx +1 -1
  602. package/src/Dialog/index.ts +18 -1
  603. package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
  604. package/src/Divider/Divider.doc.mjs +3 -3
  605. package/src/Divider/Divider.tsx +2 -19
  606. package/src/Divider/index.ts +19 -5
  607. package/src/DropdownMenu/DropdownMenu.doc.mjs +20 -5
  608. package/src/DropdownMenu/DropdownMenu.test.tsx +122 -0
  609. package/src/DropdownMenu/DropdownMenu.tsx +31 -20
  610. package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
  611. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
  612. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +1 -1
  613. package/src/DropdownMenu/DropdownMenuItem.tsx +1 -1
  614. package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +1 -1
  615. package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
  616. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +10 -1
  617. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +64 -0
  618. package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
  619. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +46 -1
  620. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +24 -8
  621. package/src/DropdownMenu/menuItemHover.ts +1 -0
  622. package/src/DropdownMenu/renderDropdownItems.tsx +14 -2
  623. package/src/EmptyState/EmptyState.doc.mjs +3 -3
  624. package/src/EmptyState/EmptyState.tsx +1 -1
  625. package/src/Field/Field.doc.mjs +7 -3
  626. package/src/Field/Field.tsx +1 -1
  627. package/src/Field/FieldLabel.doc.mjs +1 -1
  628. package/src/Field/FieldLabel.test.tsx +78 -0
  629. package/src/Field/FieldLabel.tsx +50 -3
  630. package/src/FieldStatus/FieldStatus.doc.mjs +3 -2
  631. package/src/FieldStatus/FieldStatus.test.tsx +61 -0
  632. package/src/FieldStatus/FieldStatus.tsx +16 -23
  633. package/src/FieldStatus/index.ts +20 -5
  634. package/src/FileInput/FileInput.doc.mjs +3 -3
  635. package/src/FileInput/FileInput.tsx +1 -1
  636. package/src/FormLayout/FormLayout.doc.mjs +3 -3
  637. package/src/FormLayout/FormLayout.tsx +2 -5
  638. package/src/Grid/Grid.doc.mjs +3 -3
  639. package/src/Grid/Grid.tsx +1 -1
  640. package/src/Grid/GridSpan.doc.mjs +1 -1
  641. package/src/Grid/GridSpan.tsx +1 -1
  642. package/src/HStack/HStack.tsx +1 -1
  643. package/src/Heading/Heading.tsx +4 -3
  644. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  645. package/src/HoverCard/HoverCard.tsx +1 -1
  646. package/src/HoverCard/useHoverCard.doc.mjs +2 -2
  647. package/src/Icon/Icon.doc.mjs +4 -3
  648. package/src/Icon/Icon.test.tsx +23 -0
  649. package/src/Icon/Icon.tsx +4 -2
  650. package/src/Icon/globalIconRegistry.test.tsx +87 -1
  651. package/src/Icon/globalIconRegistry.tsx +109 -9
  652. package/src/Icon/index.ts +9 -7
  653. package/src/Icon/useIcon.ts +23 -0
  654. package/src/IconButton/IconButton.doc.mjs +2 -2
  655. package/src/IconButton/IconButton.tsx +1 -1
  656. package/src/InputGroup/InputGroup.doc.mjs +2 -2
  657. package/src/InputGroup/InputGroup.tsx +1 -1
  658. package/src/InputGroup/InputGroupText.doc.mjs +1 -1
  659. package/src/InputGroup/InputGroupText.tsx +1 -1
  660. package/src/Item/Item.doc.mjs +3 -3
  661. package/src/Item/Item.tsx +1 -1
  662. package/src/Kbd/Kbd.doc.mjs +3 -3
  663. package/src/Kbd/Kbd.tsx +1 -1
  664. package/src/Layer/Layer.doc.mjs +2 -2
  665. package/src/Layer/useLayer.doc.mjs +2 -2
  666. package/src/Layout/Layout.doc.mjs +3 -3
  667. package/src/Layout/Layout.tsx +1 -1
  668. package/src/Layout/LayoutContent.doc.mjs +1 -1
  669. package/src/Layout/LayoutContent.tsx +1 -1
  670. package/src/Layout/LayoutFooter.doc.mjs +1 -1
  671. package/src/Layout/LayoutFooter.tsx +1 -1
  672. package/src/Layout/LayoutHeader.doc.mjs +1 -1
  673. package/src/Layout/LayoutHeader.tsx +1 -1
  674. package/src/Layout/LayoutPanel.doc.mjs +1 -1
  675. package/src/Layout/LayoutPanel.tsx +1 -1
  676. package/src/Lightbox/Lightbox.doc.mjs +3 -3
  677. package/src/Lightbox/Lightbox.test.tsx +33 -0
  678. package/src/Lightbox/Lightbox.tsx +16 -4
  679. package/src/Link/Link.doc.mjs +3 -3
  680. package/src/Link/Link.tsx +1 -1
  681. package/src/Link/LinkProvider.doc.mjs +2 -2
  682. package/src/Link/LinkProvider.tsx +2 -2
  683. package/src/List/List.doc.mjs +3 -3
  684. package/src/List/List.tsx +1 -1
  685. package/src/List/ListItem.doc.mjs +2 -2
  686. package/src/List/ListItem.tsx +1 -1
  687. package/src/Markdown/Markdown.doc.mjs +81 -1
  688. package/src/Markdown/Markdown.test.tsx +92 -0
  689. package/src/Markdown/Markdown.tsx +96 -68
  690. package/src/Markdown/parser.perf.test.ts +47 -35
  691. package/src/MetadataList/MetadataList.doc.mjs +3 -3
  692. package/src/MetadataList/MetadataList.tsx +1 -1
  693. package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
  694. package/src/MetadataList/MetadataListItem.tsx +1 -1
  695. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  696. package/src/MobileNav/MobileNav.tsx +1 -1
  697. package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
  698. package/src/MoreMenu/MoreMenu.tsx +3 -3
  699. package/src/MultiSelector/MultiSelector.doc.mjs +35 -10
  700. package/src/MultiSelector/MultiSelector.test.tsx +220 -0
  701. package/src/MultiSelector/MultiSelector.tsx +201 -56
  702. package/src/NavIcon/NavIcon.doc.mjs +3 -3
  703. package/src/NavIcon/NavIcon.tsx +1 -1
  704. package/src/NavMenu/NavMenu.doc.mjs +2 -2
  705. package/src/NumberInput/NumberInput.doc.mjs +3 -3
  706. package/src/NumberInput/NumberInput.tsx +1 -1
  707. package/src/Outline/Outline.doc.mjs +3 -3
  708. package/src/Outline/Outline.tsx +1 -1
  709. package/src/OverflowList/OverflowList.doc.mjs +3 -3
  710. package/src/OverflowList/OverflowList.tsx +1 -1
  711. package/src/Overlay/Overlay.doc.mjs +2 -2
  712. package/src/Pagination/Pagination.doc.mjs +3 -3
  713. package/src/Pagination/Pagination.tsx +2 -22
  714. package/src/Pagination/index.ts +21 -1
  715. package/src/Popover/Popover.doc.mjs +31 -3
  716. package/src/Popover/Popover.test.tsx +41 -0
  717. package/src/Popover/Popover.tsx +25 -2
  718. package/src/Popover/usePopover.doc.mjs +2 -2
  719. package/src/Popover/usePopover.tsx +10 -4
  720. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  721. package/src/PowerSearch/PowerSearch.tsx +1 -1
  722. package/src/ProgressBar/ProgressBar.doc.mjs +3 -3
  723. package/src/ProgressBar/ProgressBar.tsx +2 -22
  724. package/src/ProgressBar/index.ts +22 -5
  725. package/src/RadioList/RadioList.doc.mjs +3 -3
  726. package/src/RadioList/RadioList.tsx +1 -1
  727. package/src/RadioList/RadioListItem.doc.mjs +1 -1
  728. package/src/RadioList/RadioListItem.tsx +1 -1
  729. package/src/Resizable/Resizable.doc.mjs +2 -2
  730. package/src/Resizable/ResizeHandle.test.tsx +3 -2
  731. package/src/Resizable/ResizeHandle.tsx +8 -12
  732. package/src/Resizable/useResizable.doc.mjs +2 -2
  733. package/src/Section/Section.doc.mjs +3 -3
  734. package/src/Section/Section.tsx +2 -20
  735. package/src/Section/index.ts +20 -5
  736. package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
  737. package/src/SegmentedControl/SegmentedControl.tsx +1 -1
  738. package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
  739. package/src/SegmentedControl/SegmentedControlItem.tsx +1 -1
  740. package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
  741. package/src/SelectableCard/SelectableCard.test.tsx +55 -0
  742. package/src/SelectableCard/SelectableCard.tsx +19 -3
  743. package/src/Selector/Selector.doc.mjs +28 -8
  744. package/src/Selector/Selector.test.tsx +193 -0
  745. package/src/Selector/Selector.tsx +194 -51
  746. package/src/Selector/SelectorOption.doc.mjs +1 -1
  747. package/src/SideNav/SideNav.doc.mjs +3 -3
  748. package/src/SideNav/SideNav.tsx +1 -1
  749. package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
  750. package/src/SideNav/SideNavCollapseButton.tsx +4 -3
  751. package/src/SideNav/SideNavHeading.doc.mjs +1 -1
  752. package/src/SideNav/SideNavHeading.tsx +8 -9
  753. package/src/SideNav/SideNavItem.doc.mjs +1 -1
  754. package/src/SideNav/SideNavItem.tsx +5 -6
  755. package/src/SideNav/SideNavSection.doc.mjs +1 -1
  756. package/src/SideNav/SideNavSection.tsx +1 -1
  757. package/src/Skeleton/Skeleton.doc.mjs +3 -3
  758. package/src/Skeleton/Skeleton.tsx +1 -1
  759. package/src/Slider/Slider.doc.mjs +3 -3
  760. package/src/Slider/Slider.tsx +9 -13
  761. package/src/Spinner/Spinner.doc.mjs +3 -3
  762. package/src/Spinner/Spinner.tsx +1 -1
  763. package/src/Stack/Stack.doc.mjs +3 -3
  764. package/src/Stack/Stack.tsx +1 -1
  765. package/src/Stack/StackItem.tsx +1 -1
  766. package/src/StatusDot/StatusDot.doc.mjs +3 -3
  767. package/src/StatusDot/StatusDot.tsx +2 -22
  768. package/src/StatusDot/index.ts +22 -5
  769. package/src/Switch/Switch.doc.mjs +3 -3
  770. package/src/Switch/Switch.test.tsx +34 -0
  771. package/src/Switch/Switch.tsx +1 -1
  772. package/src/TabList/Tab.doc.mjs +1 -1
  773. package/src/TabList/Tab.tsx +1 -1
  774. package/src/TabList/TabList.doc.mjs +3 -3
  775. package/src/TabList/TabList.tsx +1 -1
  776. package/src/TabList/TabMenu.doc.mjs +1 -1
  777. package/src/TabList/TabMenu.tsx +1 -1
  778. package/src/Table/BaseTable.tsx +1 -1
  779. package/src/Table/Table.doc.mjs +3 -3
  780. package/src/Table/Table.tsx +1 -1
  781. package/src/Table/TableCell.doc.mjs +1 -1
  782. package/src/Table/TableCell.tsx +1 -1
  783. package/src/Table/TableHeaderCell.doc.mjs +1 -1
  784. package/src/Table/TableHeaderCell.tsx +1 -1
  785. package/src/Table/TableRow.doc.mjs +1 -1
  786. package/src/Table/TableRow.tsx +1 -1
  787. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +21 -3
  788. package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
  789. package/src/Table/plugins/tree/useTableTreeData.tsx +54 -1
  790. package/src/Table/useTableColumnResize.doc.mjs +1 -1
  791. package/src/Table/useTableColumnSettings.doc.mjs +1 -1
  792. package/src/Table/useTableFilterState.doc.mjs +1 -1
  793. package/src/Table/useTableFiltering.doc.mjs +1 -1
  794. package/src/Table/useTableGroupedRows.doc.mjs +2 -2
  795. package/src/Table/useTablePagination.doc.mjs +1 -1
  796. package/src/Table/useTableRowExpansion.doc.mjs +57 -4
  797. package/src/Table/useTableRowIndex.doc.mjs +2 -2
  798. package/src/Table/useTableRowStatus.doc.mjs +2 -2
  799. package/src/Table/useTableSelection.doc.mjs +1 -1
  800. package/src/Table/useTableSelectionState.doc.mjs +1 -1
  801. package/src/Table/useTableSortable.doc.mjs +1 -1
  802. package/src/Table/useTableStickyColumns.doc.mjs +1 -1
  803. package/src/Table/useTableTreeData.doc.mjs +10 -1
  804. package/src/Table/useTableTreeState.doc.mjs +1 -1
  805. package/src/Text/Heading.doc.mjs +4 -4
  806. package/src/Text/Text.doc.mjs +4 -4
  807. package/src/Text/Text.test.tsx +42 -0
  808. package/src/Text/Text.tsx +26 -2
  809. package/src/Text/index.ts +32 -6
  810. package/src/TextArea/TextArea.doc.mjs +5 -5
  811. package/src/TextArea/TextArea.test.tsx +112 -7
  812. package/src/TextArea/TextArea.tsx +143 -50
  813. package/src/TextInput/TextInput.doc.mjs +3 -3
  814. package/src/TextInput/TextInput.tsx +1 -1
  815. package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
  816. package/src/Thumbnail/Thumbnail.test.tsx +24 -1
  817. package/src/Thumbnail/Thumbnail.tsx +28 -35
  818. package/src/TimeInput/TimeInput.doc.mjs +3 -3
  819. package/src/TimeInput/TimeInput.tsx +1 -1
  820. package/src/Timestamp/Timestamp.doc.mjs +5 -5
  821. package/src/Timestamp/Timestamp.test.tsx +131 -0
  822. package/src/Timestamp/Timestamp.tsx +92 -9
  823. package/src/Timestamp/formatInstant.ts +3 -4
  824. package/src/Timestamp/tooltipEntries.ts +3 -2
  825. package/src/Toast/Toast.doc.mjs +3 -3
  826. package/src/Toast/useToast.doc.mjs +2 -2
  827. package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
  828. package/src/ToggleButton/ToggleButton.tsx +1 -1
  829. package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
  830. package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
  831. package/src/Token/Token.doc.mjs +3 -3
  832. package/src/Token/Token.tsx +2 -28
  833. package/src/Token/index.ts +28 -1
  834. package/src/Tokenizer/Tokenizer.doc.mjs +3 -3
  835. package/src/Tokenizer/Tokenizer.tsx +1 -1
  836. package/src/Toolbar/Toolbar.doc.mjs +3 -3
  837. package/src/Toolbar/Toolbar.tsx +1 -1
  838. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  839. package/src/Tooltip/Tooltip.tsx +1 -1
  840. package/src/Tooltip/useTooltip.doc.mjs +2 -2
  841. package/src/TopNav/TopNav.doc.mjs +3 -3
  842. package/src/TopNav/TopNav.tsx +1 -1
  843. package/src/TopNav/TopNavHeading.doc.mjs +1 -1
  844. package/src/TopNav/TopNavHeading.tsx +7 -8
  845. package/src/TopNav/TopNavItem.doc.mjs +1 -1
  846. package/src/TopNav/TopNavItem.tsx +1 -1
  847. package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
  848. package/src/TopNav/TopNavMegaMenu.tsx +32 -6
  849. package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
  850. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
  851. package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
  852. package/src/TopNav/TopNavMegaMenuItem.tsx +1 -1
  853. package/src/TopNav/TopNavMenu.doc.mjs +1 -1
  854. package/src/TopNav/TopNavMenu.tsx +5 -4
  855. package/src/TreeList/TreeList.doc.mjs +3 -3
  856. package/src/TreeList/TreeList.tsx +1 -1
  857. package/src/TreeList/TreeListBranches.tsx +1 -1
  858. package/src/TreeList/TreeListItem.tsx +4 -3
  859. package/src/TreeList/TreeListTypes.ts +1 -18
  860. package/src/TreeList/index.ts +19 -1
  861. package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
  862. package/src/Typeahead/BaseTypeahead.tsx +1 -1
  863. package/src/Typeahead/Typeahead.doc.mjs +3 -3
  864. package/src/Typeahead/Typeahead.tsx +1 -1
  865. package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
  866. package/src/Typeahead/TypeaheadItem.tsx +1 -1
  867. package/src/VStack/VStack.tsx +1 -1
  868. package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
  869. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
  870. package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
  871. package/src/__tests__/inputWidthContract.test.tsx +8 -1
  872. package/src/doc-mjs.d.ts +5 -2
  873. package/src/docPropLiterals.test.ts +1 -1
  874. package/src/docPropReferences.test.ts +1 -1
  875. package/src/hooks/containerReveal.pool.stylex.ts +571 -0
  876. package/src/hooks/index.ts +7 -0
  877. package/src/hooks/useClickableContainer.doc.mjs +2 -2
  878. package/src/hooks/useContainerReveal.doc.mjs +75 -0
  879. package/src/hooks/useContainerReveal.test.tsx +116 -0
  880. package/src/hooks/useContainerReveal.ts +181 -0
  881. package/src/hooks/useEntryAnimation.doc.mjs +2 -2
  882. package/src/hooks/useFocusTrap.doc.mjs +2 -2
  883. package/src/hooks/useGridFocus.doc.mjs +2 -2
  884. package/src/hooks/useGridFocus.ts +8 -6
  885. package/src/hooks/useHotkeys.doc.mjs +2 -2
  886. package/src/hooks/useImageMode.doc.mjs +2 -2
  887. package/src/hooks/useInputContainer.doc.mjs +2 -2
  888. package/src/hooks/useInputContainer.test.tsx +180 -0
  889. package/src/hooks/useInputContainer.ts +36 -1
  890. package/src/hooks/useInputStatusIcon.test.tsx +59 -0
  891. package/src/hooks/useInputStatusIcon.tsx +12 -1
  892. package/src/hooks/useKeyboardHint.doc.mjs +2 -2
  893. package/src/hooks/useKeyboardHint.tsx +1 -1
  894. package/src/hooks/useListFocus.doc.mjs +2 -2
  895. package/src/hooks/useListFocus.ts +8 -7
  896. package/src/hooks/useMediaQuery.doc.mjs +2 -2
  897. package/src/hooks/useOverflow.doc.mjs +2 -2
  898. package/src/hooks/useScrollLock.doc.mjs +2 -2
  899. package/src/hooks/useScrollOverflow.doc.mjs +2 -2
  900. package/src/hooks/useStreamingText.doc.mjs +2 -2
  901. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  902. package/src/hooks/useTreeFocus.test.tsx +53 -1
  903. package/src/hooks/useTreeFocus.ts +13 -2
  904. package/src/i18n/InternationalizationProvider.doc.mjs +2 -2
  905. package/src/i18n/useTranslator.doc.mjs +2 -2
  906. package/src/index.ts +14 -10
  907. package/src/theme/MediaTheme.doc.mjs +2 -2
  908. package/src/theme/SyntaxTheme.doc.mjs +2 -2
  909. package/src/theme/Theme.doc.mjs +2 -2
  910. package/src/theme/Theme.tsx +3 -7
  911. package/src/theme/defineTheme.ts +11 -1
  912. package/src/theme/expandColorScale.test.ts +144 -0
  913. package/src/theme/expandColorScale.ts +53 -15
  914. package/src/theme/index.ts +11 -9
  915. package/src/theme/themeRegistry.test.ts +59 -0
  916. package/src/theme/themeRegistry.ts +53 -0
  917. package/src/theme/types.ts +14 -13
  918. package/src/theme/useTheme.doc.mjs +2 -2
  919. package/src/theme/useTheme.test.tsx +48 -3
  920. package/src/theme/useTheme.ts +100 -29
  921. package/src/utils/rtlStyles.ts +22 -0
  922. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +0 -9
  923. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +0 -1
  924. package/dist/Thumbnail/thumbnail.markers.stylex.js +0 -14
  925. package/dist/authoring/doc.d.ts +0 -145
  926. package/dist/authoring/doc.d.ts.map +0 -1
  927. package/dist/authoring/doc.js +0 -100
  928. package/dist/authoring/index.d.ts +0 -29
  929. package/dist/authoring/index.d.ts.map +0 -1
  930. package/dist/authoring/index.js +0 -28
  931. package/dist/authoring/integration.d.ts +0 -35
  932. package/dist/authoring/integration.d.ts.map +0 -1
  933. package/dist/authoring/integration.js +0 -30
  934. package/dist/authoring/template.d.ts +0 -66
  935. package/dist/authoring/template.d.ts.map +0 -1
  936. package/dist/authoring/template.js +0 -55
  937. package/dist/config.d.ts +0 -80
  938. package/dist/config.d.ts.map +0 -1
  939. package/dist/config.js +0 -40
  940. package/dist/docs-types.d.ts +0 -969
  941. package/dist/docs-types.d.ts.map +0 -1
  942. package/dist/docs-types.js +0 -1
  943. package/src/Thumbnail/thumbnail.markers.stylex.ts +0 -12
  944. package/src/authoring/doc.ts +0 -164
  945. package/src/authoring/index.test.ts +0 -52
  946. package/src/authoring/index.ts +0 -50
  947. package/src/authoring/integration.ts +0 -42
  948. package/src/authoring/template.ts +0 -74
  949. package/src/config.test.ts +0 -16
  950. package/src/config.ts +0 -92
  951. package/src/docs-types.ts +0 -1108
@@ -0,0 +1,571 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file containerReveal.pool.stylex.ts
5
+ * @input Uses StyleX, theme tokens
6
+ * @output A fixed pool of scoped markers, each paired with its reveal style
7
+ * blocks (reveal / conceal, each with a layout-preserved variant) compiled
8
+ * against that marker.
9
+ * @position Internal to useContainerReveal. GENERATED by
10
+ * scripts/gen-container-reveal-pool.mjs — do not edit by hand.
11
+ *
12
+ * WHY A POOL: `stylex.when.ancestor(':hover', marker)` welds the marker's
13
+ * class into the compiled selector (`.marker:hover *`), so a marker and the
14
+ * styles referencing it are inseparable at compile time. A single shared
15
+ * marker would leak hover/focus across NESTED reveal containers (an ancestor
16
+ * container's `:hover` matches a descendant container's revealed content).
17
+ * Pre-declaring N markers lets useContainerReveal hand each concurrently
18
+ * mounted container a distinct marker (free-list in useContainerReveal),
19
+ * isolating nested containers without the caller authoring any StyleX.
20
+ *
21
+ * SYNC: When the block shape changes, edit
22
+ * scripts/gen-container-reveal-pool.mjs and useContainerReveal.ts, then
23
+ * regenerate (node scripts/gen-container-reveal-pool.mjs) and commit.
24
+ */
25
+
26
+ import * as stylex from '@stylexjs/stylex';
27
+ import {durationVars, easeVars} from '../theme/tokens.stylex';
28
+
29
+ export const POOL_SIZE = 6;
30
+
31
+ export const m0 = stylex.defineMarker();
32
+ const s0 = stylex.create({
33
+ // Hidden at rest via position + opacity (kept in the a11y tree and tab
34
+ // order); on container :hover (fine pointer) or :focus-within it returns to
35
+ // flow and fades in. Always shown on touch. The position flip is discrete,
36
+ // so it transitions with allow-discrete + a state-conditional delay: 0 on
37
+ // entry (flips to static immediately, then fades in) and the fade duration
38
+ // on exit (stays in flow until the fade finishes, then snaps out) — without
39
+ // this, the exit would snap out of flow at full opacity and flicker.
40
+ reveal: {
41
+ transitionProperty: 'opacity, position',
42
+ transitionDuration: {
43
+ default: durationVars['--duration-fast'] + ', 0s',
44
+ '@media (prefers-reduced-motion: reduce)': '0s, 0s',
45
+ },
46
+ transitionTimingFunction: easeVars['--ease-standard'],
47
+ transitionBehavior: 'allow-discrete',
48
+ transitionDelay: {
49
+ default: '0s, ' + durationVars['--duration-fast'],
50
+ '@media (prefers-reduced-motion: reduce)': '0s, 0s',
51
+ [stylex.when.ancestor(':hover', m0)]: {'@media (hover: hover)': '0s, 0s'},
52
+ [stylex.when.ancestor(':focus-within', m0)]: '0s, 0s',
53
+ '@media (any-pointer: coarse)': '0s, 0s',
54
+ },
55
+ opacity: {
56
+ default: 0,
57
+ [stylex.when.ancestor(':hover', m0)]: {'@media (hover: hover)': 1},
58
+ [stylex.when.ancestor(':focus-within', m0)]: 1,
59
+ '@media (any-pointer: coarse)': 1,
60
+ },
61
+ position: {
62
+ default: 'absolute',
63
+ [stylex.when.ancestor(':hover', m0)]: {'@media (hover: hover)': 'static'},
64
+ [stylex.when.ancestor(':focus-within', m0)]: 'static',
65
+ '@media (any-pointer: coarse)': 'static',
66
+ },
67
+ },
68
+ // Opacity-only reveal that keeps the box reserved (no layout shift). Use for
69
+ // content that is already positioned (e.g. an absolute overlay).
70
+ revealLayoutPreserved: {
71
+ transitionProperty: 'opacity',
72
+ transitionDuration: {
73
+ default: durationVars['--duration-fast'],
74
+ '@media (prefers-reduced-motion: reduce)': '0s',
75
+ },
76
+ transitionTimingFunction: easeVars['--ease-standard'],
77
+ opacity: {
78
+ default: 0,
79
+ [stylex.when.ancestor(':hover', m0)]: {'@media (hover: hover)': 1},
80
+ [stylex.when.ancestor(':focus-within', m0)]: 1,
81
+ '@media (any-pointer: coarse)': 1,
82
+ },
83
+ },
84
+ // Inverted: visible at rest, fades OUT on :hover only. Deliberately ignores
85
+ // :focus-within (a keyboard user must never watch content vanish) and stays
86
+ // visible on touch. Never leaves the a11y tree.
87
+ conceal: {
88
+ transitionProperty: 'opacity',
89
+ transitionDuration: {
90
+ default: durationVars['--duration-fast'],
91
+ '@media (prefers-reduced-motion: reduce)': '0s',
92
+ },
93
+ transitionTimingFunction: easeVars['--ease-standard'],
94
+ opacity: {
95
+ default: 1,
96
+ [stylex.when.ancestor(':hover', m0)]: {'@media (hover: hover)': 0},
97
+ },
98
+ },
99
+ concealLayoutPreserved: {
100
+ transitionProperty: 'opacity',
101
+ transitionDuration: {
102
+ default: durationVars['--duration-fast'],
103
+ '@media (prefers-reduced-motion: reduce)': '0s',
104
+ },
105
+ transitionTimingFunction: easeVars['--ease-standard'],
106
+ opacity: {
107
+ default: 1,
108
+ [stylex.when.ancestor(':hover', m0)]: {'@media (hover: hover)': 0},
109
+ },
110
+ },
111
+ });
112
+
113
+ export const m1 = stylex.defineMarker();
114
+ const s1 = stylex.create({
115
+ // Hidden at rest via position + opacity (kept in the a11y tree and tab
116
+ // order); on container :hover (fine pointer) or :focus-within it returns to
117
+ // flow and fades in. Always shown on touch. The position flip is discrete,
118
+ // so it transitions with allow-discrete + a state-conditional delay: 0 on
119
+ // entry (flips to static immediately, then fades in) and the fade duration
120
+ // on exit (stays in flow until the fade finishes, then snaps out) — without
121
+ // this, the exit would snap out of flow at full opacity and flicker.
122
+ reveal: {
123
+ transitionProperty: 'opacity, position',
124
+ transitionDuration: {
125
+ default: durationVars['--duration-fast'] + ', 0s',
126
+ '@media (prefers-reduced-motion: reduce)': '0s, 0s',
127
+ },
128
+ transitionTimingFunction: easeVars['--ease-standard'],
129
+ transitionBehavior: 'allow-discrete',
130
+ transitionDelay: {
131
+ default: '0s, ' + durationVars['--duration-fast'],
132
+ '@media (prefers-reduced-motion: reduce)': '0s, 0s',
133
+ [stylex.when.ancestor(':hover', m1)]: {'@media (hover: hover)': '0s, 0s'},
134
+ [stylex.when.ancestor(':focus-within', m1)]: '0s, 0s',
135
+ '@media (any-pointer: coarse)': '0s, 0s',
136
+ },
137
+ opacity: {
138
+ default: 0,
139
+ [stylex.when.ancestor(':hover', m1)]: {'@media (hover: hover)': 1},
140
+ [stylex.when.ancestor(':focus-within', m1)]: 1,
141
+ '@media (any-pointer: coarse)': 1,
142
+ },
143
+ position: {
144
+ default: 'absolute',
145
+ [stylex.when.ancestor(':hover', m1)]: {'@media (hover: hover)': 'static'},
146
+ [stylex.when.ancestor(':focus-within', m1)]: 'static',
147
+ '@media (any-pointer: coarse)': 'static',
148
+ },
149
+ },
150
+ // Opacity-only reveal that keeps the box reserved (no layout shift). Use for
151
+ // content that is already positioned (e.g. an absolute overlay).
152
+ revealLayoutPreserved: {
153
+ transitionProperty: 'opacity',
154
+ transitionDuration: {
155
+ default: durationVars['--duration-fast'],
156
+ '@media (prefers-reduced-motion: reduce)': '0s',
157
+ },
158
+ transitionTimingFunction: easeVars['--ease-standard'],
159
+ opacity: {
160
+ default: 0,
161
+ [stylex.when.ancestor(':hover', m1)]: {'@media (hover: hover)': 1},
162
+ [stylex.when.ancestor(':focus-within', m1)]: 1,
163
+ '@media (any-pointer: coarse)': 1,
164
+ },
165
+ },
166
+ // Inverted: visible at rest, fades OUT on :hover only. Deliberately ignores
167
+ // :focus-within (a keyboard user must never watch content vanish) and stays
168
+ // visible on touch. Never leaves the a11y tree.
169
+ conceal: {
170
+ transitionProperty: 'opacity',
171
+ transitionDuration: {
172
+ default: durationVars['--duration-fast'],
173
+ '@media (prefers-reduced-motion: reduce)': '0s',
174
+ },
175
+ transitionTimingFunction: easeVars['--ease-standard'],
176
+ opacity: {
177
+ default: 1,
178
+ [stylex.when.ancestor(':hover', m1)]: {'@media (hover: hover)': 0},
179
+ },
180
+ },
181
+ concealLayoutPreserved: {
182
+ transitionProperty: 'opacity',
183
+ transitionDuration: {
184
+ default: durationVars['--duration-fast'],
185
+ '@media (prefers-reduced-motion: reduce)': '0s',
186
+ },
187
+ transitionTimingFunction: easeVars['--ease-standard'],
188
+ opacity: {
189
+ default: 1,
190
+ [stylex.when.ancestor(':hover', m1)]: {'@media (hover: hover)': 0},
191
+ },
192
+ },
193
+ });
194
+
195
+ export const m2 = stylex.defineMarker();
196
+ const s2 = stylex.create({
197
+ // Hidden at rest via position + opacity (kept in the a11y tree and tab
198
+ // order); on container :hover (fine pointer) or :focus-within it returns to
199
+ // flow and fades in. Always shown on touch. The position flip is discrete,
200
+ // so it transitions with allow-discrete + a state-conditional delay: 0 on
201
+ // entry (flips to static immediately, then fades in) and the fade duration
202
+ // on exit (stays in flow until the fade finishes, then snaps out) — without
203
+ // this, the exit would snap out of flow at full opacity and flicker.
204
+ reveal: {
205
+ transitionProperty: 'opacity, position',
206
+ transitionDuration: {
207
+ default: durationVars['--duration-fast'] + ', 0s',
208
+ '@media (prefers-reduced-motion: reduce)': '0s, 0s',
209
+ },
210
+ transitionTimingFunction: easeVars['--ease-standard'],
211
+ transitionBehavior: 'allow-discrete',
212
+ transitionDelay: {
213
+ default: '0s, ' + durationVars['--duration-fast'],
214
+ '@media (prefers-reduced-motion: reduce)': '0s, 0s',
215
+ [stylex.when.ancestor(':hover', m2)]: {'@media (hover: hover)': '0s, 0s'},
216
+ [stylex.when.ancestor(':focus-within', m2)]: '0s, 0s',
217
+ '@media (any-pointer: coarse)': '0s, 0s',
218
+ },
219
+ opacity: {
220
+ default: 0,
221
+ [stylex.when.ancestor(':hover', m2)]: {'@media (hover: hover)': 1},
222
+ [stylex.when.ancestor(':focus-within', m2)]: 1,
223
+ '@media (any-pointer: coarse)': 1,
224
+ },
225
+ position: {
226
+ default: 'absolute',
227
+ [stylex.when.ancestor(':hover', m2)]: {'@media (hover: hover)': 'static'},
228
+ [stylex.when.ancestor(':focus-within', m2)]: 'static',
229
+ '@media (any-pointer: coarse)': 'static',
230
+ },
231
+ },
232
+ // Opacity-only reveal that keeps the box reserved (no layout shift). Use for
233
+ // content that is already positioned (e.g. an absolute overlay).
234
+ revealLayoutPreserved: {
235
+ transitionProperty: 'opacity',
236
+ transitionDuration: {
237
+ default: durationVars['--duration-fast'],
238
+ '@media (prefers-reduced-motion: reduce)': '0s',
239
+ },
240
+ transitionTimingFunction: easeVars['--ease-standard'],
241
+ opacity: {
242
+ default: 0,
243
+ [stylex.when.ancestor(':hover', m2)]: {'@media (hover: hover)': 1},
244
+ [stylex.when.ancestor(':focus-within', m2)]: 1,
245
+ '@media (any-pointer: coarse)': 1,
246
+ },
247
+ },
248
+ // Inverted: visible at rest, fades OUT on :hover only. Deliberately ignores
249
+ // :focus-within (a keyboard user must never watch content vanish) and stays
250
+ // visible on touch. Never leaves the a11y tree.
251
+ conceal: {
252
+ transitionProperty: 'opacity',
253
+ transitionDuration: {
254
+ default: durationVars['--duration-fast'],
255
+ '@media (prefers-reduced-motion: reduce)': '0s',
256
+ },
257
+ transitionTimingFunction: easeVars['--ease-standard'],
258
+ opacity: {
259
+ default: 1,
260
+ [stylex.when.ancestor(':hover', m2)]: {'@media (hover: hover)': 0},
261
+ },
262
+ },
263
+ concealLayoutPreserved: {
264
+ transitionProperty: 'opacity',
265
+ transitionDuration: {
266
+ default: durationVars['--duration-fast'],
267
+ '@media (prefers-reduced-motion: reduce)': '0s',
268
+ },
269
+ transitionTimingFunction: easeVars['--ease-standard'],
270
+ opacity: {
271
+ default: 1,
272
+ [stylex.when.ancestor(':hover', m2)]: {'@media (hover: hover)': 0},
273
+ },
274
+ },
275
+ });
276
+
277
+ export const m3 = stylex.defineMarker();
278
+ const s3 = stylex.create({
279
+ // Hidden at rest via position + opacity (kept in the a11y tree and tab
280
+ // order); on container :hover (fine pointer) or :focus-within it returns to
281
+ // flow and fades in. Always shown on touch. The position flip is discrete,
282
+ // so it transitions with allow-discrete + a state-conditional delay: 0 on
283
+ // entry (flips to static immediately, then fades in) and the fade duration
284
+ // on exit (stays in flow until the fade finishes, then snaps out) — without
285
+ // this, the exit would snap out of flow at full opacity and flicker.
286
+ reveal: {
287
+ transitionProperty: 'opacity, position',
288
+ transitionDuration: {
289
+ default: durationVars['--duration-fast'] + ', 0s',
290
+ '@media (prefers-reduced-motion: reduce)': '0s, 0s',
291
+ },
292
+ transitionTimingFunction: easeVars['--ease-standard'],
293
+ transitionBehavior: 'allow-discrete',
294
+ transitionDelay: {
295
+ default: '0s, ' + durationVars['--duration-fast'],
296
+ '@media (prefers-reduced-motion: reduce)': '0s, 0s',
297
+ [stylex.when.ancestor(':hover', m3)]: {'@media (hover: hover)': '0s, 0s'},
298
+ [stylex.when.ancestor(':focus-within', m3)]: '0s, 0s',
299
+ '@media (any-pointer: coarse)': '0s, 0s',
300
+ },
301
+ opacity: {
302
+ default: 0,
303
+ [stylex.when.ancestor(':hover', m3)]: {'@media (hover: hover)': 1},
304
+ [stylex.when.ancestor(':focus-within', m3)]: 1,
305
+ '@media (any-pointer: coarse)': 1,
306
+ },
307
+ position: {
308
+ default: 'absolute',
309
+ [stylex.when.ancestor(':hover', m3)]: {'@media (hover: hover)': 'static'},
310
+ [stylex.when.ancestor(':focus-within', m3)]: 'static',
311
+ '@media (any-pointer: coarse)': 'static',
312
+ },
313
+ },
314
+ // Opacity-only reveal that keeps the box reserved (no layout shift). Use for
315
+ // content that is already positioned (e.g. an absolute overlay).
316
+ revealLayoutPreserved: {
317
+ transitionProperty: 'opacity',
318
+ transitionDuration: {
319
+ default: durationVars['--duration-fast'],
320
+ '@media (prefers-reduced-motion: reduce)': '0s',
321
+ },
322
+ transitionTimingFunction: easeVars['--ease-standard'],
323
+ opacity: {
324
+ default: 0,
325
+ [stylex.when.ancestor(':hover', m3)]: {'@media (hover: hover)': 1},
326
+ [stylex.when.ancestor(':focus-within', m3)]: 1,
327
+ '@media (any-pointer: coarse)': 1,
328
+ },
329
+ },
330
+ // Inverted: visible at rest, fades OUT on :hover only. Deliberately ignores
331
+ // :focus-within (a keyboard user must never watch content vanish) and stays
332
+ // visible on touch. Never leaves the a11y tree.
333
+ conceal: {
334
+ transitionProperty: 'opacity',
335
+ transitionDuration: {
336
+ default: durationVars['--duration-fast'],
337
+ '@media (prefers-reduced-motion: reduce)': '0s',
338
+ },
339
+ transitionTimingFunction: easeVars['--ease-standard'],
340
+ opacity: {
341
+ default: 1,
342
+ [stylex.when.ancestor(':hover', m3)]: {'@media (hover: hover)': 0},
343
+ },
344
+ },
345
+ concealLayoutPreserved: {
346
+ transitionProperty: 'opacity',
347
+ transitionDuration: {
348
+ default: durationVars['--duration-fast'],
349
+ '@media (prefers-reduced-motion: reduce)': '0s',
350
+ },
351
+ transitionTimingFunction: easeVars['--ease-standard'],
352
+ opacity: {
353
+ default: 1,
354
+ [stylex.when.ancestor(':hover', m3)]: {'@media (hover: hover)': 0},
355
+ },
356
+ },
357
+ });
358
+
359
+ export const m4 = stylex.defineMarker();
360
+ const s4 = stylex.create({
361
+ // Hidden at rest via position + opacity (kept in the a11y tree and tab
362
+ // order); on container :hover (fine pointer) or :focus-within it returns to
363
+ // flow and fades in. Always shown on touch. The position flip is discrete,
364
+ // so it transitions with allow-discrete + a state-conditional delay: 0 on
365
+ // entry (flips to static immediately, then fades in) and the fade duration
366
+ // on exit (stays in flow until the fade finishes, then snaps out) — without
367
+ // this, the exit would snap out of flow at full opacity and flicker.
368
+ reveal: {
369
+ transitionProperty: 'opacity, position',
370
+ transitionDuration: {
371
+ default: durationVars['--duration-fast'] + ', 0s',
372
+ '@media (prefers-reduced-motion: reduce)': '0s, 0s',
373
+ },
374
+ transitionTimingFunction: easeVars['--ease-standard'],
375
+ transitionBehavior: 'allow-discrete',
376
+ transitionDelay: {
377
+ default: '0s, ' + durationVars['--duration-fast'],
378
+ '@media (prefers-reduced-motion: reduce)': '0s, 0s',
379
+ [stylex.when.ancestor(':hover', m4)]: {'@media (hover: hover)': '0s, 0s'},
380
+ [stylex.when.ancestor(':focus-within', m4)]: '0s, 0s',
381
+ '@media (any-pointer: coarse)': '0s, 0s',
382
+ },
383
+ opacity: {
384
+ default: 0,
385
+ [stylex.when.ancestor(':hover', m4)]: {'@media (hover: hover)': 1},
386
+ [stylex.when.ancestor(':focus-within', m4)]: 1,
387
+ '@media (any-pointer: coarse)': 1,
388
+ },
389
+ position: {
390
+ default: 'absolute',
391
+ [stylex.when.ancestor(':hover', m4)]: {'@media (hover: hover)': 'static'},
392
+ [stylex.when.ancestor(':focus-within', m4)]: 'static',
393
+ '@media (any-pointer: coarse)': 'static',
394
+ },
395
+ },
396
+ // Opacity-only reveal that keeps the box reserved (no layout shift). Use for
397
+ // content that is already positioned (e.g. an absolute overlay).
398
+ revealLayoutPreserved: {
399
+ transitionProperty: 'opacity',
400
+ transitionDuration: {
401
+ default: durationVars['--duration-fast'],
402
+ '@media (prefers-reduced-motion: reduce)': '0s',
403
+ },
404
+ transitionTimingFunction: easeVars['--ease-standard'],
405
+ opacity: {
406
+ default: 0,
407
+ [stylex.when.ancestor(':hover', m4)]: {'@media (hover: hover)': 1},
408
+ [stylex.when.ancestor(':focus-within', m4)]: 1,
409
+ '@media (any-pointer: coarse)': 1,
410
+ },
411
+ },
412
+ // Inverted: visible at rest, fades OUT on :hover only. Deliberately ignores
413
+ // :focus-within (a keyboard user must never watch content vanish) and stays
414
+ // visible on touch. Never leaves the a11y tree.
415
+ conceal: {
416
+ transitionProperty: 'opacity',
417
+ transitionDuration: {
418
+ default: durationVars['--duration-fast'],
419
+ '@media (prefers-reduced-motion: reduce)': '0s',
420
+ },
421
+ transitionTimingFunction: easeVars['--ease-standard'],
422
+ opacity: {
423
+ default: 1,
424
+ [stylex.when.ancestor(':hover', m4)]: {'@media (hover: hover)': 0},
425
+ },
426
+ },
427
+ concealLayoutPreserved: {
428
+ transitionProperty: 'opacity',
429
+ transitionDuration: {
430
+ default: durationVars['--duration-fast'],
431
+ '@media (prefers-reduced-motion: reduce)': '0s',
432
+ },
433
+ transitionTimingFunction: easeVars['--ease-standard'],
434
+ opacity: {
435
+ default: 1,
436
+ [stylex.when.ancestor(':hover', m4)]: {'@media (hover: hover)': 0},
437
+ },
438
+ },
439
+ });
440
+
441
+ export const m5 = stylex.defineMarker();
442
+ const s5 = stylex.create({
443
+ // Hidden at rest via position + opacity (kept in the a11y tree and tab
444
+ // order); on container :hover (fine pointer) or :focus-within it returns to
445
+ // flow and fades in. Always shown on touch. The position flip is discrete,
446
+ // so it transitions with allow-discrete + a state-conditional delay: 0 on
447
+ // entry (flips to static immediately, then fades in) and the fade duration
448
+ // on exit (stays in flow until the fade finishes, then snaps out) — without
449
+ // this, the exit would snap out of flow at full opacity and flicker.
450
+ reveal: {
451
+ transitionProperty: 'opacity, position',
452
+ transitionDuration: {
453
+ default: durationVars['--duration-fast'] + ', 0s',
454
+ '@media (prefers-reduced-motion: reduce)': '0s, 0s',
455
+ },
456
+ transitionTimingFunction: easeVars['--ease-standard'],
457
+ transitionBehavior: 'allow-discrete',
458
+ transitionDelay: {
459
+ default: '0s, ' + durationVars['--duration-fast'],
460
+ '@media (prefers-reduced-motion: reduce)': '0s, 0s',
461
+ [stylex.when.ancestor(':hover', m5)]: {'@media (hover: hover)': '0s, 0s'},
462
+ [stylex.when.ancestor(':focus-within', m5)]: '0s, 0s',
463
+ '@media (any-pointer: coarse)': '0s, 0s',
464
+ },
465
+ opacity: {
466
+ default: 0,
467
+ [stylex.when.ancestor(':hover', m5)]: {'@media (hover: hover)': 1},
468
+ [stylex.when.ancestor(':focus-within', m5)]: 1,
469
+ '@media (any-pointer: coarse)': 1,
470
+ },
471
+ position: {
472
+ default: 'absolute',
473
+ [stylex.when.ancestor(':hover', m5)]: {'@media (hover: hover)': 'static'},
474
+ [stylex.when.ancestor(':focus-within', m5)]: 'static',
475
+ '@media (any-pointer: coarse)': 'static',
476
+ },
477
+ },
478
+ // Opacity-only reveal that keeps the box reserved (no layout shift). Use for
479
+ // content that is already positioned (e.g. an absolute overlay).
480
+ revealLayoutPreserved: {
481
+ transitionProperty: 'opacity',
482
+ transitionDuration: {
483
+ default: durationVars['--duration-fast'],
484
+ '@media (prefers-reduced-motion: reduce)': '0s',
485
+ },
486
+ transitionTimingFunction: easeVars['--ease-standard'],
487
+ opacity: {
488
+ default: 0,
489
+ [stylex.when.ancestor(':hover', m5)]: {'@media (hover: hover)': 1},
490
+ [stylex.when.ancestor(':focus-within', m5)]: 1,
491
+ '@media (any-pointer: coarse)': 1,
492
+ },
493
+ },
494
+ // Inverted: visible at rest, fades OUT on :hover only. Deliberately ignores
495
+ // :focus-within (a keyboard user must never watch content vanish) and stays
496
+ // visible on touch. Never leaves the a11y tree.
497
+ conceal: {
498
+ transitionProperty: 'opacity',
499
+ transitionDuration: {
500
+ default: durationVars['--duration-fast'],
501
+ '@media (prefers-reduced-motion: reduce)': '0s',
502
+ },
503
+ transitionTimingFunction: easeVars['--ease-standard'],
504
+ opacity: {
505
+ default: 1,
506
+ [stylex.when.ancestor(':hover', m5)]: {'@media (hover: hover)': 0},
507
+ },
508
+ },
509
+ concealLayoutPreserved: {
510
+ transitionProperty: 'opacity',
511
+ transitionDuration: {
512
+ default: durationVars['--duration-fast'],
513
+ '@media (prefers-reduced-motion: reduce)': '0s',
514
+ },
515
+ transitionTimingFunction: easeVars['--ease-standard'],
516
+ opacity: {
517
+ default: 1,
518
+ [stylex.when.ancestor(':hover', m5)]: {'@media (hover: hover)': 0},
519
+ },
520
+ },
521
+ });
522
+
523
+ // The compiled StyleX style objects carry `when.ancestor` conditionals that
524
+ // the public `StyleXStyles` type does not model, so the slot shape is inferred
525
+ // from the generated blocks rather than annotated.
526
+ export const POOL = [
527
+ {
528
+ marker: m0,
529
+ reveal: s0.reveal,
530
+ revealLayoutPreserved: s0.revealLayoutPreserved,
531
+ conceal: s0.conceal,
532
+ concealLayoutPreserved: s0.concealLayoutPreserved,
533
+ },
534
+ {
535
+ marker: m1,
536
+ reveal: s1.reveal,
537
+ revealLayoutPreserved: s1.revealLayoutPreserved,
538
+ conceal: s1.conceal,
539
+ concealLayoutPreserved: s1.concealLayoutPreserved,
540
+ },
541
+ {
542
+ marker: m2,
543
+ reveal: s2.reveal,
544
+ revealLayoutPreserved: s2.revealLayoutPreserved,
545
+ conceal: s2.conceal,
546
+ concealLayoutPreserved: s2.concealLayoutPreserved,
547
+ },
548
+ {
549
+ marker: m3,
550
+ reveal: s3.reveal,
551
+ revealLayoutPreserved: s3.revealLayoutPreserved,
552
+ conceal: s3.conceal,
553
+ concealLayoutPreserved: s3.concealLayoutPreserved,
554
+ },
555
+ {
556
+ marker: m4,
557
+ reveal: s4.reveal,
558
+ revealLayoutPreserved: s4.revealLayoutPreserved,
559
+ conceal: s4.conceal,
560
+ concealLayoutPreserved: s4.concealLayoutPreserved,
561
+ },
562
+ {
563
+ marker: m5,
564
+ reveal: s5.reveal,
565
+ revealLayoutPreserved: s5.revealLayoutPreserved,
566
+ conceal: s5.conceal,
567
+ concealLayoutPreserved: s5.concealLayoutPreserved,
568
+ },
569
+ ] as const;
570
+
571
+ export type RevealSlot = (typeof POOL)[number];
@@ -92,3 +92,10 @@ export {useLongPress} from './useLongPress';
92
92
  export type {UseLongPressOptions, UseLongPressHandlers} from './useLongPress';
93
93
 
94
94
  export {useDevWarning} from './useDevWarning';
95
+
96
+ export {useContainerReveal} from './useContainerReveal';
97
+ export type {
98
+ UseContainerRevealOptions,
99
+ UseContainerRevealReturn,
100
+ ContentRevealOptions,
101
+ } from './useContainerReveal';
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').HookDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').HookDoc} */
4
4
  export const docs = {
5
5
  name: 'useClickableContainer',
6
6
  displayName: 'useClickableContainer',
@@ -77,7 +77,7 @@ export const docs = {
77
77
  category: 'interaction',
78
78
  };
79
79
 
80
- /** @type {import('../docs-types').HookTranslationDoc} */
80
+ /** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
81
81
  export const docsDense = {
82
82
  description:
83
83
  'Makes container element clickable while preserving nested interactive element behavior. Solves "nested interactive elements" problem: when card is clickable but contains buttons/links, clicking those must NOT trigger card\'s action. Detects interactive ancestors between click target + container, ignores text selections. Supports href navigation (incl. middle-click + Ctrl/Cmd+click for new tabs).',
@@ -0,0 +1,75 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /** @type {import('@astryxdesign/cli/authoring').HookDoc} */
4
+ export const docs = {
5
+ name: 'useContainerReveal',
6
+ displayName: 'useContainerReveal',
7
+ keywords: ['reveal', 'hover', 'focus', 'container', 'row', 'actions', 'overlay', 'conceal', 'hidden', 'show'],
8
+ params: [
9
+ {
10
+ name: 'options',
11
+ type: 'UseContainerRevealOptions',
12
+ description: 'Configuration object for the reveal container. Optional.',
13
+ required: false,
14
+ },
15
+ {
16
+ name: 'options.isEnabled',
17
+ type: 'boolean',
18
+ description: 'When false the hook is inert: no marker is applied and content getters return no styles, so content is always shown. Lets a component gate reveal on its own prop (e.g. revealOn === "hover").',
19
+ default: 'true',
20
+ required: false,
21
+ },
22
+ ],
23
+ returns: [
24
+ {
25
+ name: 'getContainerProps',
26
+ type: '() => {className?: string; style?: CSSProperties}',
27
+ description: 'Spread onto the container whose hover/focus-within drives the reveal.',
28
+ },
29
+ {
30
+ name: 'getContentRevealProps',
31
+ type: '(options?: ContentRevealOptions) => {className?: string; style?: CSSProperties}',
32
+ description: 'Spread onto each revealed (or concealed) child. Accepts isRevealInverted to conceal-on-hover instead of reveal-on-hover, and isLayoutPreserved to reserve the layout box while hidden (opacity-only) and avoid layout shift.',
33
+ },
34
+ ],
35
+ usage: {
36
+ description:
37
+ 'A headless hover/focus reveal primitive. Gives a container a scoped trigger that reveals (or conceals) content inside it when the container is hovered or receives keyboard focus: the classic "row actions appear on hover" pattern. The reveal is CSS-only: no hover state lives in React and hovering never triggers a re-render. The caller authors no StyleX for the reveal itself; the hook hands out a scoped marker and matching styles, so nested containers never leak hover/focus into one another. Accessible by construction: revealed content is visually hidden at rest with position and opacity (never display:none), so it stays mounted, keeps its place in the tab order, and is announced to assistive technology; it reveals on :focus-within so keyboard users see it when tabbing in, stays visible on touch (never gated behind hover on coarse pointers), and honors prefers-reduced-motion.',
38
+ bestPractices: [
39
+ { guidance: true, description: 'Destructure getContainerProps and getContentRevealProps; spread getContainerProps() on the container (via mergeProps with your own stylex.props) and getContentRevealProps() on the content to reveal.' },
40
+ { guidance: true, description: 'Use for secondary affordances: reveal-on-hover row actions (edit/copy/remove on list or table rows) and overlay controls on a card or media tile (e.g. Thumbnail\'s remove button).' },
41
+ { guidance: true, description: 'Gate the reveal with isEnabled when a consumer prop decides whether content is revealed on hover or always shown.' },
42
+ { guidance: true, description: 'Pass isLayoutPreserved for absolutely-positioned or overlay content to reserve its box and avoid layout shift when it appears.' },
43
+ { guidance: false, description: 'Use it to hide content that must always be discoverable; keep essential actions visible instead of gating them behind hover.' },
44
+ ],
45
+ },
46
+ relatedComponents: ['Thumbnail'],
47
+ relatedHooks: ['useClickableContainer'],
48
+ importPath: '@astryxdesign/core/hooks',
49
+ category: 'interaction',
50
+ };
51
+
52
+ /** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
53
+ export const docsDense = {
54
+ description:
55
+ 'Headless hover/focus reveal primitive. Gives a container a scoped trigger that reveals (or conceals) content inside it on hover / keyboard focus: the "row actions appear on hover" pattern. CSS-only: no hover state in React, no re-render on hover. Caller authors no StyleX; hook hands out a scoped marker + matching styles, so nested containers never leak hover/focus. Accessible: revealed content visually hidden at rest via position + opacity (never display:none), stays mounted + in tab order + announced; reveals on :focus-within, stays visible on touch, honors prefers-reduced-motion.',
56
+ paramDescriptions: {
57
+ options: 'config for reveal container. optional.',
58
+ 'options.isEnabled': 'when false hook is inert: no marker, content getters return no styles, content always shown. Lets component gate reveal on its own prop.',
59
+ },
60
+ returnDescriptions: {
61
+ getContainerProps: 'spread onto container whose hover/focus-within drives reveal.',
62
+ getContentRevealProps: 'spread onto each revealed / concealed child. Accepts isRevealInverted (conceal-on-hover) + isLayoutPreserved (reserve layout box while hidden).',
63
+ },
64
+ usage: {
65
+ description:
66
+ 'Headless hover/focus reveal primitive. Gives a container a scoped trigger that reveals (or conceals) content inside it on hover / keyboard focus: the "row actions appear on hover" pattern. CSS-only: no hover state in React, no re-render on hover. Caller authors no StyleX; hook hands out a scoped marker + matching styles, so nested containers never leak hover/focus. Accessible: revealed content visually hidden at rest via position + opacity (never display:none), stays mounted + in tab order + announced; reveals on :focus-within, stays visible on touch, honors prefers-reduced-motion.',
67
+ bestPractices: [
68
+ { guidance: true, description: 'Destructure getContainerProps + getContentRevealProps; spread getContainerProps() on container (via mergeProps w/ your stylex.props) + getContentRevealProps() on content to reveal.' },
69
+ { guidance: true, description: 'Use for secondary affordances: reveal-on-hover row actions (edit/copy/remove on list / table rows) + overlay controls on card / media tile (e.g. Thumbnail remove button).' },
70
+ { guidance: true, description: 'Gate reveal w/ isEnabled when a consumer prop decides revealed-on-hover vs always shown.' },
71
+ { guidance: true, description: 'Pass isLayoutPreserved for absolutely-positioned / overlay content to reserve its box + avoid layout shift.' },
72
+ { guidance: false, description: 'Use to hide content that must always be discoverable; keep essential actions visible instead of gating behind hover.' },
73
+ ],
74
+ },
75
+ };