@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,7 +9,7 @@
9
9
  * SYNC: When AspectRatio.tsx changes, update tests to match new behavior
10
10
  */
11
11
 
12
- import {describe, it, expect, vi, beforeAll} from 'vitest';
12
+ import {describe, it, expect, vi} from 'vitest';
13
13
  import {render, screen} from '@testing-library/react';
14
14
  import {AspectRatio} from './AspectRatio';
15
15
 
@@ -176,145 +176,4 @@ describe('AspectRatio', () => {
176
176
  const video = screen.getByTestId('video');
177
177
  expect(video).toBeInTheDocument();
178
178
  });
179
-
180
- describe('fit', () => {
181
- it('marks the child\'s direct parent with data-astryx-aspect-ratio-override for fit="cover"', () => {
182
- render(
183
- <AspectRatio ratio={16 / 9} fit="cover">
184
- <img src="test.jpg" alt="Test" data-testid="image" />
185
- </AspectRatio>,
186
- );
187
- // The marker sits on the child's actual parent, so the reset.css
188
- // sizing rules are direct-child selectors with no dependence on
189
- // AspectRatio's internal structure.
190
- const wrapper = screen.getByTestId('image').parentElement;
191
- expect(wrapper).toHaveAttribute(
192
- 'data-astryx-aspect-ratio-override',
193
- 'cover',
194
- );
195
- });
196
-
197
- it('marks the child\'s direct parent with data-astryx-aspect-ratio-override for fit="contain"', () => {
198
- render(
199
- <AspectRatio ratio={16 / 9} fit="contain">
200
- <img src="test.jpg" alt="Test" data-testid="image" />
201
- </AspectRatio>,
202
- );
203
- const wrapper = screen.getByTestId('image').parentElement;
204
- expect(wrapper).toHaveAttribute(
205
- 'data-astryx-aspect-ratio-override',
206
- 'contain',
207
- );
208
- });
209
-
210
- it('does not expose fit on the theming surface', () => {
211
- render(
212
- <AspectRatio ratio={16 / 9} fit="cover" data-testid="aspect-ratio">
213
- <img src="test.jpg" alt="Test" />
214
- </AspectRatio>,
215
- );
216
- const element = screen.getByTestId('aspect-ratio');
217
- // fit is structural, not visual — no data-fit attribute or class
218
- // token on the themeable root (only shape is a theming target).
219
- expect(element).not.toHaveAttribute('data-fit');
220
- expect(element.className).not.toContain('cover');
221
- });
222
-
223
- it('emits no marker when fit is omitted (back-compat)', () => {
224
- render(
225
- <AspectRatio ratio={16 / 9} data-testid="aspect-ratio">
226
- <img src="test.jpg" alt="Test" data-testid="image" />
227
- </AspectRatio>,
228
- );
229
- const wrapper = screen.getByTestId('image').parentElement;
230
- expect(wrapper).not.toHaveAttribute('data-astryx-aspect-ratio-override');
231
- // Without the marker, none of the reset.css fit rules can match, so
232
- // existing self-styled children render exactly as before.
233
- expect(screen.getByTestId('image')).not.toHaveAttribute('class');
234
- });
235
-
236
- it('never touches the child element props', () => {
237
- render(
238
- <AspectRatio ratio={16 / 9} fit="cover">
239
- <img
240
- src="test.jpg"
241
- alt="Test"
242
- data-testid="image"
243
- className="consumer-class"
244
- style={{objectFit: 'contain'}}
245
- />
246
- </AspectRatio>,
247
- );
248
- const image = screen.getByTestId('image');
249
- // Fit styling is pure CSS (zero-specificity reset rules); the child's
250
- // own className/style pass through untouched and always win, so
251
- // children that already size themselves keep their behavior.
252
- expect(image.className).toBe('consumer-class');
253
- expect(image.style.objectFit).toBe('contain');
254
- });
255
-
256
- it('centers the child via the wrapper with fit="center"', () => {
257
- render(
258
- <AspectRatio ratio={16 / 9} fit="center">
259
- <img src="test.jpg" alt="Test" data-testid="image" />
260
- </AspectRatio>,
261
- );
262
- const image = screen.getByTestId('image');
263
- expect(image).not.toHaveAttribute('class');
264
- const wrapper = image.parentElement;
265
- expect(wrapper?.className).toContain('childCenter');
266
- });
267
-
268
- it('does not center the wrapper for other fit values', () => {
269
- render(
270
- <AspectRatio ratio={16 / 9} fit="cover">
271
- <img src="test.jpg" alt="Test" data-testid="image" />
272
- </AspectRatio>,
273
- );
274
- const wrapper = screen.getByTestId('image').parentElement;
275
- expect(wrapper?.className).not.toContain('childCenter');
276
- });
277
- });
278
-
279
- describe('reset.css fit baseline rules', () => {
280
- // The cover/contain child sizing ships as zero-specificity baseline
281
- // rules in reset.css keyed on the data-astryx-aspect-ratio-override
282
- // marker the component sets on the child's direct parent. These
283
- // assertions keep the stylesheet in sync with the component contract.
284
- let resetCSS: string;
285
-
286
- beforeAll(async () => {
287
- const fs = await import('fs');
288
- const path = await import('path');
289
- resetCSS = fs.readFileSync(
290
- path.resolve(__dirname, '../reset.css'),
291
- 'utf-8',
292
- );
293
- });
294
-
295
- it('sizes the child to fill the box for cover and contain', () => {
296
- const fillMatch = resetCSS.match(
297
- /:where\(\[data-astryx-aspect-ratio-override="cover"\], \[data-astryx-aspect-ratio-override="contain"\]\)\s*>\s*:where\(\*\)\s*\{([^}]+)\}/,
298
- );
299
- expect(fillMatch).not.toBeNull();
300
- expect(fillMatch![1]).toContain('width: 100%');
301
- expect(fillMatch![1]).toContain('height: 100%');
302
- });
303
-
304
- it('crops media with object-fit: cover for fit="cover"', () => {
305
- const coverMatch = resetCSS.match(
306
- /:where\(\[data-astryx-aspect-ratio-override="cover"\]\)\s*>\s*:where\(img, video\)\s*\{([^}]+)\}/,
307
- );
308
- expect(coverMatch).not.toBeNull();
309
- expect(coverMatch![1]).toContain('object-fit: cover');
310
- });
311
-
312
- it('letterboxes media with object-fit: contain for fit="contain"', () => {
313
- const containMatch = resetCSS.match(
314
- /:where\(\[data-astryx-aspect-ratio-override="contain"\]\)\s*>\s*:where\(img, video\)\s*\{([^}]+)\}/,
315
- );
316
- expect(containMatch).not.toBeNull();
317
- expect(containMatch![1]).toContain('object-fit: contain');
318
- });
319
- });
320
179
  });
