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

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 (324) hide show
  1. package/dist/lib/browser/{chunk-CEKVHJ27.mjs → chunk-LUPEFGHJ.mjs} +119 -117
  2. package/dist/lib/browser/chunk-LUPEFGHJ.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +3084 -2081
  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 +59 -36
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/{chunk-2NHEX4AD.mjs → chunk-EQOBFLZC.mjs} +119 -117
  9. package/dist/lib/node-esm/chunk-EQOBFLZC.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +3084 -2081
  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 +59 -36
  14. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  15. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
  16. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  17. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  18. package/dist/types/src/components/Button/Button.d.ts +2 -2
  19. package/dist/types/src/components/Button/Button.d.ts.map +1 -1
  20. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -1
  21. package/dist/types/src/components/Button/IconButton.stories.d.ts +3 -0
  22. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -1
  23. package/dist/types/src/components/Button/Toggle.d.ts +2 -2
  24. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -1
  25. package/dist/types/src/components/Button/ToggleGroup.d.ts +6 -6
  26. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -1
  27. package/dist/types/src/components/Card/Card.d.ts +150 -0
  28. package/dist/types/src/components/Card/Card.d.ts.map +1 -0
  29. package/dist/types/src/components/Card/Card.stories.d.ts +21 -0
  30. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
  31. package/dist/types/src/components/Card/index.d.ts +2 -0
  32. package/dist/types/src/components/Card/index.d.ts.map +1 -0
  33. package/dist/types/src/components/Clipboard/index.d.ts +10 -1
  34. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  35. package/dist/types/src/components/Dialog/AlertDialog.d.ts +41 -19
  36. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -1
  37. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -1
  38. package/dist/types/src/components/Dialog/Dialog.d.ts +48 -22
  39. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
  40. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +6 -8
  41. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
  42. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
  43. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  44. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
  45. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
  46. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +8 -0
  47. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
  48. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
  49. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
  50. package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
  51. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
  52. package/dist/types/src/components/Focus/Focus.d.ts +44 -0
  53. package/dist/types/src/components/Focus/Focus.d.ts.map +1 -0
  54. package/dist/types/src/components/Focus/Focus.stories.d.ts +9 -0
  55. package/dist/types/src/components/Focus/Focus.stories.d.ts.map +1 -0
  56. package/dist/types/src/components/Focus/index.d.ts +2 -0
  57. package/dist/types/src/components/Focus/index.d.ts.map +1 -0
  58. package/dist/types/src/components/Icon/Icon.d.ts +3 -0
  59. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  60. package/dist/types/src/components/Icon/Icon.stories.d.ts +11 -3
  61. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -1
  62. package/dist/types/src/components/Image/Image.d.ts +14 -0
  63. package/dist/types/src/components/Image/Image.d.ts.map +1 -0
  64. package/dist/types/src/components/Image/Image.stories.d.ts +33 -0
  65. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
  66. package/dist/types/src/components/Image/index.d.ts +2 -0
  67. package/dist/types/src/components/Image/index.d.ts.map +1 -0
  68. package/dist/types/src/components/Input/Input.d.ts +4 -7
  69. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  70. package/dist/types/src/components/Input/Input.stories.d.ts +7 -7
  71. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  72. package/dist/types/src/components/List/List.d.ts +9 -3
  73. package/dist/types/src/components/List/List.d.ts.map +1 -1
  74. package/dist/types/src/components/List/List.stories.d.ts +8 -2
  75. package/dist/types/src/components/List/List.stories.d.ts.map +1 -1
  76. package/dist/types/src/components/List/Treegrid.d.ts +9 -9
  77. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -1
  78. package/dist/types/src/components/Main/Main.d.ts +6 -32
  79. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  80. package/dist/types/src/components/Main/Main.stories.d.ts +1 -5
  81. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  82. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -1
  83. package/dist/types/src/components/Menu/DropdownMenu.d.ts +51 -50
  84. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -1
  85. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +14 -1
  86. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -1
  87. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  88. package/dist/types/src/components/Message/Message.stories.d.ts +4 -5
  89. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  90. package/dist/types/src/components/Popover/Popover.d.ts +32 -23
  91. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  92. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +31 -25
  93. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  94. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +62 -9
  95. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  96. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +45 -12
  97. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
  98. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +9 -5
  99. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -1
  100. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  101. package/dist/types/src/components/Select/Select.stories.d.ts +2 -2
  102. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  103. package/dist/types/src/components/Separator/Separator.d.ts +3 -3
  104. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
  105. package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
  106. package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
  107. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
  108. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
  109. package/dist/types/src/components/Skeleton/index.d.ts +2 -0
  110. package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
  111. package/dist/types/src/components/Splitter/Splitter.d.ts +37 -0
  112. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
  113. package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
  114. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
  115. package/dist/types/src/components/Splitter/index.d.ts +2 -0
  116. package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
  117. package/dist/types/src/components/Status/Status.d.ts +3 -4
  118. package/dist/types/src/components/Status/Status.d.ts.map +1 -1
  119. package/dist/types/src/components/Status/Status.stories.d.ts +4 -2
  120. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  121. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  122. package/dist/types/src/components/Tag/Tag.stories.d.ts +0 -5
  123. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  124. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +2 -1
  125. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  126. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts +12 -0
  127. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
  128. package/dist/types/src/components/Toast/Toast.d.ts +15 -15
  129. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  130. package/dist/types/src/components/Toolbar/Toolbar.d.ts +37 -11
  131. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  132. package/dist/types/src/components/Tooltip/Tooltip.d.ts +9 -9
  133. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  134. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +2 -2
  135. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  136. package/dist/types/src/components/index.d.ts +9 -4
  137. package/dist/types/src/components/index.d.ts.map +1 -1
  138. package/dist/types/src/exemplars/generics.stories.d.ts +23 -0
  139. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
  140. package/dist/types/src/exemplars/slot.stories.d.ts +15 -0
  141. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -0
  142. package/dist/types/src/exemplars/tabster.stories.d.ts +8 -0
  143. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -0
  144. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  145. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  146. package/dist/types/src/hooks/index.d.ts +1 -0
  147. package/dist/types/src/hooks/index.d.ts.map +1 -1
  148. package/dist/types/src/hooks/useDensityContext.d.ts +1 -1
  149. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  150. package/dist/types/src/index.d.ts +1 -0
  151. package/dist/types/src/index.d.ts.map +1 -1
  152. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  153. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  154. package/dist/types/src/primitives/Column/Column.d.ts +51 -0
  155. package/dist/types/src/primitives/Column/Column.d.ts.map +1 -0
  156. package/dist/types/src/primitives/Column/Column.stories.d.ts +25 -0
  157. package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -0
  158. package/dist/types/src/primitives/Column/index.d.ts +2 -0
  159. package/dist/types/src/primitives/Column/index.d.ts.map +1 -0
  160. package/dist/types/src/primitives/Container/Container.d.ts +11 -0
  161. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
  162. package/dist/types/src/primitives/Container/Container.stories.d.ts +6 -0
  163. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
  164. package/dist/types/src/primitives/Container/index.d.ts +2 -0
  165. package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
  166. package/dist/types/src/primitives/Flex/Flex.d.ts +15 -0
  167. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
  168. package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
  169. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
  170. package/dist/types/src/primitives/Flex/index.d.ts +2 -0
  171. package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
  172. package/dist/types/src/primitives/Grid/Grid.d.ts +14 -0
  173. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
  174. package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
  175. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
  176. package/dist/types/src/primitives/Grid/index.d.ts +2 -0
  177. package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
  178. package/dist/types/src/primitives/Panel/Panel.d.ts +46 -0
  179. package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -0
  180. package/dist/types/src/primitives/Panel/Panel.stories.d.ts +6 -0
  181. package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -0
  182. package/dist/types/src/primitives/Panel/index.d.ts +2 -0
  183. package/dist/types/src/primitives/Panel/index.d.ts.map +1 -0
  184. package/dist/types/src/primitives/index.d.ts +6 -0
  185. package/dist/types/src/primitives/index.d.ts.map +1 -0
  186. package/dist/types/src/testing/Loading.d.ts +9 -0
  187. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  188. package/dist/types/src/testing/decorators/withLayout.d.ts +1 -1
  189. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
  190. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -1
  191. package/dist/types/src/testing/decorators/withTheme.d.ts +3 -2
  192. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  193. package/dist/types/src/testing/index.d.ts +1 -0
  194. package/dist/types/src/testing/index.d.ts.map +1 -1
  195. package/dist/types/src/translations.d.ts +11 -0
  196. package/dist/types/src/translations.d.ts.map +1 -0
  197. package/dist/types/src/util/usePx.d.ts.map +1 -1
  198. package/dist/types/tsconfig.tsbuildinfo +1 -1
  199. package/package.json +27 -22
  200. package/src/components/Avatars/Avatar.stories.tsx +7 -8
  201. package/src/components/Avatars/Avatar.tsx +5 -12
  202. package/src/components/Avatars/AvatarGroup.stories.tsx +2 -2
  203. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +3 -3
  204. package/src/components/Breadcrumb/Breadcrumb.tsx +11 -37
  205. package/src/components/Button/Button.stories.tsx +3 -3
  206. package/src/components/Button/Button.tsx +11 -25
  207. package/src/components/Button/IconButton.stories.tsx +8 -5
  208. package/src/components/Button/IconButton.tsx +2 -3
  209. package/src/components/Button/Toggle.stories.tsx +2 -2
  210. package/src/components/Button/Toggle.tsx +4 -4
  211. package/src/components/Button/ToggleGroup.stories.tsx +2 -2
  212. package/src/components/Button/ToggleGroup.tsx +12 -16
  213. package/src/components/Card/Card.stories.tsx +151 -0
  214. package/src/components/Card/Card.tsx +492 -0
  215. package/src/components/Card/index.ts +5 -0
  216. package/src/components/Clipboard/CopyButton.tsx +4 -4
  217. package/src/components/Dialog/AlertDialog.stories.tsx +16 -16
  218. package/src/components/Dialog/AlertDialog.tsx +124 -82
  219. package/src/components/Dialog/Dialog.stories.tsx +98 -17
  220. package/src/components/Dialog/Dialog.tsx +113 -87
  221. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +50 -0
  222. package/src/components/ErrorFallback/ErrorFallback.tsx +70 -0
  223. package/src/components/ErrorFallback/ErrorStack.tsx +80 -0
  224. package/src/components/ErrorFallback/ThrowError.tsx +37 -0
  225. package/src/components/ErrorFallback/index.ts +9 -0
  226. package/src/components/Focus/AUDIT.md +43 -0
  227. package/src/components/Focus/Focus.stories.tsx +230 -0
  228. package/src/components/Focus/Focus.tsx +201 -0
  229. package/src/components/Focus/index.ts +5 -0
  230. package/src/components/Icon/Icon.stories.tsx +45 -14
  231. package/src/components/Icon/Icon.tsx +6 -2
  232. package/src/components/Image/Image.stories.tsx +86 -0
  233. package/src/components/Image/Image.tsx +223 -0
  234. package/src/components/Image/index.ts +5 -0
  235. package/src/components/Input/Input.stories.tsx +20 -39
  236. package/src/components/Input/Input.tsx +24 -69
  237. package/src/components/Link/Link.stories.tsx +2 -2
  238. package/src/components/Link/Link.tsx +2 -2
  239. package/src/components/List/List.stories.tsx +15 -22
  240. package/src/components/List/List.tsx +16 -19
  241. package/src/components/List/ListDropIndicator.tsx +7 -7
  242. package/src/components/List/Tree.stories.tsx +5 -5
  243. package/src/components/List/TreeDropIndicator.tsx +6 -6
  244. package/src/components/List/Treegrid.stories.tsx +6 -6
  245. package/src/components/List/Treegrid.tsx +23 -28
  246. package/src/components/Main/Main.stories.tsx +6 -95
  247. package/src/components/Main/Main.tsx +61 -211
  248. package/src/components/Menu/ContextMenu.stories.tsx +2 -2
  249. package/src/components/Menu/ContextMenu.tsx +9 -33
  250. package/src/components/Menu/DropdownMenu.stories.tsx +2 -2
  251. package/src/components/Menu/DropdownMenu.tsx +58 -52
  252. package/src/components/Message/Message.stories.tsx +27 -12
  253. package/src/components/Message/Message.tsx +14 -30
  254. package/src/components/Popover/Popover.stories.tsx +4 -4
  255. package/src/components/Popover/Popover.tsx +62 -59
  256. package/src/components/ScrollArea/ScrollArea.stories.tsx +213 -73
  257. package/src/components/ScrollArea/ScrollArea.tsx +85 -113
  258. package/src/components/ScrollArea/index.ts +1 -1
  259. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +45 -23
  260. package/src/components/ScrollContainer/ScrollContainer.tsx +206 -92
  261. package/src/components/Select/Select.stories.tsx +4 -4
  262. package/src/components/Select/Select.tsx +11 -27
  263. package/src/components/Separator/Separator.tsx +5 -8
  264. package/src/components/Skeleton/Skeleton.stories.tsx +52 -0
  265. package/src/components/Skeleton/Skeleton.tsx +26 -0
  266. package/src/components/Skeleton/index.ts +5 -0
  267. package/src/components/Splitter/Splitter.stories.tsx +83 -0
  268. package/src/components/Splitter/Splitter.tsx +139 -0
  269. package/src/components/Splitter/index.ts +5 -0
  270. package/src/components/Status/Status.stories.tsx +21 -17
  271. package/src/components/Status/Status.tsx +10 -7
  272. package/src/components/Tag/Tag.stories.tsx +4 -9
  273. package/src/components/Tag/Tag.tsx +2 -7
  274. package/src/components/ThemeProvider/ThemeProvider.stories.tsx +32 -0
  275. package/src/components/ThemeProvider/ThemeProvider.tsx +9 -6
  276. package/src/components/Toast/Toast.stories.tsx +2 -2
  277. package/src/components/Toast/Toast.tsx +22 -41
  278. package/src/components/Toolbar/Toolbar.stories.tsx +2 -2
  279. package/src/components/Toolbar/Toolbar.tsx +174 -26
  280. package/src/components/Tooltip/Tooltip.stories.tsx +16 -14
  281. package/src/components/Tooltip/Tooltip.tsx +18 -18
  282. package/src/components/index.ts +10 -5
  283. package/src/exemplars/generics.stories.tsx +41 -0
  284. package/src/exemplars/slot.stories.tsx +117 -0
  285. package/src/exemplars/tabster.stories.tsx +127 -0
  286. package/src/exemplars/virtualizer.stories.tsx +137 -0
  287. package/src/hooks/index.ts +1 -0
  288. package/src/hooks/useDensityContext.ts +2 -2
  289. package/src/index.ts +1 -0
  290. package/src/playground/Controls.stories.tsx +3 -10
  291. package/src/playground/Custom.stories.tsx +11 -21
  292. package/src/playground/Typography.stories.tsx +3 -3
  293. package/src/primitives/Column/AUDIT.md +354 -0
  294. package/src/primitives/Column/Column.stories.tsx +183 -0
  295. package/src/primitives/Column/Column.tsx +169 -0
  296. package/src/primitives/Column/index.ts +5 -0
  297. package/src/primitives/Container/Container.stories.tsx +30 -0
  298. package/src/primitives/Container/Container.tsx +19 -0
  299. package/src/primitives/Container/index.ts +5 -0
  300. package/src/primitives/Flex/Flex.stories.tsx +58 -0
  301. package/src/primitives/Flex/Flex.tsx +27 -0
  302. package/src/primitives/Flex/index.ts +5 -0
  303. package/src/primitives/Grid/Grid.stories.tsx +57 -0
  304. package/src/primitives/Grid/Grid.tsx +30 -0
  305. package/src/primitives/Grid/index.ts +5 -0
  306. package/src/primitives/Panel/Panel.stories.tsx +69 -0
  307. package/src/primitives/Panel/Panel.tsx +114 -0
  308. package/src/primitives/Panel/index.ts +5 -0
  309. package/src/primitives/index.ts +9 -0
  310. package/src/testing/Loading.tsx +26 -0
  311. package/src/testing/decorators/withLayout.tsx +21 -7
  312. package/src/testing/decorators/withLayoutVariants.tsx +18 -21
  313. package/src/testing/decorators/withTheme.tsx +24 -19
  314. package/src/testing/index.ts +2 -0
  315. package/src/translations.ts +19 -0
  316. package/src/util/usePx.ts +1 -0
  317. package/dist/lib/browser/chunk-CEKVHJ27.mjs.map +0 -7
  318. package/dist/lib/node-esm/chunk-2NHEX4AD.mjs.map +0 -7
  319. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -15
  320. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
  321. package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
  322. package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
  323. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -59
  324. package/src/components/AnchoredOverflow/index.ts +0 -5
