@dxos/react-ui 0.8.4-main.1da679c → 0.8.4-main.21d9917

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 (293) hide show
  1. package/dist/lib/browser/chunk-CEKVHJ27.mjs +774 -0
  2. package/dist/lib/browser/chunk-CEKVHJ27.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +3068 -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 +65 -49
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/chunk-2NHEX4AD.mjs +776 -0
  9. package/dist/lib/node-esm/chunk-2NHEX4AD.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +3068 -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 +65 -49
  14. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  15. package/dist/types/src/components/Avatars/Avatar.stories.d.ts +0 -6
  16. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  17. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +0 -6
  18. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
  19. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts +0 -6
  20. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  21. package/dist/types/src/components/{Buttons → Button}/Button.d.ts +2 -2
  22. package/dist/types/src/components/Button/Button.d.ts.map +1 -0
  23. package/dist/types/src/components/{Buttons → Button}/Button.stories.d.ts +1 -7
  24. package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -0
  25. package/dist/types/src/components/{Buttons → Button}/IconButton.d.ts +2 -2
  26. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -0
  27. package/dist/types/src/components/{Buttons → Button}/IconButton.stories.d.ts +0 -6
  28. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -0
  29. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -0
  30. package/dist/types/src/components/Button/Toggle.stories.d.ts +16 -0
  31. package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -0
  32. package/dist/types/src/components/{Buttons → Button}/ToggleGroup.d.ts +6 -10
  33. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -0
  34. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +27 -0
  35. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -0
  36. package/dist/types/src/components/Button/index.d.ts.map +1 -0
  37. package/dist/types/src/components/Clipboard/CopyButton.d.ts +1 -1
  38. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  39. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts +1 -1
  40. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  41. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -0
  42. package/dist/types/src/components/{Dialogs → Dialog}/AlertDialog.stories.d.ts +0 -6
  43. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -0
  44. package/dist/types/src/components/Dialog/Dialog.d.ts +40 -0
  45. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -0
  46. package/dist/types/src/components/{Dialogs → Dialog}/Dialog.stories.d.ts +7 -6
  47. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -0
  48. package/dist/types/src/components/Dialog/index.d.ts.map +1 -0
  49. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts +1 -1
  50. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  51. package/dist/types/src/components/Icon/Icon.d.ts +2 -2
  52. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  53. package/dist/types/src/components/Icon/Icon.stories.d.ts +17 -0
  54. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -0
  55. package/dist/types/src/components/Input/Input.d.ts +5 -4
  56. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  57. package/dist/types/src/components/Input/Input.stories.d.ts +1 -7
  58. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  59. package/dist/types/src/components/Link/Link.stories.d.ts +0 -6
  60. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  61. package/dist/types/src/components/{Lists → List}/List.d.ts +1 -1
  62. package/dist/types/src/components/List/List.d.ts.map +1 -0
  63. package/dist/types/src/components/{Lists → List}/List.stories.d.ts +0 -6
  64. package/dist/types/src/components/List/List.stories.d.ts.map +1 -0
  65. package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -0
  66. package/dist/types/src/components/List/Tree.d.ts.map +1 -0
  67. package/dist/types/src/components/{Lists → List}/Tree.stories.d.ts +0 -6
  68. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -0
  69. package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -0
  70. package/dist/types/src/components/{Lists → List}/Treegrid.d.ts.map +1 -1
  71. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -0
  72. package/dist/types/src/components/List/index.d.ts.map +1 -0
  73. package/dist/types/src/components/Main/Main.d.ts +9 -18
  74. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  75. package/dist/types/src/components/Main/Main.stories.d.ts +1 -2
  76. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  77. package/dist/types/src/components/{Menus → Menu}/ContextMenu.d.ts +6 -6
  78. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -0
  79. package/dist/types/src/components/{Menus → Menu}/ContextMenu.stories.d.ts +0 -6
  80. package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -0
  81. package/dist/types/src/components/{Menus → Menu}/DropdownMenu.d.ts +4 -5
  82. package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -0
  83. package/dist/types/src/components/{Menus → Menu}/DropdownMenu.stories.d.ts +0 -6
  84. package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -0
  85. package/dist/types/src/components/Menu/index.d.ts.map +1 -0
  86. package/dist/types/src/components/Message/Message.d.ts +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 +1 -2
  89. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  90. package/dist/types/src/components/Popover/Popover.d.ts +2 -2
  91. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  92. package/dist/types/src/components/Popover/Popover.stories.d.ts +0 -6
  93. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  94. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +9 -7
  95. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  96. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +2 -4
  97. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  98. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +39 -0
  99. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -0
  100. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +19 -0
  101. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -0
  102. package/dist/types/src/components/ScrollContainer/index.d.ts +2 -0
  103. package/dist/types/src/components/ScrollContainer/index.d.ts.map +1 -0
  104. package/dist/types/src/components/Select/Select.d.ts +10 -10
  105. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  106. package/dist/types/src/components/Select/Select.stories.d.ts +0 -6
  107. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  108. package/dist/types/src/components/Separator/Separator.d.ts +1 -1
  109. package/dist/types/src/components/Status/Status.stories.d.ts +0 -6
  110. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  111. package/dist/types/src/components/Tag/Tag.d.ts +1 -1
  112. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  113. package/dist/types/src/components/Tag/Tag.stories.d.ts +8 -8
  114. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  115. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +1 -2
  116. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  117. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +1 -8
  118. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  119. package/dist/types/src/components/ThemeProvider/index.d.ts +2 -1
  120. package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -1
  121. package/dist/types/src/components/Toast/Toast.d.ts +4 -4
  122. package/dist/types/src/components/Toast/Toast.stories.d.ts +0 -6
  123. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  124. package/dist/types/src/components/Toolbar/Toolbar.d.ts +17 -17
  125. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  126. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +0 -6
  127. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  128. package/dist/types/src/components/Tooltip/Tooltip.d.ts +1 -3
  129. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  130. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +0 -6
  131. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  132. package/dist/types/src/components/index.d.ts +5 -4
  133. package/dist/types/src/components/index.d.ts.map +1 -1
  134. package/dist/types/src/hooks/useDensityContext.d.ts +1 -1
  135. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  136. package/dist/types/src/hooks/useElevationContext.d.ts +1 -1
  137. package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
  138. package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
  139. package/dist/types/src/hooks/useVisualViewport.d.ts +2 -2
  140. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
  141. package/dist/types/src/index.d.ts +1 -1
  142. package/dist/types/src/index.d.ts.map +1 -1
  143. package/dist/types/src/playground/Controls.stories.d.ts +0 -6
  144. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  145. package/dist/types/src/playground/Custom.stories.d.ts +1 -2
  146. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  147. package/dist/types/src/playground/Typography.stories.d.ts +0 -6
  148. package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
  149. package/dist/types/src/testing/decorators/index.d.ts +2 -1
  150. package/dist/types/src/testing/decorators/index.d.ts.map +1 -1
  151. package/dist/types/src/testing/decorators/withLayout.d.ts +15 -0
  152. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -0
  153. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts +12 -0
  154. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -0
  155. package/dist/types/src/testing/decorators/withTheme.d.ts +3 -0
  156. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  157. package/dist/types/src/util/index.d.ts +2 -1
  158. package/dist/types/src/util/index.d.ts.map +1 -1
  159. package/dist/types/src/util/usePx.d.ts +8 -0
  160. package/dist/types/src/util/usePx.d.ts.map +1 -0
  161. package/dist/types/tsconfig.tsbuildinfo +1 -1
  162. package/package.json +33 -27
  163. package/src/components/Avatars/Avatar.stories.tsx +2 -4
  164. package/src/components/Avatars/Avatar.tsx +1 -1
  165. package/src/components/Avatars/AvatarGroup.stories.tsx +0 -3
  166. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +1 -4
  167. package/src/components/{Buttons → Button}/Button.stories.tsx +3 -5
  168. package/src/components/{Buttons → Button}/Button.tsx +1 -1
  169. package/src/components/{Buttons → Button}/IconButton.stories.tsx +0 -3
  170. package/src/components/{Buttons → Button}/IconButton.tsx +19 -13
  171. package/src/components/{Buttons → Button}/Toggle.stories.tsx +5 -7
  172. package/src/components/{Buttons → Button}/ToggleGroup.stories.tsx +0 -3
  173. package/src/components/Clipboard/CopyButton.tsx +4 -4
  174. package/src/components/DensityProvider/DensityProvider.tsx +1 -1
  175. package/src/components/{Dialogs → Dialog}/AlertDialog.stories.tsx +1 -4
  176. package/src/components/Dialog/Dialog.stories.tsx +97 -0
  177. package/src/components/{Dialogs → Dialog}/Dialog.tsx +140 -40
  178. package/src/components/ElevationProvider/ElevationProvider.tsx +1 -1
  179. package/src/components/Icon/Icon.stories.tsx +113 -0
  180. package/src/components/Icon/Icon.tsx +2 -2
  181. package/src/components/Input/Input.stories.tsx +2 -5
  182. package/src/components/Input/Input.tsx +16 -7
  183. package/src/components/Link/Link.stories.tsx +0 -3
  184. package/src/components/{Lists → List}/List.stories.tsx +18 -18
  185. package/src/components/{Lists → List}/List.tsx +1 -1
  186. package/src/components/{Lists → List}/ListDropIndicator.tsx +1 -1
  187. package/src/components/{Lists → List}/Tree.stories.tsx +0 -3
  188. package/src/components/{Lists → List}/Treegrid.tsx +57 -16
  189. package/src/components/Main/Main.stories.tsx +4 -4
  190. package/src/components/Main/Main.tsx +28 -19
  191. package/src/components/{Menus → Menu}/ContextMenu.stories.tsx +0 -3
  192. package/src/components/{Menus → Menu}/DropdownMenu.stories.tsx +1 -4
  193. package/src/components/{Menus → Menu}/DropdownMenu.tsx +81 -60
  194. package/src/components/Message/Message.stories.tsx +1 -3
  195. package/src/components/Message/Message.tsx +30 -5
  196. package/src/components/Popover/Popover.stories.tsx +1 -4
  197. package/src/components/Popover/Popover.tsx +57 -38
  198. package/src/components/ScrollArea/ScrollArea.stories.tsx +54 -7
  199. package/src/components/ScrollArea/ScrollArea.tsx +50 -4
  200. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +70 -0
  201. package/src/components/ScrollContainer/ScrollContainer.tsx +233 -0
  202. package/src/components/ScrollContainer/index.ts +5 -0
  203. package/src/components/Select/Select.stories.tsx +3 -5
  204. package/src/components/Select/Select.tsx +4 -4
  205. package/src/components/Status/Status.stories.tsx +0 -3
  206. package/src/components/Tag/Tag.stories.tsx +10 -9
  207. package/src/components/Tag/Tag.tsx +1 -1
  208. package/src/components/ThemeProvider/ThemeProvider.tsx +1 -3
  209. package/src/components/ThemeProvider/TranslationsProvider.tsx +1 -16
  210. package/src/components/ThemeProvider/index.ts +3 -3
  211. package/src/components/Toast/Toast.stories.tsx +1 -4
  212. package/src/components/Toolbar/Toolbar.stories.tsx +2 -7
  213. package/src/components/Toolbar/Toolbar.tsx +34 -8
  214. package/src/components/Tooltip/Tooltip.stories.tsx +1 -4
  215. package/src/components/Tooltip/Tooltip.tsx +24 -21
  216. package/src/components/index.ts +5 -4
  217. package/src/hooks/useDensityContext.ts +1 -1
  218. package/src/hooks/useElevationContext.ts +1 -1
  219. package/src/hooks/useSafeArea.ts +3 -2
  220. package/src/hooks/useVisualViewport.ts +4 -4
  221. package/src/index.ts +1 -1
  222. package/src/playground/Controls.stories.tsx +3 -5
  223. package/src/playground/Custom.stories.tsx +9 -20
  224. package/src/playground/Typography.stories.tsx +0 -3
  225. package/src/testing/decorators/index.ts +2 -1
  226. package/src/testing/decorators/withLayout.tsx +63 -0
  227. package/src/testing/decorators/{withSurfaceVariantsLayout.tsx → withLayoutVariants.tsx} +5 -5
  228. package/src/testing/decorators/withTheme.tsx +32 -0
  229. package/src/util/index.ts +3 -1
  230. package/src/util/usePx.ts +61 -0
  231. package/dist/lib/browser/chunk-Y4PW3CX2.mjs +0 -4402
  232. package/dist/lib/browser/chunk-Y4PW3CX2.mjs.map +0 -7
  233. package/dist/lib/node-esm/chunk-L6LIOSFT.mjs +0 -4404
  234. package/dist/lib/node-esm/chunk-L6LIOSFT.mjs.map +0 -7
  235. package/dist/types/src/components/Buttons/Button.d.ts.map +0 -1
  236. package/dist/types/src/components/Buttons/Button.stories.d.ts.map +0 -1
  237. package/dist/types/src/components/Buttons/IconButton.d.ts.map +0 -1
  238. package/dist/types/src/components/Buttons/IconButton.stories.d.ts.map +0 -1
  239. package/dist/types/src/components/Buttons/Toggle.d.ts.map +0 -1
  240. package/dist/types/src/components/Buttons/Toggle.stories.d.ts +0 -19
  241. package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +0 -1
  242. package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +0 -1
  243. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +0 -37
  244. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +0 -1
  245. package/dist/types/src/components/Buttons/index.d.ts.map +0 -1
  246. package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +0 -1
  247. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +0 -1
  248. package/dist/types/src/components/Dialogs/Dialog.d.ts +0 -31
  249. package/dist/types/src/components/Dialogs/Dialog.d.ts.map +0 -1
  250. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +0 -1
  251. package/dist/types/src/components/Dialogs/index.d.ts.map +0 -1
  252. package/dist/types/src/components/Lists/List.d.ts.map +0 -1
  253. package/dist/types/src/components/Lists/List.stories.d.ts.map +0 -1
  254. package/dist/types/src/components/Lists/ListDropIndicator.d.ts.map +0 -1
  255. package/dist/types/src/components/Lists/Tree.d.ts.map +0 -1
  256. package/dist/types/src/components/Lists/Tree.stories.d.ts.map +0 -1
  257. package/dist/types/src/components/Lists/TreeDropIndicator.d.ts.map +0 -1
  258. package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +0 -1
  259. package/dist/types/src/components/Lists/index.d.ts.map +0 -1
  260. package/dist/types/src/components/Menus/ContextMenu.d.ts.map +0 -1
  261. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +0 -1
  262. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +0 -1
  263. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +0 -1
  264. package/dist/types/src/components/Menus/index.d.ts.map +0 -1
  265. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts +0 -12
  266. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts.map +0 -1
  267. package/dist/types/src/util/ThemedClassName.d.ts +0 -5
  268. package/dist/types/src/util/ThemedClassName.d.ts.map +0 -1
  269. package/src/components/Dialogs/Dialog.stories.tsx +0 -65
  270. package/src/testing/decorators/withTheme.ts +0 -25
  271. package/src/util/ThemedClassName.ts +0 -7
  272. /package/dist/types/src/components/{Buttons → Button}/Toggle.d.ts +0 -0
  273. /package/dist/types/src/components/{Buttons → Button}/index.d.ts +0 -0
  274. /package/dist/types/src/components/{Dialogs → Dialog}/AlertDialog.d.ts +0 -0
  275. /package/dist/types/src/components/{Dialogs → Dialog}/index.d.ts +0 -0
  276. /package/dist/types/src/components/{Lists → List}/ListDropIndicator.d.ts +0 -0
  277. /package/dist/types/src/components/{Lists → List}/Tree.d.ts +0 -0
  278. /package/dist/types/src/components/{Lists → List}/TreeDropIndicator.d.ts +0 -0
  279. /package/dist/types/src/components/{Lists → List}/Treegrid.d.ts +0 -0
  280. /package/dist/types/src/components/{Lists → List}/Treegrid.stories.d.ts +0 -0
  281. /package/dist/types/src/components/{Lists → List}/index.d.ts +0 -0
  282. /package/dist/types/src/components/{Menus → Menu}/index.d.ts +0 -0
  283. /package/src/components/{Buttons → Button}/Toggle.tsx +0 -0
  284. /package/src/components/{Buttons → Button}/ToggleGroup.tsx +0 -0
  285. /package/src/components/{Buttons → Button}/index.ts +0 -0
  286. /package/src/components/{Dialogs → Dialog}/AlertDialog.tsx +0 -0
  287. /package/src/components/{Dialogs → Dialog}/index.ts +0 -0
  288. /package/src/components/{Lists → List}/Tree.tsx +0 -0
  289. /package/src/components/{Lists → List}/TreeDropIndicator.tsx +0 -0
  290. /package/src/components/{Lists → List}/Treegrid.stories.tsx +0 -0
  291. /package/src/components/{Lists → List}/index.ts +0 -0
  292. /package/src/components/{Menus → Menu}/ContextMenu.tsx +0 -0
  293. /package/src/components/{Menus → Menu}/index.ts +0 -0