@@ -5,13 +5,12 @@
5
5
  /**
6
6
  * @file AspectRatio.tsx
7
7
  * @input Uses React, stylex
8
- * @output Exports AspectRatio component, AspectRatioProps, AspectRatioShape, AspectRatioFit
8
+ * @output Exports AspectRatio component and AspectRatioProps
9
9
  * @position AspectRatio component; maintains a specific aspect ratio for its children
10
10
  *
11
11
  * SYNC: When modified, update these files to stay in sync:
12
12
  * - /packages/core/src/AspectRatio/AspectRatio.doc.mjs
13
13
  * - /packages/core/src/AspectRatio/AspectRatio.test.tsx
14
- * - /packages/core/src/reset.css (AspectRatio fit baseline rules)
15
14
  * - /apps/storybook/stories/AspectRatio.stories.tsx
16
15
  * - /packages/cli/templates/blocks/components/AspectRatio/ (showcase blocks)
17
16
  */
@@ -30,16 +29,6 @@ import {themeProps} from '../utils/themeProps';
30
29
  */
31
30
  export type AspectRatioShape = 'rectangle' | 'ellipse';
32
31
 
33
- /**
34
- * How the child is sized and positioned inside the ratio box.
35
- * - `cover`: the child fills the box; media is cropped to preserve its own
36
- * aspect ratio (`object-fit: cover`).
37
- * - `contain`: the child fills the box; media is letterboxed to stay fully
38
- * visible (`object-fit: contain`).
39
- * - `center`: the child keeps its natural size and sits centered in the box.
40
- */
41
- export type AspectRatioFit = 'cover' | 'contain' | 'center';
42
-
43
32
  export interface AspectRatioProps extends BaseProps<HTMLDivElement> {
44
33
  /** Ref forwarded to the root element */
45
34
  ref?: React.Ref<HTMLDivElement>;
@@ -52,45 +41,20 @@ export interface AspectRatioProps extends BaseProps<HTMLDivElement> {
52
41
  * The shape of the container. Both shapes respect the provided `ratio`.
53
42
  * - `rectangle` (default): a standard rectangular container.
54
43
  * - `ellipse`: clips the container to an ellipse — a circle when `ratio={1}`,
55
- * or an oval at other ratios. Pair with `fit="cover"` so the media fills
56
- * the clipped container.
44
+ * or an oval at other ratios. Pair with a child that fills the container
45
+ * (e.g. an image with `objectFit: 'cover'`).
57
46
  *
58
47
  * @default 'rectangle'
59
48
  *
60
49
  * @example
61
50
  * ```
62
- * <AspectRatio ratio={1} shape="ellipse" fit="cover">
63
- * <img src="avatar.jpg" alt="" />
51
+ * <AspectRatio ratio={1} shape="ellipse">
52
+ * <img src="avatar.jpg" alt="" style={{objectFit: 'cover'}} />
64
53
  * </AspectRatio>
65
54
  * ```
66
55
  */
67
56
  shape?: AspectRatioShape;
68
57
 
69
- /**
70
- * How the child is laid out inside the ratio box, so the child does not
71
- * have to declare `width`/`height`/`objectFit` itself.
72
- * - `cover`: child fills the box; media is cropped (`object-fit: cover`).
73
- * - `contain`: child fills the box; media is letterboxed
74
- * (`object-fit: contain`).
75
- * - `center`: child keeps its natural size, centered in the box.
76
- *
77
- * `cover`/`contain` child sizing ships as zero-specificity baseline rules
78
- * in `reset.css`, keyed on the `data-astryx-aspect-ratio-override`
79
- * attribute the component sets on the child's direct parent. Any styles
80
- * the child sets itself still win, so children that already size
81
- * themselves keep their behavior. When omitted, the child is left
82
- * unstyled (the pre-existing contract). `fit` is structural, not visual,
83
- * so it is not exposed on the theming surface.
84
- *
85
- * @example
86
- * ```
87
- * <AspectRatio ratio={16 / 9} fit="cover">
88
- * <img src="image.jpg" alt="Widescreen image" />
89
- * </AspectRatio>
90
- * ```
91
- */
92
- fit?: AspectRatioFit;
93
-
94
58
  /**
95
59
  * Content to render inside the aspect ratio container.
96
60
  * The child element will be positioned absolutely to fill the container.
@@ -118,16 +82,6 @@ const styles = stylex.create({
118
82
  width: '100%',
119
83
  height: '100%',
120
84
  },
121
- // fit="center" centers the child at its natural size from the wrapper —
122
- // no styles on the child itself. The `cover`/`contain` child sizing can't
123
- // live here (StyleX has no descendant selectors); it ships as baseline
124
- // rules in reset.css keyed on the `data-astryx-aspect-ratio-override`
125
- // attribute the wrapper carries (see below).
126
- childCenter: {
127
- display: 'flex',
128
- alignItems: 'center',
129
- justifyContent: 'center',
130
- },
131
85
  });
132
86
 
133
87
  /**
@@ -137,32 +91,27 @@ const styles = stylex.create({
137
91
  * is positioned absolutely to fill the container, which is useful for images,
138
92
  * videos, embeds, and placeholders.
139
93
  *
140
- * Use `fit` to let the component size the child: `cover`/`contain` stretch
141
- * the child to fill the box (cropping or letterboxing media), `center` keeps
142
- * the child at its natural size. Without `fit`, the child styles itself.
143
- *
144
94
  * Use `shape="ellipse"` to clip the container into an ellipse — a circle at
145
95
  * `ratio={1}` or an oval at other ratios. Both shapes respect the provided
146
96
  * `ratio`.
147
97
  *
148
98
  * @example
149
99
  * ```
150
- * <AspectRatio ratio={16 / 9} fit="cover">
151
- * <img src="image.jpg" alt="Widescreen image" />
100
+ * <AspectRatio ratio={16 / 9}>
101
+ * <img src="image.jpg" alt="Widescreen image" style={{objectFit: 'cover'}} />
152
102
  * </AspectRatio>
153
103
  * ```
154
104
  *
155
105
  * @example
156
106
  * ```
157
- * <AspectRatio ratio={1} shape="ellipse" fit="cover">
158
- * <img src="avatar.jpg" alt="" />
107
+ * <AspectRatio ratio={1} shape="ellipse">
108
+ * <img src="avatar.jpg" alt="" style={{objectFit: 'cover'}} />
159
109
  * </AspectRatio>
160
110
  * ```
161
111
  */
162
112
  export function AspectRatio({
163
113
  ratio,
164
114
  shape = 'rectangle',
165
- fit,
166
115
  children,
167
116
  xstyle,
168
117
  className,
@@ -184,16 +133,7 @@ export function AspectRatio({
184
133
  {...style, aspectRatio: ratio},
185
134
  )}
186
135
  {...props}>
187
- {/* The marker attribute carries the fit value so the reset.css child
188
- sizing can use direct-child selectors on this wrapper — the child's
189
- actual parent — without depending on AspectRatio's internal
190
- structure or on the theming surface (fit is structural, not
191
- themeable). The name is namespaced to avoid collisions. */}
192
- <div
193
- data-astryx-aspect-ratio-override={fit}
194
- {...stylex.props(styles.child, fit === 'center' && styles.childCenter)}>
195
- {children}
196
- </div>
136
+ <div {...stylex.props(styles.child)}>{children}</div>
197
137
  </div>
198
138
  );
199
139
  }
@@ -12,8 +12,4 @@
12
12
  */
13
13
 
14
14
  export {AspectRatio} from './AspectRatio';
15
- export type {
16
- AspectRatioProps,
17
- AspectRatioShape,
18
- AspectRatioFit,
19
- } from './AspectRatio';
15
+ export type {AspectRatioProps, AspectRatioShape} from './AspectRatio';
@@ -106,15 +106,4 @@ export const docsDense = {
106
106
  {guidance: false, description: 'Force a square or custom shape. Avatars are always circular.'},
107
107
  ],
108
108
  },
109
- propDescriptions: {
110
- src: 'primary image source URL',
111
- fallbackSrc: 'fallback image when primary fails',
112
- name: 'user name for initials and alt text',
113
- alt: 'alt text; falls back to name',
114
- size: "avatar size. Named ('tiny', 'xsmall', 'small', 'medium', 'large') or numeric px. Short names 'sm'/'md'/'lg' are NOT valid; use full words.",
115
- status: 'corner content for status indicators',
116
- },
117
- components: [
118
- {name: 'AvatarStatusDot', description: 'size-aware status indicator rendered in the Avatar corner'},
119
- ],
120
109
  };
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
3
  import {describe, it, expect} from 'vitest';
