@dxos/react-ui 0.8.4-main.ef1bc66f44 → 0.8.4-main.f466a3d56e

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 (376) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/browser/chunk-A5QCIG5R.mjs +24 -0
  4. package/dist/lib/browser/chunk-A5QCIG5R.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-EJYV4HAH.mjs → chunk-LY5XDQR5.mjs} +189 -117
  6. package/dist/lib/browser/chunk-LY5XDQR5.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +3257 -2048
  8. package/dist/lib/browser/index.mjs.map +4 -4
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/testing/index.mjs +70 -41
  11. package/dist/lib/browser/testing/index.mjs.map +4 -4
  12. package/dist/lib/browser/translations.mjs +9 -0
  13. package/dist/lib/browser/translations.mjs.map +7 -0
  14. package/dist/lib/node-esm/{chunk-YTLZCZ2M.mjs → chunk-NGKLIKP3.mjs} +189 -117
  15. package/dist/lib/node-esm/chunk-NGKLIKP3.mjs.map +7 -0
  16. package/dist/lib/node-esm/chunk-XCFLA74M.mjs +26 -0
  17. package/dist/lib/node-esm/chunk-XCFLA74M.mjs.map +7 -0
  18. package/dist/lib/node-esm/index.mjs +3257 -2048
  19. package/dist/lib/node-esm/index.mjs.map +4 -4
  20. package/dist/lib/node-esm/meta.json +1 -1
  21. package/dist/lib/node-esm/testing/index.mjs +70 -41
  22. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  23. package/dist/lib/node-esm/translations.mjs +10 -0
  24. package/dist/lib/node-esm/translations.mjs.map +7 -0
  25. package/dist/types/src/components/Avatars/Avatar.d.ts +1 -1
  26. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
  27. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  28. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
  29. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  30. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  31. package/dist/types/src/components/Button/Button.d.ts +2 -2
  32. package/dist/types/src/components/Button/Button.d.ts.map +1 -1
  33. package/dist/types/src/components/Button/Button.stories.d.ts +1 -1
  34. package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -1
  35. package/dist/types/src/components/Button/IconButton.d.ts +1 -0
  36. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -1
  37. package/dist/types/src/components/Button/IconButton.stories.d.ts +3 -0
  38. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -1
  39. package/dist/types/src/components/Button/Toggle.d.ts +2 -2
  40. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -1
  41. package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -1
  42. package/dist/types/src/components/Button/ToggleGroup.d.ts +6 -6
  43. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -1
  44. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +2 -2
  45. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -1
  46. package/dist/types/src/components/Card/Card.d.ts +124 -0
  47. package/dist/types/src/components/Card/Card.d.ts.map +1 -0
  48. package/dist/types/src/components/Card/Card.stories.d.ts +21 -0
  49. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
  50. package/dist/types/src/components/Card/index.d.ts +2 -0
  51. package/dist/types/src/components/Card/index.d.ts.map +1 -0
  52. package/dist/types/src/components/Carousel/Carousel.d.ts +90 -0
  53. package/dist/types/src/components/Carousel/Carousel.d.ts.map +1 -0
  54. package/dist/types/src/components/Carousel/index.d.ts +2 -0
  55. package/dist/types/src/components/Carousel/index.d.ts.map +1 -0
  56. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
  57. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  58. package/dist/types/src/components/Clipboard/index.d.ts +10 -1
  59. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  60. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  61. package/dist/types/src/components/Dialog/AlertDialog.d.ts +43 -23
  62. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -1
  63. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -1
  64. package/dist/types/src/components/Dialog/Dialog.d.ts +48 -30
  65. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
  66. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +6 -8
  67. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
  68. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  69. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
  70. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  71. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
  72. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
  73. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +19 -0
  74. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
  75. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
  76. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
  77. package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
  78. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
  79. package/dist/types/src/components/Focus/Focus.d.ts +36 -0
  80. package/dist/types/src/components/Focus/Focus.d.ts.map +1 -0
  81. package/dist/types/src/components/Focus/Focus.stories.d.ts +9 -0
  82. package/dist/types/src/components/Focus/Focus.stories.d.ts.map +1 -0
  83. package/dist/types/src/components/Focus/index.d.ts +2 -0
  84. package/dist/types/src/components/Focus/index.d.ts.map +1 -0
  85. package/dist/types/src/components/Icon/Icon.d.ts +4 -0
  86. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  87. package/dist/types/src/components/Icon/Icon.stories.d.ts +11 -3
  88. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -1
  89. package/dist/types/src/components/Image/Image.d.ts +15 -0
  90. package/dist/types/src/components/Image/Image.d.ts.map +1 -0
  91. package/dist/types/src/components/Image/Image.stories.d.ts +34 -0
  92. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
  93. package/dist/types/src/components/Image/index.d.ts +2 -0
  94. package/dist/types/src/components/Image/index.d.ts.map +1 -0
  95. package/dist/types/src/components/Input/Input.d.ts +16 -22
  96. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  97. package/dist/types/src/components/Input/Input.stories.d.ts +6 -6
  98. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  99. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  100. package/dist/types/src/components/List/List.d.ts +5 -3
  101. package/dist/types/src/components/List/List.d.ts.map +1 -1
  102. package/dist/types/src/components/List/List.stories.d.ts +3 -1
  103. package/dist/types/src/components/List/List.stories.d.ts.map +1 -1
  104. package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -1
  105. package/dist/types/src/components/List/Tree.d.ts +2 -2
  106. package/dist/types/src/components/List/Tree.d.ts.map +1 -1
  107. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -1
  108. package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -1
  109. package/dist/types/src/components/List/Treegrid.d.ts +5 -9
  110. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -1
  111. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -1
  112. package/dist/types/src/components/Main/Main.d.ts +11 -7
  113. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  114. package/dist/types/src/components/Main/Main.stories.d.ts +0 -3
  115. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/Main/useSwipeToDismiss.d.ts.map +1 -1
  117. package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts +46 -0
  118. package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts.map +1 -0
  119. package/dist/types/src/components/MediaPlayer/MediaPlayer.stories.d.ts +16 -0
  120. package/dist/types/src/components/MediaPlayer/MediaPlayer.stories.d.ts.map +1 -0
  121. package/dist/types/src/components/MediaPlayer/index.d.ts +2 -0
  122. package/dist/types/src/components/MediaPlayer/index.d.ts.map +1 -0
  123. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -1
  124. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -1
  125. package/dist/types/src/components/Menu/DropdownMenu.d.ts +58 -49
  126. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -1
  127. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +14 -1
  128. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -1
  129. package/dist/types/src/components/Message/Message.d.ts +1 -1
  130. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  131. package/dist/types/src/components/Message/Message.stories.d.ts +4 -5
  132. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  133. package/dist/types/src/components/Popover/Popover.d.ts +39 -22
  134. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  135. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  136. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +12 -11
  137. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  138. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +21 -10
  139. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  140. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +42 -13
  141. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
  142. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +9 -5
  143. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -1
  144. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  145. package/dist/types/src/components/Select/Select.stories.d.ts +2 -2
  146. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  147. package/dist/types/src/components/Separator/Separator.d.ts +3 -3
  148. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
  149. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -1
  150. package/dist/types/src/components/Splitter/Splitter.d.ts +23 -15
  151. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -1
  152. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -1
  153. package/dist/types/src/components/Status/Status.d.ts +3 -4
  154. package/dist/types/src/components/Status/Status.d.ts.map +1 -1
  155. package/dist/types/src/components/Status/Status.stories.d.ts +4 -2
  156. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  157. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  158. package/dist/types/src/components/Tag/Tag.stories.d.ts +0 -5
  159. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  160. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +1 -1
  161. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  162. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts +12 -0
  163. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
  164. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +54 -55
  165. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  166. package/dist/types/src/components/ThemeProvider/index.d.ts +1 -1
  167. package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -1
  168. package/dist/types/src/components/Toast/Toast.d.ts +16 -16
  169. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  170. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  171. package/dist/types/src/components/Toolbar/Toolbar.d.ts +32 -15
  172. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  173. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  174. package/dist/types/src/components/Tooltip/Tooltip.d.ts +16 -16
  175. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  176. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +2 -2
  177. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  178. package/dist/types/src/components/index.d.ts +9 -4
  179. package/dist/types/src/components/index.d.ts.map +1 -1
  180. package/dist/types/src/exemplars/generics.stories.d.ts +8 -6
  181. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -1
  182. package/dist/types/src/exemplars/slot.stories.d.ts +1 -0
  183. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -1
  184. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -1
  185. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  186. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  187. package/dist/types/src/hooks/index.d.ts +1 -0
  188. package/dist/types/src/hooks/index.d.ts.map +1 -1
  189. package/dist/types/src/hooks/useDensityContext.d.ts +1 -1
  190. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  191. package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
  192. package/dist/types/src/hooks/useIconHref.d.ts.map +1 -1
  193. package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
  194. package/dist/types/src/hooks/useSafeCollisionPadding.d.ts.map +1 -1
  195. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
  196. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  197. package/dist/types/src/playground/Custom.stories.d.ts +1 -1
  198. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  199. package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
  200. package/dist/types/src/primitives/Column/Column.d.ts +33 -0
  201. package/dist/types/src/primitives/Column/Column.d.ts.map +1 -0
  202. package/dist/types/src/primitives/Column/Column.stories.d.ts +25 -0
  203. package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -0
  204. package/dist/types/src/primitives/Column/index.d.ts +2 -0
  205. package/dist/types/src/primitives/Column/index.d.ts.map +1 -0
  206. package/dist/types/src/primitives/Container/Container.d.ts +6 -22
  207. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -1
  208. package/dist/types/src/primitives/Container/Container.stories.d.ts +2 -7
  209. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -1
  210. package/dist/types/src/primitives/Container/index.d.ts +0 -1
  211. package/dist/types/src/primitives/Container/index.d.ts.map +1 -1
  212. package/dist/types/src/primitives/Flex/Flex.d.ts +8 -5
  213. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -1
  214. package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
  215. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
  216. package/dist/types/src/primitives/Grid/Grid.d.ts +10 -0
  217. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
  218. package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
  219. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
  220. package/dist/types/src/primitives/Grid/index.d.ts +2 -0
  221. package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
  222. package/dist/types/src/primitives/Panel/Panel.d.ts +35 -0
  223. package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -0
  224. package/dist/types/src/primitives/Panel/Panel.stories.d.ts +6 -0
  225. package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -0
  226. package/dist/types/src/primitives/Panel/index.d.ts +2 -0
  227. package/dist/types/src/primitives/Panel/index.d.ts.map +1 -0
  228. package/dist/types/src/primitives/index.d.ts +3 -0
  229. package/dist/types/src/primitives/index.d.ts.map +1 -1
  230. package/dist/types/src/testing/Loading.d.ts +9 -0
  231. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  232. package/dist/types/src/testing/decorators/withLayout.d.ts +1 -1
  233. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
  234. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -1
  235. package/dist/types/src/testing/decorators/withTheme.d.ts +1 -1
  236. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  237. package/dist/types/src/testing/index.d.ts +1 -0
  238. package/dist/types/src/testing/index.d.ts.map +1 -1
  239. package/dist/types/src/translations.d.ts +16 -0
  240. package/dist/types/src/translations.d.ts.map +1 -0
  241. package/dist/types/src/util/usePx.d.ts.map +1 -1
  242. package/dist/types/tsconfig.tsbuildinfo +1 -1
  243. package/package.json +34 -27
  244. package/src/components/Avatars/Avatar.stories.tsx +5 -7
  245. package/src/components/Avatars/Avatar.tsx +6 -14
  246. package/src/components/Avatars/AvatarGroup.stories.tsx +0 -1
  247. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +1 -2
  248. package/src/components/Breadcrumb/Breadcrumb.tsx +11 -37
  249. package/src/components/Button/Button.stories.tsx +1 -2
  250. package/src/components/Button/Button.tsx +11 -25
  251. package/src/components/Button/IconButton.stories.tsx +6 -4
  252. package/src/components/Button/IconButton.tsx +3 -4
  253. package/src/components/Button/Toggle.stories.tsx +0 -1
  254. package/src/components/Button/Toggle.tsx +4 -4
  255. package/src/components/Button/ToggleGroup.stories.tsx +0 -1
  256. package/src/components/Button/ToggleGroup.tsx +12 -16
  257. package/src/components/Card/Card.stories.tsx +151 -0
  258. package/src/components/Card/Card.tsx +514 -0
  259. package/src/components/Card/index.ts +5 -0
  260. package/src/components/Carousel/Carousel.tsx +337 -0
  261. package/src/components/Carousel/index.ts +5 -0
  262. package/src/components/Clipboard/CopyButton.tsx +6 -7
  263. package/src/components/Dialog/AlertDialog.stories.tsx +14 -15
  264. package/src/components/Dialog/AlertDialog.tsx +123 -82
  265. package/src/components/Dialog/Dialog.stories.tsx +90 -14
  266. package/src/components/Dialog/Dialog.tsx +98 -113
  267. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +45 -0
  268. package/src/components/ErrorFallback/ErrorFallback.tsx +70 -0
  269. package/src/components/ErrorFallback/ErrorStack.tsx +114 -0
  270. package/src/components/ErrorFallback/ThrowError.tsx +37 -0
  271. package/src/components/ErrorFallback/index.ts +9 -0
  272. package/src/components/Focus/AUDIT.md +43 -0
  273. package/src/components/Focus/Focus.stories.tsx +230 -0
  274. package/src/components/Focus/Focus.tsx +201 -0
  275. package/src/components/Focus/index.ts +5 -0
  276. package/src/components/Icon/Icon.stories.tsx +43 -13
  277. package/src/components/Icon/Icon.tsx +14 -3
  278. package/src/components/Image/Image.stories.tsx +86 -0
  279. package/src/components/Image/Image.tsx +246 -0
  280. package/src/components/Image/index.ts +5 -0
  281. package/src/components/Input/Input.stories.tsx +17 -38
  282. package/src/components/Input/Input.tsx +27 -71
  283. package/src/components/Link/Link.stories.tsx +0 -1
  284. package/src/components/Link/Link.tsx +2 -2
  285. package/src/components/List/List.stories.tsx +14 -22
  286. package/src/components/List/List.tsx +16 -20
  287. package/src/components/List/ListDropIndicator.tsx +7 -8
  288. package/src/components/List/Tree.stories.tsx +4 -5
  289. package/src/components/List/Tree.tsx +0 -1
  290. package/src/components/List/TreeDropIndicator.tsx +6 -6
  291. package/src/components/List/Treegrid.stories.tsx +27 -28
  292. package/src/components/List/Treegrid.tsx +22 -27
  293. package/src/components/Main/Main.stories.tsx +3 -7
  294. package/src/components/Main/Main.tsx +57 -48
  295. package/src/components/MediaPlayer/MediaPlayer.stories.tsx +50 -0
  296. package/src/components/MediaPlayer/MediaPlayer.tsx +153 -0
  297. package/src/components/MediaPlayer/index.ts +5 -0
  298. package/src/components/Menu/ContextMenu.stories.tsx +0 -1
  299. package/src/components/Menu/ContextMenu.tsx +9 -33
  300. package/src/components/Menu/DropdownMenu.stories.tsx +0 -1
  301. package/src/components/Menu/DropdownMenu.tsx +58 -52
  302. package/src/components/Message/Message.stories.tsx +25 -11
  303. package/src/components/Message/Message.tsx +30 -29
  304. package/src/components/Popover/Popover.stories.tsx +5 -6
  305. package/src/components/Popover/Popover.tsx +62 -59
  306. package/src/components/ScrollArea/ScrollArea.stories.tsx +98 -39
  307. package/src/components/ScrollArea/ScrollArea.tsx +45 -33
  308. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +46 -25
  309. package/src/components/ScrollContainer/ScrollContainer.tsx +199 -92
  310. package/src/components/Select/Select.stories.tsx +5 -6
  311. package/src/components/Select/Select.tsx +11 -27
  312. package/src/components/Separator/Separator.tsx +5 -8
  313. package/src/components/Skeleton/Skeleton.stories.tsx +12 -13
  314. package/src/components/Skeleton/Skeleton.tsx +1 -1
  315. package/src/components/Splitter/Splitter.stories.tsx +47 -37
  316. package/src/components/Splitter/Splitter.tsx +44 -40
  317. package/src/components/Status/Status.stories.tsx +19 -16
  318. package/src/components/Status/Status.tsx +10 -7
  319. package/src/components/Tag/Tag.stories.tsx +3 -9
  320. package/src/components/Tag/Tag.tsx +2 -7
  321. package/src/components/ThemeProvider/ThemeProvider.stories.tsx +31 -0
  322. package/src/components/ThemeProvider/ThemeProvider.tsx +8 -7
  323. package/src/components/ThemeProvider/index.ts +1 -1
  324. package/src/components/Toast/Toast.stories.tsx +0 -1
  325. package/src/components/Toast/Toast.tsx +22 -41
  326. package/src/components/Toolbar/Toolbar.stories.tsx +0 -1
  327. package/src/components/Toolbar/Toolbar.tsx +175 -30
  328. package/src/components/Tooltip/Tooltip.stories.tsx +18 -17
  329. package/src/components/Tooltip/Tooltip.tsx +32 -31
  330. package/src/components/index.ts +10 -5
  331. package/src/exemplars/generics.stories.tsx +12 -15
  332. package/src/exemplars/slot.stories.tsx +68 -61
  333. package/src/exemplars/tabster.stories.tsx +5 -5
  334. package/src/exemplars/virtualizer.stories.tsx +136 -0
  335. package/src/hooks/index.ts +1 -0
  336. package/src/hooks/useDensityContext.ts +2 -2
  337. package/src/playground/Controls.stories.tsx +0 -6
  338. package/src/playground/Custom.stories.tsx +13 -16
  339. package/src/playground/Typography.stories.tsx +1 -1
  340. package/src/primitives/Column/AUDIT.md +148 -0
  341. package/src/primitives/Column/Column.stories.tsx +181 -0
  342. package/src/primitives/Column/Column.tsx +165 -0
  343. package/src/primitives/Column/index.ts +5 -0
  344. package/src/primitives/Container/Container.stories.tsx +13 -51
  345. package/src/primitives/Container/Container.tsx +14 -77
  346. package/src/primitives/Container/index.ts +0 -1
  347. package/src/primitives/Flex/Flex.stories.tsx +57 -0
  348. package/src/primitives/Flex/Flex.tsx +20 -19
  349. package/src/primitives/Grid/Grid.stories.tsx +56 -0
  350. package/src/primitives/Grid/Grid.tsx +30 -0
  351. package/src/primitives/Grid/index.ts +5 -0
  352. package/src/primitives/Panel/Panel.stories.tsx +68 -0
  353. package/src/primitives/Panel/Panel.tsx +120 -0
  354. package/src/primitives/Panel/index.ts +5 -0
  355. package/src/primitives/index.ts +3 -0
  356. package/src/testing/Loading.tsx +47 -0
  357. package/src/testing/decorators/withLayout.tsx +15 -11
  358. package/src/testing/decorators/withLayoutVariants.tsx +18 -21
  359. package/src/testing/decorators/withTheme.tsx +10 -7
  360. package/src/testing/index.ts +2 -0
  361. package/src/translations.ts +24 -0
  362. package/src/util/usePx.ts +1 -0
  363. package/dist/lib/browser/chunk-EJYV4HAH.mjs.map +0 -7
  364. package/dist/lib/node-esm/chunk-YTLZCZ2M.mjs.map +0 -7
  365. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -22
  366. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
  367. package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
  368. package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
  369. package/dist/types/src/primitives/Container/Layout.d.ts +0 -18
  370. package/dist/types/src/primitives/Container/Layout.d.ts.map +0 -1
  371. package/dist/types/src/primitives/Container/Layout.stories.d.ts +0 -10
  372. package/dist/types/src/primitives/Container/Layout.stories.d.ts.map +0 -1
  373. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -67
  374. package/src/components/AnchoredOverflow/index.ts +0 -5
  375. package/src/primitives/Container/Layout.stories.tsx +0 -57
  376. package/src/primitives/Container/Layout.tsx +0 -61
