@dxos/react-ui 0.8.4-main.3eb6e50203 → 0.8.4-main.3fbcb4aa9b

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 (353) hide show
  1. package/dist/lib/browser/{chunk-6DTBPJE4.mjs → chunk-BDBC6H6V.mjs} +182 -108
  2. package/dist/lib/browser/chunk-BDBC6H6V.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +2961 -2056
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +70 -41
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/browser/translations.mjs +18 -0
  9. package/dist/lib/browser/translations.mjs.map +7 -0
  10. package/dist/lib/node-esm/{chunk-JKHQSGNU.mjs → chunk-3JSJK2ZY.mjs} +182 -108
  11. package/dist/lib/node-esm/chunk-3JSJK2ZY.mjs.map +7 -0
  12. package/dist/lib/node-esm/index.mjs +2961 -2056
  13. package/dist/lib/node-esm/index.mjs.map +4 -4
  14. package/dist/lib/node-esm/meta.json +1 -1
  15. package/dist/lib/node-esm/testing/index.mjs +70 -41
  16. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  17. package/dist/lib/node-esm/translations.mjs +20 -0
  18. package/dist/lib/node-esm/translations.mjs.map +7 -0
  19. package/dist/types/src/components/Avatars/Avatar.d.ts +1 -1
  20. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
  21. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  22. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
  23. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  24. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  25. package/dist/types/src/components/Button/Button.d.ts +2 -2
  26. package/dist/types/src/components/Button/Button.d.ts.map +1 -1
  27. package/dist/types/src/components/Button/Button.stories.d.ts +1 -1
  28. package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -1
  29. package/dist/types/src/components/Button/IconButton.d.ts +1 -0
  30. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -1
  31. package/dist/types/src/components/Button/IconButton.stories.d.ts +3 -0
  32. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -1
  33. package/dist/types/src/components/Button/Toggle.d.ts +2 -2
  34. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -1
  35. package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -1
  36. package/dist/types/src/components/Button/ToggleGroup.d.ts +6 -6
  37. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -1
  38. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +2 -2
  39. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -1
  40. package/dist/types/src/components/Card/Card.d.ts +124 -0
  41. package/dist/types/src/components/Card/Card.d.ts.map +1 -0
  42. package/dist/types/src/components/Card/Card.stories.d.ts +21 -0
  43. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
  44. package/dist/types/src/components/Card/index.d.ts +2 -0
  45. package/dist/types/src/components/Card/index.d.ts.map +1 -0
  46. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
  47. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  48. package/dist/types/src/components/Clipboard/index.d.ts +10 -1
  49. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  50. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  51. package/dist/types/src/components/Dialog/AlertDialog.d.ts +43 -23
  52. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -1
  53. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -1
  54. package/dist/types/src/components/Dialog/Dialog.d.ts +48 -30
  55. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
  56. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +6 -8
  57. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
  58. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  59. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
  60. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  61. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
  62. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
  63. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +19 -0
  64. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
  65. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
  66. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
  67. package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
  68. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
  69. package/dist/types/src/components/Focus/Focus.d.ts +36 -0
  70. package/dist/types/src/components/Focus/Focus.d.ts.map +1 -0
  71. package/dist/types/src/components/Focus/Focus.stories.d.ts +9 -0
  72. package/dist/types/src/components/Focus/Focus.stories.d.ts.map +1 -0
  73. package/dist/types/src/components/Focus/index.d.ts +2 -0
  74. package/dist/types/src/components/Focus/index.d.ts.map +1 -0
  75. package/dist/types/src/components/Icon/Icon.d.ts +4 -0
  76. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  77. package/dist/types/src/components/Icon/Icon.stories.d.ts +11 -3
  78. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -1
  79. package/dist/types/src/components/Image/Image.d.ts +15 -0
  80. package/dist/types/src/components/Image/Image.d.ts.map +1 -0
  81. package/dist/types/src/components/Image/Image.stories.d.ts +34 -0
  82. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
  83. package/dist/types/src/components/Image/index.d.ts +2 -0
  84. package/dist/types/src/components/Image/index.d.ts.map +1 -0
  85. package/dist/types/src/components/Input/Input.d.ts +16 -22
  86. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  87. package/dist/types/src/components/Input/Input.stories.d.ts +6 -6
  88. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  89. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  90. package/dist/types/src/components/List/List.d.ts +5 -3
  91. package/dist/types/src/components/List/List.d.ts.map +1 -1
  92. package/dist/types/src/components/List/List.stories.d.ts +3 -1
  93. package/dist/types/src/components/List/List.stories.d.ts.map +1 -1
  94. package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -1
  95. package/dist/types/src/components/List/Tree.d.ts +2 -2
  96. package/dist/types/src/components/List/Tree.d.ts.map +1 -1
  97. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -1
  98. package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -1
  99. package/dist/types/src/components/List/Treegrid.d.ts +5 -9
  100. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -1
  101. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -1
  102. package/dist/types/src/components/Main/Main.d.ts +8 -4
  103. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  104. package/dist/types/src/components/Main/Main.stories.d.ts +0 -3
  105. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  106. package/dist/types/src/components/Main/useSwipeToDismiss.d.ts.map +1 -1
  107. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -1
  108. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -1
  109. package/dist/types/src/components/Menu/DropdownMenu.d.ts +58 -49
  110. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -1
  111. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +14 -1
  112. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -1
  113. package/dist/types/src/components/Message/Message.d.ts +1 -1
  114. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  115. package/dist/types/src/components/Message/Message.stories.d.ts +4 -5
  116. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  117. package/dist/types/src/components/Popover/Popover.d.ts +39 -22
  118. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  119. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  120. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +12 -11
  121. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  122. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +21 -10
  123. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  124. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +42 -13
  125. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
  126. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +9 -5
  127. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -1
  128. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  129. package/dist/types/src/components/Select/Select.stories.d.ts +2 -2
  130. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  131. package/dist/types/src/components/Separator/Separator.d.ts +3 -3
  132. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
  133. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -1
  134. package/dist/types/src/components/Splitter/Splitter.d.ts +23 -15
  135. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -1
  136. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -1
  137. package/dist/types/src/components/Status/Status.d.ts +3 -4
  138. package/dist/types/src/components/Status/Status.d.ts.map +1 -1
  139. package/dist/types/src/components/Status/Status.stories.d.ts +4 -2
  140. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  141. package/dist/types/src/components/Tag/Tag.stories.d.ts +0 -5
  142. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  143. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +1 -1
  144. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  145. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts +12 -0
  146. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
  147. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +54 -55
  148. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  149. package/dist/types/src/components/ThemeProvider/index.d.ts +1 -1
  150. package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -1
  151. package/dist/types/src/components/Toast/Toast.d.ts +16 -16
  152. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  153. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  154. package/dist/types/src/components/Toolbar/Toolbar.d.ts +32 -15
  155. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  156. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  157. package/dist/types/src/components/Tooltip/Tooltip.d.ts +10 -10
  158. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  159. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +2 -2
  160. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  161. package/dist/types/src/components/index.d.ts +7 -4
  162. package/dist/types/src/components/index.d.ts.map +1 -1
  163. package/dist/types/src/exemplars/generics.stories.d.ts +8 -6
  164. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -1
  165. package/dist/types/src/exemplars/slot.stories.d.ts +1 -0
  166. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -1
  167. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -1
  168. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  169. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  170. package/dist/types/src/hooks/index.d.ts +1 -0
  171. package/dist/types/src/hooks/index.d.ts.map +1 -1
  172. package/dist/types/src/hooks/useDensityContext.d.ts +1 -1
  173. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  174. package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
  175. package/dist/types/src/hooks/useIconHref.d.ts.map +1 -1
  176. package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
  177. package/dist/types/src/hooks/useSafeCollisionPadding.d.ts.map +1 -1
  178. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
  179. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  180. package/dist/types/src/playground/Custom.stories.d.ts +1 -1
  181. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  182. package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
  183. package/dist/types/src/primitives/Column/Column.d.ts +33 -0
  184. package/dist/types/src/primitives/Column/Column.d.ts.map +1 -0
  185. package/dist/types/src/primitives/Column/Column.stories.d.ts +25 -0
  186. package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -0
  187. package/dist/types/src/primitives/Column/index.d.ts +2 -0
  188. package/dist/types/src/primitives/Column/index.d.ts.map +1 -0
  189. package/dist/types/src/primitives/Container/Container.d.ts +6 -22
  190. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -1
  191. package/dist/types/src/primitives/Container/Container.stories.d.ts +2 -7
  192. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -1
  193. package/dist/types/src/primitives/Container/index.d.ts +0 -1
  194. package/dist/types/src/primitives/Container/index.d.ts.map +1 -1
  195. package/dist/types/src/primitives/Flex/Flex.d.ts +8 -5
  196. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -1
  197. package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
  198. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
  199. package/dist/types/src/primitives/Grid/Grid.d.ts +10 -0
  200. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
  201. package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
  202. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
  203. package/dist/types/src/primitives/Grid/index.d.ts +2 -0
  204. package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
  205. package/dist/types/src/primitives/Panel/Panel.d.ts +35 -0
  206. package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -0
  207. package/dist/types/src/primitives/Panel/Panel.stories.d.ts +6 -0
  208. package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -0
  209. package/dist/types/src/primitives/Panel/index.d.ts +2 -0
  210. package/dist/types/src/primitives/Panel/index.d.ts.map +1 -0
  211. package/dist/types/src/primitives/index.d.ts +3 -0
  212. package/dist/types/src/primitives/index.d.ts.map +1 -1
  213. package/dist/types/src/testing/Loading.d.ts +9 -0
  214. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  215. package/dist/types/src/testing/decorators/withLayout.d.ts +1 -1
  216. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
  217. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -1
  218. package/dist/types/src/testing/decorators/withTheme.d.ts +1 -1
  219. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  220. package/dist/types/src/testing/index.d.ts +1 -0
  221. package/dist/types/src/testing/index.d.ts.map +1 -1
  222. package/dist/types/src/translations.d.ts +11 -0
  223. package/dist/types/src/translations.d.ts.map +1 -0
  224. package/dist/types/src/util/usePx.d.ts.map +1 -1
  225. package/dist/types/tsconfig.tsbuildinfo +1 -1
  226. package/package.json +33 -26
  227. package/src/components/Avatars/Avatar.stories.tsx +5 -7
  228. package/src/components/Avatars/Avatar.tsx +5 -6
  229. package/src/components/Avatars/AvatarGroup.stories.tsx +0 -1
  230. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +1 -2
  231. package/src/components/Breadcrumb/Breadcrumb.tsx +10 -10
  232. package/src/components/Button/Button.stories.tsx +1 -2
  233. package/src/components/Button/Button.tsx +11 -19
  234. package/src/components/Button/IconButton.stories.tsx +6 -4
  235. package/src/components/Button/IconButton.tsx +3 -4
  236. package/src/components/Button/Toggle.stories.tsx +0 -1
  237. package/src/components/Button/Toggle.tsx +4 -4
  238. package/src/components/Button/ToggleGroup.stories.tsx +0 -1
  239. package/src/components/Button/ToggleGroup.tsx +12 -16
  240. package/src/components/Card/Card.stories.tsx +151 -0
  241. package/src/components/Card/Card.tsx +512 -0
  242. package/src/components/Card/index.ts +5 -0
  243. package/src/components/Clipboard/CopyButton.tsx +6 -7
  244. package/src/components/Dialog/AlertDialog.stories.tsx +14 -15
  245. package/src/components/Dialog/AlertDialog.tsx +123 -77
  246. package/src/components/Dialog/Dialog.stories.tsx +90 -14
  247. package/src/components/Dialog/Dialog.tsx +105 -104
  248. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +45 -0
  249. package/src/components/ErrorFallback/ErrorFallback.tsx +70 -0
  250. package/src/components/ErrorFallback/ErrorStack.tsx +114 -0
  251. package/src/components/ErrorFallback/ThrowError.tsx +37 -0
  252. package/src/components/ErrorFallback/index.ts +9 -0
  253. package/src/components/Focus/AUDIT.md +43 -0
  254. package/src/components/Focus/Focus.stories.tsx +230 -0
  255. package/src/components/Focus/Focus.tsx +201 -0
  256. package/src/components/Focus/index.ts +5 -0
  257. package/src/components/Icon/Icon.stories.tsx +43 -13
  258. package/src/components/Icon/Icon.tsx +14 -3
  259. package/src/components/Image/Image.stories.tsx +86 -0
  260. package/src/components/Image/Image.tsx +246 -0
  261. package/src/components/Image/index.ts +5 -0
  262. package/src/components/Input/Input.stories.tsx +17 -38
  263. package/src/components/Input/Input.tsx +20 -50
  264. package/src/components/Link/Link.stories.tsx +0 -1
  265. package/src/components/Link/Link.tsx +2 -2
  266. package/src/components/List/List.stories.tsx +14 -22
  267. package/src/components/List/List.tsx +11 -9
  268. package/src/components/List/ListDropIndicator.tsx +7 -8
  269. package/src/components/List/Tree.stories.tsx +4 -5
  270. package/src/components/List/Tree.tsx +0 -1
  271. package/src/components/List/TreeDropIndicator.tsx +6 -6
  272. package/src/components/List/Treegrid.stories.tsx +27 -28
  273. package/src/components/List/Treegrid.tsx +20 -20
  274. package/src/components/Main/Main.stories.tsx +3 -7
  275. package/src/components/Main/Main.tsx +13 -14
  276. package/src/components/Menu/ContextMenu.stories.tsx +0 -1
  277. package/src/components/Menu/ContextMenu.tsx +3 -3
  278. package/src/components/Menu/DropdownMenu.stories.tsx +0 -1
  279. package/src/components/Menu/DropdownMenu.tsx +51 -45
  280. package/src/components/Message/Message.stories.tsx +25 -11
  281. package/src/components/Message/Message.tsx +30 -15
  282. package/src/components/Popover/Popover.stories.tsx +5 -6
  283. package/src/components/Popover/Popover.tsx +59 -56
  284. package/src/components/ScrollArea/ScrollArea.stories.tsx +98 -39
  285. package/src/components/ScrollArea/ScrollArea.tsx +45 -25
  286. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +46 -25
  287. package/src/components/ScrollContainer/ScrollContainer.tsx +199 -92
  288. package/src/components/Select/Select.stories.tsx +5 -6
  289. package/src/components/Select/Select.tsx +2 -2
  290. package/src/components/Separator/Separator.tsx +4 -7
  291. package/src/components/Skeleton/Skeleton.stories.tsx +12 -13
  292. package/src/components/Splitter/Splitter.stories.tsx +47 -37
  293. package/src/components/Splitter/Splitter.tsx +44 -40
  294. package/src/components/Status/Status.stories.tsx +19 -16
  295. package/src/components/Status/Status.tsx +8 -5
  296. package/src/components/Tag/Tag.stories.tsx +3 -9
  297. package/src/components/Tag/Tag.tsx +2 -2
  298. package/src/components/ThemeProvider/ThemeProvider.stories.tsx +31 -0
  299. package/src/components/ThemeProvider/ThemeProvider.tsx +7 -6
  300. package/src/components/ThemeProvider/index.ts +1 -1
  301. package/src/components/Toast/Toast.stories.tsx +0 -1
  302. package/src/components/Toast/Toast.tsx +22 -37
  303. package/src/components/Toolbar/Toolbar.stories.tsx +0 -1
  304. package/src/components/Toolbar/Toolbar.tsx +173 -29
  305. package/src/components/Tooltip/Tooltip.stories.tsx +18 -17
  306. package/src/components/Tooltip/Tooltip.tsx +16 -16
  307. package/src/components/index.ts +8 -5
  308. package/src/exemplars/generics.stories.tsx +12 -15
  309. package/src/exemplars/slot.stories.tsx +68 -61
  310. package/src/exemplars/tabster.stories.tsx +5 -5
  311. package/src/exemplars/virtualizer.stories.tsx +136 -0
  312. package/src/hooks/index.ts +1 -0
  313. package/src/hooks/useDensityContext.ts +2 -2
  314. package/src/playground/Controls.stories.tsx +0 -6
  315. package/src/playground/Custom.stories.tsx +13 -16
  316. package/src/playground/Typography.stories.tsx +1 -1
  317. package/src/primitives/Column/AUDIT.md +148 -0
  318. package/src/primitives/Column/Column.stories.tsx +181 -0
  319. package/src/primitives/Column/Column.tsx +165 -0
  320. package/src/primitives/Column/index.ts +5 -0
  321. package/src/primitives/Container/Container.stories.tsx +13 -51
  322. package/src/primitives/Container/Container.tsx +14 -74
  323. package/src/primitives/Container/index.ts +0 -1
  324. package/src/primitives/Flex/Flex.stories.tsx +57 -0
  325. package/src/primitives/Flex/Flex.tsx +20 -19
  326. package/src/primitives/Grid/Grid.stories.tsx +56 -0
  327. package/src/primitives/Grid/Grid.tsx +30 -0
  328. package/src/primitives/Grid/index.ts +5 -0
  329. package/src/primitives/Panel/Panel.stories.tsx +68 -0
  330. package/src/primitives/Panel/Panel.tsx +120 -0
  331. package/src/primitives/Panel/index.ts +5 -0
  332. package/src/primitives/index.ts +3 -0
  333. package/src/testing/Loading.tsx +47 -0
  334. package/src/testing/decorators/withLayout.tsx +15 -11
  335. package/src/testing/decorators/withLayoutVariants.tsx +18 -21
  336. package/src/testing/decorators/withTheme.tsx +10 -7
  337. package/src/testing/index.ts +2 -0
  338. package/src/translations.ts +19 -0
  339. package/src/util/usePx.ts +1 -0
  340. package/dist/lib/browser/chunk-6DTBPJE4.mjs.map +0 -7
  341. package/dist/lib/node-esm/chunk-JKHQSGNU.mjs.map +0 -7
  342. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -22
  343. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
  344. package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
  345. package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
  346. package/dist/types/src/primitives/Container/Layout.d.ts +0 -18
  347. package/dist/types/src/primitives/Container/Layout.d.ts.map +0 -1
  348. package/dist/types/src/primitives/Container/Layout.stories.d.ts +0 -10
  349. package/dist/types/src/primitives/Container/Layout.stories.d.ts.map +0 -1
  350. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -57
  351. package/src/components/AnchoredOverflow/index.ts +0 -5
  352. package/src/primitives/Container/Layout.stories.tsx +0 -57
  353. package/src/primitives/Container/Layout.tsx +0 -61
