@dxos/react-ui 0.8.4-main.f5c0578 → 0.8.4-main.fcfe5033a5

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 (470) hide show
  1. package/dist/lib/browser/chunk-OCVRIJCH.mjs +848 -0
  2. package/dist/lib/browser/chunk-OCVRIJCH.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +4115 -60
  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 +112 -60
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/chunk-QUD5P3RU.mjs +850 -0
  9. package/dist/lib/node-esm/chunk-QUD5P3RU.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +4115 -60
  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 +112 -60
  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 +5 -31
  18. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  19. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +5 -11
  20. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
  21. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  22. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts +8 -20
  23. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  24. package/dist/types/src/components/{Buttons → Button}/Button.d.ts +4 -4
  25. package/dist/types/src/components/Button/Button.d.ts.map +1 -0
  26. package/dist/types/src/components/Button/Button.stories.d.ts +17 -0
  27. package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -0
  28. package/dist/types/src/components/{Buttons → Button}/IconButton.d.ts +3 -3
  29. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -0
  30. package/dist/types/src/components/Button/IconButton.stories.d.ts +16 -0
  31. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -0
  32. package/dist/types/src/components/{Buttons → Button}/Toggle.d.ts +2 -2
  33. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -0
  34. package/dist/types/src/components/Button/Toggle.stories.d.ts +16 -0
  35. package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -0
  36. package/dist/types/src/components/Button/ToggleGroup.d.ts +27 -0
  37. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -0
  38. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +27 -0
  39. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -0
  40. package/dist/types/src/components/Button/index.d.ts.map +1 -0
  41. package/dist/types/src/components/Card/Card.d.ts +120 -0
  42. package/dist/types/src/components/Card/Card.d.ts.map +1 -0
  43. package/dist/types/src/components/Card/Card.stories.d.ts +21 -0
  44. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
  45. package/dist/types/src/components/Card/index.d.ts +2 -0
  46. package/dist/types/src/components/Card/index.d.ts.map +1 -0
  47. package/dist/types/src/components/Clipboard/CopyButton.d.ts +1 -1
  48. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  49. package/dist/types/src/components/Clipboard/index.d.ts +10 -1
  50. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  51. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts +1 -1
  52. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  53. package/dist/types/src/components/Dialog/AlertDialog.d.ts +51 -0
  54. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -0
  55. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts +11 -0
  56. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -0
  57. package/dist/types/src/components/Dialog/Dialog.d.ts +64 -0
  58. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -0
  59. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +25 -0
  60. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -0
  61. package/dist/types/src/components/Dialog/index.d.ts.map +1 -0
  62. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts +1 -1
  63. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  64. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
  65. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  66. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
  67. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
  68. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +19 -0
  69. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
  70. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
  71. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
  72. package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
  73. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
  74. package/dist/types/src/components/Focus/Focus.d.ts +36 -0
  75. package/dist/types/src/components/Focus/Focus.d.ts.map +1 -0
  76. package/dist/types/src/components/Focus/Focus.stories.d.ts +9 -0
  77. package/dist/types/src/components/Focus/Focus.stories.d.ts.map +1 -0
  78. package/dist/types/src/components/Focus/index.d.ts +2 -0
  79. package/dist/types/src/components/Focus/index.d.ts.map +1 -0
  80. package/dist/types/src/components/Icon/Icon.d.ts +5 -2
  81. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  82. package/dist/types/src/components/Icon/Icon.stories.d.ts +25 -0
  83. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -0
  84. package/dist/types/src/components/Image/Image.d.ts +14 -0
  85. package/dist/types/src/components/Image/Image.d.ts.map +1 -0
  86. package/dist/types/src/components/Image/Image.stories.d.ts +33 -0
  87. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
  88. package/dist/types/src/components/Image/index.d.ts +2 -0
  89. package/dist/types/src/components/Image/index.d.ts.map +1 -0
  90. package/dist/types/src/components/Input/Input.d.ts +7 -9
  91. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  92. package/dist/types/src/components/Input/Input.stories.d.ts +16 -17
  93. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  94. package/dist/types/src/components/Link/Link.stories.d.ts +8 -8
  95. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  96. package/dist/types/src/components/{Lists → List}/List.d.ts +6 -4
  97. package/dist/types/src/components/List/List.d.ts.map +1 -0
  98. package/dist/types/src/components/List/List.stories.d.ts +16 -0
  99. package/dist/types/src/components/List/List.stories.d.ts.map +1 -0
  100. package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -0
  101. package/dist/types/src/components/List/Tree.d.ts.map +1 -0
  102. package/dist/types/src/components/List/Tree.stories.d.ts +15 -0
  103. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -0
  104. package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -0
  105. package/dist/types/src/components/{Lists → List}/Treegrid.d.ts +5 -9
  106. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -0
  107. package/dist/types/src/components/List/Treegrid.stories.d.ts +12 -0
  108. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -0
  109. package/dist/types/src/components/List/index.d.ts.map +1 -0
  110. package/dist/types/src/components/Main/Main.d.ts +17 -27
  111. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  112. package/dist/types/src/components/Main/Main.stories.d.ts +6 -10
  113. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  114. package/dist/types/src/components/{Menus → Menu}/ContextMenu.d.ts +6 -6
  115. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -0
  116. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts +12 -0
  117. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -0
  118. package/dist/types/src/components/Menu/DropdownMenu.d.ts +113 -0
  119. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -0
  120. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +28 -0
  121. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -0
  122. package/dist/types/src/components/Menu/index.d.ts.map +1 -0
  123. package/dist/types/src/components/Message/Message.d.ts +1 -1
  124. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  125. package/dist/types/src/components/Message/Message.stories.d.ts +12 -22
  126. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  127. package/dist/types/src/components/Popover/Popover.d.ts +34 -25
  128. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  129. package/dist/types/src/components/Popover/Popover.stories.d.ts +6 -34
  130. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  131. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +27 -27
  132. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  133. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +50 -27
  134. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  135. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +60 -0
  136. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -0
  137. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +23 -0
  138. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -0
  139. package/dist/types/src/components/ScrollContainer/index.d.ts +2 -0
  140. package/dist/types/src/components/ScrollContainer/index.d.ts.map +1 -0
  141. package/dist/types/src/components/Select/Select.d.ts +10 -10
  142. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  143. package/dist/types/src/components/Select/Select.stories.d.ts +6 -11
  144. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  145. package/dist/types/src/components/Separator/Separator.d.ts +4 -4
  146. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
  147. package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
  148. package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
  149. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
  150. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
  151. package/dist/types/src/components/Skeleton/index.d.ts +2 -0
  152. package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
  153. package/dist/types/src/components/Splitter/Splitter.d.ts +34 -0
  154. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
  155. package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
  156. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
  157. package/dist/types/src/components/Splitter/index.d.ts +2 -0
  158. package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
  159. package/dist/types/src/components/Status/Status.d.ts +3 -4
  160. package/dist/types/src/components/Status/Status.d.ts.map +1 -1
  161. package/dist/types/src/components/Status/Status.stories.d.ts +6 -10
  162. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  163. package/dist/types/src/components/Tag/Tag.d.ts +1 -1
  164. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  165. package/dist/types/src/components/Tag/Tag.stories.d.ts +8 -13
  166. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  167. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +3 -3
  168. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  169. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts +12 -0
  170. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
  171. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +1 -8
  172. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  173. package/dist/types/src/components/ThemeProvider/index.d.ts +2 -1
  174. package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -1
  175. package/dist/types/src/components/Toast/Toast.d.ts +19 -19
  176. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  177. package/dist/types/src/components/Toast/Toast.stories.d.ts +6 -44
  178. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  179. package/dist/types/src/components/Toolbar/Toolbar.d.ts +40 -22
  180. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  181. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +6 -50
  182. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  183. package/dist/types/src/components/Tooltip/Tooltip.d.ts +10 -12
  184. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  185. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +10 -63
  186. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  187. package/dist/types/src/components/index.d.ts +14 -8
  188. package/dist/types/src/components/index.d.ts.map +1 -1
  189. package/dist/types/src/exemplars/generics.stories.d.ts +19 -0
  190. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
  191. package/dist/types/src/exemplars/slot.stories.d.ts +15 -0
  192. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -0
  193. package/dist/types/src/exemplars/tabster.stories.d.ts +8 -0
  194. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -0
  195. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  196. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  197. package/dist/types/src/hooks/index.d.ts +1 -0
  198. package/dist/types/src/hooks/index.d.ts.map +1 -1
  199. package/dist/types/src/hooks/useDensityContext.d.ts +2 -2
  200. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  201. package/dist/types/src/hooks/useElevationContext.d.ts +1 -1
  202. package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
  203. package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
  204. package/dist/types/src/hooks/useVisualViewport.d.ts +2 -2
  205. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
  206. package/dist/types/src/index.d.ts +2 -1
  207. package/dist/types/src/index.d.ts.map +1 -1
  208. package/dist/types/src/playground/Controls.stories.d.ts +5 -9
  209. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  210. package/dist/types/src/playground/Custom.stories.d.ts +12 -4
  211. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  212. package/dist/types/src/playground/Typography.stories.d.ts +5 -11
  213. package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
  214. package/dist/types/src/primitives/Column/Column.d.ts +33 -0
  215. package/dist/types/src/primitives/Column/Column.d.ts.map +1 -0
  216. package/dist/types/src/primitives/Column/Column.stories.d.ts +25 -0
  217. package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -0
  218. package/dist/types/src/primitives/Column/index.d.ts +2 -0
  219. package/dist/types/src/primitives/Column/index.d.ts.map +1 -0
  220. package/dist/types/src/primitives/Container/Container.d.ts +7 -0
  221. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
  222. package/dist/types/src/primitives/Container/Container.stories.d.ts +6 -0
  223. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
  224. package/dist/types/src/primitives/Container/index.d.ts +2 -0
  225. package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
  226. package/dist/types/src/primitives/Flex/Flex.d.ts +11 -0
  227. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
  228. package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
  229. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
  230. package/dist/types/src/primitives/Flex/index.d.ts +2 -0
  231. package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
  232. package/dist/types/src/primitives/Grid/Grid.d.ts +10 -0
  233. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
  234. package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
  235. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
  236. package/dist/types/src/primitives/Grid/index.d.ts +2 -0
  237. package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
  238. package/dist/types/src/primitives/Panel/Panel.d.ts +35 -0
  239. package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -0
  240. package/dist/types/src/primitives/Panel/Panel.stories.d.ts +6 -0
  241. package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -0
  242. package/dist/types/src/primitives/Panel/index.d.ts +2 -0
  243. package/dist/types/src/primitives/Panel/index.d.ts.map +1 -0
  244. package/dist/types/src/primitives/index.d.ts +6 -0
  245. package/dist/types/src/primitives/index.d.ts.map +1 -0
  246. package/dist/types/src/testing/Loading.d.ts +9 -0
  247. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  248. package/dist/types/src/testing/decorators/index.d.ts +2 -1
  249. package/dist/types/src/testing/decorators/index.d.ts.map +1 -1
  250. package/dist/types/src/testing/decorators/withLayout.d.ts +15 -0
  251. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -0
  252. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts +12 -0
  253. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -0
  254. package/dist/types/src/testing/decorators/withTheme.d.ts +5 -1
  255. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  256. package/dist/types/src/testing/index.d.ts +1 -0
  257. package/dist/types/src/testing/index.d.ts.map +1 -1
  258. package/dist/types/src/translations.d.ts +11 -0
  259. package/dist/types/src/translations.d.ts.map +1 -0
  260. package/dist/types/src/util/index.d.ts +2 -1
  261. package/dist/types/src/util/index.d.ts.map +1 -1
  262. package/dist/types/src/util/usePx.d.ts +8 -0
  263. package/dist/types/src/util/usePx.d.ts.map +1 -0
  264. package/dist/types/tsconfig.tsbuildinfo +1 -1
  265. package/package.json +43 -32
  266. package/src/components/Avatars/Avatar.stories.tsx +22 -16
  267. package/src/components/Avatars/Avatar.tsx +7 -15
  268. package/src/components/Avatars/AvatarGroup.stories.tsx +10 -8
  269. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +19 -16
  270. package/src/components/Breadcrumb/Breadcrumb.tsx +11 -37
  271. package/src/components/{Buttons → Button}/Button.stories.tsx +7 -10
  272. package/src/components/{Buttons → Button}/Button.tsx +12 -26
  273. package/src/components/{Buttons → Button}/IconButton.stories.tsx +17 -13
  274. package/src/components/{Buttons → Button}/IconButton.tsx +20 -16
  275. package/src/components/Button/Toggle.stories.tsx +36 -0
  276. package/src/components/{Buttons → Button}/Toggle.tsx +4 -4
  277. package/src/components/{Buttons → Button}/ToggleGroup.stories.tsx +10 -9
  278. package/src/components/Button/ToggleGroup.tsx +50 -0
  279. package/src/components/Card/Card.stories.tsx +151 -0
  280. package/src/components/Card/Card.tsx +493 -0
  281. package/src/components/Card/index.ts +5 -0
  282. package/src/components/Clipboard/CopyButton.tsx +8 -9
  283. package/src/components/DensityProvider/DensityProvider.tsx +1 -1
  284. package/src/components/Dialog/AlertDialog.stories.tsx +68 -0
  285. package/src/components/{Dialogs → Dialog}/AlertDialog.tsx +123 -82
  286. package/src/components/Dialog/Dialog.stories.tsx +177 -0
  287. package/src/components/Dialog/Dialog.tsx +285 -0
  288. package/src/components/ElevationProvider/ElevationProvider.tsx +1 -1
  289. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +45 -0
  290. package/src/components/ErrorFallback/ErrorFallback.tsx +70 -0
  291. package/src/components/ErrorFallback/ErrorStack.tsx +114 -0
  292. package/src/components/ErrorFallback/ThrowError.tsx +37 -0
  293. package/src/components/ErrorFallback/index.ts +9 -0
  294. package/src/components/Focus/AUDIT.md +43 -0
  295. package/src/components/Focus/Focus.stories.tsx +230 -0
  296. package/src/components/Focus/Focus.tsx +201 -0
  297. package/src/components/Focus/index.ts +5 -0
  298. package/src/components/Icon/Icon.stories.tsx +143 -0
  299. package/src/components/Icon/Icon.tsx +6 -2
  300. package/src/components/Image/Image.stories.tsx +86 -0
  301. package/src/components/Image/Image.tsx +223 -0
  302. package/src/components/Image/index.ts +5 -0
  303. package/src/components/Input/Input.stories.tsx +25 -48
  304. package/src/components/Input/Input.tsx +40 -76
  305. package/src/components/Link/Link.stories.tsx +10 -8
  306. package/src/components/Link/Link.tsx +2 -2
  307. package/src/components/{Lists → List}/List.stories.tsx +41 -44
  308. package/src/components/{Lists → List}/List.tsx +21 -22
  309. package/src/components/{Lists → List}/ListDropIndicator.tsx +7 -7
  310. package/src/components/{Lists → List}/Tree.stories.tsx +14 -13
  311. package/src/components/{Lists → List}/Tree.tsx +0 -1
  312. package/src/components/{Lists → List}/TreeDropIndicator.tsx +6 -6
  313. package/src/components/{Lists → List}/Treegrid.stories.tsx +39 -35
  314. package/src/components/List/Treegrid.tsx +188 -0
  315. package/src/components/Main/Main.stories.tsx +52 -28
  316. package/src/components/Main/Main.tsx +170 -100
  317. package/src/components/{Menus → Menu}/ContextMenu.stories.tsx +11 -10
  318. package/src/components/{Menus → Menu}/ContextMenu.tsx +10 -33
  319. package/src/components/{Menus → Menu}/DropdownMenu.stories.tsx +12 -11
  320. package/src/components/{Menus → Menu}/DropdownMenu.tsx +151 -114
  321. package/src/components/Message/Message.stories.tsx +35 -18
  322. package/src/components/Message/Message.tsx +43 -34
  323. package/src/components/Popover/Popover.stories.tsx +17 -16
  324. package/src/components/Popover/Popover.tsx +118 -96
  325. package/src/components/ScrollArea/ScrollArea.stories.tsx +223 -32
  326. package/src/components/ScrollArea/ScrollArea.tsx +97 -79
  327. package/src/components/ScrollArea/index.ts +1 -1
  328. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +91 -0
  329. package/src/components/ScrollContainer/ScrollContainer.tsx +347 -0
  330. package/src/components/ScrollContainer/index.ts +5 -0
  331. package/src/components/Select/Select.stories.tsx +19 -18
  332. package/src/components/Select/Select.tsx +16 -31
  333. package/src/components/Separator/Separator.tsx +5 -8
  334. package/src/components/Skeleton/Skeleton.stories.tsx +51 -0
  335. package/src/components/Skeleton/Skeleton.tsx +26 -0
  336. package/src/components/Skeleton/index.ts +5 -0
  337. package/src/components/Splitter/Splitter.stories.tsx +83 -0
  338. package/src/components/Splitter/Splitter.tsx +127 -0
  339. package/src/components/Splitter/index.ts +5 -0
  340. package/src/components/Status/Status.stories.tsx +28 -23
  341. package/src/components/Status/Status.tsx +10 -7
  342. package/src/components/Tag/Tag.stories.tsx +16 -14
  343. package/src/components/Tag/Tag.tsx +3 -8
  344. package/src/components/ThemeProvider/ThemeProvider.stories.tsx +31 -0
  345. package/src/components/ThemeProvider/ThemeProvider.tsx +10 -10
  346. package/src/components/ThemeProvider/TranslationsProvider.tsx +1 -16
  347. package/src/components/ThemeProvider/index.ts +3 -3
  348. package/src/components/Toast/Toast.stories.tsx +12 -11
  349. package/src/components/Toast/Toast.tsx +22 -41
  350. package/src/components/Toolbar/Toolbar.stories.tsx +14 -14
  351. package/src/components/Toolbar/Toolbar.tsx +185 -11
  352. package/src/components/Tooltip/Tooltip.stories.tsx +34 -30
  353. package/src/components/Tooltip/Tooltip.tsx +42 -39
  354. package/src/components/index.ts +15 -9
  355. package/src/exemplars/generics.stories.tsx +41 -0
  356. package/src/exemplars/slot.stories.tsx +117 -0
  357. package/src/exemplars/tabster.stories.tsx +127 -0
  358. package/src/exemplars/virtualizer.stories.tsx +137 -0
  359. package/src/hooks/index.ts +1 -0
  360. package/src/hooks/useDensityContext.ts +3 -3
  361. package/src/hooks/useElevationContext.ts +1 -1
  362. package/src/hooks/useSafeArea.ts +3 -2
  363. package/src/hooks/useVisualViewport.ts +4 -4
  364. package/src/index.ts +2 -1
  365. package/src/playground/Controls.stories.tsx +12 -15
  366. package/src/playground/Custom.stories.tsx +18 -32
  367. package/src/playground/Typography.stories.tsx +11 -9
  368. package/src/primitives/Column/AUDIT.md +148 -0
  369. package/src/primitives/Column/Column.stories.tsx +181 -0
  370. package/src/primitives/Column/Column.tsx +165 -0
  371. package/src/primitives/Column/index.ts +5 -0
  372. package/src/primitives/Container/Container.stories.tsx +29 -0
  373. package/src/primitives/Container/Container.tsx +19 -0
  374. package/src/primitives/Container/index.ts +5 -0
  375. package/src/primitives/Flex/Flex.stories.tsx +57 -0
  376. package/src/primitives/Flex/Flex.tsx +27 -0
  377. package/src/primitives/Flex/index.ts +5 -0
  378. package/src/primitives/Grid/Grid.stories.tsx +56 -0
  379. package/src/primitives/Grid/Grid.tsx +30 -0
  380. package/src/primitives/Grid/index.ts +5 -0
  381. package/src/primitives/Panel/Panel.stories.tsx +68 -0
  382. package/src/primitives/Panel/Panel.tsx +120 -0
  383. package/src/primitives/Panel/index.ts +5 -0
  384. package/src/primitives/index.ts +9 -0
  385. package/src/testing/Loading.tsx +47 -0
  386. package/src/testing/decorators/index.ts +2 -1
  387. package/src/testing/decorators/withLayout.tsx +77 -0
  388. package/src/testing/decorators/withLayoutVariants.tsx +48 -0
  389. package/src/testing/decorators/withTheme.tsx +37 -0
  390. package/src/testing/index.ts +2 -0
  391. package/src/translations.ts +19 -0
  392. package/src/util/index.ts +3 -1
  393. package/src/util/usePx.ts +62 -0
  394. package/dist/lib/browser/chunk-BKNGMGOK.mjs +0 -4373
  395. package/dist/lib/browser/chunk-BKNGMGOK.mjs.map +0 -7
  396. package/dist/lib/node-esm/chunk-D2HZS6F4.mjs +0 -4375
  397. package/dist/lib/node-esm/chunk-D2HZS6F4.mjs.map +0 -7
  398. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -15
  399. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
  400. package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
  401. package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
  402. package/dist/types/src/components/Buttons/Button.d.ts.map +0 -1
  403. package/dist/types/src/components/Buttons/Button.stories.d.ts +0 -12
  404. package/dist/types/src/components/Buttons/Button.stories.d.ts.map +0 -1
  405. package/dist/types/src/components/Buttons/IconButton.d.ts.map +0 -1
  406. package/dist/types/src/components/Buttons/IconButton.stories.d.ts +0 -22
  407. package/dist/types/src/components/Buttons/IconButton.stories.d.ts.map +0 -1
  408. package/dist/types/src/components/Buttons/Toggle.d.ts.map +0 -1
  409. package/dist/types/src/components/Buttons/Toggle.stories.d.ts +0 -19
  410. package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +0 -1
  411. package/dist/types/src/components/Buttons/ToggleGroup.d.ts +0 -28
  412. package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +0 -1
  413. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +0 -39
  414. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +0 -1
  415. package/dist/types/src/components/Buttons/index.d.ts.map +0 -1
  416. package/dist/types/src/components/Dialogs/AlertDialog.d.ts +0 -31
  417. package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +0 -1
  418. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +0 -43
  419. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +0 -1
  420. package/dist/types/src/components/Dialogs/Dialog.d.ts +0 -31
  421. package/dist/types/src/components/Dialogs/Dialog.d.ts.map +0 -1
  422. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +0 -48
  423. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +0 -1
  424. package/dist/types/src/components/Dialogs/index.d.ts.map +0 -1
  425. package/dist/types/src/components/Lists/List.d.ts.map +0 -1
  426. package/dist/types/src/components/Lists/List.stories.d.ts +0 -37
  427. package/dist/types/src/components/Lists/List.stories.d.ts.map +0 -1
  428. package/dist/types/src/components/Lists/ListDropIndicator.d.ts.map +0 -1
  429. package/dist/types/src/components/Lists/Tree.d.ts.map +0 -1
  430. package/dist/types/src/components/Lists/Tree.stories.d.ts +0 -41
  431. package/dist/types/src/components/Lists/Tree.stories.d.ts.map +0 -1
  432. package/dist/types/src/components/Lists/TreeDropIndicator.d.ts.map +0 -1
  433. package/dist/types/src/components/Lists/Treegrid.d.ts.map +0 -1
  434. package/dist/types/src/components/Lists/Treegrid.stories.d.ts +0 -10
  435. package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +0 -1
  436. package/dist/types/src/components/Lists/index.d.ts.map +0 -1
  437. package/dist/types/src/components/Menus/ContextMenu.d.ts.map +0 -1
  438. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts +0 -50
  439. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +0 -1
  440. package/dist/types/src/components/Menus/DropdownMenu.d.ts +0 -112
  441. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +0 -1
  442. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts +0 -50
  443. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +0 -1
  444. package/dist/types/src/components/Menus/index.d.ts.map +0 -1
  445. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts +0 -12
  446. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts.map +0 -1
  447. package/dist/types/src/util/ThemedClassName.d.ts +0 -5
  448. package/dist/types/src/util/ThemedClassName.d.ts.map +0 -1
  449. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -59
  450. package/src/components/AnchoredOverflow/index.ts +0 -5
  451. package/src/components/Buttons/Toggle.stories.tsx +0 -34
  452. package/src/components/Buttons/ToggleGroup.tsx +0 -41
  453. package/src/components/Dialogs/AlertDialog.stories.tsx +0 -67
  454. package/src/components/Dialogs/Dialog.stories.tsx +0 -66
  455. package/src/components/Dialogs/Dialog.tsx +0 -159
  456. package/src/components/Lists/Treegrid.tsx +0 -152
  457. package/src/testing/decorators/withSurfaceVariantsLayout.tsx +0 -51
  458. package/src/testing/decorators/withTheme.ts +0 -25
  459. package/src/util/ThemedClassName.ts +0 -7
  460. /package/dist/types/src/components/{Buttons → Button}/index.d.ts +0 -0
  461. /package/dist/types/src/components/{Dialogs → Dialog}/index.d.ts +0 -0
  462. /package/dist/types/src/components/{Lists → List}/ListDropIndicator.d.ts +0 -0
  463. /package/dist/types/src/components/{Lists → List}/Tree.d.ts +0 -0
  464. /package/dist/types/src/components/{Lists → List}/TreeDropIndicator.d.ts +0 -0
  465. /package/dist/types/src/components/{Lists → List}/index.d.ts +0 -0
  466. /package/dist/types/src/components/{Menus → Menu}/index.d.ts +0 -0
  467. /package/src/components/{Buttons → Button}/index.ts +0 -0
  468. /package/src/components/{Dialogs → Dialog}/index.ts +0 -0
  469. /package/src/components/{Lists → List}/index.ts +0 -0
  470. /package/src/components/{Menus → Menu}/index.ts +0 -0
