@dxos/react-ui 0.8.4-main.fd6878d → 0.8.4-main.fffef41

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 (253) hide show
  1. package/dist/lib/browser/{chunk-BKNGMGOK.mjs → chunk-N5GDJTT2.mjs} +640 -306
  2. package/dist/lib/browser/chunk-N5GDJTT2.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +12 -1
  4. package/dist/lib/browser/index.mjs.map +2 -2
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +57 -29
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/{chunk-D2HZS6F4.mjs → chunk-SP7VQH72.mjs} +640 -306
  9. package/dist/lib/node-esm/chunk-SP7VQH72.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +12 -1
  11. package/dist/lib/node-esm/index.mjs.map +2 -2
  12. package/dist/lib/node-esm/meta.json +1 -1
  13. package/dist/lib/node-esm/testing/index.mjs +57 -29
  14. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  15. package/dist/types/src/components/Avatars/Avatar.stories.d.ts +5 -31
  16. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  17. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +5 -11
  18. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
  19. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts +8 -20
  20. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  21. package/dist/types/src/components/{Buttons → Button}/Button.d.ts +1 -1
  22. package/dist/types/src/components/Button/Button.d.ts.map +1 -0
  23. package/dist/types/src/components/Button/Button.stories.d.ts +17 -0
  24. package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -0
  25. package/dist/types/src/components/{Buttons → Button}/IconButton.d.ts +1 -2
  26. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -0
  27. package/dist/types/src/components/Button/IconButton.stories.d.ts +13 -0
  28. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -0
  29. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -0
  30. package/dist/types/src/components/Button/Toggle.stories.d.ts +16 -0
  31. package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -0
  32. package/dist/types/src/components/{Buttons → Button}/ToggleGroup.d.ts +6 -7
  33. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -0
  34. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +27 -0
  35. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -0
  36. package/dist/types/src/components/Button/index.d.ts.map +1 -0
  37. package/dist/types/src/components/Clipboard/CopyButton.d.ts +1 -1
  38. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  39. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -0
  40. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts +11 -0
  41. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -0
  42. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -0
  43. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +25 -0
  44. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -0
  45. package/dist/types/src/components/Dialog/index.d.ts.map +1 -0
  46. package/dist/types/src/components/Icon/Icon.d.ts +1 -1
  47. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  48. package/dist/types/src/components/Icon/Icon.stories.d.ts +17 -0
  49. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -0
  50. package/dist/types/src/components/Input/Input.d.ts +0 -2
  51. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  52. package/dist/types/src/components/Input/Input.stories.d.ts +9 -10
  53. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  54. package/dist/types/src/components/Link/Link.stories.d.ts +8 -8
  55. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  56. package/dist/types/src/components/List/List.d.ts.map +1 -0
  57. package/dist/types/src/components/List/List.stories.d.ts +14 -0
  58. package/dist/types/src/components/List/List.stories.d.ts.map +1 -0
  59. package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -0
  60. package/dist/types/src/components/List/Tree.d.ts.map +1 -0
  61. package/dist/types/src/components/List/Tree.stories.d.ts +15 -0
  62. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -0
  63. package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -0
  64. package/dist/types/src/components/{Lists → List}/Treegrid.d.ts.map +1 -1
  65. package/dist/types/src/components/List/Treegrid.stories.d.ts +12 -0
  66. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -0
  67. package/dist/types/src/components/List/index.d.ts.map +1 -0
  68. package/dist/types/src/components/Main/Main.d.ts +9 -18
  69. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  70. package/dist/types/src/components/Main/Main.stories.d.ts +6 -7
  71. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  72. package/dist/types/src/components/Menus/ContextMenu.d.ts.map +1 -1
  73. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts +6 -44
  74. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +1 -1
  75. package/dist/types/src/components/Menus/DropdownMenu.d.ts +7 -7
  76. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +1 -1
  77. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts +6 -41
  78. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +1 -1
  79. package/dist/types/src/components/Message/Message.stories.d.ts +7 -16
  80. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  81. package/dist/types/src/components/Popover/Popover.d.ts +1 -1
  82. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  83. package/dist/types/src/components/Popover/Popover.stories.d.ts +6 -34
  84. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  85. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +6 -32
  86. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  87. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +37 -0
  88. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -0
  89. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +18 -0
  90. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -0
  91. package/dist/types/src/components/ScrollContainer/index.d.ts +2 -0
  92. package/dist/types/src/components/ScrollContainer/index.d.ts.map +1 -0
  93. package/dist/types/src/components/Select/Select.d.ts +1 -1
  94. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  95. package/dist/types/src/components/Select/Select.stories.d.ts +4 -9
  96. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  97. package/dist/types/src/components/Status/Status.stories.d.ts +2 -8
  98. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  99. package/dist/types/src/components/Tag/Tag.stories.d.ts +12 -12
  100. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  101. package/dist/types/src/components/Toast/Toast.stories.d.ts +6 -44
  102. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  103. package/dist/types/src/components/Toolbar/Toolbar.d.ts +12 -12
  104. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  105. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +6 -50
  106. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  107. package/dist/types/src/components/Tooltip/Tooltip.d.ts +1 -3
  108. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  109. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +8 -61
  110. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  111. package/dist/types/src/components/index.d.ts +4 -3
  112. package/dist/types/src/components/index.d.ts.map +1 -1
  113. package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
  114. package/dist/types/src/hooks/useVisualViewport.d.ts +2 -2
  115. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
  116. package/dist/types/src/index.d.ts +1 -1
  117. package/dist/types/src/index.d.ts.map +1 -1
  118. package/dist/types/src/playground/Controls.stories.d.ts +5 -9
  119. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  120. package/dist/types/src/playground/Custom.stories.d.ts +12 -4
  121. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  122. package/dist/types/src/playground/Typography.stories.d.ts +5 -11
  123. package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
  124. package/dist/types/src/testing/decorators/index.d.ts +2 -1
  125. package/dist/types/src/testing/decorators/index.d.ts.map +1 -1
  126. package/dist/types/src/testing/decorators/withLayout.d.ts +15 -0
  127. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -0
  128. package/dist/types/src/testing/decorators/{withSurfaceVariantsLayout.d.ts → withLayoutVariants.d.ts} +2 -2
  129. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -0
  130. package/dist/types/src/testing/decorators/withTheme.d.ts +3 -0
  131. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  132. package/dist/types/src/util/domino.d.ts +18 -0
  133. package/dist/types/src/util/domino.d.ts.map +1 -0
  134. package/dist/types/src/util/index.d.ts +2 -0
  135. package/dist/types/src/util/index.d.ts.map +1 -1
  136. package/dist/types/src/util/usePx.d.ts +8 -0
  137. package/dist/types/src/util/usePx.d.ts.map +1 -0
  138. package/dist/types/tsconfig.tsbuildinfo +1 -1
  139. package/package.json +24 -23
  140. package/src/components/Avatars/Avatar.stories.tsx +17 -9
  141. package/src/components/Avatars/AvatarGroup.stories.tsx +8 -5
  142. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +16 -12
  143. package/src/components/{Buttons → Button}/Button.stories.tsx +5 -7
  144. package/src/components/{Buttons → Button}/IconButton.stories.tsx +9 -7
  145. package/src/components/{Buttons → Button}/IconButton.tsx +14 -13
  146. package/src/components/{Buttons → Button}/Toggle.stories.tsx +13 -10
  147. package/src/components/{Buttons → Button}/ToggleGroup.stories.tsx +8 -6
  148. package/src/components/{Buttons → Button}/ToggleGroup.tsx +14 -1
  149. package/src/components/Clipboard/CopyButton.tsx +1 -1
  150. package/src/components/{Dialogs → Dialog}/AlertDialog.stories.tsx +13 -11
  151. package/src/components/{Dialogs → Dialog}/Dialog.stories.tsx +15 -14
  152. package/src/components/Icon/Icon.stories.tsx +113 -0
  153. package/src/components/Icon/Icon.tsx +1 -1
  154. package/src/components/Input/Input.stories.tsx +8 -11
  155. package/src/components/Input/Input.tsx +3 -3
  156. package/src/components/Link/Link.stories.tsx +8 -5
  157. package/src/components/{Lists → List}/List.stories.tsx +13 -12
  158. package/src/components/{Lists → List}/List.tsx +5 -2
  159. package/src/components/{Lists → List}/ListDropIndicator.tsx +1 -1
  160. package/src/components/{Lists → List}/Tree.stories.tsx +9 -7
  161. package/src/components/{Lists → List}/Treegrid.stories.tsx +10 -5
  162. package/src/components/{Lists → List}/Treegrid.tsx +57 -16
  163. package/src/components/Main/Main.stories.tsx +15 -8
  164. package/src/components/Main/Main.tsx +36 -22
  165. package/src/components/Menus/ContextMenu.stories.tsx +9 -7
  166. package/src/components/Menus/ContextMenu.tsx +1 -0
  167. package/src/components/Menus/DropdownMenu.stories.tsx +10 -8
  168. package/src/components/Menus/DropdownMenu.tsx +37 -8
  169. package/src/components/Message/Message.stories.tsx +9 -6
  170. package/src/components/Popover/Popover.stories.tsx +10 -8
  171. package/src/components/Popover/Popover.tsx +22 -5
  172. package/src/components/ScrollArea/ScrollArea.stories.tsx +10 -8
  173. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +69 -0
  174. package/src/components/ScrollContainer/ScrollContainer.tsx +231 -0
  175. package/src/components/ScrollContainer/index.ts +5 -0
  176. package/src/components/Select/Select.stories.tsx +14 -12
  177. package/src/components/Select/Select.tsx +9 -8
  178. package/src/components/Status/Status.stories.tsx +7 -5
  179. package/src/components/Tag/Tag.stories.tsx +16 -8
  180. package/src/components/Toast/Toast.stories.tsx +10 -8
  181. package/src/components/Toolbar/Toolbar.stories.tsx +12 -11
  182. package/src/components/Toolbar/Toolbar.tsx +18 -6
  183. package/src/components/Tooltip/Tooltip.stories.tsx +14 -11
  184. package/src/components/Tooltip/Tooltip.tsx +2 -1
  185. package/src/components/index.ts +4 -3
  186. package/src/hooks/useSafeArea.ts +3 -2
  187. package/src/hooks/useVisualViewport.ts +4 -4
  188. package/src/index.ts +1 -1
  189. package/src/playground/Controls.stories.tsx +12 -8
  190. package/src/playground/Custom.stories.tsx +11 -22
  191. package/src/playground/Typography.stories.tsx +8 -6
  192. package/src/testing/decorators/index.ts +2 -1
  193. package/src/testing/decorators/withLayout.tsx +56 -0
  194. package/src/testing/decorators/{withSurfaceVariantsLayout.tsx → withLayoutVariants.tsx} +2 -2
  195. package/src/testing/decorators/withTheme.tsx +31 -0
  196. package/src/util/domino.ts +53 -0
  197. package/src/util/index.ts +2 -0
  198. package/src/util/usePx.ts +61 -0
  199. package/dist/lib/browser/chunk-BKNGMGOK.mjs.map +0 -7
  200. package/dist/lib/node-esm/chunk-D2HZS6F4.mjs.map +0 -7
  201. package/dist/types/src/components/Buttons/Button.d.ts.map +0 -1
  202. package/dist/types/src/components/Buttons/Button.stories.d.ts +0 -12
  203. package/dist/types/src/components/Buttons/Button.stories.d.ts.map +0 -1
  204. package/dist/types/src/components/Buttons/IconButton.d.ts.map +0 -1
  205. package/dist/types/src/components/Buttons/IconButton.stories.d.ts +0 -22
  206. package/dist/types/src/components/Buttons/IconButton.stories.d.ts.map +0 -1
  207. package/dist/types/src/components/Buttons/Toggle.d.ts.map +0 -1
  208. package/dist/types/src/components/Buttons/Toggle.stories.d.ts +0 -19
  209. package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +0 -1
  210. package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +0 -1
  211. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +0 -39
  212. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +0 -1
  213. package/dist/types/src/components/Buttons/index.d.ts.map +0 -1
  214. package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +0 -1
  215. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +0 -43
  216. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +0 -1
  217. package/dist/types/src/components/Dialogs/Dialog.d.ts.map +0 -1
  218. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +0 -48
  219. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +0 -1
  220. package/dist/types/src/components/Dialogs/index.d.ts.map +0 -1
  221. package/dist/types/src/components/Lists/List.d.ts.map +0 -1
  222. package/dist/types/src/components/Lists/List.stories.d.ts +0 -37
  223. package/dist/types/src/components/Lists/List.stories.d.ts.map +0 -1
  224. package/dist/types/src/components/Lists/ListDropIndicator.d.ts.map +0 -1
  225. package/dist/types/src/components/Lists/Tree.d.ts.map +0 -1
  226. package/dist/types/src/components/Lists/Tree.stories.d.ts +0 -41
  227. package/dist/types/src/components/Lists/Tree.stories.d.ts.map +0 -1
  228. package/dist/types/src/components/Lists/TreeDropIndicator.d.ts.map +0 -1
  229. package/dist/types/src/components/Lists/Treegrid.stories.d.ts +0 -10
  230. package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +0 -1
  231. package/dist/types/src/components/Lists/index.d.ts.map +0 -1
  232. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts.map +0 -1
  233. package/src/testing/decorators/withTheme.ts +0 -25
  234. /package/dist/types/src/components/{Buttons → Button}/Toggle.d.ts +0 -0
  235. /package/dist/types/src/components/{Buttons → Button}/index.d.ts +0 -0
  236. /package/dist/types/src/components/{Dialogs → Dialog}/AlertDialog.d.ts +0 -0
  237. /package/dist/types/src/components/{Dialogs → Dialog}/Dialog.d.ts +0 -0
  238. /package/dist/types/src/components/{Dialogs → Dialog}/index.d.ts +0 -0
  239. /package/dist/types/src/components/{Lists → List}/List.d.ts +0 -0
  240. /package/dist/types/src/components/{Lists → List}/ListDropIndicator.d.ts +0 -0
  241. /package/dist/types/src/components/{Lists → List}/Tree.d.ts +0 -0
  242. /package/dist/types/src/components/{Lists → List}/TreeDropIndicator.d.ts +0 -0
  243. /package/dist/types/src/components/{Lists → List}/Treegrid.d.ts +0 -0
  244. /package/dist/types/src/components/{Lists → List}/index.d.ts +0 -0
  245. /package/src/components/{Buttons → Button}/Button.tsx +0 -0
  246. /package/src/components/{Buttons → Button}/Toggle.tsx +0 -0
  247. /package/src/components/{Buttons → Button}/index.ts +0 -0
  248. /package/src/components/{Dialogs → Dialog}/AlertDialog.tsx +0 -0
  249. /package/src/components/{Dialogs → Dialog}/Dialog.tsx +0 -0
  250. /package/src/components/{Dialogs → Dialog}/index.ts +0 -0
  251. /package/src/components/{Lists → List}/Tree.tsx +0 -0
  252. /package/src/components/{Lists → List}/TreeDropIndicator.tsx +0 -0
  253. /package/src/components/{Lists → List}/index.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/react-ui",
