@dxos/react-ui 0.8.4-main.937b3ca → 0.8.4-main.9be5663bfe

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 (340) hide show
  1. package/dist/lib/browser/{chunk-CEKVHJ27.mjs → chunk-OCVRIJCH.mjs} +184 -110
  2. package/dist/lib/browser/chunk-OCVRIJCH.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +3033 -1990
  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 +73 -37
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/{chunk-2NHEX4AD.mjs → chunk-QUD5P3RU.mjs} +184 -110
  9. package/dist/lib/node-esm/chunk-QUD5P3RU.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +3033 -1990
  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 +73 -37
  14. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  15. package/dist/types/src/components/Avatars/Avatar.d.ts +1 -1
  16. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
  17. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  18. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
  19. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  20. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  21. package/dist/types/src/components/Button/Button.d.ts +2 -2
  22. package/dist/types/src/components/Button/Button.d.ts.map +1 -1
  23. package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -1
  24. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -1
  25. package/dist/types/src/components/Button/IconButton.stories.d.ts +3 -0
  26. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -1
  27. package/dist/types/src/components/Button/Toggle.d.ts +2 -2
  28. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -1
  29. package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -1
  30. package/dist/types/src/components/Button/ToggleGroup.d.ts +6 -6
  31. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -1
  32. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -1
  33. package/dist/types/src/components/Card/Card.d.ts +118 -0
  34. package/dist/types/src/components/Card/Card.d.ts.map +1 -0
  35. package/dist/types/src/components/Card/Card.stories.d.ts +21 -0
  36. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
  37. package/dist/types/src/components/Card/index.d.ts +2 -0
  38. package/dist/types/src/components/Card/index.d.ts.map +1 -0
  39. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  40. package/dist/types/src/components/Clipboard/index.d.ts +10 -1
  41. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  42. package/dist/types/src/components/Dialog/AlertDialog.d.ts +37 -19
  43. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -1
  44. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -1
  45. package/dist/types/src/components/Dialog/Dialog.d.ts +44 -22
  46. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
  47. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +6 -8
  48. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
  49. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
  50. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  51. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
  52. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
  53. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +19 -0
  54. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
  55. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
  56. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
  57. package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
  58. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
  59. package/dist/types/src/components/Focus/Focus.d.ts +36 -0
  60. package/dist/types/src/components/Focus/Focus.d.ts.map +1 -0
  61. package/dist/types/src/components/Focus/Focus.stories.d.ts +9 -0
  62. package/dist/types/src/components/Focus/Focus.stories.d.ts.map +1 -0
  63. package/dist/types/src/components/Focus/index.d.ts +2 -0
  64. package/dist/types/src/components/Focus/index.d.ts.map +1 -0
  65. package/dist/types/src/components/Icon/Icon.d.ts +3 -0
  66. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  67. package/dist/types/src/components/Icon/Icon.stories.d.ts +11 -3
  68. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -1
  69. package/dist/types/src/components/Image/Image.d.ts +14 -0
  70. package/dist/types/src/components/Image/Image.d.ts.map +1 -0
  71. package/dist/types/src/components/Image/Image.stories.d.ts +33 -0
  72. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
  73. package/dist/types/src/components/Image/index.d.ts +2 -0
  74. package/dist/types/src/components/Image/index.d.ts.map +1 -0
  75. package/dist/types/src/components/Input/Input.d.ts +4 -7
  76. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  77. package/dist/types/src/components/Input/Input.stories.d.ts +7 -7
  78. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  79. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  80. package/dist/types/src/components/List/List.d.ts +5 -3
  81. package/dist/types/src/components/List/List.d.ts.map +1 -1
  82. package/dist/types/src/components/List/List.stories.d.ts +3 -1
  83. package/dist/types/src/components/List/List.stories.d.ts.map +1 -1
  84. package/dist/types/src/components/List/Tree.d.ts.map +1 -1
  85. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -1
  86. package/dist/types/src/components/List/Treegrid.d.ts +5 -9
  87. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -1
  88. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -1
  89. package/dist/types/src/components/Main/Main.d.ts +9 -10
  90. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  91. package/dist/types/src/components/Main/Main.stories.d.ts +0 -3
  92. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  93. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -1
  94. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -1
  95. package/dist/types/src/components/Menu/DropdownMenu.d.ts +51 -50
  96. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -1
  97. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +14 -1
  98. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -1
  99. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  100. package/dist/types/src/components/Message/Message.stories.d.ts +4 -5
  101. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  102. package/dist/types/src/components/Popover/Popover.d.ts +32 -23
  103. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  104. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  105. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +26 -28
  106. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  107. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +54 -9
  108. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  109. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +34 -13
  110. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
  111. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +9 -5
  112. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -1
  113. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  114. package/dist/types/src/components/Select/Select.stories.d.ts +2 -2
  115. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/Separator/Separator.d.ts +3 -3
  117. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
  118. package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
  119. package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
  120. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
  121. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
  122. package/dist/types/src/components/Skeleton/index.d.ts +2 -0
  123. package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
  124. package/dist/types/src/components/Splitter/Splitter.d.ts +34 -0
  125. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
  126. package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
  127. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
  128. package/dist/types/src/components/Splitter/index.d.ts +2 -0
  129. package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
  130. package/dist/types/src/components/Status/Status.d.ts +3 -4
  131. package/dist/types/src/components/Status/Status.d.ts.map +1 -1
  132. package/dist/types/src/components/Status/Status.stories.d.ts +4 -2
  133. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  134. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  135. package/dist/types/src/components/Tag/Tag.stories.d.ts +0 -5
  136. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  137. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +2 -1
  138. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  139. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts +12 -0
  140. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
  141. package/dist/types/src/components/Toast/Toast.d.ts +15 -15
  142. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  143. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  144. package/dist/types/src/components/Toolbar/Toolbar.d.ts +30 -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 +9 -9
  148. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  149. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +2 -2
  150. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  151. package/dist/types/src/components/index.d.ts +9 -4
  152. package/dist/types/src/components/index.d.ts.map +1 -1
  153. package/dist/types/src/exemplars/generics.stories.d.ts +19 -0
  154. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
  155. package/dist/types/src/exemplars/slot.stories.d.ts +15 -0
  156. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -0
  157. package/dist/types/src/exemplars/tabster.stories.d.ts +8 -0
  158. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -0
  159. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  160. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  161. package/dist/types/src/hooks/index.d.ts +1 -0
  162. package/dist/types/src/hooks/index.d.ts.map +1 -1
  163. package/dist/types/src/hooks/useDensityContext.d.ts +1 -1
  164. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  165. package/dist/types/src/index.d.ts +1 -0
  166. package/dist/types/src/index.d.ts.map +1 -1
  167. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  168. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  169. package/dist/types/src/primitives/Column/Column.d.ts +35 -0
  170. package/dist/types/src/primitives/Column/Column.d.ts.map +1 -0
  171. package/dist/types/src/primitives/Column/Column.stories.d.ts +25 -0
  172. package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -0
  173. package/dist/types/src/primitives/Column/index.d.ts +2 -0
  174. package/dist/types/src/primitives/Column/index.d.ts.map +1 -0
  175. package/dist/types/src/primitives/Container/Container.d.ts +7 -0
  176. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
  177. package/dist/types/src/primitives/Container/Container.stories.d.ts +6 -0
  178. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
  179. package/dist/types/src/primitives/Container/index.d.ts +2 -0
  180. package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
  181. package/dist/types/src/primitives/Flex/Flex.d.ts +11 -0
  182. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
  183. package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
  184. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
  185. package/dist/types/src/primitives/Flex/index.d.ts +2 -0
  186. package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
  187. package/dist/types/src/primitives/Grid/Grid.d.ts +10 -0
  188. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
  189. package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
  190. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
  191. package/dist/types/src/primitives/Grid/index.d.ts +2 -0
  192. package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
  193. package/dist/types/src/primitives/Panel/Panel.d.ts +35 -0
  194. package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -0
  195. package/dist/types/src/primitives/Panel/Panel.stories.d.ts +6 -0
  196. package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -0
  197. package/dist/types/src/primitives/Panel/index.d.ts +2 -0
  198. package/dist/types/src/primitives/Panel/index.d.ts.map +1 -0
  199. package/dist/types/src/primitives/index.d.ts +6 -0
  200. package/dist/types/src/primitives/index.d.ts.map +1 -0
  201. package/dist/types/src/testing/Loading.d.ts +9 -0
  202. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  203. package/dist/types/src/testing/decorators/withLayout.d.ts +1 -1
  204. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
  205. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -1
  206. package/dist/types/src/testing/decorators/withTheme.d.ts +3 -2
  207. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  208. package/dist/types/src/testing/index.d.ts +1 -0
  209. package/dist/types/src/testing/index.d.ts.map +1 -1
  210. package/dist/types/src/translations.d.ts +11 -0
  211. package/dist/types/src/translations.d.ts.map +1 -0
  212. package/dist/types/src/util/usePx.d.ts.map +1 -1
  213. package/dist/types/tsconfig.tsbuildinfo +1 -1
  214. package/package.json +27 -22
  215. package/src/components/Avatars/Avatar.stories.tsx +7 -9
  216. package/src/components/Avatars/Avatar.tsx +6 -14
  217. package/src/components/Avatars/AvatarGroup.stories.tsx +2 -3
  218. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +3 -4
  219. package/src/components/Breadcrumb/Breadcrumb.tsx +11 -37
  220. package/src/components/Button/Button.stories.tsx +3 -4
  221. package/src/components/Button/Button.tsx +11 -25
  222. package/src/components/Button/IconButton.stories.tsx +8 -6
  223. package/src/components/Button/IconButton.tsx +2 -4
  224. package/src/components/Button/Toggle.stories.tsx +2 -3
  225. package/src/components/Button/Toggle.tsx +4 -4
  226. package/src/components/Button/ToggleGroup.stories.tsx +2 -3
  227. package/src/components/Button/ToggleGroup.tsx +12 -16
  228. package/src/components/Card/Card.stories.tsx +151 -0
  229. package/src/components/Card/Card.tsx +492 -0
  230. package/src/components/Card/index.ts +5 -0
  231. package/src/components/Clipboard/CopyButton.tsx +4 -5
  232. package/src/components/Dialog/AlertDialog.stories.tsx +16 -17
  233. package/src/components/Dialog/AlertDialog.tsx +123 -82
  234. package/src/components/Dialog/Dialog.stories.tsx +100 -20
  235. package/src/components/Dialog/Dialog.tsx +113 -87
  236. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +45 -0
  237. package/src/components/ErrorFallback/ErrorFallback.tsx +70 -0
  238. package/src/components/ErrorFallback/ErrorStack.tsx +114 -0
  239. package/src/components/ErrorFallback/ThrowError.tsx +37 -0
  240. package/src/components/ErrorFallback/index.ts +9 -0
  241. package/src/components/Focus/AUDIT.md +43 -0
  242. package/src/components/Focus/Focus.stories.tsx +230 -0
  243. package/src/components/Focus/Focus.tsx +201 -0
  244. package/src/components/Focus/index.ts +5 -0
  245. package/src/components/Icon/Icon.stories.tsx +45 -15
  246. package/src/components/Icon/Icon.tsx +6 -2
  247. package/src/components/Image/Image.stories.tsx +86 -0
  248. package/src/components/Image/Image.tsx +223 -0
  249. package/src/components/Image/index.ts +5 -0
  250. package/src/components/Input/Input.stories.tsx +20 -40
  251. package/src/components/Input/Input.tsx +24 -69
  252. package/src/components/Link/Link.stories.tsx +2 -3
  253. package/src/components/Link/Link.tsx +2 -2
  254. package/src/components/List/List.stories.tsx +15 -23
  255. package/src/components/List/List.tsx +16 -20
  256. package/src/components/List/ListDropIndicator.tsx +7 -7
  257. package/src/components/List/Tree.stories.tsx +5 -6
  258. package/src/components/List/Tree.tsx +0 -1
  259. package/src/components/List/TreeDropIndicator.tsx +6 -6
  260. package/src/components/List/Treegrid.stories.tsx +29 -30
  261. package/src/components/List/Treegrid.tsx +23 -28
  262. package/src/components/Main/Main.stories.tsx +41 -24
  263. package/src/components/Main/Main.tsx +139 -83
  264. package/src/components/Menu/ContextMenu.stories.tsx +2 -3
  265. package/src/components/Menu/ContextMenu.tsx +9 -33
  266. package/src/components/Menu/DropdownMenu.stories.tsx +2 -3
  267. package/src/components/Menu/DropdownMenu.tsx +58 -52
  268. package/src/components/Message/Message.stories.tsx +26 -12
  269. package/src/components/Message/Message.tsx +14 -30
  270. package/src/components/Popover/Popover.stories.tsx +7 -8
  271. package/src/components/Popover/Popover.tsx +62 -59
  272. package/src/components/ScrollArea/ScrollArea.stories.tsx +214 -75
  273. package/src/components/ScrollArea/ScrollArea.tsx +85 -113
  274. package/src/components/ScrollArea/index.ts +1 -1
  275. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +47 -26
  276. package/src/components/ScrollContainer/ScrollContainer.tsx +206 -92
  277. package/src/components/Select/Select.stories.tsx +7 -8
  278. package/src/components/Select/Select.tsx +11 -27
  279. package/src/components/Separator/Separator.tsx +5 -8
  280. package/src/components/Skeleton/Skeleton.stories.tsx +51 -0
  281. package/src/components/Skeleton/Skeleton.tsx +26 -0
  282. package/src/components/Skeleton/index.ts +5 -0
  283. package/src/components/Splitter/Splitter.stories.tsx +83 -0
  284. package/src/components/Splitter/Splitter.tsx +127 -0
  285. package/src/components/Splitter/index.ts +5 -0
  286. package/src/components/Status/Status.stories.tsx +21 -18
  287. package/src/components/Status/Status.tsx +10 -7
  288. package/src/components/Tag/Tag.stories.tsx +4 -10
  289. package/src/components/Tag/Tag.tsx +2 -7
  290. package/src/components/ThemeProvider/ThemeProvider.stories.tsx +31 -0
  291. package/src/components/ThemeProvider/ThemeProvider.tsx +9 -7
  292. package/src/components/Toast/Toast.stories.tsx +2 -3
  293. package/src/components/Toast/Toast.tsx +22 -41
  294. package/src/components/Toolbar/Toolbar.stories.tsx +2 -3
  295. package/src/components/Toolbar/Toolbar.tsx +173 -26
  296. package/src/components/Tooltip/Tooltip.stories.tsx +20 -19
  297. package/src/components/Tooltip/Tooltip.tsx +18 -18
  298. package/src/components/index.ts +10 -5
  299. package/src/exemplars/generics.stories.tsx +41 -0
  300. package/src/exemplars/slot.stories.tsx +117 -0
  301. package/src/exemplars/tabster.stories.tsx +127 -0
  302. package/src/exemplars/virtualizer.stories.tsx +137 -0
  303. package/src/hooks/index.ts +1 -0
  304. package/src/hooks/useDensityContext.ts +2 -2
  305. package/src/index.ts +1 -0
  306. package/src/playground/Controls.stories.tsx +3 -10
  307. package/src/playground/Custom.stories.tsx +15 -18
  308. package/src/playground/Typography.stories.tsx +3 -3
  309. package/src/primitives/Column/AUDIT.md +354 -0
  310. package/src/primitives/Column/Column.stories.tsx +183 -0
  311. package/src/primitives/Column/Column.tsx +169 -0
  312. package/src/primitives/Column/index.ts +5 -0
  313. package/src/primitives/Container/Container.stories.tsx +29 -0
  314. package/src/primitives/Container/Container.tsx +19 -0
  315. package/src/primitives/Container/index.ts +5 -0
  316. package/src/primitives/Flex/Flex.stories.tsx +57 -0
  317. package/src/primitives/Flex/Flex.tsx +27 -0
  318. package/src/primitives/Flex/index.ts +5 -0
  319. package/src/primitives/Grid/Grid.stories.tsx +56 -0
  320. package/src/primitives/Grid/Grid.tsx +30 -0
  321. package/src/primitives/Grid/index.ts +5 -0
  322. package/src/primitives/Panel/Panel.stories.tsx +68 -0
  323. package/src/primitives/Panel/Panel.tsx +120 -0
  324. package/src/primitives/Panel/index.ts +5 -0
  325. package/src/primitives/index.ts +9 -0
  326. package/src/testing/Loading.tsx +47 -0
  327. package/src/testing/decorators/withLayout.tsx +21 -7
  328. package/src/testing/decorators/withLayoutVariants.tsx +18 -21
  329. package/src/testing/decorators/withTheme.tsx +24 -19
  330. package/src/testing/index.ts +2 -0
  331. package/src/translations.ts +19 -0
  332. package/src/util/usePx.ts +1 -0
  333. package/dist/lib/browser/chunk-CEKVHJ27.mjs.map +0 -7
  334. package/dist/lib/node-esm/chunk-2NHEX4AD.mjs.map +0 -7
  335. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -15
  336. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
  337. package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
  338. package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
  339. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -59
  340. package/src/components/AnchoredOverflow/index.ts +0 -5
