@dxos/react-ui 0.8.4-main.ead640a → 0.8.4-main.ef1bc66f44

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 (315) hide show
  1. package/dist/lib/browser/chunk-EJYV4HAH.mjs +774 -0
  2. package/dist/lib/browser/chunk-EJYV4HAH.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +3199 -64
  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 +37 -48
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/chunk-YTLZCZ2M.mjs +776 -0
  9. package/dist/lib/node-esm/chunk-YTLZCZ2M.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +3199 -64
  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 +37 -48
  14. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  15. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +7 -0
  16. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +1 -1
  17. package/dist/types/src/components/{Buttons → Button}/Button.d.ts +1 -1
  18. package/dist/types/src/components/Button/Button.d.ts.map +1 -0
  19. package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -0
  20. package/dist/types/src/components/{Buttons → Button}/IconButton.d.ts +2 -2
  21. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -0
  22. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -0
  23. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -0
  24. package/dist/types/src/components/Button/Toggle.stories.d.ts +16 -0
  25. package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -0
  26. package/dist/types/src/components/{Buttons → Button}/ToggleGroup.d.ts +4 -4
  27. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -0
  28. package/dist/types/src/components/{Buttons → Button}/ToggleGroup.stories.d.ts +4 -4
  29. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -0
  30. package/dist/types/src/components/Button/index.d.ts.map +1 -0
  31. package/dist/types/src/components/Clipboard/CopyButton.d.ts +1 -1
  32. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  33. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts +1 -1
  34. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  35. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -0
  36. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -0
  37. package/dist/types/src/components/Dialog/Dialog.d.ts +46 -0
  38. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -0
  39. package/dist/types/src/components/{Dialogs → Dialog}/Dialog.stories.d.ts +7 -5
  40. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -0
  41. package/dist/types/src/components/Dialog/index.d.ts.map +1 -0
  42. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts +1 -1
  43. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  44. package/dist/types/src/components/Icon/Icon.d.ts +1 -1
  45. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  46. package/dist/types/src/components/Icon/Icon.stories.d.ts +17 -0
  47. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -0
  48. package/dist/types/src/components/Input/Input.d.ts +5 -2
  49. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  50. package/dist/types/src/components/Input/Input.stories.d.ts +2 -2
  51. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  52. package/dist/types/src/components/{Lists → List}/List.d.ts +1 -1
  53. package/dist/types/src/components/List/List.d.ts.map +1 -0
  54. package/dist/types/src/components/List/List.stories.d.ts.map +1 -0
  55. package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -0
  56. package/dist/types/src/components/List/Tree.d.ts.map +1 -0
  57. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -0
  58. package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -0
  59. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -0
  60. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -0
  61. package/dist/types/src/components/List/index.d.ts.map +1 -0
  62. package/dist/types/src/components/Main/Main.d.ts +16 -17
  63. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  64. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  65. package/dist/types/src/components/{Menus → Menu}/ContextMenu.d.ts +6 -6
  66. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -0
  67. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -0
  68. package/dist/types/src/components/{Menus → Menu}/DropdownMenu.d.ts +3 -4
  69. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -0
  70. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -0
  71. package/dist/types/src/components/Menu/index.d.ts.map +1 -0
  72. package/dist/types/src/components/Message/Message.d.ts +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 +1 -1
  75. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  76. package/dist/types/src/components/Popover/Popover.d.ts +1 -1
  77. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  78. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +25 -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 +46 -8
  81. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  82. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +39 -0
  83. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -0
  84. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +19 -0
  85. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -0
  86. package/dist/types/src/components/ScrollContainer/index.d.ts +2 -0
  87. package/dist/types/src/components/ScrollContainer/index.d.ts.map +1 -0
  88. package/dist/types/src/components/Select/Select.d.ts +10 -10
  89. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  90. package/dist/types/src/components/Separator/Separator.d.ts +1 -1
  91. package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
  92. package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
  93. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
  94. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
  95. package/dist/types/src/components/Skeleton/index.d.ts +2 -0
  96. package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
  97. package/dist/types/src/components/Splitter/Splitter.d.ts +26 -0
  98. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
  99. package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
  100. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
  101. package/dist/types/src/components/Splitter/index.d.ts +2 -0
  102. package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
  103. package/dist/types/src/components/Tag/Tag.d.ts +1 -1
  104. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  105. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +2 -2
  106. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  107. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +1 -8
  108. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  109. package/dist/types/src/components/ThemeProvider/index.d.ts +2 -1
  110. package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -1
  111. package/dist/types/src/components/Toast/Toast.d.ts +4 -4
  112. package/dist/types/src/components/Toolbar/Toolbar.d.ts +14 -11
  113. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  114. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  115. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  116. package/dist/types/src/components/index.d.ts +7 -4
  117. package/dist/types/src/components/index.d.ts.map +1 -1
  118. package/dist/types/src/exemplars/generics.stories.d.ts +17 -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/hooks/useDensityContext.d.ts +1 -1
  125. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  126. package/dist/types/src/hooks/useElevationContext.d.ts +1 -1
  127. package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
  128. package/dist/types/src/index.d.ts +2 -1
  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/playground/Custom.stories.d.ts.map +1 -1
  132. package/dist/types/src/primitives/Container/Container.d.ts +23 -0
  133. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
  134. package/dist/types/src/primitives/Container/Container.stories.d.ts +11 -0
  135. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
  136. package/dist/types/src/primitives/Container/Layout.d.ts +18 -0
  137. package/dist/types/src/primitives/Container/Layout.d.ts.map +1 -0
  138. package/dist/types/src/primitives/Container/Layout.stories.d.ts +10 -0
  139. package/dist/types/src/primitives/Container/Layout.stories.d.ts.map +1 -0
  140. package/dist/types/src/primitives/Container/index.d.ts +3 -0
  141. package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
  142. package/dist/types/src/primitives/Flex/Flex.d.ts +8 -0
  143. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
  144. package/dist/types/src/primitives/Flex/index.d.ts +2 -0
  145. package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
  146. package/dist/types/src/primitives/index.d.ts +3 -0
  147. package/dist/types/src/primitives/index.d.ts.map +1 -0
  148. package/dist/types/src/testing/decorators/index.d.ts +1 -1
  149. package/dist/types/src/testing/decorators/index.d.ts.map +1 -1
  150. package/dist/types/src/testing/decorators/withLayout.d.ts +3 -3
  151. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
  152. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts +12 -0
  153. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -0
  154. package/dist/types/src/testing/decorators/withTheme.d.ts +3 -2
  155. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  156. package/dist/types/src/util/index.d.ts +1 -2
  157. package/dist/types/src/util/index.d.ts.map +1 -1
  158. package/dist/types/tsconfig.tsbuildinfo +1 -1
  159. package/package.json +38 -30
  160. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +8 -0
  161. package/src/components/Avatars/Avatar.stories.tsx +4 -4
  162. package/src/components/Avatars/Avatar.tsx +1 -1
  163. package/src/components/Avatars/AvatarGroup.stories.tsx +2 -2
  164. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +3 -3
  165. package/src/components/{Buttons → Button}/Button.stories.tsx +3 -3
  166. package/src/components/{Buttons → Button}/Button.tsx +1 -1
  167. package/src/components/{Buttons → Button}/IconButton.stories.tsx +2 -2
  168. package/src/components/{Buttons → Button}/IconButton.tsx +19 -13
  169. package/src/components/{Buttons → Button}/Toggle.stories.tsx +7 -6
  170. package/src/components/{Buttons → Button}/ToggleGroup.stories.tsx +2 -2
  171. package/src/components/Clipboard/CopyButton.tsx +4 -4
  172. package/src/components/DensityProvider/DensityProvider.tsx +1 -1
  173. package/src/components/{Dialogs → Dialog}/AlertDialog.stories.tsx +3 -3
  174. package/src/components/Dialog/Dialog.stories.tsx +101 -0
  175. package/src/components/{Dialogs → Dialog}/Dialog.tsx +181 -40
  176. package/src/components/ElevationProvider/ElevationProvider.tsx +1 -1
  177. package/src/components/Icon/Icon.stories.tsx +113 -0
  178. package/src/components/Icon/Icon.tsx +1 -1
  179. package/src/components/Input/Input.stories.tsx +12 -11
  180. package/src/components/Input/Input.tsx +13 -5
  181. package/src/components/Link/Link.stories.tsx +2 -2
  182. package/src/components/{Lists → List}/List.stories.tsx +19 -15
  183. package/src/components/{Lists → List}/List.tsx +1 -1
  184. package/src/components/{Lists → List}/ListDropIndicator.tsx +1 -1
  185. package/src/components/{Lists → List}/Tree.stories.tsx +2 -2
  186. package/src/components/{Lists → List}/Treegrid.stories.tsx +2 -2
  187. package/src/components/Main/Main.stories.tsx +41 -20
  188. package/src/components/Main/Main.tsx +103 -56
  189. package/src/components/{Menus → Menu}/ContextMenu.stories.tsx +2 -2
  190. package/src/components/{Menus → Menu}/DropdownMenu.stories.tsx +3 -3
  191. package/src/components/{Menus → Menu}/DropdownMenu.tsx +79 -58
  192. package/src/components/Message/Message.stories.tsx +3 -3
  193. package/src/components/Message/Message.tsx +30 -5
  194. package/src/components/Popover/Popover.stories.tsx +3 -3
  195. package/src/components/Popover/Popover.tsx +52 -33
  196. package/src/components/ScrollArea/ScrollArea.stories.tsx +166 -40
  197. package/src/components/ScrollArea/ScrollArea.tsx +86 -80
  198. package/src/components/ScrollArea/index.ts +1 -1
  199. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +70 -0
  200. package/src/components/ScrollContainer/ScrollContainer.tsx +238 -0
  201. package/src/components/ScrollContainer/index.ts +5 -0
  202. package/src/components/Select/Select.stories.tsx +3 -3
  203. package/src/components/Select/Select.tsx +4 -4
  204. package/src/components/Skeleton/Skeleton.stories.tsx +52 -0
  205. package/src/components/Skeleton/Skeleton.tsx +26 -0
  206. package/src/components/Skeleton/index.ts +5 -0
  207. package/src/components/Splitter/Splitter.stories.tsx +73 -0
  208. package/src/components/Splitter/Splitter.tsx +123 -0
  209. package/src/components/Splitter/index.ts +5 -0
  210. package/src/components/Status/Status.stories.tsx +2 -2
  211. package/src/components/Tag/Tag.stories.tsx +4 -4
  212. package/src/components/Tag/Tag.tsx +1 -1
  213. package/src/components/ThemeProvider/ThemeProvider.tsx +2 -3
  214. package/src/components/ThemeProvider/TranslationsProvider.tsx +1 -16
  215. package/src/components/ThemeProvider/index.ts +3 -3
  216. package/src/components/Toast/Toast.stories.tsx +3 -3
  217. package/src/components/Toolbar/Toolbar.stories.tsx +4 -6
  218. package/src/components/Toolbar/Toolbar.tsx +32 -12
  219. package/src/components/Tooltip/Tooltip.stories.tsx +3 -3
  220. package/src/components/Tooltip/Tooltip.tsx +22 -20
  221. package/src/components/index.ts +7 -4
  222. package/src/exemplars/generics.stories.tsx +44 -0
  223. package/src/exemplars/slot.stories.tsx +108 -0
  224. package/src/exemplars/tabster.stories.tsx +127 -0
  225. package/src/hooks/useDensityContext.ts +1 -1
  226. package/src/hooks/useElevationContext.ts +1 -1
  227. package/src/index.ts +2 -1
  228. package/src/playground/Controls.stories.tsx +3 -4
  229. package/src/playground/Custom.stories.tsx +8 -10
  230. package/src/playground/Typography.stories.tsx +2 -2
  231. package/src/primitives/Container/Container.stories.tsx +67 -0
  232. package/src/primitives/Container/Container.tsx +82 -0
  233. package/src/primitives/Container/Layout.stories.tsx +57 -0
  234. package/src/primitives/Container/Layout.tsx +61 -0
  235. package/src/primitives/Container/index.ts +6 -0
  236. package/src/primitives/Flex/Flex.tsx +26 -0
  237. package/src/primitives/Flex/index.ts +5 -0
  238. package/src/primitives/index.ts +6 -0
  239. package/src/testing/decorators/index.ts +1 -1
  240. package/src/testing/decorators/withLayout.tsx +22 -15
  241. package/src/testing/decorators/{withSurfaceVariantsLayout.tsx → withLayoutVariants.tsx} +5 -5
  242. package/src/testing/decorators/withTheme.tsx +21 -18
  243. package/src/util/index.ts +2 -2
  244. package/dist/lib/browser/chunk-24AWTFTZ.mjs +0 -4521
  245. package/dist/lib/browser/chunk-24AWTFTZ.mjs.map +0 -7
  246. package/dist/lib/node-esm/chunk-MPRFBTTQ.mjs +0 -4523
  247. package/dist/lib/node-esm/chunk-MPRFBTTQ.mjs.map +0 -7
  248. package/dist/types/src/components/Buttons/Button.d.ts.map +0 -1
  249. package/dist/types/src/components/Buttons/Button.stories.d.ts.map +0 -1
  250. package/dist/types/src/components/Buttons/IconButton.d.ts.map +0 -1
  251. package/dist/types/src/components/Buttons/IconButton.stories.d.ts.map +0 -1
  252. package/dist/types/src/components/Buttons/Toggle.d.ts.map +0 -1
  253. package/dist/types/src/components/Buttons/Toggle.stories.d.ts +0 -13
  254. package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +0 -1
  255. package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +0 -1
  256. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +0 -1
  257. package/dist/types/src/components/Buttons/index.d.ts.map +0 -1
  258. package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +0 -1
  259. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +0 -1
  260. package/dist/types/src/components/Dialogs/Dialog.d.ts +0 -31
  261. package/dist/types/src/components/Dialogs/Dialog.d.ts.map +0 -1
  262. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +0 -1
  263. package/dist/types/src/components/Dialogs/index.d.ts.map +0 -1
  264. package/dist/types/src/components/Lists/List.d.ts.map +0 -1
  265. package/dist/types/src/components/Lists/List.stories.d.ts.map +0 -1
  266. package/dist/types/src/components/Lists/ListDropIndicator.d.ts.map +0 -1
  267. package/dist/types/src/components/Lists/Tree.d.ts.map +0 -1
  268. package/dist/types/src/components/Lists/Tree.stories.d.ts.map +0 -1
  269. package/dist/types/src/components/Lists/TreeDropIndicator.d.ts.map +0 -1
  270. package/dist/types/src/components/Lists/Treegrid.d.ts.map +0 -1
  271. package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +0 -1
  272. package/dist/types/src/components/Lists/index.d.ts.map +0 -1
  273. package/dist/types/src/components/Menus/ContextMenu.d.ts.map +0 -1
  274. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +0 -1
  275. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +0 -1
  276. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +0 -1
  277. package/dist/types/src/components/Menus/index.d.ts.map +0 -1
  278. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts +0 -12
  279. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts.map +0 -1
  280. package/dist/types/src/util/ThemedClassName.d.ts +0 -5
  281. package/dist/types/src/util/ThemedClassName.d.ts.map +0 -1
  282. package/dist/types/src/util/domino.d.ts +0 -18
  283. package/dist/types/src/util/domino.d.ts.map +0 -1
  284. package/src/components/Dialogs/Dialog.stories.tsx +0 -67
  285. package/src/util/ThemedClassName.ts +0 -7
  286. package/src/util/domino.ts +0 -53
  287. package/dist/types/src/components/{Buttons → Button}/Button.stories.d.ts +0 -0
  288. package/dist/types/src/components/{Buttons → Button}/IconButton.stories.d.ts +0 -0
  289. package/dist/types/src/components/{Buttons → Button}/Toggle.d.ts +0 -0
  290. package/dist/types/src/components/{Buttons → Button}/index.d.ts +0 -0
  291. package/dist/types/src/components/{Dialogs → Dialog}/AlertDialog.d.ts +0 -0
  292. package/dist/types/src/components/{Dialogs → Dialog}/AlertDialog.stories.d.ts +0 -0
  293. package/dist/types/src/components/{Dialogs → Dialog}/index.d.ts +0 -0
  294. package/dist/types/src/components/{Lists → List}/List.stories.d.ts +0 -0
  295. package/dist/types/src/components/{Lists → List}/ListDropIndicator.d.ts +0 -0
  296. package/dist/types/src/components/{Lists → List}/Tree.d.ts +0 -0
  297. package/dist/types/src/components/{Lists → List}/Tree.stories.d.ts +0 -0
  298. package/dist/types/src/components/{Lists → List}/TreeDropIndicator.d.ts +0 -0
  299. package/dist/types/src/components/{Lists → List}/Treegrid.d.ts +0 -0
  300. package/dist/types/src/components/{Lists → List}/Treegrid.stories.d.ts +0 -0
  301. package/dist/types/src/components/{Lists → List}/index.d.ts +0 -0
  302. package/dist/types/src/components/{Menus → Menu}/ContextMenu.stories.d.ts +0 -0
  303. package/dist/types/src/components/{Menus → Menu}/DropdownMenu.stories.d.ts +0 -0
  304. package/dist/types/src/components/{Menus → Menu}/index.d.ts +0 -0
  305. package/src/components/{Buttons → Button}/Toggle.tsx +0 -0
  306. package/src/components/{Buttons → Button}/ToggleGroup.tsx +0 -0
  307. package/src/components/{Buttons → Button}/index.ts +0 -0
  308. package/src/components/{Dialogs → Dialog}/AlertDialog.tsx +0 -0
  309. package/src/components/{Dialogs → Dialog}/index.ts +0 -0
  310. package/src/components/{Lists → List}/Tree.tsx +0 -0
  311. package/src/components/{Lists → List}/TreeDropIndicator.tsx +0 -0
  312. package/src/components/{Lists → List}/Treegrid.tsx +1 -1
  313. /package/src/components/{Lists → List}/index.ts +0 -0
  314. /package/src/components/{Menus → Menu}/ContextMenu.tsx +0 -0
  315. /package/src/components/{Menus → Menu}/index.ts +0 -0
