@dxos/react-ui 0.8.4-main.c4373fc → 0.8.4-main.c85a9c8dae

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