@@ -2,102 +2,89 @@
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
7
  import React, { type ForwardRefExoticComponent, type FunctionComponent, forwardRef } from 'react';
27
8
 
9
+ import { type DialogSize } from '@dxos/ui-theme';
10
+
28
11
  import { useThemeContext } from '../../hooks';
12
+ import { Column } from '../../primitives';
29
13
  import { type ThemedClassName } from '../../util';
30
14
  import { ElevationProvider } from '../ElevationProvider';
15
+ import {
16
+ Dialog,
17
+ type DialogHeaderProps,
18
+ type DialogBodyProps,
19
+ type DialogActionBarProps,
20
+ type DialogCloseIconButtonProps,
21
+ } from './Dialog';
22
+
23
+ //
24
+ // Root
25
+ //
31
26
 
32
- type AlertDialogRootProps = AlertDialogRootPrimitiveProps;
27
+ type AlertDialogRootProps = AlertDialogPrimitive.AlertDialogProps;
33
28
 
34
29
  const AlertDialogRoot: FunctionComponent<AlertDialogRootProps> = (props) => (
35
30
  <ElevationProvider elevation='dialog'>
36
- <AlertDialogRootPrimitive {...props} />
31
+ <AlertDialogPrimitive.Root {...props} />
37
32
  </ElevationProvider>
38
33
  );
