@dxos/react-ui 0.8.4-main.3a94e84 → 0.8.4-main.3c1ae3b

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 (280) hide show
  1. package/dist/lib/browser/{chunk-2COVUP44.mjs → chunk-BFCXP6YC.mjs} +656 -319
  2. package/dist/lib/browser/chunk-BFCXP6YC.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +12 -1
  4. package/dist/lib/browser/index.mjs.map +2 -2
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +57 -29
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/{chunk-GHXHND5V.mjs → chunk-F4Z46DD6.mjs} +656 -319
  9. package/dist/lib/node-esm/chunk-F4Z46DD6.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +12 -1
  11. package/dist/lib/node-esm/index.mjs.map +2 -2
  12. package/dist/lib/node-esm/meta.json +1 -1
  13. package/dist/lib/node-esm/testing/index.mjs +57 -29
  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 +1 -1
  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 +13 -0
  32. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -0
  33. package/dist/types/src/components/Button/Toggle.d.ts.map +1 -0
  34. package/dist/types/src/components/Button/Toggle.stories.d.ts +16 -0
  35. package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -0
  36. package/dist/types/src/components/{Buttons → Button}/ToggleGroup.d.ts +7 -8
  37. package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -0
  38. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +27 -0
  39. package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -0
  40. package/dist/types/src/components/Button/index.d.ts.map +1 -0
  41. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
  42. package/dist/types/src/components/Clipboard/CopyButton.d.ts +1 -1
  43. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  44. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  45. package/dist/types/src/components/{Dialogs → Dialog}/AlertDialog.d.ts +1 -1
  46. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -0
  47. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts +11 -0
  48. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -0
  49. package/dist/types/src/components/{Dialogs → Dialog}/Dialog.d.ts +3 -3
  50. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -0
  51. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +25 -0
  52. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -0
  53. package/dist/types/src/components/Dialog/index.d.ts.map +1 -0
  54. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  55. package/dist/types/src/components/Icon/Icon.d.ts +1 -1
  56. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  57. package/dist/types/src/components/Icon/Icon.stories.d.ts +17 -0
  58. package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -0
  59. package/dist/types/src/components/Input/Input.d.ts +6 -5
  60. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  61. package/dist/types/src/components/Input/Input.stories.d.ts +10 -11
  62. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  63. package/dist/types/src/components/Link/Link.stories.d.ts +8 -8
  64. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  65. package/dist/types/src/components/{Lists → List}/List.d.ts +2 -2
  66. package/dist/types/src/components/List/List.d.ts.map +1 -0
  67. package/dist/types/src/components/List/List.stories.d.ts +14 -0
  68. package/dist/types/src/components/List/List.stories.d.ts.map +1 -0
  69. package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -0
  70. package/dist/types/src/components/{Lists → List}/Tree.d.ts +1 -1
  71. package/dist/types/src/components/List/Tree.d.ts.map +1 -0
  72. package/dist/types/src/components/List/Tree.stories.d.ts +15 -0
  73. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -0
  74. package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -0
  75. package/dist/types/src/components/{Lists → List}/Treegrid.d.ts +1 -1
  76. package/dist/types/src/components/{Lists → List}/Treegrid.d.ts.map +1 -1
  77. package/dist/types/src/components/List/Treegrid.stories.d.ts +12 -0
  78. package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -0
  79. package/dist/types/src/components/List/index.d.ts.map +1 -0
  80. package/dist/types/src/components/Main/Main.d.ts +10 -19
  81. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  82. package/dist/types/src/components/Main/Main.stories.d.ts +6 -7
  83. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  84. package/dist/types/src/components/Menus/ContextMenu.d.ts.map +1 -1
  85. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts +6 -44
  86. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +1 -1
  87. package/dist/types/src/components/Menus/DropdownMenu.d.ts +8 -8
  88. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +1 -1
  89. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts +6 -41
  90. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +1 -1
  91. package/dist/types/src/components/Message/Message.d.ts +1 -1
  92. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  93. package/dist/types/src/components/Message/Message.stories.d.ts +7 -16
  94. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  95. package/dist/types/src/components/Popover/Popover.d.ts +2 -2
  96. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  97. package/dist/types/src/components/Popover/Popover.stories.d.ts +6 -34
  98. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  99. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +1 -1
  100. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  101. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +6 -32
  102. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  103. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +39 -0
  104. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -0
  105. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +19 -0
  106. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -0
  107. package/dist/types/src/components/ScrollContainer/index.d.ts +2 -0
  108. package/dist/types/src/components/ScrollContainer/index.d.ts.map +1 -0
  109. package/dist/types/src/components/Select/Select.d.ts +1 -1
  110. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  111. package/dist/types/src/components/Select/Select.stories.d.ts +4 -9
  112. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  113. package/dist/types/src/components/Status/Status.stories.d.ts +2 -8
  114. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  115. package/dist/types/src/components/Tag/Tag.stories.d.ts +12 -12
  116. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  117. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +1 -1
  118. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  119. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +1 -1
  120. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  121. package/dist/types/src/components/Toast/Toast.d.ts +1 -1
  122. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  123. package/dist/types/src/components/Toast/Toast.stories.d.ts +6 -44
  124. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  125. package/dist/types/src/components/Toolbar/Toolbar.d.ts +12 -12
  126. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  127. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +6 -50
  128. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  129. package/dist/types/src/components/Tooltip/Tooltip.d.ts +2 -4
  130. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  131. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +8 -61
  132. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  133. package/dist/types/src/components/index.d.ts +4 -3
  134. package/dist/types/src/components/index.d.ts.map +1 -1
  135. package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
  136. package/dist/types/src/hooks/useVisualViewport.d.ts +2 -2
  137. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
  138. package/dist/types/src/index.d.ts +1 -1
  139. package/dist/types/src/index.d.ts.map +1 -1
  140. package/dist/types/src/playground/Controls.stories.d.ts +5 -9
  141. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  142. package/dist/types/src/playground/Custom.stories.d.ts +12 -4
  143. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  144. package/dist/types/src/playground/Typography.stories.d.ts +5 -11
  145. package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
  146. package/dist/types/src/testing/decorators/index.d.ts +2 -1
  147. package/dist/types/src/testing/decorators/index.d.ts.map +1 -1
  148. package/dist/types/src/testing/decorators/withLayout.d.ts +15 -0
  149. package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -0
  150. package/dist/types/src/testing/decorators/{withSurfaceVariantsLayout.d.ts → withLayoutVariants.d.ts} +2 -2
  151. package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -0
  152. package/dist/types/src/testing/decorators/withTheme.d.ts +3 -0
  153. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  154. package/dist/types/src/util/domino.d.ts +18 -0
  155. package/dist/types/src/util/domino.d.ts.map +1 -0
  156. package/dist/types/src/util/index.d.ts +2 -0
  157. package/dist/types/src/util/index.d.ts.map +1 -1
  158. package/dist/types/src/util/usePx.d.ts +8 -0
  159. package/dist/types/src/util/usePx.d.ts.map +1 -0
  160. package/dist/types/tsconfig.tsbuildinfo +1 -1
  161. package/package.json +26 -23
  162. package/src/components/Avatars/Avatar.stories.tsx +19 -10
  163. package/src/components/Avatars/Avatar.tsx +3 -3
  164. package/src/components/Avatars/AvatarGroup.stories.tsx +10 -6
  165. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +17 -12
  166. package/src/components/Breadcrumb/Breadcrumb.tsx +1 -1
  167. package/src/components/{Buttons → Button}/Button.stories.tsx +8 -9
  168. package/src/components/{Buttons → Button}/IconButton.stories.tsx +11 -8
  169. package/src/components/{Buttons → Button}/IconButton.tsx +19 -15
  170. package/src/components/{Buttons → Button}/Toggle.stories.tsx +13 -9
  171. package/src/components/{Buttons → Button}/ToggleGroup.stories.tsx +10 -7
  172. package/src/components/{Buttons → Button}/ToggleGroup.tsx +17 -4
  173. package/src/components/Clipboard/ClipboardProvider.tsx +1 -1
  174. package/src/components/Clipboard/CopyButton.tsx +3 -2
  175. package/src/components/DensityProvider/DensityProvider.tsx +1 -1
  176. package/src/components/{Dialogs → Dialog}/AlertDialog.stories.tsx +15 -12
  177. package/src/components/{Dialogs → Dialog}/AlertDialog.tsx +13 -13
  178. package/src/components/{Dialogs → Dialog}/Dialog.stories.tsx +17 -15
  179. package/src/components/{Dialogs → Dialog}/Dialog.tsx +20 -14
  180. package/src/components/ElevationProvider/ElevationProvider.tsx +1 -1
  181. package/src/components/Icon/Icon.stories.tsx +113 -0
  182. package/src/components/Icon/Icon.tsx +1 -1
  183. package/src/components/Input/Input.stories.tsx +12 -14
  184. package/src/components/Input/Input.tsx +27 -18
  185. package/src/components/Link/Link.stories.tsx +10 -6
  186. package/src/components/{Lists → List}/List.stories.tsx +16 -14
  187. package/src/components/{Lists → List}/List.tsx +16 -12
  188. package/src/components/{Lists → List}/ListDropIndicator.tsx +1 -1
  189. package/src/components/{Lists → List}/Tree.stories.tsx +11 -8
  190. package/src/components/{Lists → List}/Tree.tsx +4 -3
  191. package/src/components/{Lists → List}/TreeDropIndicator.tsx +1 -1
  192. package/src/components/{Lists → List}/Treegrid.stories.tsx +12 -6
  193. package/src/components/{Lists → List}/Treegrid.tsx +58 -17
  194. package/src/components/Main/Main.stories.tsx +17 -9
  195. package/src/components/Main/Main.tsx +43 -28
  196. package/src/components/Menus/ContextMenu.stories.tsx +11 -8
  197. package/src/components/Menus/ContextMenu.tsx +1 -0
  198. package/src/components/Menus/DropdownMenu.stories.tsx +12 -9
  199. package/src/components/Menus/DropdownMenu.tsx +45 -16
  200. package/src/components/Message/Message.stories.tsx +11 -7
  201. package/src/components/Message/Message.tsx +3 -1
  202. package/src/components/Popover/Popover.stories.tsx +12 -9
  203. package/src/components/Popover/Popover.tsx +29 -12
  204. package/src/components/ScrollArea/ScrollArea.stories.tsx +12 -9
  205. package/src/components/ScrollArea/ScrollArea.tsx +4 -4
  206. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +70 -0
  207. package/src/components/ScrollContainer/ScrollContainer.tsx +233 -0
  208. package/src/components/ScrollContainer/index.ts +5 -0
  209. package/src/components/Select/Select.stories.tsx +15 -12
  210. package/src/components/Select/Select.tsx +9 -8
  211. package/src/components/Status/Status.stories.tsx +9 -6
  212. package/src/components/Tag/Tag.stories.tsx +18 -9
  213. package/src/components/ThemeProvider/ThemeProvider.tsx +3 -2
  214. package/src/components/ThemeProvider/TranslationsProvider.tsx +3 -3
  215. package/src/components/Toast/Toast.stories.tsx +12 -9
  216. package/src/components/Toast/Toast.tsx +9 -9
  217. package/src/components/Toolbar/Toolbar.stories.tsx +14 -12
  218. package/src/components/Toolbar/Toolbar.tsx +20 -8
  219. package/src/components/Tooltip/Tooltip.stories.tsx +16 -12
  220. package/src/components/Tooltip/Tooltip.tsx +5 -4
  221. package/src/components/index.ts +4 -3
  222. package/src/hooks/useSafeArea.ts +3 -2
  223. package/src/hooks/useVisualViewport.ts +4 -4
  224. package/src/index.ts +1 -1
  225. package/src/playground/Controls.stories.tsx +12 -8
  226. package/src/playground/Custom.stories.tsx +13 -24
  227. package/src/playground/Typography.stories.tsx +8 -6
  228. package/src/testing/decorators/index.ts +2 -1
  229. package/src/testing/decorators/withLayout.tsx +56 -0
  230. package/src/testing/decorators/{withSurfaceVariantsLayout.tsx → withLayoutVariants.tsx} +3 -3
  231. package/src/testing/decorators/withTheme.tsx +31 -0
  232. package/src/util/domino.ts +53 -0
  233. package/src/util/index.ts +2 -0
  234. package/src/util/usePx.ts +61 -0
  235. package/dist/lib/browser/chunk-2COVUP44.mjs.map +0 -7
  236. package/dist/lib/node-esm/chunk-GHXHND5V.mjs.map +0 -7
  237. package/dist/types/src/components/Buttons/Button.d.ts.map +0 -1
  238. package/dist/types/src/components/Buttons/Button.stories.d.ts +0 -12
  239. package/dist/types/src/components/Buttons/Button.stories.d.ts.map +0 -1
  240. package/dist/types/src/components/Buttons/IconButton.d.ts.map +0 -1
  241. package/dist/types/src/components/Buttons/IconButton.stories.d.ts +0 -22
  242. package/dist/types/src/components/Buttons/IconButton.stories.d.ts.map +0 -1
  243. package/dist/types/src/components/Buttons/Toggle.d.ts.map +0 -1
  244. package/dist/types/src/components/Buttons/Toggle.stories.d.ts +0 -19
  245. package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +0 -1
  246. package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +0 -1
  247. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +0 -39
  248. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +0 -1
  249. package/dist/types/src/components/Buttons/index.d.ts.map +0 -1
  250. package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +0 -1
  251. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +0 -43
  252. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +0 -1
  253. package/dist/types/src/components/Dialogs/Dialog.d.ts.map +0 -1
  254. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +0 -48
  255. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +0 -1
  256. package/dist/types/src/components/Dialogs/index.d.ts.map +0 -1
  257. package/dist/types/src/components/Lists/List.d.ts.map +0 -1
  258. package/dist/types/src/components/Lists/List.stories.d.ts +0 -37
  259. package/dist/types/src/components/Lists/List.stories.d.ts.map +0 -1
  260. package/dist/types/src/components/Lists/ListDropIndicator.d.ts.map +0 -1
  261. package/dist/types/src/components/Lists/Tree.d.ts.map +0 -1
  262. package/dist/types/src/components/Lists/Tree.stories.d.ts +0 -41
  263. package/dist/types/src/components/Lists/Tree.stories.d.ts.map +0 -1
  264. package/dist/types/src/components/Lists/TreeDropIndicator.d.ts.map +0 -1
  265. package/dist/types/src/components/Lists/Treegrid.stories.d.ts +0 -10
  266. package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +0 -1
  267. package/dist/types/src/components/Lists/index.d.ts.map +0 -1
  268. package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts.map +0 -1
  269. package/src/testing/decorators/withTheme.ts +0 -25
  270. /package/dist/types/src/components/{Buttons → Button}/Toggle.d.ts +0 -0
  271. /package/dist/types/src/components/{Buttons → Button}/index.d.ts +0 -0
  272. /package/dist/types/src/components/{Dialogs → Dialog}/index.d.ts +0 -0
  273. /package/dist/types/src/components/{Lists → List}/ListDropIndicator.d.ts +0 -0
  274. /package/dist/types/src/components/{Lists → List}/TreeDropIndicator.d.ts +0 -0
  275. /package/dist/types/src/components/{Lists → List}/index.d.ts +0 -0
  276. /package/src/components/{Buttons → Button}/Button.tsx +0 -0
  277. /package/src/components/{Buttons → Button}/Toggle.tsx +0 -0
  278. /package/src/components/{Buttons → Button}/index.ts +0 -0
  279. /package/src/components/{Dialogs → Dialog}/index.ts +0 -0
  280. /package/src/components/{Lists → List}/index.ts +0 -0
@@ -31,7 +31,7 @@ var useIconHref = (icon) => {
31
31
 
32
32
  // src/hooks/useSafeArea.ts
33
33
  import { useCallback, useState } from "react";
34
- import { useResize } from "@dxos/react-hooks";
34
+ import { useViewportResize } from "@dxos/react-hooks";
35
35
  var initialSafeArea = {
36
36
  top: NaN,
37
37
  right: NaN,
@@ -48,7 +48,7 @@ var useSafeArea = () => {
48
48
  left: parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--safe-area-left"))
49
49
  });
50
50
  }, []);
51
- useResize(handleResize);
51
+ useViewportResize(handleResize);
52
52
  return padding;
53
53
  };
54
54
 
@@ -59,7 +59,7 @@ import { useContext as useContext4 } from "react";
59
59
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
60
60
  import { enUS as dtLocaleEnUs } from "date-fns/locale";
61
61
  import i18Next from "i18next";
62
- import React, { useEffect, createContext, useState as useState2, Suspense, useContext as useContext3 } from "react";
62
+ import React, { Suspense, createContext, useContext as useContext3, useEffect, useState as useState2 } from "react";
63
63
  import { initReactI18next, useTranslation as useI18NextTranslation } from "react-i18next";
64
64
  var initialLng = "en-US";
65
65
  var initialNs = "dxos-common";
@@ -130,7 +130,7 @@ var useTranslationsContext = () => useContext4(TranslationsContext);
130
130
 
131
131
  // src/hooks/useVisualViewport.ts
132
132
  import { useCallback as useCallback2, useState as useState3 } from "react";
133
- import { useResize as useResize2 } from "@dxos/react-hooks";
133
+ import { useViewportResize as useViewportResize2 } from "@dxos/react-hooks";
134
134
  var useVisualViewport = (deps) => {
135
135
  const [width, setWidth] = useState3(null);
136
136
  const [height, setHeight] = useState3(null);
@@ -140,7 +140,7 @@ var useVisualViewport = (deps) => {
140
140
  setHeight(window.visualViewport.height);
141
141
  }
142
142
  }, []);