@@ -4,49 +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 (
38
- <ToastViewportPrimitive className={tx('toast.viewport', 'toast-viewport', {}, classNames)} ref={forwardedRef} />
39
- );
22
+ return <ToastPrimitive.Viewport {...props} className={tx('toast.viewport', {}, classNames)} ref={forwardedRef} />;
40
23
  });
41
24
 
42
- type ToastRootProps = ThemedClassName<ToastRootPrimitiveProps>;
25
+ type ToastRootProps = ThemedClassName<ToastPrimitive.ToastProps>;
43
26
 
44
27
  const ToastRoot = forwardRef<HTMLLIElement, ToastRootProps>(({ classNames, children, ...props }, forwardedRef) => {
45
28
  const { tx } = useThemeContext();
46
29
  return (
47
- <ToastRootPrimitive {...props} className={tx('toast.root', 'toast', {}, classNames)} ref={forwardedRef}>
30
+ <ToastPrimitive.Root {...props} className={tx('toast.root', {}, classNames)} ref={forwardedRef}>
48
31
  <ElevationProvider elevation='toast'>{children}</ElevationProvider>
49
- </ToastRootPrimitive>
32
+ </ToastPrimitive.Root>
50
33
  );
51
34
  });
52
35
 
@@ -54,29 +37,27 @@ type ToastBodyProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div
54
37
 