@@ -3,51 +3,61 @@
3
3
  //
4
4
 
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
- import React, { useState } from 'react';
6
+ import React, { type ComponentPropsWithoutRef, forwardRef, useState } from 'react';
7
7
 
8
- import { Layout } from '../../primitives';
8
+ import { Panel } from '../../primitives';
9
9
  import { withLayout, withTheme } from '../../testing';
10
10
  import { ScrollArea } from '../ScrollArea';
11
11
  import { Toolbar } from '../Toolbar';
12
-
13
12
  import { Splitter, type SplitterRootProps } from './Splitter';
14
13
 
15
- const Panel = ({ label }: { label: string }) => {
16
- return (
17
- <Layout.Main toolbar>
18
- <Toolbar.Root>{label}</Toolbar.Root>
19
- <ScrollArea.Root orientation='vertical'>
20
- <ScrollArea.Viewport>
21
- {Array.from({ length: 100 }).map((_, i) => (
22
- <div key={i} className='p-1'>
23
- {label}-{i}
24
- </div>
25
- ))}
26
- </ScrollArea.Viewport>
27
- </ScrollArea.Root>
28
- </Layout.Main>
29
- );
30
- };
14
+ const PanelContent = forwardRef<HTMLDivElement, ComponentPropsWithoutRef<'div'> & { label: string }>(
15
+ ({ label, ...props }, forwardedRef) => (
16
+ <Panel.Root {...props} ref={forwardedRef}>
17
+ <Panel.Toolbar asChild>
18
+ <Toolbar.Root>{label}</Toolbar.Root>
19
+ </Panel.Toolbar>
20
+ <Panel.Content asChild>
21
+ <ScrollArea.Root orientation='vertical'>
22
+ <ScrollArea.Viewport>
23
+ {Array.from({ length: 100 }).map((_, i) => (
24
+ <div key={i} className='p-1'>
25
+ {label}-{i}
26
+ </div>
27
+ ))}
28
+ </ScrollArea.Viewport>
29
+ </ScrollArea.Root>
30
+ </Panel.Content>
31
+ </Panel.Root>
32
+ ),
33
+ );
31
34
 
