@dxos/react-ui 0.8.4-main.bc674ce → 0.8.4-main.c351d160a8

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 (293) hide show
  1. package/dist/lib/browser/{chunk-CEKVHJ27.mjs → chunk-EJSGYGYH.mjs} +117 -117
  2. package/dist/lib/browser/chunk-EJSGYGYH.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +2747 -1997
  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 +56 -32
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/{chunk-2NHEX4AD.mjs → chunk-B7MXDDMJ.mjs} +117 -117
  9. package/dist/lib/node-esm/chunk-B7MXDDMJ.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +2747 -1997
  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 +56 -32
  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/Button/Button.d.ts +2 -2
  19. package/dist/types/src/components/Button/Button.d.ts.map +1 -1
  20. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -1
  21. package/dist/types/src/components/Button/Toggle.d.ts +2 -2
  22. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -1
  23. package/dist/types/src/components/Button/ToggleGroup.d.ts +6 -6
  24. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -1
  25. package/dist/types/src/components/Card/Card.d.ts +107 -0
  26. package/dist/types/src/components/Card/Card.d.ts.map +1 -0
  27. package/dist/types/src/components/Card/Card.stories.d.ts +21 -0
  28. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
  29. package/dist/types/src/components/Card/index.d.ts +2 -0
  30. package/dist/types/src/components/Card/index.d.ts.map +1 -0
  31. package/dist/types/src/components/Clipboard/index.d.ts +10 -1
  32. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  33. package/dist/types/src/components/Dialog/AlertDialog.d.ts +26 -17
  34. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -1
  35. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -1
  36. package/dist/types/src/components/Dialog/Dialog.d.ts +25 -18
  37. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
  38. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +3 -6
  39. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
  40. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
  41. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  42. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
  43. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
  44. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +8 -0
  45. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
  46. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
  47. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
  48. package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
  49. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
  50. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  51. package/dist/types/src/components/Image/Image.d.ts +14 -0
  52. package/dist/types/src/components/Image/Image.d.ts.map +1 -0
  53. package/dist/types/src/components/Image/Image.stories.d.ts +33 -0
  54. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
  55. package/dist/types/src/components/Image/index.d.ts +2 -0
  56. package/dist/types/src/components/Image/index.d.ts.map +1 -0
  57. package/dist/types/src/components/Input/Input.d.ts +4 -7
  58. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  59. package/dist/types/src/components/Input/Input.stories.d.ts +7 -7
  60. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  61. package/dist/types/src/components/List/List.d.ts.map +1 -1
  62. package/dist/types/src/components/List/List.stories.d.ts.map +1 -1
  63. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -1
  64. package/dist/types/src/components/Main/Main.d.ts +6 -32
  65. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  66. package/dist/types/src/components/Main/Main.stories.d.ts +1 -5
  67. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  68. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -1
  69. package/dist/types/src/components/Menu/DropdownMenu.d.ts +51 -49
  70. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -1
  71. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +6 -1
  72. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -1
  73. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  74. package/dist/types/src/components/Message/Message.stories.d.ts +2 -3
  75. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  76. package/dist/types/src/components/Popover/Popover.d.ts +28 -22
  77. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  78. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +21 -26
  79. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  80. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +41 -9
  81. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  82. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
  83. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +6 -1
  84. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -1
  85. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  86. package/dist/types/src/components/Separator/Separator.d.ts +3 -3
  87. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
  88. package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
  89. package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
  90. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
  91. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
  92. package/dist/types/src/components/Skeleton/index.d.ts +2 -0
  93. package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
  94. package/dist/types/src/components/Splitter/Splitter.d.ts +32 -0
  95. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
  96. package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
  97. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
  98. package/dist/types/src/components/Splitter/index.d.ts +2 -0
  99. package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
  100. package/dist/types/src/components/Status/Status.stories.d.ts +4 -2
  101. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  102. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  103. package/dist/types/src/components/Tag/Tag.stories.d.ts +0 -5
  104. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  105. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +1 -0
  106. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  107. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts +12 -0
  108. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
  109. package/dist/types/src/components/Toast/Toast.d.ts +15 -15
  110. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  111. package/dist/types/src/components/Toolbar/Toolbar.d.ts +33 -11
  112. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  113. package/dist/types/src/components/Tooltip/Tooltip.d.ts +9 -9
  114. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  115. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/index.d.ts +8 -4
  117. package/dist/types/src/components/index.d.ts.map +1 -1
  118. package/dist/types/src/exemplars/generics.stories.d.ts +18 -0
  119. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
  120. package/dist/types/src/exemplars/slot.stories.d.ts +14 -0
  121. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -0
  122. package/dist/types/src/exemplars/tabster.stories.d.ts +8 -0
  123. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -0
  124. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  125. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  126. package/dist/types/src/hooks/index.d.ts +1 -0
  127. package/dist/types/src/hooks/index.d.ts.map +1 -1
  128. package/dist/types/src/index.d.ts +1 -0
  129. package/dist/types/src/index.d.ts.map +1 -1
  130. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  131. package/dist/types/src/primitives/Column/Column.d.ts +26 -0
  132. package/dist/types/src/primitives/Column/Column.d.ts.map +1 -0
  133. package/dist/types/src/primitives/Column/Column.stories.d.ts +6 -0
  134. package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -0
  135. package/dist/types/src/primitives/Column/index.d.ts +2 -0
  136. package/dist/types/src/primitives/Column/index.d.ts.map +1 -0
  137. package/dist/types/src/primitives/Container/Container.d.ts +8 -0
  138. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
  139. package/dist/types/src/primitives/Container/Container.stories.d.ts +6 -0
  140. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
  141. package/dist/types/src/primitives/Container/index.d.ts +2 -0
  142. package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
  143. package/dist/types/src/primitives/Flex/Flex.d.ts +13 -0
  144. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
  145. package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
  146. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
  147. package/dist/types/src/primitives/Flex/index.d.ts +2 -0
  148. package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
  149. package/dist/types/src/primitives/Grid/Grid.d.ts +15 -0
  150. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
  151. package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
  152. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
  153. package/dist/types/src/primitives/Grid/index.d.ts +2 -0
  154. package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
  155. package/dist/types/src/primitives/Panel/Panel.d.ts +26 -0
  156. package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -0
  157. package/dist/types/src/primitives/Panel/Panel.stories.d.ts +6 -0
  158. package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -0
  159. package/dist/types/src/primitives/Panel/index.d.ts +2 -0
  160. package/dist/types/src/primitives/Panel/index.d.ts.map +1 -0
  161. package/dist/types/src/primitives/index.d.ts +6 -0
  162. package/dist/types/src/primitives/index.d.ts.map +1 -0
  163. package/dist/types/src/testing/Loading.d.ts +9 -0
  164. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  165. package/dist/types/src/testing/decorators/withLayout.d.ts +1 -1
  166. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
  167. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -1
  168. package/dist/types/src/testing/decorators/withTheme.d.ts +3 -2
  169. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  170. package/dist/types/src/testing/index.d.ts +1 -0
  171. package/dist/types/src/testing/index.d.ts.map +1 -1
  172. package/dist/types/src/translations.d.ts +11 -0
  173. package/dist/types/src/translations.d.ts.map +1 -0
  174. package/dist/types/tsconfig.tsbuildinfo +1 -1
  175. package/package.json +25 -21
  176. package/src/components/Avatars/Avatar.stories.tsx +5 -6
  177. package/src/components/Avatars/Avatar.tsx +5 -12
  178. package/src/components/Avatars/AvatarGroup.stories.tsx +2 -2
  179. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +3 -3
  180. package/src/components/Breadcrumb/Breadcrumb.tsx +11 -37
  181. package/src/components/Button/Button.stories.tsx +3 -3
  182. package/src/components/Button/Button.tsx +8 -14
  183. package/src/components/Button/IconButton.stories.tsx +4 -4
  184. package/src/components/Button/IconButton.tsx +2 -3
  185. package/src/components/Button/Toggle.stories.tsx +2 -2
  186. package/src/components/Button/Toggle.tsx +4 -4
  187. package/src/components/Button/ToggleGroup.stories.tsx +2 -2
  188. package/src/components/Button/ToggleGroup.tsx +12 -16
  189. package/src/components/Card/Card.stories.tsx +151 -0
  190. package/src/components/Card/Card.tsx +390 -0
  191. package/src/components/Card/index.ts +5 -0
  192. package/src/components/Clipboard/CopyButton.tsx +3 -3
  193. package/src/components/Dialog/AlertDialog.stories.tsx +15 -15
  194. package/src/components/Dialog/AlertDialog.tsx +137 -54
  195. package/src/components/Dialog/Dialog.stories.tsx +40 -15
  196. package/src/components/Dialog/Dialog.tsx +94 -78
  197. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +50 -0
  198. package/src/components/ErrorFallback/ErrorFallback.tsx +70 -0
  199. package/src/components/ErrorFallback/ErrorStack.tsx +80 -0
  200. package/src/components/ErrorFallback/ThrowError.tsx +37 -0
  201. package/src/components/ErrorFallback/index.ts +9 -0
  202. package/src/components/Icon/Icon.stories.tsx +2 -2
  203. package/src/components/Icon/Icon.tsx +3 -2
  204. package/src/components/Image/Image.stories.tsx +86 -0
  205. package/src/components/Image/Image.tsx +223 -0
  206. package/src/components/Image/index.ts +5 -0
  207. package/src/components/Input/Input.stories.tsx +20 -39
  208. package/src/components/Input/Input.tsx +24 -69
  209. package/src/components/Link/Link.stories.tsx +2 -2
  210. package/src/components/Link/Link.tsx +2 -2
  211. package/src/components/List/List.stories.tsx +15 -22
  212. package/src/components/List/List.tsx +11 -16
  213. package/src/components/List/ListDropIndicator.tsx +7 -7
  214. package/src/components/List/Tree.stories.tsx +4 -4
  215. package/src/components/List/TreeDropIndicator.tsx +6 -6
  216. package/src/components/List/Treegrid.stories.tsx +3 -3
  217. package/src/components/List/Treegrid.tsx +10 -15
  218. package/src/components/Main/Main.stories.tsx +6 -95
  219. package/src/components/Main/Main.tsx +61 -211
  220. package/src/components/Menu/ContextMenu.stories.tsx +2 -2
  221. package/src/components/Menu/ContextMenu.tsx +9 -33
  222. package/src/components/Menu/DropdownMenu.stories.tsx +2 -2
  223. package/src/components/Menu/DropdownMenu.tsx +56 -50
  224. package/src/components/Message/Message.stories.tsx +25 -10
  225. package/src/components/Message/Message.tsx +17 -29
  226. package/src/components/Popover/Popover.stories.tsx +4 -4
  227. package/src/components/Popover/Popover.tsx +61 -58
  228. package/src/components/ScrollArea/ScrollArea.stories.tsx +152 -76
  229. package/src/components/ScrollArea/ScrollArea.tsx +72 -116
  230. package/src/components/ScrollArea/index.ts +1 -1
  231. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +41 -22
  232. package/src/components/ScrollContainer/ScrollContainer.tsx +18 -13
  233. package/src/components/Select/Select.stories.tsx +2 -2
  234. package/src/components/Select/Select.tsx +11 -27
  235. package/src/components/Separator/Separator.tsx +5 -8
  236. package/src/components/Skeleton/Skeleton.stories.tsx +52 -0
  237. package/src/components/Skeleton/Skeleton.tsx +26 -0
  238. package/src/components/Skeleton/index.ts +5 -0
  239. package/src/components/Splitter/Splitter.stories.tsx +83 -0
  240. package/src/components/Splitter/Splitter.tsx +126 -0
  241. package/src/components/Splitter/index.ts +5 -0
  242. package/src/components/Status/Status.stories.tsx +21 -17
  243. package/src/components/Status/Status.tsx +2 -2
  244. package/src/components/Tag/Tag.stories.tsx +4 -9
  245. package/src/components/Tag/Tag.tsx +2 -7
  246. package/src/components/ThemeProvider/ThemeProvider.stories.tsx +32 -0
  247. package/src/components/ThemeProvider/ThemeProvider.tsx +4 -3
  248. package/src/components/Toast/Toast.stories.tsx +2 -2
  249. package/src/components/Toast/Toast.tsx +22 -41
  250. package/src/components/Toolbar/Toolbar.stories.tsx +2 -2
  251. package/src/components/Toolbar/Toolbar.tsx +166 -21
  252. package/src/components/Tooltip/Tooltip.stories.tsx +15 -13
  253. package/src/components/Tooltip/Tooltip.tsx +18 -18
  254. package/src/components/index.ts +9 -5
  255. package/src/exemplars/generics.stories.tsx +49 -0
  256. package/src/exemplars/slot.stories.tsx +107 -0
  257. package/src/exemplars/tabster.stories.tsx +127 -0
  258. package/src/exemplars/virtualizer.stories.tsx +137 -0
  259. package/src/hooks/index.ts +1 -0
  260. package/src/index.ts +1 -0
  261. package/src/playground/Controls.stories.tsx +3 -10
  262. package/src/playground/Custom.stories.tsx +11 -11
  263. package/src/playground/Typography.stories.tsx +3 -3
  264. package/src/primitives/Column/Column.stories.tsx +78 -0
  265. package/src/primitives/Column/Column.tsx +133 -0
  266. package/src/primitives/Column/index.ts +5 -0
  267. package/src/primitives/Container/Container.stories.tsx +30 -0
  268. package/src/primitives/Container/Container.tsx +22 -0
  269. package/src/primitives/Container/index.ts +5 -0
  270. package/src/primitives/Flex/Flex.stories.tsx +58 -0
  271. package/src/primitives/Flex/Flex.tsx +29 -0
  272. package/src/primitives/Flex/index.ts +5 -0
  273. package/src/primitives/Grid/Grid.stories.tsx +57 -0
  274. package/src/primitives/Grid/Grid.tsx +35 -0
  275. package/src/primitives/Grid/index.ts +5 -0
  276. package/src/primitives/Panel/Panel.stories.tsx +67 -0
  277. package/src/primitives/Panel/Panel.tsx +119 -0
  278. package/src/primitives/Panel/index.ts +5 -0
  279. package/src/primitives/index.ts +9 -0
  280. package/src/testing/Loading.tsx +26 -0
  281. package/src/testing/decorators/withLayout.tsx +21 -7
  282. package/src/testing/decorators/withLayoutVariants.tsx +18 -21
  283. package/src/testing/decorators/withTheme.tsx +19 -17
  284. package/src/testing/index.ts +2 -0
  285. package/src/translations.ts +19 -0
  286. package/dist/lib/browser/chunk-CEKVHJ27.mjs.map +0 -7
  287. package/dist/lib/node-esm/chunk-2NHEX4AD.mjs.map +0 -7
  288. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -15
  289. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
  290. package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
  291. package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
  292. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -59
  293. package/src/components/AnchoredOverflow/index.ts +0 -5