39
34
 
40
- type AlertDialogTriggerProps = AlertDialogTriggerPrimitiveProps;
35
+ //
36
+ // Trigger
37
+ //
41
38
 
42
- const AlertDialogTrigger: FunctionComponent<AlertDialogTriggerProps> = AlertDialogTriggerPrimitive;
39
+ type AlertDialogTriggerProps = AlertDialogPrimitive.AlertDialogTriggerProps;
43
40
 
44
- type AlertDialogPortalProps = AlertDialogPortalPrimitiveProps;
41
+ const AlertDialogTrigger: FunctionComponent<AlertDialogTriggerProps> = AlertDialogPrimitive.Trigger;
45
42
 
46
- const AlertDialogPortal: FunctionComponent<AlertDialogPortalProps> = AlertDialogPortalPrimitive;
43
+ //
44
+ // Portal
45
+ //
47
46
 
48
- type AlertDialogCancelProps = AlertDialogCancelPrimitiveProps;
47
+ type AlertDialogPortalProps = AlertDialogPrimitive.AlertDialogPortalProps;
49
48
 
50
- const AlertDialogCancel: FunctionComponent<AlertDialogCancelProps> = AlertDialogCancelPrimitive;
49
+ const AlertDialogPortal: FunctionComponent<AlertDialogPortalProps> = AlertDialogPrimitive.Portal;
51
50
 