32
35
  const DefaultStory = (props: SplitterRootProps) => {
33
- const [mode, setMode] = useState(props.mode ?? 'both');
36
+ const [mode, setMode] = useState(props.mode ?? 'split');
37
+ const [ratio, setRatio] = useState(props.ratio ?? 0.5);
34
38
 
35
39
  return (
36
- <div className='grid grid-rows-[min-content_1fr] bs-full overflow-hidden'>
37
- <Toolbar.Root>
38
- <Toolbar.Button onClick={() => setMode('upper')}>A</Toolbar.Button>
39
- <Toolbar.Button onClick={() => setMode('both')}>A + B</Toolbar.Button>
40
- <Toolbar.Button onClick={() => setMode('lower')}>B</Toolbar.Button>
41
- </Toolbar.Root>
42
- <Splitter.Root mode={mode} ratio={props.ratio} classNames='divide-y divide-subduedSeparator'>
43
- <Splitter.Panel position='upper'>
44
- <Panel label='A' />
45
- </Splitter.Panel>
46
- <Splitter.Panel position='lower'>
47
- <Panel label='B' />
48
- </Splitter.Panel>
49
- </Splitter.Root>
50
- </div>
40
+ <Panel.Root>
41
+ <Panel.Toolbar asChild>
42
+ <Toolbar.Root>
43
+ <Toolbar.Button onClick={() => setMode('top')}>A</Toolbar.Button>
44
+ <Toolbar.Button onClick={() => setMode('split')}>A+B</Toolbar.Button>
45
+ <Toolbar.Button onClick={() => setMode('bottom')}>B</Toolbar.Button>
46
+ <Toolbar.Separator />
47
+ <Toolbar.Button onClick={() => setRatio((r) => 1 - r)}>Toggle</Toolbar.Button>
48
+ </Toolbar.Root>
49
+ </Panel.Toolbar>
50
+ <Panel.Content asChild>
51
+ <Splitter.Root mode={mode} ratio={ratio}>
52
+ <Splitter.Panel asChild position='top'>
53
+ <PanelContent label='A' />
54
+ </Splitter.Panel>
55
+ <Splitter.Panel asChild position='bottom'>
56
+ <PanelContent label='B' />
57
+ </Splitter.Panel>
58
+ </Splitter.Root>
59
+ </Panel.Content>
60
+ </Panel.Root>
51
61
  );
52
62
  };