@@ -2,58 +2,71 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import {
6
- AlertDialogAction as AlertDialogActionPrimitive,
7
- type AlertDialogActionProps as AlertDialogActionPrimitiveProps,
8
- AlertDialogCancel as AlertDialogCancelPrimitive,
9
- type AlertDialogCancelProps as AlertDialogCancelPrimitiveProps,
10
- AlertDialogContent as AlertDialogContentPrimitive,
11
- type AlertDialogContentProps as AlertDialogContentPrimitiveProps,
12
- AlertDialogDescription as AlertDialogDescriptionPrimitive,
13
- type AlertDialogDescriptionProps as AlertDialogDescriptionPrimitiveProps,
14
- AlertDialogOverlay as AlertDialogOverlayPrimitive,
15
- type AlertDialogOverlayProps as AlertDialogOverlayPrimitiveProps,
16
- AlertDialogPortal as AlertDialogPortalPrimitive,
17
- type AlertDialogPortalProps as AlertDialogPortalPrimitiveProps,
18
- Root as AlertDialogRootPrimitive,
19
- type AlertDialogProps as AlertDialogRootPrimitiveProps,
20
- AlertDialogTitle as AlertDialogTitlePrimitive,
21
- type AlertDialogTitleProps as AlertDialogTitlePrimitiveProps,
22
- AlertDialogTrigger as AlertDialogTriggerPrimitive,
23
- type AlertDialogTriggerProps as AlertDialogTriggerPrimitiveProps,
24
- } from '@radix-ui/react-alert-dialog';
5
+ import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
25
6
  import { createContext } from '@radix-ui/react-context';