52
- type AlertDialogActionProps = AlertDialogActionPrimitiveProps;
51
+ //
52
+ // Cancel
53
+ //
53
54
 
54
- const AlertDialogAction: FunctionComponent<AlertDialogActionProps> = AlertDialogActionPrimitive;
55
+ type AlertDialogCancelProps = AlertDialogPrimitive.AlertDialogCancelProps;
55
56
 
56
- type AlertDialogTitleProps = ThemedClassName<AlertDialogTitlePrimitiveProps> & { srOnly?: boolean };
57
+ const AlertDialogCancel: FunctionComponent<AlertDialogCancelProps> = AlertDialogPrimitive.Cancel;
57
58
 
58
- const AlertDialogTitle: ForwardRefExoticComponent<AlertDialogTitleProps> = forwardRef<
59
- HTMLHeadingElement,
60
- AlertDialogTitleProps
61
- >(({ classNames, srOnly, ...props }, forwardedRef) => {
62
- const { tx } = useThemeContext();
63
- return (
64
- <AlertDialogTitlePrimitive
65
- {...props}
66
- className={tx('dialog.title', 'dialog--alert__title', { srOnly }, classNames)}
67
- ref={forwardedRef}
68
- />
69
- );
70
- });
59
+ //
60
+ // Action
61
+ //
71
62
 
