@dxos/react-ui 0.8.4-main.fffef41 → 0.8.4-staging.ac66bdf99f

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 (382) 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 +4111 -67
  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 +88 -64
  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 +4111 -67
  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 +88 -64
  14. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  15. package/dist/types/src/components/Avatars/Avatar.d.ts +1 -1
  16. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
  17. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  18. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
  19. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  20. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  21. package/dist/types/src/components/Button/Button.d.ts +3 -3
  22. package/dist/types/src/components/Button/Button.d.ts.map +1 -1
  23. package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -1
  24. package/dist/types/src/components/Button/IconButton.d.ts +2 -1
  25. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -1
  26. package/dist/types/src/components/Button/IconButton.stories.d.ts +3 -0
  27. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -1
  28. package/dist/types/src/components/Button/Toggle.d.ts +2 -2
  29. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -1
  30. package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -1
  31. package/dist/types/src/components/Button/ToggleGroup.d.ts +10 -10
  32. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -1
  33. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +4 -4
  34. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -1
  35. package/dist/types/src/components/Card/Card.d.ts +120 -0
  36. package/dist/types/src/components/Card/Card.d.ts.map +1 -0
  37. package/dist/types/src/components/Card/Card.stories.d.ts +21 -0
  38. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
  39. package/dist/types/src/components/Card/index.d.ts +2 -0
  40. package/dist/types/src/components/Card/index.d.ts.map +1 -0
  41. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  42. package/dist/types/src/components/Clipboard/index.d.ts +10 -1
  43. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  44. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts +1 -1
  45. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  46. package/dist/types/src/components/Dialog/AlertDialog.d.ts +39 -19
  47. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -1
  48. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -1
  49. package/dist/types/src/components/Dialog/Dialog.d.ts +54 -21
  50. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
  51. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +10 -10
  52. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
  53. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts +1 -1
  54. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  55. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
  56. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  57. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
  58. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
  59. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +19 -0
  60. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
  61. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
  62. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
  63. package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
  64. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
  65. package/dist/types/src/components/Focus/Focus.d.ts +36 -0
  66. package/dist/types/src/components/Focus/Focus.d.ts.map +1 -0
  67. package/dist/types/src/components/Focus/Focus.stories.d.ts +9 -0
  68. package/dist/types/src/components/Focus/Focus.stories.d.ts.map +1 -0
  69. package/dist/types/src/components/Focus/index.d.ts +2 -0
  70. package/dist/types/src/components/Focus/index.d.ts.map +1 -0
  71. package/dist/types/src/components/Icon/Icon.d.ts +4 -1
  72. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  73. package/dist/types/src/components/Icon/Icon.stories.d.ts +11 -3
  74. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -1
  75. package/dist/types/src/components/Image/Image.d.ts +14 -0
  76. package/dist/types/src/components/Image/Image.d.ts.map +1 -0
  77. package/dist/types/src/components/Image/Image.stories.d.ts +33 -0
  78. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
  79. package/dist/types/src/components/Image/index.d.ts +2 -0
  80. package/dist/types/src/components/Image/index.d.ts.map +1 -0
  81. package/dist/types/src/components/Input/Input.d.ts +7 -7
  82. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  83. package/dist/types/src/components/Input/Input.stories.d.ts +8 -8
  84. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  85. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  86. package/dist/types/src/components/List/List.d.ts +6 -4
  87. package/dist/types/src/components/List/List.d.ts.map +1 -1
  88. package/dist/types/src/components/List/List.stories.d.ts +3 -1
  89. package/dist/types/src/components/List/List.stories.d.ts.map +1 -1
  90. package/dist/types/src/components/List/Tree.d.ts.map +1 -1
  91. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -1
  92. package/dist/types/src/components/List/Treegrid.d.ts +5 -9
  93. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -1
  94. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -1
  95. package/dist/types/src/components/Main/Main.d.ts +9 -10
  96. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  97. package/dist/types/src/components/Main/Main.stories.d.ts +0 -3
  98. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  99. package/dist/types/src/components/{Menus → Menu}/ContextMenu.d.ts +6 -6
  100. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -0
  101. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -0
  102. package/dist/types/src/components/{Menus → Menu}/DropdownMenu.d.ts +52 -51
  103. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -0
  104. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +28 -0
  105. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -0
  106. package/dist/types/src/components/Menu/index.d.ts.map +1 -0
  107. package/dist/types/src/components/Message/Message.d.ts +1 -1
  108. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  109. package/dist/types/src/components/Message/Message.stories.d.ts +5 -6
  110. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  111. package/dist/types/src/components/Popover/Popover.d.ts +33 -24
  112. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  113. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  114. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +27 -27
  115. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  116. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +57 -8
  117. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  118. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +37 -14
  119. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
  120. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +10 -5
  121. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -1
  122. package/dist/types/src/components/Select/Select.d.ts +9 -9
  123. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  124. package/dist/types/src/components/Select/Select.stories.d.ts +2 -2
  125. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  126. package/dist/types/src/components/Separator/Separator.d.ts +4 -4
  127. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
  128. package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
  129. package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
  130. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
  131. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
  132. package/dist/types/src/components/Skeleton/index.d.ts +2 -0
  133. package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
  134. package/dist/types/src/components/Splitter/Splitter.d.ts +34 -0
  135. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
  136. package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
  137. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
  138. package/dist/types/src/components/Splitter/index.d.ts +2 -0
  139. package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
  140. package/dist/types/src/components/Status/Status.d.ts +3 -4
  141. package/dist/types/src/components/Status/Status.d.ts.map +1 -1
  142. package/dist/types/src/components/Status/Status.stories.d.ts +4 -2
  143. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  144. package/dist/types/src/components/Tag/Tag.d.ts +1 -1
  145. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  146. package/dist/types/src/components/Tag/Tag.stories.d.ts +0 -5
  147. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  148. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +3 -3
  149. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  150. package/dist/types/src/components/{Menus/DropdownMenu.stories.d.ts → ThemeProvider/ThemeProvider.stories.d.ts} +2 -5
  151. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
  152. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +1 -8
  153. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  154. package/dist/types/src/components/ThemeProvider/index.d.ts +2 -1
  155. package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -1
  156. package/dist/types/src/components/Toast/Toast.d.ts +19 -19
  157. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  158. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  159. package/dist/types/src/components/Toolbar/Toolbar.d.ts +36 -18
  160. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  161. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  162. package/dist/types/src/components/Tooltip/Tooltip.d.ts +9 -9
  163. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  164. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +2 -2
  165. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  166. package/dist/types/src/components/index.d.ts +10 -5
  167. package/dist/types/src/components/index.d.ts.map +1 -1
  168. package/dist/types/src/exemplars/generics.stories.d.ts +19 -0
  169. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
  170. package/dist/types/src/exemplars/slot.stories.d.ts +15 -0
  171. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -0
  172. package/dist/types/src/exemplars/tabster.stories.d.ts +8 -0
  173. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -0
  174. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  175. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  176. package/dist/types/src/hooks/index.d.ts +1 -0
  177. package/dist/types/src/hooks/index.d.ts.map +1 -1
  178. package/dist/types/src/hooks/useDensityContext.d.ts +2 -2
  179. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  180. package/dist/types/src/hooks/useElevationContext.d.ts +1 -1
  181. package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
  182. package/dist/types/src/index.d.ts +2 -1
  183. package/dist/types/src/index.d.ts.map +1 -1
  184. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  185. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  186. package/dist/types/src/primitives/Column/Column.d.ts +33 -0
  187. package/dist/types/src/primitives/Column/Column.d.ts.map +1 -0
  188. package/dist/types/src/primitives/Column/Column.stories.d.ts +25 -0
  189. package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -0
  190. package/dist/types/src/primitives/Column/index.d.ts +2 -0
  191. package/dist/types/src/primitives/Column/index.d.ts.map +1 -0
  192. package/dist/types/src/primitives/Container/Container.d.ts +7 -0
  193. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
  194. package/dist/types/src/primitives/Container/Container.stories.d.ts +6 -0
  195. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
  196. package/dist/types/src/primitives/Container/index.d.ts +2 -0
  197. package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
  198. package/dist/types/src/primitives/Flex/Flex.d.ts +11 -0
  199. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
  200. package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
  201. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
  202. package/dist/types/src/primitives/Flex/index.d.ts +2 -0
  203. package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
  204. package/dist/types/src/primitives/Grid/Grid.d.ts +10 -0
  205. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
  206. package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
  207. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
  208. package/dist/types/src/primitives/Grid/index.d.ts +2 -0
  209. package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
  210. package/dist/types/src/primitives/Panel/Panel.d.ts +35 -0
  211. package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -0
  212. package/dist/types/src/primitives/Panel/Panel.stories.d.ts +6 -0
  213. package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -0
  214. package/dist/types/src/primitives/Panel/index.d.ts +2 -0
  215. package/dist/types/src/primitives/Panel/index.d.ts.map +1 -0
  216. package/dist/types/src/primitives/index.d.ts +6 -0
  217. package/dist/types/src/primitives/index.d.ts.map +1 -0
  218. package/dist/types/src/testing/Loading.d.ts +9 -0
  219. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  220. package/dist/types/src/testing/decorators/withLayout.d.ts +3 -3
  221. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
  222. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts +1 -1
  223. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -1
  224. package/dist/types/src/testing/decorators/withTheme.d.ts +3 -2
  225. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  226. package/dist/types/src/testing/index.d.ts +1 -0
  227. package/dist/types/src/testing/index.d.ts.map +1 -1
  228. package/dist/types/src/translations.d.ts +11 -0
  229. package/dist/types/src/translations.d.ts.map +1 -0
  230. package/dist/types/src/util/index.d.ts +1 -2
  231. package/dist/types/src/util/index.d.ts.map +1 -1
  232. package/dist/types/src/util/usePx.d.ts.map +1 -1
  233. package/dist/types/tsconfig.tsbuildinfo +1 -1
  234. package/package.json +42 -32
  235. package/src/components/Avatars/Avatar.stories.tsx +7 -9
  236. package/src/components/Avatars/Avatar.tsx +7 -15
  237. package/src/components/Avatars/AvatarGroup.stories.tsx +2 -3
  238. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +3 -4
  239. package/src/components/Breadcrumb/Breadcrumb.tsx +11 -37
  240. package/src/components/Button/Button.stories.tsx +3 -4
  241. package/src/components/Button/Button.tsx +12 -26
  242. package/src/components/Button/IconButton.stories.tsx +8 -6
  243. package/src/components/Button/IconButton.tsx +9 -6
  244. package/src/components/Button/Toggle.stories.tsx +2 -3
  245. package/src/components/Button/Toggle.tsx +4 -4
  246. package/src/components/Button/ToggleGroup.stories.tsx +2 -3
  247. package/src/components/Button/ToggleGroup.tsx +12 -16
  248. package/src/components/Card/Card.stories.tsx +151 -0
  249. package/src/components/Card/Card.tsx +493 -0
  250. package/src/components/Card/index.ts +5 -0
  251. package/src/components/Clipboard/CopyButton.tsx +7 -8
  252. package/src/components/DensityProvider/DensityProvider.tsx +1 -1
  253. package/src/components/Dialog/AlertDialog.stories.tsx +16 -17
  254. package/src/components/Dialog/AlertDialog.tsx +123 -82
  255. package/src/components/Dialog/Dialog.stories.tsx +138 -28
  256. package/src/components/Dialog/Dialog.tsx +197 -71
  257. package/src/components/ElevationProvider/ElevationProvider.tsx +1 -1
  258. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +45 -0
  259. package/src/components/ErrorFallback/ErrorFallback.tsx +70 -0
  260. package/src/components/ErrorFallback/ErrorStack.tsx +114 -0
  261. package/src/components/ErrorFallback/ThrowError.tsx +37 -0
  262. package/src/components/ErrorFallback/index.ts +9 -0
  263. package/src/components/Focus/AUDIT.md +43 -0
  264. package/src/components/Focus/Focus.stories.tsx +230 -0
  265. package/src/components/Focus/Focus.tsx +201 -0
  266. package/src/components/Focus/index.ts +5 -0
  267. package/src/components/Icon/Icon.stories.tsx +45 -15
  268. package/src/components/Icon/Icon.tsx +7 -3
  269. package/src/components/Image/Image.stories.tsx +86 -0
  270. package/src/components/Image/Image.tsx +223 -0
  271. package/src/components/Image/index.ts +5 -0
  272. package/src/components/Input/Input.stories.tsx +21 -41
  273. package/src/components/Input/Input.tsx +38 -74
  274. package/src/components/Link/Link.stories.tsx +2 -3
  275. package/src/components/Link/Link.tsx +2 -2
  276. package/src/components/List/List.stories.tsx +30 -34
  277. package/src/components/List/List.tsx +17 -21
  278. package/src/components/List/ListDropIndicator.tsx +7 -7
  279. package/src/components/List/Tree.stories.tsx +5 -6
  280. package/src/components/List/Tree.tsx +0 -1
  281. package/src/components/List/TreeDropIndicator.tsx +6 -6
  282. package/src/components/List/Treegrid.stories.tsx +29 -30
  283. package/src/components/List/Treegrid.tsx +23 -28
  284. package/src/components/Main/Main.stories.tsx +41 -24
  285. package/src/components/Main/Main.tsx +139 -83
  286. package/src/components/{Menus → Menu}/ContextMenu.stories.tsx +2 -3
  287. package/src/components/{Menus → Menu}/ContextMenu.tsx +9 -33
  288. package/src/components/{Menus → Menu}/DropdownMenu.stories.tsx +2 -3
  289. package/src/components/{Menus → Menu}/DropdownMenu.tsx +115 -107
  290. package/src/components/Message/Message.stories.tsx +27 -13
  291. package/src/components/Message/Message.tsx +43 -34
  292. package/src/components/Popover/Popover.stories.tsx +7 -8
  293. package/src/components/Popover/Popover.tsx +97 -92
  294. package/src/components/ScrollArea/ScrollArea.stories.tsx +223 -34
  295. package/src/components/ScrollArea/ScrollArea.tsx +97 -79
  296. package/src/components/ScrollArea/index.ts +1 -1
  297. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +47 -25
  298. package/src/components/ScrollContainer/ScrollContainer.tsx +225 -109
  299. package/src/components/Select/Select.stories.tsx +7 -8
  300. package/src/components/Select/Select.tsx +11 -27
  301. package/src/components/Separator/Separator.tsx +5 -8
  302. package/src/components/Skeleton/Skeleton.stories.tsx +51 -0
  303. package/src/components/Skeleton/Skeleton.tsx +26 -0
  304. package/src/components/Skeleton/index.ts +5 -0
  305. package/src/components/Splitter/Splitter.stories.tsx +83 -0
  306. package/src/components/Splitter/Splitter.tsx +127 -0
  307. package/src/components/Splitter/index.ts +5 -0
  308. package/src/components/Status/Status.stories.tsx +21 -18
  309. package/src/components/Status/Status.tsx +10 -7
  310. package/src/components/Tag/Tag.stories.tsx +6 -12
  311. package/src/components/Tag/Tag.tsx +3 -8
  312. package/src/components/ThemeProvider/ThemeProvider.stories.tsx +31 -0
  313. package/src/components/ThemeProvider/ThemeProvider.tsx +10 -10
  314. package/src/components/ThemeProvider/TranslationsProvider.tsx +1 -16
  315. package/src/components/ThemeProvider/index.ts +3 -3
  316. package/src/components/Toast/Toast.stories.tsx +2 -3
  317. package/src/components/Toast/Toast.tsx +22 -41
  318. package/src/components/Toolbar/Toolbar.stories.tsx +2 -3
  319. package/src/components/Toolbar/Toolbar.tsx +185 -23
  320. package/src/components/Tooltip/Tooltip.stories.tsx +20 -19
  321. package/src/components/Tooltip/Tooltip.tsx +40 -38
  322. package/src/components/index.ts +11 -6
  323. package/src/exemplars/generics.stories.tsx +41 -0
  324. package/src/exemplars/slot.stories.tsx +117 -0
  325. package/src/exemplars/tabster.stories.tsx +127 -0
  326. package/src/exemplars/virtualizer.stories.tsx +137 -0
  327. package/src/hooks/index.ts +1 -0
  328. package/src/hooks/useDensityContext.ts +3 -3
  329. package/src/hooks/useElevationContext.ts +1 -1
  330. package/src/index.ts +2 -1
  331. package/src/playground/Controls.stories.tsx +3 -10
  332. package/src/playground/Custom.stories.tsx +15 -18
  333. package/src/playground/Typography.stories.tsx +3 -3
  334. package/src/primitives/Column/AUDIT.md +148 -0
  335. package/src/primitives/Column/Column.stories.tsx +181 -0
  336. package/src/primitives/Column/Column.tsx +165 -0
  337. package/src/primitives/Column/index.ts +5 -0
  338. package/src/primitives/Container/Container.stories.tsx +29 -0
  339. package/src/primitives/Container/Container.tsx +19 -0
  340. package/src/primitives/Container/index.ts +5 -0
  341. package/src/primitives/Flex/Flex.stories.tsx +57 -0
  342. package/src/primitives/Flex/Flex.tsx +27 -0
  343. package/src/primitives/Flex/index.ts +5 -0
  344. package/src/primitives/Grid/Grid.stories.tsx +56 -0
  345. package/src/primitives/Grid/Grid.tsx +30 -0
  346. package/src/primitives/Grid/index.ts +5 -0
  347. package/src/primitives/Panel/Panel.stories.tsx +68 -0
  348. package/src/primitives/Panel/Panel.tsx +120 -0
  349. package/src/primitives/Panel/index.ts +5 -0
  350. package/src/primitives/index.ts +9 -0
  351. package/src/testing/Loading.tsx +47 -0
  352. package/src/testing/decorators/withLayout.tsx +39 -18
  353. package/src/testing/decorators/withLayoutVariants.tsx +20 -23
  354. package/src/testing/decorators/withTheme.tsx +26 -20
  355. package/src/testing/index.ts +2 -0
  356. package/src/translations.ts +19 -0
  357. package/src/util/index.ts +2 -2
  358. package/src/util/usePx.ts +1 -0
  359. package/dist/lib/browser/chunk-N5GDJTT2.mjs +0 -4707
  360. package/dist/lib/browser/chunk-N5GDJTT2.mjs.map +0 -7
  361. package/dist/lib/node-esm/chunk-SP7VQH72.mjs +0 -4709
  362. package/dist/lib/node-esm/chunk-SP7VQH72.mjs.map +0 -7
  363. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -15
  364. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
  365. package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
  366. package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
  367. package/dist/types/src/components/Menus/ContextMenu.d.ts.map +0 -1
  368. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +0 -1
  369. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +0 -1
  370. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +0 -1
  371. package/dist/types/src/components/Menus/index.d.ts.map +0 -1
  372. package/dist/types/src/util/ThemedClassName.d.ts +0 -5
  373. package/dist/types/src/util/ThemedClassName.d.ts.map +0 -1
  374. package/dist/types/src/util/domino.d.ts +0 -18
  375. package/dist/types/src/util/domino.d.ts.map +0 -1
  376. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -59
  377. package/src/components/AnchoredOverflow/index.ts +0 -5
  378. package/src/util/ThemedClassName.ts +0 -7
  379. package/src/util/domino.ts +0 -53
  380. /package/dist/types/src/components/{Menus → Menu}/ContextMenu.stories.d.ts +0 -0
  381. /package/dist/types/src/components/{Menus → Menu}/index.d.ts +0 -0
  382. /package/src/components/{Menus → Menu}/index.ts +0 -0