26
- import React, { type ForwardRefExoticComponent, type FunctionComponent, forwardRef } from 'react';
7
+ import React, {
8
+ type ForwardRefExoticComponent,
9
+ type FunctionComponent,
10
+ type PropsWithChildren,
11
+ forwardRef,
12
+ } from 'react';
13
+
14
+ import { type DialogSize } from '@dxos/ui-theme';
27
15
 
28
16
  import { useThemeContext } from '../../hooks';
17
+ import { Column } from '../../primitives';
29
18
  import { type ThemedClassName } from '../../util';
30
19
  import { ElevationProvider } from '../ElevationProvider';
31
20
 
32
- type AlertDialogRootProps = AlertDialogRootPrimitiveProps;
21
+ //
22
+ // Root
23
+ //
24
+
25
+ type AlertDialogRootProps = AlertDialogPrimitive.AlertDialogProps;
33
26
 
34
27
  const AlertDialogRoot: FunctionComponent<AlertDialogRootProps> = (props) => (
35
28
  <ElevationProvider elevation='dialog'>
36
- <AlertDialogRootPrimitive {...props} />
29
+ <AlertDialogPrimitive.Root {...props} />
37
30
  </ElevationProvider>
38
31
  );
39
32
 
40
- type AlertDialogTriggerProps = AlertDialogTriggerPrimitiveProps;
33
+ //
34
+ // Trigger
35
+ //
36
+
37
+ type AlertDialogTriggerProps = AlertDialogPrimitive.AlertDialogTriggerProps;
38
+
39
+ const AlertDialogTrigger: FunctionComponent<AlertDialogTriggerProps> = AlertDialogPrimitive.Trigger;
41
40
 