@@ -9,14 +9,7 @@ import { useArrowNavigationGroup } from '@fluentui/react-tabster';
9
9
  import { type Meta, type StoryObj } from '@storybook/react-vite';
10
10
  import React, { type ReactNode, useCallback, useState } from 'react';
11
11
 
12
- import {
13
- getSize,
14
- ghostHover,
15
- ghostSelected,
16
- ghostSelectedTrackingInterFromNormal,
17
- mx,
18
- surfaceShadow,
19
- } from '@dxos/ui-theme';
12
+ import { getSize, ghostHover, mx, surfaceShadow } from '@dxos/ui-theme';
20
13
 
21
14
  import { withTheme } from '../../testing';
22
15
  import { Icon } from '../Icon';
@@ -24,9 +17,9 @@ import { Icon } from '../Icon';
24
17
  import { List, ListItem, type ListScopedProps } from './List';
25
18
 
26
19
  const meta = {
27
- title: 'ui/react-ui-core/List',
20
+ title: 'ui/react-ui-core/components/List',
28
21
  component: List,
29
- decorators: [withTheme],
22
+ decorators: [withTheme()],
30
23
  } satisfies Meta<typeof List>;
31
24
 
32
25
  export default meta;
@@ -44,11 +37,11 @@ const UniformListItem = ({ id, text }: { id: string; text: string }) => {
44
37
  style={{ transform: CSS.Transform.toString(transform) }}
45
38
  >
46
39
  <ListItem.Endcap>
47
- <Icon icon='ph--dots-six-vertical--regular' classNames={mx(getSize(5), 'mbs-2.5')} />
40
+ <Icon icon='ph--dots-six-vertical--regular' classNames={mx(getSize(5), 'mt-2.5')} />
48
41
  </ListItem.Endcap>
49
- <ListItem.Heading classNames='grow pbs-2'>{text}</ListItem.Heading>
42
+ <ListItem.Heading classNames='grow pt-2'>{text}</ListItem.Heading>
50
43
  <ListItem.Endcap>
51
- <Icon icon='ph--push-pin--regular' classNames={mx(getSize(5), 'mbs-2.5')} />
44
+ <Icon icon='ph--push-pin--regular' classNames={mx(getSize(5), 'mt-2.5')} />
52
45
  </ListItem.Endcap>
53
46
  </ListItem.Root>
54
47
  );