55
38
  const ToastBody = forwardRef<HTMLDivElement, ToastBodyProps>(({ asChild, classNames, ...props }, forwardedRef) => {
56
39
  const { tx } = useThemeContext();
57
- const Root = asChild ? Slot : Primitive.div;
58
- return <Root {...props} className={tx('toast.body', 'toast__body', {}, classNames)} ref={forwardedRef} />;
40
+ const Comp = asChild ? Slot : Primitive.div;
41
+ return <Comp {...props} className={tx('toast.body', {}, classNames)} ref={forwardedRef} />;
59
42
  });
60
43
 
61
- type ToastTitleProps = ThemedClassName<ToastTitlePrimitiveProps>;
44
+ type ToastTitleProps = ThemedClassName<ToastPrimitive.ToastTitleProps>;
62
45
 
63
46
  const ToastTitle = forwardRef<HTMLHeadingElement, ToastTitleProps>(
64
47
  ({ asChild, classNames, ...props }, forwardedRef) => {
65
48
  const { tx } = useThemeContext();
66
- const Root = asChild ? Slot : ToastTitlePrimitive;
67
- return <Root {...props} className={tx('toast.title', 'toast__title', {}, classNames)} ref={forwardedRef} />;
49
+ const Comp = asChild ? Slot : ToastPrimitive.Title;
50
+ return <Comp {...props} className={tx('toast.title', {}, classNames)} ref={forwardedRef} />;
68
51
  },
69
52
  );
