@dxos/react-ui 0.8.4-main.406dc2a → 0.8.4-main.40e3dcdf1b

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 (407) hide show
  1. package/dist/lib/browser/chunk-2FKSMWNY.mjs +774 -0
  2. package/dist/lib/browser/chunk-2FKSMWNY.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +3916 -66
  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 +76 -64
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/chunk-ZNBLTSHI.mjs +776 -0
  9. package/dist/lib/node-esm/chunk-ZNBLTSHI.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +3916 -66
  11. package/dist/lib/node-esm/index.mjs.map +4 -4
  12. package/dist/lib/node-esm/meta.json +1 -1
  13. package/dist/lib/node-esm/testing/index.mjs +76 -64
  14. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  15. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
  16. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  17. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  18. package/dist/types/src/components/{Buttons → Button}/Button.d.ts +1 -1
  19. package/dist/types/src/components/Button/Button.d.ts.map +1 -0
  20. package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -0
  21. package/dist/types/src/components/{Buttons → Button}/IconButton.d.ts +2 -2
  22. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -0
  23. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -0
  24. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -0
  25. package/dist/types/src/components/Button/Toggle.stories.d.ts +16 -0
  26. package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -0
  27. package/dist/types/src/components/{Buttons → Button}/ToggleGroup.d.ts +4 -4
  28. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -0
  29. package/dist/types/src/components/{Buttons → Button}/ToggleGroup.stories.d.ts +4 -4
  30. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -0
  31. package/dist/types/src/components/Button/index.d.ts.map +1 -0
  32. package/dist/types/src/components/Card/Card.d.ts +107 -0
  33. package/dist/types/src/components/Card/Card.d.ts.map +1 -0
  34. package/dist/types/src/components/Card/Card.stories.d.ts +21 -0
  35. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
  36. package/dist/types/src/components/Card/index.d.ts +2 -0
  37. package/dist/types/src/components/Card/index.d.ts.map +1 -0
  38. package/dist/types/src/components/Clipboard/CopyButton.d.ts +1 -1
  39. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  40. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts +1 -1
  41. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  42. package/dist/types/src/components/{Dialogs → Dialog}/AlertDialog.d.ts +12 -3
  43. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -0
  44. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -0
  45. package/dist/types/src/components/Dialog/Dialog.d.ts +47 -0
  46. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -0
  47. package/dist/types/src/components/{Dialogs → Dialog}/Dialog.stories.d.ts +9 -10
  48. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -0
  49. package/dist/types/src/components/Dialog/index.d.ts.map +1 -0
  50. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts +1 -1
  51. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  52. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
  53. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  54. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
  55. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
  56. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +8 -0
  57. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
  58. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
  59. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
  60. package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
  61. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
  62. package/dist/types/src/components/Icon/Icon.d.ts +1 -1
  63. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  64. package/dist/types/src/components/Icon/Icon.stories.d.ts +17 -0
  65. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -0
  66. package/dist/types/src/components/Image/Image.d.ts +14 -0
  67. package/dist/types/src/components/Image/Image.d.ts.map +1 -0
  68. package/dist/types/src/components/Image/Image.stories.d.ts +33 -0
  69. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
  70. package/dist/types/src/components/Image/index.d.ts +2 -0
  71. package/dist/types/src/components/Image/index.d.ts.map +1 -0
  72. package/dist/types/src/components/Input/Input.d.ts +5 -5
  73. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  74. package/dist/types/src/components/Input/Input.stories.d.ts +8 -8
  75. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  76. package/dist/types/src/components/{Lists → List}/List.d.ts +1 -1
  77. package/dist/types/src/components/List/List.d.ts.map +1 -0
  78. package/dist/types/src/components/List/List.stories.d.ts.map +1 -0
  79. package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -0
  80. package/dist/types/src/components/List/Tree.d.ts.map +1 -0
  81. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -0
  82. package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -0
  83. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -0
  84. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -0
  85. package/dist/types/src/components/List/index.d.ts.map +1 -0
  86. package/dist/types/src/components/Main/Main.d.ts +17 -18
  87. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  88. package/dist/types/src/components/Main/Main.stories.d.ts +0 -3
  89. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  90. package/dist/types/src/components/{Menus → Menu}/ContextMenu.d.ts +6 -6
  91. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -0
  92. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -0
  93. package/dist/types/src/components/{Menus → Menu}/DropdownMenu.d.ts +3 -4
  94. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -0
  95. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -0
  96. package/dist/types/src/components/Menu/index.d.ts.map +1 -0
  97. package/dist/types/src/components/Message/Message.d.ts +1 -1
  98. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  99. package/dist/types/src/components/Message/Message.stories.d.ts +3 -4
  100. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  101. package/dist/types/src/components/Popover/Popover.d.ts +2 -1
  102. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  103. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +23 -26
  104. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  105. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +44 -8
  106. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  107. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +39 -0
  108. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -0
  109. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +24 -0
  110. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -0
  111. package/dist/types/src/components/ScrollContainer/index.d.ts +2 -0
  112. package/dist/types/src/components/ScrollContainer/index.d.ts.map +1 -0
  113. package/dist/types/src/components/Select/Select.d.ts +10 -10
  114. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  115. package/dist/types/src/components/Separator/Separator.d.ts +1 -1
  116. package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
  117. package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
  118. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
  119. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
  120. package/dist/types/src/components/Skeleton/index.d.ts +2 -0
  121. package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
  122. package/dist/types/src/components/Splitter/Splitter.d.ts +32 -0
  123. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
  124. package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
  125. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
  126. package/dist/types/src/components/Splitter/index.d.ts +2 -0
  127. package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
  128. package/dist/types/src/components/Status/Status.stories.d.ts +4 -2
  129. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  130. package/dist/types/src/components/Tag/Tag.d.ts +1 -1
  131. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  132. package/dist/types/src/components/Tag/Tag.stories.d.ts +0 -5
  133. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  134. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +2 -2
  135. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  136. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts +12 -0
  137. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
  138. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +1 -8
  139. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  140. package/dist/types/src/components/ThemeProvider/index.d.ts +2 -1
  141. package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -1
  142. package/dist/types/src/components/Toast/Toast.d.ts +4 -4
  143. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  144. package/dist/types/src/components/Toolbar/Toolbar.d.ts +40 -12
  145. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  146. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  147. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  148. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  149. package/dist/types/src/components/index.d.ts +13 -8
  150. package/dist/types/src/components/index.d.ts.map +1 -1
  151. package/dist/types/src/exemplars/generics.stories.d.ts +18 -0
  152. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
  153. package/dist/types/src/exemplars/slot.stories.d.ts +14 -0
  154. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -0
  155. package/dist/types/src/exemplars/tabster.stories.d.ts +8 -0
  156. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -0
  157. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  158. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  159. package/dist/types/src/hooks/useDensityContext.d.ts +1 -1
  160. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  161. package/dist/types/src/hooks/useElevationContext.d.ts +1 -1
  162. package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
  163. package/dist/types/src/index.d.ts +2 -1
  164. package/dist/types/src/index.d.ts.map +1 -1
  165. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  166. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  167. package/dist/types/src/primitives/Column/Column.d.ts +26 -0
  168. package/dist/types/src/primitives/Column/Column.d.ts.map +1 -0
  169. package/dist/types/src/primitives/Column/Column.stories.d.ts +6 -0
  170. package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -0
  171. package/dist/types/src/primitives/Column/index.d.ts +2 -0
  172. package/dist/types/src/primitives/Column/index.d.ts.map +1 -0
  173. package/dist/types/src/primitives/Container/Container.d.ts +8 -0
  174. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
  175. package/dist/types/src/primitives/Container/Container.stories.d.ts +6 -0
  176. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
  177. package/dist/types/src/primitives/Container/index.d.ts +2 -0
  178. package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
  179. package/dist/types/src/primitives/Flex/Flex.d.ts +13 -0
  180. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
  181. package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
  182. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
  183. package/dist/types/src/primitives/Flex/index.d.ts +2 -0
  184. package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
  185. package/dist/types/src/primitives/Grid/Grid.d.ts +15 -0
  186. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
  187. package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
  188. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
  189. package/dist/types/src/primitives/Grid/index.d.ts +2 -0
  190. package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
  191. package/dist/types/src/primitives/Panel/Panel.d.ts +26 -0
  192. package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -0
  193. package/dist/types/src/primitives/Panel/Panel.stories.d.ts +6 -0
  194. package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -0
  195. package/dist/types/src/primitives/Panel/index.d.ts +2 -0
  196. package/dist/types/src/primitives/Panel/index.d.ts.map +1 -0
  197. package/dist/types/src/primitives/index.d.ts +6 -0
  198. package/dist/types/src/primitives/index.d.ts.map +1 -0
  199. package/dist/types/src/testing/Loading.d.ts +9 -0
  200. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  201. package/dist/types/src/testing/decorators/index.d.ts +1 -1
  202. package/dist/types/src/testing/decorators/index.d.ts.map +1 -1
  203. package/dist/types/src/testing/decorators/withLayout.d.ts +3 -3
  204. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
  205. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts +12 -0
  206. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -0
  207. package/dist/types/src/testing/decorators/withTheme.d.ts +3 -2
  208. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  209. package/dist/types/src/testing/index.d.ts +1 -0
  210. package/dist/types/src/testing/index.d.ts.map +1 -1
  211. package/dist/types/src/translations.d.ts +11 -0
  212. package/dist/types/src/translations.d.ts.map +1 -0
  213. package/dist/types/src/util/index.d.ts +1 -2
  214. package/dist/types/src/util/index.d.ts.map +1 -1
  215. package/dist/types/tsconfig.tsbuildinfo +1 -1
  216. package/package.json +41 -29
  217. package/src/components/Avatars/Avatar.stories.tsx +5 -6
  218. package/src/components/Avatars/Avatar.tsx +6 -13
  219. package/src/components/Avatars/AvatarGroup.stories.tsx +2 -2
  220. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +4 -4
  221. package/src/components/Breadcrumb/Breadcrumb.tsx +11 -37
  222. package/src/components/{Buttons → Button}/Button.stories.tsx +4 -4
  223. package/src/components/{Buttons → Button}/Button.tsx +7 -13
  224. package/src/components/{Buttons → Button}/IconButton.stories.tsx +4 -4
  225. package/src/components/{Buttons → Button}/IconButton.tsx +20 -14
  226. package/src/components/{Buttons → Button}/Toggle.stories.tsx +7 -6
  227. package/src/components/{Buttons → Button}/ToggleGroup.stories.tsx +2 -2
  228. package/src/components/Card/Card.stories.tsx +151 -0
  229. package/src/components/Card/Card.tsx +347 -0
  230. package/src/components/Card/index.ts +5 -0
  231. package/src/components/Clipboard/CopyButton.tsx +7 -7
  232. package/src/components/DensityProvider/DensityProvider.tsx +1 -1
  233. package/src/components/Dialog/AlertDialog.stories.tsx +69 -0
  234. package/src/components/{Dialogs → Dialog}/AlertDialog.tsx +116 -16
  235. package/src/components/Dialog/Dialog.stories.tsx +122 -0
  236. package/src/components/{Dialogs → Dialog}/Dialog.tsx +179 -49
  237. package/src/components/ElevationProvider/ElevationProvider.tsx +1 -1
  238. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +50 -0
  239. package/src/components/ErrorFallback/ErrorFallback.tsx +70 -0
  240. package/src/components/ErrorFallback/ErrorStack.tsx +80 -0
  241. package/src/components/ErrorFallback/ThrowError.tsx +37 -0
  242. package/src/components/ErrorFallback/index.ts +9 -0
  243. package/src/components/Icon/Icon.stories.tsx +113 -0
  244. package/src/components/Icon/Icon.tsx +3 -3
  245. package/src/components/Image/Image.stories.tsx +86 -0
  246. package/src/components/Image/Image.tsx +223 -0
  247. package/src/components/Image/index.ts +5 -0
  248. package/src/components/Input/Input.stories.tsx +21 -40
  249. package/src/components/Input/Input.tsx +32 -68
  250. package/src/components/Link/Link.stories.tsx +2 -2
  251. package/src/components/Link/Link.tsx +2 -2
  252. package/src/components/{Lists → List}/List.stories.tsx +30 -33
  253. package/src/components/{Lists → List}/List.tsx +12 -17
  254. package/src/components/{Lists → List}/ListDropIndicator.tsx +7 -7
  255. package/src/components/{Lists → List}/Tree.stories.tsx +4 -4
  256. package/src/components/{Lists → List}/TreeDropIndicator.tsx +6 -6
  257. package/src/components/{Lists → List}/Treegrid.stories.tsx +3 -3
  258. package/src/components/{Lists → List}/Treegrid.tsx +10 -15
  259. package/src/components/Main/Main.stories.tsx +41 -23
  260. package/src/components/Main/Main.tsx +149 -92
  261. package/src/components/{Menus → Menu}/ContextMenu.stories.tsx +2 -2
  262. package/src/components/{Menus → Menu}/ContextMenu.tsx +9 -33
  263. package/src/components/{Menus → Menu}/DropdownMenu.stories.tsx +3 -3
  264. package/src/components/{Menus → Menu}/DropdownMenu.tsx +89 -68
  265. package/src/components/Message/Message.stories.tsx +26 -11
  266. package/src/components/Message/Message.tsx +46 -33
  267. package/src/components/Popover/Popover.stories.tsx +5 -5
  268. package/src/components/Popover/Popover.tsx +75 -53
  269. package/src/components/ScrollArea/ScrollArea.stories.tsx +166 -40
  270. package/src/components/ScrollArea/ScrollArea.tsx +84 -82
  271. package/src/components/ScrollArea/index.ts +1 -1
  272. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +89 -0
  273. package/src/components/ScrollContainer/ScrollContainer.tsx +238 -0
  274. package/src/components/ScrollContainer/index.ts +5 -0
  275. package/src/components/Select/Select.stories.tsx +3 -3
  276. package/src/components/Select/Select.tsx +11 -27
  277. package/src/components/Separator/Separator.tsx +1 -1
  278. package/src/components/Skeleton/Skeleton.stories.tsx +52 -0
  279. package/src/components/Skeleton/Skeleton.tsx +26 -0
  280. package/src/components/Skeleton/index.ts +5 -0
  281. package/src/components/Splitter/Splitter.stories.tsx +83 -0
  282. package/src/components/Splitter/Splitter.tsx +126 -0
  283. package/src/components/Splitter/index.ts +5 -0
  284. package/src/components/Status/Status.stories.tsx +21 -17
  285. package/src/components/Status/Status.tsx +2 -2
  286. package/src/components/Tag/Tag.stories.tsx +6 -11
  287. package/src/components/Tag/Tag.tsx +3 -8
  288. package/src/components/ThemeProvider/ThemeProvider.stories.tsx +32 -0
  289. package/src/components/ThemeProvider/ThemeProvider.tsx +5 -6
  290. package/src/components/ThemeProvider/TranslationsProvider.tsx +1 -16
  291. package/src/components/ThemeProvider/index.ts +3 -3
  292. package/src/components/Toast/Toast.stories.tsx +3 -3
  293. package/src/components/Toast/Toast.tsx +10 -14
  294. package/src/components/Toolbar/Toolbar.stories.tsx +4 -6
  295. package/src/components/Toolbar/Toolbar.tsx +193 -15
  296. package/src/components/Tooltip/Tooltip.stories.tsx +16 -14
  297. package/src/components/Tooltip/Tooltip.tsx +25 -22
  298. package/src/components/index.ts +14 -9
  299. package/src/exemplars/generics.stories.tsx +49 -0
  300. package/src/exemplars/slot.stories.tsx +107 -0
  301. package/src/exemplars/tabster.stories.tsx +127 -0
  302. package/src/exemplars/virtualizer.stories.tsx +137 -0
  303. package/src/hooks/useDensityContext.ts +1 -1
  304. package/src/hooks/useElevationContext.ts +1 -1
  305. package/src/index.ts +2 -1
  306. package/src/playground/Controls.stories.tsx +3 -10
  307. package/src/playground/Custom.stories.tsx +8 -10
  308. package/src/playground/Typography.stories.tsx +3 -3
  309. package/src/primitives/Column/Column.stories.tsx +78 -0
  310. package/src/primitives/Column/Column.tsx +134 -0
  311. package/src/primitives/Column/index.ts +5 -0
  312. package/src/primitives/Container/Container.stories.tsx +30 -0
  313. package/src/primitives/Container/Container.tsx +22 -0
  314. package/src/primitives/Container/index.ts +5 -0
  315. package/src/primitives/Flex/Flex.stories.tsx +58 -0
  316. package/src/primitives/Flex/Flex.tsx +29 -0
  317. package/src/primitives/Flex/index.ts +5 -0
  318. package/src/primitives/Grid/Grid.stories.tsx +57 -0
  319. package/src/primitives/Grid/Grid.tsx +35 -0
  320. package/src/primitives/Grid/index.ts +5 -0
  321. package/src/primitives/Panel/Panel.stories.tsx +67 -0
  322. package/src/primitives/Panel/Panel.tsx +119 -0
  323. package/src/primitives/Panel/index.ts +5 -0
  324. package/src/primitives/index.ts +9 -0
  325. package/src/testing/Loading.tsx +26 -0
  326. package/src/testing/decorators/index.ts +1 -1
  327. package/src/testing/decorators/withLayout.tsx +39 -18
  328. package/src/testing/decorators/withLayoutVariants.tsx +48 -0
  329. package/src/testing/decorators/withTheme.tsx +21 -18
  330. package/src/testing/index.ts +2 -0
  331. package/src/translations.ts +19 -0
  332. package/src/util/index.ts +2 -2
  333. package/dist/lib/browser/chunk-KX5JDELJ.mjs +0 -4521
  334. package/dist/lib/browser/chunk-KX5JDELJ.mjs.map +0 -7
  335. package/dist/lib/node-esm/chunk-3HDQYL5S.mjs +0 -4523
  336. package/dist/lib/node-esm/chunk-3HDQYL5S.mjs.map +0 -7
  337. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -15
  338. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
  339. package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
  340. package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
  341. package/dist/types/src/components/Buttons/Button.d.ts.map +0 -1
  342. package/dist/types/src/components/Buttons/Button.stories.d.ts.map +0 -1
  343. package/dist/types/src/components/Buttons/IconButton.d.ts.map +0 -1
  344. package/dist/types/src/components/Buttons/IconButton.stories.d.ts.map +0 -1
  345. package/dist/types/src/components/Buttons/Toggle.d.ts.map +0 -1
  346. package/dist/types/src/components/Buttons/Toggle.stories.d.ts +0 -13
  347. package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +0 -1
  348. package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +0 -1
  349. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +0 -1
  350. package/dist/types/src/components/Buttons/index.d.ts.map +0 -1
  351. package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +0 -1
  352. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +0 -1
  353. package/dist/types/src/components/Dialogs/Dialog.d.ts +0 -31
  354. package/dist/types/src/components/Dialogs/Dialog.d.ts.map +0 -1
  355. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +0 -1
  356. package/dist/types/src/components/Dialogs/index.d.ts.map +0 -1
  357. package/dist/types/src/components/Lists/List.d.ts.map +0 -1
  358. package/dist/types/src/components/Lists/List.stories.d.ts.map +0 -1
  359. package/dist/types/src/components/Lists/ListDropIndicator.d.ts.map +0 -1
  360. package/dist/types/src/components/Lists/Tree.d.ts.map +0 -1
  361. package/dist/types/src/components/Lists/Tree.stories.d.ts.map +0 -1
  362. package/dist/types/src/components/Lists/TreeDropIndicator.d.ts.map +0 -1
  363. package/dist/types/src/components/Lists/Treegrid.d.ts.map +0 -1
  364. package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +0 -1
  365. package/dist/types/src/components/Lists/index.d.ts.map +0 -1
  366. package/dist/types/src/components/Menus/ContextMenu.d.ts.map +0 -1
  367. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +0 -1
  368. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +0 -1
  369. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +0 -1
  370. package/dist/types/src/components/Menus/index.d.ts.map +0 -1
  371. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts +0 -12
  372. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts.map +0 -1
  373. package/dist/types/src/util/ThemedClassName.d.ts +0 -5
  374. package/dist/types/src/util/ThemedClassName.d.ts.map +0 -1
  375. package/dist/types/src/util/domino.d.ts +0 -18
  376. package/dist/types/src/util/domino.d.ts.map +0 -1
  377. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -59
  378. package/src/components/AnchoredOverflow/index.ts +0 -5
  379. package/src/components/Dialogs/AlertDialog.stories.tsx +0 -69
  380. package/src/components/Dialogs/Dialog.stories.tsx +0 -67
  381. package/src/testing/decorators/withSurfaceVariantsLayout.tsx +0 -51
  382. package/src/util/ThemedClassName.ts +0 -7
  383. package/src/util/domino.ts +0 -53
  384. /package/dist/types/src/components/{Buttons → Button}/Button.stories.d.ts +0 -0
  385. /package/dist/types/src/components/{Buttons → Button}/IconButton.stories.d.ts +0 -0
  386. /package/dist/types/src/components/{Buttons → Button}/Toggle.d.ts +0 -0
  387. /package/dist/types/src/components/{Buttons → Button}/index.d.ts +0 -0
  388. /package/dist/types/src/components/{Dialogs → Dialog}/AlertDialog.stories.d.ts +0 -0
  389. /package/dist/types/src/components/{Dialogs → Dialog}/index.d.ts +0 -0
  390. /package/dist/types/src/components/{Lists → List}/List.stories.d.ts +0 -0
  391. /package/dist/types/src/components/{Lists → List}/ListDropIndicator.d.ts +0 -0
  392. /package/dist/types/src/components/{Lists → List}/Tree.d.ts +0 -0
  393. /package/dist/types/src/components/{Lists → List}/Tree.stories.d.ts +0 -0
  394. /package/dist/types/src/components/{Lists → List}/TreeDropIndicator.d.ts +0 -0
  395. /package/dist/types/src/components/{Lists → List}/Treegrid.d.ts +0 -0
  396. /package/dist/types/src/components/{Lists → List}/Treegrid.stories.d.ts +0 -0
  397. /package/dist/types/src/components/{Lists → List}/index.d.ts +0 -0
  398. /package/dist/types/src/components/{Menus → Menu}/ContextMenu.stories.d.ts +0 -0
  399. /package/dist/types/src/components/{Menus → Menu}/DropdownMenu.stories.d.ts +0 -0
  400. /package/dist/types/src/components/{Menus → Menu}/index.d.ts +0 -0
  401. /package/src/components/{Buttons → Button}/Toggle.tsx +0 -0
  402. /package/src/components/{Buttons → Button}/ToggleGroup.tsx +0 -0
  403. /package/src/components/{Buttons → Button}/index.ts +0 -0
  404. /package/src/components/{Dialogs → Dialog}/index.ts +0 -0
  405. /package/src/components/{Lists → List}/Tree.tsx +0 -0
  406. /package/src/components/{Lists → List}/index.ts +0 -0
  407. /package/src/components/{Menus → Menu}/index.ts +0 -0