42
- const AlertDialogTrigger: FunctionComponent<AlertDialogTriggerProps> = AlertDialogTriggerPrimitive;
41
+ //
42
+ // Portal
43
+ //
44
+
45
+ type AlertDialogPortalProps = AlertDialogPrimitive.AlertDialogPortalProps;
46
+
47
+ const AlertDialogPortal: FunctionComponent<AlertDialogPortalProps> = AlertDialogPrimitive.Portal;
43
48
 
44
- type AlertDialogPortalProps = AlertDialogPortalPrimitiveProps;
49
+ //
50
+ // Cancel
51
+ //
45
52
 
46
- const AlertDialogPortal: FunctionComponent<AlertDialogPortalProps> = AlertDialogPortalPrimitive;
53
+ type AlertDialogCancelProps = AlertDialogPrimitive.AlertDialogCancelProps;
47
54
 
48
- type AlertDialogCancelProps = AlertDialogCancelPrimitiveProps;
55
+ const AlertDialogCancel: FunctionComponent<AlertDialogCancelProps> = AlertDialogPrimitive.Cancel;
56
+
57
+ //
58
+ // Action
59
+ //
49
60
 
50
- const AlertDialogCancel: FunctionComponent<AlertDialogCancelProps> = AlertDialogCancelPrimitive;
61
+ type AlertDialogActionProps = AlertDialogPrimitive.AlertDialogActionProps;
51
62
 
