@astryxdesign/core 0.3.0 → 0.4.0-canary.41f53a0

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 (579) 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 +12 -16
  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 +32 -31
  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 +47 -33
  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 +55 -32
  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 +54 -30
  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 +177 -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 +80 -103
  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 +8 -1
  140. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  141. package/dist/MultiSelector/MultiSelector.js +119 -95
  142. package/dist/NumberInput/NumberInput.d.ts +27 -1
  143. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  144. package/dist/NumberInput/NumberInput.js +230 -42
  145. package/dist/Outline/Outline.d.ts.map +1 -1
  146. package/dist/Outline/Outline.js +2 -3
  147. package/dist/Pagination/Pagination.d.ts.map +1 -1
  148. package/dist/Pagination/Pagination.js +61 -63
  149. package/dist/Popover/Popover.d.ts.map +1 -1
  150. package/dist/Popover/Popover.js +6 -8
  151. package/dist/Popover/usePopover.d.ts +15 -0
  152. package/dist/Popover/usePopover.d.ts.map +1 -1
  153. package/dist/Popover/usePopover.js +14 -2
  154. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  155. package/dist/PowerSearch/PowerSearch.js +1 -1
  156. package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
  157. package/dist/PowerSearch/PowerSearchEditPopover.js +7 -0
  158. package/dist/ProgressBar/ProgressBar.d.ts +11 -4
  159. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  160. package/dist/ProgressBar/ProgressBar.js +95 -6
  161. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  162. package/dist/RadioList/RadioListItem.js +29 -84
  163. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  164. package/dist/Resizable/ResizeHandle.js +2 -3
  165. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  166. package/dist/SegmentedControl/SegmentedControlItem.js +2 -3
  167. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  168. package/dist/SelectableCard/SelectableCard.js +3 -11
  169. package/dist/Selector/Selector.d.ts +12 -1
  170. package/dist/Selector/Selector.d.ts.map +1 -1
  171. package/dist/Selector/Selector.js +222 -111
  172. package/dist/Selector/hooks.d.ts +18 -6
  173. package/dist/Selector/hooks.d.ts.map +1 -1
  174. package/dist/Selector/hooks.js +57 -40
  175. package/dist/SideNav/SideNav.d.ts.map +1 -1
  176. package/dist/SideNav/SideNav.js +1 -1
  177. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  178. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  179. package/dist/SideNav/SideNavCollapseButton.js +29 -14
  180. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  181. package/dist/SideNav/SideNavHeading.js +56 -20
  182. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  183. package/dist/SideNav/SideNavItem.js +28 -22
  184. package/dist/Slider/Slider.d.ts.map +1 -1
  185. package/dist/Slider/Slider.js +2 -6
  186. package/dist/Stack/stack.stylex.d.ts +3 -3
  187. package/dist/Switch/Switch.d.ts.map +1 -1
  188. package/dist/Switch/Switch.js +14 -13
  189. package/dist/TabList/Tab.d.ts.map +1 -1
  190. package/dist/TabList/Tab.js +2 -3
  191. package/dist/TabList/TabMenu.d.ts.map +1 -1
  192. package/dist/TabList/TabMenu.js +41 -19
  193. package/dist/Table/BaseTable.d.ts.map +1 -1
  194. package/dist/Table/BaseTable.js +8 -0
  195. package/dist/Table/index.d.ts +1 -1
  196. package/dist/Table/index.d.ts.map +1 -1
  197. package/dist/Table/index.js +1 -1
  198. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +1 -1
  199. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -1
  200. package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +22 -18
  201. package/dist/Table/plugins/rowExpansion/index.d.ts +1 -1
  202. package/dist/Table/plugins/rowExpansion/index.d.ts.map +1 -1
  203. package/dist/Table/plugins/rowExpansion/index.js +1 -1
  204. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +41 -76
  205. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  206. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +94 -345
  207. package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
  208. package/dist/Table/plugins/sortable/useTableSortable.js +23 -4
  209. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  210. package/dist/Table/plugins/tree/useTableTreeData.js +29 -33
  211. package/dist/Table/tableContextMenu.d.ts.map +1 -1
  212. package/dist/Table/tableContextMenu.js +2 -1
  213. package/dist/Table/types.d.ts +11 -0
  214. package/dist/Table/types.d.ts.map +1 -1
  215. package/dist/TextArea/TextArea.d.ts +10 -1
  216. package/dist/TextArea/TextArea.d.ts.map +1 -1
  217. package/dist/TextArea/TextArea.js +16 -6
  218. package/dist/TextInput/TextInput.d.ts +10 -1
  219. package/dist/TextInput/TextInput.d.ts.map +1 -1
  220. package/dist/TextInput/TextInput.js +13 -19
  221. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  222. package/dist/Thumbnail/Thumbnail.js +32 -26
  223. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  224. package/dist/TimeInput/TimeInput.js +14 -17
  225. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  226. package/dist/Timestamp/Timestamp.js +14 -3
  227. package/dist/Timestamp/TimestampHoverCard.d.ts.map +1 -1
  228. package/dist/Timestamp/TimestampHoverCard.js +16 -34
  229. package/dist/Timestamp/formatInstant.d.ts +11 -1
  230. package/dist/Timestamp/formatInstant.d.ts.map +1 -1
  231. package/dist/Timestamp/formatInstant.js +3 -1
  232. package/dist/Token/Token.d.ts.map +1 -1
  233. package/dist/Token/Token.js +20 -11
  234. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  235. package/dist/Tokenizer/Tokenizer.js +4 -2
  236. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  237. package/dist/Tooltip/useTooltip.js +3 -19
  238. package/dist/TopNav/TopNav.d.ts.map +1 -1
  239. package/dist/TopNav/TopNav.js +6 -5
  240. package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
  241. package/dist/TopNav/TopNavHeading.js +54 -16
  242. package/dist/TopNav/TopNavItem.d.ts.map +1 -1
  243. package/dist/TopNav/TopNavItem.js +3 -9
  244. package/dist/TopNav/TopNavMegaMenu.d.ts +7 -0
  245. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  246. package/dist/TopNav/TopNavMegaMenu.js +146 -60
  247. package/dist/TopNav/TopNavMegaMenuItem.d.ts.map +1 -1
  248. package/dist/TopNav/TopNavMegaMenuItem.js +22 -3
  249. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  250. package/dist/TopNav/TopNavMenu.js +83 -38
  251. package/dist/TreeList/TreeList.d.ts.map +1 -1
  252. package/dist/TreeList/TreeList.js +13 -0
  253. package/dist/TreeList/TreeListBranches.d.ts +1 -1
  254. package/dist/TreeList/TreeListBranches.d.ts.map +1 -1
  255. package/dist/TreeList/TreeListBranches.js +14 -4
  256. package/dist/TreeList/TreeListItem.d.ts +11 -1
  257. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  258. package/dist/TreeList/TreeListItem.js +57 -30
  259. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  260. package/dist/Typeahead/BaseTypeahead.js +16 -8
  261. package/dist/astryx.css +84 -96
  262. package/dist/astryx.umd.js +56 -56
  263. package/dist/astryx.umd.js.map +4 -4
  264. package/dist/hooks/containerReveal.stylex.d.ts +61 -0
  265. package/dist/hooks/containerReveal.stylex.d.ts.map +1 -0
  266. package/dist/hooks/containerReveal.stylex.js +63 -0
  267. package/dist/hooks/index.d.ts +3 -0
  268. package/dist/hooks/index.d.ts.map +1 -1
  269. package/dist/hooks/index.js +2 -0
  270. package/dist/hooks/useClipboard.d.ts +59 -0
  271. package/dist/hooks/useClipboard.d.ts.map +1 -0
  272. package/dist/hooks/useClipboard.js +106 -0
  273. package/dist/hooks/useContainerReveal.d.ts +14 -8
  274. package/dist/hooks/useContainerReveal.d.ts.map +1 -1
  275. package/dist/hooks/useContainerReveal.js +28 -69
  276. package/dist/hooks/useIndicatorFocusRing.d.ts +28 -0
  277. package/dist/hooks/useIndicatorFocusRing.d.ts.map +1 -0
  278. package/dist/hooks/useIndicatorFocusRing.js +96 -0
  279. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  280. package/dist/hooks/useInputStatusIcon.js +17 -4
  281. package/dist/hooks/useLongPress.d.ts.map +1 -1
  282. package/dist/hooks/useLongPress.js +12 -2
  283. package/dist/hooks/useScrollLock.d.ts.map +1 -1
  284. package/dist/hooks/useScrollLock.js +33 -18
  285. package/dist/hooks/useStreamingText.d.ts +18 -3
  286. package/dist/hooks/useStreamingText.d.ts.map +1 -1
  287. package/dist/hooks/useStreamingText.js +47 -7
  288. package/dist/hooks/useTreeFocus.d.ts.map +1 -1
  289. package/dist/hooks/useTreeFocus.js +9 -3
  290. package/dist/hooks/useTypeahead.d.ts +3 -2
  291. package/dist/hooks/useTypeahead.d.ts.map +1 -1
  292. package/dist/hooks/useTypeahead.js +19 -7
  293. package/dist/index.d.ts +1 -0
  294. package/dist/index.d.ts.map +1 -1
  295. package/dist/index.js +1 -0
  296. package/dist/theme/defineTheme.d.ts +18 -2
  297. package/dist/theme/defineTheme.d.ts.map +1 -1
  298. package/dist/theme/defineTheme.js +10 -1
  299. package/dist/theme/derivedVarRegistry.d.ts +8 -0
  300. package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
  301. package/dist/theme/derivedVarRegistry.js +14 -13
  302. package/dist/theme/expandColorScale.d.ts +3 -1
  303. package/dist/theme/expandColorScale.d.ts.map +1 -1
  304. package/dist/theme/expandColorScale.js +17 -7
  305. package/dist/theme/expandTypeScale.d.ts.map +1 -1
  306. package/dist/theme/expandTypeScale.js +17 -0
  307. package/dist/theme/generateThemeRules.d.ts.map +1 -1
  308. package/dist/theme/generateThemeRules.js +11 -0
  309. package/dist/theme/index.d.ts +2 -1
  310. package/dist/theme/index.d.ts.map +1 -1
  311. package/dist/theme/index.js +1 -1
  312. package/dist/theme/tokens.stylex.d.ts +12 -0
  313. package/dist/theme/tokens.stylex.d.ts.map +1 -1
  314. package/dist/theme/tokens.stylex.js +23 -0
  315. package/dist/utils/focusOutline.stylex.d.ts +122 -0
  316. package/dist/utils/focusOutline.stylex.d.ts.map +1 -0
  317. package/dist/utils/focusOutline.stylex.js +143 -0
  318. package/dist/utils/focusReturn.d.ts +24 -0
  319. package/dist/utils/focusReturn.d.ts.map +1 -0
  320. package/dist/utils/focusReturn.js +29 -0
  321. package/dist/utils/index.d.ts +2 -0
  322. package/dist/utils/index.d.ts.map +1 -1
  323. package/dist/utils/index.js +6 -1
  324. package/dist/utils/mergeRefs.d.ts.map +1 -1
  325. package/dist/utils/mergeRefs.js +7 -5
  326. package/dist/utils/rtlStyles.d.ts +2 -2
  327. package/dist/utils/rtlStyles.js +2 -2
  328. package/dist/utils/themeProps.d.ts +20 -1
  329. package/dist/utils/themeProps.d.ts.map +1 -1
  330. package/dist/utils/themeProps.js +8 -2
  331. package/locales/en.json +20 -0
  332. package/locales/pseudo.json +15 -0
  333. package/package.json +8 -3
  334. package/src/AlertDialog/AlertDialog.doc.mjs +16 -3
  335. package/src/AlertDialog/AlertDialog.test.tsx +208 -1
  336. package/src/AlertDialog/AlertDialog.tsx +21 -3
  337. package/src/AppShell/AppShell.doc.mjs +11 -0
  338. package/src/AppShell/AppShell.test.tsx +139 -0
  339. package/src/AppShell/AppShell.tsx +32 -22
  340. package/src/AspectRatio/AspectRatio.doc.mjs +27 -3
  341. package/src/AspectRatio/AspectRatio.test.tsx +30 -0
  342. package/src/AspectRatio/AspectRatio.tsx +13 -0
  343. package/src/Avatar/Avatar.doc.mjs +2 -13
  344. package/src/Avatar/Avatar.test.tsx +33 -8
  345. package/src/Avatar/Avatar.tsx +52 -50
  346. package/src/AvatarGroup/AvatarGroupOverflow.tsx +2 -9
  347. package/src/Banner/Banner.tsx +9 -6
  348. package/src/Breadcrumbs/BreadcrumbItem.tsx +16 -6
  349. package/src/Breadcrumbs/index.ts +5 -1
  350. package/src/Button/Button.doc.mjs +2 -2
  351. package/src/Button/Button.tsx +22 -41
  352. package/src/Calendar/Calendar.tsx +2 -1
  353. package/src/Calendar/styles.ts +0 -8
  354. package/src/Carousel/Carousel.doc.mjs +3 -0
  355. package/src/Carousel/Carousel.tsx +10 -6
  356. package/src/Chat/Chat.doc.mjs +2 -0
  357. package/src/Chat/ChatDictationButton.tsx +7 -1
  358. package/src/Chat/ChatLayoutScrollButton.test.tsx +22 -0
  359. package/src/Chat/ChatLayoutScrollButton.tsx +8 -1
  360. package/src/Chat/ChatSendButton.tsx +2 -3
  361. package/src/Chat/ChatToolCalls.test.tsx +35 -0
  362. package/src/Chat/ChatToolCalls.tsx +36 -16
  363. package/src/Chat/useTriggerMenu.tsx +2 -5
  364. package/src/CheckboxInput/CheckboxInput.doc.mjs +4 -2
  365. package/src/CheckboxInput/CheckboxInput.test.tsx +120 -0
  366. package/src/CheckboxInput/CheckboxInput.tsx +45 -202
  367. package/src/ClickableCard/ClickableCard.tsx +6 -11
  368. package/src/CodeBlock/CodeBlock.doc.mjs +3 -0
  369. package/src/CodeBlock/CodeBlock.test.tsx +91 -0
  370. package/src/CodeBlock/CodeBlock.tsx +57 -80
  371. package/src/Collapsible/Collapsible.tsx +22 -18
  372. package/src/CommandPalette/CommandPalette.test.tsx +29 -0
  373. package/src/CommandPalette/CommandPaletteItem.tsx +7 -4
  374. package/src/CommandPalette/CommandPaletteList.tsx +2 -2
  375. package/src/ComplexSelector/ComplexSelector.doc.mjs +42 -0
  376. package/src/ComplexSelector/ComplexSelector.test.tsx +73 -0
  377. package/src/ComplexSelector/ComplexSelector.tsx +41 -28
  378. package/src/ContextMenu/ContextMenu.doc.mjs +1 -1
  379. package/src/ContextMenu/ContextMenu.test.tsx +41 -0
  380. package/src/ContextMenu/ContextMenu.tsx +3 -3
  381. package/src/ContextMenu/index.ts +5 -1
  382. package/src/DateInput/DateInput.doc.mjs +18 -3
  383. package/src/DateInput/DateInput.test.tsx +112 -11
  384. package/src/DateInput/DateInput.tsx +44 -25
  385. package/src/DateRangeInput/DateRangeInput.doc.mjs +10 -2
  386. package/src/DateRangeInput/DateRangeInput.test.tsx +110 -14
  387. package/src/DateRangeInput/DateRangeInput.tsx +27 -21
  388. package/src/DateTimeInput/DateTimeInput.doc.mjs +16 -2
  389. package/src/DateTimeInput/DateTimeInput.test.tsx +154 -1
  390. package/src/DateTimeInput/DateTimeInput.tsx +58 -17
  391. package/src/Dialog/Dialog.tsx +2 -9
  392. package/src/DropdownMenu/DropdownMenu.doc.mjs +5 -9
  393. package/src/DropdownMenu/DropdownMenu.test.tsx +534 -4
  394. package/src/DropdownMenu/DropdownMenu.tsx +113 -52
  395. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +27 -30
  396. package/src/DropdownMenu/DropdownMenuDivider.doc.mjs +34 -0
  397. package/src/DropdownMenu/DropdownMenuDivider.tsx +81 -0
  398. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +39 -4
  399. package/src/DropdownMenu/DropdownMenuItem.tsx +48 -10
  400. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +30 -76
  401. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +25 -19
  402. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +44 -14
  403. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +1 -5
  404. package/src/DropdownMenu/index.ts +8 -1
  405. package/src/DropdownMenu/renderDropdownItems.tsx +33 -34
  406. package/src/EmptyState/EmptyState.doc.mjs +4 -0
  407. package/src/EmptyState/EmptyState.test.tsx +62 -0
  408. package/src/EmptyState/EmptyState.tsx +16 -6
  409. package/src/Field/Field.doc.mjs +1 -0
  410. package/src/Field/InputClearButton.test.tsx +117 -0
  411. package/src/Field/InputClearButton.tsx +30 -3
  412. package/src/HoverCard/useHoverCard.tsx +2 -23
  413. package/src/Icon/Icon.doc.mjs +2 -1
  414. package/src/Indicator/CheckIndicator.tsx +174 -0
  415. package/src/Indicator/CheckboxIndicator.tsx +257 -0
  416. package/src/Indicator/Indicator.doc.mjs +344 -0
  417. package/src/Indicator/Indicator.test.tsx +393 -0
  418. package/src/Indicator/RadioIndicator.tsx +206 -0
  419. package/src/Indicator/index.ts +46 -0
  420. package/src/Indicator/indicator.markers.stylex.ts +19 -0
  421. package/src/Indicator/indicatorRegistry.test.tsx +106 -0
  422. package/src/Indicator/indicatorRegistry.ts +120 -0
  423. package/src/Indicator/types.ts +197 -0
  424. package/src/Indicator/useIndicator.ts +39 -0
  425. package/src/Item/Item.doc.mjs +1 -1
  426. package/src/Item/Item.tsx +7 -14
  427. package/src/Layer/useLayer.doc.mjs +2 -2
  428. package/src/Layer/useLayer.test.tsx +85 -0
  429. package/src/Layer/useLayer.tsx +39 -1
  430. package/src/Lightbox/Lightbox.doc.mjs +1 -1
  431. package/src/Lightbox/Lightbox.tsx +45 -49
  432. package/src/Link/Link.tsx +4 -11
  433. package/src/MobileNav/MobileNav.tsx +3 -3
  434. package/src/MoreMenu/MoreMenu.doc.mjs +31 -0
  435. package/src/MoreMenu/MoreMenu.test.tsx +68 -1
  436. package/src/MoreMenu/MoreMenu.tsx +19 -0
  437. package/src/MultiSelector/MultiSelector.doc.mjs +16 -1
  438. package/src/MultiSelector/MultiSelector.test.tsx +259 -16
  439. package/src/MultiSelector/MultiSelector.tsx +144 -121
  440. package/src/NumberInput/NumberInput.doc.mjs +265 -50
  441. package/src/NumberInput/NumberInput.test.tsx +726 -21
  442. package/src/NumberInput/NumberInput.tsx +353 -59
  443. package/src/Outline/Outline.tsx +2 -5
  444. package/src/Pagination/Pagination.doc.mjs +1 -1
  445. package/src/Pagination/Pagination.test.tsx +22 -7
  446. package/src/Pagination/Pagination.tsx +38 -35
  447. package/src/Popover/Popover.doc.mjs +2 -0
  448. package/src/Popover/Popover.tsx +6 -7
  449. package/src/Popover/usePopover.tsx +37 -4
  450. package/src/PowerSearch/PowerSearch.tsx +1 -1
  451. package/src/PowerSearch/PowerSearchEditPopover.test.tsx +42 -0
  452. package/src/PowerSearch/PowerSearchEditPopover.tsx +7 -0
  453. package/src/ProgressBar/ProgressBar.doc.mjs +27 -5
  454. package/src/ProgressBar/ProgressBar.test.tsx +224 -1
  455. package/src/ProgressBar/ProgressBar.tsx +126 -30
  456. package/src/RadioList/RadioList.doc.mjs +4 -2
  457. package/src/RadioList/RadioListItem.tsx +31 -130
  458. package/src/Resizable/ResizeHandle.tsx +2 -9
  459. package/src/SegmentedControl/SegmentedControlItem.tsx +2 -9
  460. package/src/SelectableCard/SelectableCard.tsx +4 -9
  461. package/src/Selector/Selector.doc.mjs +15 -4
  462. package/src/Selector/Selector.test.tsx +1234 -98
  463. package/src/Selector/Selector.tsx +254 -126
  464. package/src/Selector/hooks.ts +77 -50
  465. package/src/SideNav/SideNav.test.tsx +46 -0
  466. package/src/SideNav/SideNav.tsx +1 -0
  467. package/src/SideNav/SideNavCollapseButton.tsx +15 -10
  468. package/src/SideNav/SideNavHeading.tsx +48 -10
  469. package/src/SideNav/SideNavItem.tsx +20 -12
  470. package/src/Slider/Slider.tsx +2 -11
  471. package/src/Stack/Stack.doc.mjs +110 -0
  472. package/src/StatusDot/StatusDot.doc.mjs +12 -3
  473. package/src/Switch/Switch.test.tsx +32 -0
  474. package/src/Switch/Switch.tsx +18 -10
  475. package/src/TabList/Tab.tsx +2 -9
  476. package/src/TabList/TabMenu.tsx +14 -21
  477. package/src/Table/BaseTable.tsx +11 -0
  478. package/src/Table/index.ts +1 -4
  479. package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +30 -14
  480. package/src/Table/plugins/rowExpansion/index.ts +1 -4
  481. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +125 -175
  482. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +115 -458
  483. package/src/Table/plugins/sortable/useTableSortable.tsx +2 -6
  484. package/src/Table/plugins/tree/useTableTreeData.tsx +43 -24
  485. package/src/Table/tableContextMenu.test.tsx +27 -0
  486. package/src/Table/tableContextMenu.tsx +1 -0
  487. package/src/Table/types.ts +11 -0
  488. package/src/Table/useTableGroupedRows.doc.mjs +1 -1
  489. package/src/Table/useTableRowExpansion.doc.mjs +43 -66
  490. package/src/TextArea/TextArea.doc.mjs +42 -2
  491. package/src/TextArea/TextArea.test.tsx +219 -0
  492. package/src/TextArea/TextArea.tsx +34 -7
  493. package/src/TextInput/TextInput.doc.mjs +18 -2
  494. package/src/TextInput/TextInput.test.tsx +189 -0
  495. package/src/TextInput/TextInput.tsx +25 -31
  496. package/src/Thumbnail/Thumbnail.tsx +2 -9
  497. package/src/TimeInput/TimeInput.doc.mjs +2 -2
  498. package/src/TimeInput/TimeInput.test.tsx +84 -3
  499. package/src/TimeInput/TimeInput.tsx +26 -28
  500. package/src/Timestamp/Timestamp.doc.mjs +4 -3
  501. package/src/Timestamp/Timestamp.test.tsx +91 -14
  502. package/src/Timestamp/Timestamp.tsx +14 -2
  503. package/src/Timestamp/TimestampHoverCard.tsx +13 -35
  504. package/src/Timestamp/formatInstant.ts +16 -1
  505. package/src/Token/Token.tsx +5 -28
  506. package/src/Tokenizer/Tokenizer.doc.mjs +2 -2
  507. package/src/Tokenizer/Tokenizer.test.tsx +45 -3
  508. package/src/Tokenizer/Tokenizer.tsx +10 -2
  509. package/src/Tooltip/useTooltip.tsx +2 -23
  510. package/src/TopNav/TopNav.tsx +1 -3
  511. package/src/TopNav/TopNavHeading.tsx +42 -13
  512. package/src/TopNav/TopNavItem.tsx +3 -21
  513. package/src/TopNav/TopNavMegaMenu.test.tsx +433 -33
  514. package/src/TopNav/TopNavMegaMenu.tsx +118 -53
  515. package/src/TopNav/TopNavMegaMenuItem.tsx +2 -9
  516. package/src/TopNav/TopNavMenu.tsx +34 -37
  517. package/src/TreeList/TreeList.doc.mjs +5 -0
  518. package/src/TreeList/TreeList.test.tsx +208 -8
  519. package/src/TreeList/TreeList.tsx +22 -0
  520. package/src/TreeList/TreeListBranches.tsx +25 -2
  521. package/src/TreeList/TreeListItem.tsx +89 -52
  522. package/src/Typeahead/BaseTypeahead.tsx +19 -6
  523. package/src/Typeahead/Typeahead.doc.mjs +1 -0
  524. package/src/Typeahead/Typeahead.test.tsx +76 -3
  525. package/src/hooks/containerReveal.stylex.ts +102 -0
  526. package/src/hooks/index.ts +4 -0
  527. package/src/hooks/useClipboard.doc.mjs +87 -0
  528. package/src/hooks/useClipboard.test.tsx +151 -0
  529. package/src/hooks/useClipboard.ts +135 -0
  530. package/src/hooks/useContainerReveal.doc.mjs +7 -7
  531. package/src/hooks/useContainerReveal.test.tsx +42 -62
  532. package/src/hooks/useContainerReveal.ts +36 -91
  533. package/src/hooks/useImageMode.test.ts +1 -1
  534. package/src/hooks/useIndicatorFocusRing.tsx +120 -0
  535. package/src/hooks/useInputStatusIcon.tsx +8 -8
  536. package/src/hooks/useLongPress.test.tsx +18 -0
  537. package/src/hooks/useLongPress.ts +12 -2
  538. package/src/hooks/useScrollLock.test.ts +72 -0
  539. package/src/hooks/useScrollLock.ts +51 -19
  540. package/src/hooks/useStreamingText.test.ts +46 -1
  541. package/src/hooks/useStreamingText.ts +49 -7
  542. package/src/hooks/useTreeFocus.test.tsx +50 -0
  543. package/src/hooks/useTreeFocus.ts +14 -3
  544. package/src/hooks/useTypeahead.test.tsx +150 -0
  545. package/src/hooks/useTypeahead.ts +24 -9
  546. package/src/i18n/InternationalizationProvider.doc.mjs +7 -2
  547. package/src/index.ts +1 -0
  548. package/src/theme/defineTheme.ts +27 -0
  549. package/src/theme/derivedVarRegistry.test.ts +21 -1
  550. package/src/theme/derivedVarRegistry.ts +19 -6
  551. package/src/theme/expandColorScale.test.ts +14 -0
  552. package/src/theme/expandColorScale.ts +24 -9
  553. package/src/theme/expandTypeScale.test.ts +43 -0
  554. package/src/theme/expandTypeScale.ts +17 -0
  555. package/src/theme/generateThemeRules.test.ts +78 -20
  556. package/src/theme/generateThemeRules.ts +11 -0
  557. package/src/theme/index.ts +15 -0
  558. package/src/theme/tokens.stylex.ts +18 -0
  559. package/src/theme/tokens.test.ts +37 -0
  560. package/src/utils/focusOutline.stylex.ts +177 -0
  561. package/src/utils/focusReturn.test.ts +42 -0
  562. package/src/utils/focusReturn.ts +31 -0
  563. package/src/utils/index.ts +5 -0
  564. package/src/utils/mergeRefs.test.ts +48 -0
  565. package/src/utils/mergeRefs.ts +12 -6
  566. package/src/utils/rtlStyles.ts +2 -2
  567. package/src/utils/themeProps.ts +26 -4
  568. package/dist/CheckboxInput/checkbox.markers.stylex.d.ts +0 -9
  569. package/dist/CheckboxInput/checkbox.markers.stylex.d.ts.map +0 -1
  570. package/dist/CheckboxInput/checkbox.markers.stylex.js +0 -14
  571. package/dist/RadioList/radio.markers.stylex.d.ts +0 -7
  572. package/dist/RadioList/radio.markers.stylex.d.ts.map +0 -1
  573. package/dist/RadioList/radio.markers.stylex.js +0 -12
  574. package/dist/hooks/containerReveal.pool.stylex.d.ts +0 -303
  575. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +0 -1
  576. package/dist/hooks/containerReveal.pool.stylex.js +0 -292
  577. package/src/CheckboxInput/checkbox.markers.stylex.ts +0 -12
  578. package/src/RadioList/radio.markers.stylex.ts +0 -10
  579. package/src/hooks/containerReveal.pool.stylex.ts +0 -571
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../src/EmptyState/EmptyState.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAC,KAAK,SAAS,EAAgB,MAAM,OAAO,CAAC;AAQpD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA4D5C,MAAM,WAAW,eAAgB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAChE,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,IAAI,EACJ,OAAO,EACP,YAAgB,EAChB,SAAiB,EACjB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,eAAe,+BA8CjB;yBA1De,UAAU"}
1
+ {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../src/EmptyState/EmptyState.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAC,KAAK,SAAS,EAAgB,MAAM,OAAO,CAAC;AAQpD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA4D5C,MAAM,WAAW,eAAgB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAChE,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,IAAI,EACJ,OAAO,EACP,YAAgB,EAChB,SAAiB,EACjB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,eAAe,+BAwDjB;yBApEe,UAAU"}
@@ -77,11 +77,11 @@ export function EmptyState({
77
77
  const HeadingTag = `h${headingLevel}`;
78
78
  return /*#__PURE__*/_jsxs("div", {
79
79
  ref: ref,
80
+ ...props,
80
81
  role: "status",
81
82
  ...mergeProps(themeProps('empty-state', {
82
83
  variant: isCompact ? 'compact' : null
83
84
  }), stylex.props(styles.container, isCompact && styles.containerCompact, xstyle), className, style),
84
- ...props,
85
85
  children: [icon != null && /*#__PURE__*/_jsx("div", {
86
86
  "aria-hidden": "true",
87
87
  children: icon
@@ -89,28 +89,32 @@ export function EmptyState({
89
89
  ...{
90
90
  className: "x78zum5 xdt5ytf x6s0dn4 xxc7z9f"
91
91
  },
92
- children: [/*#__PURE__*/createElement(HeadingTag, {
92
+ children: [/*#__PURE__*/createElement(HeadingTag, mergeProps(themeProps('empty-state-title', {
93
+ variant: isCompact ? 'compact' : null
94
+ }), {
93
95
  0: {
94
96
  className: "x1ghz6dp xjb2p0i x18juvz8 x2mo6ok xf74fhv x1tgivj0"
95
97
  },
96
98
  1: {
97
99
  className: "x1ghz6dp xjb2p0i x2mo6ok xf74fhv x1tgivj0 xcr08ib"
98
100
  }
99
- }[!!isCompact << 0], title), description != null &&
101
+ }[!!isCompact << 0]), title), description != null &&
100
102
  /*#__PURE__*/
101
103
  // Rendered as <div> (not <p>): description accepts ReactNode and a
102
104
  // <p> cannot legally contain block children, which causes hydration
103
105
  // mismatches. The StyleX style sets margin: 0, so appearance is
104
106
  // unchanged.
105
107
  _jsx("div", {
106
- ...{
108
+ ...mergeProps(themeProps('empty-state-description', {
109
+ variant: isCompact ? 'compact' : null
110
+ }), {
107
111
  0: {
108
112
  className: "x1ghz6dp xjb2p0i xjm74w1 x1sodnla xw6l6zx xv1l7n4"
109
113
  },
110
114
  1: {
111
115
  className: "x1ghz6dp xjb2p0i x1sodnla xw6l6zx xv1l7n4 x141an7d"
112
116
  }
113
- }[!!isCompact << 0],
117
+ }[!!isCompact << 0]),
114
118
  children: description
115
119
  })]
116
120
  }), actions != null && /*#__PURE__*/_jsx("div", {
@@ -1,8 +1,13 @@
1
1
  /**
2
2
  * @file InputClearButton.tsx
3
3
  * @input Uses React, Button, Icon
4
- * @output Exports InputClearButton shared clear button for input components
5
- * @position Shared primitive; used by Typeahead, Tokenizer, TextInput
4
+ * @output Exports InputClearButton, the shared clear (✕) button rendered by
5
+ * every clearable input in the family.
6
+ * @position Shared primitive. Every input that renders a clear affordance —
7
+ * TextInput, NumberInput, TimeInput, DateInput, DateTimeInput,
8
+ * DateRangeInput, Selector, MultiSelector, Typeahead, Tokenizer, FileInput —
9
+ * routes it through here, so the glyph is themed in one place via the
10
+ * `astryx-input-clear-icon` target.
6
11
  */
7
12
  import type { ReactNode } from 'react';
8
13
  import * as stylex from '@stylexjs/stylex';
@@ -10,8 +15,16 @@ export interface InputClearButtonProps {
10
15
  label: string;
11
16
  onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;
12
17
  xstyle?: stylex.StyleXStyles;
18
+ /**
19
+ * Extra class(es) for the clear glyph itself, merged onto the shared
20
+ * `astryx-input-clear-icon` target. Used by inputs that shipped a
21
+ * component-specific clear-icon target before the family converged here
22
+ * (e.g. `astryx-date-input-clear-icon`) to keep emitting it for a
23
+ * deprecation window; new callers don't need it.
24
+ */
25
+ iconClassName?: string;
13
26
  }
14
- export declare function InputClearButton({ label, onClick, xstyle, }: InputClearButtonProps): ReactNode;
27
+ export declare function InputClearButton({ label, onClick, xstyle, iconClassName, }: InputClearButtonProps): ReactNode;
15
28
  export declare namespace InputClearButton {
16
29
  var displayName: string;
17
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InputClearButton.d.ts","sourceRoot":"","sources":["../../src/Field/InputClearButton.tsx"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAW3C,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC;CAC9B;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,MAAM,GACP,EAAE,qBAAqB,GAAG,SAAS,CAYnC;yBAhBe,gBAAgB"}
1
+ {"version":3,"file":"InputClearButton.d.ts","sourceRoot":"","sources":["../../src/Field/InputClearButton.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAY3C,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC;IAC7B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,MAAM,EACN,aAAa,GACd,EAAE,qBAAqB,GAAG,SAAS,CAwBnC;yBA7Be,gBAAgB"}
@@ -5,12 +5,18 @@
5
5
  /**
6
6
  * @file InputClearButton.tsx
7
7
  * @input Uses React, Button, Icon
8
- * @output Exports InputClearButton shared clear button for input components
9
- * @position Shared primitive; used by Typeahead, Tokenizer, TextInput
8
+ * @output Exports InputClearButton, the shared clear (✕) button rendered by
9
+ * every clearable input in the family.
10
+ * @position Shared primitive. Every input that renders a clear affordance —
11
+ * TextInput, NumberInput, TimeInput, DateInput, DateTimeInput,
12
+ * DateRangeInput, Selector, MultiSelector, Typeahead, Tokenizer, FileInput —
13
+ * routes it through here, so the glyph is themed in one place via the
14
+ * `astryx-input-clear-icon` target.
10
15
  */
11
16
  import * as stylex from '@stylexjs/stylex';
12
17
  import { Button } from "../Button/index.js";
13
18
  import { Icon } from "../Icon/index.js";
19
+ import { themeProps } from "../utils/themeProps.js";
14
20
  import { jsx as _jsx } from "react/jsx-runtime";
15
21
  const styles = {
16
22
  button: {
@@ -22,8 +28,12 @@ const styles = {
22
28
  export function InputClearButton({
23
29
  label,
24
30
  onClick,
25
- xstyle
31
+ xstyle,
32
+ iconClassName
26
33
  }) {
34
+ const {
35
+ className: iconTargetClassName
36
+ } = themeProps('input-clear-icon');
27
37
  return /*#__PURE__*/_jsx(Button, {
28
38
  variant: "ghost",
29
39
  size: "sm",
@@ -31,7 +41,8 @@ export function InputClearButton({
31
41
  icon: /*#__PURE__*/_jsx(Icon, {
32
42
  icon: "close",
33
43
  size: "sm",
34
- color: "inherit"
44
+ color: "secondary",
45
+ className: iconClassName != null ? `${iconTargetClassName} ${iconClassName}` : iconTargetClassName
35
46
  }),
36
47
  onClick: onClick,
37
48
  isIconOnly: true,
@@ -1 +1 @@
1
- {"version":3,"file":"useHoverCard.d.ts","sourceRoot":"","sources":["../../src/HoverCard/useHoverCard.tsx"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AA4C3B;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC;IAErC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAE9B;;;OAGG;IACH,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAEtC;;;;OAIG;IACH,cAAc,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAEzC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;OAOG;IACH,eAAe,EAAE,CACf,QAAQ,EAAE,SAAS,EACnB,KAAK,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,KAC5C,SAAS,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAyBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAyT5E"}
1
+ {"version":3,"file":"useHoverCard.d.ts","sourceRoot":"","sources":["../../src/HoverCard/useHoverCard.tsx"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAgC3B;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC;IAErC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAE9B;;;OAGG;IACH,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAEtC;;;;OAIG;IACH,cAAc,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAEzC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;OAOG;IACH,eAAe,EAAE,CACf,QAAQ,EAAE,SAAS,EACnB,KAAK,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,KAC5C,SAAS,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAyBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAiT5E"}
@@ -11,7 +11,7 @@
11
11
  * SYNC: When modified, update:
12
12
  * - /packages/core/src/HoverCard/index.ts
13
13
  */
14
- import { useCallback, useEffect, useMemo, useRef } from 'react';
14
+ import { useCallback, useEffect, useRef } from 'react';
15
15
  import * as stylex from '@stylexjs/stylex';
16
16
  import { useLayer } from "../Layer/useLayer.js";
17
17
  import { layerAnimations } from "../Layer/layerAnimations.stylex.js";
@@ -26,20 +26,6 @@ const styles = {
26
26
  kaIpWk: "x7a53xk",
27
27
  kGVxlE: "x14hfi27",
28
28
  $$css: true
29
- },
30
- marginBlock: {
31
- keoZOQ: "xcsaf9d",
32
- k1K539: "x14cgwvg",
33
- keTefX: "x1lziwak",
34
- k71WvV: "x14z9mp",
35
- $$css: true
36
- },
37
- marginInline: {
38
- keoZOQ: "xdj266r",
39
- k1K539: "xat24cr",
40
- keTefX: "x11g1kdw",
41
- k71WvV: "xnur1sd",
42
- $$css: true
43
29
  }
44
30
  };
45
31
 
@@ -100,15 +86,12 @@ export function useHoverCard(options = {}) {
100
86
  onShow,
101
87
  onHide
102
88
  } = options;
103
-
104
- // Select margin style based on placement axis
105
- const marginStyle = placement === 'above' || placement === 'below' ? styles.marginBlock : styles.marginInline;
106
89
  const layer = useLayer({
107
90
  mode: 'context',
108
91
  onShow,
109
92
  onHide
110
93
  });
111
- const popoverXstyle = useMemo(() => [styles.container, marginStyle], [marginStyle]);
94
+ const popoverXstyle = styles.container;
112
95
  const showTimeoutRef = useRef(null);
113
96
  const hideTimeoutRef = useRef(null);
114
97
  const triggerRef = useRef(null);
@@ -262,6 +245,7 @@ export function useHoverCard(options = {}) {
262
245
  const renderProps = {
263
246
  placement: renderPlacement,
264
247
  alignment: props?.alignment ?? alignment,
248
+ offset: spacingVars['--spacing-1'],
265
249
  // A named dialog when a label is provided; otherwise a group. A group
266
250
  // may validly be unnamed, an unnamed dialog may not — and hover cards
267
251
  // are non-modal, so group is honest semantics without a name.
@@ -0,0 +1,25 @@
1
+ import type { IndicatorProps } from './types';
2
+ /**
3
+ * The default single-selection mark: a checkmark when chosen, nothing when not.
4
+ *
5
+ * Decorative and non-interactive — it renders `aria-hidden` and owns no role,
6
+ * state, or focus behavior; the option or row that hosts it keeps all of that.
7
+ *
8
+ * @example
9
+ * ```
10
+ * <CheckIndicator state={isSelected ? 'checked' : 'unchecked'} size="sm" />
11
+ * ```
12
+ *
13
+ * Swap every single-selection mark for a radio:
14
+ *
15
+ * @example
16
+ * ```
17
+ * import {RadioIndicator} from '@astryxdesign/core/Indicator';
18
+ * defineTheme({name: 'brand', indicators: {check: RadioIndicator}});
19
+ * ```
20
+ */
21
+ export declare function CheckIndicator({ state, size, isDisabled, children, ref, className, style, xstyle, ...rest }: IndicatorProps<'singleSelection'>): import("react").JSX.Element | null;
22
+ export declare namespace CheckIndicator {
23
+ var displayName: string;
24
+ }
25
+ //# sourceMappingURL=CheckIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckIndicator.d.ts","sourceRoot":"","sources":["../../src/Indicator/CheckIndicator.tsx"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AA6B5C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,IAAW,EACX,UAAkB,EAClB,QAAQ,EACR,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,iBAAiB,CAAC,sCA6EnC;yBAvFe,cAAc"}
@@ -0,0 +1,155 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file CheckIndicator.tsx
5
+ * @input Indicator state props
6
+ * @output Exports CheckIndicator — the default single-selection mark
7
+ * @position Decorative check visual used wherever "this one is chosen" is
8
+ * marked without a control: selector options, menu rows
9
+ *
10
+ * This is the indicator a product replaces to change what "chosen" looks like.
11
+ * `defineTheme({indicators: {check: RadioIndicator}})` turns every
12
+ * single-selection mark into a radio, in one line, without any component
13
+ * knowing it happened.
14
+ *
15
+ * It draws NOTHING when unchecked, which is what makes it the default: a
16
+ * listbox should not show an empty box beside every row. A replacement is free
17
+ * to draw in both states — a radio does — and hosting components render the
18
+ * indicator unconditionally so that works.
19
+ *
20
+ * Unlike the checkbox and radio indicators, this one renders no chrome of its
21
+ * own: it IS the glyph. Two consequences, both deliberate:
22
+ *
23
+ * - It renders `<Icon>` directly rather than wrapping one, so the class the
24
+ * host passes (`selector-check`, say) lands on the same element as
25
+ * `astryx-icon` — one element carrying the mark and its theme target, per
26
+ * the wrapper reduction in #4838/#4846.
27
+ * - It adds NO theme target of its own. `astryx-checkbox` and `astryx-radio`
28
+ * exist because those indicators draw chrome that needs styling; a check
29
+ * is an icon, and `astryx-icon` plus the host's target already reach it.
30
+ */
31
+
32
+ import * as stylex from '@stylexjs/stylex';
33
+ import { Icon } from "../Icon/Icon.js";
34
+ import "../theme/tokens.stylex.js";
35
+ import { colorVars } from "../theme/tokens.stylex.js";
36
+ import { isRenderable, mergeProps } from "../utils/index.js";
37
+ import { jsx as _jsx } from "react/jsx-runtime";
38
+ /** The check glyph matches the control sizes the indicator families share. */
39
+ const iconSizeForIndicator = {
40
+ sm: 'sm',
41
+ md: 'sm'
42
+ };
43
+ const styles = {
44
+ slot: {
45
+ k1xSpc: "x3nfvp2",
46
+ kGNEyG: "x6s0dn4",
47
+ kjj79g: "xl56j7k",
48
+ kmuXW: "x2lah0s",
49
+ kzqmXN: "xcdlrvm",
50
+ kZKoxP: "x1l36t39",
51
+ $$css: true
52
+ },
53
+ enabled: {
54
+ kMwMTN: "xqwr325",
55
+ $$css: true
56
+ },
57
+ disabled: {
58
+ kMwMTN: "xqa6c3m",
59
+ $$css: true
60
+ }
61
+ };
62
+
63
+ /**
64
+ * The default single-selection mark: a checkmark when chosen, nothing when not.
65
+ *
66
+ * Decorative and non-interactive — it renders `aria-hidden` and owns no role,
67
+ * state, or focus behavior; the option or row that hosts it keeps all of that.
68
+ *
69
+ * @example
70
+ * ```
71
+ * <CheckIndicator state={isSelected ? 'checked' : 'unchecked'} size="sm" />
72
+ * ```
73
+ *
74
+ * Swap every single-selection mark for a radio:
75
+ *
76
+ * @example
77
+ * ```
78
+ * import {RadioIndicator} from '@astryxdesign/core/Indicator';
79
+ * defineTheme({name: 'brand', indicators: {check: RadioIndicator}});
80
+ * ```
81
+ */
82
+ export function CheckIndicator({
83
+ state,
84
+ size = 'md',
85
+ isDisabled = false,
86
+ children,
87
+ ref,
88
+ className,
89
+ style,
90
+ xstyle,
91
+ ...rest
92
+ }) {
93
+ const isChecked = state === 'checked';
94
+
95
+ // `children` (a pending Spinner, say) replaces the mark but keeps the
96
+ // indicator's place, matching the other indicators' contract. It is checked
97
+ // BEFORE `state`: a host passes a busy visual through in whatever state the
98
+ // row happens to be in, and an unchecked listbox row is the common one.
99
+ //
100
+ // `isRenderable`, not `children != null`: the idiom a host actually writes is
101
+ // `children={isBusy && <Spinner/>}`, which passes `false` when it is not
102
+ // busy. `false` is non-null, so a null check takes this branch, renders
103
+ // nothing inside it, and DELETES the mark on a chosen row (#4893).
104
+ //
105
+ // There is no glyph to hang the caller's props on in this branch, so they go
106
+ // on a span — every one of them, so a `data-testid`, an `id`, a handler or
107
+ // an `xstyle` behaves the same whether or not children are present.
108
+ if (isRenderable(children)) {
109
+ return /*#__PURE__*/_jsx("span", {
110
+ ...rest,
111
+ ref: ref,
112
+ "aria-hidden": "true",
113
+ ...mergeProps(stylex.props(styles.slot, isDisabled ? styles.disabled : styles.enabled, xstyle), className, style),
114
+ children: children
115
+ });
116
+ }
117
+
118
+ // Nothing to draw, and no box to reserve: an unmarked row keeps the layout
119
+ // it would have without this indicator.
120
+ if (!isChecked) {
121
+ return null;
122
+ }
123
+ return /*#__PURE__*/_jsx(Icon
124
+ // Spread first so the indicator's own contract (below) wins over any
125
+ // same-named DOM attribute a caller passed through.
126
+ //
127
+ // An indicator declares span props (BaseProps<HTMLSpanElement>) while
128
+ // Icon declares SVG ones, so the handler types differ nominally. For a
129
+ // registry icon the element that actually receives these IS a span
130
+ // (IconFromRegistry renders one), so forwarding them is correct at
131
+ // runtime; the cast only reconciles the two declarations.
132
+ , {
133
+ ...rest,
134
+ // After the spread, deliberately. Icon puts its own a11y defaults BEFORE
135
+ // `{...props}` as a documented escape hatch (Icon.tsx), which is right
136
+ // for an icon and wrong for an indicator — this one is decorative by
137
+ // contract, so it re-asserts it here rather than inheriting the hatch.
138
+ "aria-hidden": "true",
139
+ icon: "check",
140
+ size: iconSizeForIndicator[size],
141
+ color: isDisabled ? 'disabled' : 'accent'
142
+ // The focus ring rides in through xstyle (composed at resolution), but
143
+ // never paints here: it only activates under an owner's indicatorScope
144
+ // marker, and a listbox row that marks selection takes focus itself
145
+ // rather than marking its indicator.
146
+ ,
147
+ xstyle: xstyle
148
+ // Icon merges className/style with its own rather than shadowing them,
149
+ // so the host's theme target composes with `astryx-icon`.
150
+ ,
151
+ className: className,
152
+ style: style
153
+ });
154
+ }
155
+ CheckIndicator.displayName = 'CheckIndicator';
@@ -0,0 +1,22 @@
1
+ import type { IndicatorProps } from './types';
2
+ /**
3
+ * The default checkbox visual: a square box with a checkmark or an
4
+ * indeterminate bar.
5
+ *
6
+ * Decorative and non-interactive — it renders `aria-hidden` and owns no input,
7
+ * role, or focus behavior. The focus ring lives on the owner's control wrapper
8
+ * (see CheckboxInput), so a theme that replaces this component keeps a visible
9
+ * focus indicator for free. Themes replace it wholesale through
10
+ * `defineTheme({indicators: {checkbox: MyCheckbox}})`, or restyle it through
11
+ * the `checkbox` theme target like any other component.
12
+ *
13
+ * @example
14
+ * ```
15
+ * <CheckboxIndicator state="indeterminate" size="sm" />
16
+ * ```
17
+ */
18
+ export declare function CheckboxIndicator({ state, size, isDisabled, children, ref, className, style, xstyle, ...rest }: IndicatorProps<'multiSelection'>): import("react").JSX.Element;
19
+ export declare namespace CheckboxIndicator {
20
+ var displayName: string;
21
+ }
22
+ //# sourceMappingURL=CheckboxIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxIndicator.d.ts","sourceRoot":"","sources":["../../src/Indicator/CheckboxIndicator.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAwI5C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,IAAW,EACX,UAAkB,EAClB,QAAQ,EACR,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,gBAAgB,CAAC,+BAwElC;yBAlFe,iBAAiB"}
@@ -0,0 +1,173 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file CheckboxIndicator.tsx
5
+ * @input Indicator state props
6
+ * @output Exports CheckboxIndicator — the default checkbox selection visual
7
+ * @position Decorative checkbox visual shared by CheckboxInput, CheckboxList,
8
+ * and decorative menu markers
9
+ */
10
+
11
+ import * as stylex from '@stylexjs/stylex';
12
+ import "../theme/tokens.stylex.js";
13
+ import { borderVars, colorVars, durationVars, easeVars, radiusVars } from "../theme/tokens.stylex.js";
14
+ import { isRenderable, mergeProps, themeProps } from "../utils/index.js";
15
+ import "./indicator.markers.stylex.js";
16
+ import { indicatorScope } from "./indicator.markers.stylex.js";
17
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
18
+ const styles = {
19
+ box: {
20
+ kB7OPa: "x9f619",
21
+ k1xSpc: "x78zum5",
22
+ kGNEyG: "x6s0dn4",
23
+ kjj79g: "xl56j7k",
24
+ kmuXW: "x2lah0s",
25
+ kMzoRj: "x1litavf",
26
+ ksu8eU: "x1y0btm7",
27
+ kaIpWk: "xx3sua9",
28
+ k1ekBW: "xts7igz",
29
+ kIyJzY: "xuedmi6 x12w9bfk",
30
+ kAMwcw: "xlr8y92",
31
+ $$css: true
32
+ },
33
+ unchecked: {
34
+ kMwMTN: "xqwr325",
35
+ kVAM5u: "xvy26l8 xilc7fp",
36
+ kWkggS: "x10xzikg xeultfy",
37
+ $$css: true
38
+ },
39
+ checked: {
40
+ kMwMTN: "x17wrial",
41
+ kVAM5u: "xad5do x1ozl1p1",
42
+ kWkggS: "x1ewilqj x17srpfb",
43
+ $$css: true
44
+ },
45
+ disabled: {
46
+ kSiTet: "xbyyjgo",
47
+ kVAM5u: "x14i3s5s x61roa7",
48
+ $$css: true
49
+ },
50
+ disabledUnchecked: {
51
+ kWkggS: "xwmxj5m xqxnq6d",
52
+ $$css: true
53
+ },
54
+ checkmark: {
55
+ k1xSpc: "x1s85apg",
56
+ kMwMTN: "x17wrial xs5hli",
57
+ $$css: true
58
+ },
59
+ checkmarkVisible: {
60
+ k1xSpc: "x1lliihq",
61
+ $$css: true
62
+ },
63
+ indeterminateMark: {
64
+ k1xSpc: "x1s85apg",
65
+ kWkggS: "x1azo05 xwvh9j7",
66
+ kaIpWk: "xjspbzw",
67
+ $$css: true
68
+ },
69
+ indeterminateMarkVisible: {
70
+ k1xSpc: "x1lliihq",
71
+ $$css: true
72
+ }
73
+ };
74
+ const boxSizeStyles = {
75
+ sm: {
76
+ kzqmXN: "xw4jnvo",
77
+ kZKoxP: "x1qx5ct2",
78
+ $$css: true
79
+ },
80
+ md: {
81
+ kzqmXN: "xvy4d1p",
82
+ kZKoxP: "xxk0z11",
83
+ $$css: true
84
+ }
85
+ };
86
+ const checkmarkSizeStyles = {
87
+ sm: {
88
+ kzqmXN: "xsmyaan",
89
+ kZKoxP: "x1kpxq89",
90
+ $$css: true
91
+ },
92
+ md: {
93
+ kzqmXN: "x6jxa94",
94
+ kZKoxP: "x1v9usgg",
95
+ $$css: true
96
+ }
97
+ };
98
+ const indeterminateSizeStyles = {
99
+ sm: {
100
+ kzqmXN: "x1fsd2vl",
101
+ kZKoxP: "x36qwtl",
102
+ $$css: true
103
+ },
104
+ md: {
105
+ kzqmXN: "xsmyaan",
106
+ kZKoxP: "x36qwtl",
107
+ $$css: true
108
+ }
109
+ };
110
+
111
+ /**
112
+ * The default checkbox visual: a square box with a checkmark or an
113
+ * indeterminate bar.
114
+ *
115
+ * Decorative and non-interactive — it renders `aria-hidden` and owns no input,
116
+ * role, or focus behavior. The focus ring lives on the owner's control wrapper
117
+ * (see CheckboxInput), so a theme that replaces this component keeps a visible
118
+ * focus indicator for free. Themes replace it wholesale through
119
+ * `defineTheme({indicators: {checkbox: MyCheckbox}})`, or restyle it through
120
+ * the `checkbox` theme target like any other component.
121
+ *
122
+ * @example
123
+ * ```
124
+ * <CheckboxIndicator state="indeterminate" size="sm" />
125
+ * ```
126
+ */
127
+ export function CheckboxIndicator({
128
+ state,
129
+ size = 'md',
130
+ isDisabled = false,
131
+ children,
132
+ ref,
133
+ className,
134
+ style,
135
+ xstyle,
136
+ ...rest
137
+ }) {
138
+ const isChecked = state === 'checked';
139
+ const isIndeterminate = state === 'indeterminate';
140
+ const isCheckedOrIndeterminate = isChecked || isIndeterminate;
141
+ return /*#__PURE__*/_jsx("span", {
142
+ ...rest,
143
+ ref: ref,
144
+ "aria-hidden": "true",
145
+ ...mergeProps(themeProps('checkbox-indicator', {
146
+ size,
147
+ checked: isChecked ? 'checked' : isIndeterminate ? 'indeterminate' : null,
148
+ disabled: isDisabled ? 'disabled' : null
149
+ },
150
+ // `checkbox` was the target before indicators existed; themes
151
+ // styling it keep working until the next major.
152
+ {
153
+ legacyNames: ['checkbox']
154
+ }), stylex.props(styles.box, boxSizeStyles[size], isCheckedOrIndeterminate ? styles.checked : styles.unchecked, isDisabled && styles.disabled, isDisabled && !isCheckedOrIndeterminate && styles.disabledUnchecked, xstyle), className, style),
155
+ children: isRenderable(children) ? children : /*#__PURE__*/_jsxs(_Fragment, {
156
+ children: [/*#__PURE__*/_jsx("svg", {
157
+ viewBox: "0 0 10 10",
158
+ ...stylex.props(styles.checkmark, checkmarkSizeStyles[size], isChecked && styles.checkmarkVisible),
159
+ children: /*#__PURE__*/_jsx("path", {
160
+ d: "M8.5 2.5L4 7.5L1.5 5",
161
+ stroke: "currentColor",
162
+ strokeWidth: "1.5",
163
+ fill: "none",
164
+ strokeLinecap: "round",
165
+ strokeLinejoin: "round"
166
+ })
167
+ }), /*#__PURE__*/_jsx("span", {
168
+ ...stylex.props(styles.indeterminateMark, indeterminateSizeStyles[size], isIndeterminate && styles.indeterminateMarkVisible)
169
+ })]
170
+ })
171
+ });
172
+ }
173
+ CheckboxIndicator.displayName = 'CheckboxIndicator';
@@ -0,0 +1,23 @@
1
+ import type { IndicatorProps } from './types';
2
+ /**
3
+ * The default radio visual: a circle with a filled inner dot when selected.
4
+ *
5
+ * Decorative and non-interactive — it renders `aria-hidden` and owns no input,
6
+ * role, or focus behavior. Themes replace it wholesale through
7
+ * `defineTheme({indicators: {radio: MyRadio}})`, or restyle it through the
8
+ * `radio` / `radio-dot` theme targets like any other component.
9
+ *
10
+ * Unlike an icon, a radio draws in *both* states — an empty circle when
11
+ * unchecked. That is what makes it usable as a selection indicator in
12
+ * components whose default is "a checkmark when selected, nothing otherwise".
13
+ *
14
+ * @example
15
+ * ```
16
+ * <RadioIndicator state="checked" size="md" />
17
+ * ```
18
+ */
19
+ export declare function RadioIndicator({ state, size, isDisabled, children, ref, className, style, xstyle, ...rest }: IndicatorProps<'singleSelection'>): import("react").JSX.Element;
20
+ export declare namespace RadioIndicator {
21
+ var displayName: string;
22
+ }
23
+ //# sourceMappingURL=RadioIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioIndicator.d.ts","sourceRoot":"","sources":["../../src/Indicator/RadioIndicator.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAuG5C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,IAAW,EACX,UAAkB,EAClB,QAAQ,EACR,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,iBAAiB,CAAC,+BAqDnC;yBA/De,cAAc"}