@@ -6,7 +6,7 @@ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React from 'react';
7
7
 
8
8
  import { withTheme } from '../../testing';
9
- import { Toggle } from '../Buttons';
9
+ import { Toggle } from '../Button';
10
10
  import { Icon } from '../Icon';
11
11
  import { Select } from '../Select';
12
12
 
@@ -63,18 +63,16 @@ const DefaultStory = (props: StorybookToolbarProps) => {
63
63
  </Toolbar.Button>
64
64
  <Toolbar.Separator />
65
65
  <Toolbar.Button>Test</Toolbar.Button>
66
- <Toolbar.Button>
67
- <Icon icon='ph--arrow-clockwise--regular' />
68
- </Toolbar.Button>
66
+ <Toolbar.IconButton icon='ph--arrow-clockwise--regular' label='Refresh' iconOnly />
69
67
  </Toolbar.Root>
70
68
  );
71
69
  };
72
70
 
73
71
  const meta = {
74
- title: 'ui/react-ui-core/Toolbar',
72
+ title: 'ui/react-ui-core/components/Toolbar',
75
73
  component: Toolbar as any,
76
74
  render: DefaultStory,
77
- decorators: [withTheme],
75
+ decorators: [withTheme()],
78
76
  } satisfies Meta<typeof DefaultStory>;
