@dxos/react-ui 0.8.4-main.b97322e → 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 (474) hide show
  1. package/dist/lib/browser/chunk-LUPEFGHJ.mjs +776 -0
  2. package/dist/lib/browser/chunk-LUPEFGHJ.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +4170 -61
  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 +99 -60
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/chunk-EQOBFLZC.mjs +778 -0
  9. package/dist/lib/node-esm/chunk-EQOBFLZC.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +4170 -61
  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 +99 -60
  14. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  15. package/dist/types/src/components/Avatars/Avatar.d.ts +1 -1
  16. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
  17. package/dist/types/src/components/Avatars/Avatar.stories.d.ts +5 -31
  18. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  19. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +5 -11
  20. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
  21. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  22. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  23. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts +8 -20
  24. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  25. package/dist/types/src/components/{Buttons → Button}/Button.d.ts +4 -4
  26. package/dist/types/src/components/Button/Button.d.ts.map +1 -0
  27. package/dist/types/src/components/Button/Button.stories.d.ts +17 -0
  28. package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -0
  29. package/dist/types/src/components/{Buttons → Button}/IconButton.d.ts +4 -4
  30. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -0
  31. package/dist/types/src/components/Button/IconButton.stories.d.ts +16 -0
  32. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -0
  33. package/dist/types/src/components/{Buttons → Button}/Toggle.d.ts +2 -2
  34. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -0
  35. package/dist/types/src/components/Button/Toggle.stories.d.ts +16 -0
  36. package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -0
  37. package/dist/types/src/components/Button/ToggleGroup.d.ts +27 -0
  38. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -0
  39. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +27 -0
  40. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -0
  41. package/dist/types/src/components/Button/index.d.ts.map +1 -0
  42. package/dist/types/src/components/Card/Card.d.ts +150 -0
  43. package/dist/types/src/components/Card/Card.d.ts.map +1 -0
  44. package/dist/types/src/components/Card/Card.stories.d.ts +21 -0
  45. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
  46. package/dist/types/src/components/Card/index.d.ts +2 -0
  47. package/dist/types/src/components/Card/index.d.ts.map +1 -0
  48. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
  49. package/dist/types/src/components/Clipboard/CopyButton.d.ts +1 -1
  50. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  51. package/dist/types/src/components/Clipboard/index.d.ts +10 -1
  52. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  53. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts +1 -1
  54. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  55. package/dist/types/src/components/Dialog/AlertDialog.d.ts +53 -0
  56. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -0
  57. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts +11 -0
  58. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -0
  59. package/dist/types/src/components/Dialog/Dialog.d.ts +66 -0
  60. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -0
  61. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +25 -0
  62. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -0
  63. package/dist/types/src/components/Dialog/index.d.ts.map +1 -0
  64. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts +1 -1
  65. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  66. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
  67. package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  68. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
  69. package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
  70. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +8 -0
  71. package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
  72. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
  73. package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
  74. package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
  75. package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
  76. package/dist/types/src/components/Focus/Focus.d.ts +44 -0
  77. package/dist/types/src/components/Focus/Focus.d.ts.map +1 -0
  78. package/dist/types/src/components/Focus/Focus.stories.d.ts +9 -0
  79. package/dist/types/src/components/Focus/Focus.stories.d.ts.map +1 -0
  80. package/dist/types/src/components/Focus/index.d.ts +2 -0
  81. package/dist/types/src/components/Focus/index.d.ts.map +1 -0
  82. package/dist/types/src/components/Icon/Icon.d.ts +5 -2
  83. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  84. package/dist/types/src/components/Icon/Icon.stories.d.ts +25 -0
  85. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -0
  86. package/dist/types/src/components/Image/Image.d.ts +14 -0
  87. package/dist/types/src/components/Image/Image.d.ts.map +1 -0
  88. package/dist/types/src/components/Image/Image.stories.d.ts +33 -0
  89. package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
  90. package/dist/types/src/components/Image/index.d.ts +2 -0
  91. package/dist/types/src/components/Image/index.d.ts.map +1 -0
  92. package/dist/types/src/components/Input/Input.d.ts +8 -10
  93. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  94. package/dist/types/src/components/Input/Input.stories.d.ts +17 -18
  95. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  96. package/dist/types/src/components/Link/Link.stories.d.ts +8 -8
  97. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  98. package/dist/types/src/components/{Lists → List}/List.d.ts +12 -6
  99. package/dist/types/src/components/List/List.d.ts.map +1 -0
  100. package/dist/types/src/components/List/List.stories.d.ts +20 -0
  101. package/dist/types/src/components/List/List.stories.d.ts.map +1 -0
  102. package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -0
  103. package/dist/types/src/components/{Lists → List}/Tree.d.ts +1 -1
  104. package/dist/types/src/components/List/Tree.d.ts.map +1 -0
  105. package/dist/types/src/components/List/Tree.stories.d.ts +15 -0
  106. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -0
  107. package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -0
  108. package/dist/types/src/components/{Lists → List}/Treegrid.d.ts +10 -10
  109. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -0
  110. package/dist/types/src/components/List/Treegrid.stories.d.ts +12 -0
  111. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -0
  112. package/dist/types/src/components/List/index.d.ts.map +1 -0
  113. package/dist/types/src/components/Main/Main.d.ts +18 -28
  114. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  115. package/dist/types/src/components/Main/Main.stories.d.ts +6 -10
  116. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  117. package/dist/types/src/components/{Menus → Menu}/ContextMenu.d.ts +6 -6
  118. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -0
  119. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts +12 -0
  120. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -0
  121. package/dist/types/src/components/Menu/DropdownMenu.d.ts +113 -0
  122. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -0
  123. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +28 -0
  124. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -0
  125. package/dist/types/src/components/Menu/index.d.ts.map +1 -0
  126. package/dist/types/src/components/Message/Message.d.ts +1 -1
  127. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  128. package/dist/types/src/components/Message/Message.stories.d.ts +12 -22
  129. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  130. package/dist/types/src/components/Popover/Popover.d.ts +34 -25
  131. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  132. package/dist/types/src/components/Popover/Popover.stories.d.ts +6 -34
  133. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  134. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +32 -24
  135. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  136. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +55 -24
  137. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  138. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +72 -0
  139. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -0
  140. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +23 -0
  141. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -0
  142. package/dist/types/src/components/ScrollContainer/index.d.ts +2 -0
  143. package/dist/types/src/components/ScrollContainer/index.d.ts.map +1 -0
  144. package/dist/types/src/components/Select/Select.d.ts +10 -10
  145. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  146. package/dist/types/src/components/Select/Select.stories.d.ts +6 -11
  147. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  148. package/dist/types/src/components/Separator/Separator.d.ts +4 -4
  149. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
  150. package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
  151. package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
  152. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
  153. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
  154. package/dist/types/src/components/Skeleton/index.d.ts +2 -0
  155. package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
  156. package/dist/types/src/components/Splitter/Splitter.d.ts +37 -0
  157. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
  158. package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
  159. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
  160. package/dist/types/src/components/Splitter/index.d.ts +2 -0
  161. package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
  162. package/dist/types/src/components/Status/Status.d.ts +3 -4
  163. package/dist/types/src/components/Status/Status.d.ts.map +1 -1
  164. package/dist/types/src/components/Status/Status.stories.d.ts +6 -10
  165. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  166. package/dist/types/src/components/Tag/Tag.d.ts +1 -1
  167. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  168. package/dist/types/src/components/Tag/Tag.stories.d.ts +8 -13
  169. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  170. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +4 -4
  171. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  172. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts +12 -0
  173. package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
  174. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +1 -8
  175. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  176. package/dist/types/src/components/ThemeProvider/index.d.ts +2 -1
  177. package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -1
  178. package/dist/types/src/components/Toast/Toast.d.ts +19 -19
  179. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  180. package/dist/types/src/components/Toast/Toast.stories.d.ts +6 -44
  181. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  182. package/dist/types/src/components/Toolbar/Toolbar.d.ts +46 -20
  183. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  184. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +6 -50
  185. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  186. package/dist/types/src/components/Tooltip/Tooltip.d.ts +10 -12
  187. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  188. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +10 -63
  189. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  190. package/dist/types/src/components/index.d.ts +14 -8
  191. package/dist/types/src/components/index.d.ts.map +1 -1
  192. package/dist/types/src/exemplars/generics.stories.d.ts +23 -0
  193. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
  194. package/dist/types/src/exemplars/slot.stories.d.ts +15 -0
  195. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -0
  196. package/dist/types/src/exemplars/tabster.stories.d.ts +8 -0
  197. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -0
  198. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  199. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  200. package/dist/types/src/hooks/index.d.ts +1 -0
  201. package/dist/types/src/hooks/index.d.ts.map +1 -1
  202. package/dist/types/src/hooks/useDensityContext.d.ts +2 -2
  203. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  204. package/dist/types/src/hooks/useElevationContext.d.ts +1 -1
  205. package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
  206. package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
  207. package/dist/types/src/hooks/useVisualViewport.d.ts +2 -2
  208. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
  209. package/dist/types/src/index.d.ts +2 -1
  210. package/dist/types/src/index.d.ts.map +1 -1
  211. package/dist/types/src/playground/Controls.stories.d.ts +5 -9
  212. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  213. package/dist/types/src/playground/Custom.stories.d.ts +12 -4
  214. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  215. package/dist/types/src/playground/Typography.stories.d.ts +5 -11
  216. package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
  217. package/dist/types/src/primitives/Column/Column.d.ts +51 -0
  218. package/dist/types/src/primitives/Column/Column.d.ts.map +1 -0
  219. package/dist/types/src/primitives/Column/Column.stories.d.ts +25 -0
  220. package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -0
  221. package/dist/types/src/primitives/Column/index.d.ts +2 -0
  222. package/dist/types/src/primitives/Column/index.d.ts.map +1 -0
  223. package/dist/types/src/primitives/Container/Container.d.ts +11 -0
  224. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
  225. package/dist/types/src/primitives/Container/Container.stories.d.ts +6 -0
  226. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
  227. package/dist/types/src/primitives/Container/index.d.ts +2 -0
  228. package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
  229. package/dist/types/src/primitives/Flex/Flex.d.ts +15 -0
  230. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
  231. package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
  232. package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
  233. package/dist/types/src/primitives/Flex/index.d.ts +2 -0
  234. package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
  235. package/dist/types/src/primitives/Grid/Grid.d.ts +14 -0
  236. package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
  237. package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
  238. package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
  239. package/dist/types/src/primitives/Grid/index.d.ts +2 -0
  240. package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
  241. package/dist/types/src/primitives/Panel/Panel.d.ts +46 -0
  242. package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -0
  243. package/dist/types/src/primitives/Panel/Panel.stories.d.ts +6 -0
  244. package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -0
  245. package/dist/types/src/primitives/Panel/index.d.ts +2 -0
  246. package/dist/types/src/primitives/Panel/index.d.ts.map +1 -0
  247. package/dist/types/src/primitives/index.d.ts +6 -0
  248. package/dist/types/src/primitives/index.d.ts.map +1 -0
  249. package/dist/types/src/testing/Loading.d.ts +9 -0
  250. package/dist/types/src/testing/Loading.d.ts.map +1 -0
  251. package/dist/types/src/testing/decorators/index.d.ts +2 -1
  252. package/dist/types/src/testing/decorators/index.d.ts.map +1 -1
  253. package/dist/types/src/testing/decorators/withLayout.d.ts +15 -0
  254. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -0
  255. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts +12 -0
  256. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -0
  257. package/dist/types/src/testing/decorators/withTheme.d.ts +5 -1
  258. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  259. package/dist/types/src/testing/index.d.ts +1 -0
  260. package/dist/types/src/testing/index.d.ts.map +1 -1
  261. package/dist/types/src/translations.d.ts +11 -0
  262. package/dist/types/src/translations.d.ts.map +1 -0
  263. package/dist/types/src/util/index.d.ts +2 -1
  264. package/dist/types/src/util/index.d.ts.map +1 -1
  265. package/dist/types/src/util/usePx.d.ts +8 -0
  266. package/dist/types/src/util/usePx.d.ts.map +1 -0
  267. package/dist/types/tsconfig.tsbuildinfo +1 -1
  268. package/package.json +45 -32
  269. package/src/components/Avatars/Avatar.stories.tsx +24 -16
  270. package/src/components/Avatars/Avatar.tsx +9 -16
  271. package/src/components/Avatars/AvatarGroup.stories.tsx +12 -8
  272. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +20 -15
  273. package/src/components/Breadcrumb/Breadcrumb.tsx +12 -38
  274. package/src/components/{Buttons → Button}/Button.stories.tsx +10 -11
  275. package/src/components/{Buttons → Button}/Button.tsx +12 -26
  276. package/src/components/{Buttons → Button}/IconButton.stories.tsx +19 -13
  277. package/src/components/{Buttons → Button}/IconButton.tsx +22 -16
  278. package/src/components/Button/Toggle.stories.tsx +37 -0
  279. package/src/components/{Buttons → Button}/Toggle.tsx +4 -4
  280. package/src/components/{Buttons → Button}/ToggleGroup.stories.tsx +12 -9
  281. package/src/components/Button/ToggleGroup.tsx +50 -0
  282. package/src/components/Card/Card.stories.tsx +151 -0
  283. package/src/components/Card/Card.tsx +492 -0
  284. package/src/components/Card/index.ts +5 -0
  285. package/src/components/Clipboard/ClipboardProvider.tsx +1 -1
  286. package/src/components/Clipboard/CopyButton.tsx +10 -9
  287. package/src/components/DensityProvider/DensityProvider.tsx +2 -2
  288. package/src/components/Dialog/AlertDialog.stories.tsx +69 -0
  289. package/src/components/Dialog/AlertDialog.tsx +214 -0
  290. package/src/components/Dialog/Dialog.stories.tsx +178 -0
  291. package/src/components/Dialog/Dialog.tsx +285 -0
  292. package/src/components/ElevationProvider/ElevationProvider.tsx +2 -2
  293. package/src/components/ErrorFallback/ErrorFallback.stories.tsx +50 -0
  294. package/src/components/ErrorFallback/ErrorFallback.tsx +70 -0
  295. package/src/components/ErrorFallback/ErrorStack.tsx +80 -0
  296. package/src/components/ErrorFallback/ThrowError.tsx +37 -0
  297. package/src/components/ErrorFallback/index.ts +9 -0
  298. package/src/components/Focus/AUDIT.md +43 -0
  299. package/src/components/Focus/Focus.stories.tsx +230 -0
  300. package/src/components/Focus/Focus.tsx +201 -0
  301. package/src/components/Focus/index.ts +5 -0
  302. package/src/components/Icon/Icon.stories.tsx +144 -0
  303. package/src/components/Icon/Icon.tsx +6 -2
  304. package/src/components/Image/Image.stories.tsx +86 -0
  305. package/src/components/Image/Image.tsx +223 -0
  306. package/src/components/Image/index.ts +5 -0
  307. package/src/components/Input/Input.stories.tsx +28 -49
  308. package/src/components/Input/Input.tsx +49 -85
  309. package/src/components/Link/Link.stories.tsx +12 -8
  310. package/src/components/Link/Link.tsx +2 -2
  311. package/src/components/{Lists → List}/List.stories.tsx +44 -45
  312. package/src/components/{Lists → List}/List.tsx +32 -31
  313. package/src/components/{Lists → List}/ListDropIndicator.tsx +7 -7
  314. package/src/components/{Lists → List}/Tree.stories.tsx +16 -13
  315. package/src/components/{Lists → List}/Tree.tsx +4 -3
  316. package/src/components/{Lists → List}/TreeDropIndicator.tsx +7 -7
  317. package/src/components/{Lists → List}/Treegrid.stories.tsx +17 -11
  318. package/src/components/List/Treegrid.tsx +188 -0
  319. package/src/components/Main/Main.stories.tsx +53 -27
  320. package/src/components/Main/Main.tsx +177 -105
  321. package/src/components/{Menus → Menu}/ContextMenu.stories.tsx +13 -10
  322. package/src/components/{Menus → Menu}/ContextMenu.tsx +10 -33
  323. package/src/components/{Menus → Menu}/DropdownMenu.stories.tsx +14 -11
  324. package/src/components/{Menus → Menu}/DropdownMenu.tsx +157 -120
  325. package/src/components/Message/Message.stories.tsx +37 -18
  326. package/src/components/Message/Message.tsx +43 -34
  327. package/src/components/Popover/Popover.stories.tsx +16 -13
  328. package/src/components/Popover/Popover.tsx +124 -102
  329. package/src/components/ScrollArea/ScrollArea.stories.tsx +224 -31
  330. package/src/components/ScrollArea/ScrollArea.tsx +97 -79
  331. package/src/components/ScrollArea/index.ts +1 -1
  332. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +92 -0
  333. package/src/components/ScrollContainer/ScrollContainer.tsx +347 -0
  334. package/src/components/ScrollContainer/index.ts +5 -0
  335. package/src/components/Select/Select.stories.tsx +17 -14
  336. package/src/components/Select/Select.tsx +16 -31
  337. package/src/components/Separator/Separator.tsx +5 -8
  338. package/src/components/Skeleton/Skeleton.stories.tsx +52 -0
  339. package/src/components/Skeleton/Skeleton.tsx +26 -0
  340. package/src/components/Skeleton/index.ts +5 -0
  341. package/src/components/Splitter/Splitter.stories.tsx +83 -0
  342. package/src/components/Splitter/Splitter.tsx +139 -0
  343. package/src/components/Splitter/index.ts +5 -0
  344. package/src/components/Status/Status.stories.tsx +30 -23
  345. package/src/components/Status/Status.tsx +10 -7
  346. package/src/components/Tag/Tag.stories.tsx +17 -13
  347. package/src/components/Tag/Tag.tsx +3 -8
  348. package/src/components/ThemeProvider/ThemeProvider.stories.tsx +32 -0
  349. package/src/components/ThemeProvider/ThemeProvider.tsx +12 -10
  350. package/src/components/ThemeProvider/TranslationsProvider.tsx +3 -18
  351. package/src/components/ThemeProvider/index.ts +3 -3
  352. package/src/components/Toast/Toast.stories.tsx +14 -11
  353. package/src/components/Toast/Toast.tsx +23 -42
  354. package/src/components/Toolbar/Toolbar.stories.tsx +16 -14
  355. package/src/components/Toolbar/Toolbar.tsx +188 -13
  356. package/src/components/Tooltip/Tooltip.stories.tsx +32 -26
  357. package/src/components/Tooltip/Tooltip.tsx +44 -41
  358. package/src/components/index.ts +15 -9
  359. package/src/exemplars/generics.stories.tsx +41 -0
  360. package/src/exemplars/slot.stories.tsx +117 -0
  361. package/src/exemplars/tabster.stories.tsx +127 -0
  362. package/src/exemplars/virtualizer.stories.tsx +137 -0
  363. package/src/hooks/index.ts +1 -0
  364. package/src/hooks/useDensityContext.ts +3 -3
  365. package/src/hooks/useElevationContext.ts +1 -1
  366. package/src/hooks/useSafeArea.ts +3 -2
  367. package/src/hooks/useVisualViewport.ts +4 -4
  368. package/src/index.ts +2 -1
  369. package/src/playground/Controls.stories.tsx +12 -15
  370. package/src/playground/Custom.stories.tsx +17 -38
  371. package/src/playground/Typography.stories.tsx +11 -9
  372. package/src/primitives/Column/AUDIT.md +354 -0
  373. package/src/primitives/Column/Column.stories.tsx +183 -0
  374. package/src/primitives/Column/Column.tsx +169 -0
  375. package/src/primitives/Column/index.ts +5 -0
  376. package/src/primitives/Container/Container.stories.tsx +30 -0
  377. package/src/primitives/Container/Container.tsx +19 -0
  378. package/src/primitives/Container/index.ts +5 -0
  379. package/src/primitives/Flex/Flex.stories.tsx +58 -0
  380. package/src/primitives/Flex/Flex.tsx +27 -0
  381. package/src/primitives/Flex/index.ts +5 -0
  382. package/src/primitives/Grid/Grid.stories.tsx +57 -0
  383. package/src/primitives/Grid/Grid.tsx +30 -0
  384. package/src/primitives/Grid/index.ts +5 -0
  385. package/src/primitives/Panel/Panel.stories.tsx +69 -0
  386. package/src/primitives/Panel/Panel.tsx +114 -0
  387. package/src/primitives/Panel/index.ts +5 -0
  388. package/src/primitives/index.ts +9 -0
  389. package/src/testing/Loading.tsx +26 -0
  390. package/src/testing/decorators/index.ts +2 -1
  391. package/src/testing/decorators/withLayout.tsx +77 -0
  392. package/src/testing/decorators/withLayoutVariants.tsx +48 -0
  393. package/src/testing/decorators/withTheme.tsx +37 -0
  394. package/src/testing/index.ts +2 -0
  395. package/src/translations.ts +19 -0
  396. package/src/util/index.ts +3 -1
  397. package/src/util/usePx.ts +62 -0
  398. package/dist/lib/browser/chunk-2COVUP44.mjs +0 -4373
  399. package/dist/lib/browser/chunk-2COVUP44.mjs.map +0 -7
  400. package/dist/lib/node-esm/chunk-GHXHND5V.mjs +0 -4375
  401. package/dist/lib/node-esm/chunk-GHXHND5V.mjs.map +0 -7
  402. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -15
  403. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
  404. package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
  405. package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
  406. package/dist/types/src/components/Buttons/Button.d.ts.map +0 -1
  407. package/dist/types/src/components/Buttons/Button.stories.d.ts +0 -12
  408. package/dist/types/src/components/Buttons/Button.stories.d.ts.map +0 -1
  409. package/dist/types/src/components/Buttons/IconButton.d.ts.map +0 -1
  410. package/dist/types/src/components/Buttons/IconButton.stories.d.ts +0 -22
  411. package/dist/types/src/components/Buttons/IconButton.stories.d.ts.map +0 -1
  412. package/dist/types/src/components/Buttons/Toggle.d.ts.map +0 -1
  413. package/dist/types/src/components/Buttons/Toggle.stories.d.ts +0 -19
  414. package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +0 -1
  415. package/dist/types/src/components/Buttons/ToggleGroup.d.ts +0 -28
  416. package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +0 -1
  417. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +0 -39
  418. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +0 -1
  419. package/dist/types/src/components/Buttons/index.d.ts.map +0 -1
  420. package/dist/types/src/components/Dialogs/AlertDialog.d.ts +0 -31
  421. package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +0 -1
  422. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +0 -43
  423. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +0 -1
  424. package/dist/types/src/components/Dialogs/Dialog.d.ts +0 -31
  425. package/dist/types/src/components/Dialogs/Dialog.d.ts.map +0 -1
  426. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +0 -48
  427. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +0 -1
  428. package/dist/types/src/components/Dialogs/index.d.ts.map +0 -1
  429. package/dist/types/src/components/Lists/List.d.ts.map +0 -1
  430. package/dist/types/src/components/Lists/List.stories.d.ts +0 -37
  431. package/dist/types/src/components/Lists/List.stories.d.ts.map +0 -1
  432. package/dist/types/src/components/Lists/ListDropIndicator.d.ts.map +0 -1
  433. package/dist/types/src/components/Lists/Tree.d.ts.map +0 -1
  434. package/dist/types/src/components/Lists/Tree.stories.d.ts +0 -41
  435. package/dist/types/src/components/Lists/Tree.stories.d.ts.map +0 -1
  436. package/dist/types/src/components/Lists/TreeDropIndicator.d.ts.map +0 -1
  437. package/dist/types/src/components/Lists/Treegrid.d.ts.map +0 -1
  438. package/dist/types/src/components/Lists/Treegrid.stories.d.ts +0 -10
  439. package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +0 -1
  440. package/dist/types/src/components/Lists/index.d.ts.map +0 -1
  441. package/dist/types/src/components/Menus/ContextMenu.d.ts.map +0 -1
  442. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts +0 -50
  443. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +0 -1
  444. package/dist/types/src/components/Menus/DropdownMenu.d.ts +0 -112
  445. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +0 -1
  446. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts +0 -50
  447. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +0 -1
  448. package/dist/types/src/components/Menus/index.d.ts.map +0 -1
  449. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts +0 -12
  450. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts.map +0 -1
  451. package/dist/types/src/util/ThemedClassName.d.ts +0 -5
  452. package/dist/types/src/util/ThemedClassName.d.ts.map +0 -1
  453. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -59
  454. package/src/components/AnchoredOverflow/index.ts +0 -5
  455. package/src/components/Buttons/Toggle.stories.tsx +0 -33
  456. package/src/components/Buttons/ToggleGroup.tsx +0 -41
  457. package/src/components/Dialogs/AlertDialog.stories.tsx +0 -66
  458. package/src/components/Dialogs/AlertDialog.tsx +0 -172
  459. package/src/components/Dialogs/Dialog.stories.tsx +0 -65
  460. package/src/components/Dialogs/Dialog.tsx +0 -159
  461. package/src/components/Lists/Treegrid.tsx +0 -152
  462. package/src/testing/decorators/withSurfaceVariantsLayout.tsx +0 -51
  463. package/src/testing/decorators/withTheme.ts +0 -25
  464. package/src/util/ThemedClassName.ts +0 -7
  465. /package/dist/types/src/components/{Buttons → Button}/index.d.ts +0 -0
  466. /package/dist/types/src/components/{Dialogs → Dialog}/index.d.ts +0 -0
  467. /package/dist/types/src/components/{Lists → List}/ListDropIndicator.d.ts +0 -0
  468. /package/dist/types/src/components/{Lists → List}/TreeDropIndicator.d.ts +0 -0
  469. /package/dist/types/src/components/{Lists → List}/index.d.ts +0 -0
  470. /package/dist/types/src/components/{Menus → Menu}/index.d.ts +0 -0
  471. /package/src/components/{Buttons → Button}/index.ts +0 -0
  472. /package/src/components/{Dialogs → Dialog}/index.ts +0 -0
  473. /package/src/components/{Lists → List}/index.ts +0 -0
  474. /package/src/components/{Menus → Menu}/index.ts +0 -0