53
63
 
@@ -67,7 +77,7 @@ type Story = StoryObj<SplitterRootProps>;
67
77
 
68
78
  export const Default: Story = {
69
79
  args: {
70
- mode: 'both',
71
- ratio: 0.5,
80
+ mode: 'split',
81
+ ratio: 0.4,
72
82
  },
73
83
  };
@@ -3,22 +3,23 @@
3
3
  //
4
4
 
5
5
  import { createContextScope } from '@radix-ui/react-context';
6
- import React, { type ComponentPropsWithoutRef, forwardRef } from 'react';
6
+ import { Primitive } from '@radix-ui/react-primitive';
7
+ import { Slot } from '@radix-ui/react-slot';
8
+ import React from 'react';
7
9
 
8
- import { mx } from '@dxos/ui-theme';
10
+ import { composableProps, slottable } from '@dxos/ui-theme';
9
11
 
10
- import { type ThemedClassName } from '../../util';
12
+ import { useThemeContext } from '../../hooks';
13
+ import { ThemedClassName } from '../../util';
11
14
 
12
15
  type ScopedProps<P> = P & { __scopeSplitter?: any };
13
16
 
14
- // TODO(burdon): Generalize styles.
15
- // TODO(burdon): Enalbe resize.
16
17
  // TODO(burdon): Generalize horizontal/vertical and change to start/end.