3
- "version": "0.8.4-main.fd6878d",
3
+ "version": "0.8.4-main.fffef41",
4
4
  "description": "Low-level React components for DXOS, applying a theme to a core group of primitives",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -37,7 +37,6 @@
37
37
  "dependencies": {
38
38
  "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.0.3",
39
39
  "@fluentui/react-tabster": "^9.24.2",
40
- "@phosphor-icons/react": "^2.1.5",
41
40
  "@preact-signals/safe-react": "^0.9.0",
42
41
  "@radix-ui/primitive": "1.1.1",
43
42
  "@radix-ui/react-alert-dialog": "1.1.6",
@@ -57,7 +56,7 @@
57
56
  "@radix-ui/react-portal": "1.1.4",
58
57
  "@radix-ui/react-presence": "1.1.2",
59
58
  "@radix-ui/react-primitive": "2.0.2",
60
- "@radix-ui/react-scroll-area": "1.2.3",
59
+ "@radix-ui/react-scroll-area": "1.2.10",
61
60
  "@radix-ui/react-select": "2.1.6",
62
61
  "@radix-ui/react-separator": "1.1.2",
63
62
  "@radix-ui/react-slot": "1.1.2",
@@ -75,33 +74,35 @@
75
74
  "keyborg": "^2.5.0",
76
75
  "react-i18next": "^11.18.6",
77
76
  "react-remove-scroll": "^2.6.0",
78
- "@dxos/debug": "0.8.4-main.fd6878d",
79
- "@dxos/lit-ui": "0.8.4-main.fd6878d",
80
- "@dxos/react-hooks": "0.8.4-main.fd6878d",
81
- "@dxos/react-input": "0.8.4-main.fd6878d",
82
- "@dxos/log": "0.8.4-main.fd6878d",
83
- "@dxos/react-list": "0.8.4-main.fd6878d",
84
- "@dxos/react-ui-types": "0.8.4-main.fd6878d",
85
- "@dxos/util": "0.8.4-main.fd6878d"
77
+ "@dxos/async": "0.8.4-main.fffef41",
78
+ "@dxos/lit-ui": "0.8.4-main.fffef41",
79
+ "@dxos/log": "0.8.4-main.fffef41",
80
+ "@dxos/invariant": "0.8.4-main.fffef41",
81
+ "@dxos/react-hooks": "0.8.4-main.fffef41",
82
+ "@dxos/react-input": "0.8.4-main.fffef41",
83
+ "@dxos/react-list": "0.8.4-main.fffef41",
84
+ "@dxos/react-ui-types": "0.8.4-main.fffef41",
85
+ "@dxos/util": "0.8.4-main.fffef41",
86
+ "@dxos/debug": "0.8.4-main.fffef41"
86
87
  },
