@astryxdesign/core 0.1.4-canary.ff77e1c → 0.1.4

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 (598) hide show
  1. package/dist/AlertDialog/AlertDialog.d.ts +1 -1
  2. package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
  3. package/dist/AlertDialog/AlertDialog.js +18 -20
  4. package/dist/AlertDialog/useImperativeAlertDialog.js +3 -3
  5. package/dist/AppShell/AppShell.d.ts +1 -1
  6. package/dist/AppShell/AppShell.d.ts.map +1 -1
  7. package/dist/AppShell/AppShell.js +53 -55
  8. package/dist/AspectRatio/AspectRatio.d.ts +10 -48
  9. package/dist/AspectRatio/AspectRatio.d.ts.map +1 -1
  10. package/dist/AspectRatio/AspectRatio.js +12 -33
  11. package/dist/AspectRatio/index.d.ts +1 -1
  12. package/dist/AspectRatio/index.d.ts.map +1 -1
  13. package/dist/Avatar/Avatar.d.ts.map +1 -1
  14. package/dist/Avatar/Avatar.js +25 -27
  15. package/dist/Avatar/AvatarStatusDot.js +5 -5
  16. package/dist/AvatarGroup/AvatarGroup.js +5 -5
  17. package/dist/AvatarGroup/AvatarGroupOverflow.js +5 -5
  18. package/dist/Badge/Badge.js +3 -3
  19. package/dist/Banner/Banner.d.ts.map +1 -1
  20. package/dist/Banner/Banner.js +25 -32
  21. package/dist/Blockquote/Blockquote.js +7 -7
  22. package/dist/Breadcrumbs/BreadcrumbItem.js +17 -17
  23. package/dist/Breadcrumbs/Breadcrumbs.js +7 -7
  24. package/dist/Button/Button.js +19 -19
  25. package/dist/ButtonGroup/ButtonGroup.js +7 -7
  26. package/dist/Calendar/Calendar.d.ts.map +1 -1
  27. package/dist/Calendar/Calendar.js +48 -68
  28. package/dist/Calendar/dayCellUtils.d.ts.map +1 -1
  29. package/dist/Calendar/styles.d.ts +2 -2
  30. package/dist/Calendar/styles.d.ts.map +1 -1
  31. package/dist/Calendar/styles.js +2 -2
  32. package/dist/Card/Card.d.ts +2 -4
  33. package/dist/Card/Card.d.ts.map +1 -1
  34. package/dist/Card/Card.js +10 -18
  35. package/dist/Carousel/Carousel.d.ts.map +1 -1
  36. package/dist/Carousel/Carousel.js +21 -24
  37. package/dist/Carousel/carousel.markers.stylex.d.ts +7 -0
  38. package/dist/Carousel/carousel.markers.stylex.d.ts.map +1 -0
  39. package/dist/Carousel/carousel.markers.stylex.js +12 -0
  40. package/dist/Center/Center.js +3 -3
  41. package/dist/Chat/ChatComposer.js +23 -23
  42. package/dist/Chat/ChatComposerDrawer.js +14 -14
  43. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  44. package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
  45. package/dist/Chat/ChatComposerInput.js +15 -27
  46. package/dist/Chat/ChatDictationButton.d.ts +1 -1
  47. package/dist/Chat/ChatDictationButton.d.ts.map +1 -1
  48. package/dist/Chat/ChatDictationButton.js +11 -13
  49. package/dist/Chat/ChatLayout.js +17 -17
  50. package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
  51. package/dist/Chat/ChatLayoutScrollButton.d.ts.map +1 -1
  52. package/dist/Chat/ChatLayoutScrollButton.js +10 -12
  53. package/dist/Chat/ChatMessage.js +12 -12
  54. package/dist/Chat/ChatMessageBubble.js +7 -7
  55. package/dist/Chat/ChatMessageList.js +14 -14
  56. package/dist/Chat/ChatMessageMetadata.d.ts +1 -1
  57. package/dist/Chat/ChatMessageMetadata.d.ts.map +1 -1
  58. package/dist/Chat/ChatMessageMetadata.js +12 -14
  59. package/dist/Chat/ChatPastedTextToken.js +13 -13
  60. package/dist/Chat/ChatSendButton.js +3 -3
  61. package/dist/Chat/ChatSystemMessage.d.ts +1 -1
  62. package/dist/Chat/ChatSystemMessage.d.ts.map +1 -1
  63. package/dist/Chat/ChatSystemMessage.js +17 -17
  64. package/dist/Chat/ChatTokenizedText.d.ts +1 -1
  65. package/dist/Chat/ChatTokenizedText.d.ts.map +1 -1
  66. package/dist/Chat/ChatTokenizedText.js +15 -24
  67. package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
  68. package/dist/Chat/ChatToolCalls.js +74 -81
  69. package/dist/Chat/index.d.ts +1 -1
  70. package/dist/Chat/index.d.ts.map +1 -1
  71. package/dist/Chat/useTriggerMenu.d.ts.map +1 -1
  72. package/dist/Chat/useTriggerMenu.js +15 -15
  73. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  74. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  75. package/dist/CheckboxInput/CheckboxInput.js +23 -25
  76. package/dist/CheckboxList/CheckboxList.js +9 -9
  77. package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
  78. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  79. package/dist/CheckboxList/CheckboxListItem.js +6 -8
  80. package/dist/Citation/Citation.js +10 -10
  81. package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
  82. package/dist/ClickableCard/ClickableCard.js +9 -32
  83. package/dist/Code/Code.js +3 -3
  84. package/dist/CodeBlock/CodeBlock.d.ts +1 -10
  85. package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
  86. package/dist/CodeBlock/CodeBlock.js +52 -88
  87. package/dist/Collapsible/Collapsible.d.ts +3 -9
  88. package/dist/Collapsible/Collapsible.d.ts.map +1 -1
  89. package/dist/Collapsible/Collapsible.js +22 -110
  90. package/dist/Collapsible/CollapsibleGroup.d.ts +7 -39
  91. package/dist/Collapsible/CollapsibleGroup.d.ts.map +1 -1
  92. package/dist/Collapsible/CollapsibleGroup.js +12 -73
  93. package/dist/Collapsible/CollapsibleGroupContext.d.ts +0 -31
  94. package/dist/Collapsible/CollapsibleGroupContext.d.ts.map +1 -1
  95. package/dist/Collapsible/CollapsibleGroupContext.js +3 -33
  96. package/dist/Collapsible/index.d.ts +0 -1
  97. package/dist/Collapsible/index.d.ts.map +1 -1
  98. package/dist/Collapsible/useCollapsible.d.ts +1 -4
  99. package/dist/Collapsible/useCollapsible.d.ts.map +1 -1
  100. package/dist/Collapsible/useCollapsible.js +6 -20
  101. package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
  102. package/dist/CommandPalette/CommandPalette.js +34 -36
  103. package/dist/CommandPalette/CommandPaletteEmpty.js +3 -3
  104. package/dist/CommandPalette/CommandPaletteFooter.js +16 -16
  105. package/dist/CommandPalette/CommandPaletteGroup.js +5 -5
  106. package/dist/CommandPalette/CommandPaletteInput.js +13 -13
  107. package/dist/CommandPalette/CommandPaletteItem.js +3 -3
  108. package/dist/CommandPalette/CommandPaletteList.js +3 -3
  109. package/dist/ContextMenu/ContextMenu.d.ts +2 -7
  110. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  111. package/dist/ContextMenu/ContextMenu.js +43 -76
  112. package/dist/DateInput/DateInput.js +18 -18
  113. package/dist/DateRangeInput/DateRangeInput.js +21 -21
  114. package/dist/DateTimeInput/DateTimeInput.d.ts +2 -5
  115. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  116. package/dist/DateTimeInput/DateTimeInput.js +26 -30
  117. package/dist/DateTimeInput/index.d.ts +1 -1
  118. package/dist/DateTimeInput/index.d.ts.map +1 -1
  119. package/dist/Dialog/Dialog.js +9 -9
  120. package/dist/Dialog/DialogHeader.js +16 -16
  121. package/dist/Dialog/useImperativeDialog.js +3 -3
  122. package/dist/Divider/Divider.js +7 -7
  123. package/dist/DropdownMenu/DropdownMenu.js +10 -10
  124. package/dist/DropdownMenu/DropdownMenuItem.d.ts +17 -2
  125. package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  126. package/dist/DropdownMenu/DropdownMenuItem.js +3 -3
  127. package/dist/DropdownMenu/renderDropdownItems.js +10 -10
  128. package/dist/EmptyState/EmptyState.js +9 -9
  129. package/dist/Field/Field.js +17 -17
  130. package/dist/Field/FieldLabel.js +15 -15
  131. package/dist/Field/InputClearButton.js +5 -5
  132. package/dist/FieldStatus/FieldStatus.js +3 -3
  133. package/dist/FileInput/FileInput.js +29 -29
  134. package/dist/FormLayout/FormLayout.js +5 -5
  135. package/dist/Grid/Grid.d.ts +3 -4
  136. package/dist/Grid/Grid.d.ts.map +1 -1
  137. package/dist/Grid/Grid.js +12 -29
  138. package/dist/Grid/GridSpan.js +3 -3
  139. package/dist/HStack/HStack.js +3 -3
  140. package/dist/Heading/Heading.js +10 -10
  141. package/dist/HoverCard/HoverCard.js +9 -9
  142. package/dist/HoverCard/useHoverCard.d.ts +1 -5
  143. package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
  144. package/dist/HoverCard/useHoverCard.js +3 -3
  145. package/dist/Icon/Icon.d.ts.map +1 -1
  146. package/dist/Icon/Icon.js +12 -16
  147. package/dist/Icon/defaultIcons.js +116 -116
  148. package/dist/IconButton/IconButton.js +3 -3
  149. package/dist/InputGroup/InputGroup.js +11 -11
  150. package/dist/InputGroup/InputGroupText.js +3 -3
  151. package/dist/Item/Item.js +18 -18
  152. package/dist/Kbd/Kbd.js +5 -5
  153. package/dist/Layer/LayerProvider.js +7 -7
  154. package/dist/Layer/useLayer.d.ts +2 -29
  155. package/dist/Layer/useLayer.d.ts.map +1 -1
  156. package/dist/Layer/useLayer.js +31 -44
  157. package/dist/Layout/Layout.js +21 -21
  158. package/dist/Layout/LayoutContent.js +3 -3
  159. package/dist/Layout/LayoutFooter.js +5 -5
  160. package/dist/Layout/LayoutHeader.js +5 -5
  161. package/dist/Layout/LayoutPanel.js +3 -3
  162. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  163. package/dist/Lightbox/Lightbox.js +31 -55
  164. package/dist/Lightbox/useLightbox.js +3 -3
  165. package/dist/Link/Link.js +15 -15
  166. package/dist/Link/LinkProvider.js +3 -3
  167. package/dist/Link/useLinkify.js +3 -3
  168. package/dist/List/List.js +11 -11
  169. package/dist/List/ListItem.js +11 -11
  170. package/dist/Markdown/Markdown.d.ts.map +1 -1
  171. package/dist/Markdown/Markdown.js +102 -102
  172. package/dist/MetadataList/MetadataList.js +10 -10
  173. package/dist/MetadataList/MetadataListItem.js +15 -15
  174. package/dist/MobileNav/MobileNav.d.ts +1 -1
  175. package/dist/MobileNav/MobileNav.d.ts.map +1 -1
  176. package/dist/MobileNav/MobileNav.js +23 -26
  177. package/dist/MobileNav/MobileNavToggle.js +5 -5
  178. package/dist/MoreMenu/MoreMenu.js +3 -3
  179. package/dist/MultiSelector/MultiSelector.js +56 -56
  180. package/dist/NavIcon/NavIcon.js +3 -3
  181. package/dist/NavMenu/NavHeadingMenu.js +5 -5
  182. package/dist/NavMenu/NavHeadingMenuItem.js +8 -8
  183. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  184. package/dist/NumberInput/NumberInput.js +32 -48
  185. package/dist/Outline/Outline.js +15 -15
  186. package/dist/OverflowList/OverflowList.js +8 -8
  187. package/dist/Overlay/Overlay.js +3 -3
  188. package/dist/Overlay/OverlayScrim.js +5 -5
  189. package/dist/Overlay/useOverlay.js +3 -3
  190. package/dist/Pagination/Pagination.d.ts +1 -1
  191. package/dist/Pagination/Pagination.d.ts.map +1 -1
  192. package/dist/Pagination/Pagination.js +72 -125
  193. package/dist/Popover/Popover.js +16 -16
  194. package/dist/Popover/usePopover.js +7 -7
  195. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  196. package/dist/PowerSearch/PowerSearch.js +92 -110
  197. package/dist/PowerSearch/PowerSearchEditPopover.js +84 -84
  198. package/dist/PowerSearch/PowerSearchFilterEditor.js +3 -3
  199. package/dist/PowerSearch/PowerSearchToken.js +5 -5
  200. package/dist/PowerSearch/PowerSearchValueEditor.js +54 -54
  201. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  202. package/dist/ProgressBar/ProgressBar.js +18 -25
  203. package/dist/RadioList/RadioList.js +7 -7
  204. package/dist/RadioList/RadioListItem.d.ts +1 -1
  205. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  206. package/dist/RadioList/RadioListItem.js +21 -24
  207. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  208. package/dist/Resizable/ResizeHandle.js +10 -28
  209. package/dist/Section/Section.js +5 -5
  210. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  211. package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  212. package/dist/SegmentedControl/SegmentedControl.js +10 -32
  213. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  214. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  215. package/dist/SegmentedControl/SegmentedControlItem.js +12 -18
  216. package/dist/SelectableCard/SelectableCard.js +5 -5
  217. package/dist/Selector/Selector.js +46 -46
  218. package/dist/Selector/SelectorOption.js +3 -3
  219. package/dist/SideNav/SideNav.d.ts.map +1 -1
  220. package/dist/SideNav/SideNav.js +34 -38
  221. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  222. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  223. package/dist/SideNav/SideNavCollapseButton.js +6 -8
  224. package/dist/SideNav/SideNavHeading.js +87 -87
  225. package/dist/SideNav/SideNavItem.js +42 -42
  226. package/dist/SideNav/SideNavSection.d.ts +1 -1
  227. package/dist/SideNav/SideNavSection.d.ts.map +1 -1
  228. package/dist/SideNav/SideNavSection.js +16 -18
  229. package/dist/Skeleton/Skeleton.js +3 -3
  230. package/dist/Slider/Slider.js +23 -23
  231. package/dist/Spinner/Spinner.js +9 -9
  232. package/dist/StatusDot/StatusDot.js +5 -5
  233. package/dist/Switch/Switch.d.ts +4 -8
  234. package/dist/Switch/Switch.d.ts.map +1 -1
  235. package/dist/Switch/Switch.js +29 -34
  236. package/dist/TabList/Tab.js +18 -18
  237. package/dist/TabList/TabList.js +5 -5
  238. package/dist/TabList/TabMenu.d.ts.map +1 -1
  239. package/dist/TabList/TabMenu.js +30 -57
  240. package/dist/TabList/tab.markers.stylex.d.ts +1 -1
  241. package/dist/Table/BaseTable.d.ts.map +1 -1
  242. package/dist/Table/BaseTable.js +39 -50
  243. package/dist/Table/Table.js +7 -7
  244. package/dist/Table/TableBody.d.ts +1 -1
  245. package/dist/Table/TableBody.d.ts.map +1 -1
  246. package/dist/Table/TableBody.js +5 -9
  247. package/dist/Table/TableCell.js +3 -3
  248. package/dist/Table/TableFooter.d.ts +1 -1
  249. package/dist/Table/TableFooter.d.ts.map +1 -1
  250. package/dist/Table/TableFooter.js +5 -9
  251. package/dist/Table/TableHeader.d.ts +1 -1
  252. package/dist/Table/TableHeader.d.ts.map +1 -1
  253. package/dist/Table/TableHeader.js +5 -9
  254. package/dist/Table/TableHeaderCell.js +3 -3
  255. package/dist/Table/TableRow.js +5 -5
  256. package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
  257. package/dist/Table/plugins/columnResize/useTableColumnResize.js +11 -14
  258. package/dist/Table/plugins/filtering/useTableFiltering.js +71 -71
  259. package/dist/Table/plugins/pagination/paginateData.d.ts.map +1 -1
  260. package/dist/Table/plugins/pagination/paginateData.js +1 -5
  261. package/dist/Table/plugins/pagination/useTablePagination.js +7 -7
  262. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +22 -22
  263. package/dist/Table/plugins/selection/useTableSelection.js +18 -18
  264. package/dist/Table/plugins/selection/useTableSelectionState.d.ts.map +1 -1
  265. package/dist/Table/plugins/selection/useTableSelectionState.js +1 -11
  266. package/dist/Table/plugins/sortable/useTableSortable.js +17 -17
  267. package/dist/Table/plugins/sortable/useTableSortableState.d.ts.map +1 -1
  268. package/dist/Table/plugins/sortable/useTableSortableState.js +4 -8
  269. package/dist/Table/tableContextMenu.js +9 -9
  270. package/dist/Text/Text.js +10 -10
  271. package/dist/TextArea/TextArea.js +14 -14
  272. package/dist/TextInput/TextInput.js +15 -15
  273. package/dist/Thumbnail/Thumbnail.d.ts +2 -3
  274. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  275. package/dist/Thumbnail/Thumbnail.js +29 -30
  276. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  277. package/dist/TimeInput/TimeInput.js +21 -26
  278. package/dist/Timestamp/Timestamp.d.ts +1 -1
  279. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  280. package/dist/Timestamp/Timestamp.js +26 -37
  281. package/dist/Toast/Toast.d.ts.map +1 -1
  282. package/dist/Toast/Toast.js +17 -25
  283. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  284. package/dist/Toast/ToastViewport.js +11 -23
  285. package/dist/Toast/useToast.d.ts.map +1 -1
  286. package/dist/Toast/useToast.js +4 -44
  287. package/dist/ToggleButton/ToggleButton.js +12 -12
  288. package/dist/ToggleButton/ToggleButtonGroup.js +5 -5
  289. package/dist/Token/Token.js +21 -21
  290. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  291. package/dist/Tokenizer/Tokenizer.js +34 -36
  292. package/dist/Toolbar/Toolbar.js +18 -18
  293. package/dist/Tooltip/Tooltip.js +11 -11
  294. package/dist/Tooltip/useTooltip.d.ts +1 -5
  295. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  296. package/dist/Tooltip/useTooltip.js +3 -3
  297. package/dist/TopNav/TopNav.js +32 -32
  298. package/dist/TopNav/TopNavHeading.js +67 -67
  299. package/dist/TopNav/TopNavItem.js +5 -5
  300. package/dist/TopNav/TopNavMegaMenu.js +30 -30
  301. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  302. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts.map +1 -1
  303. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +14 -25
  304. package/dist/TopNav/TopNavMegaMenuItem.js +16 -16
  305. package/dist/TopNav/TopNavMenu.js +32 -32
  306. package/dist/TreeList/TreeList.js +8 -8
  307. package/dist/TreeList/TreeListBranches.js +11 -11
  308. package/dist/TreeList/TreeListItem.js +30 -30
  309. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  310. package/dist/Typeahead/BaseTypeahead.js +20 -23
  311. package/dist/Typeahead/Typeahead.js +12 -12
  312. package/dist/Typeahead/TypeaheadItem.js +10 -10
  313. package/dist/VStack/VStack.js +3 -3
  314. package/dist/astryx.css +0 -7
  315. package/dist/astryx.umd.js +59 -59
  316. package/dist/astryx.umd.js.map +4 -4
  317. package/dist/docs-types.d.ts +2 -8
  318. package/dist/docs-types.d.ts.map +1 -1
  319. package/dist/hooks/focusableSelector.d.ts +1 -1
  320. package/dist/hooks/focusableSelector.d.ts.map +1 -1
  321. package/dist/hooks/focusableSelector.js +1 -1
  322. package/dist/hooks/index.d.ts +0 -2
  323. package/dist/hooks/index.d.ts.map +1 -1
  324. package/dist/hooks/index.js +0 -1
  325. package/dist/hooks/useFocusTrap.d.ts +0 -3
  326. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  327. package/dist/hooks/useFocusTrap.js +1 -38
  328. package/dist/hooks/useInteractiveRole.d.ts +2 -6
  329. package/dist/hooks/useInteractiveRole.d.ts.map +1 -1
  330. package/dist/hooks/useInteractiveRole.js +2 -6
  331. package/dist/hooks/useKeyboardHint.js +9 -9
  332. package/dist/hooks/useStreamingText.d.ts +1 -3
  333. package/dist/hooks/useStreamingText.d.ts.map +1 -1
  334. package/dist/hooks/useStreamingText.js +5 -14
  335. package/dist/theme/MediaTheme.js +3 -3
  336. package/dist/theme/Theme.js +7 -7
  337. package/dist/theme/defineTheme.d.ts +1 -1
  338. package/dist/theme/defineTheme.d.ts.map +1 -1
  339. package/dist/theme/expandColorScale.d.ts.map +1 -1
  340. package/dist/theme/expandColorScale.js +3 -10
  341. package/dist/theme/hct.d.ts +15 -0
  342. package/dist/theme/hct.d.ts.map +1 -1
  343. package/dist/theme/hct.js +9 -9
  344. package/dist/theme/syntax/SyntaxTheme.js +5 -5
  345. package/dist/theme/tokens.d.ts +2 -10
  346. package/dist/theme/tokens.d.ts.map +1 -1
  347. package/dist/theme/tokens.js +4 -220
  348. package/dist/theme/useTheme.d.ts +2 -3
  349. package/dist/theme/useTheme.d.ts.map +1 -1
  350. package/dist/theme/useTheme.js +6 -73
  351. package/dist/utils/index.d.ts +0 -3
  352. package/dist/utils/index.d.ts.map +1 -1
  353. package/dist/utils/index.js +1 -3
  354. package/dist/utils/timeParser.d.ts.map +1 -1
  355. package/dist/utils/timeParser.js +5 -8
  356. package/package.json +3 -3
  357. package/src/AlertDialog/AlertDialog.doc.mjs +0 -4
  358. package/src/AlertDialog/AlertDialog.tsx +0 -2
  359. package/src/AppShell/AppShell.tsx +0 -2
  360. package/src/AspectRatio/AspectRatio.doc.mjs +1 -28
  361. package/src/AspectRatio/AspectRatio.test.tsx +1 -142
  362. package/src/AspectRatio/AspectRatio.tsx +10 -70
  363. package/src/AspectRatio/index.ts +1 -5
  364. package/src/Avatar/Avatar.doc.mjs +0 -11
  365. package/src/Avatar/Avatar.test.tsx +1 -32
  366. package/src/Avatar/Avatar.tsx +20 -12
  367. package/src/AvatarGroup/AvatarGroup.doc.mjs +0 -1
  368. package/src/Banner/Banner.doc.mjs +0 -8
  369. package/src/Banner/Banner.test.tsx +0 -38
  370. package/src/Banner/Banner.tsx +1 -8
  371. package/src/Calendar/Calendar.doc.mjs +1 -1
  372. package/src/Calendar/Calendar.test.tsx +17 -122
  373. package/src/Calendar/Calendar.tsx +5 -26
  374. package/src/Calendar/dayCellUtils.ts +1 -3
  375. package/src/Calendar/styles.ts +2 -12
  376. package/src/Card/Card.doc.mjs +1 -1
  377. package/src/Card/Card.tsx +6 -16
  378. package/src/Carousel/Carousel.doc.mjs +12 -12
  379. package/src/Carousel/Carousel.test.tsx +0 -13
  380. package/src/Carousel/Carousel.tsx +2 -4
  381. package/src/Carousel/carousel.markers.stylex.ts +10 -0
  382. package/src/Chat/Chat.doc.mjs +1 -1
  383. package/src/Chat/ChatComposerInput.test.tsx +1 -27
  384. package/src/Chat/ChatComposerInput.tsx +15 -20
  385. package/src/Chat/ChatDictationButton.tsx +4 -4
  386. package/src/Chat/ChatLayoutScrollButton.tsx +1 -3
  387. package/src/Chat/ChatMessageMetadata.tsx +6 -4
  388. package/src/Chat/ChatSystemMessage.test.tsx +11 -26
  389. package/src/Chat/ChatSystemMessage.tsx +7 -7
  390. package/src/Chat/ChatTokenizedText.test.tsx +16 -29
  391. package/src/Chat/ChatTokenizedText.tsx +8 -15
  392. package/src/Chat/ChatToolCalls.test.tsx +0 -55
  393. package/src/Chat/ChatToolCalls.tsx +12 -10
  394. package/src/Chat/index.ts +4 -1
  395. package/src/Chat/useTriggerMenu.tsx +4 -1
  396. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  397. package/src/CheckboxInput/CheckboxInput.test.tsx +4 -71
  398. package/src/CheckboxInput/CheckboxInput.tsx +0 -2
  399. package/src/CheckboxList/CheckboxList.test.tsx +0 -19
  400. package/src/CheckboxList/CheckboxListItem.tsx +2 -11
  401. package/src/Citation/Citation.doc.mjs +0 -5
  402. package/src/ClickableCard/ClickableCard.tsx +2 -45
  403. package/src/CodeBlock/CodeBlock.doc.mjs +2 -7
  404. package/src/CodeBlock/CodeBlock.test.tsx +3 -122
  405. package/src/CodeBlock/CodeBlock.tsx +4 -62
  406. package/src/Collapsible/Collapsible.doc.mjs +4 -8
  407. package/src/Collapsible/Collapsible.tsx +10 -86
  408. package/src/Collapsible/CollapsibleGroup.doc.mjs +3 -27
  409. package/src/Collapsible/CollapsibleGroup.test.tsx +0 -318
  410. package/src/Collapsible/CollapsibleGroup.tsx +9 -107
  411. package/src/Collapsible/CollapsibleGroupContext.tsx +2 -42
  412. package/src/Collapsible/index.ts +0 -4
  413. package/src/Collapsible/useCollapsible.ts +6 -20
  414. package/src/CommandPalette/CommandPalette.doc.mjs +0 -5
  415. package/src/CommandPalette/CommandPalette.tsx +3 -5
  416. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +0 -5
  417. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +0 -10
  418. package/src/CommandPalette/CommandPaletteInput.doc.mjs +0 -6
  419. package/src/CommandPalette/CommandPaletteItem.doc.mjs +0 -6
  420. package/src/CommandPalette/CommandPaletteList.doc.mjs +0 -9
  421. package/src/ContextMenu/ContextMenu.doc.mjs +0 -15
  422. package/src/ContextMenu/ContextMenu.test.tsx +0 -87
  423. package/src/ContextMenu/ContextMenu.tsx +28 -87
  424. package/src/ContextMenu/ContextMenuItem.doc.mjs +0 -6
  425. package/src/DateInput/DateInput.test.tsx +20 -11
  426. package/src/DateRangeInput/DateRangeInput.test.tsx +44 -31
  427. package/src/DateTimeInput/DateTimeInput.doc.mjs +2 -3
  428. package/src/DateTimeInput/DateTimeInput.test.tsx +16 -118
  429. package/src/DateTimeInput/DateTimeInput.tsx +2 -8
  430. package/src/DateTimeInput/index.ts +0 -1
  431. package/src/Dialog/Dialog.doc.mjs +0 -4
  432. package/src/Dialog/DialogHeader.doc.mjs +0 -45
  433. package/src/DropdownMenu/DropdownMenu.doc.mjs +1 -1
  434. package/src/DropdownMenu/DropdownMenu.test.tsx +2 -22
  435. package/src/DropdownMenu/DropdownMenuItem.tsx +17 -5
  436. package/src/EmptyState/EmptyState.doc.mjs +1 -1
  437. package/src/Field/Field.test.tsx +4 -1
  438. package/src/Field/FieldLabel.test.tsx +2 -2
  439. package/src/FormLayout/__snapshots__/FormLayout.test.tsx.snap +3 -0
  440. package/src/Grid/Grid.test.tsx +18 -43
  441. package/src/Grid/Grid.tsx +9 -26
  442. package/src/HoverCard/HoverCard.doc.mjs +6 -6
  443. package/src/HoverCard/useHoverCard.doc.mjs +5 -5
  444. package/src/HoverCard/useHoverCard.tsx +2 -9
  445. package/src/Icon/Icon.test.tsx +29 -41
  446. package/src/Icon/Icon.tsx +2 -6
  447. package/src/InputGroup/InputGroup.doc.mjs +0 -1
  448. package/src/InputGroup/InputGroup.tsx +2 -2
  449. package/src/Item/Item.tsx +1 -1
  450. package/src/Layer/useLayer.doc.mjs +2 -2
  451. package/src/Layer/useLayer.test.tsx +2 -221
  452. package/src/Layer/useLayer.tsx +30 -69
  453. package/src/Layout/LayoutContent.doc.mjs +0 -12
  454. package/src/Layout/LayoutPanel.doc.mjs +0 -40
  455. package/src/Lightbox/Lightbox.doc.mjs +0 -5
  456. package/src/Lightbox/Lightbox.test.tsx +2 -123
  457. package/src/Lightbox/Lightbox.tsx +1 -29
  458. package/src/Markdown/Markdown.tsx +7 -9
  459. package/src/Markdown/parser.perf.test.ts +12 -34
  460. package/src/MobileNav/MobileNav.test.tsx +0 -56
  461. package/src/MobileNav/MobileNav.tsx +8 -13
  462. package/src/NavMenu/NavMenu.doc.mjs +0 -15
  463. package/src/NumberInput/NumberInput.test.tsx +3 -48
  464. package/src/NumberInput/NumberInput.tsx +15 -32
  465. package/src/Outline/Outline.doc.mjs +0 -2
  466. package/src/Overlay/Overlay.doc.mjs +0 -6
  467. package/src/Pagination/Pagination.test.tsx +0 -162
  468. package/src/Pagination/Pagination.tsx +26 -80
  469. package/src/Popover/Popover.doc.mjs +6 -6
  470. package/src/Popover/Popover.test.tsx +0 -65
  471. package/src/Popover/usePopover.doc.mjs +1 -1
  472. package/src/PowerSearch/PowerSearch.doc.mjs +2 -2
  473. package/src/PowerSearch/PowerSearch.test.tsx +1 -109
  474. package/src/PowerSearch/PowerSearch.tsx +16 -37
  475. package/src/ProgressBar/ProgressBar.doc.mjs +0 -2
  476. package/src/ProgressBar/ProgressBar.test.tsx +0 -30
  477. package/src/ProgressBar/ProgressBar.tsx +5 -12
  478. package/src/RadioList/RadioList.test.tsx +0 -19
  479. package/src/RadioList/RadioListItem.tsx +4 -9
  480. package/src/Resizable/ResizeHandle.tsx +4 -22
  481. package/src/SegmentedControl/SegmentedControl.doc.mjs +1 -1
  482. package/src/SegmentedControl/SegmentedControl.test.tsx +0 -192
  483. package/src/SegmentedControl/SegmentedControl.tsx +5 -27
  484. package/src/SegmentedControl/SegmentedControlItem.tsx +4 -9
  485. package/src/SelectableCard/SelectableCard.doc.mjs +1 -1
  486. package/src/Selector/Selector.test.tsx +1 -27
  487. package/src/SideNav/SideNav.doc.mjs +1 -7
  488. package/src/SideNav/SideNav.test.tsx +0 -66
  489. package/src/SideNav/SideNav.tsx +2 -6
  490. package/src/SideNav/SideNavCollapseButton.tsx +3 -4
  491. package/src/SideNav/SideNavSection.tsx +4 -6
  492. package/src/Switch/Switch.doc.mjs +7 -7
  493. package/src/Switch/Switch.test.tsx +3 -102
  494. package/src/Switch/Switch.tsx +7 -20
  495. package/src/TabList/TabList.test.tsx +1 -185
  496. package/src/TabList/TabMenu.tsx +9 -45
  497. package/src/Table/BaseTable.tsx +2 -13
  498. package/src/Table/Table.doc.mjs +0 -5
  499. package/src/Table/Table.test.tsx +0 -87
  500. package/src/Table/TableBody.tsx +2 -15
  501. package/src/Table/TableFooter.tsx +2 -15
  502. package/src/Table/TableHeader.tsx +2 -15
  503. package/src/Table/plugins/columnResize/useTableColumnResize.test.tsx +0 -13
  504. package/src/Table/plugins/columnResize/useTableColumnResize.tsx +1 -3
  505. package/src/Table/plugins/pagination/paginateData.ts +1 -5
  506. package/src/Table/plugins/pagination/useTablePagination.test.tsx +0 -13
  507. package/src/Table/plugins/selection/useTableSelectionState.test.tsx +0 -23
  508. package/src/Table/plugins/selection/useTableSelectionState.tsx +6 -11
  509. package/src/Table/plugins/sortable/useTableSortableState.test.tsx +1 -35
  510. package/src/Table/plugins/sortable/useTableSortableState.tsx +4 -8
  511. package/src/TextArea/TextArea.test.tsx +3 -3
  512. package/src/TextInput/TextInput.test.tsx +3 -3
  513. package/src/Thumbnail/Thumbnail.test.tsx +2 -36
  514. package/src/Thumbnail/Thumbnail.tsx +2 -4
  515. package/src/TimeInput/TimeInput.test.tsx +0 -37
  516. package/src/TimeInput/TimeInput.tsx +1 -11
  517. package/src/Timestamp/Timestamp.doc.mjs +1 -1
  518. package/src/Timestamp/Timestamp.test.tsx +0 -52
  519. package/src/Timestamp/Timestamp.tsx +16 -30
  520. package/src/Toast/Toast.tsx +3 -11
  521. package/src/Toast/ToastViewport.test.tsx +0 -64
  522. package/src/Toast/ToastViewport.tsx +0 -12
  523. package/src/Toast/useToast.tsx +0 -41
  524. package/src/ToggleButton/ToggleButton.doc.mjs +0 -1
  525. package/src/Tokenizer/Tokenizer.doc.mjs +2 -2
  526. package/src/Tokenizer/Tokenizer.test.tsx +0 -54
  527. package/src/Tokenizer/Tokenizer.tsx +4 -5
  528. package/src/Tooltip/Tooltip.doc.mjs +6 -6
  529. package/src/Tooltip/useTooltip.doc.mjs +5 -5
  530. package/src/Tooltip/useTooltip.tsx +2 -12
  531. package/src/TopNav/TopNav.doc.mjs +1 -1
  532. package/src/TopNav/TopNav.test.tsx +7 -23
  533. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +2 -9
  534. package/src/TreeList/TreeList.doc.mjs +2 -2
  535. package/src/Typeahead/BaseTypeahead.doc.mjs +0 -19
  536. package/src/Typeahead/BaseTypeahead.tsx +2 -5
  537. package/src/Typeahead/Typeahead.doc.mjs +1 -1
  538. package/src/Typeahead/Typeahead.test.tsx +1 -45
  539. package/src/docs-types.ts +1 -9
  540. package/src/hooks/focusableSelector.ts +1 -1
  541. package/src/hooks/index.ts +0 -3
  542. package/src/hooks/useFocusTrap.doc.mjs +2 -4
  543. package/src/hooks/useFocusTrap.test.tsx +1 -149
  544. package/src/hooks/useFocusTrap.ts +1 -50
  545. package/src/hooks/useInteractiveRole.ts +4 -12
  546. package/src/hooks/useStreamingText.test.ts +19 -54
  547. package/src/hooks/useStreamingText.ts +5 -16
  548. package/src/hooks/useTreeFocus.test.tsx +3 -1
  549. package/src/reset.css +0 -29
  550. package/src/theme/SyntaxTheme.doc.mjs +4 -4
  551. package/src/theme/defineTheme.ts +13 -4
  552. package/src/theme/derivedVarRegistry.test.ts +2 -2
  553. package/src/theme/expandColorScale.test.ts +0 -29
  554. package/src/theme/expandColorScale.ts +6 -11
  555. package/src/theme/hct.ts +17 -9
  556. package/src/theme/tokens.test.ts +9 -182
  557. package/src/theme/tokens.ts +4 -239
  558. package/src/theme/useTheme.test.tsx +2 -126
  559. package/src/theme/useTheme.ts +6 -87
  560. package/src/utils/index.ts +0 -4
  561. package/src/utils/sharedResizeObserver.test.ts +2 -2
  562. package/src/utils/timeParser.test.ts +0 -13
  563. package/src/utils/timeParser.ts +5 -8
  564. package/dist/hooks/useHotkeys.d.ts +0 -51
  565. package/dist/hooks/useHotkeys.d.ts.map +0 -1
  566. package/dist/hooks/useHotkeys.js +0 -160
  567. package/dist/utils/color.d.ts +0 -42
  568. package/dist/utils/color.d.ts.map +0 -1
  569. package/dist/utils/color.js +0 -150
  570. package/dist/utils/composeEventHandlers.d.ts +0 -30
  571. package/dist/utils/composeEventHandlers.d.ts.map +0 -1
  572. package/dist/utils/composeEventHandlers.js +0 -40
  573. package/src/Chat/ChatDictationButton.test.tsx +0 -43
  574. package/src/Chat/ChatLayoutScrollButton.test.tsx +0 -33
  575. package/src/Chat/ChatMessageMetadata.test.tsx +0 -32
  576. package/src/Collapsible/Collapsible.test.tsx +0 -405
  577. package/src/FieldStatus/FieldStatus.test.tsx +0 -282
  578. package/src/InteractiveRoleContext/InteractiveRoleContext.test.tsx +0 -185
  579. package/src/Layout/Layout.test.tsx +0 -285
  580. package/src/Layout/LayoutSlots.test.tsx +0 -364
  581. package/src/Outline/parseOutlineFromMarkdown.test.ts +0 -80
  582. package/src/OverflowList/OverflowList.test.tsx +0 -416
  583. package/src/Overlay/Overlay.test.tsx +0 -356
  584. package/src/Resizable/ResizeHandle.test.tsx +0 -218
  585. package/src/SizeContext/SizeContext.test.tsx +0 -226
  586. package/src/Toast/useToast.test.tsx +0 -258
  587. package/src/__tests__/TestIcon.tsx +0 -26
  588. package/src/__tests__/fastRoleQueries.ts +0 -66
  589. package/src/docPropReferences.test.ts +0 -178
  590. package/src/hooks/useHotkeys.doc.mjs +0 -52
  591. package/src/hooks/useHotkeys.test.ts +0 -245
  592. package/src/hooks/useHotkeys.ts +0 -203
  593. package/src/theme/themingTargets.test.ts +0 -353
  594. package/src/utils/color.test.ts +0 -133
  595. package/src/utils/color.ts +0 -148
  596. package/src/utils/composeEventHandlers.test.ts +0 -71
  597. package/src/utils/composeEventHandlers.ts +0 -44
  598. package/src/utils/mergeProps.test.ts +0 -166