70
53
 
71
- type ToastDescriptionProps = ThemedClassName<ToastDescriptionPrimitiveProps>;
54
+ type ToastDescriptionProps = ThemedClassName<ToastPrimitive.ToastDescriptionProps>;
72
55
 
73
56
  const ToastDescription = forwardRef<HTMLParagraphElement, ToastDescriptionProps>(
74
57
  ({ asChild, classNames, ...props }, forwardedRef) => {
75
58
  const { tx } = useThemeContext();
76
- const Root = asChild ? Slot : ToastDescriptionPrimitive;
77
- return (
78
- <Root {...props} className={tx('toast.description', 'toast__description', {}, classNames)} ref={forwardedRef} />
79
- );
59
+ const Comp = asChild ? Slot : ToastPrimitive.Description;
60
+ return <Comp {...props} className={tx('toast.description', {}, classNames)} ref={forwardedRef} />;
80
61
  },
81
62
  );
82
63
 
@@ -85,18 +66,18 @@ type ToastActionsProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.
85
66
  const ToastActions = forwardRef<HTMLDivElement, ToastActionsProps>(
86
67
  ({ asChild, classNames, ...props }, forwardedRef) => {
87
68
  const { tx } = useThemeContext();
88
- const Root = asChild ? Slot : Primitive.div;
89
- return <Root {...props} className={tx('toast.actions', 'toast__actions', {}, classNames)} ref={forwardedRef} />;
69
+ const Comp = asChild ? Slot : Primitive.div;
70
+ return <Comp {...props} className={tx('toast.actions', {}, classNames)} ref={forwardedRef} />;
90
71
  },
91
72
  );