@@ -2,33 +2,29 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
7
5
  import { DndContext, type DragEndEvent, type DragStartEvent } from '@dnd-kit/core';
8
- import { arrayMove, SortableContext, useSortable, verticalListSortingStrategy } from '@dnd-kit/sortable';
6
+ import { SortableContext, arrayMove, useSortable, verticalListSortingStrategy } from '@dnd-kit/sortable';
9
7
  import { CSS } from '@dnd-kit/utilities';
10
8
  import { useArrowNavigationGroup } from '@fluentui/react-tabster';
11
- import React, { type ReactNode, useState } from 'react';
9
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
10
+ import React, { type ReactNode, useCallback, useState } from 'react';
12
11
 
13
- import {
14
- getSize,
15
- ghostHover,
16
- ghostSelected,
17
- ghostSelectedTrackingInterFromNormal,
18
- mx,
19
- surfaceShadow,
20
- } from '@dxos/react-ui-theme';
12
+ import { getSize, ghostHover, mx, surfaceShadow } from '@dxos/ui-theme';
21
13
 
22
- import { List, ListItem, type ListScopedProps } from './List';
23
14
  import { withTheme } from '../../testing';
24
15
  import { Icon } from '../Icon';
25
16
 
26
- export default {
27
- title: 'ui/react-ui-core/List',
17
+ import { List, ListItem, type ListScopedProps } from './List';
18
+
19
+ const meta = {
20
+ title: 'ui/react-ui-core/components/List',
28
21
  component: List,
29
- decorators: [withTheme],
30
- parameters: { chromatic: { disableSnapshot: false } },
31
- };
22
+ decorators: [withTheme()],
23
+ } satisfies Meta<typeof List>;
24
+
25
+ export default meta;
26
+
27
+ type Story = StoryObj<typeof meta>;
32
28
 