72
- type AlertDialogDescriptionProps = ThemedClassName<AlertDialogDescriptionPrimitiveProps> & { srOnly?: boolean };
63
+ type AlertDialogActionProps = AlertDialogPrimitive.AlertDialogActionProps;
73
64
 
74
- const AlertDialogDescription: ForwardRefExoticComponent<AlertDialogTitleProps> = forwardRef<
75
- HTMLParagraphElement,
76
- AlertDialogDescriptionProps
77
- >(({ classNames, srOnly, ...props }, forwardedRef) => {
78
- const { tx } = useThemeContext();
79
- return (
80
- <AlertDialogDescriptionPrimitive
81
- {...props}
82
- className={tx('dialog.description', 'dialog--alert__description', { srOnly }, classNames)}
83
- ref={forwardedRef}
84
- />
85
- );
86
- });
65
+ const AlertDialogAction: FunctionComponent<AlertDialogActionProps> = AlertDialogPrimitive.Action;
66
+
67
+ //
68
+ // Context
69
+ //
87
70
 
88
71
  type OverlayLayoutContextValue = { inOverlayLayout?: boolean };
72
+
89
73
  const ALERT_DIALOG_OVERLAY_NAME = 'AlertDialogOverlay';
90
74
  const ALERT_DIALOG_CONTENT_NAME = 'AlertDialogContent';