@@ -9,8 +9,7 @@
9
9
  * @position Core layer utility; used by useHoverCard, useTooltip, etc.
10
10
  *
11
11
  * SYNC: When modified, update:
12
- * - /packages/core/src/Layer/useLayer.doc.mjs
13
- * - /packages/core/src/Layer/useLayer.test.tsx
12
+ * - /packages/core/src/Layer/Layer.doc.mjs
14
13
  * - /packages/core/src/Layer/index.ts
15
14
  */
16
15
 
@@ -53,9 +52,7 @@ const styles = stylex.create({
53
52
  });
54
53
 
55
54
  /**
56
- * Position placement relative to anchor.
57
- * Logical: start/end resolve against the popover's own inherited direction
58
- * via CSS (RTL contexts mirror automatically, no JS involved).
55
+ * Position placement relative to anchor
59
56
  */
60
57
  export type LayerPlacement = 'above' | 'below' | 'start' | 'end';
61
58
 
@@ -68,31 +65,7 @@ export type LayerAlignment = 'start' | 'center' | 'end';
68
65
  * Render props for context mode (anchor positioning)
69
66
  */
70
67
  export interface ContextRenderProps {
71
- /**
72
- * Who authors the layer's position styles.
73
- *
74
- * `'anchor'` (default): the hook derives CSS anchor-positioning styles —
75
- * `position-area` and `position-try-fallbacks` — from the logical
76
- * `placement`/`alignment`.
77
- *
78
- * `'custom'`: the consumer authors its own position styles via `style`
79
- * (e.g. explicit `anchor()` insets or an `anchor-size()` cover). The hook
80
- * keeps the popover behavior and the `position-anchor` wiring but emits no
81
- * placement-derived styles, so direction handling becomes the consumer's
82
- * responsibility. `placement`/`alignment` are ignored.
83
- *
84
- * @default 'anchor'
85
- */
86
- positioning?: 'anchor' | 'custom';
87
- /**
88
- * Logical placement relative to the anchor. Ignored when `positioning`
89
- * is `'custom'`.
90
- */
91
68
  placement?: LayerPlacement;
92
- /**
93
- * Alignment along the placement axis. Ignored when `positioning`
94
- * is `'custom'`.
95
- */
96
69
  alignment?: LayerAlignment;
97
70
  /**
98
71
  * ARIA role applied to the popover container (e.g. `'tooltip'`). Lets
@@ -279,45 +252,40 @@ export interface FixedLayerReturn {
279
252
  }
280
253
 
281
254
  /**
282
- * Map logical placement/alignment to a CSS position-area value.
283
- *
284
- * Uses the self-* logical keyword family: the inline axis resolves against
285
- * the popover's own inherited direction (the layer renders inside the
286
- * trigger's subtree, so it inherits `direction` and mirrors in RTL with no
287
- * JS). The block axis is direction-neutral but must come from the same
288
- * keyword family — mixing physical `top` with `self-inline-*` produces an
289
- * invalid position-area (computes to `none`, which pins the popover to the
290
- * viewport corner because styles.base zeroes the UA margins).
291
- *
292
- * Note the plain logical family (`inline-start`, no `self-`) is NOT a
293
- * substitute: it resolves against the containing block — the page root for
294
- * a top-layer popover — so it ignores `direction` set on a subtree, which
295
- * is exactly #3389's repro.
255
+ * Map placement and alignment to CSS position-area value.
296
256
  */
297
257
  function getPositionArea(
298
258
  placement: LayerPlacement = 'above',
299
259
  alignment: LayerAlignment = 'center',
300
260
  ): string {
261
+ const placementMap: Record<LayerPlacement, string> = {
262
+ above: 'top',
263
+ below: 'bottom',
264
+ start: 'left',
265
+ end: 'right',
266
+ };
267
+
268
+ const cssPlacement = placementMap[placement];
269
+
270
+ // For above/below, alignment is horizontal
301
271
  if (placement === 'above' || placement === 'below') {
302
- const block = placement === 'above' ? 'self-block-start' : 'self-block-end';
303
272
  if (alignment === 'start') {
304
- return `${block} span-self-inline-end`;
273
+ return `${cssPlacement} span-right`;
305
274
  }
306
275
  if (alignment === 'end') {
307
- return `${block} span-self-inline-start`;
276
+ return `${cssPlacement} span-left`;
308
277
  }
309
- return block; // center
278
+ return cssPlacement; // center
310
279
  }
311
280
 
312
- const inline =
313
- placement === 'start' ? 'self-inline-start' : 'self-inline-end';
281
+ // For start/end, alignment is vertical
314
282
  if (alignment === 'start') {
315
- return `${inline} span-self-block-end`;
283
+ return `${cssPlacement} span-bottom`;
316
284
  }
317
285
  if (alignment === 'end') {
318
- return `${inline} span-self-block-start`;
286
+ return `${cssPlacement} span-top`;
319
287
  }
320
- return inline; // center
288
+ return `${cssPlacement} center`;
321
289
  }
322
290
 
323
291
  /**
@@ -353,18 +321,18 @@ export function useLayer(
353
321
  const isOpenRef = useRef(false);
354
322
 
355
323
  const show = useCallback(() => {
356
- const popover = popoverRef.current;
357
- if (popover && !isOpenRef.current) {
324
+ const el = popoverRef.current;
325
+ if (el && !isOpenRef.current) {
358
326
  // Finding infra-4: the Popover API is unsupported on Safari <17 and
359
327
  // Firefox <125. On those browsers `showPopover` does not exist, so
360
328
  // calling it unconditionally throws a TypeError and the layer never
361
329
  // opens. Guard behind a feature check; when the API is missing, fall
362
330
  // back to plain visibility (the [popover] attribute is inert there, so
363
331
  // the element sits in normal flow) so the layer still becomes visible.
364
- if (typeof popover.showPopover === 'function') {
365
- popover.showPopover();
332
+ if (typeof el.showPopover === 'function') {
333
+ el.showPopover();
366
334
  } else {
367
- popover.style.display = 'block';
335
+ el.style.display = 'block';
368
336
  }
369
337
  isOpenRef.current = true;
370
338
  setIsOpen(true);
@@ -493,7 +461,6 @@ export function useLayer(
493
461
  const {
494
462
  placement = 'above',
495
463
  alignment = 'center',
496
- positioning = 'anchor',
497
464
  role,
498
465
  xstyle,
499
466
  className: extraClassName,
@@ -504,17 +471,11 @@ export function useLayer(
504
471
  } = props || {};
505
472
 
506
473
  // CSS anchor positioning (dynamic, not in StyleX)
507
- const anchorStyle: React.CSSProperties =
508
- positioning === 'custom'
509
- ? // Consumer authors its own position styles via `style` — keep
510
- // only the anchor wiring, derive nothing from placement.
511
- {positionAnchor: anchorId}
512
- : {
513
- positionAnchor: anchorId,
514
- positionArea: getPositionArea(placement, alignment),
515
- positionTryFallbacks:
516
- 'flip-block, flip-inline, flip-block flip-inline',
517
- };
474
+ const anchorStyle: React.CSSProperties = {
475
+ positionAnchor: anchorId,
476
+ positionArea: getPositionArea(placement, alignment),
477
+ positionTryFallbacks: 'flip-block, flip-inline, flip-block flip-inline',
478
+ };
518
479
 
519
480
  const stylexResult = stylex.props(styles.base, xstyle);
520
481
  const combinedClassName = extraClassName
@@ -14,12 +14,6 @@ export const docs = {
14
14
  type: 'ReactNode',
15
15
  description: 'Content.',
16
16
  },
17
- {
18
- name: 'padding',
19
- type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
20
- description:
21
- 'Internal padding using the spacing scale. Overrides the default padding from the layout container.',
22
- },
23
17
  {
24
18
  name: 'isScrollable',
25
19
  type: 'boolean',
@@ -50,11 +44,6 @@ export const docsZh = {
50
44
  type: 'ReactNode',
51
45
  description: '内容。',
52
46
  },
53
- {
54
- name: 'padding',
55
- type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
56
- description: '使用间距比例的内边距。覆盖布局容器的默认内边距。',
57
- },
58
47
  {
59
48
  name: 'isScrollable',
60
49
  type: 'boolean',
@@ -81,7 +70,6 @@ export const docsDense = {
81
70
  description: 'Scrollable main content area.',
82
71
  propDescriptions: {
83
72
  children: 'Content.',
84
- padding: 'Internal padding on spacing scale. Overrides layout container default.',
85
73
  isScrollable: 'Enable scrollable overflow.',
86
74
  label: 'Accessible label for landmark element.',
87
75
  role: 'ARIA landmark role.',
@@ -20,12 +20,6 @@ export const docs = {
20
20
  description: 'Border on the appropriate edge.',
21
21
  default: 'false',
22
22
  },
23
- {
24
- name: 'padding',
25
- type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
26
- description:
27
- 'Internal padding using the spacing scale. Overrides the default padding from the layout container.',
28
- },
29
23
  {
30
24
  name: 'isScrollable',
31
25
  type: 'boolean',
@@ -42,18 +36,6 @@ export const docs = {
42
36
  type: 'AriaRole',
43
37
  description: 'ARIA landmark role.',
44
38
  },
45
- {
46
- name: 'width',
47
- type: 'number | string',
48
- description:
49
- 'Width of the panel. Numbers are treated as pixels, strings are used as-is. Ignored when resizable is provided; the hook controls width.',
50
- },
51
- {
52
- name: 'resizable',
53
- type: 'ResizableProps',
54
- description:
55
- 'Resize props from useResizable(). When provided, the hook drives the panel width and a ResizeHandle should be placed adjacent to the panel.',
56
- },
57
39
  ],
58
40
  };
59
41
 
@@ -74,11 +56,6 @@ export const docsZh = {
74
56
  description: '相应边缘的边框。',
75
57
  default: 'false',
76
58
  },
77
- {
78
- name: 'padding',
79
- type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10',
80
- description: '使用间距比例的内边距。覆盖布局容器的默认内边距。',
81
- },
82
59
  {
83
60
  name: 'isScrollable',
84
61
  type: 'boolean',
@@ -95,18 +72,6 @@ export const docsZh = {
95
72
  type: 'AriaRole',
96
73
  description: 'ARIA 地标角色。',
97
74
  },
98
- {
99
- name: 'width',
100
- type: 'number | string',
101
- description:
102
- '面板宽度。数字按像素处理,字符串按原样使用。提供 resizable 时忽略,宽度由 hook 控制。',
103
- },
104
- {
105
- name: 'resizable',
106
- type: 'ResizableProps',
107
- description:
108
- '来自 useResizable() 的调整大小属性。提供时面板宽度由 hook 驱动,应在面板旁放置 ResizeHandle。',
109
- },
110
75
  ],
111
76
  };
112
77
 
@@ -118,13 +83,8 @@ export const docsDense = {
118
83
  propDescriptions: {
119
84
  children: 'Panel content.',
120
85
  hasDivider: 'Border on appropriate edge.',
121
- padding: 'Internal padding on spacing scale. Overrides layout container default.',
122
86
  isScrollable: 'Enable scrollable overflow.',
123
87
  label: 'Accessible label for landmark element.',
124
88
  role: 'ARIA landmark role.',
125
- width:
126
- 'Panel width. Numbers = pixels, strings as-is. Ignored when resizable provided; hook controls width.',
127
- resizable:
128
- 'Resize props from useResizable(). Hook drives panel width; place ResizeHandle adjacent.',
129
89
  },
130
90
  };
@@ -64,13 +64,8 @@ export const docs = {
64
64
  { guidance: false, description: 'Nest interactive content inside captions; keep them plain text.' },
65
65
  ],
66
66
  },
67
- // The lightbox opens via showModal() and renders nothing while closed —
68
- // overlay mode gives the Properties preview an open trigger instead of an
69
- // empty stage, mirroring MobileNav (#3616).
70
67
  playground: {
71
- overlay: true,
72
68
  defaults: {
73
- isOpen: false,
74
69
  media: {
75
70
  src: 'https://lookaside.facebook.com/assets/astryx/light-scene-horizontal-1.png',
76
71
  alt: 'Coastal shoreline with ocean waves',
@@ -1,9 +1,8 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- import {describe, it, expect, vi, beforeEach, afterEach} from 'vitest';
4
- import {render, screen, fireEvent, waitFor} from '@testing-library/react';
3
+ import {describe, it, expect, vi, beforeEach} from 'vitest';
4
+ import {render, screen, fireEvent} from '@testing-library/react';
5
5
  import {Lightbox} from './Lightbox';
6
- import {__resetLiveRegionsForTest} from '../hooks/useAnnounce';
7
6
 
8
7
  // Mock showModal/close for jsdom
9
8
  beforeEach(() => {
@@ -17,16 +16,6 @@ beforeEach(() => {
17
16
  });
18
17
  });
19
18
 
20
- // useAnnounce mounts singleton live regions on <body>; reset between tests so
21
- // stale announcements from one test don't leak into the next.
22
- afterEach(() => {
23
- __resetLiveRegionsForTest();
24
- });
25
-
26
- function politeRegion(): HTMLElement | null {
27
- return document.querySelector('[data-astryx-live-region="polite"]');
28
- }
29
-
30
19
  describe('Lightbox', () => {
31
20
  it('renders as a dialog element', () => {
32
21
  render(
@@ -311,116 +300,6 @@ describe('Lightbox', () => {
311
300
  });
312
301
  });
313
302
 
314
- describe('screen-reader announcements', () => {
315
- const media = [
316
- {src: '/a.jpg', alt: 'Image A', caption: 'First'},
317
- {src: '/b.jpg', alt: 'Image B', caption: 'Second'},
318
- {src: '/c.jpg', alt: 'Image C'},
319
- ];
320
-
321
- it('announces the new image and position when navigating next via button', async () => {
322
- render(
323
- <Lightbox
324
- isOpen={true}
325
- onOpenChange={() => {}}
326
- media={media}
327
- defaultIndex={0}
328
- />,
329
- );
330
- fireEvent.click(screen.getByLabelText('Next'));
331
- await waitFor(() => {
332
- expect(politeRegion()).toHaveTextContent('Image B, 2 of 3');
333
- });
334
- });
335
-
336
- it('announces the new image and position when navigating via arrow keys', async () => {
337
- render(
338
- <Lightbox
339
- isOpen={true}
340
- onOpenChange={() => {}}
341
- media={media}
342
- defaultIndex={1}
343
- />,
344
- );
345
- const dialog = document.querySelector('dialog')!;
346
- fireEvent.keyDown(dialog, {key: 'ArrowRight'});
347
- await waitFor(() => {
348
- expect(politeRegion()).toHaveTextContent('Image C, 3 of 3');
349
- });
350
- });
351
-
352
- it('announces the new image and position when navigating prev', async () => {
353
- render(
354
- <Lightbox
355
- isOpen={true}
356
- onOpenChange={() => {}}
357
- media={media}
358
- defaultIndex={2}
359
- />,
360
- );
361
- fireEvent.click(screen.getByLabelText('Previous'));
362
- await waitFor(() => {
363
- expect(politeRegion()).toHaveTextContent('Image B, 2 of 3');
364
- });
365
- });
366
-
367
- it('falls back to a positional label when the image has no alt', async () => {
368
- const unlabeled = [
369
- {src: '/a.jpg', alt: 'Image A'},
370
- {src: '/b.jpg', alt: ''},
371
- ];
372
- render(
373
- <Lightbox
374
- isOpen={true}
375
- onOpenChange={() => {}}
376
- media={unlabeled}
377
- defaultIndex={0}
378
- />,
379
- );
380
- fireEvent.click(screen.getByLabelText('Next'));
381
- await waitFor(() => {
382
- expect(politeRegion()).toHaveTextContent('Image 2 of 2');
383
- });
384
- });
385
-
386
- it('does not announce on initial open', async () => {
387
- render(
388
- <Lightbox
389
- isOpen={true}
390
- onOpenChange={() => {}}
391
- media={media}
392
- defaultIndex={1}
393
- />,
394
- );
395
- // Allow any scheduled rAF to flush; nothing should have been announced.
396
- await new Promise(resolve => requestAnimationFrame(() => resolve(null)));
397
- // The dialog's aria-label already names the current image on open, so no
398
- // live region is created (announce is never called).
399
- expect(politeRegion()).toBeNull();
400
- });
401
-
402
- it('does not announce when the lightbox opens at a new index', async () => {
403
- const {rerender} = render(
404
- <Lightbox
405
- isOpen={false}
406
- onOpenChange={() => {}}
407
- media={media}
408
- index={0}
409
- />,
410
- );
411
- rerender(
412
- <Lightbox
413
- isOpen={true}
414
- onOpenChange={() => {}}
415
- media={media}
416
- index={2}
417
- />,
418
- );
419
- await new Promise(resolve => requestAnimationFrame(() => resolve(null)));
420
- expect(politeRegion()).toBeNull();
421
- });
422
- });
423
-
424
303
  describe('video support', () => {
425
304
  it('renders a video element when type is video', () => {
426
305
  const {container} = render(
@@ -19,7 +19,6 @@
19
19
  import {
20
20
  useCallback,
21
21
  useEffect,
22
- useMemo,
23
22
  useRef,
24
23
  useState,
25
24
  type MouseEvent as ReactMouseEvent,
@@ -29,7 +28,6 @@ import * as stylex from '@stylexjs/stylex';
29
28
  import {colorVars, spacingVars, typeScaleVars} from '../theme/tokens.stylex';
30
29
  import {Icon} from '../Icon';
31
30
  import {IconButton} from '../IconButton';
32
- import {useAnnounce} from '../hooks/useAnnounce';
33
31
  import {useScrollLock} from '../hooks/useScrollLock';
34
32
  import {useIsomorphicLayoutEffect} from '../hooks/useIsomorphicLayoutEffect';
35
33
  import {mergeProps, mergeRefs} from '../utils';
@@ -308,10 +306,7 @@ export function Lightbox({
308
306
  const dragStartRef = useRef({x: 0, y: 0, panX: 0, panY: 0});
309
307
 
310
308
  // Resolve current media item
311
- const mediaArray = useMemo(
312
- () => (Array.isArray(media) ? media : [media]),
313
- [media],
314
- );
309
+ const mediaArray = Array.isArray(media) ? media : [media];
315
310
  const isGallery = mediaArray.length > 1;
316
311
  const currentItem =
317
312
  mediaArray.length > 0
@@ -334,29 +329,6 @@ export function Lightbox({
334
329
  setPan({x: 0, y: 0});
335
330
  }, [index, currentItem?.src]);
336
331
 
337
- // Announce gallery navigation to screen readers. Moving between images only
338
- // updates the visual counter, which is silent to assistive tech, so mirror
339
- // each change in a polite live region ("<alt>, 3 of 12", or "Image 3 of 12"
340
- // when the image has no alt). Announce only when the image changes during an
341
- // already-open session — not on mount, not when opening (even at a new
342
- // index, since the dialog's aria-label already names the current image), and
343
- // not on close.
344
- const announce = useAnnounce();
345
- const prevIndexRef = useRef(index);
346
- const wasOpenRef = useRef(isOpen);
347
- useEffect(() => {
348
- const indexChanged = prevIndexRef.current !== index;
349
- const wasOpen = wasOpenRef.current;
350
- prevIndexRef.current = index;
351
- wasOpenRef.current = isOpen;
352
- if (!indexChanged || !isOpen || !wasOpen) {
353
- return;
354
- }
355
- const item = mediaArray[Math.min(index, mediaArray.length - 1)];
356
- const position = `${index + 1} of ${mediaArray.length}`;
357
- announce(item?.alt ? `${item.alt}, ${position}` : `Image ${position}`);
358
- }, [index, isOpen, announce, mediaArray]);
359
-
360
332
  // Open/close dialog
361
333
  useIsomorphicLayoutEffect(() => {
362
334
  const dialog = dialogRef.current;
@@ -425,14 +425,7 @@ const streamingStyles = stylex.create({
425
425
  fadeIn: {
426
426
  opacity: 1,
427
427
  transitionProperty: 'opacity',
428
- // Collapse the entry fade to an instant swap under reduced motion. The
429
- // 0s duration makes the @starting-style opacity jump non-animated (the
430
- // media query can't nest inside @starting-style), mirroring the
431
- // conditional-duration form in Spinner (Spinner.tsx).
432
- transitionDuration: {
433
- default: durationVars['--duration-medium'],
434
- '@media (prefers-reduced-motion: reduce)': '0s',
435
- },
428
+ transitionDuration: durationVars['--duration-medium'],
436
429
  transitionTimingFunction: easeVars['--ease-standard'],
437
430
  '@starting-style': {
438
431
  opacity: 0,
@@ -1056,7 +1049,12 @@ function renderBlock(
1056
1049
  switch (node.type) {
1057
1050
  case 'heading': {
1058
1051
  const level = Math.min(node.level + headingLevelStart - 1, 6) as
1059
- 1 | 2 | 3 | 4 | 5 | 6;
1052
+ | 1
1053
+ | 2
1054
+ | 3
1055
+ | 4
1056
+ | 5
1057
+ | 6;
1060
1058
  const headingChildren = node.children.map((c, i) =>
1061
1059
  renderInline(
1062
1060
  c,
@@ -69,31 +69,6 @@ function simulateStreamingIncremental(
69
69
  return parseMarkdownIncremental(fullText, state);
70
70
  }
71
71
 
72
- // A single wall-clock measurement is flaky when the whole suite runs in
73
- // parallel forks: scheduler contention can inflate a millisecond-scale
74
- // sample well past a tight budget (observed 30.9ms against the 20ms Small
75
- // budget). The fastest of a few runs approximates the un-contended cost —
76
- // a real regression raises the minimum too — so budgets stay tight without
77
- // flapping. The streaming budget tests below keep a single run: their
78
- // budgets carry 10x+ headroom, which contention cannot realistically eat.
79
- function measureBest<T>(
80
- runs: number,
81
- fn: () => T,
82
- ): {elapsed: number; result: T} {
83
- let elapsed = Infinity;
84
- let result!: T;
85
- for (let i = 0; i < runs; i++) {
86
- const start = performance.now();
87
- const r = fn();
88
- const t = performance.now() - start;
89
- if (t < elapsed) {
90
- elapsed = t;
91
- result = r;
92
- }
93
- }
94
- return {elapsed, result};
95
- }
96
-
97
72
  describe('parseMarkdown performance', () => {
98
73
  const sizes = [
99
74
  {name: 'Small', paragraphs: 10, maxMs: 20},
@@ -118,7 +93,9 @@ describe('parseMarkdown performance', () => {
118
93
  for (const size of sizes) {
119
94
  it(`full re-parse ${size.name} (${size.paragraphs} paragraphs) under ${size.maxMs}ms`, () => {
120
95
  const text = generateAIResponse(size.paragraphs);
121
- const {elapsed, result} = measureBest(3, () => parseMarkdown(text));
96
+ const start = performance.now();
97
+ const result = parseMarkdown(text);
98
+ const elapsed = performance.now() - start;
122
99
  console.log(
123
100
  ` ${size.name} full parse: ${elapsed.toFixed(2)}ms → ${result.length} blocks`,
124
101
  );
@@ -172,14 +149,15 @@ describe('parseMarkdown performance', () => {
172
149
  const text = generateAIResponse(200);
173
150
  const chunkSize = 50;
174
151
 
175
- // The assertion below compares a ratio of two measurements, so noise on
176
- // either side can flip it — measure both as best-of-3.
177
- const {elapsed: fullElapsed} = measureBest(3, () =>
178
- simulateStreamingFullReparse(text, chunkSize),
179
- );
180
- const {elapsed: incrElapsed} = measureBest(3, () =>
181
- simulateStreamingIncremental(text, chunkSize),
182
- );
152
+ // Full re-parse timing
153
+ const fullStart = performance.now();
154
+ simulateStreamingFullReparse(text, chunkSize);
155
+ const fullElapsed = performance.now() - fullStart;
156
+
157
+ // Incremental timing
158
+ const incrStart = performance.now();
159
+ simulateStreamingIncremental(text, chunkSize);
160
+ const incrElapsed = performance.now() - incrStart;
183
161
 
184
162
  const speedup = fullElapsed / incrElapsed;
185
163
  console.log(`\n === Incremental vs Full Re-parse Speedup ===`);
@@ -144,62 +144,6 @@ describe('MobileNav', () => {
144
144
  expect(screen.getByTestId('custom-nav')).toBeInTheDocument();
145
145
  });
146
146
 
147
- it('forwards arbitrary pass-through attributes to the dialog', () => {
148
- render(
149
- <MobileNav
150
- isOpen={true}
151
- onOpenChange={() => {}}
152
- data-testid="nav"
153
- id="main-nav"
154
- data-custom="x"
155
- aria-describedby="nav-desc">
156
- <span>Content</span>
157
- </MobileNav>,
158
- );
159
-
160
- const dialog = screen.getByTestId('nav');
161
- expect(dialog).toHaveAttribute('id', 'main-nav');
162
- expect(dialog).toHaveAttribute('data-custom', 'x');
163
- expect(dialog).toHaveAttribute('aria-describedby', 'nav-desc');
164
- });
165
-
166
- it('applies a consumer className and style to the dialog', () => {
167
- render(
168
- <MobileNav
169
- isOpen={true}
170
- onOpenChange={() => {}}
171
- data-testid="nav"
172
- className="consumer-class"
173
- style={{zIndex: 42}}>
174
- <span>Content</span>
175
- </MobileNav>,
176
- );
177
-
178
- const dialog = screen.getByTestId('nav');
179
- expect(dialog.className).toContain('consumer-class');
180
- expect(dialog.style.zIndex).toBe('42');
181
- });
182
-
183
- it('composes a consumer onClick with the backdrop-dismiss handler', () => {
184
- const onClick = vi.fn();
185
- const onOpenChange = vi.fn();
186
- render(
187
- <MobileNav
188
- isOpen={true}
189
- onOpenChange={onOpenChange}
190
- data-testid="nav"
191
- onClick={onClick}>
192
- <span>Content</span>
193
- </MobileNav>,
194
- );
195
-
196
- // Clicking the dialog element itself (the backdrop) dismisses AND calls the
197
- // consumer handler.
198
- fireEvent.click(screen.getByTestId('nav'));
199
- expect(onClick).toHaveBeenCalledTimes(1);
200
- expect(onOpenChange).toHaveBeenCalledWith(false);
201
- });
202
-
203
147
  it('uses native dialog element', () => {
204
148
  render(
205
149
  <MobileNav