52
- type AlertDialogActionProps = AlertDialogActionPrimitiveProps;
63
+ const AlertDialogAction: FunctionComponent<AlertDialogActionProps> = AlertDialogPrimitive.Action;
53
64
 
54
- const AlertDialogAction: FunctionComponent<AlertDialogActionProps> = AlertDialogActionPrimitive;
65
+ //
66
+ // Title
67
+ //
55
68
 
56
- type AlertDialogTitleProps = ThemedClassName<AlertDialogTitlePrimitiveProps> & { srOnly?: boolean };
69
+ type AlertDialogTitleProps = ThemedClassName<AlertDialogPrimitive.AlertDialogTitleProps> & { srOnly?: boolean };
57
70
 
58
71
  const AlertDialogTitle: ForwardRefExoticComponent<AlertDialogTitleProps> = forwardRef<
59
72
  HTMLHeadingElement,
@@ -61,15 +74,17 @@ const AlertDialogTitle: ForwardRefExoticComponent<AlertDialogTitleProps> = forwa
61
74
  >(({ classNames, srOnly, ...props }, forwardedRef) => {
62
75
  const { tx } = useThemeContext();
63
76
  return (
64
- <AlertDialogTitlePrimitive
65
- {...props}
66
- className={tx('dialog.title', 'dialog--alert__title', { srOnly }, classNames)}
67
- ref={forwardedRef}
68
- />
77
+ <AlertDialogPrimitive.Title {...props} className={tx('dialog.title', { srOnly }, classNames)} ref={forwardedRef} />
69
78
  );
70
79
  });
71
80
 