87
88
  "devDependencies": {
88
89
  "@dnd-kit/core": "^6.0.5",
89
90
  "@dnd-kit/sortable": "^7.0.1",
90
91
  "@dnd-kit/utilities": "^3.2.0",
91
- "@types/react": "~18.2.0",
92
- "@types/react-dom": "~18.2.0",
93
- "react": "~18.2.0",
94
- "react-dom": "~18.2.0",
95
- "vite": "5.4.7",
96
- "@dxos/random": "0.8.4-main.fd6878d",
97
- "@dxos/react-ui-theme": "0.8.4-main.fd6878d",
98
- "@dxos/util": "0.8.4-main.fd6878d"
92
+ "@phosphor-icons/react": "^2.1.10",
93
+ "@types/react": "~19.2.2",
94
+ "@types/react-dom": "~19.2.2",
95
+ "react": "~19.2.0",
96
+ "react-dom": "~19.2.0",
97
+ "vite": "7.1.9",
98
+ "@dxos/random": "0.8.4-main.fffef41",
99
+ "@dxos/react-ui-theme": "0.8.4-main.fffef41",
100
+ "@dxos/util": "0.8.4-main.fffef41"
99
101
  },
100
102
  "peerDependencies": {
101
- "@phosphor-icons/react": "^2.1.5",
102
- "react": "~18.2.0",
103
- "react-dom": "~18.2.0",
104
- "@dxos/react-ui-theme": "0.8.4-main.fd6878d"
103
+ "react": "^19.0.0",
104
+ "react-dom": "^19.0.0",
105
+ "@dxos/react-ui-theme": "0.8.4-main.fffef41"
105
106
  },