33
29
  const UniformListItem = ({ id, text }: { id: string; text: string }) => {
34
30
  const { attributes, listeners, setNodeRef, transform } = useSortable({ id });
@@ -41,17 +37,17 @@ const UniformListItem = ({ id, text }: { id: string; text: string }) => {
41
37
  style={{ transform: CSS.Transform.toString(transform) }}
42
38
  >
43
39
  <ListItem.Endcap>
44
- <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')} />
45
41
  </ListItem.Endcap>
46
- <ListItem.Heading classNames='grow pbs-2'>{text}</ListItem.Heading>
42
+ <ListItem.Heading classNames='grow pt-2'>{text}</ListItem.Heading>
47
43
  <ListItem.Endcap>
48
- <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')} />
49
45
  </ListItem.Endcap>
50
46
  </ListItem.Root>
51
47
  );
52
48
  };
53
49
 
54
- export const UniformSizeDraggable = {
50
+ export const UniformSizeDraggable: Story = {
55
51
  render: ({ ...args }) => {
56
52
  const [items, setItems] = useState(
57
53
  [...Array(12)].map((_, index) => ({
@@ -60,16 +56,20 @@ export const UniformSizeDraggable = {
60
56
  })),
61
57
  );
62
58
 
63
- const handleDragEnd = (event: DragEndEvent) => {
64
- const { active, over } = event;
65
- if (active.id !== over?.id) {
66
- setItems((items) => {
67
- const oldIndex = items.findIndex((item) => item.id === active.id);
68
- const newIndex = items.findIndex((item) => item.id === over?.id);
69
- return arrayMove(items, oldIndex, newIndex);
70
- });
71
- }
72
- };
59
+ const handleDragEnd = useCallback(
60
+ (event: DragEndEvent) => {
61
+ const { active, over } = event;
62
+ if (active.id !== over?.id) {
63
+ setItems((items) => {
64
+ const oldIndex = items.findIndex((item) => item.id === active.id);
65
+ const newIndex = items.findIndex((item) => item.id === over?.id);
66
+ return arrayMove(items, oldIndex, newIndex);
67
+ });
68
+ }
69
+ },
70
+ [items],
71
+ );
72
+
73
73
  return (
74
74
  <DndContext onDragEnd={handleDragEnd}>
75
75
  <SortableContext items={items.map(({ id }) => id)} strategy={verticalListSortingStrategy}>
@@ -103,19 +103,19 @@ const ManySizesDraggableListItem = ({
103
103
  style={{ transform: CSS.Translate.toString(transform) }}
104
104
  >
105
105
  <ListItem.Endcap>
106
- <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')} />
107
107
  </ListItem.Endcap>
108
- <ListItem.Heading classNames='grow pbs-2' asChild>
108
+ <ListItem.Heading classNames='grow pt-2' asChild>
109
109
  {text}
110
110
  </ListItem.Heading>
111
111
  <ListItem.Endcap>
112
- <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')} />
113
113
  </ListItem.Endcap>
114
114
  </ListItem.Root>
115
115
  );
116
116
  };
117
117
 
118
- export const ManySizesDraggable = {
118
+ export const ManySizesDraggable: Story = {
119
119
  render: ({ ...args }) => {
120
120
  const [items, setItems] = useState(
121
121
  [...Array(12)].map((_, index) => ({
@@ -123,9 +123,9 @@ export const ManySizesDraggable = {
123
123
  text: (
124
124
  <p
125
125
  className={mx(
126
- 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',
127
127
  surfaceShadow({ elevation: 'positioned' }),
128
- 'mbe-2 p-2 bg-white dark:bg-neutral-800 rounded',
128
+ 'mb-2 p-2 bg-white dark:bg-neutral-800 rounded-sm',
129
129
  )}
130
130
  >{`List item ${index + 1}`}</p>
131
131
  ),
@@ -163,7 +163,7 @@ export const ManySizesDraggable = {
163
163
  args: {},
164
164
  };
165
165
 
166
- export const Collapsible = {
166
+ export const Collapsible: Story = {
167
167
  render: ({ ...args }) => {
168
168
  const [items, _setItems] = useState(
169
169
  [...Array(12)].map((_, index) => ({
@@ -179,9 +179,9 @@ export const Collapsible = {
179
179
  <ListItem.Root key={id} id={id} collapsible={index !== 2} defaultOpen={index % 2 === 0}>
180
180
  <div role='none' className='grow flex'>
181
181
  {index !== 2 ? <ListItem.OpenTrigger /> : <ListItem.MockOpenTrigger />}
182
- <ListItem.Heading classNames='grow pbs-2'>{text}</ListItem.Heading>
182
+ <ListItem.Heading classNames='grow pt-2'>{text}</ListItem.Heading>
183
183
  <ListItem.Endcap>
184
- <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')} />
185
185
  </ListItem.Endcap>
186
186
  </div>
187
187
  {index !== 2 && <ListItem.CollapsibleContent>{body}</ListItem.CollapsibleContent>}
@@ -192,11 +192,10 @@ export const Collapsible = {
192
192
  },
193
193
  args: {
194
194
  variant: 'unordered',
195
- // toggleOpenLabel: 'Open/close storybook list item', // TODO(burdon): ???
196
195
  },
197
196
  };
198
197
 
199
- export const SelectableListbox = {
198
+ export const SelectableListbox: Story = {
200
199
  render: () => {
201
200
  const [selectedId, setSelectedId] = useState<string>();
202
201
  const arrowNavigationAttrs = useArrowNavigationGroup({ axis: 'vertical' });
@@ -223,11 +222,11 @@ export const SelectableListbox = {
223
222
  key={id}
224
223
  tabIndex={0}
225
224
  selected={selectedId === id}
226
- classNames={mx('items-center', ghostHover, ghostSelected, ghostSelectedTrackingInterFromNormal)}
225
+ classNames={mx(ghostHover, 'dx-selected')}
227
226
  onClick={() => setSelectedId(id)}
228
227
  onKeyUp={(event) => handleKeyUp(event, id)}
229
228
  >
230
- <ListItem.Heading classNames='grow'>Lorem ipsum dolor sit amet</ListItem.Heading>
229
+ <ListItem.Heading classNames='flex px-1 items-center grow truncate'>{text}</ListItem.Heading>
231
230
  </ListItem.Root>
232
231
  ))}
233
232
  </List>
@@ -2,44 +2,48 @@
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
- import React, { type ComponentPropsWithoutRef, type FC, forwardRef, type ForwardRefExoticComponent } from 'react';
7
+ import React, { type ComponentPropsWithoutRef, type FC, type ForwardRefExoticComponent, forwardRef } from 'react';
7
8
 
8
9
  import {
10
+ LIST_ITEM_NAME,
11
+ LIST_NAME,
12
+ ListItemCollapsibleContent,
13
+ type ListItemCollapsibleContentProps,
14
+ type ListItemScopedProps,
9
15
  List as ListPrimitive,
10
- type ListProps as ListPrimitiveProps,
11
- type ListScopedProps,
16
+ ListItem as ListPrimitiveItem,
12
17
  ListItemHeading as ListPrimitiveItemHeading,
13
18
  type ListItemHeadingProps as ListPrimitiveItemHeadingProps,
14
19
  ListItemOpenTrigger as ListPrimitiveItemOpenTrigger,
15
20
  type ListItemOpenTriggerProps as ListPrimitiveItemOpenTriggerProps,
16
- ListItemCollapsibleContent,
17
- type ListItemCollapsibleContentProps,
18
- ListItem as ListPrimitiveItem,
19
21
  type ListItemProps as ListPrimitiveItemProps,
20
- type ListItemScopedProps,
21
- LIST_NAME,
22
- LIST_ITEM_NAME,
22
+ type ListProps as ListPrimitiveProps,
23
+ type ListScopedProps,
23
24
  useListContext,
24
25
  useListItemContext,
25
26
  } from '@dxos/react-list';
26
- import { type Density } from '@dxos/react-ui-types';
27
+ import { composable, composableProps } from '@dxos/ui-theme';
28
+ import { type Density } from '@dxos/ui-types';
27
29
 
28
- import { ListDropIndicator } from './ListDropIndicator';
29
30
  import { useDensityContext, useThemeContext } from '../../hooks';
30
31
  import { type ThemedClassName } from '../../util';
31
32
  import { DensityProvider } from '../DensityProvider';
32
33
  import { Icon } from '../Icon';
33
34
 
34
- type ListProps = ThemedClassName<ListPrimitiveProps> & { density?: Density };
35
+ import { ListDropIndicator } from './ListDropIndicator';
36
+
37
+ type ListProps = ThemedClassName<ListPrimitiveProps & { density?: Density }>;
35
38
 
36
- const List = forwardRef<HTMLOListElement, ListProps>(({ classNames, children, ...props }, forwardedRef) => {
39
+ const List = composable<HTMLOListElement, ListProps>(({ children, ...props }, forwardedRef) => {
37
40
  const { tx } = useThemeContext();
38
41
  const density = useDensityContext(props.density);
42
+ const { className, ...rest } = composableProps(props);
39
43
 
40
44
  return (
41
45
  <DensityProvider density={density}>
42
- <ListPrimitive {...props} className={tx('list.root', 'list', {}, classNames)} ref={forwardedRef}>
46
+ <ListPrimitive {...rest} className={tx('list.root', {}, className)} ref={forwardedRef}>
43
47
  {children}
44
48
  </ListPrimitive>
45
49
  </DensityProvider>
@@ -50,18 +54,18 @@ type ListItemEndcapProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & {
50
54
 
51
55
  const ListItemEndcap = forwardRef<HTMLDivElement, ListItemEndcapProps>(
52
56
  ({ children, classNames, asChild, ...props }, forwardedRef) => {
53
- const Root = asChild ? Slot : 'div';
57
+ const Comp = asChild ? Slot : Primitive.div;
54
58
  const density = useDensityContext();
55
59
  const { tx } = useThemeContext();
56
60
  return (
57
- <Root
61
+ <Comp
58
62
  {...(!asChild && { role: 'none' })}
59
63
  {...props}
60
- className={tx('list.item.endcap', 'list__listItem__endcap', { density }, classNames)}
64
+ className={tx('list.item.endcap', { density }, classNames)}
61
65
  ref={forwardedRef}
62
66
  >
63
67
  {children}
64
- </Root>
68
+ </Comp>
65
69
  );
66
70
  },
67
71
  );
@@ -72,13 +76,7 @@ const MockListItemOpenTrigger = ({
72
76
  }: ThemedClassName<Omit<ComponentPropsWithoutRef<'div'>, 'children'>>) => {
73
77
  const density = useDensityContext();
74
78
  const { tx } = useThemeContext();
75
- return (
76
- <div
77
- role='none'
78
- {...props}
79
- className={tx('list.item.openTrigger', 'list__listItem__openTrigger--mock', { density }, classNames)}
80
- />
81
- );
79
+ return <div role='none' {...props} className={tx('list.item.openTrigger', { density }, classNames)} />;
82
80
  };
83
81
 
84
82
  type ListItemHeadingProps = ThemedClassName<ListPrimitiveItemHeadingProps>;
@@ -90,10 +88,10 @@ const ListItemHeading = forwardRef<HTMLParagraphElement, ListItemHeadingProps>(
90
88
  return (
91
89
  <ListPrimitiveItemHeading
92
90
  {...props}
93
- className={tx('list.item.heading', 'list__listItem__heading', { density }, classNames)}
91
+ className={tx('list.item.heading', { density }, classNames)}
94
92
  ref={forwardedRef}
95
93
  >
96
- {children}
94
+ <span>{children}</span>
97
95
  </ListPrimitiveItemHeading>
98
96
  );
99
97
  },
@@ -106,15 +104,18 @@ const ListItemOpenTrigger = forwardRef<HTMLButtonElement, ListItemOpenTriggerPro
106
104
  const { tx } = useThemeContext();
107
105
  const density = useDensityContext();
108
106
  const { open } = useListItemContext(LIST_ITEM_NAME, __listItemScope);
109
- const iconName = open ? 'ph--caret-down--bold' : 'ph--caret-right--bold';
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
- <Icon icon={iconName} classNames={tx('list.item.openTriggerIcon', 'list__listItem__openTrigger__icon', {})} />
114
+ <Icon
115
+ size={3}
116
+ icon={open ? 'ph--caret-down--bold' : 'ph--caret-right--bold'}
117
+ classNames={tx('list.item.openTriggerIcon', {})}
118
+ />
118
119
  )}
119
120
  </ListPrimitiveItemOpenTrigger>
120
121
  );
@@ -130,7 +131,7 @@ const ListItemRoot = forwardRef<HTMLLIElement, ListItemRootProps>(
130
131
  return (
131
132
  <ListPrimitiveItem
132
133
  {...props}
133
- className={tx('list.item.root', 'list__listItem', { density, collapsible: props.collapsible }, classNames)}
134
+ className={tx('list.item.root', { density, collapsible: props.collapsible }, classNames)}
134
135
  ref={forwardedRef}
135
136
  >
136
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
- 'w-[--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
  };
@@ -2,13 +2,13 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
7
6
  import React from 'react';
8
7
 
9
- import { Tree, TreeItem } from './Tree';
10
8
  import { withTheme } from '../../testing';
11
9
 
10
+ import { Tree, TreeItem } from './Tree';
11
+
12
12
  type StorybookTreeProps = {
13
13
  data: any;
14
14
  };
@@ -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>
@@ -55,15 +55,18 @@ const DefaultStory = ({ data }: StorybookTreeProps) => {
55
55
  return <StorybookTreeItem data={data} />;
56
56
  };
57
57
 
58
- export default {
59
- title: 'ui/react-ui-core/Tree',
60
- component: Tree,
58
+ const meta = {
59
+ title: 'ui/react-ui-core/components/Tree',
60
+ component: Tree as any,
61
61
  render: DefaultStory,
62
- decorators: [withTheme],
63
- parameters: { chromatic: { disableSnapshot: false } },
64
- };
62
+ decorators: [withTheme()],
63
+ } satisfies Meta<typeof DefaultStory>;
64
+
65
+ export default meta;
66
+
67
+ type Story = StoryObj<typeof meta>;
65
68
 
66
- export const Default = {
69
+ export const Default: Story = {
67
70
  args: {
68
71
  data: {
69
72
  foo: 100,
@@ -2,9 +2,12 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import React, { type ComponentPropsWithoutRef, type FC, forwardRef, type ForwardRefExoticComponent } from 'react';
5
+ import React, { type ComponentPropsWithoutRef, type FC, type ForwardRefExoticComponent, forwardRef } from 'react';
6
+
7
+ import { type ThemedClassName } from '../../util';
6
8
 
7
9
  import {
10
+ LIST_ITEM_NAME,
8
11
  List,
9
12
  ListItem,
10
13
  type ListItemCollapsibleContentProps,
@@ -13,11 +16,9 @@ import {
13
16
  type ListItemRootProps,
14
17
  type ListProps,
15
18
  type ListScopedProps,
16
- LIST_ITEM_NAME,
17
19
  useListItemContext,
18
20
  } from './List';
19
21
  import { TreeDropIndicator } from './TreeDropIndicator';
20
- import { type ThemedClassName } from '../../util';
21
22
 
22
23
  type TreeRootProps = ListProps;
23
24
 
@@ -3,7 +3,7 @@
3
3
  //
4
4
 
5
5
  import { type Instruction } from '@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item';
6
- import React, { type HTMLAttributes, type CSSProperties } from 'react';
6
+ import React, { type CSSProperties, type HTMLAttributes } from 'react';
7
7
 
8
8
  // Tree item hitbox
9
9
  // https://github.com/atlassian/pragmatic-drag-and-drop/blob/main/packages/hitbox/constellation/index/about.mdx#tree-item
@@ -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
  };
@@ -2,14 +2,16 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
5
6
  import React from 'react';
6
7
 
7
8
  import { faker } from '@dxos/random';
8
9
 
9
- import { Treegrid } from './Treegrid';
10
10
  import { withTheme } from '../../testing';
11
11
  import { Icon } from '../Icon';
12
12
 
13
+ import { Treegrid, TREEGRID_PARENT_OF_SEPARATOR, TREEGRID_PATH_SEPARATOR } from './Treegrid';
14
+
13
15
  faker.seed(1234);
14
16
 
15
17
  type StorybookNode = {
@@ -86,7 +88,7 @@ const content = {
86
88
  icon: 'ph--planet--regular',
87
89
  },
88
90
  ],
89
- } satisfies StorybookNode;
91
+ } as StorybookNode;
90
92
 
91
93
  function* visitor(node: StorybookNode, isOpen?: (node: StorybookNode) => boolean): Generator<StorybookIteratorNode> {
92
94
  const stack: StorybookIteratorNode[] = [
@@ -127,11 +129,11 @@ const DefaultStory = () => {
127
129
  return (
128
130
  <Treegrid.Row
129
131
  key={node.id}
130
- id={path.join(Treegrid.PATH_SEPARATOR)}
131
- {...(parentOf && { parentOf: parentOf.join(Treegrid.PARENT_OF_SEPARATOR) })}
132
+ id={path.join(TREEGRID_PATH_SEPARATOR)}
133
+ {...(parentOf && { parentOf: parentOf.join(TREEGRID_PARENT_OF_SEPARATOR) })}
132
134
  >
133
135
  <Treegrid.Cell indent classNames='flex items-center'>
134
- {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' />}
135
137
  {node.title}
136
138
  </Treegrid.Cell>
137
139
  </Treegrid.Row>
@@ -141,11 +143,15 @@ const DefaultStory = () => {
141
143
  );
142
144
  };
143
145
 
144
- export default {
145
- title: 'ui/react-ui-core/Treegrid',
146
- component: Treegrid.Root,
146
+ const meta = {
147
+ title: 'ui/react-ui-core/components/Treegrid',
148
+ component: Treegrid.Root as any,
147
149
  render: DefaultStory,
148
- decorators: [withTheme],
149
- };
150
+ decorators: [withTheme()],
151
+ } satisfies Meta<typeof DefaultStory>;
152
+
153
+ export default meta;
154
+
155
+ type Story = StoryObj<typeof meta>;
150
156
 
151
- export const Default = {};
157
+ export const Default: Story = {};