@@ -110,13 +103,13 @@ const ManySizesDraggableListItem = ({
110
103
  style={{ transform: CSS.Translate.toString(transform) }}
111
104
  >
112
105
  <ListItem.Endcap>
113
- <Icon icon='ph--dots-six-vertical--regular' classNames={mx(getSize(5), 'mbs-2.5')} />
106
+ <Icon icon='ph--dots-six-vertical--regular' classNames={mx(getSize(5), 'mt-2.5')} />
114
107
  </ListItem.Endcap>
115
- <ListItem.Heading classNames='grow pbs-2' asChild>
108
+ <ListItem.Heading classNames='grow pt-2' asChild>
116
109
  {text}
117
110
  </ListItem.Heading>
118
111
  <ListItem.Endcap>
119
- <Icon icon='ph--push-pin--regular' classNames={mx(getSize(5), 'mbs-2.5')} />
112
+ <Icon icon='ph--push-pin--regular' classNames={mx(getSize(5), 'mt-2.5')} />
120
113
  </ListItem.Endcap>
121
114
  </ListItem.Root>
122
115
  );
@@ -130,9 +123,9 @@ export const ManySizesDraggable: Story = {
130
123
  text: (
131
124
  <p
132
125
  className={mx(
133
- index % 3 === 0 ? 'bs-20' : index % 2 === 0 ? 'bs-12' : 'bs-8',
126
+ index % 3 === 0 ? 'h-20' : index % 2 === 0 ? 'h-12' : 'h-8',
134
127
  surfaceShadow({ elevation: 'positioned' }),
135
- 'mbe-2 p-2 bg-white dark:bg-neutral-800 rounded',
128
+ 'mb-2 p-2 bg-white dark:bg-neutral-800 rounded-sm',
136
129
  )}
137
130
  >{`List item ${index + 1}`}</p>
138
131
  ),
@@ -186,9 +179,9 @@ export const Collapsible: Story = {
186
179
  <ListItem.Root key={id} id={id} collapsible={index !== 2} defaultOpen={index % 2 === 0}>
187
180
  <div role='none' className='grow flex'>
188
181
  {index !== 2 ? <ListItem.OpenTrigger /> : <ListItem.MockOpenTrigger />}
189
- <ListItem.Heading classNames='grow pbs-2'>{text}</ListItem.Heading>
182
+ <ListItem.Heading classNames='grow pt-2'>{text}</ListItem.Heading>
190
183
  <ListItem.Endcap>
191
- <Icon icon='ph--push-pin--regular' classNames={mx(getSize(5), 'mbs-2.5')} />
184
+ <Icon icon='ph--push-pin--regular' classNames={mx(getSize(5), 'mt-2.5')} />
192
185
  </ListItem.Endcap>
193
186
  </div>
194
187
  {index !== 2 && <ListItem.CollapsibleContent>{body}</ListItem.CollapsibleContent>}
@@ -229,11 +222,11 @@ export const SelectableListbox: Story = {
229
222
  key={id}
230
223
  tabIndex={0}
231
224
  selected={selectedId === id}
232
- classNames={mx(ghostHover, ghostSelected, ghostSelectedTrackingInterFromNormal)}
225
+ classNames={mx(ghostHover, 'dx-selected')}
233
226
  onClick={() => setSelectedId(id)}
234
227
  onKeyUp={(event) => handleKeyUp(event, id)}
235
228
  >
236
- <ListItem.Heading classNames='flex pli-1 items-center grow truncate'>{text}</ListItem.Heading>
229
+ <ListItem.Heading classNames='flex px-1 items-center grow truncate'>{text}</ListItem.Heading>
237
230
  </ListItem.Root>
238
231
  ))}
239
232
  </List>
@@ -2,6 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
+ import { Primitive } from '@radix-ui/react-primitive';
5
6
  import { Slot } from '@radix-ui/react-slot';
6
7
  import React, { type ComponentPropsWithoutRef, type FC, type ForwardRefExoticComponent, forwardRef } from 'react';
7
8
 
@@ -23,6 +24,7 @@ import {
23
24
  useListContext,
24
25
  useListItemContext,
25
26
  } from '@dxos/react-list';
27
+ import { composable, composableProps } from '@dxos/ui-theme';
26
28
  import { type Density } from '@dxos/ui-types';
27
29
 
28
30
  import { useDensityContext, useThemeContext } from '../../hooks';
@@ -32,15 +34,16 @@ import { Icon } from '../Icon';
32
34
 
33
35
  import { ListDropIndicator } from './ListDropIndicator';
34
36
 
35
- type ListProps = ThemedClassName<ListPrimitiveProps> & { density?: Density };
37
+ type ListProps = ThemedClassName<ListPrimitiveProps & { density?: Density }>;
36
38
 
37
- const List = forwardRef<HTMLOListElement, ListProps>(({ classNames, children, ...props }, forwardedRef) => {
39
+ const List = composable<HTMLOListElement, ListProps>(({ children, ...props }, forwardedRef) => {
38
40
  const { tx } = useThemeContext();
39
41
  const density = useDensityContext(props.density);
42
+ const { className, ...rest } = composableProps(props);
40
43
 
41
44
  return (
42
45
  <DensityProvider density={density}>
43
- <ListPrimitive {...props} className={tx('list.root', 'list', {}, classNames)} ref={forwardedRef}>
46
+ <ListPrimitive {...rest} className={tx('list.root', {}, className)} ref={forwardedRef}>
44
47
  {children}
45
48
  </ListPrimitive>
46
49
  </DensityProvider>
@@ -51,18 +54,18 @@ type ListItemEndcapProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & {
51
54
 
52
55
  const ListItemEndcap = forwardRef<HTMLDivElement, ListItemEndcapProps>(
53
56
  ({ children, classNames, asChild, ...props }, forwardedRef) => {
54
- const Root = asChild ? Slot : 'div';
57
+ const Comp = asChild ? Slot : Primitive.div;
55
58
  const density = useDensityContext();
56
59
  const { tx } = useThemeContext();
57
60
  return (
58
- <Root
61
+ <Comp
59
62
  {...(!asChild && { role: 'none' })}
60
63
  {...props}
61
- className={tx('list.item.endcap', 'list__listItem__endcap', { density }, classNames)}
64
+ className={tx('list.item.endcap', { density }, classNames)}
62
65
  ref={forwardedRef}
63
66
  >
64
67
  {children}
65
- </Root>
68
+ </Comp>
66
69
  );
67
70
  },
68
71
  );
@@ -73,13 +76,7 @@ const MockListItemOpenTrigger = ({
73
76
  }: ThemedClassName<Omit<ComponentPropsWithoutRef<'div'>, 'children'>>) => {
74
77
  const density = useDensityContext();
75
78
  const { tx } = useThemeContext();
76
- return (
77
- <div
78
- role='none'
79
- {...props}
80
- className={tx('list.item.openTrigger', 'list__listItem__openTrigger--mock', { density }, classNames)}
81
- />
82
- );
79
+ return <div role='none' {...props} className={tx('list.item.openTrigger', { density }, classNames)} />;
83
80
  };
84
81
 
85
82
  type ListItemHeadingProps = ThemedClassName<ListPrimitiveItemHeadingProps>;
@@ -91,10 +88,10 @@ const ListItemHeading = forwardRef<HTMLParagraphElement, ListItemHeadingProps>(
91
88
  return (
92
89
  <ListPrimitiveItemHeading
93
90
  {...props}
94
- className={tx('list.item.heading', 'list__listItem__heading', { density }, classNames)}
91
+ className={tx('list.item.heading', { density }, classNames)}
95
92
  ref={forwardedRef}
96
93
  >
97
- {children}
94
+ <span>{children}</span>
98
95
  </ListPrimitiveItemHeading>
99
96
  );
100
97
  },
@@ -110,14 +107,14 @@ const ListItemOpenTrigger = forwardRef<HTMLButtonElement, ListItemOpenTriggerPro
110
107
  return (
111
108
  <ListPrimitiveItemOpenTrigger
112
109
  {...props}
113
- className={tx('list.item.openTrigger', 'list__listItem__openTrigger', { density }, classNames)}
110
+ className={tx('list.item.openTrigger', { density }, classNames)}
114
111
  ref={forwardedRef}
115
112
  >
116
113
  {children || (
117
114
  <Icon
118
115
  size={3}
119
116
  icon={open ? 'ph--caret-down--bold' : 'ph--caret-right--bold'}
120
- classNames={tx('list.item.openTriggerIcon', 'list__listItem__openTrigger__icon', {})}
117
+ classNames={tx('list.item.openTriggerIcon', {})}
121
118
  />
122
119
  )}
123
120
  </ListPrimitiveItemOpenTrigger>
@@ -134,7 +131,7 @@ const ListItemRoot = forwardRef<HTMLLIElement, ListItemRootProps>(
134
131
  return (
135
132
  <ListPrimitiveItem
136
133
  {...props}
137
- className={tx('list.item.root', 'list__listItem', { density, collapsible: props.collapsible }, classNames)}
134
+ className={tx('list.item.root', { density, collapsible: props.collapsible }, classNames)}
138
135
  ref={forwardedRef}
139
136
  >
140
137
  {children}
@@ -16,16 +16,16 @@ const edgeToOrientationMap: Record<Edge, Orientation> = {
16
16
 
17
17
  const orientationStyles: Record<Orientation, HTMLAttributes<HTMLElement>['className']> = {
18
18
  horizontal:
19
- 'h-[--line-thickness] left-[calc(var(--line-inset)+var(--terminal-radius))] right-[--line-inset] before:left-[--terminal-inset]',
19
+ 'h-(--line-thickness) left-[calc(var(--line-inset)+var(--terminal-radius))] right-(--line-inset) before:left-(--terminal-inset)',
20
20
  vertical:
21
- 'is-[--line-thickness] top-[calc(var(--line-inset)+var(--terminal-radius))] bottom-[--line-inset] before:top-[--terminal-inset]',
21
+ 'w-(--line-thickness) top-[calc(var(--line-inset)+var(--terminal-radius))] bottom-(--line-inset) before:top-(--terminal-inset)',
22
22
  };
23
23
 
24
24
  const edgeStyles: Record<Edge, HTMLAttributes<HTMLElement>['className']> = {
25
- top: 'top-[--line-offset] before:top-[--offset-terminal]',
26
- right: 'right-[--line-offset] before:right-[--offset-terminal]',
27
- bottom: 'bottom-[--line-offset] before:bottom-[--offset-terminal]',
28
- left: 'left-[--line-offset] before:left-[--offset-terminal]',
25
+ top: 'top-(--line-offset) before:top-(--offset-terminal)',
26
+ right: 'right-(--line-offset) before:right-(--offset-terminal)',
27
+ bottom: 'bottom-(--line-offset) before:bottom-(--offset-terminal)',
28
+ left: 'left-(--line-offset) before:left-(--offset-terminal)',
29
29
  };
30
30
 
31
31
  const strokeSize = 2;
@@ -64,7 +64,7 @@ export const ListDropIndicator = ({
64
64
  '--offset-terminal': `${offsetToAlignTerminalWithLine}px`,
65
65
  } as CSSProperties
66
66
  }
67
- className={`absolute z-10 pointer-events-none bg-accentSurface before:content-[''] before:w-[--terminal-size] before:h-[--terminal-size] box-border before:absolute before:border-[length:--line-thickness] before:border-solid before:border-accentSurface before:rounded-full ${orientationStyles[orientation]} ${edgeStyles[edge]}`}
67
+ className={`absolute z-10 pointer-events-none bg-accent-surface before:content-[''] before:w-(--terminal-size) before:h-(--terminal-size) box-border before:absolute before:border-[length:--line-thickness] before:border-solid before:border-accent-surface before:rounded-full ${orientationStyles[orientation]} ${edgeStyles[edge]}`}
68
68
  />
69
69
  );
70
70
  };
@@ -25,7 +25,7 @@ const createKey = (key: string, prefix?: string) => (prefix === undefined ? key
25
25
  const StorybookTreeItem = ({ data, prefix }: StorybookTreeItemProps) => {
26
26
  const keys = Array.isArray(data) ? Array.from(data.keys()) : Object.keys(data);
27
27
  return (
28
- <Tree.Root density='fine'>
28
+ <Tree.Root>
29
29
  {keys.map((key) => {
30
30
  const id = createKey(String(key), prefix);
31
31
  const value = data[key as keyof typeof data];
@@ -35,10 +35,10 @@ const StorybookTreeItem = ({ data, prefix }: StorybookTreeItemProps) => {
35
35
  <TreeItem.Root key={id} id={id} collapsible={!valueIsScalar} defaultOpen>
36
36
  <div role='none' className='grow flex'>
37
37
  {valueIsScalar ? <TreeItem.MockOpenTrigger /> : <TreeItem.OpenTrigger />}
38
- <TreeItem.Heading classNames='grow pbs-1'>{valueIsScalar ? String(value) : key}</TreeItem.Heading>
38
+ <TreeItem.Heading classNames='grow pt-1'>{valueIsScalar ? String(value) : key}</TreeItem.Heading>
39
39
  </div>
40
40
  {!valueIsScalar && (
41
- <TreeItem.Body className='pis-2'>
41
+ <TreeItem.Body className='ps-2'>
42
42
  <Tree.Branch>
43
43
  <StorybookTreeItem data={value} prefix={id} />
44
44
  </Tree.Branch>
@@ -56,10 +56,10 @@ const DefaultStory = ({ data }: StorybookTreeProps) => {
56
56
  };
57
57
 
58
58
  const meta = {
59
- title: 'ui/react-ui-core/Tree',
59
+ title: 'ui/react-ui-core/components/Tree',
60
60
  component: Tree as any,
61
61
  render: DefaultStory,
62
- decorators: [withTheme],
62
+ decorators: [withTheme()],
63
63
  } satisfies Meta<typeof DefaultStory>;
64
64
 
65
65
  export default meta;
@@ -21,14 +21,14 @@ const edgeToOrientationMap: Record<InstructionType, Orientation> = {
21
21
  const orientationStyles: Record<Orientation, HTMLAttributes<HTMLElement>['className']> = {
22
22
  // TODO(wittjosiah): Stop using left/right here.
23
23
  sibling:
24
- 'bs-[--line-thickness] left-[--horizontal-indent] right-0 bg-accentSurface before:left-[--negative-terminal-size]',
25
- child: 'is-full block-start-0 block-end-0 border-[length:--line-thickness] before:invisible',
24
+ 'h-(--line-thickness) left-(--horizontal-indent) right-0 bg-accent-surface before:left-(--negative-terminal-size)',
25
+ child: 'inset-0 border-[length:var(--line-thickness)] before:invisible',
26
26
  };
27
27
 
28
28
  const instructionStyles: Record<InstructionType, HTMLAttributes<HTMLElement>['className']> = {
29
- 'reorder-above': 'block-start-[--line-offset] before:block-start-[--offset-terminal]',
30
- 'reorder-below': 'block-end-[--line-offset] before:block-end-[--offset-terminal]',
31
- 'make-child': 'border-accentSurface',
29
+ 'reorder-above': 'top-(--line-offset) before:top-(--offset-terminal)',
30
+ 'reorder-below': 'bottom-(--line-offset) before:bottom-(--offset-terminal)',
31
+ 'make-child': 'border-accent-surface',
32
32
  // TODO(wittjosiah): This is not occurring in the current implementation.
33
33
  reparent: '',
34
34
  };
@@ -64,7 +64,7 @@ export const TreeDropIndicator = ({ instruction, gap = 0 }: DropIndicatorProps)
64
64
  '--horizontal-indent': `${desiredInstruction.currentLevel * desiredInstruction.indentPerLevel + 4}px`,
65
65
  } as CSSProperties
66
66
  }
67
- className={`absolute z-10 pointer-events-none before:is-[--terminal-size] before:bs-[--terminal-size] box-border before:absolute before:border-[length:--line-thickness] before:border-solid before:border-accentSurface before:rounded-full ${orientationStyles[orientation]} ${instructionStyles[desiredInstruction.type]}`}
67
+ className={`absolute z-10 pointer-events-none before:w-(--terminal-size) before:h-(--terminal-size) box-border before:absolute before:border-[length:--line-thickness] before:border-solid before:border-accent-surface before:rounded-full ${orientationStyles[orientation]} ${instructionStyles[desiredInstruction.type]}`}
68
68
  ></div>
69
69
  );
70
70
  };
@@ -10,7 +10,7 @@ import { faker } from '@dxos/random';
10
10
  import { withTheme } from '../../testing';
11
11
  import { Icon } from '../Icon';
12
12
 
13
- import { Treegrid } from './Treegrid';
13
+ import { Treegrid, TREEGRID_PARENT_OF_SEPARATOR, TREEGRID_PATH_SEPARATOR } from './Treegrid';
14
14
 
15
15
  faker.seed(1234);
16
16
 
@@ -129,11 +129,11 @@ const DefaultStory = () => {
129
129
  return (
130
130
  <Treegrid.Row
131
131
  key={node.id}
132
- id={path.join(Treegrid.PATH_SEPARATOR)}
133
- {...(parentOf && { parentOf: parentOf.join(Treegrid.PARENT_OF_SEPARATOR) })}
132
+ id={path.join(TREEGRID_PATH_SEPARATOR)}
133
+ {...(parentOf && { parentOf: parentOf.join(TREEGRID_PARENT_OF_SEPARATOR) })}
134
134
  >
135
135
  <Treegrid.Cell indent classNames='flex items-center'>
136
- {node.icon && <Icon icon={node.icon} classNames='is-[1em] bs-[1em] mlb-1' />}
136
+ {node.icon && <Icon icon={node.icon} classNames='w-[1em] h-[1em] my-1' />}
137
137
  {node.title}
138
138
  </Treegrid.Cell>
139
139
  </Treegrid.Row>
@@ -144,10 +144,10 @@ const DefaultStory = () => {
144
144
  };
145
145
 
146
146
  const meta = {
147
- title: 'ui/react-ui-core/Treegrid',
147
+ title: 'ui/react-ui-core/components/Treegrid',
148
148
  component: Treegrid.Root as any,
149
149
  render: DefaultStory,
150
- decorators: [withTheme],
150
+ decorators: [withTheme()],
151
151
  } satisfies Meta<typeof DefaultStory>;
152
152
 
153
153
  export default meta;
@@ -15,10 +15,12 @@ import React, {
15
15
  useCallback,
16
16
  } from 'react';
17
17
 
18
+ import { composable, composableProps } from '@dxos/ui-theme';
19
+
18
20
  import { useThemeContext } from '../../hooks';
19
21
  import { type ThemedClassName } from '../../util';
20
22
 
21
- // TODO(thure): A lot of the accessible affordances for this kind of thing need to be implemented per https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/treegrid_role
23
+ // TODO(thure): https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/treegrid_role
22
24
 
23
25
  const TREEGRID_ROW_NAME = 'TreegridRow';
24
26
 
@@ -34,18 +36,20 @@ type TreegridRowContextValue = {
34
36
  const [TreegridRowProvider, useTreegridRowContext] =
35
37
  createTreegridRowContext<TreegridRowContextValue>(TREEGRID_ROW_NAME);
36
38
 
37
- const PATH_SEPARATOR = '~';
38
- const PARENT_OF_SEPARATOR = ' ';
39
+ // TODO(burdon): Replace with functions.
40
+ export const TREEGRID_PATH_SEPARATOR = '~';
41
+ export const TREEGRID_PARENT_OF_SEPARATOR = ' ';
39
42
 
40
43
  type TreegridRootProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {
41
44
  gridTemplateColumns: CSSProperties['gridTemplateColumns'];
42
45
  asChild?: boolean;
43
46
  };
44
47
 
45
- const TreegridRoot = forwardRef<HTMLDivElement, TreegridRootProps>(
46
- ({ asChild, classNames, children, style, gridTemplateColumns, ...props }, forwardedRef) => {
48
+ const TreegridRoot = composable<HTMLDivElement, TreegridRootProps>(
49
+ ({ asChild, classNames, children, style, gridTemplateColumns, onKeyDown: onKeyDownProp, ...props }, forwardedRef) => {
47
50
  const { tx } = useThemeContext();
48
- const Root = asChild ? Slot : Primitive.div;
51
+ const { className, role: _role, ...rest } = composableProps<HTMLDivElement>(props, { classNames });
52
+ const Comp = asChild ? Slot : Primitive.div;
49
53
  const { findFirstFocusable } = useFocusFinders();
50
54
 
51
55
  const handleKeyDown = useCallback(
@@ -89,22 +93,22 @@ const TreegridRoot = forwardRef<HTMLDivElement, TreegridRootProps>(
89
93
  break;
90
94
  }
91
95
  }
92
- props.onKeyDown?.(event);
96
+ onKeyDownProp?.(event);
93
97
  },
94
- [findFirstFocusable],
98
+ [findFirstFocusable, onKeyDownProp],
95
99
  );
96
100
 
97
101
  return (
98
- <Root
102
+ <Comp
99
103
  role='treegrid'
100
- onKeyDown={handleKeyDown}
101
- {...props}
102
- className={tx('treegrid.root', 'treegrid', {}, classNames)}
104
+ {...rest}
105
+ className={tx('treegrid.root', {}, className)}
103
106
  style={{ ...style, gridTemplateColumns }}
107
+ onKeyDown={handleKeyDown}
104
108
  ref={forwardedRef}
105
109
  >
106
110
  {children}
107
- </Root>
111
+ </Comp>
108
112
  );
109
113
  },
110
114
  );
@@ -135,8 +139,8 @@ const TreegridRow = forwardRef<HTMLDivElement, TreegridRowScopedProps<TreegridRo
135
139
  forwardedRef,
136
140
  ) => {
137
141
  const { tx } = useThemeContext();
138
- const Root = asChild ? Slot : Primitive.div;
139
- const pathParts = id.split(PATH_SEPARATOR);
142
+ const Comp = asChild ? Slot : Primitive.div;
143
+ const pathParts = id.split(TREEGRID_PATH_SEPARATOR);
140
144
  const level = pathParts.length - 1;
141
145
  const [open, onOpenChange] = useControllableState({
142
146
  prop: propsOpen,
@@ -146,17 +150,17 @@ const TreegridRow = forwardRef<HTMLDivElement, TreegridRowScopedProps<TreegridRo
146
150
 
147
151
  return (
148
152
  <TreegridRowProvider open={open} onOpenChange={onOpenChange} scope={__treegridRowScope}>
149
- <Root
153
+ <Comp
150
154
  role='row'
151
155
  aria-level={level}
152
- className={tx('treegrid.row', 'treegrid__row', { level }, classNames)}
156
+ className={tx('treegrid.row', { level }, classNames)}
153
157
  {...(parentOf && { 'aria-expanded': open, 'aria-owns': parentOf })}
154
158
  {...props}
155
159
  id={id}
156
160
  ref={forwardedRef}
157
161
  >
158
162
  {children}
159
- </Root>
163
+ </Comp>
160
164
  </TreegridRowProvider>
161
165
  );
162
166
  },
@@ -168,12 +172,7 @@ const TreegridCell = forwardRef<HTMLDivElement, TreegridCellProps>(
168
172
  ({ classNames, children, indent, ...props }, forwardedRef) => {
169
173
  const { tx } = useThemeContext();
170
174
  return (
171
- <div
172
- role='gridcell'
173
- className={tx('treegrid.cell', 'treegrid__cell', { indent }, classNames)}
174
- {...props}
175
- ref={forwardedRef}
176
- >
175
+ <div role='gridcell' className={tx('treegrid.cell', { indent }, classNames)} {...props} ref={forwardedRef}>
177
176
  {children}
178
177
  </div>
179
178
  );
@@ -186,8 +185,4 @@ export const Treegrid = {
186
185
  Root: TreegridRoot,
187
186
  Row: TreegridRow,
188
187
  Cell: TreegridCell,
189
- PARENT_OF_SEPARATOR,
190
- PATH_SEPARATOR,
191
- createTreegridRowScope,
192
- useTreegridRowContext,
193
188
  };
@@ -7,10 +7,9 @@ import React from 'react';
7
7
 
8
8
  import { withLayout, withTheme } from '../../testing';
9
9
  import { IconButton } from '../Button';
10
- import { Input } from '../Input';
11
10
  import { Toolbar } from '../Toolbar';
12
11
 
13
- import { Main, useDynamicDrawer, useSidebars } from './Main';
12
+ import { Main, useSidebars } from './Main';
14
13
 
15
14
  type StoryMainArgs = {};
16
15
 
@@ -38,29 +37,6 @@ const ComplementarySidebarToggle = ({ close }: { close?: boolean }) => {
38
37
  );
39
38
  };
40
39
 
41
- const DrawerToggle = ({ close }: { close?: boolean }) => {
42
- const { toggleDrawer } = useSidebars('StoryMain__DrawerToggle');
43
- return (
44
- <IconButton
45
- icon={close ? 'ph--caret-down--regular' : 'ph--caret-up--regular'}
46
- iconOnly
47
- label='Toggle drawer'
48
- onClick={toggleDrawer}
49
- />
50
- );
51
- };
52
-
53
- const DrawerState = () => {
54
- const { drawerState } = useSidebars('StoryMain__DrawerStateDisplay');
55
- return (
56
- <div className='flex items-center gap-2'>
57
- <span>Drawer</span>
58
- <span>({drawerState})</span>
59
- <span>[{window.innerHeight}]</span>
60
- </div>
61
- );
62
- };
63
-
64
40
  const DefaultStory = (_args: StoryMainArgs) => {
65
41
  return (
66
42
  <Main.Root defaultComplementarySidebarState='closed' defaultNavigationSidebarState='closed'>
@@ -68,11 +44,11 @@ const DefaultStory = (_args: StoryMainArgs) => {
68
44
  <Main.NavigationSidebar label='Navigation'>
69
45
  <Toolbar.Root>
70
46
  <h1>Navigation</h1>
71
- <Toolbar.Separator variant='gap' classNames='grow' />
47
+ <Toolbar.Separator />
72
48
  <NavigationSidebarToggle close />
73
49
  </Toolbar.Root>
74
50
  </Main.NavigationSidebar>
75
- <Main.Content classNames='is-full'>
51
+ <Main.Content classNames='w-full'>
76
52
  <Toolbar.Root>
77
53
  <NavigationSidebarToggle />
78
54
  <div className='flex items-center grow justify-center'>Main</div>
@@ -82,7 +58,7 @@ const DefaultStory = (_args: StoryMainArgs) => {
82
58
  <Main.ComplementarySidebar label='Complementary'>
83
59
  <Toolbar.Root>
84
60
  <ComplementarySidebarToggle close />
85
- <Toolbar.Separator variant='gap' classNames='grow' />
61
+ <Toolbar.Separator />
86
62
  <h1>Complementary</h1>
87
63
  </Toolbar.Root>
88
64
  </Main.ComplementarySidebar>
@@ -91,15 +67,12 @@ const DefaultStory = (_args: StoryMainArgs) => {
91
67
  };
92
68
 
93
69
  const meta = {
94
- title: 'ui/react-ui-core/Main',
70
+ title: 'ui/react-ui-core/components/Main',
95
71
  component: Main.Root,
96
72
  render: DefaultStory,
97
- decorators: [withTheme, withLayout({ layout: 'fullscreen' })],
73
+ decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
98
74
  parameters: {
99
75
  layout: 'fullscreen',
100
- chromatic: {
101
- disableSnapshot: false,
102
- },
103
76
  },
104
77
  } satisfies Meta<typeof DefaultStory>;
105
78
 
@@ -110,65 +83,3 @@ type Story = StoryObj<typeof meta>;
110
83
  export const Default: Story = {
111
84
  args: {},
112
85
  };
113
-
114
- const DrawerStory = (_args: StoryMainArgs) => {
115
- return (
116
- <Main.Root>
117
- <Main.Overlay />
118
- <DrawerStoryInner />
119
- </Main.Root>
120
- );
121
- };
122
-
123
- const DrawerStoryInner = () => {
124
- useDynamicDrawer('DrawerStoryInner');
125
-
126
- return (
127
- <>
128
- <Main.Content classNames='flex flex-col is-full overflow-hidden'>
129
- <Toolbar.Root classNames='pli-2'>
130
- <h1>Main Content</h1>
131
- <Toolbar.Separator variant='gap' classNames='grow' />
132
- <DrawerToggle />
133
- </Toolbar.Root>
134
- <div className='flex flex-col bs-full overflow-y-auto p-2'>
135
- <p className='text-sm text-description'>
136
- The drawer is mutually exclusive with sidebars and is intended for mobile apps.
137
- </p>
138
- <div className='plb-2 space-y-2'>
139
- {Array.from({ length: 50 }).map((_, i) => (
140
- <p key={i}>Line {i + 1}</p>
141
- ))}
142
- </div>
143
- </div>
144
- </Main.Content>
145
- <Main.Drawer label='Drawer' classNames='grid grid-rows-[min-content_1fr_min-content]'>
146
- <Toolbar.Root classNames='pli-2'>
147
- <DrawerState />
148
- <Toolbar.Separator variant='gap' classNames='grow' />
149
- <DrawerToggle close />
150
- </Toolbar.Root>
151
- <div className='p-2 overflow-y-auto'>
152
- <p className='text-sm text-description'>
153
- On mobile devices, the drawer automatically switches to fullscreenwhen the keyboard appears.
154
- </p>
155
- <div className='plb-2 space-y-2'>
156
- {Array.from({ length: 50 }).map((_, i) => (
157
- <p key={i}>Line {i + 1}</p>
158
- ))}
159
- </div>
160
- </div>
161
- <div className='p-2 border-bs border-separator'>
162
- <Input.Root>
163
- <Input.TextInput autoFocus placeholder='Search' />
164
- </Input.Root>
165
- </div>
166
- </Main.Drawer>
167
- </>
168
- );
169
- };
170
-
171
- export const WithDrawer: Story = {
172
- render: DrawerStory,
173
- args: {},
174
- };