@@ -5,51 +5,72 @@
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React from 'react';
7
7
 
8
- import { withTheme } from '../../testing';
9
- import { Button } from '../Buttons';
8
+ import { withLayout, withTheme } from '../../testing';
9
+ import { IconButton } from '../Button';
10
+ import { Toolbar } from '../Toolbar';
10
11
 
11
12
  import { Main, useSidebars } from './Main';
12
13
 
13
14
  type StoryMainArgs = {};
14
15
 
15
- const NavigationSidebarToggle = () => {
16
+ const NavigationSidebarToggle = ({ close }: { close?: boolean }) => {
16
17
  const { toggleNavigationSidebar } = useSidebars('StoryMain__SidebarToggle');
17
- return <Button onClick={toggleNavigationSidebar}>Toggle navigation sidebar</Button>;
18
+ return (
19
+ <IconButton
20
+ icon={close ? 'ph--caret-left--regular' : 'ph--caret-right--regular'}
21
+ iconOnly
22
+ label='Toggle navigation sidebar'
23
+ onClick={toggleNavigationSidebar}
24
+ />
25
+ );
18
26
  };
19
27
 
20
- const ComplementarySidebarToggle = () => {
28
+ const ComplementarySidebarToggle = ({ close }: { close?: boolean }) => {
21
29
  const { toggleComplementarySidebar } = useSidebars('StoryMain__SidebarToggle');
22
- return <Button onClick={toggleComplementarySidebar}>Toggle complementary sidebar</Button>;
30
+ return (
31
+ <IconButton
32
+ icon={close ? 'ph--caret-right--regular' : 'ph--caret-left--regular'}
33
+ iconOnly
34
+ label='Toggle complementary sidebar'
35
+ onClick={toggleComplementarySidebar}
36
+ />
37
+ );
23
38
  };
24
39
 
25
40
  const DefaultStory = (_args: StoryMainArgs) => {
26
41
  return (
27
- <Main.Root>
42
+ <Main.Root defaultComplementarySidebarState='closed' defaultNavigationSidebarState='closed'>
28
43
  <Main.Overlay />
29
- <Main.NavigationSidebar label='Navigation' classNames='p-4'>
30
- <p>Navigation sidebar content, hi!</p>
31
- <NavigationSidebarToggle />
44
+ <Main.NavigationSidebar label='Navigation'>
45
+ <Toolbar.Root>
46
+ <h1>Navigation</h1>
47
+ <Toolbar.Separator variant='gap' classNames='grow' />
48
+ <NavigationSidebarToggle close />
49
+ </Toolbar.Root>
32
50
  </Main.NavigationSidebar>
33
- <Main.Content>
34
- <div role='group' className='m-2 p-4 bg-neutral-50 dark:bg-neutral-950 rounded space-y-2'>
35
- <ComplementarySidebarToggle />
36
- <p>Main content, hello!</p>
51
+ <Main.Content classNames='is-full'>
52
+ <Toolbar.Root>
37
53
  <NavigationSidebarToggle />
38
- </div>
54
+ <div className='flex items-center grow justify-center'>Main</div>
55
+ <ComplementarySidebarToggle />
56
+ </Toolbar.Root>
39
57
  </Main.Content>
40
- <Main.ComplementarySidebar label='Complementary content' classNames='p-4'>
41
- <p>Complementary sidebar content, hello!</p>
42
- <ComplementarySidebarToggle />
58
+ <Main.ComplementarySidebar label='Complementary'>
59
+ <Toolbar.Root>
60
+ <ComplementarySidebarToggle close />
61
+ <Toolbar.Separator variant='gap' classNames='grow' />
62
+ <h1>Complementary</h1>
63
+ </Toolbar.Root>
43
64
  </Main.ComplementarySidebar>
44
65
  </Main.Root>
45
66
  );
46
67
  };
47
68
 
48
69
  const meta = {
49
- title: 'ui/react-ui-core/Main',
70
+ title: 'ui/react-ui-core/components/Main',
50
71
  component: Main.Root,
51
72
  render: DefaultStory,
52
- decorators: [withTheme],
73
+ decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
53
74
  parameters: {
54
75
  layout: 'fullscreen',
55
76
  chromatic: {
@@ -22,8 +22,10 @@ import React, {
22
22
  useState,
23
23
  } from 'react';
24
24
 
25
+ import { addEventListener } from '@dxos/async';
25
26
  import { log } from '@dxos/log';
26
27
  import { useForwardedRef, useMediaQuery } from '@dxos/react-hooks';
28
+ import { type MainStyleProps } from '@dxos/ui-theme';
27
29
 
28
30
  import { useThemeContext } from '../../hooks';
29
31
  import { type ThemedClassName } from '../../util';
@@ -31,22 +33,19 @@ import { type Label, toLocalizedString, useTranslation } from '../ThemeProvider'
31
33
 
32
34
  import { useSwipeToDismiss } from './useSwipeToDismiss';
33
35
 
36
+ const MAIN_NAME = 'Main';
34
37
  const MAIN_ROOT_NAME = 'MainRoot';
35
38
  const NAVIGATION_SIDEBAR_NAME = 'NavigationSidebar';
36
39
  const COMPLEMENTARY_SIDEBAR_NAME = 'ComplementarySidebar';
37
- const MAIN_NAME = 'Main';
38
- const GENERIC_CONSUMER_NAME = 'GenericConsumer';
39
40
 
40
- type SidebarState = 'expanded' | 'collapsed' | 'closed';
41
-
42
- type MainContextValue = {
43
- resizing: boolean;
44
- navigationSidebarState: SidebarState;
45
- setNavigationSidebarState: Dispatch<SetStateAction<SidebarState | undefined>>;
46
- complementarySidebarState: SidebarState;
47
- setComplementarySidebarState: Dispatch<SetStateAction<SidebarState | undefined>>;
41
+ const handleOpenAutoFocus = (event: Event) => {
42
+ !document.body.hasAttribute('data-is-keyboard') && event.preventDefault();
48
43
  };
49
44
 
45
+ //
46
+ // Landmark
47
+ //
48
+
50
49
  const landmarkAttr = 'data-main-landmark';
51
50
 
52
51
  /**
@@ -72,35 +71,59 @@ const useLandmarkMover = (propsOnKeyDown: ComponentPropsWithoutRef<'div'>['onKey
72
71
  [propsOnKeyDown],
73
72
  );
74
73
 
75
- // TODO(thure): This was disconnected once before in #8818, if this should change again to support the browser
76
- // extension, please ensure the change doesn’t break web, desktop and mobile.
74
+ // TODO(thure): This was disconnected once before in #8818;
75
+ // if this should change again to support the browser extension, please ensure the change doesn’t break web, desktop and mobile.
77
76
  const focusableGroupAttrs = useFocusableGroup({ tabBehavior: 'limited', ignoreDefaultKeydown: { Tab: true } });
78
77
 
79
78
  return {
80
- onKeyDown: handleKeyDown,
81
79
  [landmarkAttr]: landmark,
82
80
  tabIndex: 0,
81
+ onKeyDown: handleKeyDown,
83
82
  ...focusableGroupAttrs,
84
83
  };
85
84
  };
86
85
 
86
+ //
87
+ // Context
88
+ //
89
+
90
+ // TODO(burdon): Define collapsed state.
91
+ type SidebarState = 'expanded' | 'collapsed' | 'closed';
92
+
93
+ type MainContextValue = {
94
+ resizing: boolean;
95
+
96
+ // Navigation
97
+ navigationSidebarState: SidebarState;
98
+ setNavigationSidebarState: Dispatch<SetStateAction<SidebarState | undefined>>;
99
+
100
+ // Complementary
101
+ complementarySidebarState: SidebarState;
102
+ setComplementarySidebarState: Dispatch<SetStateAction<SidebarState | undefined>>;
103
+ };
104
+
87
105
  const [MainProvider, useMainContext] = createContext<MainContextValue>(MAIN_NAME, {
88
106
  resizing: false,
107
+
89
108
  navigationSidebarState: 'closed',
90
109
  setNavigationSidebarState: (_nextState) => {
91
- // TODO(burdon): Standardize with other context missing errors using raise.
92
- log.warn('Attempt to set sidebar state without initializing `MainRoot`');
110
+ log.warn('Not initialized');
93
111
  },
112
+
94
113
  complementarySidebarState: 'closed',
95
114
  setComplementarySidebarState: (_nextState) => {
96
- // TODO(burdon): Standardize with other context missing errors using raise.
97
- log.warn('Attempt to set sidebar state without initializing `MainRoot`');
115
+ log.warn('Not initialized');
98
116
  },
99
117
  });
100
118
 
101
- const useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
102
- const { setNavigationSidebarState, navigationSidebarState, setComplementarySidebarState, complementarySidebarState } =
103
- useMainContext(consumerName);
119
+ const useSidebars = (consumerName: string) => {
120
+ const {
121
+ navigationSidebarState,
122
+ setNavigationSidebarState,
123
+
124
+ complementarySidebarState,
125
+ setComplementarySidebarState,
126
+ } = useMainContext(consumerName);
104
127
 
105
128
  return {
106
129
  navigationSidebarState,
@@ -112,6 +135,7 @@ const useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
112
135
  openNavigationSidebar: useCallback(() => setNavigationSidebarState('expanded'), []),
113
136
  collapseNavigationSidebar: useCallback(() => setNavigationSidebarState('collapsed'), []),
114
137
  closeNavigationSidebar: useCallback(() => setNavigationSidebarState('closed'), []),
138
+
115
139
  complementarySidebarState,
116
140
  setComplementarySidebarState,
117
141
  toggleComplementarySidebar: useCallback(
@@ -124,24 +148,29 @@ const useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
124
148
  };
125
149
  };
126
150
 
151
+ //
152
+ // Root
153
+ //
154
+
127
155
  type MainRootProps = PropsWithChildren<{
128
156
  navigationSidebarState?: SidebarState;
129
157
  defaultNavigationSidebarState?: SidebarState;
130
158
  onNavigationSidebarStateChange?: (nextState: SidebarState) => void;
159
+
131
160
  complementarySidebarState?: SidebarState;
132
161
  defaultComplementarySidebarState?: SidebarState;
133
162
  onComplementarySidebarStateChange?: (nextState: SidebarState) => void;
134
163
  }>;
135
164
 
136
- const resizeDebounce = 3000;
137
-
138
165
  const MainRoot = ({
139
166
  navigationSidebarState: propsNavigationSidebarState,
140
- defaultNavigationSidebarState,
167
+ defaultNavigationSidebarState = 'closed',
141
168
  onNavigationSidebarStateChange,
169
+
142
170
  complementarySidebarState: propsComplementarySidebarState,
143
- defaultComplementarySidebarState,
171
+ defaultComplementarySidebarState = 'closed',
144
172
  onComplementarySidebarStateChange,
173
+
145
174
  children,
146
175
  ...props
147
176
  }: MainRootProps) => {
@@ -161,22 +190,21 @@ const MainRoot = ({
161
190
 
162
191
  const [resizing, setResizing] = useState(false);
163
192
  const resizeInterval = useRef<ReturnType<typeof setTimeout> | null>(null);
193
+ useEffect(
194
+ () =>
195
+ addEventListener(window, 'resize', () => {
196
+ setResizing(true);
197
+ if (resizeInterval.current) {
198
+ clearTimeout(resizeInterval.current);
199
+ }
164
200
 
165
- const handleResize = useCallback(() => {
166
- setResizing(true);
167
- if (resizeInterval.current) {
168
- clearTimeout(resizeInterval.current);
169
- }
170
- resizeInterval.current = setTimeout(() => {
171
- setResizing(false);
172
- resizeInterval.current = null;
173
- }, resizeDebounce);
174
- }, []);
175
-
176
- useEffect(() => {
177
- window.addEventListener('resize', handleResize);
178
- return () => window.removeEventListener('resize', handleResize);
179
- }, [handleResize]);
201
+ resizeInterval.current = setTimeout(() => {
202
+ setResizing(false);
203
+ resizeInterval.current = null;
204
+ }, 3_000);
205
+ }),
206
+ [],
207
+ );
180
208
 
181
209
  return (
182
210
  <MainProvider
@@ -196,9 +224,9 @@ const MainRoot = ({
196
224
 
197
225
  MainRoot.displayName = MAIN_ROOT_NAME;
198
226
 
199
- const handleOpenAutoFocus = (event: Event) => {
200
- !document.body.hasAttribute('data-is-keyboard') && event.preventDefault();
201
- };
227
+ //
228
+ // Sidebar
229
+ //
202
230
 
203
231
  type MainSidebarProps = ThemedClassName<ComponentPropsWithRef<typeof DialogContent>> & {
204
232
  swipeToDismiss?: boolean;
@@ -219,9 +247,11 @@ const MainSidebar = forwardRef<HTMLDivElement, MainSidebarProps>(
219
247
  const { t } = useTranslation();
220
248
  const ref = useForwardedRef(forwardedRef);
221
249
  const noopRef = useRef(null);
250
+
222
251
  useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {
223
252
  onDismiss: () => onStateChange?.('closed'),
224
253
  });
254
+
225
255
  // NOTE(thure): This is a workaround for something further down the tree grabbing focus on Escape. Adding this
226
256
  // intervention to `Tabs.Root` or `Tabs.Tabpenel` instances is somehow ineffectual.
227
257
  const handleKeyDown = useCallback(
@@ -236,6 +266,7 @@ const MainSidebar = forwardRef<HTMLDivElement, MainSidebarProps>(
236
266
  },
237
267
  [props.onKeyDown],
238
268
  );
269
+
239
270
  const Root = isLg ? Primitive.div : DialogContent;
240
271
 
241
272
  return (
@@ -243,13 +274,13 @@ const MainSidebar = forwardRef<HTMLDivElement, MainSidebarProps>(
243
274
  {!isLg && <DialogTitle className='sr-only'>{toLocalizedString(label, t)}</DialogTitle>}
244
275
  <Root
245
276
  {...(!isLg && { forceMount: true, tabIndex: -1, onOpenAutoFocus: onOpenAutoFocus ?? handleOpenAutoFocus })}
277
+ {...(state === 'closed' && { inert: true })}
246
278
  {...props}
247
279
  data-side={side === 'inline-end' ? 'ie' : 'is'}
248
280
  data-state={state}
249
281
  data-resizing={resizing ? 'true' : 'false'}
250
282
  className={tx('main.sidebar', 'main__sidebar', {}, classNames)}
251
283
  onKeyDownCapture={handleKeyDown}
252
- {...(state === 'closed' && { inert: true })}
253
284
  ref={ref}
254
285
  >
255
286
  {children}
@@ -259,6 +290,10 @@ const MainSidebar = forwardRef<HTMLDivElement, MainSidebarProps>(
259
290
  },
260
291
  );
261
292
 
293
+ //
294
+ // Navigation Sidebar
295
+ //
296
+
262
297
  type MainNavigationSidebarProps = Omit<MainSidebarProps, 'expanded' | 'side'>;
263
298
 
264
299
  const MainNavigationSidebar = forwardRef<HTMLDivElement, MainNavigationSidebarProps>((props, forwardedRef) => {
@@ -280,6 +315,10 @@ const MainNavigationSidebar = forwardRef<HTMLDivElement, MainNavigationSidebarPr
280
315
 
281
316
  MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
282
317
 
318
+ //
319
+ // Complementary Sidebar
320
+ //
321
+
283
322
  type MainComplementarySidebarProps = Omit<MainSidebarProps, 'expanded' | 'side'>;
284
323
 
285
324
  const MainComplementarySidebar = forwardRef<HTMLDivElement, MainComplementarySidebarProps>((props, forwardedRef) => {
@@ -300,20 +339,24 @@ const MainComplementarySidebar = forwardRef<HTMLDivElement, MainComplementarySid
300
339
  );
301
340
  });
302
341
 
303
- MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
342
+ MainComplementarySidebar.displayName = COMPLEMENTARY_SIDEBAR_NAME;
304
343
 
305
- type MainProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {
306
- asChild?: boolean;
307
- bounce?: boolean;
308
- handlesFocus?: boolean;
309
- };
344
+ //
345
+ // Content
346
+ //
310
347
 
311
- const MainContent = forwardRef<HTMLDivElement, MainProps>(
312
- ({ asChild, classNames, bounce, handlesFocus, children, role, ...props }: MainProps, forwardedRef) => {
348
+ type MainContentProps = ThemedClassName<
349
+ ComponentPropsWithRef<typeof Primitive.div> &
350
+ MainStyleProps & {
351
+ asChild?: boolean;
352
+ }
353
+ >;
354
+
355
+ const MainContent = forwardRef<HTMLDivElement, MainContentProps>(
356
+ ({ asChild, classNames, bounce, handlesFocus, children, role, ...props }: MainContentProps, forwardedRef) => {
313
357
  const { navigationSidebarState, complementarySidebarState } = useMainContext(MAIN_NAME);
314
358
  const { tx } = useThemeContext();
315
359
  const Root = asChild ? Slot : role ? 'div' : 'main';
316
-
317
360
  const mover = useLandmarkMover(props.onKeyDown, '1');
318
361
 
319
362
  return (
@@ -335,7 +378,7 @@ const MainContent = forwardRef<HTMLDivElement, MainProps>(
335
378
 
336
379
  MainContent.displayName = MAIN_NAME;
337
380
 
338
- type MainOverlayProps = ThemedClassName<Omit<ComponentPropsWithRef<typeof Primitive.div>, 'children'>>;
381
+ type MainOverlayProps = ThemedClassName<Omit<ComponentPropsWithRef<typeof Primitive.div>, 'children' | 'onClick'>>;
339
382
 
340
383
  const MainOverlay = forwardRef<HTMLDivElement, MainOverlayProps>(({ classNames, ...props }, forwardedRef) => {
341
384
  const [isLg] = useMediaQuery('lg');
@@ -344,15 +387,19 @@ const MainOverlay = forwardRef<HTMLDivElement, MainOverlayProps>(({ classNames,
344
387
  const { tx } = useThemeContext();
345
388
  return (
346
389
  <div
390
+ {...props}
347
391
  onClick={() => {
348
392
  setNavigationSidebarState('collapsed');
349
393
  setComplementarySidebarState('collapsed');
350
394
  }}
351
- {...props}
352
395
  className={tx(
353
396
  'main.overlay',
354
397
  'main__overlay',
355
- { isLg, inlineStartSidebarOpen: navigationSidebarState, inlineEndSidebarOpen: complementarySidebarState },
398
+ {
399
+ isLg,
400
+ inlineStartSidebarOpen: navigationSidebarState,
401
+ inlineEndSidebarOpen: complementarySidebarState,
402
+ },
356
403
  classNames,
357
404
  )}
358
405
  data-state={navigationSidebarState === 'expanded' || complementarySidebarState === 'expanded' ? 'open' : 'closed'}
@@ -372,4 +419,4 @@ export const Main = {
372
419
 
373
420
  export { useMainContext, useSidebars, useLandmarkMover };
374
421
 
375
- export type { MainRootProps, MainProps, MainOverlayProps, MainNavigationSidebarProps, SidebarState };
422
+ export type { MainRootProps, MainContentProps, MainOverlayProps, MainNavigationSidebarProps, SidebarState };
@@ -92,10 +92,10 @@ const DefaultStory = () => {
92
92
  };
93
93
 
94
94
  const meta = {
95
- title: 'ui/react-ui-core/ContextMenu',
95
+ title: 'ui/react-ui-core/components/ContextMenu',
96
96
  component: ContextMenu.Root as any,
97
97
  render: DefaultStory,
98
- decorators: [withTheme],
98
+ decorators: [withTheme()],
99
99
  } satisfies Meta<typeof DefaultStory>;
100
100
 
101
101
  export default meta;
@@ -6,7 +6,7 @@ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React, { useRef, useState } from 'react';
7
7
 
8
8
  import { withTheme } from '../../testing';
9
- import { Button } from '../Buttons';
9
+ import { Button } from '../Button';
10
10
 
11
11
  import { DropdownMenu } from './DropdownMenu';
12
12
 
@@ -92,10 +92,10 @@ const DefaultStory = () => {
92
92
  };
93
93
 
94
94
  const meta = {
95
- title: 'ui/react-ui-core/DropdownMenu',
95
+ title: 'ui/react-ui-core/components/DropdownMenu',
96
96
  component: DropdownMenu.Root,
97
97
  render: DefaultStory,
98
- decorators: [withTheme],
98
+ decorators: [withTheme()],
99
99
  } satisfies Meta<typeof DefaultStory>;
100
100
 
101
101
  export default meta;