4
- import {render, screen, fireEvent} from '@testing-library/react';
4
+ import {render, screen} from '@testing-library/react';
5
5
  import {Avatar} from './Avatar';
6
6
 
7
7
  describe('Avatar', () => {
@@ -34,35 +34,4 @@ describe('Avatar', () => {
34
34
  // The inner <img> carries an empty alt so it isn't announced separately.
35
35
  expect(innerImg).toHaveAttribute('alt', '');
36
36
  });
37
-
38
- it('retries a new src after a previous src failed to load', () => {
39
- const {rerender} = render(
40
- <Avatar name="Ada" src="https://example.com/broken.jpg" />,
41
- );
42
- const wrapper = screen.getByRole('img', {name: 'Ada'});
43
- fireEvent.error(wrapper.querySelector('img')!);
44
- // Broken image falls back to initials.
45
- expect(wrapper.querySelector('img')).toBeNull();
46
- expect(wrapper).toHaveTextContent('A');
47
-
48
- // A different src must get a fresh load attempt, not the stale error.
49
- rerender(<Avatar name="Ada" src="https://example.com/ada.jpg" />);
50
- const img = wrapper.querySelector('img');
51
- expect(img).not.toBeNull();
52
- expect(img).toHaveAttribute('src', 'https://example.com/ada.jpg');
53
- });
54
-
55
- it('retries a new fallbackSrc after a previous fallbackSrc failed to load', () => {
56
- const {rerender} = render(
57
- <Avatar name="Ada" fallbackSrc="https://example.com/broken.jpg" />,
58
- );
59
- const wrapper = screen.getByRole('img', {name: 'Ada'});
60
- fireEvent.error(wrapper.querySelector('img')!);
61
- expect(wrapper.querySelector('img')).toBeNull();
62
-
63
- rerender(<Avatar name="Ada" fallbackSrc="https://example.com/ada.jpg" />);
64
- const img = wrapper.querySelector('img');
65
- expect(img).not.toBeNull();
66
- expect(img).toHaveAttribute('src', 'https://example.com/ada.jpg');
67
- });
68
37
  });