79
77
 
80
78
  export default meta;
@@ -2,11 +2,18 @@
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
9
  import React, { Fragment, forwardRef } from 'react';
10
+ import { useTranslation } from 'react-i18next';
11
+
12
+ import { composableProps, type ToolbarStyleProps } from '@dxos/ui-theme';
13
+ import { type SlottableProps } from '@dxos/ui-types';
8
14
 
9
15
  import { useThemeContext } from '../../hooks';
16
+ import { translationKey } from '../../translations';
10
17
  import { type ThemedClassName } from '../../util';
11
18
  import {
12
19
  Button,
@@ -18,30 +25,44 @@ import {
18
25
  Toggle,
19
26
  type ToggleGroupItemProps,
20
27
  type ToggleProps,
21
- } from '../Buttons';
28
+ } from '../Button';
22
29
  import { Link, type LinkProps } from '../Link';
30
+ import { DropdownMenu } from '../Menu';
23
31
  import { Separator, type SeparatorProps } from '../Separator';
24
32
 
33
+ //
34
+ // Root
35
+ //
36
+
25
37
  type ToolbarRootProps = ThemedClassName<
26
- ToolbarPrimitive.ToolbarProps & {
27
- layoutManaged?: boolean;
28
- textBlockWidth?: boolean;
29
- }
38
+ ToolbarPrimitive.ToolbarProps &
39
+ ToolbarStyleProps & {
40
+ textBlockWidth?: boolean;
41
+ }
30
42
  >;