92
73
 
93
- type ToastActionProps = ToastActionPrimitiveProps;
74
+ type ToastActionProps = ToastPrimitive.ToastActionProps;
94
75
 
95
- const ToastAction: FunctionComponent<ToastActionProps> = ToastActionPrimitive;
76
+ const ToastAction: FunctionComponent<ToastActionProps> = ToastPrimitive.Action;
96
77
 
97
- type ToastCloseProps = ToastClosePrimitiveProps;
78
+ type ToastCloseProps = ToastPrimitive.ToastCloseProps;
98
79
 
99
- const ToastClose: FunctionComponent<ToastCloseProps> = ToastClosePrimitive;
80
+ const ToastClose: FunctionComponent<ToastCloseProps> = ToastPrimitive.Close;
100
81
 
101
82
  export const Toast = {
102
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 = {};
@@ -2,14 +2,19 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
+ import { Primitive } from '@radix-ui/react-primitive';
6
+ import { Slot } from '@radix-ui/react-slot';
5
7
  import type { ToggleGroupItemProps as ToggleGroupItemPrimitiveProps } from '@radix-ui/react-toggle-group';
6
8
  import * as ToolbarPrimitive from '@radix-ui/react-toolbar';
7
- import React, { Fragment, forwardRef } from 'react';
9
+ import React, { forwardRef } from 'react';
10
+ import { useTranslation } from 'react-i18next';
8
11
 
9
- import { type ToolbarStyleProps } from '@dxos/ui-theme';
12
+ import { composable, composableProps, slottable, type ToolbarStyleProps } from '@dxos/ui-theme';
13
+ import { type SlottableProps } from '@dxos/ui-types';
14
+
15
+ import { translationKey } from '#translations';
10
16
 
11
17
  import { useThemeContext } from '../../hooks';
12
- import { type ThemedClassName } from '../../util';
13
18
  import {
14
19
  Button,
15
20
  ButtonGroup,
@@ -22,43 +27,57 @@ import {
22
27
  type ToggleProps,
23
28
  } from '../Button';
24
29
  import { Link, type LinkProps } from '../Link';
30
+ import { DropdownMenu } from '../Menu';
25
31
  import { Separator, type SeparatorProps } from '../Separator';
26
32
 
27
- type ToolbarRootProps = ThemedClassName<
28
- ToolbarPrimitive.ToolbarProps &
29
- ToolbarStyleProps & {
30
- textBlockWidth?: boolean;
31
- }
32
- >;
33
-
34
- // TODO(burdon): Implement asChild property.
35
- const ToolbarRoot = forwardRef<HTMLDivElement, ToolbarRootProps>(
36
- (
37
- { classNames, children, density, disabled, layoutManaged, textBlockWidth: textBlockWidthProp, ...props },
38
- forwardedRef,
39
- ) => {
33
+ //
34
+ // Root
35
+ //
36
+
37
+ type ToolbarRootProps = ToolbarPrimitive.ToolbarProps & ToolbarStyleProps;
38
+
39
+ const ToolbarRoot = composable<HTMLDivElement, ToolbarRootProps>(
40
+ ({ children, density, disabled, layoutManaged, orientation, ...props }, forwardedRef) => {
41
+ const { className, role, ...rest } = composableProps(props);
40
42
  const { tx } = useThemeContext();
41
- const InnerRoot = textBlockWidthProp ? 'div' : Fragment;
42
- const innerRootProps = textBlockWidthProp
43
- ? {
44
- role: 'none',
45
- className: tx('toolbar.inner', 'toolbar', { layoutManaged }, classNames),
46
- }
47
- : {};
48
43
 
49
44
  return (
50
45
  <ToolbarPrimitive.Root
51
- {...props}
52
- data-arrow-keys={props.orientation === 'vertical' ? 'up down' : 'left right'}
53
- className={tx('toolbar.root', 'toolbar', { density, disabled, layoutManaged }, classNames)}
46
+ {...rest}
47
+ // Only pass role when explicitly set; radix provides role="toolbar" by default.
48
+ {...(role !== 'none' && { role })}
49
+ orientation={orientation}
50
+ data-arrow-keys={orientation === 'vertical' ? 'up down' : 'left right'}
51
+ className={tx('toolbar.root', { density, disabled, layoutManaged }, className)}
54
52
  ref={forwardedRef}
55
53
  >
56
- <InnerRoot {...innerRootProps}>{children}</InnerRoot>
54
+ {children}
57
55
  </ToolbarPrimitive.Root>
58
56
  );
59
57
  },
60
58
  );
61
59
 
60
+ //
61
+ // Text
62
+ //
63
+
64
+ type ToolbarTextProps = SlottableProps;
65
+
66
+ const ToolbarText = slottable<HTMLDivElement>(({ children, asChild, ...props }, forwardedRef) => {
67
+ const { className, ...rest } = composableProps(props);
68
+ const Comp = asChild ? Slot : Primitive.div;
69
+ const { tx } = useThemeContext();
70
+ return (
71
+ <Comp {...rest} className={tx('toolbar.text', {}, className)} ref={forwardedRef}>
72
+ {children}
73
+ </Comp>
74
+ );
75
+ });
76
+
77
+ //
78
+ // Button
79
+ //
80
+
62
81
  type ToolbarButtonProps = ButtonProps;
63
82
 
64
83
  const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>((props, forwardedRef) => {
@@ -69,6 +88,10 @@ const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>((props,
69
88
  );
70
89
  });
71
90
 
91
+ //
92
+ // IconButton
93
+ //
94
+
72
95
  type ToolbarIconButtonProps = IconButtonProps;
73
96
 
74
97
  const ToolbarIconButton = forwardRef<HTMLButtonElement, ToolbarIconButtonProps>((props, forwardedRef) => {
@@ -89,6 +112,10 @@ const ToolbarToggle = forwardRef<HTMLButtonElement, ToolbarToggleProps>((props,
89
112
  );
90
113
  });
91
114
 
115
+ //
116
+ // Link
117
+ //
118
+
92
119
  type ToolbarLinkProps = LinkProps;
93
120
 
94
121
  const ToolbarLink = forwardRef<HTMLAnchorElement, ToolbarLinkProps>((props, forwardedRef) => {
@@ -105,6 +132,10 @@ type ToolbarToggleGroupProps = (
105
132
  ) &
106
133
  ButtonGroupProps;
107
134
 
135
+ //
136
+ // ToggleGroup
137
+ //
138
+
108
139
  const ToolbarToggleGroup = forwardRef<HTMLDivElement, ToolbarToggleGroupProps>(
109
140
  ({ classNames, children, elevation, ...props }, forwardedRef) => {
110
141
  return (
@@ -130,7 +161,7 @@ const ToolbarToggleGroupItem = forwardRef<HTMLButtonElement, ToolbarToggleGroupI
130
161
  type ToolbarToggleGroupIconItemProps = Omit<ToggleGroupItemPrimitiveProps, 'className'> & IconButtonProps;
131
162
 
132
163
  const ToolbarToggleGroupIconItem = forwardRef<HTMLButtonElement, ToolbarToggleGroupIconItemProps>(
133
- ({ variant, density, elevation, classNames, icon, label, iconOnly, ...props }, forwardedRef) => {
164
+ ({ variant, density, elevation, classNames, icon, label, iconOnly, iconClassNames, ...props }, forwardedRef) => {
134
165
  return (
135
166
  <ToolbarPrimitive.ToolbarToggleItem {...props} asChild>
136
167
  <IconButton
@@ -142,6 +173,7 @@ const ToolbarToggleGroupIconItem = forwardRef<HTMLButtonElement, ToolbarToggleGr
142
173
  icon,
143
174
  label,
144
175
  iconOnly,
176
+ iconClassNames,
145
177
  }}
146
178
  ref={forwardedRef}
147
179
  />
@@ -150,13 +182,17 @@ const ToolbarToggleGroupIconItem = forwardRef<HTMLButtonElement, ToolbarToggleGr
150
182
  },
151
183
  );
152
184
 
185
+ //
186
+ // Separator
187
+ //
188
+
153
189
  type ToolbarSeparatorProps = SeparatorProps & { variant?: 'gap' | 'line' };
154
190
 
155
191
  const ToolbarSeparator = forwardRef<HTMLDivElement, ToolbarSeparatorProps>(
156
- ({ variant = 'line', ...props }, forwardedRef) => {
192
+ ({ variant = 'gap', ...props }, forwardedRef) => {
157
193
  return variant === 'line' ? (
158
194
  <ToolbarPrimitive.Separator asChild>
159
- <Separator {...props} ref={forwardedRef} />
195
+ <Separator orientation='vertical' {...props} ref={forwardedRef} />
160
196
  </ToolbarPrimitive.Separator>
161
197
  ) : (
162
198
  <ToolbarPrimitive.Separator className='grow' ref={forwardedRef} />
@@ -164,8 +200,109 @@ const ToolbarSeparator = forwardRef<HTMLDivElement, ToolbarSeparatorProps>(
164
200
  },
165
201
  );
166
202
 
203
+ //
204
+ // DragHandle
205
+ //
206
+
207
+ type ToolbarDragHandleProps = { testId?: string; label?: string };
208
+
209
+ const ToolbarDragHandle = forwardRef<HTMLButtonElement, ToolbarDragHandleProps>(
210
+ ({ testId = 'drag-handle', label }, forwardedRef) => {
211
+ const { t } = useTranslation(translationKey);
212
+ return (
213
+ <ToolbarIconButton
214
+ data-testid={testId}
215
+ tabIndex={-1}
216
+ noTooltip
217
+ iconOnly
218
+ icon='ph--dots-six-vertical--regular'
219
+ variant='ghost'
220
+ label={label ?? t('toolbar-drag-handle.label')}
221
+ classNames='dx-focus-ring-none cursor-pointer'
222
+ disabled={!forwardedRef}
223
+ ref={forwardedRef}
224
+ />
225
+ );
226
+ },
227
+ );
228
+
229
+ //
230
+ // CloseIconButton
231
+ //
232
+
233
+ type ToolbarCloseIconButtonProps = { onClick?: () => void; label?: string };
234
+
235
+ const ToolbarCloseIconButton = forwardRef<HTMLButtonElement, ToolbarCloseIconButtonProps>(
236
+ ({ onClick, label }, forwardedRef) => {
237
+ const { t } = useTranslation(translationKey);
238
+
239
+ return (
240
+ <ToolbarIconButton
241
+ iconOnly
242
+ icon='ph--x--regular'
243
+ variant='ghost'
244
+ label={label ?? t('toolbar-close.label')}
245
+ classNames='cursor-pointer'
246
+ onClick={onClick}
247
+ ref={forwardedRef}
248
+ />
249
+ );
250
+ },
251
+ );
252
+
253
+ //
254
+ // Menu
255
+ //
256
+
257
+ type ToolbarMenuItem<T extends any | void = void> = {
258
+ label: string;
259
+ onClick: (context: T) => void;
260
+ };
261
+
262
+ type ToolbarMenuProps<T extends any | void = void> = {
263
+ context?: T;
264
+ items?: ToolbarMenuItem<T>[];
265
+ };
266
+
267
+ // TODO(burdon): Make slottable.
268
+ const ToolbarMenu = <T extends any | void = void>({ context, items }: ToolbarMenuProps<T>) => {
269
+ const { t } = useTranslation(translationKey);
270
+
271
+ return (
272
+ <DropdownMenu.Root>
273
+ <DropdownMenu.Trigger disabled={!items?.length} asChild>
274
+ <ToolbarIconButton
275
+ iconOnly
276
+ variant='ghost'
277
+ icon='ph--dots-three-vertical--regular'
278
+ label={t('toolbar-menu.label')}
279
+ />
280
+ </DropdownMenu.Trigger>
281
+ {(items?.length ?? 0) > 0 && (
282
+ <DropdownMenu.Portal>
283
+ <DropdownMenu.Content>
284
+ <DropdownMenu.Viewport>
285
+ {items?.map(({ label, onClick: onSelect }, index) => (
286
+ <DropdownMenu.Item key={index} onSelect={() => onSelect(context as T)}>
287
+ {label}
288
+ </DropdownMenu.Item>
289
+ ))}
290
+ </DropdownMenu.Viewport>
291
+ <DropdownMenu.Arrow />
292
+ </DropdownMenu.Content>
293
+ </DropdownMenu.Portal>
294
+ )}
295
+ </DropdownMenu.Root>
296
+ );
297
+ };
298
+
299
+ //
300
+ // Toolbar
301
+ //
302
+
167
303
  export const Toolbar = {
168
304
  Root: ToolbarRoot,
305
+ Text: ToolbarText,
169
306
  Button: ToolbarButton,
170
307
  IconButton: ToolbarIconButton,
171
308
  Link: ToolbarLink,
@@ -174,10 +311,14 @@ export const Toolbar = {
174
311
  ToggleGroupItem: ToolbarToggleGroupItem,
175
312
  ToggleGroupIconItem: ToolbarToggleGroupIconItem,
176
313
  Separator: ToolbarSeparator,
314
+ DragHandle: ToolbarDragHandle,
315
+ CloseIconButton: ToolbarCloseIconButton,
316
+ Menu: ToolbarMenu,
177
317
  };
178
318
 
179
319
  export type {
180
320
  ToolbarRootProps,
321
+ ToolbarTextProps,
181
322
  ToolbarButtonProps,
182
323
  ToolbarIconButtonProps,
183
324
  ToolbarLinkProps,
@@ -186,4 +327,8 @@ export type {
186
327
  ToolbarToggleGroupItemProps,
187
328
  ToolbarToggleGroupIconItemProps,
188
329
  ToolbarSeparatorProps,
330
+ ToolbarDragHandleProps,
331
+ ToolbarCloseIconButtonProps,
332
+ ToolbarMenuItem,
333
+ ToolbarMenuProps,
189
334
  };
@@ -5,29 +5,30 @@
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React from 'react';
7
7
 
8
- import { faker } from '@dxos/random';
8
+ import { random } from '@dxos/random';
9
9
 
10
10
  import { withTheme } from '../../testing';
11
11
  import { Button } from '../Button';
12
-
13
12
  import { Tooltip } from './Tooltip';
14
13
 
15
- type StoryProps = {
14
+ type DefaultStoryProps = {
16
15
  tooltips: { label: string; content: string }[];
17
16
  defaultOpen?: boolean;
18
17
  };
19
18
 
20
- const DefaultStory = ({ tooltips, defaultOpen }: StoryProps) => (
21
- <Tooltip.Provider defaultOpen={defaultOpen}>
22
- <div role='none' className='is-32'>
23
- {tooltips.map(({ label, content }, i) => (
24
- <Tooltip.Trigger asChild key={i} content={content} side='right'>
25
- <Button classNames='block is-full'>{label}</Button>
26
- </Tooltip.Trigger>
27
- ))}
28
- </div>
29
- </Tooltip.Provider>
30
- );
19
+ const DefaultStory = ({ tooltips, defaultOpen }: DefaultStoryProps) => {
20
+ return (
21
+ <Tooltip.Provider defaultOpen={defaultOpen}>
22
+ <div className='w-32'>
23
+ {tooltips.map(({ label, content }, i) => (
24
+ <Tooltip.Trigger asChild key={i} content={content} side='right'>
25
+ <Button classNames='block w-full'>{label}</Button>
26
+ </Tooltip.Trigger>
27
+ ))}
28
+ </div>
29
+ </Tooltip.Provider>
30
+ );
31
+ };
31
32
 
32
33
  const meta = {
33
34
  title: 'ui/react-ui-core/components/Tooltip',
@@ -72,10 +73,10 @@ export const DefaultOpen: Story = {
72
73
  export const StressTest: Story = {
73
74
  args: {
74
75
  defaultOpen: true,
75
- tooltips: faker.helpers.multiple(
76
+ tooltips: random.helpers.multiple(
76
77
  () => ({
77
- label: faker.lorem.words(2),
78
- content: faker.lorem.words(5),
78
+ label: random.lorem.words(2),
79
+ content: random.lorem.words(5),
79
80
  }),
80
81
  { count: 32 },
81
82
  ),