@@ -63,7 +63,20 @@ type AvatarNamedSize = 'tiny' | 'xsmall' | 'small' | 'medium' | 'large';
63
63
  * Numeric size options (in pixels)
64
64
  */
65
65
  type AvatarNumericSize =
66
- 16 | 20 | 24 | 32 | 36 | 40 | 48 | 60 | 64 | 72 | 96 | 128 | 144 | 180;
66
+ | 16
67
+ | 20
68
+ | 24
69
+ | 32
70
+ | 36
71
+ | 40
72
+ | 48
73
+ | 60
74
+ | 64
75
+ | 72
76
+ | 96
77
+ | 128
78
+ | 144
79
+ | 180;
67
80
 
68
81
  /**
69
82
  * Avatar size - can be a named size or a specific pixel value
@@ -276,16 +289,11 @@ export function Avatar({
276
289
  ref,
277
290
  ...props
278
291
  }: AvatarProps) {
279
- // Track the exact src that failed (rather than a boolean) so a changed
280
- // src/fallbackSrc gets a fresh load attempt instead of the stale error.
281
- const [erroredSrc, setErroredSrc] = useState<string | undefined>(undefined);
282
- const [erroredFallbackSrc, setErroredFallbackSrc] = useState<
283
- string | undefined
284
- >(undefined);
292
+ const [imageError, setImageError] = useState(false);
293
+ const [fallbackError, setFallbackError] = useState(false);
285
294
 
286
- const showImage = src && erroredSrc !== src;
287
- const showFallbackImage =
288
- !showImage && fallbackSrc && erroredFallbackSrc !== fallbackSrc;
295
+ const showImage = src && !imageError;
296
+ const showFallbackImage = !showImage && fallbackSrc && !fallbackError;
289
297
  const showInitials = !showImage && !showFallbackImage && name;
290
298
  const showIcon = !showImage && !showFallbackImage && !name;
291
299
 
@@ -324,7 +332,7 @@ export function Avatar({
324
332
  <img
325
333
  src={src}
326
334
  alt=""
327
- onError={() => setErroredSrc(src)}
335
+ onError={() => setImageError(true)}
328
336
  {...stylex.props(styles.image)}
329
337
  />
330
338
  )}
@@ -332,7 +340,7 @@ export function Avatar({
332
340
  <img
333
341
  src={fallbackSrc}
334
342
  alt=""
335
- onError={() => setErroredFallbackSrc(fallbackSrc)}
343
+ onError={() => setFallbackError(true)}
336
344
  {...stylex.props(styles.image)}
337
345
  />
338
346
  )}
@@ -24,7 +24,6 @@ export const docs = {
24
24
  theming: {
25
25
  targets: [
26
26
  {className: 'astryx-avatar-group', visualProps: ['size']},
27
- {className: 'astryx-avatar-group-overflow'},
28
27
  ],
29
28
  },
30
29
  description: 'Stacked avatar display with overlapping layout and optional overflow indicator. Children are Avatar elements.',
@@ -113,7 +113,6 @@ export const docs = {
113
113
  targets: [
114
114
  {className: 'astryx-banner', visualProps: ['container', 'status']},
115
115
  {className: 'astryx-banner-icon', visualProps: ['status']},
116
- {className: 'astryx-banner-content', visualProps: ['container', 'status']},
117
116
  ],
118
117
  vars: [
119
118
  {name: '--_banner-radius', description: 'Border radius (card container only)', default: 'var(--radius-container)', private: true},
@@ -181,13 +180,6 @@ export const docsZh = {
181
180
  'status',
182
181
  ],
183
182
  },
184
- {
185
- className: 'astryx-banner-content',
186
- visualProps: [
187
- 'container',
188
- 'status',
189
- ],
190
- },
191
183
  ],
192
184
  vars: [
193
185
  {name: '--_banner-radius', description: 'Border radius (card container only)', default: 'var(--radius-container)', private: true},
@@ -270,44 +270,6 @@ describe('Banner', () => {
270
270
  expect(expandIndex).toBeLessThan(dismissIndex);
271
271
  });
272
272
 
273
- it('links the expand toggle to its content region via aria-controls', () => {
274
- render(
275
- <Banner status="info" title="Controls Test" defaultIsExpanded>
276
- <div data-testid="region-content">Region content</div>
277
- </Banner>,
278
- );
279
-
280
- const toggle = screen.getByRole('button', {name: 'Collapse'});
281
- const controlsId = toggle.getAttribute('aria-controls');
282
- // aria-controls must be present and point at the real content region.
283
- expect(controlsId).toBeTruthy();
284
- const region = document.getElementById(controlsId as string);
285
- expect(region).not.toBeNull();
286
- expect(region).toContainElement(screen.getByTestId('region-content'));
287
- });
288
-
289
- it('sets aria-controls only while the content region is mounted', async () => {
290
- const user = userEvent.setup();
291
- render(
292
- <Banner status="info" title="Controls Toggle">
293
- <div data-testid="region-content">Region content</div>
294
- </Banner>,
295
- );
296
-
297
- // Collapsed: the region is unmounted, so no dangling aria-controls target.
298
- const collapsedToggle = screen.getByRole('button', {name: 'Expand'});
299
- expect(collapsedToggle).not.toHaveAttribute('aria-controls');
300
-
301
- // Expanded: aria-controls resolves to the mounted region with the children.
302
- await user.click(collapsedToggle);
303
- const expandedToggle = screen.getByRole('button', {name: 'Collapse'});
304
- const controlsId = expandedToggle.getAttribute('aria-controls');
305
- expect(controlsId).toBeTruthy();
306
- const region = document.getElementById(controlsId as string);
307
- expect(region).not.toBeNull();
308
- expect(region).toContainElement(screen.getByTestId('region-content'));
309
- });
310
-
311
273
  it('does not render content area when no children', () => {
312
274
  const {container} = render(<Banner status="info" title="No Children" />);
313
275
  const root = container.firstElementChild;
@@ -31,7 +31,7 @@
31
31
  * - /packages/cli/templates/blocks/components/Banner/ (showcase blocks)
32
32
  */