17
- type Mode = 'upper' | 'lower' | 'both';
18
+ type Mode = 'top' | 'bottom' | 'split';
18
19
 
19
20
  type SplitterContextValue = {
20
21
  mode: Mode;
21
- ratio: number;
22
+ ratio?: number;
22
23
  transition: number;
23
24
  };
24
25
 
@@ -34,23 +35,22 @@ const [SplitterProvider, useSplitterContext] = createSplitterContext<SplitterCon
34
35
 
35
36
  const ROOT_NAME = 'Splitter.Root';
36
37
 
37
- type RootProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & Partial<SplitterContextValue>;
38
+ type RootOwnProps = Partial<SplitterContextValue>;
39
+
40
+ type RootProps = RootOwnProps;
41
+
42
+ const Root = slottable<HTMLDivElement, RootOwnProps>(
43
+ ({ asChild, mode = 'top', ratio = 0.5, transition = 250, children, ...props }, forwardedRef) => {
44
+ const { tx } = useThemeContext();
45
+ const { __scopeSplitter, ...rest } = props as ScopedProps<typeof props>;
46
+ const { className, ...restProps } = composableProps(rest);
47
+ const Comp = asChild ? Slot : Primitive.div;
38
48
 
39
- const Root = forwardRef<HTMLDivElement, ScopedProps<RootProps>>(
40
- (
41
- { __scopeSplitter, classNames, mode = 'upper', ratio = 0.5, transition = 250, children, ...rootProps },
42
- forwardedRef,
43
- ) => {
44
49
  return (
45
50
  <SplitterProvider scope={__scopeSplitter} mode={mode} ratio={ratio} transition={transition}>
46
- <div
47
- role='none'
48
- {...rootProps}
49
- ref={forwardedRef}
50
- className={mx('relative bs-full overflow-hidden', classNames)}
51
- >
51
+ <Comp {...restProps} ref={forwardedRef} className={tx('splitter.root', {}, className)}>
52
52
  {children}
53
- </div>
53
+ </Comp>
54
54
  </SplitterProvider>
55
55
  );
56
56
  },
@@ -64,45 +64,49 @@ Root.displayName = ROOT_NAME;
64
64
 
65
65
  const PANEL_NAME = 'Splitter.Panel';
66
66
 
67
- interface PanelProps extends ThemedClassName<ComponentPropsWithoutRef<'div'>> {
68
- position: 'upper' | 'lower';
69
- }
67
+ type PanelOwnProps = ThemedClassName<{
68
+ position: 'top' | 'bottom';
69
+ }>;
70
70
 
71
- const Panel = forwardRef<HTMLDivElement, ScopedProps<PanelProps>>(
72
- ({ __scopeSplitter, classNames, children, position, style, ...panelProps }, forwardedRef) => {
73
- const context = useSplitterContext(PANEL_NAME, __scopeSplitter);
74
- const { mode, ratio, transition } = context;
71
+ type PanelProps = PanelOwnProps;
75
72
 
76
- // Calculate position and height based on mode and ratio.
77
- const isUpper = position === 'upper';
78
- const top = isUpper ? '0%' : mode === 'upper' ? '100%' : mode === 'lower' ? '0%' : `${ratio * 100}%`;
73
+ const Panel = slottable<HTMLDivElement, PanelOwnProps>(
74
+ ({ classNames, asChild, children, position, style, ...props }, forwardedRef) => {
75
+ const { tx } = useThemeContext();
76
+ const { __scopeSplitter, ...rest } = props as ScopedProps<typeof props>;
77
+ const Comp = asChild ? Slot : Primitive.div;
78
+ const { mode, ratio = 0.5, transition } = useSplitterContext(PANEL_NAME, __scopeSplitter);
79
+ const { className, ...restProps } = composableProps(rest);
79
80
 
80
- const height = isUpper
81
- ? mode === 'upper'
81
+ // Calculate position and height based on mode and ratio.
82
+ const isTopPanel = position === 'top';
83
+ const topOffset = isTopPanel ? '0%' : mode === 'top' ? '100%' : mode === 'bottom' ? '0%' : `${ratio * 100}%`;
84
+ const height = isTopPanel
85
+ ? mode === 'top'
82
86
  ? '100%'
83
- : mode === 'lower'
87
+ : mode === 'bottom'
84
88
  ? '0%'
85
89
  : `${ratio * 100}%`
86
- : mode === 'lower'
90
+ : mode === 'bottom'
87
91
  ? '100%'
88
- : mode === 'upper'
92
+ : mode === 'top'
89
93
  ? '0%'
90
94
  : `${(1 - ratio) * 100}%`;
91
95
 
92
96
  return (
93
- <div
94
- {...panelProps}
97
+ <Comp
98
+ {...restProps}
95
99
  ref={forwardedRef}
96
- className={mx('absolute inset-inline-0 flex flex-col overflow-hidden', classNames)}
100
+ className={tx('splitter.panel', {}, className)}
97
101
  style={{
98
- top,
102
+ top: topOffset,
99
103
  height,
100
104
  transition: `top ${transition}ms, height ${transition}ms ease-out`,
101
105
  ...style,
102
106
  }}
103
107
  >
104
108
  {children}
105
- </div>
109
+ </Comp>
106
110
  );
107
111
  },
108
112
  );
@@ -6,7 +6,6 @@ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React from 'react';
7
7
 
8
8
  import { withTheme } from '../../testing';
9
-
10
9
  import { Status } from './Status';
11
10
 
12
11
  const meta = {
@@ -19,21 +18,25 @@ export default meta;
19
18
 
20
19
  type Story = StoryObj<typeof meta>;
21
20
 
22
- export const Normal = (props: any) => {
23
- return (
24
- <div className='m-5 space-b-5'>
25
- <Status classNames='block' progress={0} {...props} />
26
- <Status classNames='block' progress={0.3} {...props} />
27
- <Status classNames='block' progress={0.7} {...props} />
28
- <Status classNames='block' progress={1} {...props} />
29
- </div>
30
- );
21
+ export const Normal: Story = {
22
+ render: (props) => {
23
+ return (
24
+ <div className='m-5 space-b-5'>
25
+ <Status classNames='block' progress={0} {...props} />
26
+ <Status classNames='block' progress={0.3} {...props} />
27
+ <Status classNames='block' progress={0.7} {...props} />
28
+ <Status classNames='block' progress={1} {...props} />
29
+ </div>
30
+ );
31
+ },
31
32
  };
32
33
 
33
- export const Indeterminate = (props: any) => {
34
- return (
35
- <div className='m-5'>
36
- <Status classNames='block' indeterminate {...props} />
37
- </div>
38
- );
34
+ export const Indeterminate: Story = {
35
+ render: (props) => {
36
+ return (
37
+ <div className='m-5'>
38
+ <Status classNames='block' indeterminate {...props} />
39
+ </div>
40
+ );
41
+ },
39
42
  };
@@ -4,14 +4,17 @@
4
4
 
5
5
  import React, { type ComponentPropsWithRef, forwardRef } from 'react';
6
6
 
7
+ import { type StatusStyleProps } from '@dxos/ui-theme';
8
+
7
9
  import { useThemeContext } from '../../hooks';
8
10
  import { type ThemedClassName } from '../../util';
9
11
 
10
- type StatusProps = ThemedClassName<ComponentPropsWithRef<'span'>> & {
11
- indeterminate?: boolean;
12
- variant?: 'default' | 'main-bottom';
13
- progress?: number;
14
- };
12
+ type StatusProps = ThemedClassName<
13
+ ComponentPropsWithRef<'span'> &
14
+ StatusStyleProps & {
15
+ progress?: number;
16
+ }
17
+ >;
15
18
 
16
19
  const Status = forwardRef<HTMLSpanElement, StatusProps>(
17
20
  ({ classNames, children, progress = 0, indeterminate, variant, ...props }, forwardedRef) => {
@@ -8,8 +8,7 @@ import React from 'react';
8
8
  import { hues } from '@dxos/ui-theme';
9
9
  import { type ChromaticPalette, type MessageValence } from '@dxos/ui-types';
10
10
 
11
- import { withTheme } from '../../testing';
12
-
11
+ import { withLayout, withTheme } from '../../testing';
13
12
  import { Tag } from './Tag';
14
13
 
15
14
  const palettes = ['neutral', 'success', 'info', 'warning', 'error', ...hues] as (ChromaticPalette | MessageValence)[];
@@ -18,7 +17,7 @@ const meta = {
18
17
  title: 'ui/react-ui-core/components/Tag',
19
18
  component: Tag,
20
19
  render: () => (
21
- <div role='grid' className='grid grid-cols-5 gap-2 max-is-screen-md'>
20
+ <div>
22
21
  {palettes.map((palette) => (
23
22
  <Tag key={palette} palette={palette}>
24
23
  {palette}
@@ -26,12 +25,7 @@ const meta = {
26
25
  ))}
27
26
  </div>
28
27
  ),
29
- decorators: [withTheme()],
30
- parameters: {
31
- chromatic: {
32
- disableSnapshot: false,
33
- },
34
- },
28
+ decorators: [withTheme(), withLayout({ layout: 'default' })],
35
29
  } satisfies Meta<typeof Tag>;
36
30
 
37
31
  export default meta;
@@ -19,9 +19,9 @@ export type TagProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.sp
19
19
  export const Tag = forwardRef<HTMLSpanElement, TagProps>(
20
20
  ({ asChild, palette = 'neutral', classNames, ...props }, forwardedRef) => {
21
21
  const { tx } = useThemeContext();
22
- const Root = asChild ? Slot : Primitive.span;
22
+ const Comp = asChild ? Slot : Primitive.span;
23
23
  return (
24
- <Root {...props} className={tx('tag.root', { palette }, classNames)} data-hue={palette} ref={forwardedRef} />
24
+ <Comp {...props} className={tx('tag.root', { palette }, classNames)} data-hue={palette} ref={forwardedRef} />
25
25
  );
26
26
  },
27
27
  );
@@ -0,0 +1,31 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+ import React from 'react';
7
+
8
+ import { useThemeContext } from '../../hooks';
9
+ import { withLayout, withTheme } from '../../testing';
10
+ import { ThemeProvider } from './ThemeProvider';
11
+
12
+ const meta = {
13
+ title: 'ui/react-ui-core/components/ThemeProvider',
14
+ component: ThemeProvider,
15
+ render: () => {
16
+ const { themeMode, platform } = useThemeContext();
17
+ return (
18
+ <div className='p-4 flex flex-col gap-4'>
19
+ <h1>ThemeProvider</h1>
20
+ <pre className='text-sm text-description'>{JSON.stringify({ themeMode, platform }, null, 2)}</pre>
21
+ </div>
22
+ );
23
+ },
24
+ decorators: [withTheme(), withLayout()],
25
+ } satisfies Meta<typeof ThemeProvider>;
26
+
27
+ export default meta;
28
+
29
+ type Story = StoryObj<typeof meta>;
30
+
31
+ export const Default: Story = {};
@@ -11,7 +11,6 @@ import { type SafeAreaPadding, useSafeArea } from '../../hooks';
11
11
  import { hasIosKeyboard } from '../../util';
12
12
  import { DensityProvider } from '../DensityProvider';
13
13
  import { ElevationProvider } from '../ElevationProvider';
14
-
15
14
  import { TranslationsProvider, type TranslationsProviderProps } from './TranslationsProvider';
16
15
 
17
16
  export type ThemeContextValue = {
@@ -43,7 +42,8 @@ export const ThemeProvider = ({
43
42
  tx = (_path, _styleProps, ..._options) => undefined,
44
43
  themeMode = 'dark',
45
44
  rootDensity = 'fine',
46
- ...rest
45
+ noCache,
46
+ platform,
47
47
  }: ThemeProviderProps) => {
48
48
  useEffect(() => {
49
49
  if (document.defaultView) {
@@ -54,9 +54,10 @@ export const ThemeProvider = ({
54
54
  }, []);
55
55
 
56
56
  const safeAreaPadding = useSafeArea();
57
+ // Destructure all props explicitly so useMemo deps are stable primitives, not a new `rest` object every render.
57
58
  const contextValue = useMemo(
58
- () => ({ tx, themeMode, hasIosKeyboard: hasIosKeyboard(), safeAreaPadding, ...rest }),
59
- [tx, themeMode, safeAreaPadding, rest],
59
+ () => ({ tx, themeMode, hasIosKeyboard: hasIosKeyboard(), safeAreaPadding, noCache, platform }),
60
+ [tx, themeMode, safeAreaPadding, noCache, platform],
60
61
  );
61
62
 
62
63
  return (
@@ -78,8 +79,8 @@ export const ThemeProvider = ({
78
79
 
79
80
  const handleInputModalityChange = (isUsingKeyboard: boolean) => {
80
81
  if (isUsingKeyboard) {
81
- document.body.setAttribute('data-is-keyboard', 'true');
82
+ document.body.setAttribute('data-w-keyboard', 'true');
82
83
  } else {
83
- document.body.removeAttribute('data-is-keyboard');
84
+ document.body.removeAttribute('data-w-keyboard');
84
85
  }
85
86
  };
@@ -2,7 +2,7 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- export { type Label, isLabel, toLocalizedString } from '@dxos/ui-types';
5
+ export { type Label, isLabel, toLocalizedString } from '@dxos/ui-types/translations';
6
6
 
7
7
  export * from './ThemeProvider';
8
8
  export { useTranslation } from './TranslationsProvider';
@@ -7,7 +7,6 @@ import React, { type ReactNode, useState } from 'react';
7
7
 
8
8
  import { withTheme } from '../../testing';
9
9
  import { Button } from '../Button';
10
-
11
10
  import { Toast } from './Toast';
12
11
 
13
12
  type ActionTriggerProps = { altText: string; trigger: ReactNode };
@@ -4,47 +4,32 @@
4
4
 
5
5
  import { Primitive } from '@radix-ui/react-primitive';
6
6
  import { Slot } from '@radix-ui/react-slot';
7
- import {
8
- ToastAction as ToastActionPrimitive,
9
- type ToastActionProps as ToastActionPrimitiveProps,
10
- ToastClose as ToastClosePrimitive,
11
- type ToastCloseProps as ToastClosePrimitiveProps,
12
- ToastDescription as ToastDescriptionPrimitive,
13
- type ToastDescriptionProps as ToastDescriptionPrimitiveProps,
14
- ToastProvider as ToastProviderPrimitive,
15
- type ToastProviderProps as ToastProviderPrimitiveProps,
16
- Root as ToastRootPrimitive,
17
- type ToastProps as ToastRootPrimitiveProps,
18
- ToastTitle as ToastTitlePrimitive,
19
- type ToastTitleProps as ToastTitlePrimitiveProps,
20
- ToastViewport as ToastViewportPrimitive,
21
- type ToastViewportProps as ToastViewportPrimitiveProps,
22
- } from '@radix-ui/react-toast';
7
+ import * as ToastPrimitive from '@radix-ui/react-toast';
23
8
  import React, { type ComponentPropsWithRef, type FunctionComponent, forwardRef } from 'react';
24
9
 
25
10
  import { useThemeContext } from '../../hooks';
26
11
  import { type ThemedClassName } from '../../util';
27
12
  import { ElevationProvider } from '../ElevationProvider';
28
13
 
29
- type ToastProviderProps = ToastProviderPrimitiveProps;
14
+ type ToastProviderProps = ToastPrimitive.ToastProviderProps;
30
15
 
31
- const ToastProvider: FunctionComponent<ToastProviderProps> = ToastProviderPrimitive;
16
+ const ToastProvider: FunctionComponent<ToastProviderProps> = ToastPrimitive.Provider;
32
17
 
33
- type ToastViewportProps = ThemedClassName<ToastViewportPrimitiveProps>;
18
+ type ToastViewportProps = ThemedClassName<ToastPrimitive.ToastViewportProps>;
34
19
 
35
20
  const ToastViewport = forwardRef<HTMLOListElement, ToastViewportProps>(({ classNames, ...props }, forwardedRef) => {
36
21
  const { tx } = useThemeContext();
37
- return <ToastViewportPrimitive className={tx('toast.viewport', {}, classNames)} ref={forwardedRef} />;
22
+ return <ToastPrimitive.Viewport {...props} className={tx('toast.viewport', {}, classNames)} ref={forwardedRef} />;
38
23
  });
39
24
 
40
- type ToastRootProps = ThemedClassName<ToastRootPrimitiveProps>;
25
+ type ToastRootProps = ThemedClassName<ToastPrimitive.ToastProps>;
41
26
 
42
27
  const ToastRoot = forwardRef<HTMLLIElement, ToastRootProps>(({ classNames, children, ...props }, forwardedRef) => {
43
28
  const { tx } = useThemeContext();
44
29
  return (
45
- <ToastRootPrimitive {...props} className={tx('toast.root', {}, classNames)} ref={forwardedRef}>
30
+ <ToastPrimitive.Root {...props} className={tx('toast.root', {}, classNames)} ref={forwardedRef}>
46
31
  <ElevationProvider elevation='toast'>{children}</ElevationProvider>
47
- </ToastRootPrimitive>
32
+ </ToastPrimitive.Root>
48
33
  );
49
34
  });
50
35
 
@@ -52,27 +37,27 @@ type ToastBodyProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div
52
37
 
53
38
  const ToastBody = forwardRef<HTMLDivElement, ToastBodyProps>(({ asChild, classNames, ...props }, forwardedRef) => {
54
39
  const { tx } = useThemeContext();
55
- const Root = asChild ? Slot : Primitive.div;
56
- return <Root {...props} className={tx('toast.body', {}, classNames)} ref={forwardedRef} />;
40
+ const Comp = asChild ? Slot : Primitive.div;
41
+ return <Comp {...props} className={tx('toast.body', {}, classNames)} ref={forwardedRef} />;
57
42
  });
58
43
 
59
- type ToastTitleProps = ThemedClassName<ToastTitlePrimitiveProps>;
44
+ type ToastTitleProps = ThemedClassName<ToastPrimitive.ToastTitleProps>;
60
45
 
61
46
  const ToastTitle = forwardRef<HTMLHeadingElement, ToastTitleProps>(
62
47
  ({ asChild, classNames, ...props }, forwardedRef) => {
63
48
  const { tx } = useThemeContext();
64
- const Root = asChild ? Slot : ToastTitlePrimitive;
65
- return <Root {...props} className={tx('toast.title', {}, classNames)} ref={forwardedRef} />;
49
+ const Comp = asChild ? Slot : ToastPrimitive.Title;
50
+ return <Comp {...props} className={tx('toast.title', {}, classNames)} ref={forwardedRef} />;
66
51
  },
67
52
  );
68
53
 
69
- type ToastDescriptionProps = ThemedClassName<ToastDescriptionPrimitiveProps>;
54
+ type ToastDescriptionProps = ThemedClassName<ToastPrimitive.ToastDescriptionProps>;
70
55
 
71
56
  const ToastDescription = forwardRef<HTMLParagraphElement, ToastDescriptionProps>(
72
57
  ({ asChild, classNames, ...props }, forwardedRef) => {
73
58
  const { tx } = useThemeContext();
74
- const Root = asChild ? Slot : ToastDescriptionPrimitive;
75
- return <Root {...props} className={tx('toast.description', {}, classNames)} ref={forwardedRef} />;
59
+ const Comp = asChild ? Slot : ToastPrimitive.Description;
60
+ return <Comp {...props} className={tx('toast.description', {}, classNames)} ref={forwardedRef} />;
76
61
  },
77
62
  );
78
63
 
@@ -81,18 +66,18 @@ type ToastActionsProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.
81
66
  const ToastActions = forwardRef<HTMLDivElement, ToastActionsProps>(
82
67
  ({ asChild, classNames, ...props }, forwardedRef) => {
83
68
  const { tx } = useThemeContext();
84
- const Root = asChild ? Slot : Primitive.div;
85
- return <Root {...props} className={tx('toast.actions', {}, classNames)} ref={forwardedRef} />;
69
+ const Comp = asChild ? Slot : Primitive.div;
70
+ return <Comp {...props} className={tx('toast.actions', {}, classNames)} ref={forwardedRef} />;
86
71
  },
87
72
  );
88
73
 
89
- type ToastActionProps = ToastActionPrimitiveProps;
74
+ type ToastActionProps = ToastPrimitive.ToastActionProps;
90
75
 
91
- const ToastAction: FunctionComponent<ToastActionProps> = ToastActionPrimitive;
76
+ const ToastAction: FunctionComponent<ToastActionProps> = ToastPrimitive.Action;
92
77
 
93
- type ToastCloseProps = ToastClosePrimitiveProps;
78
+ type ToastCloseProps = ToastPrimitive.ToastCloseProps;
94
79
 
95
- const ToastClose: FunctionComponent<ToastCloseProps> = ToastClosePrimitive;
80
+ const ToastClose: FunctionComponent<ToastCloseProps> = ToastPrimitive.Close;
96
81
 
97
82
  export const Toast = {
98
83
  Provider: ToastProvider,
@@ -9,7 +9,6 @@ import { withTheme } from '../../testing';
9
9
  import { Toggle } from '../Button';
10
10
  import { Icon } from '../Icon';
11
11
  import { Select } from '../Select';
12
-
13
12
  import { Toolbar } from './Toolbar';
14
13
 
15
14
  type StorybookToolbarProps = {};