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