@@ -5,56 +5,73 @@
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 '../Button';
10
-
8
+ import { withLayout, withTheme } from '../../testing';
9
+ import { IconButton } from '../Button';
10
+ import { Toolbar } from '../Toolbar';
11
11
  import { Main, useSidebars } from './Main';
12
12
 
13
13
  type StoryMainArgs = {};
14
14
 
15
- const NavigationSidebarToggle = () => {
15
+ const NavigationSidebarToggle = ({ close }: { close?: boolean }) => {
16
16
  const { toggleNavigationSidebar } = useSidebars('StoryMain__SidebarToggle');
17
- return <Button onClick={toggleNavigationSidebar}>Toggle navigation sidebar</Button>;
17
+ return (
18
+ <IconButton
19
+ icon={close ? 'ph--caret-left--regular' : 'ph--caret-right--regular'}
20
+ iconOnly
21
+ label='Toggle navigation sidebar'
22
+ onClick={toggleNavigationSidebar}
23
+ />
24
+ );
18
25
  };
19
26
 
20
- const ComplementarySidebarToggle = () => {
27
+ const ComplementarySidebarToggle = ({ close }: { close?: boolean }) => {
21
28
  const { toggleComplementarySidebar } = useSidebars('StoryMain__SidebarToggle');
22
- return <Button onClick={toggleComplementarySidebar}>Toggle complementary sidebar</Button>;
29
+ return (
30
+ <IconButton
31
+ icon={close ? 'ph--caret-right--regular' : 'ph--caret-left--regular'}
32
+ iconOnly
33
+ label='Toggle complementary sidebar'
34
+ onClick={toggleComplementarySidebar}
35
+ />
36
+ );
23
37
  };
24
38
 
25
39
  const DefaultStory = (_args: StoryMainArgs) => {
26
40
  return (
27
- <Main.Root>
41
+ <Main.Root defaultComplementarySidebarState='closed' defaultNavigationSidebarState='closed'>
28
42
  <Main.Overlay />
29
- <Main.NavigationSidebar label='Navigation' classNames='p-4'>
30
- <p>Navigation sidebar content, hi!</p>
31
- <NavigationSidebarToggle />
43
+ <Main.NavigationSidebar label='Navigation'>
44
+ <Toolbar.Root>
45
+ <h1>Navigation</h1>
46
+ <Toolbar.Separator />
47
+ <NavigationSidebarToggle close />
48
+ </Toolbar.Root>
32
49
  </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>
50
+ <Main.Content classNames='w-full'>
51
+ <Toolbar.Root>
37
52
  <NavigationSidebarToggle />
38
- </div>
53
+ <div className='flex items-center grow justify-center'>Main</div>
54
+ <ComplementarySidebarToggle />
55
+ </Toolbar.Root>
39
56
  </Main.Content>
40
- <Main.ComplementarySidebar label='Complementary content' classNames='p-4'>
41
- <p>Complementary sidebar content, hello!</p>
42
- <ComplementarySidebarToggle />
57
+ <Main.ComplementarySidebar label='Complementary'>
58
+ <Toolbar.Root>
59
+ <ComplementarySidebarToggle close />
60
+ <Toolbar.Separator />
61
+ <h1>Complementary</h1>
62
+ </Toolbar.Root>
43
63
  </Main.ComplementarySidebar>
44
64
  </Main.Root>
45
65
  );
46
66
  };
47
67
 
48
68
  const meta = {
49
- title: 'ui/react-ui-core/Main',
69
+ title: 'ui/react-ui-core/components/Main',
50
70
  component: Main.Root,
51
71
  render: DefaultStory,
52
- decorators: [withTheme],
72
+ decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
53
73
  parameters: {
54
74
  layout: 'fullscreen',
55
- chromatic: {
56
- disableSnapshot: false,
57
- },
58
75
  },
59
76
  } satisfies Meta<typeof DefaultStory>;
60
77
 
@@ -22,20 +22,29 @@ 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, osTranslations } from '@dxos/ui-theme';
27
29
 
28
30
  import { useThemeContext } from '../../hooks';
29
31
  import { type ThemedClassName } from '../../util';
30
32
  import { type Label, toLocalizedString, useTranslation } from '../ThemeProvider';
31
-
32
33
  import { useSwipeToDismiss } from './useSwipeToDismiss';
33
34
 
34
35
  const MAIN_NAME = 'Main';
35
36
  const MAIN_ROOT_NAME = 'MainRoot';
37
+ const MAIN_OVERLAY_NAME = 'MainOverlay';
36
38
  const NAVIGATION_SIDEBAR_NAME = 'NavigationSidebar';
37
39
  const COMPLEMENTARY_SIDEBAR_NAME = 'ComplementarySidebar';
38
- const GENERIC_CONSUMER_NAME = 'GenericConsumer';
40
+
41
+ const handleOpenAutoFocus = (event: Event) => {
42
+ !document.body.hasAttribute('data-w-keyboard') && event.preventDefault();
43
+ };
44
+
45
+ //
46
+ // Landmark
47
+ //
39
48
 
40
49
  const landmarkAttr = 'data-main-landmark';
41
50
 
@@ -67,40 +76,54 @@ const useLandmarkMover = (propsOnKeyDown: ComponentPropsWithoutRef<'div'>['onKey
67
76
  const focusableGroupAttrs = useFocusableGroup({ tabBehavior: 'limited', ignoreDefaultKeydown: { Tab: true } });
68
77
 
69
78
  return {
70
- onKeyDown: handleKeyDown,
71
79
  [landmarkAttr]: landmark,
72
80
  tabIndex: 0,
81
+ onKeyDown: handleKeyDown,
73
82
  ...focusableGroupAttrs,
74
83
  };
75
84
  };
76
85
 
86
+ //
87
+ // Context
88
+ //
89
+
90
+ // TODO(burdon): Define collapsed state.
77
91
  type SidebarState = 'expanded' | 'collapsed' | 'closed';
78
92
 
79
93
  type MainContextValue = {
80
94
  resizing: boolean;
95
+
96
+ // Navigation
81
97
  navigationSidebarState: SidebarState;
82
98
  setNavigationSidebarState: Dispatch<SetStateAction<SidebarState | undefined>>;
99
+
100
+ // Complementary
83
101
  complementarySidebarState: SidebarState;
84
102
  setComplementarySidebarState: Dispatch<SetStateAction<SidebarState | undefined>>;
85
103
  };
86
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,16 +224,52 @@ 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
+ // Overlay
229
+ //
230
+
231
+ type MainOverlayProps = ThemedClassName<Omit<ComponentPropsWithRef<typeof Primitive.div>, 'children' | 'onClick'>>;
232
+
233
+ const MainOverlay = forwardRef<HTMLDivElement, MainOverlayProps>(({ classNames, ...props }, forwardedRef) => {
234
+ const [isLg] = useMediaQuery('lg');
235
+ const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } =
236
+ useMainContext(MAIN_OVERLAY_NAME);
237
+ const { tx } = useThemeContext();
238
+ return (
239
+ <div
240
+ {...props}
241
+ onClick={() => {
242
+ setNavigationSidebarState('collapsed');
243
+ setComplementarySidebarState('collapsed');
244
+ }}
245
+ className={tx(
246
+ 'main.overlay',
247
+ {
248
+ isLg,
249
+ inlineStartSidebarOpen: navigationSidebarState,
250
+ inlineEndSidebarOpen: complementarySidebarState,
251
+ },
252
+ classNames,
253
+ )}
254
+ data-state={navigationSidebarState === 'expanded' || complementarySidebarState === 'expanded' ? 'open' : 'closed'}
255
+ aria-hidden='true'
256
+ ref={forwardedRef}
257
+ />
258
+ );
259
+ });
260
+
261
+ MainOverlay.displayName = MAIN_OVERLAY_NAME;
262
+
263
+ //
264
+ // Sidebar
265
+ //
202
266
 
203
267
  type MainSidebarProps = ThemedClassName<ComponentPropsWithRef<typeof DialogContent>> & {
204
268
  swipeToDismiss?: boolean;
205
269
  state?: SidebarState;
206
270
  resizing?: boolean;
207
271
  onStateChange?: (nextState: SidebarState) => void;
208
- side: 'inline-start' | 'inline-end';
272
+ side: 'w-start' | 'w-end';
209
273
  label: Label;
210
274
  };
211
275
 
@@ -216,12 +280,14 @@ const MainSidebar = forwardRef<HTMLDivElement, MainSidebarProps>(
216
280
  ) => {
217
281
  const [isLg] = useMediaQuery('lg');
218
282
  const { tx } = useThemeContext();
219
- const { t } = useTranslation();
283
+ const { t } = useTranslation(osTranslations);
220
284
  const ref = useForwardedRef(forwardedRef);
221
285
  const noopRef = useRef(null);
286
+
222
287
  useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {
223
288
  onDismiss: () => onStateChange?.('closed'),
224
289
  });
290
+
225
291
  // NOTE(thure): This is a workaround for something further down the tree grabbing focus on Escape. Adding this
226
292
  // intervention to `Tabs.Root` or `Tabs.Tabpenel` instances is somehow ineffectual.
227
293
  const handleKeyDown = useCallback(
@@ -236,6 +302,7 @@ const MainSidebar = forwardRef<HTMLDivElement, MainSidebarProps>(
236
302
  },
237
303
  [props.onKeyDown],
238
304
  );
305
+
239
306
  const Root = isLg ? Primitive.div : DialogContent;
240
307
 
241
308
  return (
@@ -243,13 +310,13 @@ const MainSidebar = forwardRef<HTMLDivElement, MainSidebarProps>(
243
310
  {!isLg && <DialogTitle className='sr-only'>{toLocalizedString(label, t)}</DialogTitle>}
244
311
  <Root
245
312
  {...(!isLg && { forceMount: true, tabIndex: -1, onOpenAutoFocus: onOpenAutoFocus ?? handleOpenAutoFocus })}
313
+ {...(state === 'closed' && { inert: true })}
246
314
  {...props}
247
- data-side={side === 'inline-end' ? 'ie' : 'is'}
315
+ data-side={side === 'w-end' ? 'ie' : 'is'}
248
316
  data-state={state}
249
317
  data-resizing={resizing ? 'true' : 'false'}
250
- className={tx('main.sidebar', 'main__sidebar', {}, classNames)}
318
+ className={tx('main.sidebar', {}, classNames)}
251
319
  onKeyDownCapture={handleKeyDown}
252
- {...(state === 'closed' && { inert: true })}
253
320
  ref={ref}
254
321
  >
255
322
  {children}
@@ -259,6 +326,10 @@ const MainSidebar = forwardRef<HTMLDivElement, MainSidebarProps>(
259
326
  },
260
327
  );
261
328
 
329
+ //
330
+ // Navigation Sidebar
331
+ //
332
+
262
333
  type MainNavigationSidebarProps = Omit<MainSidebarProps, 'expanded' | 'side'>;
263
334
 
264
335
  const MainNavigationSidebar = forwardRef<HTMLDivElement, MainNavigationSidebarProps>((props, forwardedRef) => {
@@ -272,7 +343,7 @@ const MainNavigationSidebar = forwardRef<HTMLDivElement, MainNavigationSidebarPr
272
343
  state={navigationSidebarState}
273
344
  onStateChange={setNavigationSidebarState}
274
345
  resizing={resizing}
275
- side='inline-start'
346
+ side='w-start'
276
347
  ref={forwardedRef}
277
348
  />
278
349
  );
@@ -280,6 +351,10 @@ const MainNavigationSidebar = forwardRef<HTMLDivElement, MainNavigationSidebarPr
280
351
 
281
352
  MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
282
353
 
354
+ //
355
+ // Complementary Sidebar
356
+ //
357
+
283
358
  type MainComplementarySidebarProps = Omit<MainSidebarProps, 'expanded' | 'side'>;
284
359
 
285
360
  const MainComplementarySidebar = forwardRef<HTMLDivElement, MainComplementarySidebarProps>((props, forwardedRef) => {
@@ -294,82 +369,63 @@ const MainComplementarySidebar = forwardRef<HTMLDivElement, MainComplementarySid
294
369
  state={complementarySidebarState}
295
370
  onStateChange={setComplementarySidebarState}
296
371
  resizing={resizing}
297
- side='inline-end'
372
+ side='w-end'
298
373
  ref={forwardedRef}
299
374
  />
300
375
  );
301
376
  });
302
377
 
303
- MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
378
+ MainComplementarySidebar.displayName = COMPLEMENTARY_SIDEBAR_NAME;
304
379
 
305
- type MainProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {
306
- asChild?: boolean;
307
- bounce?: boolean;
308
- handlesFocus?: boolean;
309
- };
380
+ //
381
+ // Content
382
+ //
310
383
 
311
- const MainContent = forwardRef<HTMLDivElement, MainProps>(
312
- ({ asChild, classNames, bounce, handlesFocus, children, role, ...props }: MainProps, forwardedRef) => {
384
+ type MainContentProps = ThemedClassName<
385
+ ComponentPropsWithRef<typeof Primitive.div> &
386
+ MainStyleProps & {
387
+ asChild?: boolean;
388
+ }
389
+ >;
390
+
391
+ const MainContent = forwardRef<HTMLDivElement, MainContentProps>(
392
+ ({ asChild, classNames, bounce, handlesFocus, children, role, ...props }: MainContentProps, forwardedRef) => {
313
393
  const { navigationSidebarState, complementarySidebarState } = useMainContext(MAIN_NAME);
314
394
  const { tx } = useThemeContext();
315
- const Root = asChild ? Slot : role ? 'div' : 'main';
316
-
395
+ const Comp = asChild ? Slot : role ? Primitive.div : 'main';
317
396
  const mover = useLandmarkMover(props.onKeyDown, '1');
318
397
 
319
398
  return (
320
- <Root
321
- role={role}
399
+ <Comp
322
400
  {...(handlesFocus && { ...mover })}
323
401
  {...props}
324
- data-sidebar-inline-start-state={navigationSidebarState}
325
- data-sidebar-inline-end-state={complementarySidebarState}
402
+ role={role}
403
+ data-sidebar-left-state={navigationSidebarState}
404
+ data-sidebar-right-state={complementarySidebarState}
326
405
  data-handles-focus={handlesFocus}
327
- className={tx('main.content', 'main', { bounce, handlesFocus }, classNames)}
406
+ className={tx('main.content', { bounce, handlesFocus }, classNames)}
328
407
  ref={forwardedRef}
329
408
  >
330
409
  {children}
331
- </Root>
410
+ </Comp>
332
411
  );
333
412
  },
334
413
  );
335
414
 
336
415
  MainContent.displayName = MAIN_NAME;
337
416
 
338
- type MainOverlayProps = ThemedClassName<Omit<ComponentPropsWithRef<typeof Primitive.div>, 'children'>>;
339
-
340
- const MainOverlay = forwardRef<HTMLDivElement, MainOverlayProps>(({ classNames, ...props }, forwardedRef) => {
341
- const [isLg] = useMediaQuery('lg');
342
- const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } =
343
- useMainContext(MAIN_NAME);
344
- const { tx } = useThemeContext();
345
- return (
346
- <div
347
- onClick={() => {
348
- setNavigationSidebarState('collapsed');
349
- setComplementarySidebarState('collapsed');
350
- }}
351
- {...props}
352
- className={tx(
353
- 'main.overlay',
354
- 'main__overlay',
355
- { isLg, inlineStartSidebarOpen: navigationSidebarState, inlineEndSidebarOpen: complementarySidebarState },
356
- classNames,
357
- )}
358
- data-state={navigationSidebarState === 'expanded' || complementarySidebarState === 'expanded' ? 'open' : 'closed'}
359
- aria-hidden='true'
360
- ref={forwardedRef}
361
- />
362
- );
363
- });
417
+ //
418
+ // Main
419
+ //
364
420
 
365
421
  export const Main = {
366
422
  Root: MainRoot,
367
- Content: MainContent,
368
423
  Overlay: MainOverlay,
424
+ Content: MainContent,
369
425
  NavigationSidebar: MainNavigationSidebar,
370
426
  ComplementarySidebar: MainComplementarySidebar,
371
427
  };
372
428
 
373
429
  export { useMainContext, useSidebars, useLandmarkMover };
374
430
 
375
- export type { MainRootProps, MainProps, MainOverlayProps, MainNavigationSidebarProps, SidebarState };
431
+ export type { MainRootProps, MainOverlayProps, MainContentProps, MainNavigationSidebarProps, SidebarState };
@@ -6,7 +6,6 @@ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React from 'react';
7
7
 
8
8
  import { withTheme } from '../../testing';
9
-
10
9
  import { ContextMenu } from './ContextMenu';
11
10
 
12
11
  const DefaultStory = () => {
@@ -92,10 +91,10 @@ const DefaultStory = () => {
92
91
  };
93
92
 
94
93
  const meta = {
95
- title: 'ui/react-ui-core/ContextMenu',
94
+ title: 'ui/react-ui-core/components/ContextMenu',
96
95
  component: ContextMenu.Root as any,
97
96
  render: DefaultStory,
98
- decorators: [withTheme],
97
+ decorators: [withTheme()],
99
98
  } satisfies Meta<typeof DefaultStory>;
100
99
 
101
100
  export default meta;
@@ -36,7 +36,7 @@ const ContextMenuContent = forwardRef<HTMLDivElement, ContextMenuContentProps>(
36
36
  {...props}
37
37
  data-arrow-keys='up down'
38
38
  collisionPadding={safeCollisionPadding}
39
- className={tx('menu.content', 'menu', { elevation }, classNames)}
39
+ className={tx('menu.content', { elevation }, classNames)}
40
40
  ref={forwardedRef}
41
41
  >
42
42
  {children}
@@ -52,11 +52,11 @@ type ContextMenuViewportProps = ThemedClassName<ComponentPropsWithRef<typeof Pri
52
52
  const ContextMenuViewport = forwardRef<HTMLDivElement, ContextMenuViewportProps>(
53
53
  ({ classNames, asChild, children, ...props }, forwardedRef) => {
54
54
  const { tx } = useThemeContext();
55
- const Root = asChild ? Slot : Primitive.div;
55
+ const Comp = asChild ? Slot : Primitive.div;
56
56
  return (
57
- <Root {...props} className={tx('menu.viewport', 'menu__viewport', {}, classNames)} ref={forwardedRef}>
57
+ <Comp {...props} className={tx('menu.viewport', {}, classNames)} ref={forwardedRef}>
58
58
  {children}
59
- </Root>
59
+ </Comp>
60
60
  );
61
61
  },
62
62
  );
@@ -65,13 +65,7 @@ type ContextMenuArrowProps = ThemedClassName<ContextMenuPrimitive.ContextMenuArr
65
65
 
66
66
  const ContextMenuArrow = forwardRef<SVGSVGElement, ContextMenuArrowProps>(({ classNames, ...props }, forwardedRef) => {
67
67
  const { tx } = useThemeContext();
68
- return (
69
- <ContextMenuPrimitive.Arrow
70
- {...props}
71
- className={tx('menu.arrow', 'menu__arrow', {}, classNames)}
72
- ref={forwardedRef}
73
- />
74
- );
68
+ return <ContextMenuPrimitive.Arrow {...props} className={tx('menu.arrow', {}, classNames)} ref={forwardedRef} />;
75
69
  });
76
70
 
77
71
  type ContextMenuGroupProps = ContextMenuPrimitive.ContextMenuGroupProps;
@@ -87,13 +81,7 @@ type ContextMenuItemProps = ThemedClassName<ContextMenuPrimitive.ContextMenuItem
87
81
  const ContextMenuItem = forwardRef<HTMLDivElement, ContextMenuItemProps>(
88
82
  ({ classNames, ...props }: ContextMenuItemProps, forwardedRef) => {
89
83
  const { tx } = useThemeContext();
90
- return (
91
- <ContextMenuPrimitive.Item
92
- {...props}
93
- className={tx('menu.item', 'menu__item', {}, classNames)}
94
- ref={forwardedRef}
95
- />
96
- );
84
+ return <ContextMenuPrimitive.Item {...props} className={tx('menu.item', {}, classNames)} ref={forwardedRef} />;
97
85
  },
98
86
  );
99
87
 
@@ -103,11 +91,7 @@ const ContextMenuCheckboxItem = forwardRef<HTMLDivElement, ContextMenuCheckboxIt
103
91
  ({ classNames, ...props }: ContextMenuItemProps, forwardedRef) => {
104
92
  const { tx } = useThemeContext();
105
93
  return (
106
- <ContextMenuPrimitive.CheckboxItem
107
- {...props}
108
- className={tx('menu.item', 'menu__item--checkbox', {}, classNames)}
109
- ref={forwardedRef}
110
- />
94
+ <ContextMenuPrimitive.CheckboxItem {...props} className={tx('menu.item', {}, classNames)} ref={forwardedRef} />
111
95
  );
112
96
  },
113
97
  );
@@ -118,11 +102,7 @@ const ContextMenuSeparator = forwardRef<HTMLDivElement, ContextMenuSeparatorProp
118
102
  ({ classNames, ...props }, forwardedRef) => {
119
103
  const { tx } = useThemeContext();
120
104
  return (
121
- <ContextMenuPrimitive.Separator
122
- {...props}
123
- className={tx('menu.separator', 'menu__item', {}, classNames)}
124
- ref={forwardedRef}
125
- />
105
+ <ContextMenuPrimitive.Separator {...props} className={tx('menu.separator', {}, classNames)} ref={forwardedRef} />
126
106
  );
127
107
  },
128
108
  );
@@ -133,11 +113,7 @@ const ContextMenuGroupLabel = forwardRef<HTMLDivElement, ContextMenuGroupLabelPr
133
113
  ({ classNames, ...props }, forwardedRef) => {
134
114
  const { tx } = useThemeContext();
135
115
  return (
136
- <ContextMenuPrimitive.Label
137
- {...props}
138
- className={tx('menu.groupLabel', 'menu__group__label', {}, classNames)}
139
- ref={forwardedRef}
140
- />
116
+ <ContextMenuPrimitive.Label {...props} className={tx('menu.groupLabel', {}, classNames)} ref={forwardedRef} />
141
117
  );
142
118
  },
143
119
  );
@@ -7,7 +7,6 @@ import React, { useRef, useState } from 'react';
7
7
 
8
8
  import { withTheme } from '../../testing';
9
9
  import { Button } from '../Button';
10
-
11
10
  import { DropdownMenu } from './DropdownMenu';
12
11
 
13
12
  const DefaultStory = () => {
@@ -92,10 +91,10 @@ const DefaultStory = () => {
92
91
  };
93
92
 
94
93
  const meta = {
95
- title: 'ui/react-ui-core/DropdownMenu',
94
+ title: 'ui/react-ui-core/components/DropdownMenu',
96
95
  component: DropdownMenu.Root,
97
96
  render: DefaultStory,
98
- decorators: [withTheme],
97
+ decorators: [withTheme()],
99
98
  } satisfies Meta<typeof DefaultStory>;
100
99
 
101
100
  export default meta;