72
- type AlertDialogDescriptionProps = ThemedClassName<AlertDialogDescriptionPrimitiveProps> & { srOnly?: boolean };
81
+ //
82
+ // Description
83
+ //
84
+
85
+ type AlertDialogDescriptionProps = ThemedClassName<AlertDialogPrimitive.AlertDialogDescriptionProps> & {
86
+ srOnly?: boolean;
87
+ };
73
88
 
74
89
  const AlertDialogDescription: ForwardRefExoticComponent<AlertDialogTitleProps> = forwardRef<
75
90
  HTMLParagraphElement,
@@ -77,17 +92,25 @@ const AlertDialogDescription: ForwardRefExoticComponent<AlertDialogTitleProps> =
77
92
  >(({ classNames, srOnly, ...props }, forwardedRef) => {
78
93
  const { tx } = useThemeContext();
79
94
  return (
80
- <AlertDialogDescriptionPrimitive
95
+ <AlertDialogPrimitive.Description
81
96
  {...props}
82
- className={tx('dialog.description', 'dialog--alert__description', { srOnly }, classNames)}
97
+ className={tx('dialog.description', { srOnly }, classNames)}
83
98
  ref={forwardedRef}
84
99
  />
85
100
  );
86
101
  });
87
102
 
88
103
  type OverlayLayoutContextValue = { inOverlayLayout?: boolean };
104
+
105
+ //
106
+ // Context
107
+ //
108
+
89
109
  const ALERT_DIALOG_OVERLAY_NAME = 'AlertDialogOverlay';
90
110
  const ALERT_DIALOG_CONTENT_NAME = 'AlertDialogContent';
111
+ const ALERT_DIALOG_BODY_NAME = 'AlertDialogBody';
112
+ const ALERT_DIALOG_ACTIONBAR_NAME = 'AlertDialogActionBar';
113
+
91
114
  const [OverlayLayoutProvider, useOverlayLayoutContext] = createContext<OverlayLayoutContextValue>(
92
115
  ALERT_DIALOG_OVERLAY_NAME,
93
116
  {
@@ -95,7 +118,11 @@ const [OverlayLayoutProvider, useOverlayLayoutContext] = createContext<OverlayLa
95
118
  },
96
119
  );
97
120
 