143
- useResize2(handleResize);
143
+ useViewportResize2(handleResize, deps);
144
144
  return {
145
145
  width,
146
146
  height
@@ -152,8 +152,8 @@ var AnchoredOverflowRoot = /* @__PURE__ */ forwardRef(({ asChild, classNames, ch
152
152
  var _effect = _useSignals2();
153
153
  try {
154
154
  const { tx } = useThemeContext();
155
- const Root7 = asChild ? Slot : Primitive.div;
156
- return /* @__PURE__ */ React2.createElement(Root7, {
155
+ const Root8 = asChild ? Slot : Primitive.div;
156
+ return /* @__PURE__ */ React2.createElement(Root8, {
157
157
  role: "none",
158
158
  ...props,
159
159
  className: tx("anchoredOverflow.root", "overflow-anchored", {}, classNames),
@@ -167,8 +167,8 @@ var AnchoredOverflowAnchor = /* @__PURE__ */ forwardRef(({ asChild, classNames,
167
167
  var _effect = _useSignals2();
168
168
  try {
169
169
  const { tx } = useThemeContext();
170
- const Root7 = asChild ? Slot : Primitive.div;
171
- return /* @__PURE__ */ React2.createElement(Root7, {
170
+ const Root8 = asChild ? Slot : Primitive.div;
171
+ return /* @__PURE__ */ React2.createElement(Root8, {
172
172
  role: "none",
173
173
  ...props,
174
174
  className: tx("anchoredOverflow.anchor", "overflow-anchor", {}, classNames),
@@ -228,10 +228,10 @@ var AvatarContent = /* @__PURE__ */ forwardRef2(({ icon, classNames, ...props },
228
228
  var AvatarLabel = /* @__PURE__ */ forwardRef2(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
229
229
  var _effect = _useSignals3();
230
230
  try {
231
- const Root7 = asChild ? Slot2 : Primitive2.span;
231
+ const Root8 = asChild ? Slot2 : Primitive2.span;
232
232
  const { tx } = useThemeContext();
233
233
  const { labelId } = useAvatarContext("AvatarLabel");
234
- return /* @__PURE__ */ React3.createElement(Root7, {
234
+ return /* @__PURE__ */ React3.createElement(Root8, {
235
235
  ...props,
236
236
  id: labelId,
237
237
  ref: forwardedRef,
@@ -246,10 +246,10 @@ var AvatarLabel = /* @__PURE__ */ forwardRef2(({ asChild, srOnly, classNames, ..
246
246
  var AvatarDescription = /* @__PURE__ */ forwardRef2(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
247
247
  var _effect = _useSignals3();
248
248
  try {
249
- const Root7 = asChild ? Slot2 : Primitive2.span;
249
+ const Root8 = asChild ? Slot2 : Primitive2.span;
250
250
  const { tx } = useThemeContext();
251
251
  const { descriptionId } = useAvatarContext("AvatarDescription");
252
- return /* @__PURE__ */ React3.createElement(Root7, {
252
+ return /* @__PURE__ */ React3.createElement(Root8, {
253
253
  ...props,
254
254
  id: descriptionId,
255
255
  ref: forwardedRef,
@@ -277,7 +277,7 @@ import React6, { forwardRef as forwardRef5 } from "react";
277
277
  // src/components/Icon/Icon.tsx
278
278
  import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
279
279
  import React4, { forwardRef as forwardRef3, memo } from "react";
280
- var Icon = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef3(({ icon, classNames, size, ...props }, forwardedRef) => {
280
+ var Icon = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef3(({ icon, classNames, size = 4, ...props }, forwardedRef) => {
281
281
  var _effect = _useSignals4();
282
282
  try {
283
283
  const { tx } = useThemeContext();
@@ -305,8 +305,8 @@ var Link = /* @__PURE__ */ forwardRef4(({ asChild, variant, classNames, ...props
305
305
  var _effect = _useSignals5();
306
306
  try {
307
307
  const { tx } = useThemeContext();
308
- const Root7 = asChild ? Slot3 : Primitive3.a;
309
- return /* @__PURE__ */ React5.createElement(Root7, {
308
+ const Root8 = asChild ? Slot3 : Primitive3.a;
309
+ return /* @__PURE__ */ React5.createElement(Root8, {
310
310
  ...props,
311
311
  className: tx("link.root", "link", {
312
312
  variant
@@ -323,8 +323,8 @@ var BreadcrumbRoot = /* @__PURE__ */ forwardRef5(({ asChild, classNames, ...prop
323
323
  var _effect = _useSignals6();
324
324
  try {
325
325
  const { tx } = useThemeContext();
326
- const Root7 = asChild ? Slot4 : Primitive4.div;
327
- return /* @__PURE__ */ React6.createElement(Root7, {
326
+ const Root8 = asChild ? Slot4 : Primitive4.div;
327
+ return /* @__PURE__ */ React6.createElement(Root8, {
328
328
  role: "navigation",
329
329
  ...props,
330
330
  className: tx("breadcrumb.root", "breadcrumb", {}, classNames),
@@ -338,8 +338,8 @@ var BreadcrumbList = /* @__PURE__ */ forwardRef5(({ asChild, classNames, ...prop
338
338
  var _effect = _useSignals6();
339
339
  try {
340
340
  const { tx } = useThemeContext();
341
- const Root7 = asChild ? Slot4 : Primitive4.ol;
342
- return /* @__PURE__ */ React6.createElement(Root7, {
341
+ const Root8 = asChild ? Slot4 : Primitive4.ol;
342
+ return /* @__PURE__ */ React6.createElement(Root8, {
343
343
  role: "list",
344
344
  ...props,
345
345
  className: tx("breadcrumb.list", "breadcrumb__list", {}, classNames),
@@ -353,8 +353,8 @@ var BreadcrumbListItem = /* @__PURE__ */ forwardRef5(({ asChild, classNames, ...
353
353
  var _effect = _useSignals6();
354
354
  try {
355
355
  const { tx } = useThemeContext();
356
- const Root7 = asChild ? Slot4 : Primitive4.li;
357
- return /* @__PURE__ */ React6.createElement(Root7, {
356
+ const Root8 = asChild ? Slot4 : Primitive4.li;
357
+ return /* @__PURE__ */ React6.createElement(Root8, {
358
358
  role: "listitem",
359
359
  ...props,
360
360
  className: tx("breadcrumb.listItem", "breadcrumb__list__item", {}, classNames),
@@ -367,8 +367,8 @@ var BreadcrumbListItem = /* @__PURE__ */ forwardRef5(({ asChild, classNames, ...
367
367
  var BreadcrumbLink = /* @__PURE__ */ forwardRef5(({ asChild, ...props }, forwardedRef) => {
368
368
  var _effect = _useSignals6();
369
369
  try {
370
- const Root7 = asChild ? Slot4 : Link;
371
- return /* @__PURE__ */ React6.createElement(Root7, {
370
+ const Root8 = asChild ? Slot4 : Link;
371
+ return /* @__PURE__ */ React6.createElement(Root8, {
372
372
  ...props,
373
373
  ref: forwardedRef
374
374
  });
@@ -380,8 +380,8 @@ var BreadcrumbCurrent = /* @__PURE__ */ forwardRef5(({ asChild, classNames, ...p
380
380
  var _effect = _useSignals6();
381
381
  try {
382
382
  const { tx } = useThemeContext();
383
- const Root7 = asChild ? Slot4 : "h1";
384
- return /* @__PURE__ */ React6.createElement(Root7, {
383
+ const Root8 = asChild ? Slot4 : "h1";
384
+ return /* @__PURE__ */ React6.createElement(Root8, {
385
385
  ...props,
386
386
  "aria-current": "page",
387
387
  className: tx("breadcrumb.current", "breadcrumb__item__heading--current", {}, classNames),
@@ -416,7 +416,7 @@ var Breadcrumb = {
416
416
  Separator: BreadcrumbSeparator
417
417
  };
418
418
 
419
- // src/components/Buttons/Button.tsx
419
+ // src/components/Button/Button.tsx
420
420
  import { useSignals as _useSignals7 } from "@preact-signals/safe-react/tracking";
421
421
  import { createContext as createContext3 } from "@radix-ui/react-context";
422
422
  import { Primitive as Primitive5 } from "@radix-ui/react-primitive";
@@ -434,8 +434,8 @@ var Button = /* @__PURE__ */ memo2(/* @__PURE__ */ forwardRef6(({ classNames, ch
434
434
  const { tx } = useThemeContext();
435
435
  const elevation = useElevationContext(propsElevation);
436
436
  const density = useDensityContext(propsDensity);
437
- const Root7 = asChild ? Slot5 : Primitive5.button;
438
- return /* @__PURE__ */ React7.createElement(Root7, {
437
+ const Root8 = asChild ? Slot5 : Primitive5.button;
438
+ return /* @__PURE__ */ React7.createElement(Root8, {
439
439
  ref,
440
440
  ...props,
441
441
  "data-variant": variant,
@@ -462,8 +462,8 @@ var ButtonGroup = /* @__PURE__ */ forwardRef6(({ children, elevation: propsEleva
462
462
  try {
463
463
  const { tx } = useThemeContext();
464
464
  const elevation = useElevationContext(propsElevation);
465
- const Root7 = asChild ? Slot5 : Primitive5.div;
466
- return /* @__PURE__ */ React7.createElement(Root7, {
465
+ const Root8 = asChild ? Slot5 : Primitive5.div;
466
+ return /* @__PURE__ */ React7.createElement(Root8, {
467
467
  role: "none",
468
468
  ...props,
469
469
  className: tx("button.group", "button-group", {
@@ -479,7 +479,7 @@ var ButtonGroup = /* @__PURE__ */ forwardRef6(({ children, elevation: propsEleva
479
479
  });
480
480
  ButtonGroup.displayName = BUTTON_GROUP_NAME;
481
481
 
482
- // src/components/Buttons/IconButton.tsx
482
+ // src/components/Button/IconButton.tsx
483
483
  import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
484
484
  import React9, { forwardRef as forwardRef8 } from "react";
485
485
 
@@ -1106,8 +1106,22 @@ var Tooltip = {
1106
1106
  Trigger: TooltipTrigger
1107
1107
  };
1108
1108
 
1109
- // src/components/Buttons/IconButton.tsx
1110
- var IconOnlyButton = /* @__PURE__ */ forwardRef8(({ noTooltip, tooltipPortal = true, tooltipSide, ...props }, forwardedRef) => {
1109
+ // src/components/Button/IconButton.tsx
1110
+ var IconButton = /* @__PURE__ */ forwardRef8((props, forwardedRef) => {
1111
+ var _effect = _useSignals9();
1112
+ try {
1113
+ return props.iconOnly ? /* @__PURE__ */ React9.createElement(IconOnlyButton, {
1114
+ ...props,
1115
+ ref: forwardedRef
1116
+ }) : /* @__PURE__ */ React9.createElement(LabelledIconButton, {
1117
+ ...props,
1118
+ ref: forwardedRef
1119
+ });
1120
+ } finally {
1121
+ _effect.f();
1122
+ }
1123
+ });
1124
+ var IconOnlyButton = /* @__PURE__ */ forwardRef8(({ noTooltip, tooltipSide, ...props }, forwardedRef) => {
1111
1125
  var _effect = _useSignals9();
1112
1126
  try {
1113
1127
  if (noTooltip) {
@@ -1128,7 +1142,7 @@ var IconOnlyButton = /* @__PURE__ */ forwardRef8(({ noTooltip, tooltipPortal = t
1128
1142
  _effect.f();
1129
1143
  }
1130
1144
  });
1131
- var LabelledIconButton = /* @__PURE__ */ forwardRef8(({ icon, size, iconOnly, label, classNames, iconClassNames, caretDown, ...props }, forwardedRef) => {
1145
+ var LabelledIconButton = /* @__PURE__ */ forwardRef8(({ size = 5, icon, iconOnly, iconEnd, iconClassNames, label, caretDown, classNames, ...props }, forwardedRef) => {
1132
1146
  var _effect = _useSignals9();
1133
1147
  try {
1134
1148
  const { tx } = useThemeContext();
@@ -1138,13 +1152,17 @@ var LabelledIconButton = /* @__PURE__ */ forwardRef8(({ icon, size, iconOnly, la
1138
1152
  iconOnly
1139
1153
  }, classNames),
1140
1154
  ref: forwardedRef
1141
- }, /* @__PURE__ */ React9.createElement(Icon, {
1155
+ }, icon && !iconEnd && /* @__PURE__ */ React9.createElement(Icon, {
1142
1156
  icon,
1143
1157
  size,
1144
1158
  classNames: iconClassNames
1145
1159
  }), /* @__PURE__ */ React9.createElement("span", {
1146
1160
  className: iconOnly ? "sr-only" : void 0
1147
- }, label), caretDown && /* @__PURE__ */ React9.createElement(Icon, {
1161
+ }, label), icon && iconEnd && /* @__PURE__ */ React9.createElement(Icon, {
1162
+ icon,
1163
+ size,
1164
+ classNames: iconClassNames
1165
+ }), caretDown && /* @__PURE__ */ React9.createElement(Icon, {
1148
1166
  size: 3,
1149
1167
  icon: "ph--caret-down--bold"
1150
1168
  }));
@@ -1152,22 +1170,8 @@ var LabelledIconButton = /* @__PURE__ */ forwardRef8(({ icon, size, iconOnly, la
1152
1170
  _effect.f();
1153
1171
  }
1154
1172
  });
1155
- var IconButton = /* @__PURE__ */ forwardRef8((props, forwardedRef) => {
1156
- var _effect = _useSignals9();
1157
- try {
1158
- return props.iconOnly ? /* @__PURE__ */ React9.createElement(IconOnlyButton, {
1159
- ...props,
1160
- ref: forwardedRef
1161
- }) : /* @__PURE__ */ React9.createElement(LabelledIconButton, {
1162
- ...props,
1163
- ref: forwardedRef
1164
- });
1165
- } finally {
1166
- _effect.f();
1167
- }
1168
- });
1169
1173
 
1170
- // src/components/Buttons/Toggle.tsx
1174
+ // src/components/Button/Toggle.tsx
1171
1175
  import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
1172
1176
  import { Toggle as TogglePrimitive } from "@radix-ui/react-toggle";
1173
1177
  import React10, { forwardRef as forwardRef9 } from "react";
@@ -1188,9 +1192,9 @@ var Toggle = /* @__PURE__ */ forwardRef9(({ defaultPressed, pressed, onPressedCh
1188
1192
  }
1189
1193
  });
1190
1194
 
1191
- // src/components/Buttons/ToggleGroup.tsx
1195
+ // src/components/Button/ToggleGroup.tsx
1192
1196
  import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
1193
- import { ToggleGroup as ToggleGroupPrimitive, ToggleGroupItem as ToggleGroupItemPrimitive } from "@radix-ui/react-toggle-group";
1197
+ import { ToggleGroupItem as ToggleGroupItemPrimitive, ToggleGroup as ToggleGroupPrimitive } from "@radix-ui/react-toggle-group";
1194
1198
  import React11, { forwardRef as forwardRef10 } from "react";
1195
1199
  var ToggleGroup = /* @__PURE__ */ forwardRef10(({ classNames, children, ...props }, forwardedRef) => {
1196
1200
  var _effect = _useSignals11();
@@ -1225,6 +1229,26 @@ var ToggleGroupItem = /* @__PURE__ */ forwardRef10(({ variant, elevation, densit
1225
1229
  _effect.f();
1226
1230
  }
1227
1231
  });
1232
+ var ToggleGroupIconItem = /* @__PURE__ */ forwardRef10(({ variant, label, icon, size, elevation, density, classNames, ...props }, forwardedRef) => {
1233
+ var _effect = _useSignals11();
1234
+ try {
1235
+ return /* @__PURE__ */ React11.createElement(ToggleGroupItemPrimitive, {
1236
+ ...props,
1237
+ asChild: true
1238
+ }, /* @__PURE__ */ React11.createElement(IconButton, {
1239
+ variant,
1240
+ elevation,
1241
+ density,
1242
+ classNames,
1243
+ label,
1244
+ icon,
1245
+ size,
1246
+ ref: forwardedRef
1247
+ }));
1248
+ } finally {
1249
+ _effect.f();
1250
+ }
1251
+ });
1228
1252
 
1229
1253
  // src/components/Clipboard/ClipboardProvider.tsx
1230
1254
  import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
@@ -1257,18 +1281,103 @@ var ClipboardProvider = ({ children }) => {
1257
1281
  // src/components/Clipboard/CopyButton.tsx
1258
1282
  import { useSignals as _useSignals16 } from "@preact-signals/safe-react/tracking";
1259
1283
  import React16 from "react";
1260
- import { mx as mx2 } from "@dxos/react-ui-theme";
1284
+ import { mx as mx3 } from "@dxos/react-ui-theme";
1261
1285
 
1262
1286
  // src/components/ThemeProvider/ThemeProvider.tsx
1263
1287
  import { useSignals as _useSignals15 } from "@preact-signals/safe-react/tracking";
1264
1288
  import { createKeyborg } from "keyborg";
1265
- import React15, { createContext as createContext7, useEffect as useEffect3, useMemo as useMemo2 } from "react";
1289
+ import React15, { createContext as createContext7, useEffect as useEffect4, useMemo as useMemo3 } from "react";
1290
+
1291
+ // src/util/domino.ts
1292
+ import { mx as mx2 } from "@dxos/react-ui-theme";
1293
+ var Domino = class _Domino {
1294
+ static of(tag) {
1295
+ return new _Domino(tag);
1296
+ }
1297
+ _el;
1298
+ constructor(tag) {
1299
+ this._el = document.createElement(tag);
1300
+ }
1301
+ classNames(...classNames) {
1302
+ this._el.className = mx2(classNames);
1303
+ return this;
1304
+ }
1305
+ text(value) {
1306
+ this._el.textContent = value;
1307
+ return this;
1308
+ }
1309
+ data(key, value) {
1310
+ this._el.dataset[key] = value;
1311
+ return this;
1312
+ }
1313
+ attributes(attr) {
1314
+ Object.entries(attr).filter(([_, value]) => value !== void 0).map(([key, value]) => this._el.setAttribute(key, value));
1315
+ return this;
1316
+ }
1317
+ style(styles) {
1318
+ Object.assign(this._el.style, styles);
1319
+ return this;
1320
+ }
1321
+ children(...children) {
1322
+ children.forEach((child) => this._el.appendChild(child.build()));
1323
+ return this;
1324
+ }
1325
+ on(event, handler) {
1326
+ this._el.addEventListener(event, handler);
1327
+ return this;
1328
+ }
1329
+ build() {
1330
+ return this._el;
1331
+ }
1332
+ };
1266
1333
 
1267
1334
  // src/util/hasIosKeyboard.ts
1268
1335
  var hasIosKeyboard = () => {
1269
1336
  return !!navigator.userAgent.match(/iP(ad|od|hone).+Safari/);
1270
1337
  };
1271
1338
 
1339
+ // src/util/usePx.ts
1340
+ import { useCallback as useCallback5, useEffect as useEffect3, useMemo as useMemo2, useState as useState6 } from "react";
1341
+ var getDocumentElementFontSize = () => parseFloat(getComputedStyle(document.documentElement).fontSize);
1342
+ var usePx = (rem) => {
1343
+ const [fontSize, setFontSize] = useState6(() => {
1344
+ if (typeof document !== "undefined") {
1345
+ return getDocumentElementFontSize();
1346
+ }
1347
+ return 16;
1348
+ });
1349
+ const updateFontSize = useCallback5(() => {
1350
+ setFontSize(getDocumentElementFontSize());
1351
+ }, []);
1352
+ useEffect3(() => {
1353
+ if (typeof document === "undefined") {
1354
+ return;
1355
+ }
1356
+ const resizeObserver = new ResizeObserver(updateFontSize);
1357
+ resizeObserver.observe(document.documentElement);
1358
+ const mediaQueryList = window.matchMedia("all");
1359
+ const handleMediaChange = () => {
1360
+ updateFontSize();
1361
+ };
1362
+ if (mediaQueryList.addEventListener) {
1363
+ mediaQueryList.addEventListener("change", handleMediaChange);
1364
+ } else {
1365
+ mediaQueryList.addListener(handleMediaChange);
1366
+ }
1367
+ return () => {
1368
+ resizeObserver.disconnect();
1369
+ if (mediaQueryList.removeEventListener) {
1370
+ mediaQueryList.removeEventListener("change", handleMediaChange);
1371
+ } else {
1372
+ mediaQueryList.removeListener(handleMediaChange);
1373
+ }
1374
+ };
1375
+ }, []);
1376
+ return useMemo2(() => rem * fontSize, [
1377
+ fontSize
1378
+ ]);
1379
+ };
1380
+
1272
1381
  // src/components/DensityProvider/DensityProvider.tsx
1273
1382
  import { useSignals as _useSignals13 } from "@preact-signals/safe-react/tracking";
1274
1383
  import React13, { createContext as createContext5 } from "react";
@@ -1312,7 +1421,7 @@ var ThemeContext = /* @__PURE__ */ createContext7(void 0);
1312
1421
  var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName, themeMode = "dark", rootDensity = "fine", ...rest }) => {
1313
1422
  var _effect = _useSignals15();
1314
1423
  try {
1315
- useEffect3(() => {
1424
+ useEffect4(() => {
1316
1425
  if (document.defaultView) {
1317
1426
  const kb = createKeyborg(document.defaultView);
1318
1427
  kb.subscribe(handleInputModalityChange);
@@ -1320,7 +1429,7 @@ var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx
1320
1429
  }
1321
1430
  }, []);
1322
1431
  const safeAreaPadding = useSafeArea();
1323
- const contextValue = useMemo2(() => ({
1432
+ const contextValue = useMemo3(() => ({
1324
1433
  tx,
1325
1434
  themeMode,
1326
1435
  hasIosKeyboard: hasIosKeyboard(),
@@ -1373,7 +1482,7 @@ var CopyButton = ({ classNames, value, size = 5, ...props }) => {
1373
1482
  "data-testid": "copy-invitation"
1374
1483
  }, /* @__PURE__ */ React16.createElement("div", {
1375
1484
  role: "none",
1376
- className: mx2("flex gap-1 items-center", isCopied && inactiveLabelStyles)
1485
+ className: mx3("flex gap-1 items-center", isCopied && inactiveLabelStyles)
1377
1486
  }, /* @__PURE__ */ React16.createElement("span", {
1378
1487
  className: "pli-1"
1379
1488
  }, t("copy label")), /* @__PURE__ */ React16.createElement(Icon, {
@@ -1381,7 +1490,7 @@ var CopyButton = ({ classNames, value, size = 5, ...props }) => {
1381
1490
  size
1382
1491
  })), /* @__PURE__ */ React16.createElement("div", {
1383
1492
  role: "none",
1384
- className: mx2("flex gap-1 items-center", !isCopied && inactiveLabelStyles)
1493
+ className: mx3("flex gap-1 items-center", !isCopied && inactiveLabelStyles)
1385
1494
  }, /* @__PURE__ */ React16.createElement("span", {
1386
1495
  className: "pli-1"
1387
1496
  }, t("copy success label")), /* @__PURE__ */ React16.createElement(Icon, {
@@ -1425,10 +1534,10 @@ var Clipboard = {
1425
1534
  Provider: ClipboardProvider
1426
1535
  };
1427
1536
 
1428
- // src/components/Dialogs/Dialog.tsx
1537
+ // src/components/Dialog/Dialog.tsx
1429
1538
  import { useSignals as _useSignals17 } from "@preact-signals/safe-react/tracking";
1430
1539
  import { createContext as createContext8 } from "@radix-ui/react-context";
1431
- import { Root as DialogRootPrimitive, DialogTrigger as DialogTriggerPrimitive, DialogPortal as DialogPortalPrimitive, DialogOverlay as DialogOverlayPrimitive, DialogTitle as DialogTitlePrimitive, DialogDescription as DialogDescriptionPrimitive, DialogClose as DialogClosePrimitive, DialogContent as DialogContentPrimitive } from "@radix-ui/react-dialog";
1540
+ import { DialogClose as DialogClosePrimitive, DialogContent as DialogContentPrimitive, DialogDescription as DialogDescriptionPrimitive, DialogOverlay as DialogOverlayPrimitive, DialogPortal as DialogPortalPrimitive, Root as DialogRootPrimitive, DialogTitle as DialogTitlePrimitive, DialogTrigger as DialogTriggerPrimitive } from "@radix-ui/react-dialog";
1432
1541
  import React17, { forwardRef as forwardRef11 } from "react";
1433
1542
  var DialogRoot = (props) => {
1434
1543
  var _effect = _useSignals17();
@@ -1524,9 +1633,9 @@ var Dialog = {
1524
1633
  Close: DialogClose
1525
1634
  };
1526
1635
 
1527
- // src/components/Dialogs/AlertDialog.tsx
1636
+ // src/components/Dialog/AlertDialog.tsx
1528
1637
  import { useSignals as _useSignals18 } from "@preact-signals/safe-react/tracking";
1529
- import { Root as AlertDialogRootPrimitive, AlertDialogTrigger as AlertDialogTriggerPrimitive, AlertDialogPortal as AlertDialogPortalPrimitive, AlertDialogOverlay as AlertDialogOverlayPrimitive, AlertDialogTitle as AlertDialogTitlePrimitive, AlertDialogDescription as AlertDialogDescriptionPrimitive, AlertDialogAction as AlertDialogActionPrimitive, AlertDialogCancel as AlertDialogCancelPrimitive, AlertDialogContent as AlertDialogContentPrimitive } from "@radix-ui/react-alert-dialog";
1638
+ import { AlertDialogAction as AlertDialogActionPrimitive, AlertDialogCancel as AlertDialogCancelPrimitive, AlertDialogContent as AlertDialogContentPrimitive, AlertDialogDescription as AlertDialogDescriptionPrimitive, AlertDialogOverlay as AlertDialogOverlayPrimitive, AlertDialogPortal as AlertDialogPortalPrimitive, Root as AlertDialogRootPrimitive, AlertDialogTitle as AlertDialogTitlePrimitive, AlertDialogTrigger as AlertDialogTriggerPrimitive } from "@radix-ui/react-alert-dialog";
1530
1639
  import { createContext as createContext9 } from "@radix-ui/react-context";
1531
1640
  import React18, { forwardRef as forwardRef12 } from "react";
1532
1641
  var AlertDialogRoot = (props) => {
@@ -1628,9 +1737,9 @@ var AlertDialog = {
1628
1737
  import { useSignals as _useSignals19 } from "@preact-signals/safe-react/tracking";
1629
1738
  import { Root as CheckboxPrimitive } from "@radix-ui/react-checkbox";
1630
1739
  import { useControllableState as useControllableState2 } from "@radix-ui/react-use-controllable-state";
1631
- import React19, { forwardRef as forwardRef13, useCallback as useCallback5 } from "react";
1632
- import { InputRoot, PinInput as PinInputPrimitive, TextInput as TextInputPrimitive, TextArea as TextAreaPrimitive, useInputContext, INPUT_NAME, Description as DescriptionPrimitive, DescriptionAndValidation as DescriptionAndValidationPrimitive, Label as LabelPrimitive, Validation as ValidationPrimitive } from "@dxos/react-input";
1633
- import { mx as mx3 } from "@dxos/react-ui-theme";
1740
+ import React19, { forwardRef as forwardRef13, useCallback as useCallback6 } from "react";
1741
+ import { DescriptionAndValidation as DescriptionAndValidationPrimitive, Description as DescriptionPrimitive, INPUT_NAME, InputRoot, Label as LabelPrimitive, PinInput as PinInputPrimitive, TextArea as TextAreaPrimitive, TextInput as TextInputPrimitive, Validation as ValidationPrimitive, useInputContext } from "@dxos/react-input";
1742
+ import { mx as mx4 } from "@dxos/react-ui-theme";
1634
1743
  var Label = /* @__PURE__ */ forwardRef13(({ srOnly, classNames, children, ...props }, forwardedRef) => {
1635
1744
  var _effect = _useSignals19();
1636
1745
  try {
@@ -1700,7 +1809,7 @@ var PinInput = /* @__PURE__ */ forwardRef13(({ density: propsDensity, elevation:
1700
1809
  const { tx } = useThemeContext();
1701
1810
  const density = useDensityContext(propsDensity);
1702
1811
  const elevation = useElevationContext(propsElevation);
1703
- const segmentClassName = useCallback5(({ focused, validationValence }) => tx("input.input", "input--pin-segment", {
1812
+ const segmentClassName = useCallback6(({ focused, validationValence }) => tx("input.input", "input--pin-segment", {
1704
1813
  variant: "static",
1705
1814
  focused,
1706
1815
  disabled: props.disabled,
@@ -1729,7 +1838,7 @@ var PinInput = /* @__PURE__ */ forwardRef13(({ density: propsDensity, elevation:
1729
1838
  _effect.f();
1730
1839
  }
1731
1840
  });
1732
- var TextInput = /* @__PURE__ */ forwardRef13(({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {
1841
+ var TextInput = /* @__PURE__ */ forwardRef13(({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, noAutoFill, ...props }, forwardedRef) => {
1733
1842
  var _effect = _useSignals19();
1734
1843
  try {
1735
1844
  const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
@@ -1740,6 +1849,7 @@ var TextInput = /* @__PURE__ */ forwardRef13(({ __inputScope, classNames, densit
1740
1849
  const { tx } = themeContextValue;
1741
1850
  return /* @__PURE__ */ React19.createElement(TextInputPrimitive, {
1742
1851
  ...props,
1852
+ "data-1p-ignore": noAutoFill,
1743
1853
  className: tx("input.input", "input", {
1744
1854
  variant,
1745
1855
  disabled: props.disabled,
@@ -1782,7 +1892,7 @@ var TextArea = /* @__PURE__ */ forwardRef13(({ __inputScope, classNames, density
1782
1892
  _effect.f();
1783
1893
  }
1784
1894
  });
1785
- var Checkbox = /* @__PURE__ */ forwardRef13(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size, weight = "bold", classNames, ...props }, forwardedRef) => {
1895
+ var Checkbox = /* @__PURE__ */ forwardRef13(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size, classNames, ...props }, forwardedRef) => {
1786
1896
  var _effect = _useSignals19();
1787
1897
  try {
1788
1898
  const [checked, onCheckedChange] = useControllableState2({
@@ -1828,7 +1938,7 @@ var Switch = /* @__PURE__ */ forwardRef13(({ __inputScope, checked: propsChecked
1828
1938
  const { id, validationValence, descriptionId, errorMessageId } = useInputContext(INPUT_NAME, __inputScope);
1829
1939
  return /* @__PURE__ */ React19.createElement("input", {
1830
1940
  type: "checkbox",
1831
- className: mx3("dx-checkbox--switch dx-focus-ring", classNames),
1941
+ className: mx4("dx-checkbox--switch dx-focus-ring", classNames),
1832
1942
  checked,
1833
1943
  onChange: (event) => {
1834
1944
  onCheckedChange(event.target.checked);
@@ -1859,13 +1969,13 @@ var Input = {
1859
1969
  DescriptionAndValidation
1860
1970
  };
1861
1971
 
1862
- // src/components/Lists/List.tsx
1972
+ // src/components/List/List.tsx
1863
1973
  import { useSignals as _useSignals21 } from "@preact-signals/safe-react/tracking";
1864
1974
  import { Slot as Slot6 } from "@radix-ui/react-slot";
1865
1975
  import React21, { forwardRef as forwardRef14 } from "react";
1866
- import { List as ListPrimitive, ListItemHeading as ListPrimitiveItemHeading, ListItemOpenTrigger as ListPrimitiveItemOpenTrigger, ListItemCollapsibleContent, ListItem as ListPrimitiveItem, LIST_NAME, LIST_ITEM_NAME, useListContext, useListItemContext } from "@dxos/react-list";
1976
+ import { LIST_ITEM_NAME, LIST_NAME, ListItemCollapsibleContent, List as ListPrimitive, ListItem as ListPrimitiveItem, ListItemHeading as ListPrimitiveItemHeading, ListItemOpenTrigger as ListPrimitiveItemOpenTrigger, useListContext, useListItemContext } from "@dxos/react-list";
1867
1977
 
1868
- // src/components/Lists/ListDropIndicator.tsx
1978
+ // src/components/List/ListDropIndicator.tsx
1869
1979
  import { useSignals as _useSignals20 } from "@preact-signals/safe-react/tracking";
1870
1980
  import React20 from "react";
1871
1981
  var edgeToOrientationMap = {
@@ -1876,7 +1986,7 @@ var edgeToOrientationMap = {
1876
1986
  };
1877
1987
  var orientationStyles = {
1878
1988
  horizontal: "h-[--line-thickness] left-[calc(var(--line-inset)+var(--terminal-radius))] right-[--line-inset] before:left-[--terminal-inset]",
1879
- vertical: "w-[--line-thickness] top-[calc(var(--line-inset)+var(--terminal-radius))] bottom-[--line-inset] before:top-[--terminal-inset]"
1989
+ vertical: "is-[--line-thickness] top-[calc(var(--line-inset)+var(--terminal-radius))] bottom-[--line-inset] before:top-[--terminal-inset]"
1880
1990
  };
1881
1991
  var edgeStyles = {
1882
1992
  top: "top-[--line-offset] before:top-[--offset-terminal]",
@@ -1909,7 +2019,7 @@ var ListDropIndicator = ({ edge, gap = 0, lineInset = 0, terminalInset = lineIns
1909
2019
  }
1910
2020
  };
1911
2021
 
1912
- // src/components/Lists/List.tsx
2022
+ // src/components/List/List.tsx
1913
2023
  var List = /* @__PURE__ */ forwardRef14(({ classNames, children, ...props }, forwardedRef) => {
1914
2024
  var _effect = _useSignals21();
1915
2025
  try {
@@ -1929,10 +2039,10 @@ var List = /* @__PURE__ */ forwardRef14(({ classNames, children, ...props }, for
1929
2039
  var ListItemEndcap = /* @__PURE__ */ forwardRef14(({ children, classNames, asChild, ...props }, forwardedRef) => {
1930
2040
  var _effect = _useSignals21();
1931
2041
  try {
1932
- const Root7 = asChild ? Slot6 : "div";
2042
+ const Root8 = asChild ? Slot6 : "div";
1933
2043
  const density = useDensityContext();
1934
2044
  const { tx } = useThemeContext();
1935
- return /* @__PURE__ */ React21.createElement(Root7, {
2045
+ return /* @__PURE__ */ React21.createElement(Root8, {
1936
2046
  ...!asChild && {
1937
2047
  role: "none"
1938
2048
  },
@@ -1984,7 +2094,6 @@ var ListItemOpenTrigger = /* @__PURE__ */ forwardRef14(({ __listItemScope, class
1984
2094
  const { tx } = useThemeContext();
1985
2095
  const density = useDensityContext();
1986
2096
  const { open } = useListItemContext(LIST_ITEM_NAME, __listItemScope);
1987
- const iconName = open ? "ph--caret-down--bold" : "ph--caret-right--bold";
1988
2097
  return /* @__PURE__ */ React21.createElement(ListPrimitiveItemOpenTrigger, {
1989
2098
  ...props,
1990
2099
  className: tx("list.item.openTrigger", "list__listItem__openTrigger", {
@@ -1992,7 +2101,8 @@ var ListItemOpenTrigger = /* @__PURE__ */ forwardRef14(({ __listItemScope, class
1992
2101
  }, classNames),
1993
2102
  ref: forwardedRef
1994
2103
  }, children || /* @__PURE__ */ React21.createElement(Icon, {
1995
- icon: iconName,
2104
+ size: 3,
2105
+ icon: open ? "ph--caret-down--bold" : "ph--caret-right--bold",
1996
2106
  classNames: tx("list.item.openTriggerIcon", "list__listItem__openTrigger__icon", {})
1997
2107
  }));
1998
2108
  } finally {
@@ -2026,11 +2136,11 @@ var ListItem = {
2026
2136
  DropIndicator: ListDropIndicator
2027
2137
  };
2028
2138
 
2029
- // src/components/Lists/Tree.tsx
2139
+ // src/components/List/Tree.tsx
2030
2140
  import { useSignals as _useSignals23 } from "@preact-signals/safe-react/tracking";
2031
2141
  import React23, { forwardRef as forwardRef15 } from "react";
2032
2142
 
2033
- // src/components/Lists/TreeDropIndicator.tsx
2143
+ // src/components/List/TreeDropIndicator.tsx
2034
2144
  import { useSignals as _useSignals22 } from "@preact-signals/safe-react/tracking";
2035
2145
  import React22 from "react";
2036
2146
  var edgeToOrientationMap2 = {
@@ -2081,7 +2191,7 @@ var TreeDropIndicator = ({ instruction, gap = 0 }) => {
2081
2191
  }
2082
2192
  };
2083
2193
 
2084
- // src/components/Lists/Tree.tsx
2194
+ // src/components/List/Tree.tsx
2085
2195
  var TreeRoot = /* @__PURE__ */ forwardRef15((props, forwardedRef) => {
2086
2196
  var _effect = _useSignals23();
2087
2197
  try {
@@ -2135,14 +2245,14 @@ var TreeItem = {
2135
2245
  DropIndicator: TreeDropIndicator
2136
2246
  };
2137
2247
 
2138
- // src/components/Lists/Treegrid.tsx
2248
+ // src/components/List/Treegrid.tsx
2139
2249
  import { useSignals as _useSignals24 } from "@preact-signals/safe-react/tracking";
2140
- import { useArrowNavigationGroup, useFocusableGroup } from "@fluentui/react-tabster";
2250
+ import { useFocusFinders } from "@fluentui/react-tabster";
2141
2251
  import { createContextScope as createContextScope2 } from "@radix-ui/react-context";
2142
2252
  import { Primitive as Primitive7 } from "@radix-ui/react-primitive";
2143
2253
  import { Slot as Slot7 } from "@radix-ui/react-slot";
2144
2254
  import { useControllableState as useControllableState3 } from "@radix-ui/react-use-controllable-state";
2145
- import React24, { forwardRef as forwardRef16 } from "react";
2255
+ import React24, { forwardRef as forwardRef16, useCallback as useCallback7 } from "react";
2146
2256
  var TREEGRID_ROW_NAME = "TreegridRow";
2147
2257
  var [createTreegridRowContext, createTreegridRowScope] = createContextScope2(TREEGRID_ROW_NAME, []);
2148
2258
  var [TreegridRowProvider, useTreegridRowContext] = createTreegridRowContext(TREEGRID_ROW_NAME);
@@ -2152,15 +2262,44 @@ var TreegridRoot = /* @__PURE__ */ forwardRef16(({ asChild, classNames, children
2152
2262
  var _effect = _useSignals24();
2153
2263
  try {
2154
2264
  const { tx } = useThemeContext();
2155
- const Root7 = asChild ? Slot7 : Primitive7.div;
2156
- const arrowNavigationAttrs = useArrowNavigationGroup({
2157
- axis: "vertical",
2158
- tabbable: false,
2159
- circular: true
2160
- });
2161
- return /* @__PURE__ */ React24.createElement(Root7, {
2265
+ const Root8 = asChild ? Slot7 : Primitive7.div;
2266
+ const { findFirstFocusable } = useFocusFinders();
2267
+ const handleKeyDown = useCallback7((event) => {
2268
+ switch (event.key) {
2269
+ case "ArrowDown":
2270
+ case "ArrowUp": {
2271
+ const direction = event.key === "ArrowDown" ? "down" : "up";
2272
+ const target = event.target;
2273
+ const ancestorWithArrowKeys = target.closest(`[data-arrow-keys*="${direction}"], [data-arrow-keys="all"]`);
2274
+ if (!ancestorWithArrowKeys) {
2275
+ const currentRow = target.closest('[role="row"]');
2276
+ if (currentRow) {
2277
+ const treegrid = currentRow.closest('[role="treegrid"]');
2278
+ if (treegrid) {
2279
+ const rows = Array.from(treegrid.querySelectorAll('[role="row"]'));
2280
+ const currentIndex = rows.indexOf(currentRow);
2281
+ const nextIndex = direction === "down" ? currentIndex + 1 : currentIndex - 1;
2282
+ const targetRow = rows[nextIndex];
2283
+ if (targetRow) {
2284
+ const firstFocusable = findFirstFocusable(targetRow);
2285
+ if (firstFocusable) {
2286
+ event.preventDefault();
2287
+ firstFocusable.focus();
2288
+ }
2289
+ }
2290
+ }
2291
+ }
2292
+ }
2293
+ break;
2294
+ }
2295
+ }
2296
+ props.onKeyDown?.(event);
2297
+ }, [
2298
+ findFirstFocusable
2299
+ ]);
2300
+ return /* @__PURE__ */ React24.createElement(Root8, {
2162
2301
  role: "treegrid",
2163
- ...arrowNavigationAttrs,
2302
+ onKeyDown: handleKeyDown,
2164
2303
  ...props,
2165
2304
  className: tx("treegrid.root", "treegrid", {}, classNames),
2166
2305
  style: {
@@ -2177,7 +2316,7 @@ var TreegridRow = /* @__PURE__ */ forwardRef16(({ __treegridRowScope, asChild, c
2177
2316
  var _effect = _useSignals24();
2178
2317
  try {
2179
2318
  const { tx } = useThemeContext();
2180
- const Root7 = asChild ? Slot7 : Primitive7.div;
2319
+ const Root8 = asChild ? Slot7 : Primitive7.div;
2181
2320
  const pathParts = id.split(PATH_SEPARATOR);
2182
2321
  const level = pathParts.length - 1;
2183
2322
  const [open, onOpenChange] = useControllableState3({
@@ -2185,20 +2324,11 @@ var TreegridRow = /* @__PURE__ */ forwardRef16(({ __treegridRowScope, asChild, c
2185
2324
  onChange: propsOnOpenChange,
2186
2325
  defaultProp: defaultOpen
2187
2326
  });
2188
- const focusableGroupAttrs = useFocusableGroup({
2189
- tabBehavior: "limited"
2190
- });
2191
- const arrowGroupAttrs = useArrowNavigationGroup({
2192
- axis: "horizontal",
2193
- tabbable: false,
2194
- circular: false,
2195
- memorizeCurrent: false
2196
- });
2197
2327
  return /* @__PURE__ */ React24.createElement(TreegridRowProvider, {
2198
2328
  open,
2199
2329
  onOpenChange,
2200
2330
  scope: __treegridRowScope
2201
- }, /* @__PURE__ */ React24.createElement(Root7, {
2331
+ }, /* @__PURE__ */ React24.createElement(Root8, {
2202
2332
  role: "row",
2203
2333
  "aria-level": level,
2204
2334
  className: tx("treegrid.row", "treegrid__row", {
@@ -2208,16 +2338,10 @@ var TreegridRow = /* @__PURE__ */ forwardRef16(({ __treegridRowScope, asChild, c
2208
2338
  "aria-expanded": open,
2209
2339
  "aria-owns": parentOf
2210
2340
  },
2211
- tabIndex: 0,
2212
- ...focusableGroupAttrs,
2213
2341
  ...props,
2214
2342
  id,
2215
2343
  ref: forwardedRef
2216
- }, /* @__PURE__ */ React24.createElement("div", {
2217
- role: "none",
2218
- className: "contents",
2219
- ...arrowGroupAttrs
2220
- }, children)));
2344
+ }, children));
2221
2345
  } finally {
2222
2346
  _effect.f();
2223
2347
  }
@@ -2250,17 +2374,18 @@ var Treegrid = {
2250
2374
 
2251
2375
  // src/components/Main/Main.tsx
2252
2376
  import { useSignals as _useSignals25 } from "@preact-signals/safe-react/tracking";
2377
+ import { useFocusableGroup } from "@fluentui/react-tabster";
2253
2378
  import { createContext as createContext10 } from "@radix-ui/react-context";
2254
- import { Root as DialogRoot2, DialogContent as DialogContent2, DialogTitle as DialogTitle2 } from "@radix-ui/react-dialog";
2379
+ import { DialogContent as DialogContent2, Root as DialogRoot2, DialogTitle as DialogTitle2 } from "@radix-ui/react-dialog";
2255
2380
  import { Primitive as Primitive8 } from "@radix-ui/react-primitive";
2256
2381
  import { Slot as Slot8 } from "@radix-ui/react-slot";
2257
2382
  import { useControllableState as useControllableState4 } from "@radix-ui/react-use-controllable-state";
2258
- import React25, { forwardRef as forwardRef17, useCallback as useCallback7, useEffect as useEffect5, useRef as useRef2, useState as useState7 } from "react";
2383
+ import React25, { forwardRef as forwardRef17, useCallback as useCallback9, useEffect as useEffect6, useRef as useRef2, useState as useState8 } from "react";
2259
2384
  import { log } from "@dxos/log";
2260
- import { useMediaQuery, useForwardedRef } from "@dxos/react-hooks";
2385
+ import { useForwardedRef, useMediaQuery } from "@dxos/react-hooks";
2261
2386
 
2262
2387
  // src/components/Main/useSwipeToDismiss.ts
2263
- import { useCallback as useCallback6, useEffect as useEffect4, useState as useState6 } from "react";
2388
+ import { useCallback as useCallback8, useEffect as useEffect5, useState as useState7 } from "react";
2264
2389
  var useSwipeToDismiss = (ref, {
2265
2390
  onDismiss,
2266
2391
  dismissThreshold = 64,
@@ -2269,22 +2394,22 @@ var useSwipeToDismiss = (ref, {
2269
2394
  /* side = 'inline-start' */
2270
2395
  }) => {
2271
2396
  const $root = ref.current;
2272
- const [motionState, setMotionState] = useState6(0);
2273
- const [gestureStartX, setGestureStartX] = useState6(0);
2274
- const setIdle = useCallback6(() => {
2397
+ const [motionState, setMotionState] = useState7(0);
2398
+ const [gestureStartX, setGestureStartX] = useState7(0);
2399
+ const setIdle = useCallback8(() => {
2275
2400
  setMotionState(0);
2276
2401
  $root?.style.removeProperty("inset-inline-start");
2277
2402
  $root?.style.setProperty("transition-duration", "200ms");
2278
2403
  }, [
2279
2404
  $root
2280
2405
  ]);
2281
- const setFollowing = useCallback6(() => {
2406
+ const setFollowing = useCallback8(() => {
2282
2407
  setMotionState(2);
2283
2408
  $root?.style.setProperty("transition-duration", "0ms");
2284
2409
  }, [
2285
2410
  $root
2286
2411
  ]);
2287
- const handlePointerDown = useCallback6(({ screenX }) => {
2412
+ const handlePointerDown = useCallback8(({ screenX }) => {
2288
2413
  if (motionState === 0) {
2289
2414
  setMotionState(1);
2290
2415
  setGestureStartX(screenX);
@@ -2292,7 +2417,7 @@ var useSwipeToDismiss = (ref, {
2292
2417
  }, [
2293
2418
  motionState
2294
2419
  ]);
2295
- const handlePointerMove = useCallback6(({ screenX }) => {
2420
+ const handlePointerMove = useCallback8(({ screenX }) => {
2296
2421
  if ($root) {
2297
2422
  const delta = Math.min(screenX - gestureStartX, 0);
2298
2423
  switch (motionState) {
@@ -2316,12 +2441,12 @@ var useSwipeToDismiss = (ref, {
2316
2441
  motionState,
2317
2442
  gestureStartX
2318
2443
  ]);
2319
- const handlePointerUp = useCallback6(() => {
2444
+ const handlePointerUp = useCallback8(() => {
2320
2445
  setIdle();
2321
2446
  }, [
2322
2447
  setIdle
2323
2448
  ]);
2324
- useEffect4(() => {
2449
+ useEffect5(() => {
2325
2450
  $root?.addEventListener("pointerdown", handlePointerDown);
2326
2451
  return () => {
2327
2452
  $root?.removeEventListener("pointerdown", handlePointerDown);
@@ -2330,7 +2455,7 @@ var useSwipeToDismiss = (ref, {
2330
2455
  $root,
2331
2456
  handlePointerDown
2332
2457
  ]);
2333
- useEffect4(() => {
2458
+ useEffect5(() => {
2334
2459
  $root && document.documentElement.addEventListener("pointermove", handlePointerMove);
2335
2460
  return () => {
2336
2461
  document.documentElement.removeEventListener("pointermove", handlePointerMove);
@@ -2339,7 +2464,7 @@ var useSwipeToDismiss = (ref, {
2339
2464
  $root,
2340
2465
  handlePointerMove
2341
2466
  ]);
2342
- useEffect4(() => {
2467
+ useEffect5(() => {
2343
2468
  $root && document.documentElement.addEventListener("pointerup", handlePointerUp);
2344
2469
  return () => {
2345
2470
  document.documentElement.removeEventListener("pointerup", handlePointerUp);
@@ -2352,14 +2477,14 @@ var useSwipeToDismiss = (ref, {
2352
2477
 
2353
2478
  // src/components/Main/Main.tsx
2354
2479
  var __dxlog_file = "/__w/dxos/dxos/packages/ui/react-ui/src/components/Main/Main.tsx";
2480
+ var MAIN_NAME = "Main";
2355
2481
  var MAIN_ROOT_NAME = "MainRoot";
2356
2482
  var NAVIGATION_SIDEBAR_NAME = "NavigationSidebar";
2357
2483
  var COMPLEMENTARY_SIDEBAR_NAME = "ComplementarySidebar";
2358
- var MAIN_NAME = "Main";
2359
2484
  var GENERIC_CONSUMER_NAME = "GenericConsumer";
2360
2485
  var landmarkAttr = "data-main-landmark";
2361
2486
  var useLandmarkMover = (propsOnKeyDown, landmark) => {
2362
- const handleKeyDown = useCallback7((event) => {
2487
+ const handleKeyDown = useCallback9((event) => {
2363
2488
  const target = event.target;
2364
2489
  if (event.target === event.currentTarget && event.key === "Tab" && target.hasAttribute(landmarkAttr)) {
2365
2490
  event.preventDefault();
@@ -2373,12 +2498,12 @@ var useLandmarkMover = (propsOnKeyDown, landmark) => {
2373
2498
  }, [
2374
2499
  propsOnKeyDown
2375
2500
  ]);
2376
- const focusableGroupAttrs = window ? {} : {
2501
+ const focusableGroupAttrs = useFocusableGroup({
2377
2502
  tabBehavior: "limited",
2378
2503
  ignoreDefaultKeydown: {
2379
2504
  Tab: true
2380
2505
  }
2381
- };
2506
+ });
2382
2507
  return {
2383
2508
  onKeyDown: handleKeyDown,
2384
2509
  [landmarkAttr]: landmark,
@@ -2389,19 +2514,19 @@ var useLandmarkMover = (propsOnKeyDown, landmark) => {
2389
2514
  var [MainProvider, useMainContext] = createContext10(MAIN_NAME, {
2390
2515
  resizing: false,
2391
2516
  navigationSidebarState: "closed",
2392
- setNavigationSidebarState: (nextState) => {
2517
+ setNavigationSidebarState: (_nextState) => {
2393
2518
  log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
2394
2519
  F: __dxlog_file,
2395
- L: 82,
2520
+ L: 92,
2396
2521
  S: void 0,
2397
2522
  C: (f, a) => f(...a)
2398
2523
  });
2399
2524
  },
2400
2525
  complementarySidebarState: "closed",
2401
- setComplementarySidebarState: (nextState) => {
2526
+ setComplementarySidebarState: (_nextState) => {
2402
2527
  log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
2403
2528
  F: __dxlog_file,
2404
- L: 87,
2529
+ L: 97,
2405
2530
  S: void 0,
2406
2531
  C: (f, a) => f(...a)
2407
2532
  });
@@ -2412,31 +2537,29 @@ var useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
2412
2537
  return {
2413
2538
  navigationSidebarState,
2414
2539
  setNavigationSidebarState,
2415
- toggleNavigationSidebar: useCallback7(() => setNavigationSidebarState(navigationSidebarState === "expanded" ? "closed" : "expanded"), [
2540
+ toggleNavigationSidebar: useCallback9(() => setNavigationSidebarState(navigationSidebarState === "expanded" ? "closed" : "expanded"), [
2416
2541
  navigationSidebarState,
2417
2542
  setNavigationSidebarState
2418
2543
  ]),
2419
- openNavigationSidebar: useCallback7(() => setNavigationSidebarState("expanded"), []),
2420
- collapseNavigationSidebar: useCallback7(() => setNavigationSidebarState("collapsed"), []),
2421
- closeNavigationSidebar: useCallback7(() => setNavigationSidebarState("closed"), []),
2544
+ openNavigationSidebar: useCallback9(() => setNavigationSidebarState("expanded"), []),
2545
+ collapseNavigationSidebar: useCallback9(() => setNavigationSidebarState("collapsed"), []),
2546
+ closeNavigationSidebar: useCallback9(() => setNavigationSidebarState("closed"), []),
2422
2547
  complementarySidebarState,
2423
2548
  setComplementarySidebarState,
2424
- toggleComplementarySidebar: useCallback7(() => setComplementarySidebarState(complementarySidebarState === "expanded" ? "closed" : "expanded"), [
2549
+ toggleComplementarySidebar: useCallback9(() => setComplementarySidebarState(complementarySidebarState === "expanded" ? "closed" : "expanded"), [
2425
2550
  complementarySidebarState,
2426
2551
  setComplementarySidebarState
2427
2552
  ]),
2428
- openComplementarySidebar: useCallback7(() => setComplementarySidebarState("expanded"), []),
2429
- collapseComplementarySidebar: useCallback7(() => setComplementarySidebarState("collapsed"), []),
2430
- closeComplementarySidebar: useCallback7(() => setComplementarySidebarState("closed"), [])
2553
+ openComplementarySidebar: useCallback9(() => setComplementarySidebarState("expanded"), []),
2554
+ collapseComplementarySidebar: useCallback9(() => setComplementarySidebarState("collapsed"), []),
2555
+ closeComplementarySidebar: useCallback9(() => setComplementarySidebarState("closed"), [])
2431
2556
  };
2432
2557
  };
2433
2558
  var resizeDebounce = 3e3;
2434
2559
  var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNavigationSidebarState, onNavigationSidebarStateChange, complementarySidebarState: propsComplementarySidebarState, defaultComplementarySidebarState, onComplementarySidebarStateChange, children, ...props }) => {
2435
2560
  var _effect = _useSignals25();
2436
2561
  try {
2437
- const [isLg] = useMediaQuery("lg", {
2438
- ssr: false
2439
- });
2562
+ const [isLg] = useMediaQuery("lg");
2440
2563
  const [navigationSidebarState = isLg ? "expanded" : "collapsed", setNavigationSidebarState] = useControllableState4({
2441
2564
  prop: propsNavigationSidebarState,
2442
2565
  defaultProp: defaultNavigationSidebarState,
@@ -2447,9 +2570,9 @@ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNa
2447
2570
  defaultProp: defaultComplementarySidebarState,
2448
2571
  onChange: onComplementarySidebarStateChange
2449
2572
  });
2450
- const [resizing, setResizing] = useState7(false);
2573
+ const [resizing, setResizing] = useState8(false);
2451
2574
  const resizeInterval = useRef2(null);
2452
- const handleResize = useCallback7(() => {
2575
+ const handleResize = useCallback9(() => {
2453
2576
  setResizing(true);
2454
2577
  if (resizeInterval.current) {
2455
2578
  clearTimeout(resizeInterval.current);
@@ -2459,7 +2582,7 @@ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNa
2459
2582
  resizeInterval.current = null;
2460
2583
  }, resizeDebounce);
2461
2584
  }, []);
2462
- useEffect5(() => {
2585
+ useEffect6(() => {
2463
2586
  window.addEventListener("resize", handleResize);
2464
2587
  return () => window.removeEventListener("resize", handleResize);
2465
2588
  }, [
@@ -2484,9 +2607,7 @@ var handleOpenAutoFocus = (event) => {
2484
2607
  var MainSidebar = /* @__PURE__ */ forwardRef17(({ classNames, children, swipeToDismiss, onOpenAutoFocus, state, resizing, onStateChange, side, label, ...props }, forwardedRef) => {
2485
2608
  var _effect = _useSignals25();
2486
2609
  try {
2487
- const [isLg] = useMediaQuery("lg", {
2488
- ssr: false
2489
- });
2610
+ const [isLg] = useMediaQuery("lg");
2490
2611
  const { tx } = useThemeContext();
2491
2612
  const { t } = useTranslation();
2492
2613
  const ref = useForwardedRef(forwardedRef);
@@ -2494,22 +2615,25 @@ var MainSidebar = /* @__PURE__ */ forwardRef17(({ classNames, children, swipeToD
2494
2615
  useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {
2495
2616
  onDismiss: () => onStateChange?.("closed")
2496
2617
  });
2497
- const handleKeyDown = useCallback7((event) => {
2498
- if (event.key === "Escape") {
2499
- event.target.closest("[data-tabster]")?.focus();
2618
+ const handleKeyDown = useCallback9((event) => {
2619
+ const focusGroupParent = event.target.closest("[data-tabster]");
2620
+ if (event.key === "Escape" && focusGroupParent) {
2621
+ event.preventDefault();
2622
+ event.stopPropagation();
2623
+ focusGroupParent.focus();
2500
2624
  }
2501
2625
  props.onKeyDown?.(event);
2502
2626
  }, [
2503
2627
  props.onKeyDown
2504
2628
  ]);
2505
- const Root7 = isLg ? Primitive8.div : DialogContent2;
2629
+ const Root8 = isLg ? Primitive8.div : DialogContent2;
2506
2630
  return /* @__PURE__ */ React25.createElement(DialogRoot2, {
2507
2631
  open: state !== "closed",
2508
2632
  "aria-label": toLocalizedString(label, t),
2509
2633
  modal: false
2510
2634
  }, !isLg && /* @__PURE__ */ React25.createElement(DialogTitle2, {
2511
2635
  className: "sr-only"
2512
- }, toLocalizedString(label, t)), /* @__PURE__ */ React25.createElement(Root7, {
2636
+ }, toLocalizedString(label, t)), /* @__PURE__ */ React25.createElement(Root8, {
2513
2637
  ...!isLg && {
2514
2638
  forceMount: true,
2515
2639
  tabIndex: -1,
@@ -2520,9 +2644,9 @@ var MainSidebar = /* @__PURE__ */ forwardRef17(({ classNames, children, swipeToD
2520
2644
  "data-state": state,
2521
2645
  "data-resizing": resizing ? "true" : "false",
2522
2646
  className: tx("main.sidebar", "main__sidebar", {}, classNames),
2523
- onKeyDown: handleKeyDown,
2647
+ onKeyDownCapture: handleKeyDown,
2524
2648
  ...state === "closed" && {
2525
- inert: "true"
2649
+ inert: true
2526
2650
  },
2527
2651
  ref
2528
2652
  }, children));
@@ -2573,9 +2697,9 @@ var MainContent = /* @__PURE__ */ forwardRef17(({ asChild, classNames, bounce, h
2573
2697
  try {
2574
2698
  const { navigationSidebarState, complementarySidebarState } = useMainContext(MAIN_NAME);
2575
2699
  const { tx } = useThemeContext();
2576
- const Root7 = asChild ? Slot8 : role ? "div" : "main";
2700
+ const Root8 = asChild ? Slot8 : role ? "div" : "main";
2577
2701
  const mover = useLandmarkMover(props.onKeyDown, "1");
2578
- return /* @__PURE__ */ React25.createElement(Root7, {
2702
+ return /* @__PURE__ */ React25.createElement(Root8, {
2579
2703
  role,
2580
2704
  ...handlesFocus && {
2581
2705
  ...mover
@@ -2598,9 +2722,7 @@ MainContent.displayName = MAIN_NAME;
2598
2722
  var MainOverlay = /* @__PURE__ */ forwardRef17(({ classNames, ...props }, forwardedRef) => {
2599
2723
  var _effect = _useSignals25();
2600
2724
  try {
2601
- const [isLg] = useMediaQuery("lg", {
2602
- ssr: false
2603
- });
2725
+ const [isLg] = useMediaQuery("lg");
2604
2726
  const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } = useMainContext(MAIN_NAME);
2605
2727
  const { tx } = useThemeContext();
2606
2728
  return /* @__PURE__ */ React25.createElement("div", {
@@ -2638,7 +2760,7 @@ import { Slot as Slot9 } from "@radix-ui/react-slot";
2638
2760
  import React26, { forwardRef as forwardRef18 } from "react";
2639
2761
 
2640
2762
  // src/hooks/useSafeCollisionPadding.ts
2641
- import { useMemo as useMemo3 } from "react";
2763
+ import { useMemo as useMemo4 } from "react";
2642
2764
  var propIsNumber = (prop) => Number.isFinite(prop);
2643
2765
  var propsIsRecord = (prop) => !!(prop && typeof prop === "object");
2644
2766
  var safePadding = (propsPadding, safePadding2, side) => {
@@ -2646,7 +2768,7 @@ var safePadding = (propsPadding, safePadding2, side) => {
2646
2768
  };
2647
2769
  var useSafeCollisionPadding = (collisionPadding) => {
2648
2770
  const { safeAreaPadding } = useThemeContext();
2649
- return useMemo3(() => ({
2771
+ return useMemo4(() => ({
2650
2772
  top: safePadding(collisionPadding, safeAreaPadding, "top"),
2651
2773
  right: safePadding(collisionPadding, safeAreaPadding, "right"),
2652
2774
  bottom: safePadding(collisionPadding, safeAreaPadding, "bottom"),
@@ -2669,6 +2791,7 @@ var ContextMenuContent = /* @__PURE__ */ forwardRef18(({ classNames, children, c
2669
2791
  const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
2670
2792
  return /* @__PURE__ */ React26.createElement(ContextMenuPrimitive.Content, {
2671
2793
  ...props,
2794
+ "data-arrow-keys": "up down",
2672
2795
  collisionPadding: safeCollisionPadding,
2673
2796
  className: tx("menu.content", "menu", {
2674
2797
  elevation
@@ -2683,8 +2806,8 @@ var ContextMenuViewport = /* @__PURE__ */ forwardRef18(({ classNames, asChild, c
2683
2806
  var _effect = _useSignals26();
2684
2807
  try {
2685
2808
  const { tx } = useThemeContext();
2686
- const Root7 = asChild ? Slot9 : Primitive9.div;
2687
- return /* @__PURE__ */ React26.createElement(Root7, {
2809
+ const Root8 = asChild ? Slot9 : Primitive9.div;
2810
+ return /* @__PURE__ */ React26.createElement(Root8, {
2688
2811
  ...props,
2689
2812
  className: tx("menu.viewport", "menu__viewport", {}, classNames),
2690
2813
  ref: forwardedRef
@@ -2786,7 +2909,7 @@ import { createMenuScope } from "@radix-ui/react-menu";
2786
2909
  import { Primitive as Primitive10 } from "@radix-ui/react-primitive";
2787
2910
  import { Slot as Slot10 } from "@radix-ui/react-slot";
2788
2911
  import { useControllableState as useControllableState5 } from "@radix-ui/react-use-controllable-state";
2789
- import React27, { useRef as useRef3, useCallback as useCallback8, forwardRef as forwardRef19, useEffect as useEffect6 } from "react";
2912
+ import React27, { forwardRef as forwardRef19, useCallback as useCallback10, useEffect as useEffect7, useMemo as useMemo5, useRef as useRef3 } from "react";
2790
2913
  var DROPDOWN_MENU_NAME = "DropdownMenu";
2791
2914
  var [createDropdownMenuContext, createDropdownMenuScope] = createContextScope3(DROPDOWN_MENU_NAME, [
2792
2915
  createMenuScope
@@ -2811,7 +2934,7 @@ var DropdownMenuRoot = (props) => {
2811
2934
  contentId: useId3(),
2812
2935
  open,
2813
2936
  onOpenChange: setOpen,
2814
- onOpenToggle: useCallback8(() => setOpen((prevOpen) => !prevOpen), [
2937
+ onOpenToggle: useCallback10(() => setOpen((prevOpen) => !prevOpen), [
2815
2938
  setOpen
2816
2939
  ]),
2817
2940
  modal
@@ -2848,6 +2971,7 @@ var DropdownMenuTrigger = /* @__PURE__ */ forwardRef19((props, forwardedRef) =>
2848
2971
  disabled,
2849
2972
  ...triggerProps,
2850
2973
  ref: composeRefs(forwardedRef, context.triggerRef),
2974
+ "data-arrow-keys": "down",
2851
2975
  onPointerDown: composeEventHandlers2(props.onPointerDown, (event) => {
2852
2976
  if (!disabled && event.button === 0 && event.ctrlKey === false) {
2853
2977
  context.onOpenToggle();
@@ -2890,7 +3014,7 @@ var DropdownMenuVirtualTrigger = (props) => {
2890
3014
  const { __scopeDropdownMenu, virtualRef } = props;
2891
3015
  const context = useDropdownMenuContext(VIRTUAL_TRIGGER_NAME, __scopeDropdownMenu);
2892
3016
  const menuScope = useMenuScope(__scopeDropdownMenu);
2893
- useEffect6(() => {
3017
+ useEffect7(() => {
2894
3018
  if (virtualRef.current) {
2895
3019
  context.triggerRef.current = virtualRef.current;
2896
3020
  }
@@ -2923,8 +3047,8 @@ var DropdownMenuViewport = /* @__PURE__ */ forwardRef19(({ classNames, asChild,
2923
3047
  var _effect = _useSignals27();
2924
3048
  try {
2925
3049
  const { tx } = useThemeContext();
2926
- const Root7 = asChild ? Slot10 : Primitive10.div;
2927
- return /* @__PURE__ */ React27.createElement(Root7, {
3050
+ const Root8 = asChild ? Slot10 : Primitive10.div;
3051
+ return /* @__PURE__ */ React27.createElement(Root8, {
2928
3052
  ...props,
2929
3053
  className: tx("menu.viewport", "menu__viewport", {}, classNames),
2930
3054
  ref: forwardedRef
@@ -2937,18 +3061,35 @@ var CONTENT_NAME2 = "DropdownMenuContent";
2937
3061
  var DropdownMenuContent = /* @__PURE__ */ forwardRef19((props, forwardedRef) => {
2938
3062
  var _effect = _useSignals27();
2939
3063
  try {
2940
- const { __scopeDropdownMenu, classNames, collisionPadding = 8, ...contentProps } = props;
3064
+ const { __scopeDropdownMenu, classNames, collisionPadding = 8, collisionBoundary, ...contentProps } = props;
2941
3065
  const { tx } = useThemeContext();
2942
3066
  const context = useDropdownMenuContext(CONTENT_NAME2, __scopeDropdownMenu);
2943
3067
  const elevation = useElevationContext();
2944
3068
  const menuScope = useMenuScope(__scopeDropdownMenu);
2945
3069
  const hasInteractedOutsideRef = useRef3(false);
2946
3070
  const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
3071
+ const computedCollisionBoundary = useMemo5(() => {
3072
+ const closestBoundary = context.triggerRef.current?.closest("[data-popover-collision-boundary]");
3073
+ return closestBoundary ? Array.isArray(collisionBoundary) ? [
3074
+ closestBoundary,
3075
+ ...collisionBoundary
3076
+ ] : collisionBoundary ? [
3077
+ closestBoundary,
3078
+ collisionBoundary
3079
+ ] : [
3080
+ closestBoundary
3081
+ ] : collisionBoundary;
3082
+ }, [
3083
+ context.open,
3084
+ collisionBoundary,
3085
+ context.triggerRef.current
3086
+ ]);
2947
3087
  return /* @__PURE__ */ React27.createElement(MenuPrimitive.Content, {
2948
3088
  id: context.contentId,
2949
3089
  "aria-labelledby": context.triggerId,
2950
3090
  ...menuScope,
2951
3091
  ...contentProps,
3092
+ collisionBoundary: computedCollisionBoundary,
2952
3093
  collisionPadding: safeCollisionPadding,
2953
3094
  ref: forwardedRef,
2954
3095
  onCloseAutoFocus: composeEventHandlers2(props.onCloseAutoFocus, (event) => {
@@ -2966,6 +3107,7 @@ var DropdownMenuContent = /* @__PURE__ */ forwardRef19((props, forwardedRef) =>
2966
3107
  hasInteractedOutsideRef.current = true;
2967
3108
  }
2968
3109
  }),
3110
+ "data-arrow-keys": "up down",
2969
3111
  className: tx("menu.content", "menu", {
2970
3112
  elevation
2971
3113
  }, classNames),
@@ -3076,11 +3218,13 @@ var RADIO_ITEM_NAME = "DropdownMenuRadioItem";
3076
3218
  var DropdownMenuRadioItem = /* @__PURE__ */ forwardRef19((props, forwardedRef) => {
3077
3219
  var _effect = _useSignals27();
3078
3220
  try {
3079
- const { __scopeDropdownMenu, ...radioItemProps } = props;
3221
+ const { __scopeDropdownMenu, classNames, ...itemProps } = props;
3080
3222
  const menuScope = useMenuScope(__scopeDropdownMenu);
3081
- return /* @__PURE__ */ React27.createElement(MenuPrimitive.RadioItem, {
3223
+ const { tx } = useThemeContext();
3224
+ return /* @__PURE__ */ React27.createElement(MenuPrimitive.Item, {
3082
3225
  ...menuScope,
3083
- ...radioItemProps,
3226
+ ...itemProps,
3227
+ className: tx("menu.item", "menu__item", {}, classNames),
3084
3228
  ref: forwardedRef
3085
3229
  });
3086
3230
  } finally {
@@ -3247,12 +3391,12 @@ var MessageRoot = /* @__PURE__ */ forwardRef20(({ asChild, valence = "neutral",
3247
3391
  const titleId = useId4("message__title", propsTitleId);
3248
3392
  const descriptionId = useId4("message__description", propsDescriptionId);
3249
3393
  const elevation = useElevationContext(propsElevation);
3250
- const Root7 = asChild ? Slot11 : Primitive11.div;
3394
+ const Root8 = asChild ? Slot11 : Primitive11.div;
3251
3395
  return /* @__PURE__ */ React28.createElement(MessageProvider, {
3252
3396
  titleId,
3253
3397
  descriptionId,
3254
3398
  valence
3255
- }, /* @__PURE__ */ React28.createElement(Root7, {
3399
+ }, /* @__PURE__ */ React28.createElement(Root8, {
3256
3400
  role: valence === "neutral" ? "paragraph" : "alert",
3257
3401
  ...props,
3258
3402
  className: tx("message.root", "message", {
@@ -3274,8 +3418,8 @@ var MessageTitle = /* @__PURE__ */ forwardRef20(({ asChild, classNames, children
3274
3418
  try {
3275
3419
  const { tx } = useThemeContext();
3276
3420
  const { titleId, valence } = useMessageContext(MESSAGE_TITLE_NAME);
3277
- const Root7 = asChild ? Slot11 : Primitive11.h2;
3278
- return /* @__PURE__ */ React28.createElement(Root7, {
3421
+ const Root8 = asChild ? Slot11 : Primitive11.h2;
3422
+ return /* @__PURE__ */ React28.createElement(Root8, {
3279
3423
  ...props,
3280
3424
  className: tx("message.title", "message__title", {}, classNames),
3281
3425
  id: titleId,
@@ -3298,8 +3442,8 @@ var MessageContent = /* @__PURE__ */ forwardRef20(({ asChild, classNames, childr
3298
3442
  try {
3299
3443
  const { tx } = useThemeContext();
3300
3444
  const { descriptionId } = useMessageContext(MESSAGE_BODY_NAME);
3301
- const Root7 = asChild ? Slot11 : Primitive11.p;
3302
- return /* @__PURE__ */ React28.createElement(Root7, {
3445
+ const Root8 = asChild ? Slot11 : Primitive11.p;
3446
+ return /* @__PURE__ */ React28.createElement(Root8, {
3303
3447
  ...props,
3304
3448
  className: tx("message.content", "message__content", {}, classNames),
3305
3449
  id: descriptionId,
@@ -3334,7 +3478,7 @@ import { Primitive as Primitive12 } from "@radix-ui/react-primitive";
3334
3478
  import { Slot as Slot12 } from "@radix-ui/react-slot";
3335
3479
  import { useControllableState as useControllableState6 } from "@radix-ui/react-use-controllable-state";
3336
3480
  import { hideOthers } from "aria-hidden";
3337
- import React29, { forwardRef as forwardRef21, useRef as useRef4, useCallback as useCallback9, useState as useState8, useEffect as useEffect7 } from "react";
3481
+ import React29, { forwardRef as forwardRef21, useCallback as useCallback11, useEffect as useEffect8, useMemo as useMemo6, useRef as useRef4, useState as useState9 } from "react";
3338
3482
  import { RemoveScroll } from "react-remove-scroll";
3339
3483
  var POPOVER_NAME = "Popover";
3340
3484
  var [createPopoverContext, createPopoverScope] = createContextScope4(POPOVER_NAME, [
@@ -3348,7 +3492,7 @@ var PopoverRoot = (props) => {
3348
3492
  const { __scopePopover, children, open: openProp, defaultOpen, onOpenChange, modal = false } = props;
3349
3493
  const popperScope = usePopperScope2(__scopePopover);
3350
3494
  const triggerRef = useRef4(null);
3351
- const [hasCustomAnchor, setHasCustomAnchor] = useState8(false);
3495
+ const [hasCustomAnchor, setHasCustomAnchor] = useState9(false);
3352
3496
  const [open = false, setOpen] = useControllableState6({
3353
3497
  prop: openProp,
3354
3498
  defaultProp: defaultOpen,
@@ -3360,12 +3504,12 @@ var PopoverRoot = (props) => {
3360
3504
  triggerRef,
3361
3505
  open,
3362
3506
  onOpenChange: setOpen,
3363
- onOpenToggle: useCallback9(() => setOpen((prevOpen) => !prevOpen), [
3507
+ onOpenToggle: useCallback11(() => setOpen((prevOpen) => !prevOpen), [
3364
3508
  setOpen
3365
3509
  ]),
3366
3510
  hasCustomAnchor,
3367
- onCustomAnchorAdd: useCallback9(() => setHasCustomAnchor(true), []),
3368
- onCustomAnchorRemove: useCallback9(() => setHasCustomAnchor(false), []),
3511
+ onCustomAnchorAdd: useCallback11(() => setHasCustomAnchor(true), []),
3512
+ onCustomAnchorRemove: useCallback11(() => setHasCustomAnchor(false), []),
3369
3513
  modal
3370
3514
  }, children));
3371
3515
  } finally {
@@ -3381,7 +3525,7 @@ var PopoverAnchor = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
3381
3525
  const context = usePopoverContext(ANCHOR_NAME, __scopePopover);
3382
3526
  const popperScope = usePopperScope2(__scopePopover);
3383
3527
  const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
3384
- useEffect7(() => {
3528
+ useEffect8(() => {
3385
3529
  onCustomAnchorAdd();
3386
3530
  return () => onCustomAnchorRemove();
3387
3531
  }, [
@@ -3432,7 +3576,7 @@ var PopoverVirtualTrigger = (props) => {
3432
3576
  const { __scopePopover, virtualRef } = props;
3433
3577
  const context = usePopoverContext(VIRTUAL_TRIGGER_NAME2, __scopePopover);
3434
3578
  const popperScope = usePopperScope2(__scopePopover);
3435
- useEffect7(() => {
3579
+ useEffect8(() => {
3436
3580
  if (virtualRef.current) {
3437
3581
  context.triggerRef.current = virtualRef.current;
3438
3582
  }
@@ -3497,7 +3641,7 @@ var PopoverContentModal = /* @__PURE__ */ forwardRef21((props, forwardedRef) =>
3497
3641
  const contentRef = useRef4(null);
3498
3642
  const composedRefs = useComposedRefs2(forwardedRef, contentRef);
3499
3643
  const isRightClickOutsideRef = useRef4(false);
3500
- useEffect7(() => {
3644
+ useEffect8(() => {
3501
3645
  const content = contentRef.current;
3502
3646
  if (content) {
3503
3647
  return hideOthers(content);
@@ -3584,13 +3728,29 @@ var PopoverContentNonModal = /* @__PURE__ */ forwardRef21((props, forwardedRef)
3584
3728
  var PopoverContentImpl = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
3585
3729
  var _effect = _useSignals29();
3586
3730
  try {
3587
- const { __scopePopover, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, collisionPadding = 8, classNames, ...contentProps } = props;
3731
+ const { __scopePopover, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, collisionPadding = 8, collisionBoundary, classNames, ...contentProps } = props;
3588
3732
  const context = usePopoverContext(CONTENT_NAME3, __scopePopover);
3589
3733
  const popperScope = usePopperScope2(__scopePopover);
3590
3734
  const { tx } = useThemeContext();
3591
3735
  const elevation = useElevationContext();
3592
3736
  const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
3593
3737
  useFocusGuards();
3738
+ const computedCollisionBoundary = useMemo6(() => {
3739
+ const closestBoundary = context.triggerRef.current?.closest("[data-popover-collision-boundary]");
3740
+ return closestBoundary ? Array.isArray(collisionBoundary) ? [
3741
+ closestBoundary,
3742
+ ...collisionBoundary
3743
+ ] : collisionBoundary ? [
3744
+ closestBoundary,
3745
+ collisionBoundary
3746
+ ] : [
3747
+ closestBoundary
3748
+ ] : collisionBoundary;
3749
+ }, [
3750
+ context.open,
3751
+ collisionBoundary,
3752
+ context.triggerRef.current
3753
+ ]);
3594
3754
  return /* @__PURE__ */ React29.createElement(FocusScope, {
3595
3755
  asChild: true,
3596
3756
  loop: true,
@@ -3612,13 +3772,14 @@ var PopoverContentImpl = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
3612
3772
  ...popperScope,
3613
3773
  ...contentProps,
3614
3774
  collisionPadding: safeCollisionPadding,
3775
+ collisionBoundary: computedCollisionBoundary,
3615
3776
  className: tx("popover.content", "popover", {
3616
3777
  elevation
3617
3778
  }, classNames),
3618
3779
  ref: forwardedRef,
3619
3780
  style: {
3620
3781
  ...contentProps.style,
3621
- // re-namespace exposed content custom properties
3782
+ // Re-namespace exposed content custom properties.
3622
3783
  ...{
3623
3784
  "--radix-popover-content-transform-origin": "var(--radix-popper-transform-origin)",
3624
3785
  "--radix-popover-content-available-width": "var(--radix-popper-available-width)",
@@ -3671,8 +3832,8 @@ var PopoverViewport = /* @__PURE__ */ forwardRef21(({ classNames, asChild, const
3671
3832
  var _effect = _useSignals29();
3672
3833
  try {
3673
3834
  const { tx } = useThemeContext();
3674
- const Root7 = asChild ? Slot12 : Primitive12.div;
3675
- return /* @__PURE__ */ React29.createElement(Root7, {
3835
+ const Root8 = asChild ? Slot12 : Primitive12.div;
3836
+ return /* @__PURE__ */ React29.createElement(Root8, {
3676
3837
  ...props,
3677
3838
  className: tx("popover.viewport", "popover__viewport", {
3678
3839
  constrainInline,
@@ -3731,7 +3892,7 @@ var Status = /* @__PURE__ */ forwardRef22(({ classNames, children, progress = 0,
3731
3892
 
3732
3893
  // src/components/ScrollArea/ScrollArea.tsx
3733
3894
  import { useSignals as _useSignals31 } from "@preact-signals/safe-react/tracking";
3734
- import { Root as ScrollAreaPrimitiveRoot, Viewport as ScrollAreaPrimitiveViewport, Scrollbar as ScrollAreaPrimitiveScrollbar, Thumb as ScrollAreaPrimitiveThumb, Corner as ScrollAreaPrimitiveCorner } from "@radix-ui/react-scroll-area";
3895
+ import { Corner as ScrollAreaPrimitiveCorner, Root as ScrollAreaPrimitiveRoot, Scrollbar as ScrollAreaPrimitiveScrollbar, Thumb as ScrollAreaPrimitiveThumb, Viewport as ScrollAreaPrimitiveViewport } from "@radix-ui/react-scroll-area";
3735
3896
  import React31, { forwardRef as forwardRef23 } from "react";
3736
3897
  var ScrollAreaRoot = /* @__PURE__ */ forwardRef23(({ classNames, ...props }, forwardedRef) => {
3737
3898
  var _effect = _useSignals31();
@@ -3807,44 +3968,204 @@ var ScrollArea = {
3807
3968
  Corner: ScrollAreaCorner
3808
3969
  };
3809
3970
 
3810
- // src/components/Select/Select.tsx
3971
+ // src/components/ScrollContainer/ScrollContainer.tsx
3811
3972
  import { useSignals as _useSignals32 } from "@preact-signals/safe-react/tracking";
3973
+ import { useState as useState10 } from "@preact-signals/safe-react/react";
3974
+ import { createContext as createContext12 } from "@radix-ui/react-context";
3975
+ import React32, { forwardRef as forwardRef24, useCallback as useCallback12, useEffect as useEffect9, useImperativeHandle, useMemo as useMemo7, useRef as useRef5 } from "react";
3976
+ import { addEventListener, combine } from "@dxos/async";
3977
+ import { invariant } from "@dxos/invariant";
3978
+ import { useForwardedRef as useForwardedRef2 } from "@dxos/react-hooks";
3979
+ import { mx as mx5 } from "@dxos/react-ui-theme";
3980
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/ui/react-ui/src/components/ScrollContainer/ScrollContainer.tsx";
3981
+ var isBottom = (el) => {
3982
+ return !!(el && el.scrollHeight - el.scrollTop === el.clientHeight);
3983
+ };
3984
+ var [ScrollContainerProvider, useScrollContainerContext] = createContext12("ScrollContainer");
3985
+ var Root5 = /* @__PURE__ */ forwardRef24(({ children, classNames, pin, fade, behavior: behaviorProp = "smooth" }, forwardedRef) => {
3986
+ var _effect = _useSignals32();
3987
+ try {
3988
+ const scrollerRef = useRef5(null);
3989
+ const autoScrollRef = useRef5(false);
3990
+ const [overflow, setOverflow] = useState10(false);
3991
+ const [pinned, setPinned] = useState10(pin);
3992
+ const timeoutRef = useRef5(void 0);
3993
+ const scrollToBottom = useCallback12((behavior = behaviorProp) => {
3994
+ if (scrollerRef.current) {
3995
+ autoScrollRef.current = true;
3996
+ scrollerRef.current.classList.add("scrollbar-none");
3997
+ scrollerRef.current.scrollTo({
3998
+ top: scrollerRef.current.scrollHeight,
3999
+ behavior
4000
+ });
4001
+ clearTimeout(timeoutRef.current);
4002
+ if (behavior !== "instant") {
4003
+ timeoutRef.current = setTimeout(() => {
4004
+ scrollerRef.current?.classList.remove("scrollbar-none");
4005
+ autoScrollRef.current = false;
4006
+ }, 500);
4007
+ }
4008
+ setPinned(true);
4009
+ }
4010
+ }, []);
4011
+ const controller = useMemo7(() => ({
4012
+ viewport: scrollerRef.current,
4013
+ scrollToTop: () => {
4014
+ invariant(scrollerRef.current, void 0, {
4015
+ F: __dxlog_file2,
4016
+ L: 94,
4017
+ S: void 0,
4018
+ A: [
4019
+ "scrollerRef.current",
4020
+ ""
4021
+ ]
4022
+ });
4023
+ scrollerRef.current.scrollTo({
4024
+ top: 0,
4025
+ behavior: "smooth"
4026
+ });
4027
+ setPinned(false);
4028
+ },
4029
+ scrollToBottom: () => {
4030
+ scrollToBottom("smooth");
4031
+ }
4032
+ }), [
4033
+ scrollToBottom,
4034
+ scrollerRef.current
4035
+ ]);
4036
+ useImperativeHandle(forwardedRef, () => controller, [
4037
+ controller
4038
+ ]);
4039
+ useEffect9(() => {
4040
+ if (!scrollerRef.current) {
4041
+ return;
4042
+ }
4043
+ return combine(
4044
+ // Check if user scrolls.
4045
+ addEventListener(scrollerRef.current, "wheel", () => {
4046
+ setPinned(isBottom(scrollerRef.current));
4047
+ }),
4048
+ // Check if scrolls.
4049
+ addEventListener(scrollerRef.current, "scroll", () => {
4050
+ setOverflow((scrollerRef.current?.scrollTop ?? 0) > 0);
4051
+ })
4052
+ );
4053
+ }, []);
4054
+ return /* @__PURE__ */ React32.createElement(ScrollContainerProvider, {
4055
+ pinned,
4056
+ controller,
4057
+ scrollToBottom
4058
+ }, /* @__PURE__ */ React32.createElement("div", {
4059
+ className: "relative grid flex-1 min-bs-0 overflow-hidden"
4060
+ }, fade && /* @__PURE__ */ React32.createElement("div", {
4061
+ role: "none",
4062
+ "data-visible": overflow,
4063
+ className: mx5(
4064
+ // NOTE: Gradients may not be visible with dark reader extensions.
4065
+ "z-10 absolute block-start-0 inset-inline-0 bs-24 is-full",
4066
+ 'opacity-0 duration-200 transition-opacity data-[visible="true"]:opacity-100',
4067
+ "bg-gradient-to-b from-[--surface-bg] to-transparent pointer-events-none"
4068
+ )
4069
+ }), /* @__PURE__ */ React32.createElement("div", {
4070
+ className: mx5("flex flex-col min-bs-0 overflow-y-auto scrollbar-thin", classNames),
4071
+ ref: scrollerRef
4072
+ }, children)));
4073
+ } finally {
4074
+ _effect.f();
4075
+ }
4076
+ });
4077
+ Root5.displayName = "ScrollContainer.Root";
4078
+ var Viewport = /* @__PURE__ */ forwardRef24(({ classNames, children, ...props }, forwardedRef) => {
4079
+ var _effect = _useSignals32();
4080
+ try {
4081
+ const contentRef = useForwardedRef2(forwardedRef);
4082
+ const { pinned, scrollToBottom } = useScrollContainerContext(Viewport.displayName);
4083
+ useEffect9(() => {
4084
+ if (!pinned || !contentRef.current) {
4085
+ return;
4086
+ }
4087
+ scrollToBottom();
4088
+ const resizeObserver = new ResizeObserver(() => scrollToBottom());
4089
+ resizeObserver.observe(contentRef.current);
4090
+ return () => resizeObserver.disconnect();
4091
+ }, [
4092
+ pinned,
4093
+ scrollToBottom
4094
+ ]);
4095
+ return /* @__PURE__ */ React32.createElement("div", {
4096
+ className: mx5("is-full", classNames),
4097
+ ...props,
4098
+ ref: contentRef
4099
+ }, children);
4100
+ } finally {
4101
+ _effect.f();
4102
+ }
4103
+ });
4104
+ Viewport.displayName = "ScrollContainer.Viewport";
4105
+ var ScrollDownButton = ({ classNames }) => {
4106
+ var _effect = _useSignals32();
4107
+ try {
4108
+ const { pinned, scrollToBottom } = useScrollContainerContext(ScrollDownButton.displayName);
4109
+ return /* @__PURE__ */ React32.createElement("div", {
4110
+ role: "none",
4111
+ className: mx5("absolute bottom-2 right-4 opacity-100 transition-opacity duration-300", pinned && "opacity-0", classNames)
4112
+ }, /* @__PURE__ */ React32.createElement(IconButton, {
4113
+ variant: "primary",
4114
+ icon: "ph--arrow-down--regular",
4115
+ iconOnly: true,
4116
+ size: 4,
4117
+ label: "Scroll down",
4118
+ onClick: () => scrollToBottom()
4119
+ }));
4120
+ } finally {
4121
+ _effect.f();
4122
+ }
4123
+ };
4124
+ ScrollDownButton.displayName = "ScrollContainer.ScrollDownButton";
4125
+ var ScrollContainer = {
4126
+ Root: Root5,
4127
+ Viewport,
4128
+ ScrollDownButton
4129
+ };
4130
+
4131
+ // src/components/Select/Select.tsx
4132
+ import { useSignals as _useSignals33 } from "@preact-signals/safe-react/tracking";
3812
4133
  import * as SelectPrimitive from "@radix-ui/react-select";
3813
- import React32, { forwardRef as forwardRef24 } from "react";
4134
+ import React33, { forwardRef as forwardRef25 } from "react";
3814
4135
  var SelectRoot = SelectPrimitive.Root;
3815
4136
  var SelectTrigger = SelectPrimitive.Trigger;
3816
4137
  var SelectValue = SelectPrimitive.Value;
3817
4138
  var SelectIcon = SelectPrimitive.Icon;
3818
4139
  var SelectPortal = SelectPrimitive.Portal;
3819
- var SelectTriggerButton = /* @__PURE__ */ forwardRef24(({ children, placeholder, ...props }, forwardedRef) => {
3820
- var _effect = _useSignals32();
4140
+ var SelectTriggerButton = /* @__PURE__ */ forwardRef25(({ children, placeholder, ...props }, forwardedRef) => {
4141
+ var _effect = _useSignals33();
3821
4142
  try {
3822
- const { tx } = useThemeContext();
3823
- return /* @__PURE__ */ React32.createElement(SelectPrimitive.Trigger, {
4143
+ return /* @__PURE__ */ React33.createElement(SelectPrimitive.Trigger, {
3824
4144
  asChild: true,
3825
4145
  ref: forwardedRef
3826
- }, /* @__PURE__ */ React32.createElement(Button, props, /* @__PURE__ */ React32.createElement(SelectPrimitive.Value, {
4146
+ }, /* @__PURE__ */ React33.createElement(Button, props, /* @__PURE__ */ React33.createElement(SelectPrimitive.Value, {
3827
4147
  placeholder
3828
- }, children), /* @__PURE__ */ React32.createElement("span", {
3829
- className: "w-1 flex-1"
3830
- }), /* @__PURE__ */ React32.createElement(SelectPrimitive.Icon, {
4148
+ }, children), /* @__PURE__ */ React33.createElement("span", {
4149
+ className: "is-1 flex-1"
4150
+ }), /* @__PURE__ */ React33.createElement(SelectPrimitive.Icon, {
3831
4151
  asChild: true
3832
- }, /* @__PURE__ */ React32.createElement(Icon, {
3833
- icon: "ph--caret-down--bold",
3834
- classNames: tx("select.triggerIcon", "select__trigger__icon", {})
4152
+ }, /* @__PURE__ */ React33.createElement(Icon, {
4153
+ size: 3,
4154
+ icon: "ph--caret-down--bold"
3835
4155
  }))));
3836
4156
  } finally {
3837
4157
  _effect.f();
3838
4158
  }
3839
4159
  });
3840
- var SelectContent = /* @__PURE__ */ forwardRef24(({ classNames, children, collisionPadding = 8, ...props }, forwardedRef) => {
3841
- var _effect = _useSignals32();
4160
+ var SelectContent = /* @__PURE__ */ forwardRef25(({ classNames, children, collisionPadding = 8, ...props }, forwardedRef) => {
4161
+ var _effect = _useSignals33();
3842
4162
  try {
3843
4163
  const { tx } = useThemeContext();
3844
4164
  const elevation = useElevationContext();
3845
4165
  const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
3846
- return /* @__PURE__ */ React32.createElement(SelectPrimitive.Content, {
4166
+ return /* @__PURE__ */ React33.createElement(SelectPrimitive.Content, {
3847
4167
  ...props,
4168
+ "data-arrow-keys": "up down",
3848
4169
  collisionPadding: safeCollisionPadding,
3849
4170
  className: tx("select.content", "select__content", {
3850
4171
  elevation
@@ -3856,41 +4177,43 @@ var SelectContent = /* @__PURE__ */ forwardRef24(({ classNames, children, collis
3856
4177
  _effect.f();
3857
4178
  }
3858
4179
  });
3859
- var SelectScrollUpButton2 = /* @__PURE__ */ forwardRef24(({ classNames, children, ...props }, forwardedRef) => {
3860
- var _effect = _useSignals32();
4180
+ var SelectScrollUpButton2 = /* @__PURE__ */ forwardRef25(({ classNames, children, ...props }, forwardedRef) => {
4181
+ var _effect = _useSignals33();
3861
4182
  try {
3862
4183
  const { tx } = useThemeContext();
3863
- return /* @__PURE__ */ React32.createElement(SelectPrimitive.SelectScrollUpButton, {
4184
+ return /* @__PURE__ */ React33.createElement(SelectPrimitive.SelectScrollUpButton, {
3864
4185
  ...props,
3865
4186
  className: tx("select.scrollButton", "select__scroll-button--up", {}, classNames),
3866
4187
  ref: forwardedRef
3867
- }, children ?? /* @__PURE__ */ React32.createElement(Icon, {
4188
+ }, children ?? /* @__PURE__ */ React33.createElement(Icon, {
4189
+ size: 3,
3868
4190
  icon: "ph--caret-up--bold"
3869
4191
  }));
3870
4192
  } finally {
3871
4193
  _effect.f();
3872
4194
  }
3873
4195
  });
3874
- var SelectScrollDownButton2 = /* @__PURE__ */ forwardRef24(({ classNames, children, ...props }, forwardedRef) => {
3875
- var _effect = _useSignals32();
4196
+ var SelectScrollDownButton2 = /* @__PURE__ */ forwardRef25(({ classNames, children, ...props }, forwardedRef) => {
4197
+ var _effect = _useSignals33();
3876
4198
  try {
3877
4199
  const { tx } = useThemeContext();
3878
- return /* @__PURE__ */ React32.createElement(SelectPrimitive.SelectScrollDownButton, {
4200
+ return /* @__PURE__ */ React33.createElement(SelectPrimitive.SelectScrollDownButton, {
3879
4201
  ...props,
3880
4202
  className: tx("select.scrollButton", "select__scroll-button--down", {}, classNames),
3881
4203
  ref: forwardedRef
3882
- }, children ?? /* @__PURE__ */ React32.createElement(Icon, {
4204
+ }, children ?? /* @__PURE__ */ React33.createElement(Icon, {
4205
+ size: 3,
3883
4206
  icon: "ph--caret-down--bold"
3884
4207
  }));
3885
4208
  } finally {
3886
4209
  _effect.f();
3887
4210
  }
3888
4211
  });
3889
- var SelectViewport2 = /* @__PURE__ */ forwardRef24(({ classNames, asChild, children, ...props }, forwardedRef) => {
3890
- var _effect = _useSignals32();
4212
+ var SelectViewport2 = /* @__PURE__ */ forwardRef25(({ classNames, children, ...props }, forwardedRef) => {
4213
+ var _effect = _useSignals33();
3891
4214
  try {
3892
4215
  const { tx } = useThemeContext();
3893
- return /* @__PURE__ */ React32.createElement(SelectPrimitive.SelectViewport, {
4216
+ return /* @__PURE__ */ React33.createElement(SelectPrimitive.SelectViewport, {
3894
4217
  ...props,
3895
4218
  className: tx("select.viewport", "select__viewport", {}, classNames),
3896
4219
  ref: forwardedRef
@@ -3899,11 +4222,11 @@ var SelectViewport2 = /* @__PURE__ */ forwardRef24(({ classNames, asChild, child
3899
4222
  _effect.f();
3900
4223
  }
3901
4224
  });
3902
- var SelectItem = /* @__PURE__ */ forwardRef24(({ classNames, ...props }, forwardedRef) => {
3903
- var _effect = _useSignals32();
4225
+ var SelectItem = /* @__PURE__ */ forwardRef25(({ classNames, ...props }, forwardedRef) => {
4226
+ var _effect = _useSignals33();
3904
4227
  try {
3905
4228
  const { tx } = useThemeContext();
3906
- return /* @__PURE__ */ React32.createElement(SelectPrimitive.Item, {
4229
+ return /* @__PURE__ */ React33.createElement(SelectPrimitive.Item, {
3907
4230
  ...props,
3908
4231
  className: tx("select.item", "option", {}, classNames),
3909
4232
  ref: forwardedRef
@@ -3913,11 +4236,11 @@ var SelectItem = /* @__PURE__ */ forwardRef24(({ classNames, ...props }, forward
3913
4236
  }
3914
4237
  });
3915
4238
  var SelectItemText = SelectPrimitive.ItemText;
3916
- var SelectItemIndicator = /* @__PURE__ */ forwardRef24(({ classNames, children, ...props }, forwardedRef) => {
3917
- var _effect = _useSignals32();
4239
+ var SelectItemIndicator = /* @__PURE__ */ forwardRef25(({ classNames, children, ...props }, forwardedRef) => {
4240
+ var _effect = _useSignals33();
3918
4241
  try {
3919
4242
  const { tx } = useThemeContext();
3920
- return /* @__PURE__ */ React32.createElement(SelectPrimitive.ItemIndicator, {
4243
+ return /* @__PURE__ */ React33.createElement(SelectPrimitive.ItemIndicator, {
3921
4244
  ...props,
3922
4245
  className: tx("select.itemIndicator", "option__indicator", {}, classNames),
3923
4246
  ref: forwardedRef
@@ -3926,17 +4249,17 @@ var SelectItemIndicator = /* @__PURE__ */ forwardRef24(({ classNames, children,
3926
4249
  _effect.f();
3927
4250
  }
3928
4251
  });
3929
- var SelectOption = /* @__PURE__ */ forwardRef24(({ children, classNames, ...props }, forwardedRef) => {
3930
- var _effect = _useSignals32();
4252
+ var SelectOption = /* @__PURE__ */ forwardRef25(({ children, classNames, ...props }, forwardedRef) => {
4253
+ var _effect = _useSignals33();
3931
4254
  try {
3932
4255
  const { tx } = useThemeContext();
3933
- return /* @__PURE__ */ React32.createElement(SelectPrimitive.Item, {
4256
+ return /* @__PURE__ */ React33.createElement(SelectPrimitive.Item, {
3934
4257
  ...props,
3935
4258
  className: tx("select.item", "option", {}, classNames),
3936
4259
  ref: forwardedRef
3937
- }, /* @__PURE__ */ React32.createElement(SelectPrimitive.ItemText, null, children), /* @__PURE__ */ React32.createElement("span", {
3938
- className: "grow w-1"
3939
- }), /* @__PURE__ */ React32.createElement(Icon, {
4260
+ }, /* @__PURE__ */ React33.createElement(SelectPrimitive.ItemText, null, children), /* @__PURE__ */ React33.createElement("span", {
4261
+ className: "grow is-1"
4262
+ }), /* @__PURE__ */ React33.createElement(Icon, {
3940
4263
  icon: "ph--check--regular"
3941
4264
  }));
3942
4265
  } finally {
@@ -3945,11 +4268,11 @@ var SelectOption = /* @__PURE__ */ forwardRef24(({ children, classNames, ...prop
3945
4268
  });
3946
4269
  var SelectGroup = SelectPrimitive.Group;
3947
4270
  var SelectLabel = SelectPrimitive.Label;
3948
- var SelectSeparator = /* @__PURE__ */ forwardRef24(({ classNames, ...props }, forwardedRef) => {
3949
- var _effect = _useSignals32();
4271
+ var SelectSeparator = /* @__PURE__ */ forwardRef25(({ classNames, ...props }, forwardedRef) => {
4272
+ var _effect = _useSignals33();
3950
4273
  try {
3951
4274
  const { tx } = useThemeContext();
3952
- return /* @__PURE__ */ React32.createElement(SelectPrimitive.Separator, {
4275
+ return /* @__PURE__ */ React33.createElement(SelectPrimitive.Separator, {
3953
4276
  ...props,
3954
4277
  className: tx("select.separator", "select__separator", {}, classNames),
3955
4278
  ref: forwardedRef
@@ -3958,11 +4281,11 @@ var SelectSeparator = /* @__PURE__ */ forwardRef24(({ classNames, ...props }, fo
3958
4281
  _effect.f();
3959
4282
  }
3960
4283
  });
3961
- var SelectArrow = /* @__PURE__ */ forwardRef24(({ classNames, ...props }, forwardedRef) => {
3962
- var _effect = _useSignals32();
4284
+ var SelectArrow = /* @__PURE__ */ forwardRef25(({ classNames, ...props }, forwardedRef) => {
4285
+ var _effect = _useSignals33();
3963
4286
  try {
3964
4287
  const { tx } = useThemeContext();
3965
- return /* @__PURE__ */ React32.createElement(SelectPrimitive.Arrow, {
4288
+ return /* @__PURE__ */ React33.createElement(SelectPrimitive.Arrow, {
3966
4289
  ...props,
3967
4290
  className: tx("select.arrow", "select__arrow", {}, classNames),
3968
4291
  ref: forwardedRef
@@ -3993,14 +4316,14 @@ var Select = {
3993
4316
  };
3994
4317
 
3995
4318
  // src/components/Separator/Separator.tsx
3996
- import { useSignals as _useSignals33 } from "@preact-signals/safe-react/tracking";
4319
+ import { useSignals as _useSignals34 } from "@preact-signals/safe-react/tracking";
3997
4320
  import { Separator as SeparatorPrimitive } from "@radix-ui/react-separator";
3998
- import React33, { forwardRef as forwardRef25 } from "react";
3999
- var Separator4 = /* @__PURE__ */ forwardRef25(({ classNames, orientation = "horizontal", subdued, ...props }, forwardedRef) => {
4000
- var _effect = _useSignals33();
4321
+ import React34, { forwardRef as forwardRef26 } from "react";
4322
+ var Separator4 = /* @__PURE__ */ forwardRef26(({ classNames, orientation = "horizontal", subdued, ...props }, forwardedRef) => {
4323
+ var _effect = _useSignals34();
4001
4324
  try {
4002
4325
  const { tx } = useThemeContext();
4003
- return /* @__PURE__ */ React33.createElement(SeparatorPrimitive, {
4326
+ return /* @__PURE__ */ React34.createElement(SeparatorPrimitive, {
4004
4327
  orientation,
4005
4328
  ...props,
4006
4329
  className: tx("separator.root", "separator", {
@@ -4015,16 +4338,16 @@ var Separator4 = /* @__PURE__ */ forwardRef25(({ classNames, orientation = "hori
4015
4338
  });
4016
4339
 
4017
4340
  // src/components/Tag/Tag.tsx
4018
- import { useSignals as _useSignals34 } from "@preact-signals/safe-react/tracking";
4341
+ import { useSignals as _useSignals35 } from "@preact-signals/safe-react/tracking";
4019
4342
  import { Primitive as Primitive13 } from "@radix-ui/react-primitive";
4020
4343
  import { Slot as Slot13 } from "@radix-ui/react-slot";
4021
- import React34, { forwardRef as forwardRef26 } from "react";
4022
- var Tag = /* @__PURE__ */ forwardRef26(({ asChild, palette = "neutral", classNames, ...props }, forwardedRef) => {
4023
- var _effect = _useSignals34();
4344
+ import React35, { forwardRef as forwardRef27 } from "react";
4345
+ var Tag = /* @__PURE__ */ forwardRef27(({ asChild, palette = "neutral", classNames, ...props }, forwardedRef) => {
4346
+ var _effect = _useSignals35();
4024
4347
  try {
4025
4348
  const { tx } = useThemeContext();
4026
- const Root7 = asChild ? Slot13 : Primitive13.span;
4027
- return /* @__PURE__ */ React34.createElement(Root7, {
4349
+ const Root8 = asChild ? Slot13 : Primitive13.span;
4350
+ return /* @__PURE__ */ React35.createElement(Root8, {
4028
4351
  ...props,
4029
4352
  className: tx("tag.root", "dx-tag", {
4030
4353
  palette
@@ -4038,17 +4361,17 @@ var Tag = /* @__PURE__ */ forwardRef26(({ asChild, palette = "neutral", classNam
4038
4361
  });
4039
4362
 
4040
4363
  // src/components/Toast/Toast.tsx
4041
- import { useSignals as _useSignals35 } from "@preact-signals/safe-react/tracking";
4364
+ import { useSignals as _useSignals36 } from "@preact-signals/safe-react/tracking";
4042
4365
  import { Primitive as Primitive14 } from "@radix-ui/react-primitive";
4043
4366
  import { Slot as Slot14 } from "@radix-ui/react-slot";
4044
- import { ToastProvider as ToastProviderPrimitive, ToastViewport as ToastViewportPrimitive, Root as ToastRootPrimitive, ToastTitle as ToastTitlePrimitive, ToastDescription as ToastDescriptionPrimitive, ToastAction as ToastActionPrimitive, ToastClose as ToastClosePrimitive } from "@radix-ui/react-toast";
4045
- import React35, { forwardRef as forwardRef27 } from "react";
4367
+ import { ToastAction as ToastActionPrimitive, ToastClose as ToastClosePrimitive, ToastDescription as ToastDescriptionPrimitive, ToastProvider as ToastProviderPrimitive, Root as ToastRootPrimitive, ToastTitle as ToastTitlePrimitive, ToastViewport as ToastViewportPrimitive } from "@radix-ui/react-toast";
4368
+ import React36, { forwardRef as forwardRef28 } from "react";
4046
4369
  var ToastProvider = ToastProviderPrimitive;
4047
- var ToastViewport = /* @__PURE__ */ forwardRef27(({ classNames, ...props }, forwardedRef) => {
4048
- var _effect = _useSignals35();
4370
+ var ToastViewport = /* @__PURE__ */ forwardRef28(({ classNames, ...props }, forwardedRef) => {
4371
+ var _effect = _useSignals36();
4049
4372
  try {
4050
4373
  const { tx } = useThemeContext();
4051
- return /* @__PURE__ */ React35.createElement(ToastViewportPrimitive, {
4374
+ return /* @__PURE__ */ React36.createElement(ToastViewportPrimitive, {
4052
4375
  className: tx("toast.viewport", "toast-viewport", {}, classNames),
4053
4376
  ref: forwardedRef
4054
4377
  });
@@ -4056,27 +4379,27 @@ var ToastViewport = /* @__PURE__ */ forwardRef27(({ classNames, ...props }, forw
4056
4379
  _effect.f();
4057
4380
  }
4058
4381
  });
4059
- var ToastRoot = /* @__PURE__ */ forwardRef27(({ classNames, children, ...props }, forwardedRef) => {
4060
- var _effect = _useSignals35();
4382
+ var ToastRoot = /* @__PURE__ */ forwardRef28(({ classNames, children, ...props }, forwardedRef) => {
4383
+ var _effect = _useSignals36();
4061
4384
  try {
4062
4385
  const { tx } = useThemeContext();
4063
- return /* @__PURE__ */ React35.createElement(ToastRootPrimitive, {
4386
+ return /* @__PURE__ */ React36.createElement(ToastRootPrimitive, {
4064
4387
  ...props,
4065
4388
  className: tx("toast.root", "toast", {}, classNames),
4066
4389
  ref: forwardedRef
4067
- }, /* @__PURE__ */ React35.createElement(ElevationProvider, {
4390
+ }, /* @__PURE__ */ React36.createElement(ElevationProvider, {
4068
4391
  elevation: "toast"
4069
4392
  }, children));
4070
4393
  } finally {
4071
4394
  _effect.f();
4072
4395
  }
4073
4396
  });
4074
- var ToastBody = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props }, forwardedRef) => {
4075
- var _effect = _useSignals35();
4397
+ var ToastBody = /* @__PURE__ */ forwardRef28(({ asChild, classNames, ...props }, forwardedRef) => {
4398
+ var _effect = _useSignals36();
4076
4399
  try {
4077
4400
  const { tx } = useThemeContext();
4078
- const Root7 = asChild ? Slot14 : Primitive14.div;
4079
- return /* @__PURE__ */ React35.createElement(Root7, {
4401
+ const Root8 = asChild ? Slot14 : Primitive14.div;
4402
+ return /* @__PURE__ */ React36.createElement(Root8, {
4080
4403
  ...props,
4081
4404
  className: tx("toast.body", "toast__body", {}, classNames),
4082
4405
  ref: forwardedRef
@@ -4085,12 +4408,12 @@ var ToastBody = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props },
4085
4408
  _effect.f();
4086
4409
  }
4087
4410
  });
4088
- var ToastTitle = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props }, forwardedRef) => {
4089
- var _effect = _useSignals35();
4411
+ var ToastTitle = /* @__PURE__ */ forwardRef28(({ asChild, classNames, ...props }, forwardedRef) => {
4412
+ var _effect = _useSignals36();
4090
4413
  try {
4091
4414
  const { tx } = useThemeContext();
4092
- const Root7 = asChild ? Slot14 : ToastTitlePrimitive;
4093
- return /* @__PURE__ */ React35.createElement(Root7, {
4415
+ const Root8 = asChild ? Slot14 : ToastTitlePrimitive;
4416
+ return /* @__PURE__ */ React36.createElement(Root8, {
4094
4417
  ...props,
4095
4418
  className: tx("toast.title", "toast__title", {}, classNames),
4096
4419
  ref: forwardedRef
@@ -4099,12 +4422,12 @@ var ToastTitle = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props }
4099
4422
  _effect.f();
4100
4423
  }
4101
4424
  });
4102
- var ToastDescription = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props }, forwardedRef) => {
4103
- var _effect = _useSignals35();
4425
+ var ToastDescription = /* @__PURE__ */ forwardRef28(({ asChild, classNames, ...props }, forwardedRef) => {
4426
+ var _effect = _useSignals36();
4104
4427
  try {
4105
4428
  const { tx } = useThemeContext();
4106
- const Root7 = asChild ? Slot14 : ToastDescriptionPrimitive;
4107
- return /* @__PURE__ */ React35.createElement(Root7, {
4429
+ const Root8 = asChild ? Slot14 : ToastDescriptionPrimitive;
4430
+ return /* @__PURE__ */ React36.createElement(Root8, {
4108
4431
  ...props,
4109
4432
  className: tx("toast.description", "toast__description", {}, classNames),
4110
4433
  ref: forwardedRef
@@ -4113,12 +4436,12 @@ var ToastDescription = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...p
4113
4436
  _effect.f();
4114
4437
  }
4115
4438
  });
4116
- var ToastActions = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props }, forwardedRef) => {
4117
- var _effect = _useSignals35();
4439
+ var ToastActions = /* @__PURE__ */ forwardRef28(({ asChild, classNames, ...props }, forwardedRef) => {
4440
+ var _effect = _useSignals36();
4118
4441
  try {
4119
4442
  const { tx } = useThemeContext();
4120
- const Root7 = asChild ? Slot14 : Primitive14.div;
4121
- return /* @__PURE__ */ React35.createElement(Root7, {
4443
+ const Root8 = asChild ? Slot14 : Primitive14.div;
4444
+ return /* @__PURE__ */ React36.createElement(Root8, {
4122
4445
  ...props,
4123
4446
  className: tx("toast.actions", "toast__actions", {}, classNames),
4124
4447
  ref: forwardedRef
@@ -4142,30 +4465,39 @@ var Toast = {
4142
4465
  };
4143
4466
 
4144
4467
  // src/components/Toolbar/Toolbar.tsx
4145
- import { useSignals as _useSignals36 } from "@preact-signals/safe-react/tracking";
4468
+ import { useSignals as _useSignals37 } from "@preact-signals/safe-react/tracking";
4146
4469
  import * as ToolbarPrimitive from "@radix-ui/react-toolbar";
4147
- import React36, { forwardRef as forwardRef28 } from "react";
4148
- var ToolbarRoot = /* @__PURE__ */ forwardRef28(({ classNames, children, layoutManaged, ...props }, forwardedRef) => {
4149
- var _effect = _useSignals36();
4470
+ import React37, { Fragment, forwardRef as forwardRef29 } from "react";
4471
+ var ToolbarRoot = /* @__PURE__ */ forwardRef29(({ classNames, children, layoutManaged, textBlockWidth: textBlockWidthParam, disabled, ...props }, forwardedRef) => {
4472
+ var _effect = _useSignals37();
4150
4473
  try {
4151
4474
  const { tx } = useThemeContext();
4152
- return /* @__PURE__ */ React36.createElement(ToolbarPrimitive.Root, {
4475
+ const InnerRoot = textBlockWidthParam ? "div" : Fragment;
4476
+ const innerRootProps = textBlockWidthParam ? {
4477
+ role: "none",
4478
+ className: tx("toolbar.inner", "toolbar", {
4479
+ layoutManaged
4480
+ }, classNames)
4481
+ } : {};
4482
+ return /* @__PURE__ */ React37.createElement(ToolbarPrimitive.Root, {
4153
4483
  ...props,
4484
+ "data-arrow-keys": props.orientation === "vertical" ? "up down" : "left right",
4154
4485
  className: tx("toolbar.root", "toolbar", {
4155
- layoutManaged
4486
+ layoutManaged,
4487
+ disabled
4156
4488
  }, classNames),
4157
4489
  ref: forwardedRef
4158
- }, children);
4490
+ }, /* @__PURE__ */ React37.createElement(InnerRoot, innerRootProps, children));
4159
4491
  } finally {
4160
4492
  _effect.f();
4161
4493
  }
4162
4494
  });
4163
- var ToolbarButton = /* @__PURE__ */ forwardRef28((props, forwardedRef) => {
4164
- var _effect = _useSignals36();
4495
+ var ToolbarButton = /* @__PURE__ */ forwardRef29((props, forwardedRef) => {
4496
+ var _effect = _useSignals37();
4165
4497
  try {
4166
- return /* @__PURE__ */ React36.createElement(ToolbarPrimitive.Button, {
4498
+ return /* @__PURE__ */ React37.createElement(ToolbarPrimitive.Button, {
4167
4499
  asChild: true
4168
- }, /* @__PURE__ */ React36.createElement(Button, {
4500
+ }, /* @__PURE__ */ React37.createElement(Button, {
4169
4501
  ...props,
4170
4502
  ref: forwardedRef
4171
4503
  }));
@@ -4173,12 +4505,12 @@ var ToolbarButton = /* @__PURE__ */ forwardRef28((props, forwardedRef) => {
4173
4505
  _effect.f();
4174
4506
  }
4175
4507
  });
4176
- var ToolbarIconButton = /* @__PURE__ */ forwardRef28((props, forwardedRef) => {
4177
- var _effect = _useSignals36();
4508
+ var ToolbarIconButton = /* @__PURE__ */ forwardRef29((props, forwardedRef) => {
4509
+ var _effect = _useSignals37();
4178
4510
  try {
4179
- return /* @__PURE__ */ React36.createElement(ToolbarPrimitive.Button, {
4511
+ return /* @__PURE__ */ React37.createElement(ToolbarPrimitive.Button, {
4180
4512
  asChild: true
4181
- }, /* @__PURE__ */ React36.createElement(IconButton, {
4513
+ }, /* @__PURE__ */ React37.createElement(IconButton, {
4182
4514
  ...props,
4183
4515
  ref: forwardedRef
4184
4516
  }));
@@ -4186,12 +4518,12 @@ var ToolbarIconButton = /* @__PURE__ */ forwardRef28((props, forwardedRef) => {
4186
4518
  _effect.f();
4187
4519
  }
4188
4520
  });
4189
- var ToolbarToggle = /* @__PURE__ */ forwardRef28((props, forwardedRef) => {
4190
- var _effect = _useSignals36();
4521
+ var ToolbarToggle = /* @__PURE__ */ forwardRef29((props, forwardedRef) => {
4522
+ var _effect = _useSignals37();
4191
4523
  try {
4192
- return /* @__PURE__ */ React36.createElement(ToolbarPrimitive.Button, {
4524
+ return /* @__PURE__ */ React37.createElement(ToolbarPrimitive.Button, {
4193
4525
  asChild: true
4194
- }, /* @__PURE__ */ React36.createElement(Toggle, {
4526
+ }, /* @__PURE__ */ React37.createElement(Toggle, {
4195
4527
  ...props,
4196
4528
  ref: forwardedRef
4197
4529
  }));
@@ -4199,12 +4531,12 @@ var ToolbarToggle = /* @__PURE__ */ forwardRef28((props, forwardedRef) => {
4199
4531
  _effect.f();
4200
4532
  }
4201
4533
  });
4202
- var ToolbarLink = /* @__PURE__ */ forwardRef28((props, forwardedRef) => {
4203
- var _effect = _useSignals36();
4534
+ var ToolbarLink = /* @__PURE__ */ forwardRef29((props, forwardedRef) => {
4535
+ var _effect = _useSignals37();
4204
4536
  try {
4205
- return /* @__PURE__ */ React36.createElement(ToolbarPrimitive.Link, {
4537
+ return /* @__PURE__ */ React37.createElement(ToolbarPrimitive.Link, {
4206
4538
  asChild: true
4207
- }, /* @__PURE__ */ React36.createElement(Link, {
4539
+ }, /* @__PURE__ */ React37.createElement(Link, {
4208
4540
  ...props,
4209
4541
  ref: forwardedRef
4210
4542
  }));
@@ -4212,13 +4544,13 @@ var ToolbarLink = /* @__PURE__ */ forwardRef28((props, forwardedRef) => {
4212
4544
  _effect.f();
4213
4545
  }
4214
4546
  });
4215
- var ToolbarToggleGroup2 = /* @__PURE__ */ forwardRef28(({ classNames, children, elevation, ...props }, forwardedRef) => {
4216
- var _effect = _useSignals36();
4547
+ var ToolbarToggleGroup2 = /* @__PURE__ */ forwardRef29(({ classNames, children, elevation, ...props }, forwardedRef) => {
4548
+ var _effect = _useSignals37();
4217
4549
  try {
4218
- return /* @__PURE__ */ React36.createElement(ToolbarPrimitive.ToolbarToggleGroup, {
4550
+ return /* @__PURE__ */ React37.createElement(ToolbarPrimitive.ToolbarToggleGroup, {
4219
4551
  ...props,
4220
4552
  asChild: true
4221
- }, /* @__PURE__ */ React36.createElement(ButtonGroup, {
4553
+ }, /* @__PURE__ */ React37.createElement(ButtonGroup, {
4222
4554
  classNames,
4223
4555
  children,
4224
4556
  elevation,
@@ -4228,13 +4560,13 @@ var ToolbarToggleGroup2 = /* @__PURE__ */ forwardRef28(({ classNames, children,
4228
4560
  _effect.f();
4229
4561
  }
4230
4562
  });
4231
- var ToolbarToggleGroupItem = /* @__PURE__ */ forwardRef28(({ variant, density, elevation, classNames, children, ...props }, forwardedRef) => {
4232
- var _effect = _useSignals36();
4563
+ var ToolbarToggleGroupItem = /* @__PURE__ */ forwardRef29(({ variant, density, elevation, classNames, children, ...props }, forwardedRef) => {
4564
+ var _effect = _useSignals37();
4233
4565
  try {
4234
- return /* @__PURE__ */ React36.createElement(ToolbarPrimitive.ToolbarToggleItem, {
4566
+ return /* @__PURE__ */ React37.createElement(ToolbarPrimitive.ToolbarToggleItem, {
4235
4567
  ...props,
4236
4568
  asChild: true
4237
- }, /* @__PURE__ */ React36.createElement(Button, {
4569
+ }, /* @__PURE__ */ React37.createElement(Button, {
4238
4570
  variant,
4239
4571
  density,
4240
4572
  elevation,
@@ -4246,13 +4578,13 @@ var ToolbarToggleGroupItem = /* @__PURE__ */ forwardRef28(({ variant, density, e
4246
4578
  _effect.f();
4247
4579
  }
4248
4580
  });
4249
- var ToolbarToggleGroupIconItem = /* @__PURE__ */ forwardRef28(({ variant, density, elevation, classNames, icon, label, iconOnly, ...props }, forwardedRef) => {
4250
- var _effect = _useSignals36();
4581
+ var ToolbarToggleGroupIconItem = /* @__PURE__ */ forwardRef29(({ variant, density, elevation, classNames, icon, label, iconOnly, ...props }, forwardedRef) => {
4582
+ var _effect = _useSignals37();
4251
4583
  try {
4252
- return /* @__PURE__ */ React36.createElement(ToolbarPrimitive.ToolbarToggleItem, {
4584
+ return /* @__PURE__ */ React37.createElement(ToolbarPrimitive.ToolbarToggleItem, {
4253
4585
  ...props,
4254
4586
  asChild: true
4255
- }, /* @__PURE__ */ React36.createElement(IconButton, {
4587
+ }, /* @__PURE__ */ React37.createElement(IconButton, {
4256
4588
  variant,
4257
4589
  density,
4258
4590
  elevation,
@@ -4266,15 +4598,15 @@ var ToolbarToggleGroupIconItem = /* @__PURE__ */ forwardRef28(({ variant, densit
4266
4598
  _effect.f();
4267
4599
  }
4268
4600
  });
4269
- var ToolbarSeparator = /* @__PURE__ */ forwardRef28(({ variant = "line", ...props }, forwardedRef) => {
4270
- var _effect = _useSignals36();
4601
+ var ToolbarSeparator = /* @__PURE__ */ forwardRef29(({ variant = "line", ...props }, forwardedRef) => {
4602
+ var _effect = _useSignals37();
4271
4603
  try {
4272
- return variant === "line" ? /* @__PURE__ */ React36.createElement(ToolbarPrimitive.Separator, {
4604
+ return variant === "line" ? /* @__PURE__ */ React37.createElement(ToolbarPrimitive.Separator, {
4273
4605
  asChild: true
4274
- }, /* @__PURE__ */ React36.createElement(Separator4, {
4606
+ }, /* @__PURE__ */ React37.createElement(Separator4, {
4275
4607
  ...props,
4276
4608
  ref: forwardedRef
4277
- })) : /* @__PURE__ */ React36.createElement(ToolbarPrimitive.Separator, {
4609
+ })) : /* @__PURE__ */ React37.createElement(ToolbarPrimitive.Separator, {
4278
4610
  className: "grow",
4279
4611
  ref: forwardedRef
4280
4612
  });
@@ -4329,8 +4661,11 @@ export {
4329
4661
  Toggle,
4330
4662
  ToggleGroup,
4331
4663
  ToggleGroupItem,
4664
+ ToggleGroupIconItem,
4332
4665
  useClipboard,
4666
+ Domino,
4333
4667
  hasIosKeyboard,
4668
+ usePx,
4334
4669
  DensityContext,
4335
4670
  DensityProvider,
4336
4671
  ElevationContext,
@@ -4341,8 +4676,8 @@ export {
4341
4676
  Dialog,
4342
4677
  AlertDialog,
4343
4678
  Input,
4344
- LIST_NAME,
4345
4679
  LIST_ITEM_NAME,
4680
+ LIST_NAME,
4346
4681
  useListContext,
4347
4682
  useListItemContext,
4348
4683
  List,
@@ -4366,10 +4701,12 @@ export {
4366
4701
  Popover,
4367
4702
  Status,
4368
4703
  ScrollArea,
4704
+ useScrollContainerContext,
4705
+ ScrollContainer,
4369
4706
  Select,
4370
4707
  Separator4 as Separator,
4371
4708
  Tag,
4372
4709
  Toast,
4373
4710
  Toolbar
4374
4711
  };
4375
- //# sourceMappingURL=chunk-GHXHND5V.mjs.map
4712
+ //# sourceMappingURL=chunk-F4Z46DD6.mjs.map