33
33
 
34
- import {useId, useState, type ReactNode} from 'react';
34
+ import {useState, type ReactNode} from 'react';
35
35
  import * as stylex from '@stylexjs/stylex';
36
36
  import type {BaseProps} from '../BaseProps';
37
37
  import {Button} from '../Button';
@@ -387,11 +387,6 @@ export function Banner({
387
387
  }: BannerProps) {
388
388
  const [isDismissed, setIsDismissed] = useState(false);
389
389
  const [isExpanded, setIsExpanded] = useState(defaultIsExpanded);
390
- // Links the expand/collapse toggle to the content region it shows/hides so
391
- // assistive tech can move from the button to its controlled content
392
- // (disclosure pattern). The region is conditionally rendered, so aria-controls
393
- // below is set only while it's mounted to avoid a dangling reference.
394
- const contentId = useId();
395
390
  const defaultIconName = defaultIconNames[status];
396
391
  const role = statusRole[status];
397
392
  const iconColor = statusIconColor[status];
@@ -482,7 +477,6 @@ export function Banner({
482
477
  }
483
478
  onClick={handleToggleExpand}
484
479
  aria-expanded={isExpanded}
485
- aria-controls={showContent ? contentId : undefined}
486
480
  isIconOnly
487
481
  />
488
482
  )}
@@ -503,7 +497,6 @@ export function Banner({
503
497
  {/* Content area: collapsible card background — theme target ('banner-content') */}
504
498
  {showContent && (
505
499
  <div
506
- id={contentId}
507
500
  {...mergeProps(
508
501
  themeProps('banner-content', {container, status}),
509
502
  stylex.props(styles.contentArea, isCard && styles.contentAreaCard),
@@ -19,7 +19,7 @@ export const docs = {
19
19
  {guidance: false, description: 'Disable large blocks of dates without context. The user should understand why dates are unavailable.'},
20
20
  ],
21
21
  anatomy: [
22
- {name: 'Month header', required: true, description: 'The month name and year with navigation arrows to move between months. The arrows mirror automatically under dir="rtl".'},
22
+ {name: 'Month header', required: true, description: 'The month name and year with navigation arrows to move between months.'},
23
23
  {name: 'Day grid', required: true, description: 'A 7-column grid of days with column headers for the day names.'},
24
24
  {name: 'Selected day', required: false, description: 'The currently selected date, highlighted. In range mode, the start and end dates plus the days between them.'},
25
25
  {name: 'Today marker', required: false, description: 'A subtle indicator on the current date for orientation.'},