98
- type AlertDialogOverlayProps = ThemedClassName<AlertDialogOverlayPrimitiveProps> & {
121
+ //
122
+ // Overlay
123
+ //
124
+
125
+ type AlertDialogOverlayProps = ThemedClassName<AlertDialogPrimitive.AlertDialogOverlayProps> & {
99
126
  blockAlign?: 'center' | 'start' | 'end';
100
127
  };
101
128
 
@@ -105,56 +132,110 @@ const AlertDialogOverlay: ForwardRefExoticComponent<AlertDialogOverlayProps> = f
105
132
  >(({ classNames, children, blockAlign, ...props }, forwardedRef) => {
106
133
  const { tx } = useThemeContext();
107
134
  return (
108
- <AlertDialogOverlayPrimitive
135
+ <AlertDialogPrimitive.Overlay
109
136
  {...props}
137
+ data-block-align={blockAlign}
110
138
  className={tx(
111
139
  'dialog.overlay',
112
- 'dialog--alert__overlay',
113
140
  {},
114
141
  classNames,
115
- 'data-[block-align=start]:justify-center',
116
- 'data-[block-align=start]:items-start',
117
- 'data-[block-align=center]:place-content-center',
142
+ // TODO(burdon): Move to dialog.ts.
143
+ 'data-[h-align=start]:justify-center',
144
+ 'data-[h-align=start]:items-start',
145
+ 'data-[h-align=center]:place-content-center',
118
146
  )}
119
147
  ref={forwardedRef}
120
- data-block-align={blockAlign}
121
148
  >
122
149
  <OverlayLayoutProvider inOverlayLayout>{children}</OverlayLayoutProvider>
123
- </AlertDialogOverlayPrimitive>
150
+ </AlertDialogPrimitive.Overlay>
124
151
  );
125
152
  });
126
153
 
127
154
  AlertDialogOverlay.displayName = ALERT_DIALOG_OVERLAY_NAME;
128
155
 
129
- type AlertDialogContentProps = ThemedClassName<AlertDialogContentPrimitiveProps>;
156
+ //
157
+ // Content
158
+ //
159
+
160
+ type AlertDialogContentProps = ThemedClassName<AlertDialogPrimitive.AlertDialogContentProps> & { size?: DialogSize };
130
161
 
131
162
  const AlertDialogContent: ForwardRefExoticComponent<AlertDialogContentProps> = forwardRef<
132
163
  HTMLDivElement,
133
164
  AlertDialogContentProps
134
- >(({ classNames, children, ...props }, forwardedRef) => {
165
+ >(({ classNames, children, size = 'md', ...props }, forwardedRef) => {
135
166
  const { tx } = useThemeContext();
136
167
  const { inOverlayLayout } = useOverlayLayoutContext(ALERT_DIALOG_CONTENT_NAME);
137
168
  return (
138
- <AlertDialogContentPrimitive
169
+ <AlertDialogPrimitive.Content
139
170
  {...props}
140
- className={tx('dialog.content', 'dialog--alert', { inOverlayLayout }, classNames)}
171
+ className={tx('dialog.content', { inOverlayLayout, size }, classNames)}
141
172
  ref={forwardedRef}
142
173
  >
143
- {children}
144
- </AlertDialogContentPrimitive>
174
+ <Column.Root>{children}</Column.Root>
175
+ </AlertDialogPrimitive.Content>
145
176
  );
146
177
  });
147
178
 
148
179
  AlertDialogContent.displayName = ALERT_DIALOG_CONTENT_NAME;
149
180
 
181
+ //
182
+ // Body
183
+ //
184
+
185
+ type AlertDialogBodyProps = PropsWithChildren;
186
+
187
+ const AlertDialogBody: ForwardRefExoticComponent<AlertDialogBodyProps> = forwardRef<
188
+ HTMLDivElement,
189
+ AlertDialogBodyProps
190
+ >(({ children, ...props }, forwardedRef) => {
191
+ const { tx } = useThemeContext();
192
+ return (
193
+ <Column.Segment asChild>
194
+ <div role='none' {...props} className={tx('dialog.body')} ref={forwardedRef}>
195
+ {children}
196
+ </div>
197
+ </Column.Segment>
198
+ );
199
+ });
200
+
201
+ AlertDialogBody.displayName = ALERT_DIALOG_BODY_NAME;
202
+
203
+ //
204
+ // ActionBar
205
+ //
206
+
207
+ type AlertDialogActionBarProps = ThemedClassName<PropsWithChildren>;
208
+
209
+ const AlertDialogActionBar: ForwardRefExoticComponent<AlertDialogActionBarProps> = forwardRef<
210
+ HTMLDivElement,
211
+ AlertDialogActionBarProps
212
+ >(({ children, classNames, ...props }, forwardedRef) => {
213
+ const { tx } = useThemeContext();
214
+ return (
215
+ <Column.Segment asChild>
216
+ <div {...props} className={tx('dialog.actionbar', {}, classNames)} ref={forwardedRef}>
217
+ {children}
218
+ </div>
219
+ </Column.Segment>
220
+ );
221
+ });
222
+
223
+ AlertDialogActionBar.displayName = ALERT_DIALOG_ACTIONBAR_NAME;
224
+
225
+ //
226
+ // AlertDialog
227
+ //
228
+
150
229
  export const AlertDialog = {
151
230
  Root: AlertDialogRoot,
152
231
  Trigger: AlertDialogTrigger,
153
232
  Portal: AlertDialogPortal,
154
233
  Overlay: AlertDialogOverlay,
155
234
  Content: AlertDialogContent,
235
+ Body: AlertDialogBody,
156
236
  Title: AlertDialogTitle,
157
237
  Description: AlertDialogDescription,
238
+ ActionBar: AlertDialogActionBar,
158
239
  Cancel: AlertDialogCancel,
159
240
  Action: AlertDialogAction,
160
241
  };
@@ -165,8 +246,10 @@ export type {
165
246
  AlertDialogPortalProps,
166
247
  AlertDialogOverlayProps,
167
248
  AlertDialogContentProps,
249
+ AlertDialogBodyProps,
168
250
  AlertDialogTitleProps,
169
251
  AlertDialogDescriptionProps,
252
+ AlertDialogActionBarProps,
170
253
  AlertDialogCancelProps,
171
254
  AlertDialogActionProps,
172
255
  };
@@ -9,6 +9,7 @@ import { faker } from '@dxos/random';
9
9
 
10
10
  import { withTheme } from '../../testing';
11
11
  import { Button } from '../Button';
12
+ import { Input } from '../Input';
12
13
 
13
14
  import { Dialog, type DialogContentProps } from './Dialog';
14
15
 
@@ -18,12 +19,12 @@ type StoryProps = Pick<DialogContentProps, 'size'> &
18
19
  description: string;
19
20
  openTrigger: string;
20
21
  closeTrigger: string;
21
- blockAlign: 'center' | 'start';
22
+ blockAlign: 'start' | 'center';
22
23
  }>;
23
24
 
24
25
  const DefaultStory = ({ size, title, description, openTrigger, closeTrigger, blockAlign }: StoryProps) => {
25
26
  return (
26
- <Dialog.Root defaultOpen>
27
+ <Dialog.Root defaultOpen modal>
27
28
  <Dialog.Trigger asChild>
28
29
  <Button>{openTrigger}</Button>
29
30
  </Dialog.Trigger>
@@ -37,10 +38,18 @@ const DefaultStory = ({ size, title, description, openTrigger, closeTrigger, blo
37
38
  </Dialog.Close>
38
39
  )}
39
40
  </Dialog.Header>
40
- <Dialog.Description>{description}</Dialog.Description>
41
- <Dialog.Close asChild>
42
- <Button variant='primary'>{closeTrigger}</Button>
43
- </Dialog.Close>
41
+ <Dialog.Body>
42
+ <Dialog.Description>{description}</Dialog.Description>
43
+ <Input.Root>
44
+ <Input.Label>Value</Input.Label>
45
+ <Input.TextInput placeholder='Enter value' />
46
+ </Input.Root>
47
+ </Dialog.Body>
48
+ <Dialog.ActionBar>
49
+ <Dialog.Close asChild>
50
+ <Button variant='primary'>{closeTrigger}</Button>
51
+ </Dialog.Close>
52
+ </Dialog.ActionBar>
44
53
  </Dialog.Content>
45
54
  </Dialog.Overlay>
46
55
  </Dialog.Root>
@@ -48,25 +57,30 @@ const DefaultStory = ({ size, title, description, openTrigger, closeTrigger, blo
48
57
  };
49
58
 
50
59
  const meta = {
51
- title: 'ui/react-ui-core/Dialog',
60
+ title: 'ui/react-ui-core/components/Dialog',
52
61
  component: Dialog as any,
53
62
  render: DefaultStory,
54
- decorators: [withTheme],
55
- parameters: {
56
- chromatic: {
57
- disableSnapshot: false,
58
- },
59
- },
63
+ decorators: [withTheme()],
60
64
  } satisfies Meta<typeof DefaultStory>;
61
65
 
62
66
  export default meta;
63
67
 
64
68
  type Story = StoryObj<typeof meta>;
65
69
 
70
+ export const Default: Story = {
71
+ args: {
72
+ title: 'Dialog title',
73
+ description: faker.lorem.paragraph(1),
74
+ openTrigger: 'Open',
75
+ closeTrigger: 'Close',
76
+ blockAlign: 'start',
77
+ },
78
+ };
79
+
66
80
  export const Small: Story = {
67
81
  args: {
68
82
  title: 'Dialog title',
69
- description: faker.lorem.paragraph(2),
83
+ description: faker.lorem.paragraph(1),
70
84
  openTrigger: 'Open',
71
85
  closeTrigger: 'Close',
72
86
  blockAlign: 'center',
@@ -77,7 +91,7 @@ export const Small: Story = {
77
91
  export const Medium: Story = {
78
92
  args: {
79
93
  title: 'Dialog title',
80
- description: faker.lorem.paragraph(2),
94
+ description: faker.lorem.paragraph(1),
81
95
  openTrigger: 'Open',
82
96
  closeTrigger: 'Close',
83
97
  blockAlign: 'center',
@@ -95,3 +109,14 @@ export const Large: Story = {
95
109
  size: 'lg',
96
110
  },
97
111
  };
112
+
113
+ export const ExtraLarge: Story = {
114
+ args: {
115
+ title: 'Dialog title',
116
+ description: faker.lorem.paragraph(2),
117
+ openTrigger: 'Open Dialog',
118
+ closeTrigger: 'Close',
119
+ blockAlign: 'center',
120
+ size: 'xl',
121
+ },
122
+ };