31
43
 
44
+ // TODO(burdon): Implement asChild property.
32
45
  const ToolbarRoot = forwardRef<HTMLDivElement, ToolbarRootProps>(
33
- ({ classNames, children, layoutManaged, textBlockWidth: wrapContents, ...props }, forwardedRef) => {
46
+ (
47
+ { children, density, disabled, layoutManaged, textBlockWidth: textBlockWidthProp, orientation, ...props },
48
+ forwardedRef,
49
+ ) => {
50
+ const { className, dir: _, ...rest } = composableProps(props);
34
51
  const { tx } = useThemeContext();
35
- const InnerRoot = wrapContents ? 'div' : Fragment;
36
- const innerRootProps = wrapContents
37
- ? { role: 'none', className: tx('toolbar.inner', 'toolbar', { layoutManaged }, classNames) }
52
+ const InnerRoot = textBlockWidthProp ? 'div' : Fragment;
53
+ const innerRootProps = textBlockWidthProp
54
+ ? {
55
+ role: 'none',
56
+ className: tx('toolbar.inner', { layoutManaged }, className),
57
+ }
38
58
  : {};
39
59
 
40
60
  return (
41
61
  <ToolbarPrimitive.Root
42
- {...props}
43
- data-arrow-keys={props.orientation === 'vertical' ? 'up down' : 'left right'}
44
- className={tx('toolbar.root', 'toolbar', { layoutManaged }, classNames)}
62
+ {...rest}
63
+ orientation={orientation}
64
+ data-arrow-keys={orientation === 'vertical' ? 'up down' : 'left right'}
65
+ className={tx('toolbar.root', { density, disabled, layoutManaged }, className)}
45
66
  ref={forwardedRef}
46
67
  >
47
68
  <InnerRoot {...innerRootProps}>{children}</InnerRoot>
@@ -50,6 +71,27 @@ const ToolbarRoot = forwardRef<HTMLDivElement, ToolbarRootProps>(
50
71
  },
51
72
  );
52
73
 
74
+ //
75
+ // Text
76
+ //
77
+
78
+ type ToolbarTextProps = SlottableProps<HTMLDivElement>;
79
+
80
+ const ToolbarText = forwardRef<HTMLDivElement, ToolbarTextProps>(({ children, asChild, ...props }, forwardedRef) => {
81
+ const { className, ...rest } = composableProps(props);
82
+ const Comp = asChild ? Slot : Primitive.div;
83
+ const { tx } = useThemeContext();
84
+ return (
85
+ <Comp {...rest} className={tx('toolbar.text', {}, className)} ref={forwardedRef}>
86
+ {children}
87
+ </Comp>
88
+ );
89
+ });
90
+
91
+ //
92
+ // Button
93
+ //
94
+
53
95
  type ToolbarButtonProps = ButtonProps;
54
96
 
55
97
  const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>((props, forwardedRef) => {
@@ -60,12 +102,16 @@ const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>((props,
60
102
  );
61
103
  });
62
104
 
105
+ //
106
+ // IconButton
107
+ //
108
+
63
109
  type ToolbarIconButtonProps = IconButtonProps;
64
110
 
65
111
  const ToolbarIconButton = forwardRef<HTMLButtonElement, ToolbarIconButtonProps>((props, forwardedRef) => {
66
112
  return (
67
113
  <ToolbarPrimitive.Button asChild>
68
- <IconButton {...props} ref={forwardedRef} />
114
+ <IconButton {...props} noTooltip ref={forwardedRef} />
69
115
  </ToolbarPrimitive.Button>
70
116
  );
71
117
  });
@@ -80,6 +126,10 @@ const ToolbarToggle = forwardRef<HTMLButtonElement, ToolbarToggleProps>((props,
80
126
  );
81
127
  });
82
128
 
129
+ //
130
+ // Link
131
+ //
132
+
83
133
  type ToolbarLinkProps = LinkProps;
84
134
 
85
135
  const ToolbarLink = forwardRef<HTMLAnchorElement, ToolbarLinkProps>((props, forwardedRef) => {
@@ -96,6 +146,10 @@ type ToolbarToggleGroupProps = (
96
146
  ) &
97
147
  ButtonGroupProps;
98
148
 
149
+ //
150
+ // ToggleGroup
151
+ //
152
+
99
153
  const ToolbarToggleGroup = forwardRef<HTMLDivElement, ToolbarToggleGroupProps>(
100
154
  ({ classNames, children, elevation, ...props }, forwardedRef) => {
101
155
  return (
@@ -124,16 +178,31 @@ const ToolbarToggleGroupIconItem = forwardRef<HTMLButtonElement, ToolbarToggleGr
124
178
  ({ variant, density, elevation, classNames, icon, label, iconOnly, ...props }, forwardedRef) => {
125
179
  return (
126
180
  <ToolbarPrimitive.ToolbarToggleItem {...props} asChild>
127
- <IconButton {...{ variant, density, elevation, classNames, icon, label, iconOnly }} ref={forwardedRef} />
181
+ <IconButton
182
+ {...{
183
+ variant,
184
+ density,
185
+ elevation,
186
+ classNames,
187
+ icon,
188
+ label,
189
+ iconOnly,
190
+ }}
191
+ ref={forwardedRef}
192
+ />
128
193
  </ToolbarPrimitive.ToolbarToggleItem>
129
194
  );
130
195
  },
131
196
  );
132
197
 
198
+ //
199
+ // Separator
200
+ //
201
+
133
202
  type ToolbarSeparatorProps = SeparatorProps & { variant?: 'gap' | 'line' };
134
203
 
135
204
  const ToolbarSeparator = forwardRef<HTMLDivElement, ToolbarSeparatorProps>(
136
- ({ variant = 'line', ...props }, forwardedRef) => {
205
+ ({ variant = 'gap', ...props }, forwardedRef) => {
137
206
  return variant === 'line' ? (
138
207
  <ToolbarPrimitive.Separator asChild>
139
208
  <Separator {...props} ref={forwardedRef} />
@@ -144,8 +213,109 @@ const ToolbarSeparator = forwardRef<HTMLDivElement, ToolbarSeparatorProps>(
144
213
  },
145
214
  );
146
215
 
216
+ //
217
+ // DragHandle
218
+ //
219
+
220
+ type ToolbarDragHandleProps = { testId?: string; label?: string };
221
+
222
+ const ToolbarDragHandle = forwardRef<HTMLButtonElement, ToolbarDragHandleProps>(
223
+ ({ testId = 'drag-handle', label }, forwardedRef) => {
224
+ const { t } = useTranslation(translationKey);
225
+ return (
226
+ <ToolbarIconButton
227
+ data-testid={testId}
228
+ noTooltip
229
+ iconOnly
230
+ icon='ph--dots-six-vertical--regular'
231
+ variant='ghost'
232
+ label={label ?? t('toolbar drag handle label')}
233
+ classNames='cursor-pointer'
234
+ size={5}
235
+ disabled={!forwardedRef}
236
+ ref={forwardedRef}
237
+ />
238
+ );
239
+ },
240
+ );
241
+
242
+ //
243
+ // CloseIconButton
244
+ //
245
+
246
+ type ToolbarCloseIconButtonProps = { onClick?: () => void; label?: string };
247
+
248
+ const ToolbarCloseIconButton = forwardRef<HTMLButtonElement, ToolbarCloseIconButtonProps>(
249
+ ({ onClick, label }, forwardedRef) => {
250
+ const { t } = useTranslation(translationKey);
251
+ return (
252
+ <ToolbarIconButton
253
+ iconOnly
254
+ icon='ph--x--regular'
255
+ variant='ghost'
256
+ label={label ?? t('toolbar close label')}
257
+ classNames='cursor-pointer'
258
+ size={5}
259
+ onClick={onClick}
260
+ ref={forwardedRef}
261
+ />
262
+ );
263
+ },
264
+ );
265
+
266
+ //
267
+ // Menu
268
+ //
269
+
270
+ type ToolbarMenuItem<T extends any | void = void> = {
271
+ label: string;
272
+ onClick: (context: T) => void;
273
+ };
274
+
275
+ type ToolbarMenuProps<T extends any | void = void> = {
276
+ context?: T;
277
+ items?: ToolbarMenuItem<T>[];
278
+ };
279
+
280
+ // TODO(burdon): Make slottable.
281
+ const ToolbarMenu = <T extends any | void = void>({ context, items }: ToolbarMenuProps<T>) => {
282
+ const { t } = useTranslation(translationKey);
283
+
284
+ return (
285
+ <DropdownMenu.Root>
286
+ <DropdownMenu.Trigger disabled={!items?.length} asChild>
287
+ <ToolbarIconButton
288
+ iconOnly
289
+ variant='ghost'
290
+ icon='ph--dots-three-vertical--regular'
291
+ label={t('toolbar menu label')}
292
+ />
293
+ </DropdownMenu.Trigger>
294
+ {(items?.length ?? 0) > 0 && (
295
+ <DropdownMenu.Portal>
296
+ <DropdownMenu.Content>
297
+ <DropdownMenu.Viewport>
298
+ {items?.map(({ label, onClick: onSelect }, index) => (
299
+ <DropdownMenu.Item key={index} onSelect={() => onSelect(context as T)}>
300
+ {label}
301
+ </DropdownMenu.Item>
302
+ ))}
303
+ </DropdownMenu.Viewport>
304
+ <DropdownMenu.Arrow />
305
+ </DropdownMenu.Content>
306
+ </DropdownMenu.Portal>
307
+ )}
308
+ </DropdownMenu.Root>
309
+ );
310
+ };
311
+
312
+ //
313
+ // Toolbar
314
+ //
315
+
147
316
  export const Toolbar = {
148
317
  Root: ToolbarRoot,
318
+ Text: ToolbarText,
149
319
  Button: ToolbarButton,
150
320
  IconButton: ToolbarIconButton,
151
321
  Link: ToolbarLink,
@@ -154,10 +324,14 @@ export const Toolbar = {
154
324
  ToggleGroupItem: ToolbarToggleGroupItem,
155
325
  ToggleGroupIconItem: ToolbarToggleGroupIconItem,
156
326
  Separator: ToolbarSeparator,
327
+ DragHandle: ToolbarDragHandle,
328
+ CloseIconButton: ToolbarCloseIconButton,
329
+ Menu: ToolbarMenu,
157
330
  };
158
331
 
159
332
  export type {
160
333
  ToolbarRootProps,
334
+ ToolbarTextProps,
161
335
  ToolbarButtonProps,
162
336
  ToolbarIconButtonProps,
163
337
  ToolbarLinkProps,
@@ -166,4 +340,8 @@ export type {
166
340
  ToolbarToggleGroupItemProps,
167
341
  ToolbarToggleGroupIconItemProps,
168
342
  ToolbarSeparatorProps,
343
+ ToolbarDragHandleProps,
344
+ ToolbarCloseIconButtonProps,
345
+ ToolbarMenuItem,
346
+ ToolbarMenuProps,
169
347
  };
@@ -8,7 +8,7 @@ import React from 'react';
8
8
  import { faker } from '@dxos/random';
9
9
 
10
10
  import { withTheme } from '../../testing';
11
- import { Button } from '../Buttons';
11
+ import { Button } from '../Button';
12
12
 
13
13
  import { Tooltip } from './Tooltip';
14
14
 
@@ -17,23 +17,25 @@ type StoryProps = {
17
17
  defaultOpen?: boolean;
18
18
  };
19
19
 
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
- );
20
+ const DefaultStory = ({ tooltips, defaultOpen }: StoryProps) => {
21
+ return (
22
+ <Tooltip.Provider defaultOpen={defaultOpen}>
23
+ <div role='none' className='w-32'>
24
+ {tooltips.map(({ label, content }, i) => (
25
+ <Tooltip.Trigger asChild key={i} content={content} side='right'>
26
+ <Button classNames='block w-full'>{label}</Button>
27
+ </Tooltip.Trigger>
28
+ ))}
29
+ </div>
30
+ </Tooltip.Provider>
31
+ );
32
+ };
31
33
 
32
34
  const meta = {
33
- title: 'ui/react-ui-core/Tooltip',
35
+ title: 'ui/react-ui-core/components/Tooltip',
34
36
  component: Tooltip as any,
35
37
  render: DefaultStory,
36
- decorators: [withTheme],
38
+ decorators: [withTheme()],
37
39
  } satisfies Meta<typeof DefaultStory>;
38
40
 
39
41
  export default meta;
@@ -3,6 +3,7 @@
3
3
  //
4
4
 
5
5
  // This is based upon `@radix-ui/react-tooltip` fetched 17 March 2025 at https://github.com/radix-ui/primitives at commit 6e75e11.
6
+ // TODO(burdon): Replace with https://ui.shadcn.com/docs/components/radix/tooltip
6
7
 
7
8
  import { composeEventHandlers } from '@radix-ui/primitive';
8
9
  import { useComposedRefs } from '@radix-ui/react-compose-refs';
@@ -41,9 +42,9 @@ type TooltipScopedProps<P = {}> = P & { __scopeTooltip?: Scope };
41
42
  const [createTooltipContext, createTooltipScope] = createContextScope('Tooltip', [createPopperScope]);
42
43
  const usePopperScope = createPopperScope();
43
44
 
44
- /* -------------------------------------------------------------------------------------------------
45
- * Tooltip
46
- * ----------------------------------------------------------------------------------------------- */
45
+ //
46
+ // Tooltip
47
+ //
47
48
 
48
49
  const DEFAULT_DELAY_DURATION = 700;
49
50
  const TOOLTIP_OPEN = 'tooltip.open';
@@ -215,9 +216,9 @@ const TooltipProvider: FC<TooltipProviderProps> = (props: TooltipScopedProps<Too
215
216
  isPointerInTransitRef.current = inTransit;
216
217
  }, [])}
217
218
  >
218
- <TooltipContent side={side} className={tx('tooltip.content', 'tooltip', { elevation })}>
219
+ <TooltipContent side={side} className={tx('tooltip.content', { elevation })}>
219
220
  {content}
220
- <TooltipArrow className={tx('tooltip.arrow', 'tooltip__arrow')} />
221
+ <TooltipArrow className={tx('tooltip.arrow')} />
221
222
  </TooltipContent>
222
223
  <TooltipVirtualTrigger virtualRef={triggerRef as RefObject<HTMLButtonElement>} />
223
224
  {children}
@@ -228,9 +229,9 @@ const TooltipProvider: FC<TooltipProviderProps> = (props: TooltipScopedProps<Too
228
229
 
229
230
  TooltipProvider.displayName = TOOLTIP_NAME;
230
231
 
231
- /* -------------------------------------------------------------------------------------------------
232
- * TooltipVirtualTrigger
233
- * ----------------------------------------------------------------------------------------------- */
232
+ //
233
+ // TooltipVirtualTrigger
234
+ //
234
235
 
235
236
  const TooltipVirtualTrigger = ({
236
237
  virtualRef,
@@ -240,9 +241,9 @@ const TooltipVirtualTrigger = ({
240
241
  return <PopperPrimitive.Anchor asChild {...popperScope} virtualRef={virtualRef} />;
241
242
  };
242
243
 
243
- /* -------------------------------------------------------------------------------------------------
244
- * TooltipTrigger
245
- * ----------------------------------------------------------------------------------------------- */
244
+ //
245
+ // TooltipTrigger
246
+ //
246
247
 
247
248
  const TRIGGER_NAME = 'TooltipTrigger';
248
249
 
@@ -322,9 +323,9 @@ const TooltipTrigger = forwardRef<TooltipTriggerElement, TooltipTriggerProps>(
322
323
 
323
324
  TooltipTrigger.displayName = TRIGGER_NAME;
324
325
 
325
- /* -------------------------------------------------------------------------------------------------
326
- * TooltipPortal
327
- * ----------------------------------------------------------------------------------------------- */
326
+ //
327
+ // TooltipPortal
328
+ //
328
329
 
329
330
  const PORTAL_NAME = 'TooltipPortal';
330
331
 
@@ -363,9 +364,9 @@ const TooltipPortal: FC<TooltipPortalProps> = (props: TooltipScopedProps<Tooltip
363
364
 
364
365
  TooltipPortal.displayName = PORTAL_NAME;
365
366
 
366
- /* -------------------------------------------------------------------------------------------------
367
- * TooltipContent
368
- * ----------------------------------------------------------------------------------------------- */
367
+ //
368
+ // TooltipContent
369
+ //
369
370
 
370
371
  const CONTENT_NAME = 'TooltipContent';
371
372
 
@@ -574,9 +575,9 @@ const TooltipContentImpl = forwardRef<TooltipContentImplElement, TooltipContentI
574
575
 
575
576
  TooltipContent.displayName = CONTENT_NAME;
576
577
 
577
- /* -------------------------------------------------------------------------------------------------
578
- * TooltipArrow
579
- * ----------------------------------------------------------------------------------------------- */
578
+ //
579
+ // TooltipArrow
580
+ //
580
581
 
581
582
  const ARROW_NAME = 'TooltipArrow';
582
583
 
@@ -599,8 +600,6 @@ const TooltipArrow = forwardRef<TooltipArrowElement, TooltipArrowProps>(
599
600
 
600
601
  TooltipArrow.displayName = ARROW_NAME;
601
602
 
602
- /* ----------------------------------------------------------------------------------------------- */
603
-
604
603
  type TooltipSide = NonNullable<TooltipContentProps['side']>;
605
604
 
606
605
  const getExitSideFromRect = (point: Point, rect: DOMRect): TooltipSide => {
@@ -755,6 +754,10 @@ const getHullPresorted = <P extends Point>(points: Readonly<Array<P>>): Array<P>
755
754
  }
756
755
  };
757
756
 
757
+ //
758
+ // Tooltip
759
+ //
760
+
758
761
  export const Tooltip = {
759
762
  Provider: TooltipProvider,
760
763
  Trigger: TooltipTrigger,
@@ -2,29 +2,34 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- export * from './AnchoredOverflow';
5
+ export * from './DensityProvider';
6
+ export * from './ElevationProvider';
7
+ export * from './ThemeProvider';
8
+
6
9
  export * from './Avatars';
7
10
  export * from './Breadcrumb';
8
- export * from './Buttons';
11
+ export * from './Button';
12
+ export * from './Card';
9
13
  export * from './Clipboard';
10
- export * from './Dialogs';
14
+ export * from './Dialog';
15
+ export * from './ErrorFallback';
11
16
  export * from './Icon';
17
+ export * from './Image';
12
18
  export * from './Input';
13
19
  export * from './Link';
14
- export * from './Lists';
20
+ export * from './List';
15
21
  export * from './Main';
16
- export * from './Menus';
22
+ export * from './Menu';
17
23
  export * from './Message';
18
24
  export * from './Popover';
19
25
  export * from './Status';
20
26
  export * from './ScrollArea';
27
+ export * from './ScrollContainer';
21
28
  export * from './Select';
22
29
  export * from './Separator';
30
+ export * from './Skeleton';
31
+ export * from './Splitter';
23
32
  export * from './Tag';
24
33
  export * from './Toast';
25
34
  export * from './Toolbar';
26
35
  export * from './Tooltip';
27
-
28
- export * from './DensityProvider';
29
- export * from './ElevationProvider';
30
- export * from './ThemeProvider';
@@ -0,0 +1,49 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+ import React, { type ReactElement, type Ref, forwardRef } from 'react';
7
+
8
+ import { type SlottableProps } from '@dxos/ui-types';
9
+
10
+ import { withTheme } from '../testing';
11
+
12
+ const ComponentInner = forwardRef<HTMLDivElement, ComponentProps>(({ children, ...props }, forwardedRef) => {
13
+ return (
14
+ <div {...props} ref={forwardedRef}>
15
+ {children}
16
+ </div>
17
+ );
18
+ });
19
+
20
+ ComponentInner.displayName = 'Component';
21
+
22
+ /**
23
+ * Generic component pattern.
24
+ */
25
+ type ComponentProps<P extends HTMLElement = any> = SlottableProps<P>;
26
+
27
+ const Component = ComponentInner as <P extends HTMLElement>(
28
+ props: SlottableProps<P> & { ref?: Ref<P> },
29
+ ) => ReactElement;
30
+
31
+ const meta = {
32
+ title: 'ui/react-ui-core/exemplars/generics',
33
+ component: Component,
34
+ render: (props) => <Component<HTMLDivElement> {...props} />,
35
+ decorators: [withTheme()],
36
+ parameters: {
37
+ layout: 'centered',
38
+ },
39
+ } satisfies Meta;
40
+
41
+ export default meta;
42
+
43
+ type Story = StoryObj<typeof meta>;
44
+
45
+ export const Default: Story = {
46
+ args: {
47
+ children: 'Hello',
48
+ },
49
+ };