@@ -7,7 +7,6 @@ import {
7
7
  DialogClose as DialogClosePrimitive,
8
8
  type DialogCloseProps as DialogClosePrimitiveProps,
9
9
  DialogContent as DialogContentPrimitive,
10
- type DialogContentProps as DialogContentPrimitiveProps,
11
10
  DialogDescription as DialogDescriptionPrimitive,
12
11
  type DialogDescriptionProps as DialogDescriptionPrimitiveProps,
13
12
  DialogOverlay as DialogOverlayPrimitive,
@@ -21,12 +20,26 @@ import {
21
20
  DialogTrigger as DialogTriggerPrimitive,
22
21
  type DialogTriggerProps as DialogTriggerPrimitiveProps,
23
22
  } from '@radix-ui/react-dialog';
24
- import React, { type ForwardRefExoticComponent, type FunctionComponent, forwardRef } from 'react';
23
+ import React, {
24
+ type ComponentPropsWithRef,
25
+ type ForwardRefExoticComponent,
26
+ type FunctionComponent,
27
+ type PropsWithChildren,
28
+ forwardRef,
29
+ } from 'react';
30
+ import { useTranslation } from 'react-i18next';
31
+
32
+ import { type DialogSize, osTranslations } from '@dxos/ui-theme';
25
33
 
26
34
  import { useThemeContext } from '../../hooks';
27
35
  import { type ThemedClassName } from '../../util';
36
+ import { IconButton, type IconButtonProps } from '../Button';
28
37
  import { ElevationProvider } from '../ElevationProvider';
29
38
 
39
+ //
40
+ // Root
41
+ //
42
+
30
43
  type DialogRootProps = DialogRootPrimitiveProps;
31
44
 
32
45
  const DialogRoot: FunctionComponent<DialogRootProps> = (props) => (
@@ -35,52 +48,30 @@ const DialogRoot: FunctionComponent<DialogRootProps> = (props) => (
35
48
  </ElevationProvider>
36
49
  );
37
50
 
51
+ //
52
+ // Trigger
53
+ //
54
+
38
55
  type DialogTriggerProps = DialogTriggerPrimitiveProps;
39
56
 
40
57
  const DialogTrigger: FunctionComponent<DialogTriggerProps> = DialogTriggerPrimitive;
41
58
 
59
+ //
60
+ // Portal
61
+ //
62
+
42
63
  type DialogPortalProps = DialogPortalPrimitiveProps;
43
64
 
44
65
  const DialogPortal: FunctionComponent<DialogPortalProps> = DialogPortalPrimitive;
45
66
 
46
- type DialogTitleProps = ThemedClassName<DialogTitlePrimitiveProps> & { srOnly?: boolean };
47
-
48
- const DialogTitle: ForwardRefExoticComponent<DialogTitleProps> = forwardRef<HTMLHeadingElement, DialogTitleProps>(
49
- ({ classNames, srOnly, ...props }, forwardedRef) => {
50
- const { tx } = useThemeContext();
51
- return (
52
- <DialogTitlePrimitive
53
- {...props}
54
- className={tx('dialog.title', 'dialog__title', { srOnly }, classNames)}
55
- ref={forwardedRef}
56
- />
57
- );
58
- },
59
- );
60
-
61
- type DialogDescriptionProps = ThemedClassName<DialogDescriptionPrimitiveProps> & { srOnly?: boolean };
62
-
63
- const DialogDescription: ForwardRefExoticComponent<DialogTitleProps> = forwardRef<
64
- HTMLParagraphElement,
65
- DialogDescriptionProps
66
- >(({ classNames, srOnly, ...props }, forwardedRef) => {
67
- const { tx } = useThemeContext();
68
- return (
69
- <DialogDescriptionPrimitive
70
- {...props}
71
- className={tx('dialog.description', 'dialog__description', { srOnly }, classNames)}
72
- ref={forwardedRef}
73
- />
74
- );
75
- });
76
-
77
- type DialogCloseProps = DialogClosePrimitiveProps;
67
+ //
68
+ // Overlay
69
+ //
78
70
 
79
- const DialogClose: FunctionComponent<DialogCloseProps> = DialogClosePrimitive;
71
+ const DIALOG_OVERLAY_NAME = 'DialogOverlay';
80
72
 
81
73
  type OverlayLayoutContextValue = { inOverlayLayout?: boolean };
82
- const DIALOG_OVERLAY_NAME = 'DialogOverlay';
83
- const DIALOG_CONTENT_NAME = 'DialogContent';
74
+
84
75
  const [OverlayLayoutProvider, useOverlayLayoutContext] = createContext<OverlayLayoutContextValue>(
85
76
  DIALOG_OVERLAY_NAME,
86
77
  {},
@@ -107,10 +98,19 @@ const DialogOverlay: ForwardRefExoticComponent<DialogOverlayProps> = forwardRef<
107
98
 
108
99
  DialogOverlay.displayName = DIALOG_OVERLAY_NAME;
109
100
 
110
- type DialogContentProps = ThemedClassName<DialogContentPrimitiveProps> & { inOverlayLayout?: boolean };
101
+ //
102
+ // Content
103
+ //
104
+
105
+ const DIALOG_CONTENT_NAME = 'DialogContent';
106
+
107
+ type DialogContentProps = ThemedClassName<ComponentPropsWithRef<typeof DialogContentPrimitive>> & {
108
+ size?: DialogSize;
109
+ inOverlayLayout?: boolean;
110
+ };
111
111
 
112
112
  const DialogContent: ForwardRefExoticComponent<DialogContentProps> = forwardRef<HTMLDivElement, DialogContentProps>(
113
- ({ classNames, children, inOverlayLayout: propsInOverlayLayout, ...props }, forwardedRef) => {
113
+ ({ classNames, children, size, inOverlayLayout: propsInOverlayLayout, ...props }, forwardedRef) => {
114
114
  const { tx } = useThemeContext();
115
115
  const { inOverlayLayout } = useOverlayLayoutContext(DIALOG_CONTENT_NAME);
116
116
 
@@ -123,7 +123,7 @@ const DialogContent: ForwardRefExoticComponent<DialogContentProps> = forwardRef<
123
123
  className={tx(
124
124
  'dialog.content',
125
125
  'dialog',
126
- { inOverlayLayout: propsInOverlayLayout || inOverlayLayout },
126
+ { inOverlayLayout: propsInOverlayLayout || inOverlayLayout, size },
127
127
  classNames,
128
128
  )}
129
129
  ref={forwardedRef}
@@ -136,15 +136,113 @@ const DialogContent: ForwardRefExoticComponent<DialogContentProps> = forwardRef<
136
136
 
137
137
  DialogContent.displayName = DIALOG_CONTENT_NAME;
138
138
 
139
+ //
140
+ // Header
141
+ //
142
+
143
+ type DialogHeaderProps = ThemedClassName<PropsWithChildren> & { srOnly?: boolean };
144
+
145
+ const DialogHeader: ForwardRefExoticComponent<DialogTitleProps> = forwardRef<HTMLHeadingElement, DialogTitleProps>(
146
+ ({ classNames, srOnly, ...props }, forwardedRef) => {
147
+ const { tx } = useThemeContext();
148
+ return (
149
+ <div
150
+ {...props}
151
+ role='header'
152
+ className={tx('dialog.header', 'dialog__header', { srOnly }, classNames)}
153
+ ref={forwardedRef}
154
+ />
155
+ );
156
+ },
157
+ );
158
+
159
+ //
160
+ // Title
161
+ //
162
+
163
+ type DialogTitleProps = ThemedClassName<DialogTitlePrimitiveProps> & { srOnly?: boolean };
164
+
165
+ const DialogTitle: ForwardRefExoticComponent<DialogTitleProps> = forwardRef<HTMLHeadingElement, DialogTitleProps>(
166
+ ({ classNames, srOnly, ...props }, forwardedRef) => {
167
+ const { tx } = useThemeContext();
168
+ return (
169
+ <DialogTitlePrimitive
170
+ {...props}
171
+ className={tx('dialog.title', 'dialog__title', { srOnly }, classNames)}
172
+ ref={forwardedRef}
173
+ />
174
+ );
175
+ },
176
+ );
177
+
178
+ //
179
+ // Description
180
+ //
181
+
182
+ type DialogDescriptionProps = ThemedClassName<DialogDescriptionPrimitiveProps> & { srOnly?: boolean };
183
+
184
+ const DialogDescription: ForwardRefExoticComponent<DialogTitleProps> = forwardRef<
185
+ HTMLParagraphElement,
186
+ DialogDescriptionProps
187
+ >(({ classNames, srOnly, ...props }, forwardedRef) => {
188
+ const { tx } = useThemeContext();
189
+ return (
190
+ <DialogDescriptionPrimitive
191
+ {...props}
192
+ className={tx('dialog.description', 'dialog__description', { srOnly }, classNames)}
193
+ ref={forwardedRef}
194
+ />
195
+ );
196
+ });
197
+
198
+ //
199
+ // Close
200
+ //
201
+
202
+ type DialogCloseProps = DialogClosePrimitiveProps;
203
+
204
+ const DialogClose: FunctionComponent<DialogCloseProps> = DialogClosePrimitive;
205
+
206
+ //
207
+ // Close Button
208
+ //
209
+
210
+ type DialogCloseIconButtonProps = ThemedClassName<Partial<IconButtonProps>>;
211
+
212
+ const DialogCloseIconButton: ForwardRefExoticComponent<DialogCloseIconButtonProps> = forwardRef<
213
+ HTMLButtonElement,
214
+ DialogCloseIconButtonProps
215
+ >((props, forwardedRef) => {
216
+ const { t } = useTranslation(osTranslations);
217
+ return (
218
+ <IconButton
219
+ {...props}
220
+ label={props.label ?? t('close dialog label')}
221
+ icon='ph--x--regular'
222
+ iconOnly
223
+ size={4}
224
+ density='fine'
225
+ variant='ghost'
226
+ ref={forwardedRef}
227
+ />
228
+ );
229
+ });
230
+
231
+ //
232
+ // Dialog
233
+ //
234
+
139
235
  export const Dialog = {
140
236
  Root: DialogRoot,
141
237
  Trigger: DialogTrigger,
142
238
  Portal: DialogPortal,
143
239
  Overlay: DialogOverlay,
144
240
  Content: DialogContent,
241
+ Header: DialogHeader,
145
242
  Title: DialogTitle,
146
243
  Description: DialogDescription,
147
244
  Close: DialogClose,
245
+ CloseIconButton: DialogCloseIconButton,
148
246
  };
149
247
 
150
248
  export type {
@@ -153,7 +251,9 @@ export type {
153
251
  DialogPortalProps,
154
252
  DialogOverlayProps,
155
253
  DialogContentProps,
254
+ DialogHeaderProps,
156
255
  DialogTitleProps,
157
256
  DialogDescriptionProps,
158
257
  DialogCloseProps,
258
+ DialogCloseIconButtonProps,
159
259
  };
@@ -4,7 +4,7 @@
4
4
 
5
5
  import React, { type PropsWithChildren, createContext } from 'react';
6
6
 
7
- import { type Elevation } from '@dxos/react-ui-types';
7
+ import { type Elevation } from '@dxos/ui-types';
8
8
 
9
9
  export interface ElevationContextValue {
10
10
  elevation?: Elevation;
@@ -0,0 +1,113 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { IconBase, type IconProps, type IconWeight } from '@phosphor-icons/react';
6
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
7
+ import React, { type FC, type ReactElement, type SVGProps, forwardRef } from 'react';
8
+
9
+ import { getSize, mx } from '@dxos/ui-theme';
10
+
11
+ import { withTheme } from '../../testing';
12
+
13
+ import { Icon } from './Icon';
14
+
15
+ /**
16
+ * Create icon from serializable data.
17
+ * https://github.com/phosphor-icons/react#custom-icons
18
+ * https://github.com/phosphor-icons/core/tree/main/assets
19
+ */
20
+ const createIcon = ({
21
+ name,
22
+ weights,
23
+ }: {
24
+ name: string;
25
+ weights: Record<string, SVGProps<SVGPathElement>[]>;
26
+ }): FC<IconProps> => {
27
+ const CustomIcon = forwardRef<SVGSVGElement, IconProps>((props, ref) => (
28
+ <IconBase
29
+ ref={ref}
30
+ {...props}
31
+ weights={
32
+ new Map<IconWeight, ReactElement>(
33
+ Object.entries(weights).map(
34
+ ([key, paths]) =>
35
+ [
36
+ key,
37
+ <>
38
+ {paths.map((props, i) => (
39
+ <path key={`${key}-${i}`} {...props} />
40
+ ))}
41
+ </>,
42
+ ] as [IconWeight, ReactElement],
43
+ ),
44
+ )
45
+ }
46
+ />
47
+ ));
48
+
49
+ CustomIcon.displayName = name;
50
+ return CustomIcon;
51
+ };
52
+
53
+ const DefaultStory = ({ CustomIcon }: { CustomIcon: FC<IconProps> }) => {
54
+ return (
55
+ <div className='grid grid-cols-2 gap-8'>
56
+ <CustomIcon weight={'regular'} className={mx(getSize(16))} />
57
+ <Icon icon='ph--github-logo--regular' classNames={mx(getSize(16))} />
58
+ </div>
59
+ );
60
+ };
61
+
62
+ const meta = {
63
+ title: 'ui/react-ui-core/Icon',
64
+ render: DefaultStory,
65
+ decorators: [withTheme],
66
+ parameters: {
67
+ layout: 'centered',
68
+ },
69
+ } satisfies Meta<typeof DefaultStory>;
70
+
71
+ export default meta;
72
+
73
+ type Story = StoryObj<typeof meta>;
74
+
75
+ export const Default: Story = {
76
+ args: {
77
+ CustomIcon: createIcon({
78
+ name: 'GithubLogo',
79
+ weights: {
80
+ // https://github.com/phosphor-icons/core/tree/main/assets
81
+ // <path d="M119.83,56A52,52,0,0,0,76,32a51.92,51.92,0,0,0-3.49,44.7A49.28,49.28,0,0,0,64,104v8a48,48,0,0,0,48,48h48a48,48,0,0,0,48-48v-8a49.28,49.28,0,0,0-8.51-27.3A51.92,51.92,0,0,0,196,32a52,52,0,0,0-43.83,24Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
82
+ // <path d="M104,232V192a32,32,0,0,1,32-32h0a32,32,0,0,1,32,32v40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
83
+ // <path d="M104,208H72a32,32,0,0,1-32-32A32,32,0,0,0,8,144" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
84
+ regular: [
85
+ {
86
+ d: 'M119.83,56A52,52,0,0,0,76,32a51.92,51.92,0,0,0-3.49,44.7A49.28,49.28,0,0,0,64,104v8a48,48,0,0,0,48,48h48a48,48,0,0,0,48-48v-8a49.28,49.28,0,0,0-8.51-27.3A51.92,51.92,0,0,0,196,32a52,52,0,0,0-43.83,24Z',
87
+ fill: 'none',
88
+ stroke: 'currentColor',
89
+ strokeLinecap: 'round',
90
+ strokeLinejoin: 'round',
91
+ strokeWidth: '16',
92
+ },
93
+ {
94
+ d: 'M104,232V192a32,32,0,0,1,32-32h0a32,32,0,0,1,32,32v40',
95
+ fill: 'none',
96
+ stroke: 'currentColor',
97
+ strokeLinecap: 'round',
98
+ strokeLinejoin: 'round',
99
+ strokeWidth: '16',
100
+ },
101
+ {
102
+ d: 'M104,208H72a32,32,0,0,1-32-32A32,32,0,0,0,8,144',
103
+ fill: 'none',
104
+ stroke: 'currentColor',
105
+ strokeLinecap: 'round',
106
+ strokeLinejoin: 'round',
107
+ strokeWidth: '16',
108
+ },
109
+ ],
110
+ },
111
+ }),
112
+ },
113
+ };
@@ -5,7 +5,7 @@
5
5
  import { type Primitive } from '@radix-ui/react-primitive';
6
6
  import React, { type ComponentPropsWithRef, forwardRef, memo } from 'react';
7
7
 
8
- import { type Size } from '@dxos/react-ui-types';
8
+ import { type Size } from '@dxos/ui-types';
9
9
 
10
10
  import { useIconHref, useThemeContext } from '../../hooks';
11
11
  import { type ThemedClassName } from '../../util';
@@ -16,7 +16,7 @@ export type IconProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.s
16
16
  };
17
17
 
18
18
  export const Icon = memo(
19
- forwardRef<SVGSVGElement, IconProps>(({ icon, classNames, size, ...props }, forwardedRef) => {
19
+ forwardRef<SVGSVGElement, IconProps>(({ icon, classNames, size = 4, ...props }, forwardedRef) => {
20
20
  const { tx } = useThemeContext();
21
21
  const href = useIconHref(icon);
22
22
  return (
@@ -2,13 +2,11 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
7
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
8
6
  import React from 'react';
9
7
 
10
- import { baseSurface, modalSurface, mx, surfaceShadow } from '@dxos/react-ui-theme';
11
- import { type MessageValence } from '@dxos/react-ui-types';
8
+ import { baseSurface, modalSurface, mx, surfaceShadow } from '@dxos/ui-theme';
9
+ import { type MessageValence } from '@dxos/ui-types';
12
10
 
13
11
  import { withTheme } from '../../testing';
14
12
 
@@ -94,7 +92,6 @@ const meta = {
94
92
  component: Input.Root as any,
95
93
  render: DefaultStory,
96
94
  decorators: [withTheme],
97
- parameters: { chromatic: { disableSnapshot: false } },
98
95
  } satisfies Meta<typeof DefaultStory>;
99
96
 
100
97
  export default meta;
@@ -2,7 +2,6 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { type IconWeight } from '@phosphor-icons/react';
6
5
  import { Root as CheckboxPrimitive, type CheckboxProps as CheckboxPrimitiveProps } from '@radix-ui/react-checkbox';
7
6
  import { useControllableState } from '@radix-ui/react-use-controllable-state';
8
7
  import React, { type ComponentPropsWithRef, type ForwardRefExoticComponent, forwardRef, useCallback } from 'react';
@@ -28,8 +27,8 @@ import {
28
27
  type ValidationProps as ValidationPrimitiveProps,
29
28
  useInputContext,
30
29
  } from '@dxos/react-input';
31
- import { mx } from '@dxos/react-ui-theme';
32
- import { type ClassNameValue, type Density, type Elevation, type Size } from '@dxos/react-ui-types';
30
+ import { mx } from '@dxos/ui-theme';
31
+ import { type ClassNameValue, type Density, type Elevation, type Size } from '@dxos/ui-types';
33
32
 
34
33
  import { useDensityContext, useElevationContext, useThemeContext } from '../../hooks';
35
34
  import { type ThemedClassName } from '../../util';
@@ -163,10 +162,17 @@ const PinInput = forwardRef<HTMLInputElement, PinInputProps>(
163
162
 
164
163
  // TODO(burdon): Implement inline icon within button: e.g., https://www.radix-ui.com/themes/playground#text-field
165
164
 
166
- type TextInputProps = InputSharedProps & ThemedClassName<TextInputPrimitiveProps>;
165
+ type AutoFillProps = {
166
+ noAutoFill?: boolean;
167
+ };
168
+
169
+ type TextInputProps = InputSharedProps & ThemedClassName<TextInputPrimitiveProps> & AutoFillProps;
167
170
 
168
171
  const TextInput = forwardRef<HTMLInputElement, InputScopedProps<TextInputProps>>(
169
- ({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {
172
+ (
173
+ { __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, noAutoFill, ...props },
174
+ forwardedRef,
175
+ ) => {
170
176
  const { hasIosKeyboard } = useThemeContext();
171
177
  const themeContextValue = useThemeContext();
172
178
  const density = useDensityContext(propsDensity);
@@ -178,6 +184,8 @@ const TextInput = forwardRef<HTMLInputElement, InputScopedProps<TextInputProps>>
178
184
  return (
179
185
  <TextInputPrimitive
180
186
  {...props}
187
+ // TODO(wittjosiah): Factor out autofill properies.
188
+ {...{ 'data-1p-ignore': noAutoFill }}
181
189
  className={tx(
182
190
  'input.input',
183
191
  'input',
@@ -230,7 +238,9 @@ const TextArea = forwardRef<HTMLTextAreaElement, InputScopedProps<TextAreaProps>
230
238
  },
231
239
  );
232
240
 
233
- type CheckboxProps = ThemedClassName<Omit<CheckboxPrimitiveProps, 'children'>> & { size?: Size; weight?: IconWeight };
241
+ type CheckboxProps = ThemedClassName<Omit<CheckboxPrimitiveProps, 'children'>> & {
242
+ size?: Size;
243
+ };
234
244
 
235
245
  const Checkbox: ForwardRefExoticComponent<CheckboxProps> = forwardRef<
236
246
  HTMLButtonElement,
@@ -243,7 +253,6 @@ const Checkbox: ForwardRefExoticComponent<CheckboxProps> = forwardRef<
243
253
  defaultChecked: propsDefaultChecked,
244
254
  onCheckedChange: propsOnCheckedChange,
245
255
  size,
246
- weight = 'bold',
247
256
  classNames,
248
257
  ...props
249
258
  },
@@ -2,8 +2,6 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
7
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
8
6
 
9
7
  import { withTheme } from '../../testing';
@@ -14,7 +12,6 @@ const meta = {
14
12
  title: 'ui/react-ui-core/Link',
15
13
  component: Link,
16
14
  decorators: [withTheme],
17
- parameters: { chromatic: { disableSnapshot: false } },
18
15
  } satisfies Meta<typeof Link>;
19
16
 
20
17
  export default meta;
@@ -2,14 +2,12 @@
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
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
9
  import { type Meta, type StoryObj } from '@storybook/react-vite';
12
- import React, { type ReactNode, useState } from 'react';
10
+ import React, { type ReactNode, useCallback, useState } from 'react';
13
11
 
14
12
  import {
15
13
  getSize,
@@ -18,7 +16,7 @@ import {
18
16
  ghostSelectedTrackingInterFromNormal,
19
17
  mx,
20
18
  surfaceShadow,
21
- } from '@dxos/react-ui-theme';
19
+ } from '@dxos/ui-theme';
22
20
 
23
21
  import { withTheme } from '../../testing';
24
22
  import { Icon } from '../Icon';
@@ -29,7 +27,6 @@ const meta = {
29
27
  title: 'ui/react-ui-core/List',
30
28
  component: List,
31
29
  decorators: [withTheme],
32
- parameters: { chromatic: { disableSnapshot: false } },
33
30
  } satisfies Meta<typeof List>;
34
31
 
35
32
  export default meta;
@@ -66,16 +63,20 @@ export const UniformSizeDraggable: Story = {
66
63
  })),
67
64
  );
68
65
 
69
- const handleDragEnd = (event: DragEndEvent) => {
70
- const { active, over } = event;
71
- if (active.id !== over?.id) {
72
- setItems((items) => {
73
- const oldIndex = items.findIndex((item) => item.id === active.id);
74
- const newIndex = items.findIndex((item) => item.id === over?.id);
75
- return arrayMove(items, oldIndex, newIndex);
76
- });
77
- }
78
- };
66
+ const handleDragEnd = useCallback(
67
+ (event: DragEndEvent) => {
68
+ const { active, over } = event;
69
+ if (active.id !== over?.id) {
70
+ setItems((items) => {
71
+ const oldIndex = items.findIndex((item) => item.id === active.id);
72
+ const newIndex = items.findIndex((item) => item.id === over?.id);
73
+ return arrayMove(items, oldIndex, newIndex);
74
+ });
75
+ }
76
+ },
77
+ [items],
78
+ );
79
+
79
80
  return (
80
81
  <DndContext onDragEnd={handleDragEnd}>
81
82
  <SortableContext items={items.map(({ id }) => id)} strategy={verticalListSortingStrategy}>
@@ -198,7 +199,6 @@ export const Collapsible: Story = {
198
199
  },
199
200
  args: {
200
201
  variant: 'unordered',
201
- // toggleOpenLabel: 'Open/close storybook list item', // TODO(burdon): ???
202
202
  },
203
203
  };
204
204
 
@@ -229,11 +229,11 @@ export const SelectableListbox: Story = {
229
229
  key={id}
230
230
  tabIndex={0}
231
231
  selected={selectedId === id}
232
- classNames={mx('items-center', ghostHover, ghostSelected, ghostSelectedTrackingInterFromNormal)}
232
+ classNames={mx(ghostHover, ghostSelected, ghostSelectedTrackingInterFromNormal)}
233
233
  onClick={() => setSelectedId(id)}
234
234
  onKeyUp={(event) => handleKeyUp(event, id)}
235
235
  >
236
- <ListItem.Heading classNames='grow'>Lorem ipsum dolor sit amet</ListItem.Heading>
236
+ <ListItem.Heading classNames='flex pli-1 items-center grow truncate'>{text}</ListItem.Heading>
237
237
  </ListItem.Root>
238
238
  ))}
239
239
  </List>
@@ -23,7 +23,7 @@ import {
23
23
  useListContext,
24
24
  useListItemContext,
25
25
  } from '@dxos/react-list';
26
- import { type Density } from '@dxos/react-ui-types';
26
+ import { type Density } from '@dxos/ui-types';
27
27
 
28
28
  import { useDensityContext, useThemeContext } from '../../hooks';
29
29
  import { type ThemedClassName } from '../../util';
@@ -18,7 +18,7 @@ const orientationStyles: Record<Orientation, HTMLAttributes<HTMLElement>['classN
18
18
  horizontal:
19
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
+ 'is-[--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']> = {
@@ -2,8 +2,6 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
7
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
8
6
  import React from 'react';
9
7
 
@@ -62,7 +60,6 @@ const meta = {
62
60
  component: Tree as any,
63
61
  render: DefaultStory,
64
62
  decorators: [withTheme],
65
- parameters: { chromatic: { disableSnapshot: false } },
66
63
  } satisfies Meta<typeof DefaultStory>;
67
64
 
68
65
  export default meta;