@astryxdesign/core 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (551) hide show
  1. package/CHANGELOG.md +156 -0
  2. package/dist/AlertDialog/AlertDialog.d.ts +10 -2
  3. package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
  4. package/dist/AlertDialog/AlertDialog.js +22 -3
  5. package/dist/AppShell/AppShell.d.ts +2 -2
  6. package/dist/AppShell/AppShell.d.ts.map +1 -1
  7. package/dist/AppShell/AppShell.js +40 -9
  8. package/dist/AspectRatio/AspectRatio.d.ts +13 -0
  9. package/dist/AspectRatio/AspectRatio.d.ts.map +1 -1
  10. package/dist/AspectRatio/AspectRatio.js +9 -0
  11. package/dist/Avatar/Avatar.d.ts.map +1 -1
  12. package/dist/Avatar/Avatar.js +33 -20
  13. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
  14. package/dist/AvatarGroup/AvatarGroupOverflow.js +2 -3
  15. package/dist/Banner/Banner.d.ts.map +1 -1
  16. package/dist/Banner/Banner.js +15 -14
  17. package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  18. package/dist/Breadcrumbs/BreadcrumbItem.js +21 -8
  19. package/dist/Breadcrumbs/index.d.ts +2 -1
  20. package/dist/Breadcrumbs/index.d.ts.map +1 -1
  21. package/dist/Breadcrumbs/index.js +1 -0
  22. package/dist/Button/Button.d.ts.map +1 -1
  23. package/dist/Button/Button.js +11 -15
  24. package/dist/Calendar/Calendar.d.ts.map +1 -1
  25. package/dist/Calendar/Calendar.js +2 -1
  26. package/dist/Calendar/styles.d.ts +0 -2
  27. package/dist/Calendar/styles.d.ts.map +1 -1
  28. package/dist/Calendar/styles.js +0 -2
  29. package/dist/Carousel/Carousel.d.ts.map +1 -1
  30. package/dist/Carousel/Carousel.js +8 -12
  31. package/dist/Chat/ChatDictationButton.d.ts.map +1 -1
  32. package/dist/Chat/ChatDictationButton.js +2 -1
  33. package/dist/Chat/ChatLayoutScrollButton.d.ts.map +1 -1
  34. package/dist/Chat/ChatLayoutScrollButton.js +3 -1
  35. package/dist/Chat/ChatSendButton.d.ts.map +1 -1
  36. package/dist/Chat/ChatSendButton.js +4 -3
  37. package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
  38. package/dist/Chat/ChatToolCalls.js +17 -17
  39. package/dist/Chat/useTriggerMenu.d.ts.map +1 -1
  40. package/dist/Chat/useTriggerMenu.js +2 -6
  41. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  42. package/dist/CheckboxInput/CheckboxInput.js +36 -125
  43. package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
  44. package/dist/ClickableCard/ClickableCard.js +3 -11
  45. package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
  46. package/dist/CodeBlock/CodeBlock.js +84 -67
  47. package/dist/Collapsible/Collapsible.d.ts.map +1 -1
  48. package/dist/Collapsible/Collapsible.js +35 -15
  49. package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
  50. package/dist/CommandPalette/CommandPaletteItem.d.ts.map +1 -1
  51. package/dist/CommandPalette/CommandPaletteItem.js +6 -3
  52. package/dist/CommandPalette/CommandPaletteList.js +1 -1
  53. package/dist/ComplexSelector/ComplexSelector.d.ts +1 -1
  54. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
  55. package/dist/ComplexSelector/ComplexSelector.js +35 -33
  56. package/dist/ContextMenu/ContextMenu.d.ts +2 -2
  57. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  58. package/dist/ContextMenu/ContextMenu.js +1 -1
  59. package/dist/ContextMenu/index.d.ts +2 -1
  60. package/dist/ContextMenu/index.d.ts.map +1 -1
  61. package/dist/ContextMenu/index.js +1 -0
  62. package/dist/DateInput/DateInput.d.ts +9 -2
  63. package/dist/DateInput/DateInput.d.ts.map +1 -1
  64. package/dist/DateInput/DateInput.js +24 -23
  65. package/dist/DateRangeInput/DateRangeInput.d.ts +9 -2
  66. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  67. package/dist/DateRangeInput/DateRangeInput.js +11 -16
  68. package/dist/DateTimeInput/DateTimeInput.d.ts +9 -1
  69. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  70. package/dist/DateTimeInput/DateTimeInput.js +22 -17
  71. package/dist/Dialog/Dialog.d.ts.map +1 -1
  72. package/dist/Dialog/Dialog.js +4 -4
  73. package/dist/DropdownMenu/DropdownMenu.d.ts +33 -8
  74. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  75. package/dist/DropdownMenu/DropdownMenu.js +62 -20
  76. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +8 -11
  77. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  78. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +32 -31
  79. package/dist/DropdownMenu/DropdownMenuDivider.d.ts +25 -0
  80. package/dist/DropdownMenu/DropdownMenuDivider.d.ts.map +1 -0
  81. package/dist/DropdownMenu/DropdownMenuDivider.js +66 -0
  82. package/dist/DropdownMenu/DropdownMenuItem.d.ts +15 -2
  83. package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  84. package/dist/DropdownMenu/DropdownMenuItem.js +20 -8
  85. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +5 -5
  86. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  87. package/dist/DropdownMenu/DropdownMenuRadioItem.js +24 -67
  88. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  89. package/dist/DropdownMenu/DropdownMenuSubMenu.js +2 -8
  90. package/dist/DropdownMenu/index.d.ts +2 -1
  91. package/dist/DropdownMenu/index.d.ts.map +1 -1
  92. package/dist/DropdownMenu/index.js +4 -0
  93. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  94. package/dist/DropdownMenu/renderDropdownItems.js +35 -27
  95. package/dist/EmptyState/EmptyState.d.ts.map +1 -1
  96. package/dist/EmptyState/EmptyState.js +9 -5
  97. package/dist/Field/InputClearButton.d.ts +16 -3
  98. package/dist/Field/InputClearButton.d.ts.map +1 -1
  99. package/dist/Field/InputClearButton.js +15 -4
  100. package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
  101. package/dist/HoverCard/useHoverCard.js +3 -19
  102. package/dist/Indicator/CheckIndicator.d.ts +25 -0
  103. package/dist/Indicator/CheckIndicator.d.ts.map +1 -0
  104. package/dist/Indicator/CheckIndicator.js +155 -0
  105. package/dist/Indicator/CheckboxIndicator.d.ts +22 -0
  106. package/dist/Indicator/CheckboxIndicator.d.ts.map +1 -0
  107. package/dist/Indicator/CheckboxIndicator.js +173 -0
  108. package/dist/Indicator/RadioIndicator.d.ts +23 -0
  109. package/dist/Indicator/RadioIndicator.d.ts.map +1 -0
  110. package/dist/Indicator/RadioIndicator.js +137 -0
  111. package/dist/Indicator/index.d.ts +24 -0
  112. package/dist/Indicator/index.d.ts.map +1 -0
  113. package/dist/Indicator/index.js +26 -0
  114. package/dist/Indicator/indicator.markers.stylex.d.ts +16 -0
  115. package/dist/Indicator/indicator.markers.stylex.d.ts.map +1 -0
  116. package/dist/Indicator/indicator.markers.stylex.js +21 -0
  117. package/dist/Indicator/indicatorRegistry.d.ts +71 -0
  118. package/dist/Indicator/indicatorRegistry.d.ts.map +1 -0
  119. package/dist/Indicator/indicatorRegistry.js +93 -0
  120. package/dist/Indicator/types.d.ts +167 -0
  121. package/dist/Indicator/types.d.ts.map +1 -0
  122. package/dist/Indicator/types.js +1 -0
  123. package/dist/Indicator/useIndicator.d.ts +18 -0
  124. package/dist/Indicator/useIndicator.d.ts.map +1 -0
  125. package/dist/Indicator/useIndicator.js +30 -0
  126. package/dist/Item/Item.d.ts.map +1 -1
  127. package/dist/Item/Item.js +4 -8
  128. package/dist/Layer/useLayer.d.ts +14 -0
  129. package/dist/Layer/useLayer.d.ts.map +1 -1
  130. package/dist/Layer/useLayer.js +25 -2
  131. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  132. package/dist/Lightbox/Lightbox.js +56 -53
  133. package/dist/Link/Link.d.ts.map +1 -1
  134. package/dist/Link/Link.js +4 -5
  135. package/dist/MobileNav/MobileNav.js +8 -8
  136. package/dist/MoreMenu/MoreMenu.d.ts +14 -1
  137. package/dist/MoreMenu/MoreMenu.d.ts.map +1 -1
  138. package/dist/MoreMenu/MoreMenu.js +4 -0
  139. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  140. package/dist/MultiSelector/MultiSelector.js +78 -75
  141. package/dist/NumberInput/NumberInput.d.ts +27 -1
  142. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  143. package/dist/NumberInput/NumberInput.js +230 -42
  144. package/dist/Outline/Outline.d.ts.map +1 -1
  145. package/dist/Outline/Outline.js +2 -3
  146. package/dist/Pagination/Pagination.d.ts.map +1 -1
  147. package/dist/Pagination/Pagination.js +61 -63
  148. package/dist/Popover/Popover.d.ts.map +1 -1
  149. package/dist/Popover/Popover.js +6 -8
  150. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  151. package/dist/PowerSearch/PowerSearch.js +1 -1
  152. package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
  153. package/dist/PowerSearch/PowerSearchEditPopover.js +7 -0
  154. package/dist/ProgressBar/ProgressBar.d.ts +11 -4
  155. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  156. package/dist/ProgressBar/ProgressBar.js +96 -6
  157. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  158. package/dist/RadioList/RadioListItem.js +29 -84
  159. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  160. package/dist/Resizable/ResizeHandle.js +2 -3
  161. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  162. package/dist/SegmentedControl/SegmentedControlItem.js +2 -3
  163. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  164. package/dist/SelectableCard/SelectableCard.js +3 -11
  165. package/dist/Selector/Selector.d.ts +2 -1
  166. package/dist/Selector/Selector.d.ts.map +1 -1
  167. package/dist/Selector/Selector.js +164 -94
  168. package/dist/Selector/hooks.d.ts +18 -6
  169. package/dist/Selector/hooks.d.ts.map +1 -1
  170. package/dist/Selector/hooks.js +57 -40
  171. package/dist/SideNav/SideNav.d.ts.map +1 -1
  172. package/dist/SideNav/SideNav.js +1 -1
  173. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  174. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  175. package/dist/SideNav/SideNavCollapseButton.js +29 -14
  176. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  177. package/dist/SideNav/SideNavHeading.js +56 -20
  178. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  179. package/dist/SideNav/SideNavItem.js +28 -22
  180. package/dist/Stack/stack.stylex.d.ts +3 -3
  181. package/dist/Switch/Switch.js +11 -10
  182. package/dist/TabList/Tab.d.ts.map +1 -1
  183. package/dist/TabList/Tab.js +2 -3
  184. package/dist/TabList/TabMenu.d.ts.map +1 -1
  185. package/dist/TabList/TabMenu.js +41 -19
  186. package/dist/Table/BaseTable.d.ts.map +1 -1
  187. package/dist/Table/BaseTable.js +8 -0
  188. package/dist/Table/index.d.ts +1 -1
  189. package/dist/Table/index.d.ts.map +1 -1
  190. package/dist/Table/index.js +1 -1
  191. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +1 -1
  192. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -1
  193. package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +22 -18
  194. package/dist/Table/plugins/rowExpansion/index.d.ts +1 -1
  195. package/dist/Table/plugins/rowExpansion/index.d.ts.map +1 -1
  196. package/dist/Table/plugins/rowExpansion/index.js +1 -1
  197. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +41 -76
  198. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  199. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +94 -345
  200. package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
  201. package/dist/Table/plugins/sortable/useTableSortable.js +23 -4
  202. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  203. package/dist/Table/plugins/tree/useTableTreeData.js +29 -33
  204. package/dist/Table/tableContextMenu.d.ts.map +1 -1
  205. package/dist/Table/tableContextMenu.js +2 -1
  206. package/dist/Table/types.d.ts +11 -0
  207. package/dist/Table/types.d.ts.map +1 -1
  208. package/dist/TextArea/TextArea.d.ts +10 -1
  209. package/dist/TextArea/TextArea.d.ts.map +1 -1
  210. package/dist/TextArea/TextArea.js +16 -6
  211. package/dist/TextInput/TextInput.d.ts +10 -1
  212. package/dist/TextInput/TextInput.d.ts.map +1 -1
  213. package/dist/TextInput/TextInput.js +13 -19
  214. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  215. package/dist/Thumbnail/Thumbnail.js +32 -26
  216. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  217. package/dist/TimeInput/TimeInput.js +7 -15
  218. package/dist/Timestamp/TimestampHoverCard.d.ts.map +1 -1
  219. package/dist/Timestamp/TimestampHoverCard.js +16 -34
  220. package/dist/Token/Token.d.ts.map +1 -1
  221. package/dist/Token/Token.js +20 -11
  222. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  223. package/dist/Tokenizer/Tokenizer.js +4 -2
  224. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  225. package/dist/Tooltip/useTooltip.js +3 -19
  226. package/dist/TopNav/TopNav.d.ts.map +1 -1
  227. package/dist/TopNav/TopNav.js +6 -5
  228. package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
  229. package/dist/TopNav/TopNavHeading.js +54 -16
  230. package/dist/TopNav/TopNavItem.d.ts.map +1 -1
  231. package/dist/TopNav/TopNavItem.js +3 -9
  232. package/dist/TopNav/TopNavMegaMenu.d.ts +7 -0
  233. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  234. package/dist/TopNav/TopNavMegaMenu.js +146 -60
  235. package/dist/TopNav/TopNavMegaMenuItem.d.ts.map +1 -1
  236. package/dist/TopNav/TopNavMegaMenuItem.js +22 -3
  237. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  238. package/dist/TopNav/TopNavMenu.js +83 -38
  239. package/dist/TreeList/TreeList.d.ts.map +1 -1
  240. package/dist/TreeList/TreeList.js +13 -0
  241. package/dist/TreeList/TreeListBranches.d.ts +1 -1
  242. package/dist/TreeList/TreeListBranches.d.ts.map +1 -1
  243. package/dist/TreeList/TreeListBranches.js +14 -4
  244. package/dist/TreeList/TreeListItem.d.ts +11 -1
  245. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  246. package/dist/TreeList/TreeListItem.js +57 -30
  247. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  248. package/dist/Typeahead/BaseTypeahead.js +16 -8
  249. package/dist/astryx.css +74 -85
  250. package/dist/astryx.umd.js +56 -56
  251. package/dist/astryx.umd.js.map +4 -4
  252. package/dist/hooks/containerReveal.stylex.d.ts +61 -0
  253. package/dist/hooks/containerReveal.stylex.d.ts.map +1 -0
  254. package/dist/hooks/containerReveal.stylex.js +63 -0
  255. package/dist/hooks/index.d.ts +3 -0
  256. package/dist/hooks/index.d.ts.map +1 -1
  257. package/dist/hooks/index.js +2 -0
  258. package/dist/hooks/useClipboard.d.ts +59 -0
  259. package/dist/hooks/useClipboard.d.ts.map +1 -0
  260. package/dist/hooks/useClipboard.js +106 -0
  261. package/dist/hooks/useContainerReveal.d.ts +14 -8
  262. package/dist/hooks/useContainerReveal.d.ts.map +1 -1
  263. package/dist/hooks/useContainerReveal.js +28 -69
  264. package/dist/hooks/useIndicatorFocusRing.d.ts +28 -0
  265. package/dist/hooks/useIndicatorFocusRing.d.ts.map +1 -0
  266. package/dist/hooks/useIndicatorFocusRing.js +96 -0
  267. package/dist/hooks/useLongPress.d.ts.map +1 -1
  268. package/dist/hooks/useLongPress.js +12 -2
  269. package/dist/hooks/useScrollLock.d.ts.map +1 -1
  270. package/dist/hooks/useScrollLock.js +33 -18
  271. package/dist/hooks/useStreamingText.d.ts +18 -3
  272. package/dist/hooks/useStreamingText.d.ts.map +1 -1
  273. package/dist/hooks/useStreamingText.js +47 -7
  274. package/dist/hooks/useTreeFocus.d.ts.map +1 -1
  275. package/dist/hooks/useTreeFocus.js +9 -3
  276. package/dist/hooks/useTypeahead.d.ts +3 -2
  277. package/dist/hooks/useTypeahead.d.ts.map +1 -1
  278. package/dist/hooks/useTypeahead.js +19 -7
  279. package/dist/index.d.ts +1 -0
  280. package/dist/index.d.ts.map +1 -1
  281. package/dist/index.js +1 -0
  282. package/dist/theme/defineTheme.d.ts +16 -0
  283. package/dist/theme/defineTheme.d.ts.map +1 -1
  284. package/dist/theme/defineTheme.js +8 -0
  285. package/dist/theme/derivedVarRegistry.d.ts +8 -0
  286. package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
  287. package/dist/theme/derivedVarRegistry.js +14 -13
  288. package/dist/theme/expandColorScale.d.ts +3 -1
  289. package/dist/theme/expandColorScale.d.ts.map +1 -1
  290. package/dist/theme/expandColorScale.js +17 -7
  291. package/dist/theme/expandTypeScale.d.ts.map +1 -1
  292. package/dist/theme/expandTypeScale.js +17 -0
  293. package/dist/theme/generateThemeRules.d.ts.map +1 -1
  294. package/dist/theme/generateThemeRules.js +11 -0
  295. package/dist/theme/index.d.ts +1 -0
  296. package/dist/theme/index.d.ts.map +1 -1
  297. package/dist/utils/focusOutline.stylex.d.ts +107 -0
  298. package/dist/utils/focusOutline.stylex.d.ts.map +1 -0
  299. package/dist/utils/focusOutline.stylex.js +130 -0
  300. package/dist/utils/focusReturn.d.ts +24 -0
  301. package/dist/utils/focusReturn.d.ts.map +1 -0
  302. package/dist/utils/focusReturn.js +29 -0
  303. package/dist/utils/index.d.ts +1 -0
  304. package/dist/utils/index.d.ts.map +1 -1
  305. package/dist/utils/index.js +1 -0
  306. package/dist/utils/mergeRefs.d.ts.map +1 -1
  307. package/dist/utils/mergeRefs.js +7 -5
  308. package/dist/utils/rtlStyles.d.ts +2 -2
  309. package/dist/utils/rtlStyles.js +2 -2
  310. package/dist/utils/themeProps.d.ts +20 -1
  311. package/dist/utils/themeProps.d.ts.map +1 -1
  312. package/dist/utils/themeProps.js +8 -2
  313. package/locales/en.json +12 -0
  314. package/locales/pseudo.json +9 -0
  315. package/package.json +7 -2
  316. package/src/AlertDialog/AlertDialog.doc.mjs +16 -3
  317. package/src/AlertDialog/AlertDialog.test.tsx +208 -1
  318. package/src/AlertDialog/AlertDialog.tsx +21 -3
  319. package/src/AppShell/AppShell.doc.mjs +11 -0
  320. package/src/AppShell/AppShell.test.tsx +139 -0
  321. package/src/AppShell/AppShell.tsx +32 -22
  322. package/src/AspectRatio/AspectRatio.doc.mjs +27 -3
  323. package/src/AspectRatio/AspectRatio.test.tsx +30 -0
  324. package/src/AspectRatio/AspectRatio.tsx +13 -0
  325. package/src/Avatar/Avatar.doc.mjs +2 -13
  326. package/src/Avatar/Avatar.test.tsx +33 -8
  327. package/src/Avatar/Avatar.tsx +52 -50
  328. package/src/AvatarGroup/AvatarGroupOverflow.tsx +2 -9
  329. package/src/Banner/Banner.tsx +9 -6
  330. package/src/Breadcrumbs/BreadcrumbItem.tsx +16 -6
  331. package/src/Breadcrumbs/index.ts +5 -1
  332. package/src/Button/Button.tsx +21 -41
  333. package/src/Calendar/Calendar.tsx +2 -1
  334. package/src/Calendar/styles.ts +0 -8
  335. package/src/Carousel/Carousel.doc.mjs +3 -0
  336. package/src/Carousel/Carousel.tsx +10 -6
  337. package/src/Chat/Chat.doc.mjs +2 -0
  338. package/src/Chat/ChatDictationButton.tsx +7 -1
  339. package/src/Chat/ChatLayoutScrollButton.test.tsx +22 -0
  340. package/src/Chat/ChatLayoutScrollButton.tsx +8 -1
  341. package/src/Chat/ChatSendButton.tsx +2 -3
  342. package/src/Chat/ChatToolCalls.test.tsx +35 -0
  343. package/src/Chat/ChatToolCalls.tsx +36 -16
  344. package/src/Chat/useTriggerMenu.tsx +2 -5
  345. package/src/CheckboxInput/CheckboxInput.doc.mjs +4 -2
  346. package/src/CheckboxInput/CheckboxInput.test.tsx +115 -0
  347. package/src/CheckboxInput/CheckboxInput.tsx +45 -202
  348. package/src/ClickableCard/ClickableCard.tsx +6 -11
  349. package/src/CodeBlock/CodeBlock.doc.mjs +3 -0
  350. package/src/CodeBlock/CodeBlock.test.tsx +91 -0
  351. package/src/CodeBlock/CodeBlock.tsx +57 -80
  352. package/src/Collapsible/Collapsible.tsx +22 -18
  353. package/src/CommandPalette/CommandPalette.test.tsx +29 -0
  354. package/src/CommandPalette/CommandPaletteItem.tsx +7 -4
  355. package/src/CommandPalette/CommandPaletteList.tsx +2 -2
  356. package/src/ComplexSelector/ComplexSelector.doc.mjs +42 -0
  357. package/src/ComplexSelector/ComplexSelector.test.tsx +64 -0
  358. package/src/ComplexSelector/ComplexSelector.tsx +46 -29
  359. package/src/ContextMenu/ContextMenu.doc.mjs +1 -1
  360. package/src/ContextMenu/ContextMenu.test.tsx +41 -0
  361. package/src/ContextMenu/ContextMenu.tsx +3 -3
  362. package/src/ContextMenu/index.ts +5 -1
  363. package/src/DateInput/DateInput.doc.mjs +18 -3
  364. package/src/DateInput/DateInput.test.tsx +93 -11
  365. package/src/DateInput/DateInput.tsx +41 -19
  366. package/src/DateRangeInput/DateRangeInput.doc.mjs +10 -2
  367. package/src/DateRangeInput/DateRangeInput.test.tsx +110 -14
  368. package/src/DateRangeInput/DateRangeInput.tsx +24 -12
  369. package/src/DateTimeInput/DateTimeInput.doc.mjs +16 -2
  370. package/src/DateTimeInput/DateTimeInput.test.tsx +75 -0
  371. package/src/DateTimeInput/DateTimeInput.tsx +35 -8
  372. package/src/Dialog/Dialog.tsx +2 -9
  373. package/src/DropdownMenu/DropdownMenu.doc.mjs +5 -9
  374. package/src/DropdownMenu/DropdownMenu.test.tsx +534 -4
  375. package/src/DropdownMenu/DropdownMenu.tsx +113 -52
  376. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +27 -30
  377. package/src/DropdownMenu/DropdownMenuDivider.doc.mjs +34 -0
  378. package/src/DropdownMenu/DropdownMenuDivider.tsx +81 -0
  379. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +39 -4
  380. package/src/DropdownMenu/DropdownMenuItem.tsx +48 -10
  381. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +30 -76
  382. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +25 -19
  383. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +44 -14
  384. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +1 -5
  385. package/src/DropdownMenu/index.ts +8 -1
  386. package/src/DropdownMenu/renderDropdownItems.tsx +33 -34
  387. package/src/EmptyState/EmptyState.doc.mjs +4 -0
  388. package/src/EmptyState/EmptyState.test.tsx +62 -0
  389. package/src/EmptyState/EmptyState.tsx +16 -6
  390. package/src/Field/Field.doc.mjs +1 -0
  391. package/src/Field/InputClearButton.test.tsx +117 -0
  392. package/src/Field/InputClearButton.tsx +30 -3
  393. package/src/HoverCard/useHoverCard.tsx +2 -23
  394. package/src/Icon/Icon.doc.mjs +2 -1
  395. package/src/Indicator/CheckIndicator.tsx +174 -0
  396. package/src/Indicator/CheckboxIndicator.tsx +257 -0
  397. package/src/Indicator/Indicator.doc.mjs +344 -0
  398. package/src/Indicator/Indicator.test.tsx +393 -0
  399. package/src/Indicator/RadioIndicator.tsx +206 -0
  400. package/src/Indicator/index.ts +45 -0
  401. package/src/Indicator/indicator.markers.stylex.ts +19 -0
  402. package/src/Indicator/indicatorRegistry.test.tsx +106 -0
  403. package/src/Indicator/indicatorRegistry.ts +120 -0
  404. package/src/Indicator/types.ts +186 -0
  405. package/src/Indicator/useIndicator.ts +39 -0
  406. package/src/Item/Item.doc.mjs +1 -1
  407. package/src/Item/Item.tsx +7 -14
  408. package/src/Layer/useLayer.doc.mjs +2 -2
  409. package/src/Layer/useLayer.test.tsx +85 -0
  410. package/src/Layer/useLayer.tsx +39 -1
  411. package/src/Lightbox/Lightbox.doc.mjs +1 -1
  412. package/src/Lightbox/Lightbox.tsx +43 -38
  413. package/src/Link/Link.tsx +4 -11
  414. package/src/MobileNav/MobileNav.tsx +3 -3
  415. package/src/MoreMenu/MoreMenu.doc.mjs +31 -0
  416. package/src/MoreMenu/MoreMenu.test.tsx +68 -1
  417. package/src/MoreMenu/MoreMenu.tsx +19 -0
  418. package/src/MultiSelector/MultiSelector.doc.mjs +9 -1
  419. package/src/MultiSelector/MultiSelector.test.tsx +255 -16
  420. package/src/MultiSelector/MultiSelector.tsx +103 -99
  421. package/src/NumberInput/NumberInput.doc.mjs +265 -50
  422. package/src/NumberInput/NumberInput.test.tsx +726 -21
  423. package/src/NumberInput/NumberInput.tsx +353 -59
  424. package/src/Outline/Outline.tsx +2 -5
  425. package/src/Pagination/Pagination.doc.mjs +1 -1
  426. package/src/Pagination/Pagination.test.tsx +22 -7
  427. package/src/Pagination/Pagination.tsx +38 -35
  428. package/src/Popover/Popover.tsx +6 -7
  429. package/src/PowerSearch/PowerSearch.tsx +1 -1
  430. package/src/PowerSearch/PowerSearchEditPopover.test.tsx +42 -0
  431. package/src/PowerSearch/PowerSearchEditPopover.tsx +7 -0
  432. package/src/ProgressBar/ProgressBar.doc.mjs +27 -5
  433. package/src/ProgressBar/ProgressBar.test.tsx +224 -1
  434. package/src/ProgressBar/ProgressBar.tsx +124 -22
  435. package/src/RadioList/RadioList.doc.mjs +4 -2
  436. package/src/RadioList/RadioListItem.tsx +31 -130
  437. package/src/Resizable/ResizeHandle.tsx +2 -9
  438. package/src/SegmentedControl/SegmentedControlItem.tsx +2 -9
  439. package/src/SelectableCard/SelectableCard.tsx +4 -9
  440. package/src/Selector/Selector.doc.mjs +7 -4
  441. package/src/Selector/Selector.test.tsx +935 -25
  442. package/src/Selector/Selector.tsx +189 -106
  443. package/src/Selector/hooks.ts +77 -50
  444. package/src/SideNav/SideNav.test.tsx +46 -0
  445. package/src/SideNav/SideNav.tsx +1 -0
  446. package/src/SideNav/SideNavCollapseButton.tsx +15 -10
  447. package/src/SideNav/SideNavHeading.tsx +48 -10
  448. package/src/SideNav/SideNavItem.tsx +20 -12
  449. package/src/Stack/Stack.doc.mjs +110 -0
  450. package/src/StatusDot/StatusDot.doc.mjs +12 -3
  451. package/src/Switch/Switch.test.tsx +32 -0
  452. package/src/Switch/Switch.tsx +8 -8
  453. package/src/TabList/Tab.tsx +2 -9
  454. package/src/TabList/TabMenu.tsx +14 -21
  455. package/src/Table/BaseTable.tsx +11 -0
  456. package/src/Table/index.ts +1 -4
  457. package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +30 -14
  458. package/src/Table/plugins/rowExpansion/index.ts +1 -4
  459. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +125 -175
  460. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +115 -458
  461. package/src/Table/plugins/sortable/useTableSortable.tsx +2 -6
  462. package/src/Table/plugins/tree/useTableTreeData.tsx +43 -24
  463. package/src/Table/tableContextMenu.test.tsx +27 -0
  464. package/src/Table/tableContextMenu.tsx +1 -0
  465. package/src/Table/types.ts +11 -0
  466. package/src/Table/useTableGroupedRows.doc.mjs +1 -1
  467. package/src/Table/useTableRowExpansion.doc.mjs +43 -66
  468. package/src/TextArea/TextArea.doc.mjs +42 -2
  469. package/src/TextArea/TextArea.test.tsx +219 -0
  470. package/src/TextArea/TextArea.tsx +34 -7
  471. package/src/TextInput/TextInput.doc.mjs +18 -2
  472. package/src/TextInput/TextInput.test.tsx +189 -0
  473. package/src/TextInput/TextInput.tsx +25 -31
  474. package/src/Thumbnail/Thumbnail.tsx +2 -9
  475. package/src/TimeInput/TimeInput.doc.mjs +2 -2
  476. package/src/TimeInput/TimeInput.test.tsx +30 -3
  477. package/src/TimeInput/TimeInput.tsx +9 -26
  478. package/src/Timestamp/Timestamp.doc.mjs +4 -3
  479. package/src/Timestamp/TimestampHoverCard.tsx +13 -35
  480. package/src/Token/Token.tsx +5 -28
  481. package/src/Tokenizer/Tokenizer.doc.mjs +2 -2
  482. package/src/Tokenizer/Tokenizer.test.tsx +45 -3
  483. package/src/Tokenizer/Tokenizer.tsx +10 -2
  484. package/src/Tooltip/useTooltip.tsx +2 -23
  485. package/src/TopNav/TopNav.tsx +1 -3
  486. package/src/TopNav/TopNavHeading.tsx +42 -13
  487. package/src/TopNav/TopNavItem.tsx +3 -21
  488. package/src/TopNav/TopNavMegaMenu.test.tsx +433 -33
  489. package/src/TopNav/TopNavMegaMenu.tsx +118 -53
  490. package/src/TopNav/TopNavMegaMenuItem.tsx +2 -9
  491. package/src/TopNav/TopNavMenu.tsx +34 -37
  492. package/src/TreeList/TreeList.doc.mjs +5 -0
  493. package/src/TreeList/TreeList.test.tsx +206 -7
  494. package/src/TreeList/TreeList.tsx +22 -0
  495. package/src/TreeList/TreeListBranches.tsx +25 -2
  496. package/src/TreeList/TreeListItem.tsx +89 -52
  497. package/src/Typeahead/BaseTypeahead.tsx +19 -6
  498. package/src/Typeahead/Typeahead.doc.mjs +1 -0
  499. package/src/Typeahead/Typeahead.test.tsx +76 -3
  500. package/src/hooks/containerReveal.stylex.ts +102 -0
  501. package/src/hooks/index.ts +4 -0
  502. package/src/hooks/useClipboard.doc.mjs +87 -0
  503. package/src/hooks/useClipboard.test.tsx +151 -0
  504. package/src/hooks/useClipboard.ts +135 -0
  505. package/src/hooks/useContainerReveal.doc.mjs +7 -7
  506. package/src/hooks/useContainerReveal.test.tsx +42 -62
  507. package/src/hooks/useContainerReveal.ts +36 -91
  508. package/src/hooks/useImageMode.test.ts +1 -1
  509. package/src/hooks/useIndicatorFocusRing.tsx +120 -0
  510. package/src/hooks/useLongPress.test.tsx +18 -0
  511. package/src/hooks/useLongPress.ts +12 -2
  512. package/src/hooks/useScrollLock.test.ts +72 -0
  513. package/src/hooks/useScrollLock.ts +51 -19
  514. package/src/hooks/useStreamingText.test.ts +46 -1
  515. package/src/hooks/useStreamingText.ts +49 -7
  516. package/src/hooks/useTreeFocus.test.tsx +50 -0
  517. package/src/hooks/useTreeFocus.ts +14 -3
  518. package/src/hooks/useTypeahead.test.tsx +150 -0
  519. package/src/hooks/useTypeahead.ts +24 -9
  520. package/src/i18n/InternationalizationProvider.doc.mjs +7 -2
  521. package/src/index.ts +1 -0
  522. package/src/theme/defineTheme.ts +24 -0
  523. package/src/theme/derivedVarRegistry.test.ts +21 -1
  524. package/src/theme/derivedVarRegistry.ts +19 -6
  525. package/src/theme/expandColorScale.test.ts +14 -0
  526. package/src/theme/expandColorScale.ts +24 -9
  527. package/src/theme/expandTypeScale.test.ts +43 -0
  528. package/src/theme/expandTypeScale.ts +17 -0
  529. package/src/theme/generateThemeRules.test.ts +61 -20
  530. package/src/theme/generateThemeRules.ts +11 -0
  531. package/src/theme/index.ts +13 -0
  532. package/src/utils/focusOutline.stylex.ts +163 -0
  533. package/src/utils/focusReturn.test.ts +42 -0
  534. package/src/utils/focusReturn.ts +31 -0
  535. package/src/utils/index.ts +1 -0
  536. package/src/utils/mergeRefs.test.ts +48 -0
  537. package/src/utils/mergeRefs.ts +12 -6
  538. package/src/utils/rtlStyles.ts +2 -2
  539. package/src/utils/themeProps.ts +26 -4
  540. package/dist/CheckboxInput/checkbox.markers.stylex.d.ts +0 -9
  541. package/dist/CheckboxInput/checkbox.markers.stylex.d.ts.map +0 -1
  542. package/dist/CheckboxInput/checkbox.markers.stylex.js +0 -14
  543. package/dist/RadioList/radio.markers.stylex.d.ts +0 -7
  544. package/dist/RadioList/radio.markers.stylex.d.ts.map +0 -1
  545. package/dist/RadioList/radio.markers.stylex.js +0 -12
  546. package/dist/hooks/containerReveal.pool.stylex.d.ts +0 -303
  547. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +0 -1
  548. package/dist/hooks/containerReveal.pool.stylex.js +0 -292
  549. package/src/CheckboxInput/checkbox.markers.stylex.ts +0 -12
  550. package/src/RadioList/radio.markers.stylex.ts +0 -10
  551. package/src/hooks/containerReveal.pool.stylex.ts +0 -571
@@ -1,571 +0,0 @@
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];