75
+
91
76
  const [OverlayLayoutProvider, useOverlayLayoutContext] = createContext<OverlayLayoutContextValue>(
92
77
  ALERT_DIALOG_OVERLAY_NAME,
93
- {
94
- inOverlayLayout: false,
95
- },
78
+ { inOverlayLayout: false },
96
79
  );
97
80
 
98
- type AlertDialogOverlayProps = ThemedClassName<AlertDialogOverlayPrimitiveProps> & {
99
- blockAlign?: 'center' | 'start' | 'end';
100
- };
81
+ //
82
+ // Overlay
83
+ //
84
+
85
+ type AlertDialogOverlayProps = ThemedClassName<
86
+ AlertDialogPrimitive.AlertDialogOverlayProps & { blockAlign?: 'center' | 'start' | 'end' }
87
+ >;
101
88
 
102
89
  const AlertDialogOverlay: ForwardRefExoticComponent<AlertDialogOverlayProps> = forwardRef<
103
90
  HTMLDivElement,
@@ -105,56 +92,105 @@ const AlertDialogOverlay: ForwardRefExoticComponent<AlertDialogOverlayProps> = f
105
92
  >(({ classNames, children, blockAlign, ...props }, forwardedRef) => {
106
93
  const { tx } = useThemeContext();
107
94
  return (
108
- <AlertDialogOverlayPrimitive
95
+ <AlertDialogPrimitive.Overlay
109
96
  {...props}
110
- className={tx(
111
- 'dialog.overlay',
112
- 'dialog--alert__overlay',
113
- {},
114
- classNames,
115
- 'data-[block-align=start]:justify-center',
116
- 'data-[block-align=start]:items-start',
117
- 'data-[block-align=center]:place-content-center',
118
- )}
119
- ref={forwardedRef}
120
97
  data-block-align={blockAlign}
98
+ className={tx('dialog.overlay', {}, classNames)}
99
+ ref={forwardedRef}
121
100
  >
122
101
  <OverlayLayoutProvider inOverlayLayout>{children}</OverlayLayoutProvider>
123
- </AlertDialogOverlayPrimitive>
102
+ </AlertDialogPrimitive.Overlay>
124
103
  );
125
104
  });
126
105
 
127
106
  AlertDialogOverlay.displayName = ALERT_DIALOG_OVERLAY_NAME;
128
107
 