106
107
  "publishConfig": {
107
108
  "access": "public"
@@ -2,7 +2,7 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
5
+ import { type Meta } from '@storybook/react-vite';
6
6
  import React, { type PropsWithChildren } from 'react';
7
7
 
8
8
  import { type HuePalette } from '@dxos/react-ui-theme';
@@ -13,7 +13,7 @@ import { withTheme } from '../../testing';
13
13
 
14
14
  import { Avatar, type AvatarAnimation, type AvatarStatus, type AvatarVariant } from './Avatar';
15
15
 
16
- type StoryProps = {
16
+ type StoryProps = PropsWithChildren<{
17
17
  id?: string;
18
18
  imgSrc?: string;
19
19
  fallbackText?: string;
@@ -24,9 +24,9 @@ type StoryProps = {
24
24
  animation?: AvatarAnimation;
25
25
  size?: Size;
26
26
  hue?: HuePalette;
27
- };
27
+ }>;
28
28
 
29
- const DefaultStory = (props: PropsWithChildren<StoryProps>) => {
29
+ const DefaultStory = (props: StoryProps) => {
30
30
  const {
31
31
  id = '20970b563fc49b5bb194a6ffdff376031a3a11f9481360c071c3fed87874106b',
32
32
  status,
@@ -56,17 +56,19 @@ const DefaultStory = (props: PropsWithChildren<StoryProps>) => {
56
56
  );
57
57
  };
58
58
 
59
- export default {
59
+ const meta = {
60
60
  title: 'ui/react-ui-core/Avatar',
61
- component: Avatar,
62
- render: DefaultStory,
61
+ component: Avatar.Root,
63
62
  decorators: [withTheme],
64
- parameters: { chromatic: { disableSnapshot: false } },
65
- };
63
+ } satisfies Meta<typeof Avatar.Root>;
64
+
65
+ export default meta;
66
66
 
67
67
  const sampleImage =
68
68
  'https://png.pngtree.com/thumb_back/fh260/background/20230614/pngtree-the-photo-of-a-woman-with-red-sunglasses-is-surrounded-by-image_2931163.jpg';
69
69
 
70
+ const brokenImage = 'https://png.pngtree.com/potato_squirrel.png';
71
+
70
72
  const row = (size: Size) => (
71
73
  <>
72
74
  <DefaultStory size={size} status='inactive' description='Offline' />
@@ -98,6 +100,12 @@ export const Image = () => (
98
100
  </div>
99
101
  );
100
102
 
103
+ export const BrokenImage = () => (
104
+ <div>
105
+ <DefaultStory variant='circle' imgSrc={brokenImage} />
106
+ </div>
107
+ );
108
+
101
109
  export const Square = () => (
102
110
  <div className='flex flex-row gap-4'>
103
111
  <DefaultStory variant='square' status='inactive' description='Offline' />
@@ -2,7 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React from 'react';
7
7
 
8
8
  import { useId } from '@dxos/react-hooks';
@@ -37,13 +37,16 @@ const DefaultStory = () => {
37
37
  );
38
38
  };
39
39
 
40
- export default {
40
+ const meta = {
41
41
  title: 'ui/react-ui-core/AvatarGroup',
42
42
  render: DefaultStory,
43
43
  decorators: [withTheme],
44
- parameters: { chromatic: { disableSnapshot: false } },
45
- };
44
+ } satisfies Meta<typeof DefaultStory>;
45
+
46
+ export default meta;
47
+
48
+ type Story = StoryObj<typeof meta>;
46
49
 
47
- export const Default = {
50
+ export const Default: Story = {
48
51
  args: {},
49
52
  };
@@ -2,18 +2,17 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
7
6
  import React from 'react';
8
7
 
9
8
  import { withTheme } from '../../testing';
10
- import { Button } from '../Buttons';
9
+ import { Button } from '../Button';
11
10
 
12
- import { Breadcrumb } from './Breadcrumb';
11
+ import { Breadcrumb, type BreadcrumbRootProps } from './Breadcrumb';
13
12
 
14
- const DefaultStory = () => {
13
+ const DefaultStory = (props: BreadcrumbRootProps) => {
15
14
  return (
16
- <Breadcrumb.Root aria-label='Breadcrumb'>
15
+ <Breadcrumb.Root {...props}>
17
16
  <Breadcrumb.List>
18
17
  <Breadcrumb.ListItem>
19
18
  <Breadcrumb.Link asChild>
@@ -39,14 +38,19 @@ const DefaultStory = () => {
39
38
  );
40
39
  };
41
40
 
42
- export default {
41
+ const meta = {
43
42
  title: 'ui/react-ui-core/Breadcrumb',
44
- component: Breadcrumb,
43
+ component: Breadcrumb.Root as any,
45
44
  render: DefaultStory,
46
45
  decorators: [withTheme],
47
- parameters: { chromatic: { disableSnapshot: false } },
48
- };
46
+ } satisfies Meta<typeof DefaultStory>;
47
+
48
+ export default meta;
49
+
50
+ type Story = StoryObj<typeof meta>;
49
51
 
50
- export const Default = {
51
- args: {},
52
+ export const Default: Story = {
53
+ args: {
54
+ 'aria-label': 'Breadcrumb',
55
+ },
52
56
  };
@@ -2,12 +2,11 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
7
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
8
6
  import React from 'react';
9
7
 
10
- import { withSurfaceVariantsLayout, withTheme } from '../../testing';
8
+ import { withTheme } from '../../testing';
9
+ import { withLayoutVariants } from '../../testing';
11
10
  import { Icon } from '../Icon';
12
11
 
13
12
  import { Button, ButtonGroup, type ButtonProps } from './Button';
@@ -33,13 +32,12 @@ const DefaultStory = ({ children, ...args }: Omit<ButtonProps, 'ref'>) => {
33
32
  );
34
33
  };
35
34
 
36
- const meta: Meta<typeof Button> = {
35
+ const meta = {
37
36
  title: 'ui/react-ui-core/Button',
38
37
  component: Button,
39
38
  render: DefaultStory,
40
- decorators: [withSurfaceVariantsLayout(), withTheme],
41
- parameters: { chromatic: { disableSnapshot: false } },
42
- };
39
+ decorators: [withTheme, withLayoutVariants()],
40
+ } satisfies Meta<typeof Button>;
43
41
 
44
42
  export default meta;
45
43
 
@@ -2,8 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
7
6
  import React from 'react';
8
7
 
9
8
  import { withTheme } from '../../testing';
@@ -24,15 +23,18 @@ const DefaultStory = (props: IconButtonProps) => {
24
23
  );
25
24
  };
26
25
 
27
- export default {
26
+ const meta = {
28
27
  title: 'ui/react-ui-core/IconButton',
29
28
  component: IconButton,
30
- render: DefaultStory,
29
+ render: DefaultStory as any,
31
30
  decorators: [withTheme],
32
- parameters: { chromatic: { disableSnapshot: false } },
33
- };
31
+ } satisfies Meta<typeof IconButton>;
32
+
33
+ export default meta;
34
+
35
+ type Story = StoryObj<typeof meta>;
34
36
 
35
- export const Default = {
37
+ export const Default: Story = {
36
38
  args: {
37
39
  label: 'Bold',
38
40
  icon: 'ph--text-b--regular',
@@ -12,21 +12,29 @@ import { Tooltip, type TooltipSide } from '../Tooltip';
12
12
  import { Button, type ButtonProps } from './Button';
13
13
 
14
14
  type IconButtonProps = Omit<ButtonProps, 'children'> &
15
- Pick<IconProps, 'icon' | 'size'> & {
15
+ Partial<Pick<IconProps, 'icon' | 'size'>> & {
16
16
  label: string;
17
17
  iconOnly?: boolean;
18
18
  noTooltip?: boolean;
19
19
  caretDown?: boolean;
20
20
  iconClassNames?: ThemedClassName<any>['classNames'];
21
- tooltipPortal?: boolean;
22
21
  tooltipSide?: TooltipSide;
23
22
  };
24
23
 
24
+ const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>((props, forwardedRef) =>
25
+ props.iconOnly ? (
26
+ <IconOnlyButton {...props} ref={forwardedRef} />
27
+ ) : (
28
+ <LabelledIconButton {...props} ref={forwardedRef} />
29
+ ),
30
+ );
31
+
25
32
  const IconOnlyButton = forwardRef<HTMLButtonElement, IconButtonProps>(
26
- ({ noTooltip, tooltipPortal = true, tooltipSide, ...props }, forwardedRef) => {
33
+ ({ noTooltip, tooltipSide, ...props }, forwardedRef) => {
27
34
  if (noTooltip) {
28
35
  return <LabelledIconButton {...props} ref={forwardedRef} />;
29
36
  }
37
+
30
38
  return (
31
39
  <Tooltip.Trigger asChild content={props.label} side={tooltipSide}>
32
40
  <LabelledIconButton {...props} ref={forwardedRef} />
@@ -35,12 +43,13 @@ const IconOnlyButton = forwardRef<HTMLButtonElement, IconButtonProps>(
35
43
  },
36
44
  );
37
45
 
46
+ // TODO(burdon): Inherit size from container/density.
38
47
  const LabelledIconButton = forwardRef<HTMLButtonElement, IconButtonProps>(
39
- ({ icon, size, iconOnly, label, classNames, iconClassNames, caretDown, ...props }, forwardedRef) => {
48
+ ({ icon, size = 5, iconOnly, label, classNames, iconClassNames, caretDown, ...props }, forwardedRef) => {
40
49
  const { tx } = useThemeContext();
41
50
  return (
42
51
  <Button {...props} classNames={tx('iconButton.root', 'iconButton', { iconOnly }, classNames)} ref={forwardedRef}>
43
- <Icon icon={icon} size={size} classNames={iconClassNames} />
52
+ {icon && <Icon icon={icon} size={size} classNames={iconClassNames} />}
44
53
  <span className={iconOnly ? 'sr-only' : undefined}>{label}</span>
45
54
  {caretDown && <Icon size={3} icon='ph--caret-down--bold' />}
46
55
  </Button>
@@ -48,14 +57,6 @@ const LabelledIconButton = forwardRef<HTMLButtonElement, IconButtonProps>(
48
57
  },
49
58
  );
50
59
 
51
- const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>((props, forwardedRef) =>
52
- props.iconOnly ? (
53
- <IconOnlyButton {...props} ref={forwardedRef} />
54
- ) : (
55
- <LabelledIconButton {...props} ref={forwardedRef} />
56
- ),
57
- );
58
-
59
60
  export { IconButton };
60
61
 
61
62
  export type { IconButtonProps };
@@ -2,18 +2,15 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
7
6
  import React from 'react';
8
7
 
9
8
  import { withTheme } from '../../testing';
10
9
  import { Icon } from '../Icon';
11
10
 
12
- import { Toggle } from './Toggle';
13
-
14
- type StorybookToggleProps = {};
11
+ import { Toggle, type ToggleProps } from './Toggle';
15
12
 
16
- const DefaultStory = (props: StorybookToggleProps) => {
13
+ const DefaultStory = (props: ToggleProps) => {
17
14
  return (
18
15
  <Toggle {...props}>
19
16
  <Icon icon='ph--text-b--regular' />
@@ -21,14 +18,20 @@ const DefaultStory = (props: StorybookToggleProps) => {
21
18
  );
22
19
  };
23
20
 
24
- export default {
21
+ const meta = {
25
22
  title: 'ui/react-ui-core/Toggle',
26
23
  component: Toggle,
27
24
  render: DefaultStory,
28
25
  decorators: [withTheme],
29
- parameters: { chromatic: { disableSnapshot: false } },
30
- };
26
+ parameters: {
27
+ layout: 'centered',
28
+ },
29
+ } satisfies Meta<typeof Toggle>;
30
+
31
+ export default meta;
32
+
33
+ type Story = StoryObj<typeof meta>;
31
34
 
32
- export const Default = {
35
+ export const Default: Story = {
33
36
  args: {},
34
37
  };
@@ -2,8 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
7
6
  import React from 'react';
8
7
 
9
8
  import { withTheme } from '../../testing';
@@ -25,15 +24,18 @@ const DefaultStory = (props: ToggleGroupProps) => {
25
24
  );
26
25
  };
27
26
 
28
- export default {
27
+ const meta = {
29
28
  title: 'ui/react-ui-core/ToggleGroup',
30
29
  component: ToggleGroup,
31
30
  render: DefaultStory,
32
31
  decorators: [withTheme],
33
- parameters: { chromatic: { disableSnapshot: false } },
34
- };
32
+ } satisfies Meta<typeof ToggleGroup>;
33
+
34
+ export default meta;
35
+
36
+ type Story = StoryObj<typeof meta>;
35
37
 
36
- export const Default = {
38
+ export const Default: Story = {
37
39
  args: {
38
40
  type: 'single',
39
41
  },
@@ -12,6 +12,7 @@ import {
12
12
  import React, { forwardRef } from 'react';
13
13
 
14
14
  import { Button, ButtonGroup, type ButtonGroupProps, type ButtonProps } from './Button';
15
+ import { IconButton, type IconButtonProps } from './IconButton';
15
16
 
16
17
  type ToggleGroupProps = Omit<ToggleGroupSingleProps, 'className'> | Omit<ToggleGroupMultipleProps, 'className'>;
17
18
 
@@ -37,5 +38,17 @@ const ToggleGroupItem = forwardRef<HTMLButtonElement, ToggleGroupItemProps>(
37
38
  },
38
39
  );
39
40
 
40
- export { ToggleGroup, ToggleGroupItem };
41
+ type ToggleGroupIconItemProps = Omit<ToggleGroupItemPrimitiveProps, 'className'> & IconButtonProps;
42
+
43
+ const ToggleGroupIconItem = forwardRef<HTMLButtonElement, ToggleGroupIconItemProps>(
44
+ ({ variant, label, icon, size, elevation, density, classNames, ...props }, forwardedRef) => {
45
+ return (
46
+ <ToggleGroupItemPrimitive {...props} asChild>
47
+ <IconButton {...{ variant, elevation, density, classNames, label, icon, size }} ref={forwardedRef} />
48
+ </ToggleGroupItemPrimitive>
49
+ );
50
+ },
51
+ );
52
+
53
+ export { ToggleGroup, ToggleGroupItem, ToggleGroupIconItem };
41
54
  export type { ToggleGroupProps, ToggleGroupItemProps };
@@ -6,7 +6,7 @@ import React from 'react';
6
6
 
7
7
  import { mx } from '@dxos/react-ui-theme';
8
8
 
9
- import { Button, type ButtonProps, IconButton } from '../Buttons';
9
+ import { Button, type ButtonProps, IconButton } from '../Button';
10
10
  import { Icon, type IconProps } from '../Icon';
11
11
  import { useTranslation } from '../ThemeProvider';
12
12
  import { type TooltipScopedProps, useTooltipContext } from '../Tooltip';
@@ -2,12 +2,11 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
7
6
  import React from 'react';
8
7
 
9
8
  import { withTheme } from '../../testing';
10
- import { Button } from '../Buttons';
9
+ import { Button } from '../Button';
11
10
  import { Toolbar } from '../Toolbar';
12
11
 
13
12
  import { AlertDialog } from './AlertDialog';
@@ -16,12 +15,12 @@ type StoryProps = Partial<{
16
15
  title: string;
17
16
  description: string;
18
17
  body: string;
18
+ openTrigger: string;
19
19
  cancelTrigger: string;
20
20
  actionTrigger: string;
21
- openTrigger: string;
22
21
  }>;
23
22
 
24
- const DefaultStory = ({ title, openTrigger, description, body, cancelTrigger, actionTrigger }: StoryProps) => {
23
+ const DefaultStory = ({ title, description, body, openTrigger, cancelTrigger, actionTrigger }: StoryProps) => {
25
24
  return (
26
25
  <AlertDialog.Root defaultOpen>
27
26
  <AlertDialog.Trigger asChild>
@@ -47,15 +46,18 @@ const DefaultStory = ({ title, openTrigger, description, body, cancelTrigger, ac
47
46
  );
48
47
  };
49
48
 
50
- export default {
49
+ const meta = {
51
50
  title: 'ui/react-ui-core/AlertDialog',
52
- component: AlertDialog,
53
- render: DefaultStory,
51
+ component: AlertDialog.Root as any,
52
+ render: DefaultStory as any,
54
53
  decorators: [withTheme],
55
- parameters: { chromatic: { disableSnapshot: false } },
56
- };
54
+ } satisfies Meta<typeof DefaultStory>;
55
+
56
+ export default meta;
57
+
58
+ type Story = StoryObj<typeof meta>;
57
59
 
58
- export const Default = {
60
+ export const Default: Story = {
59
61
  args: {
60
62
  title: 'AlertDialog title',
61
63
  openTrigger: 'Open AlertDialog',
@@ -2,12 +2,11 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
7
6
  import React from 'react';
8
7
 
9
8
  import { withTheme } from '../../testing';
10
- import { Button } from '../Buttons';
9
+ import { Button } from '../Button';
11
10
 
12
11
  import { Dialog } from './Dialog';
13
12
 
@@ -40,15 +39,23 @@ const DefaultStory = ({ title, openTrigger, description, body, closeTrigger, blo
40
39
  );
41
40
  };
42
41
 
43
- export default {
42
+ const meta = {
44
43
  title: 'ui/react-ui-core/Dialog',
45
- component: Dialog,
44
+ component: Dialog as any,
46
45
  render: DefaultStory,
47
46
  decorators: [withTheme],
48
- parameters: { chromatic: { disableSnapshot: false } },
49
- };
47
+ parameters: {
48
+ chromatic: {
49
+ disableSnapshot: false,
50
+ },
51
+ },
52
+ } satisfies Meta<typeof DefaultStory>;
50
53
 
51
- export const Default = {
54
+ export default meta;
55
+
56
+ type Story = StoryObj<typeof meta>;
57
+
58
+ export const Default: Story = {
52
59
  args: {
53
60
  title: 'Dialog title',
54
61
  openTrigger: 'Open Dialog',
@@ -57,10 +64,4 @@ export const Default = {
57
64
  closeTrigger: 'Close trigger',
58
65
  blockAlign: 'center',
59
66
  },
60
- argTypes: {
61
- blockAlign: {
62
- type: 'select',
63
- options: ['center', 'start', 'end'],
64
- },
65
- },
66
67
  };