@@ -17,9 +17,9 @@ import { useControllableState } from '@radix-ui/react-use-controllable-state';
17
17
  import React, {
18
18
  type ComponentPropsWithRef,
19
19
  type ComponentPropsWithoutRef,
20
- type ElementRef,
20
+ type ComponentRef,
21
21
  type FC,
22
- type MutableRefObject,
22
+ PropsWithChildren,
23
23
  type ReactNode,
24
24
  type RefObject,
25
25
  forwardRef,
@@ -47,7 +47,7 @@ const useMenuScope: (scope?: Scope) => any = createMenuScope();
47
47
 
48
48
  type DropdownMenuContextValue = {
49
49
  triggerId: string;
50
- triggerRef: MutableRefObject<HTMLButtonElement | null>;
50
+ triggerRef: RefObject<HTMLButtonElement | null>;
51
51
  contentId: string;
52
52
  open: boolean;
53
53
  onOpenChange(open: boolean): void;
@@ -58,17 +58,23 @@ type DropdownMenuContextValue = {
58
58
  const [DropdownMenuProvider, useDropdownMenuContext] =
59
59
  createDropdownMenuContext<DropdownMenuContextValue>(DROPDOWN_MENU_NAME);
60
60
 
61
- interface DropdownMenuRootProps {
62
- children?: ReactNode;
61
+ type DropdownMenuRootProps = PropsWithChildren<{
63
62
  dir?: Direction;
63
+ modal?: boolean;
64
64
  open?: boolean;
65
65
  defaultOpen?: boolean;
66
66
  onOpenChange?(open: boolean): void;
67
- modal?: boolean;
68
- }
69
-
70
- const DropdownMenuRoot: FC<DropdownMenuRootProps> = (props: ScopedProps<DropdownMenuRootProps>) => {
71
- const { __scopeDropdownMenu, children, dir, open: openProp, defaultOpen, onOpenChange, modal = true } = props;
67
+ }>;
68
+
69
+ const DropdownMenuRoot = ({
70
+ __scopeDropdownMenu,
71
+ children,
72
+ dir,
73
+ modal = true,
74
+ open: openProp,
75
+ defaultOpen,
76
+ onOpenChange,
77
+ }: ScopedProps<DropdownMenuRootProps>) => {
72
78
  const menuScope = useMenuScope(__scopeDropdownMenu);
73
79
  const triggerRef = useRef<HTMLButtonElement | null>(null);
74
80
  const [open = false, setOpen] = useControllableState({
@@ -81,14 +87,14 @@ const DropdownMenuRoot: FC<DropdownMenuRootProps> = (props: ScopedProps<Dropdown
81
87
  <DropdownMenuProvider
82
88
  scope={__scopeDropdownMenu}
83
89
  triggerId={useId()}
84
- triggerRef={triggerRef as MutableRefObject<HTMLButtonElement | null>}
90
+ triggerRef={triggerRef}
85
91
  contentId={useId()}
86
92
  open={open}
87
93
  onOpenChange={setOpen}
88
94
  onOpenToggle={useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}
89
95
  modal={modal}
90
96
  >
91
- <MenuPrimitive.Root {...menuScope} open={open} onOpenChange={setOpen} dir={dir} modal={modal}>
97
+ <MenuPrimitive.Root {...menuScope} dir={dir} modal={modal} open={open} onOpenChange={setOpen}>
92
98
  {children}
93
99
  </MenuPrimitive.Root>
94
100
  </DropdownMenuProvider>
@@ -103,9 +109,9 @@ DropdownMenuRoot.displayName = DROPDOWN_MENU_NAME;
103
109
 
104
110
  const TRIGGER_NAME = 'DropdownMenuTrigger';
105
111
 
106
- type DropdownMenuTriggerElement = ElementRef<typeof Primitive.button>;
112
+ type DropdownMenuTriggerElement = ComponentRef<typeof Primitive.button>;
107
113
  type PrimitiveButtonProps = ComponentPropsWithoutRef<typeof Primitive.button>;
108
- interface DropdownMenuTriggerProps extends PrimitiveButtonProps {}
114
+ type DropdownMenuTriggerProps = PrimitiveButtonProps;
109
115
 
110
116
  const DropdownMenuTrigger = forwardRef<DropdownMenuTriggerElement, DropdownMenuTriggerProps>(
111
117
  (props: ScopedProps<DropdownMenuTriggerProps>, forwardedRef) => {
@@ -168,9 +174,9 @@ DropdownMenuTrigger.displayName = TRIGGER_NAME;
168
174
 
169
175
  const VIRTUAL_TRIGGER_NAME = 'DropdownMenuVirtualTrigger';
170
176
 
171
- interface DropdownMenuVirtualTriggerProps {
177
+ type DropdownMenuVirtualTriggerProps = {
172
178
  virtualRef: RefObject<DropdownMenuTriggerElement | null>;
173
- }
179
+ };
174
180
 
175
181
  const DropdownMenuVirtualTrigger = (props: ScopedProps<DropdownMenuVirtualTriggerProps>) => {
176
182
  const { __scopeDropdownMenu, virtualRef } = props;
@@ -193,7 +199,7 @@ DropdownMenuVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME;
193
199
  const PORTAL_NAME = 'DropdownMenuPortal';
194
200
 
195
201
  type MenuPortalProps = ComponentPropsWithoutRef<typeof MenuPrimitive.Portal>;
196
- interface DropdownMenuPortalProps extends MenuPortalProps {}
202
+ type DropdownMenuPortalProps = MenuPortalProps;
197
203
 
198
204
  const DropdownMenuPortal: FC<DropdownMenuPortalProps> = (props: ScopedProps<DropdownMenuPortalProps>) => {
199
205
  const { __scopeDropdownMenu, ...portalProps } = props;
@@ -214,11 +220,11 @@ type DropdownMenuViewportProps = ThemedClassName<ComponentPropsWithRef<typeof Pr
214
220
  const DropdownMenuViewport = forwardRef<HTMLDivElement, DropdownMenuViewportProps>(
215
221
  ({ classNames, asChild, children, ...props }, forwardedRef) => {
216
222
  const { tx } = useThemeContext();
217
- const Root = asChild ? Slot : Primitive.div;
223
+ const Comp = asChild ? Slot : Primitive.div;
218
224
  return (
219
- <Root {...props} className={tx('menu.viewport', 'menu__viewport', {}, classNames)} ref={forwardedRef}>
225
+ <Comp {...props} className={tx('menu.viewport', {}, classNames)} ref={forwardedRef}>
220
226
  {children}
221
- </Root>
227
+ </Comp>
222
228
  );
223
229
  },
224
230
  );
@@ -229,9 +235,9 @@ const DropdownMenuViewport = forwardRef<HTMLDivElement, DropdownMenuViewportProp
229
235
 
230
236
  const CONTENT_NAME = 'DropdownMenuContent';
231
237
 
232
- type DropdownMenuContentElement = ElementRef<typeof MenuPrimitive.Content>;
238
+ type DropdownMenuContentElement = ComponentRef<typeof MenuPrimitive.Content>;
233
239
  type MenuContentProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.Content>>;
234
- interface DropdownMenuContentProps extends Omit<MenuContentProps, 'onEntryFocus'> {}
240
+ type DropdownMenuContentProps = Omit<MenuContentProps, 'onEntryFocus'>;
235
241
 
236
242
  const DropdownMenuContent = forwardRef<DropdownMenuContentElement, DropdownMenuContentProps>(
237
243
  (props: ScopedProps<DropdownMenuContentProps>, forwardedRef) => {
@@ -283,7 +289,7 @@ const DropdownMenuContent = forwardRef<DropdownMenuContentElement, DropdownMenuC
283
289
  }
284
290
  })}
285
291
  data-arrow-keys='up down'
286
- className={tx('menu.content', 'menu', { elevation }, classNames)}
292
+ className={tx('menu.content', { elevation }, classNames)}
287
293
  style={{
288
294
  ...props.style,
289
295
  // re-namespace exposed content custom properties
@@ -308,9 +314,9 @@ DropdownMenuContent.displayName = CONTENT_NAME;
308
314
 
309
315
  const GROUP_NAME = 'DropdownMenuGroup';
310
316
 
311
- type DropdownMenuGroupElement = ElementRef<typeof MenuPrimitive.Group>;
317
+ type DropdownMenuGroupElement = ComponentRef<typeof MenuPrimitive.Group>;
312
318
  type MenuGroupProps = ComponentPropsWithoutRef<typeof MenuPrimitive.Group>;
313
- interface DropdownMenuGroupProps extends MenuGroupProps {}
319
+ type DropdownMenuGroupProps = MenuGroupProps;
314
320
 
315
321
  const DropdownMenuGroup = forwardRef<DropdownMenuGroupElement, DropdownMenuGroupProps>(
316
322
  (props: ScopedProps<DropdownMenuGroupProps>, forwardedRef) => {
@@ -328,9 +334,9 @@ DropdownMenuGroup.displayName = GROUP_NAME;
328
334
 
329
335
  const LABEL_NAME = 'DropdownMenuLabel';
330
336
 
331
- type DropdownMenuLabelElement = ElementRef<typeof MenuPrimitive.Label>;
337
+ type DropdownMenuLabelElement = ComponentRef<typeof MenuPrimitive.Label>;
332
338
  type MenuLabelProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.Label>>;
333
- interface DropdownMenuLabelProps extends MenuLabelProps {}
339
+ type DropdownMenuLabelProps = MenuLabelProps;
334
340
 
335
341
  const DropdownMenuGroupLabel = forwardRef<DropdownMenuLabelElement, DropdownMenuLabelProps>(
336
342
  (props: ScopedProps<DropdownMenuLabelProps>, forwardedRef) => {
@@ -341,7 +347,7 @@ const DropdownMenuGroupLabel = forwardRef<DropdownMenuLabelElement, DropdownMenu
341
347
  <MenuPrimitive.Label
342
348
  {...menuScope}
343
349
  {...labelProps}
344
- className={tx('menu.groupLabel', 'menu__group__label', {}, classNames)}
350
+ className={tx('menu.groupLabel', {}, classNames)}
345
351
  ref={forwardedRef}
346
352
  />
347
353
  );
@@ -356,9 +362,9 @@ DropdownMenuGroupLabel.displayName = LABEL_NAME;
356
362
 
357
363
  const ITEM_NAME = 'DropdownMenuItem';
358
364
 
359
- type DropdownMenuItemElement = ElementRef<typeof MenuPrimitive.Item>;
365
+ type DropdownMenuItemElement = ComponentRef<typeof MenuPrimitive.Item>;
360
366
  type MenuItemProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.Item>>;
361
- interface DropdownMenuItemProps extends MenuItemProps {}
367
+ type DropdownMenuItemProps = MenuItemProps;
362
368
 
363
369
  const DropdownMenuItem = forwardRef<DropdownMenuItemElement, DropdownMenuItemProps>(
364
370
  (props: ScopedProps<DropdownMenuItemProps>, forwardedRef) => {
@@ -369,7 +375,7 @@ const DropdownMenuItem = forwardRef<DropdownMenuItemElement, DropdownMenuItemPro
369
375
  <MenuPrimitive.Item
370
376
  {...menuScope}
371
377
  {...itemProps}
372
- className={tx('menu.item', 'menu__item', {}, classNames)}
378
+ className={tx('menu.item', {}, classNames)}
373
379
  ref={forwardedRef}
374
380
  />
375
381
  );
@@ -384,9 +390,9 @@ DropdownMenuItem.displayName = ITEM_NAME;
384
390
 
385
391
  const CHECKBOX_ITEM_NAME = 'DropdownMenuCheckboxItem';
386
392
 
387
- type DropdownMenuCheckboxItemElement = ElementRef<typeof MenuPrimitive.CheckboxItem>;
393
+ type DropdownMenuCheckboxItemElement = ComponentRef<typeof MenuPrimitive.CheckboxItem>;
388
394
  type MenuCheckboxItemProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.CheckboxItem>>;
389
- interface DropdownMenuCheckboxItemProps extends MenuCheckboxItemProps {}
395
+ type DropdownMenuCheckboxItemProps = MenuCheckboxItemProps;
390
396
 
391
397
  const DropdownMenuCheckboxItem = forwardRef<DropdownMenuCheckboxItemElement, DropdownMenuCheckboxItemProps>(
392
398
  (props: ScopedProps<DropdownMenuCheckboxItemProps>, forwardedRef) => {
@@ -397,7 +403,7 @@ const DropdownMenuCheckboxItem = forwardRef<DropdownMenuCheckboxItemElement, Dro
397
403
  <MenuPrimitive.CheckboxItem
398
404
  {...menuScope}
399
405
  {...checkboxItemProps}
400
- className={tx('menu.item', 'menu__item--checkbox', {}, classNames)}
406
+ className={tx('menu.item', {}, classNames)}
401
407
  ref={forwardedRef}
402
408
  />
403
409
  );
@@ -412,9 +418,9 @@ DropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;
412
418
 
413
419
  const RADIO_GROUP_NAME = 'DropdownMenuRadioGroup';
414
420
 
415
- type DropdownMenuRadioGroupElement = ElementRef<typeof MenuPrimitive.RadioGroup>;
421
+ type DropdownMenuRadioGroupElement = ComponentRef<typeof MenuPrimitive.RadioGroup>;
416
422
  type MenuRadioGroupProps = ComponentPropsWithoutRef<typeof MenuPrimitive.RadioGroup>;
417
- interface DropdownMenuRadioGroupProps extends MenuRadioGroupProps {}
423
+ type DropdownMenuRadioGroupProps = MenuRadioGroupProps;
418
424
 
419
425
  const DropdownMenuRadioGroup = forwardRef<DropdownMenuRadioGroupElement, DropdownMenuRadioGroupProps>(
420
426
  (props: ScopedProps<DropdownMenuRadioGroupProps>, forwardedRef) => {
@@ -432,7 +438,7 @@ DropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;
432
438
 
433
439
  const RADIO_ITEM_NAME = 'DropdownMenuRadioItem';
434
440
 
435
- type DropdownMenuRadioItemElement = ElementRef<typeof MenuPrimitive.RadioItem>;
441
+ type DropdownMenuRadioItemElement = ComponentRef<typeof MenuPrimitive.RadioItem>;
436
442
  type MenuRadioItemProps = ComponentPropsWithoutRef<typeof MenuPrimitive.RadioItem>;
437
443
  type DropdownMenuRadioItemProps = ThemedClassName<MenuRadioItemProps>;
438
444
 
@@ -445,7 +451,7 @@ const DropdownMenuRadioItem = forwardRef<DropdownMenuRadioItemElement, DropdownM
445
451
  <MenuPrimitive.Item
446
452
  {...menuScope}
447
453
  {...itemProps}
448
- className={tx('menu.item', 'menu__item', {}, classNames)}
454
+ className={tx('menu.item', {}, classNames)}
449
455
  ref={forwardedRef}
450
456
  />
451
457
  );
@@ -460,9 +466,9 @@ DropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;
460
466
 
461
467
  const INDICATOR_NAME = 'DropdownMenuItemIndicator';
462
468
 
463
- type DropdownMenuItemIndicatorElement = ElementRef<typeof MenuPrimitive.ItemIndicator>;
469
+ type DropdownMenuItemIndicatorElement = ComponentRef<typeof MenuPrimitive.ItemIndicator>;
464
470
  type MenuItemIndicatorProps = ComponentPropsWithoutRef<typeof MenuPrimitive.ItemIndicator>;
465
- interface DropdownMenuItemIndicatorProps extends MenuItemIndicatorProps {}
471
+ type DropdownMenuItemIndicatorProps = MenuItemIndicatorProps;
466
472
 
467
473
  const DropdownMenuItemIndicator = forwardRef<DropdownMenuItemIndicatorElement, DropdownMenuItemIndicatorProps>(
468
474
  (props: ScopedProps<DropdownMenuItemIndicatorProps>, forwardedRef) => {
@@ -480,9 +486,9 @@ DropdownMenuItemIndicator.displayName = INDICATOR_NAME;
480
486
 
481
487
  const SEPARATOR_NAME = 'DropdownMenuSeparator';
482
488
 
483
- type DropdownMenuSeparatorElement = ElementRef<typeof MenuPrimitive.Separator>;
489
+ type DropdownMenuSeparatorElement = ComponentRef<typeof MenuPrimitive.Separator>;
484
490
  type MenuSeparatorProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.Separator>>;
485
- interface DropdownMenuSeparatorProps extends MenuSeparatorProps {}
491
+ type DropdownMenuSeparatorProps = MenuSeparatorProps;
486
492
 
487
493
  const DropdownMenuSeparator = forwardRef<DropdownMenuSeparatorElement, DropdownMenuSeparatorProps>(
488
494
  (props: ScopedProps<DropdownMenuSeparatorProps>, forwardedRef) => {
@@ -493,7 +499,7 @@ const DropdownMenuSeparator = forwardRef<DropdownMenuSeparatorElement, DropdownM
493
499
  <MenuPrimitive.Separator
494
500
  {...menuScope}
495
501
  {...separatorProps}
496
- className={tx('menu.separator', 'menu__item', {}, classNames)}
502
+ className={tx('menu.separator', {}, classNames)}
497
503
  ref={forwardedRef}
498
504
  />
499
505
  );
@@ -508,9 +514,9 @@ DropdownMenuSeparator.displayName = SEPARATOR_NAME;
508
514
 
509
515
  const ARROW_NAME = 'DropdownMenuArrow';
510
516
 
511
- type DropdownMenuArrowElement = ElementRef<typeof MenuPrimitive.Arrow>;
517
+ type DropdownMenuArrowElement = ComponentRef<typeof MenuPrimitive.Arrow>;
512
518
  type MenuArrowProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.Arrow>>;
513
- interface DropdownMenuArrowProps extends MenuArrowProps {}
519
+ type DropdownMenuArrowProps = MenuArrowProps;
514
520
 
515
521
  const DropdownMenuArrow = forwardRef<DropdownMenuArrowElement, DropdownMenuArrowProps>(
516
522
  (props: ScopedProps<DropdownMenuArrowProps>, forwardedRef) => {
@@ -521,7 +527,7 @@ const DropdownMenuArrow = forwardRef<DropdownMenuArrowElement, DropdownMenuArrow
521
527
  <MenuPrimitive.Arrow
522
528
  {...menuScope}
523
529
  {...arrowProps}
524
- className={tx('menu.arrow', 'menu__arrow', {}, classNames)}
530
+ className={tx('menu.arrow', {}, classNames)}
525
531
  ref={forwardedRef}
526
532
  />
527
533
  );
@@ -534,12 +540,12 @@ DropdownMenuArrow.displayName = ARROW_NAME;
534
540
  // DropdownMenuSub
535
541
  //
536
542
 
537
- interface DropdownMenuSubProps {
543
+ type DropdownMenuSubProps = {
538
544
  children?: ReactNode;
539
545
  open?: boolean;
540
546
  defaultOpen?: boolean;
541
547
  onOpenChange?(open: boolean): void;
542
- }
548
+ };
543
549
 
544
550
  const DropdownMenuSub: FC<DropdownMenuSubProps> = (props: ScopedProps<DropdownMenuSubProps>) => {
545
551
  const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;
@@ -563,9 +569,9 @@ const DropdownMenuSub: FC<DropdownMenuSubProps> = (props: ScopedProps<DropdownMe
563
569
 
564
570
  const SUB_TRIGGER_NAME = 'DropdownMenuSubTrigger';
565
571
 
566
- type DropdownMenuSubTriggerElement = ElementRef<typeof MenuPrimitive.SubTrigger>;
572
+ type DropdownMenuSubTriggerElement = ComponentRef<typeof MenuPrimitive.SubTrigger>;
567
573
  type MenuSubTriggerProps = ComponentPropsWithoutRef<typeof MenuPrimitive.SubTrigger>;
568
- interface DropdownMenuSubTriggerProps extends MenuSubTriggerProps {}
574
+ type DropdownMenuSubTriggerProps = MenuSubTriggerProps;
569
575
 
570
576
  const DropdownMenuSubTrigger = forwardRef<DropdownMenuSubTriggerElement, DropdownMenuSubTriggerProps>(
571
577
  (props: ScopedProps<DropdownMenuSubTriggerProps>, forwardedRef) => {
@@ -583,9 +589,9 @@ DropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;
583
589
 
584
590
  const SUB_CONTENT_NAME = 'DropdownMenuSubContent';
585
591
 
586
- type DropdownMenuSubContentElement = ElementRef<typeof MenuPrimitive.Content>;
592
+ type DropdownMenuSubContentElement = ComponentRef<typeof MenuPrimitive.Content>;
587
593
  type MenuSubContentProps = ComponentPropsWithoutRef<typeof MenuPrimitive.SubContent>;
588
- interface DropdownMenuSubContentProps extends MenuSubContentProps {}
594
+ type DropdownMenuSubContentProps = MenuSubContentProps;
589
595
 
590
596
  const DropdownMenuSubContent = forwardRef<DropdownMenuSubContentElement, DropdownMenuSubContentProps>(
591
597
  (props: ScopedProps<DropdownMenuSubContentProps>, forwardedRef) => {
@@ -5,31 +5,37 @@
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React from 'react';
7
7
 
8
+ import { random } from '@dxos/random';
8
9
  import { type MessageValence } from '@dxos/ui-types';
9
10
 
10
11
  import { withTheme } from '../../testing';
12
+ import { Message } from './Message';
11
13
 
12
- import { Callout } from './Message';
14
+ random.seed(123);
13
15
 
14
- type StoryProps = {
16
+ type DefaultStoryProps = {
15
17
  valence: MessageValence;
16
18
  title: string;
17
19
  body: string;
18
20
  };
19
21
 
20
- const DefaultStory = ({ valence, title, body }: StoryProps) => (
21
- <Callout.Root valence={valence}>
22
- {title && <Callout.Title>{title}</Callout.Title>}
23
- {body && <Callout.Content>{body}</Callout.Content>}
24
- </Callout.Root>
22
+ const DefaultStory = ({ valence, title, body }: DefaultStoryProps) => (
23
+ <div className='w-[30rem]'>
24
+ <Message.Root valence={valence}>
25
+ {title && <Message.Title>{title}</Message.Title>}
26
+ {body && <Message.Content>{body}</Message.Content>}
27
+ </Message.Root>
28
+ </div>
25
29
  );
26
30
 
27
31
  const meta = {
28
- title: 'ui/react-ui-core/Callout',
29
- component: Callout.Root as any,
32
+ title: 'ui/react-ui-core/components/Message',
33
+ component: Message.Root as any,
30
34
  render: DefaultStory,
31
- decorators: [withTheme],
32
- parameters: { chromatic: { disableSnapshot: false } },
35
+ decorators: [withTheme()],
36
+ parameters: {
37
+ layout: 'centered',
38
+ },
33
39
  argTypes: {
34
40
  valence: {
35
41
  control: 'select',
@@ -46,6 +52,14 @@ export const Default: Story = {
46
52
  args: {
47
53
  valence: 'neutral',
48
54
  title: 'Alert title',
49
- body: 'Alert content',
55
+ body: random.lorem.paragraphs(1),
56
+ },
57
+ };
58
+
59
+ export const Error: Story = {
60
+ args: {
61
+ valence: 'error',
62
+ title: 'Error title',
63
+ body: random.lorem.paragraphs(1),
50
64
  },
51
65
  };
@@ -58,20 +58,20 @@ const MessageRoot = forwardRef<HTMLDivElement, MessageRootProps>(
58
58
  const titleId = useId('message__title', propsTitleId);
59
59
  const descriptionId = useId('message__description', propsDescriptionId);
60
60
  const elevation = useElevationContext(propsElevation);
61
- const Root = asChild ? Slot : Primitive.div;
61
+ const Comp = asChild ? Slot : Primitive.div;
62
62
 
63
63
  return (
64
64
  <MessageProvider {...{ titleId, descriptionId, valence }}>
65
- <Root
65
+ <Comp
66
66
  role={valence === 'neutral' ? 'paragraph' : 'alert'}
67
67
  {...props}
68
- className={tx('message.root', 'message', { valence, elevation }, classNames)}
68
+ className={tx('message.root', { valence, elevation }, classNames)}
69
69
  aria-labelledby={titleId}
70
70
  aria-describedby={descriptionId}
71
71
  ref={forwardedRef}
72
72
  >
73
73
  {children}
74
- </Root>
74
+ </Comp>
75
75
  </MessageProvider>
76
76
  );
77
77
  },
@@ -91,27 +91,16 @@ type MessageTitleProps = Omit<ThemedClassName<ComponentPropsWithRef<typeof Primi
91
91
  const MESSAGE_TITLE_NAME = 'MessageTitle';
92
92
 
93
93
  const MessageTitle = forwardRef<HTMLHeadingElement, MessageTitleProps>(
94
- ({ asChild, classNames, children, icon, ...props }, forwardedRef) => {
94
+ ({ asChild, classNames, children, icon: iconProp, ...props }, forwardedRef) => {
95
95
  const { tx } = useThemeContext();
96
96
  const { titleId, valence } = useMessageContext(MESSAGE_TITLE_NAME);
97
- const Root = asChild ? Slot : Primitive.h2;
98
-
97
+ const Comp = asChild ? Slot : Primitive.h2;
98
+ const icon = iconProp ?? messageIcons[valence];
99
99
  return (
100
- <Root
101
- {...props}
102
- className={tx('message.title', 'message__title', {}, classNames)}
103
- id={titleId}
104
- ref={forwardedRef}
105
- >
106
- {!icon && valence === 'neutral' ? null : (
107
- <Icon
108
- size={5}
109
- icon={icon ?? messageIcons[valence]}
110
- classNames={tx('message.icon', 'message__icon', { valence })}
111
- />
112
- )}
113
- <span>{children}</span>
114
- </Root>
100
+ <Comp {...props} className={tx('message.header', {}, classNames)} id={titleId} ref={forwardedRef}>
101
+ {!icon && valence === 'neutral' ? <div /> : <Icon icon={icon} classNames={tx('message.icon', { valence })} />}
102
+ <span className={tx('message.title', {}, classNames)}>{children}</span>
103
+ </Comp>
115
104
  );
116
105
  },
117
106
  );
@@ -132,16 +121,11 @@ const MessageContent = forwardRef<HTMLParagraphElement, MessageContentProps>(
132
121
  ({ asChild, classNames, children, ...props }, forwardedRef) => {
133
122
  const { tx } = useThemeContext();
134
123
  const { descriptionId } = useMessageContext(MESSAGE_CONTENT_NAME);
135
- const Root = asChild ? Slot : Primitive.p;
124
+ const Comp = asChild ? Slot : Primitive.p;
136
125
  return (
137
- <Root
138
- {...props}
139
- className={tx('message.content', 'message__content', {}, classNames)}
140
- id={descriptionId}
141
- ref={forwardedRef}
142
- >
126
+ <Comp {...props} className={tx('message.content', {}, classNames)} id={descriptionId} ref={forwardedRef}>
143
127
  {children}
144
- </Root>
128
+ </Comp>
145
129
  );
146
130
  },
147
131
  );
@@ -5,14 +5,13 @@
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React, { type PropsWithChildren, type ReactNode, useRef, useState } 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 { Popover } from './Popover';
14
13
 
15
- faker.seed(1234);
14
+ random.seed(1234);
16
15
 
17
16
  const DefaultStory = ({ openTrigger, children }: PropsWithChildren<{ openTrigger: ReactNode }>) => {
18
17
  return (
@@ -20,7 +19,7 @@ const DefaultStory = ({ openTrigger, children }: PropsWithChildren<{ openTrigger
20
19
  <Popover.Trigger asChild>{openTrigger}</Popover.Trigger>
21
20
  <Popover.Content>
22
21
  <Popover.Viewport>
23
- <p className='pli-2 plb-1 min-is-[18rem] max-is-[38rem]'>{children}</p>
22
+ <p className='px-2 py-1 min-w-[18rem] max-w-[38rem]'>{children}</p>
24
23
  </Popover.Viewport>
25
24
  <Popover.Arrow />
26
25
  </Popover.Content>
@@ -29,10 +28,10 @@ const DefaultStory = ({ openTrigger, children }: PropsWithChildren<{ openTrigger
29
28
  };
30
29
 
31
30
  const meta = {
32
- title: 'ui/react-ui-core/Popover',
31
+ title: 'ui/react-ui-core/components/Popover',
33
32
  component: Popover.Root,
34
33
  render: DefaultStory,
35
- decorators: [withTheme],
34
+ decorators: [withTheme()],
36
35
  } satisfies Meta<typeof DefaultStory>;
37
36
 
38
37
  export default meta;
@@ -42,7 +41,7 @@ type Story = StoryObj<typeof meta>;
42
41
  export const Default: Story = {
43
42
  args: {
44
43
  openTrigger: <Button>Open popover</Button>,
45
- children: faker.lorem.paragraphs(3),
44
+ children: random.lorem.paragraphs(3),
46
45
  },
47
46
  };
48
47
 
@@ -59,7 +58,7 @@ export const VirtualTrigger = {
59
58
  <Popover.VirtualTrigger virtualRef={buttonRef} />
60
59
  <Popover.Content>
61
60
  <Popover.Viewport>
62
- <p className='pli-2 plb-1 min-is-[18rem] max-is-[38rem]'>{faker.lorem.paragraphs(3)}</p>
61
+ <p className='px-2 py-1 min-w-[18rem] max-w-[38rem]'>{random.lorem.paragraphs(3)}</p>
63
62
  </Popover.Viewport>
64
63
  <Popover.Arrow />
65
64
  </Popover.Content>