129
- type AlertDialogContentProps = ThemedClassName<AlertDialogContentPrimitiveProps>;
108
+ //
109
+ // Content
110
+ //
111
+
112
+ type AlertDialogContentProps = ThemedClassName<AlertDialogPrimitive.AlertDialogContentProps> & { size?: DialogSize };
130
113
 
131
114
  const AlertDialogContent: ForwardRefExoticComponent<AlertDialogContentProps> = forwardRef<
132
115
  HTMLDivElement,
133
116
  AlertDialogContentProps
134
- >(({ classNames, children, ...props }, forwardedRef) => {
117
+ >(({ classNames, children, size = 'md', ...props }, forwardedRef) => {
135
118
  const { tx } = useThemeContext();
136
119
  const { inOverlayLayout } = useOverlayLayoutContext(ALERT_DIALOG_CONTENT_NAME);
137
120
  return (
138
- <AlertDialogContentPrimitive
121
+ <AlertDialogPrimitive.Content
139
122
  {...props}
140
- className={tx('dialog.content', 'dialog--alert', { inOverlayLayout }, classNames)}
123
+ className={tx('dialog.content', { inOverlayLayout, size }, classNames)}
124
+ // NOTE: Radix warning unless set to undefined.
125
+ // https://www.radix-ui.com/primitives/docs/components/dialog#description
126
+ aria-describedby={undefined}
141
127
  ref={forwardedRef}
142
128
  >
143
- {children}
144
- </AlertDialogContentPrimitive>
129
+ <Column.Root classNames='dx-expander' gutter='sm'>
130
+ {children}
131
+ </Column.Root>
132
+ </AlertDialogPrimitive.Content>
145
133
  );
146
134
  });
147
135
 
148
136
  AlertDialogContent.displayName = ALERT_DIALOG_CONTENT_NAME;
149
137
 
138
+ //
139
+ // Title
140
+ //
141
+
142
+ type AlertDialogTitleProps = ThemedClassName<AlertDialogPrimitive.AlertDialogTitleProps> & { srOnly?: boolean };
143
+
144
+ const AlertDialogTitle: ForwardRefExoticComponent<AlertDialogTitleProps> = forwardRef<
145
+ HTMLHeadingElement,
146
+ AlertDialogTitleProps
147
+ >(({ classNames, srOnly, ...props }, forwardedRef) => {
148
+ const { tx } = useThemeContext();
149
+ return (
150
+ <AlertDialogPrimitive.Title {...props} className={tx('dialog.title', { srOnly }, classNames)} ref={forwardedRef} />
151
+ );
152
+ });
153
+
154
+ //
155
+ // Description
156
+ //
157
+
158
+ type AlertDialogDescriptionProps = ThemedClassName<AlertDialogPrimitive.AlertDialogDescriptionProps> & {
159
+ srOnly?: boolean;
160
+ };
161
+
162
+ const AlertDialogDescription: ForwardRefExoticComponent<AlertDialogDescriptionProps> = forwardRef<
163
+ HTMLParagraphElement,
164
+ AlertDialogDescriptionProps
165
+ >(({ classNames, srOnly, ...props }, forwardedRef) => {
166
+ const { tx } = useThemeContext();
167
+ return (
168
+ <AlertDialogPrimitive.Description
169
+ {...props}
170
+ className={tx('dialog.description', { srOnly }, classNames)}
171
+ ref={forwardedRef}
172
+ />
173
+ );
174
+ });
175
+
176
+ //
177
+ // AlertDialog
178
+ //
179
+
150
180
  export const AlertDialog = {
151
181
  Root: AlertDialogRoot,
152
182
  Trigger: AlertDialogTrigger,
153
183
  Portal: AlertDialogPortal,
154
184
  Overlay: AlertDialogOverlay,
155
185
  Content: AlertDialogContent,
186
+ // Shared with Dialog.
187
+ Header: Dialog.Header,
188
+ Body: Dialog.Body,
156
189
  Title: AlertDialogTitle,
157
190
  Description: AlertDialogDescription,
191
+ ActionBar: Dialog.ActionBar,
192
+ CloseIconButton: Dialog.CloseIconButton,
193
+ // AlertDialog-specific dismissal.
158
194
  Cancel: AlertDialogCancel,
159
195
  Action: AlertDialogAction,
160
196
  };
@@ -169,4 +205,9 @@ export type {
169
205
  AlertDialogDescriptionProps,
170
206
  AlertDialogCancelProps,
171
207
  AlertDialogActionProps,
208
+ // Re-export shared types.
209
+ DialogHeaderProps as AlertDialogHeaderProps,
210
+ DialogBodyProps as AlertDialogBodyProps,
211
+ DialogActionBarProps as AlertDialogActionBarProps,
212
+ DialogCloseIconButtonProps as AlertDialogCloseIconButtonProps,
172
213
  };
@@ -0,0 +1,177 @@
1
+ //
2
+ // Copyright 2022 DXOS.org
3
+ //
4
+
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+ import React from 'react';
7
+
8
+ import { random } from '@dxos/random';
9
+
10
+ import { withTheme } from '../../testing';
11
+ import { Button } from '../Button';
12
+ import { Input } from '../Input';
13
+ import { ScrollArea } from '../ScrollArea';
14
+ import { Dialog, type DialogContentProps } from './Dialog';
15
+
16
+ type DefaultStoryProps = Pick<DialogContentProps, 'size'> &
17
+ Partial<{
18
+ title: string;
19
+ description: string;
20
+ openTrigger: string;
21
+ closeTrigger: string;
22
+ blockAlign: 'start' | 'center';
23
+ }>;
24
+
25
+ /**
26
+ * Standard Dialog with non-scrolling content in Dialog.Body.
27
+ * Dialog.Body propagates the Column grid via subgrid. Children auto-center via --dx-col.
28
+ */
29
+ const DefaultStory = ({ size, title, description, openTrigger, closeTrigger, blockAlign }: DefaultStoryProps) => {
30
+ return (
31
+ <Dialog.Root defaultOpen modal>
32
+ <Dialog.Trigger asChild>
33
+ <Button>{openTrigger}</Button>
34
+ </Dialog.Trigger>
35
+ <Dialog.Overlay blockAlign={blockAlign}>
36
+ <Dialog.Content size={size}>
37
+ <Dialog.Header>
38
+ <Dialog.Title>{title}</Dialog.Title>
39
+ {closeTrigger && (
40
+ <Dialog.Close asChild>
41
+ <Dialog.CloseIconButton />
42
+ </Dialog.Close>
43
+ )}
44
+ </Dialog.Header>
45
+ <Dialog.Body>
46
+ <Dialog.Description>{description}</Dialog.Description>
47
+ <Input.Root>
48
+ <Input.Label>Value</Input.Label>
49
+ <Input.TextInput placeholder='Enter value' />
50
+ </Input.Root>
51
+ </Dialog.Body>
52
+ <Dialog.ActionBar>
53
+ <Dialog.Close asChild>
54
+ <Button variant='primary'>{closeTrigger}</Button>
55
+ </Dialog.Close>
56
+ </Dialog.ActionBar>
57
+ </Dialog.Content>
58
+ </Dialog.Overlay>
59
+ </Dialog.Root>
60
+ );
61
+ };
62
+
63
+ /**
64
+ * Dialog with a ScrollArea child inside Dialog.Body.
65
+ * The ScrollArea breaks out of Body's gutter padding via `--gutter`
66
+ * and applies its own asymmetric padding (accounting for scrollbar width).
67
+ */
68
+ const ScrollingStory = ({ size, title, description, openTrigger, closeTrigger, blockAlign }: DefaultStoryProps) => {
69
+ return (
70
+ <Dialog.Root defaultOpen modal>
71
+ <Dialog.Trigger asChild>
72
+ <Button>{openTrigger}</Button>
73
+ </Dialog.Trigger>
74
+ <Dialog.Overlay blockAlign={blockAlign}>
75
+ <Dialog.Content size={size}>
76
+ <Dialog.Header>
77
+ <Dialog.Title>{title}</Dialog.Title>
78
+ {closeTrigger && (
79
+ <Dialog.Close asChild>
80
+ <Dialog.CloseIconButton />
81
+ </Dialog.Close>
82
+ )}
83
+ </Dialog.Header>
84
+ <Dialog.Body>
85
+ <ScrollArea.Root orientation='vertical' padding thin>
86
+ <ScrollArea.Viewport>
87
+ <Dialog.Description>{description}</Dialog.Description>
88
+ </ScrollArea.Viewport>
89
+ </ScrollArea.Root>
90
+ </Dialog.Body>
91
+ <Dialog.ActionBar>
92
+ <Dialog.Close asChild>
93
+ <Button variant='primary'>{closeTrigger}</Button>
94
+ </Dialog.Close>
95
+ </Dialog.ActionBar>
96
+ </Dialog.Content>
97
+ </Dialog.Overlay>
98
+ </Dialog.Root>
99
+ );
100
+ };
101
+
102
+ const meta = {
103
+ title: 'ui/react-ui-core/components/Dialog',
104
+ component: Dialog as any,
105
+ render: DefaultStory,
106
+ decorators: [withTheme()],
107
+ } satisfies Meta<typeof DefaultStory>;
108
+
109
+ export default meta;
110
+
111
+ type Story = StoryObj<typeof meta>;
112
+
113
+ export const Default: Story = {
114
+ args: {
115
+ title: 'Dialog title',
116
+ description: random.lorem.paragraph(1),
117
+ openTrigger: 'Open',
118
+ closeTrigger: 'Close',
119
+ blockAlign: 'start',
120
+ },
121
+ };
122
+
123
+ export const Small: Story = {
124
+ args: {
125
+ title: 'Dialog title',
126
+ description: random.lorem.paragraph(1),
127
+ openTrigger: 'Open',
128
+ closeTrigger: 'Close',
129
+ blockAlign: 'center',
130
+ size: 'sm',
131
+ },
132
+ };
133
+
134
+ export const Medium: Story = {
135
+ args: {
136
+ title: 'Dialog title',
137
+ description: random.lorem.paragraph(1),
138
+ openTrigger: 'Open',
139
+ closeTrigger: 'Close',
140
+ blockAlign: 'center',
141
+ size: 'md',
142
+ },
143
+ };
144
+
145
+ export const Large: Story = {
146
+ args: {
147
+ title: 'Dialog title',
148
+ description: random.lorem.paragraph(2),
149
+ openTrigger: 'Open Dialog',
150
+ closeTrigger: 'Close',
151
+ blockAlign: 'center',
152
+ size: 'lg',
153
+ },
154
+ };
155
+
156
+ export const ExtraLarge: Story = {
157
+ args: {
158
+ title: 'Dialog title',
159
+ description: random.lorem.paragraph(2),
160
+ openTrigger: 'Open Dialog',
161
+ closeTrigger: 'Close',
162
+ blockAlign: 'center',
163
+ size: 'xl',
164
+ },
165
+ };
166
+
167
+ export const Scrolling: Story = {
168
+ render: ScrollingStory,
169
+ args: {
170
+ title: 'Dialog title',
171
+ description: random.lorem.paragraph(20),
172
+ openTrigger: 'Open Dialog',
173
+ closeTrigger: 'Close',
174
+ blockAlign: 'center',
175
+ size: 'md',
176
+ },
177
+ };