@dxos/react-ui 0.8.4-main.b97322e → 0.8.4-main.c4373fc

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 (203) hide show
  1. package/dist/lib/browser/{chunk-2COVUP44.mjs → chunk-B7HPXBP2.mjs} +255 -114
  2. package/dist/lib/browser/chunk-B7HPXBP2.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +8 -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 +21 -21
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/{chunk-GHXHND5V.mjs → chunk-6JCSY5Y7.mjs} +255 -114
  9. package/dist/lib/node-esm/chunk-6JCSY5Y7.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +8 -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 +21 -21
  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.d.ts +1 -1
  26. package/dist/types/src/components/Buttons/Button.d.ts.map +1 -1
  27. package/dist/types/src/components/Buttons/Button.stories.d.ts +9 -4
  28. package/dist/types/src/components/Buttons/Button.stories.d.ts.map +1 -1
  29. package/dist/types/src/components/Buttons/IconButton.d.ts +2 -2
  30. package/dist/types/src/components/Buttons/IconButton.d.ts.map +1 -1
  31. package/dist/types/src/components/Buttons/IconButton.stories.d.ts +6 -15
  32. package/dist/types/src/components/Buttons/IconButton.stories.d.ts.map +1 -1
  33. package/dist/types/src/components/Buttons/Toggle.stories.d.ts +5 -11
  34. package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +1 -1
  35. package/dist/types/src/components/Buttons/ToggleGroup.d.ts +7 -8
  36. package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +1 -1
  37. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +7 -19
  38. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +1 -1
  39. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
  40. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  41. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  42. package/dist/types/src/components/Dialogs/AlertDialog.d.ts +1 -1
  43. package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +1 -1
  44. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +7 -39
  45. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +1 -1
  46. package/dist/types/src/components/Dialogs/Dialog.d.ts +1 -1
  47. package/dist/types/src/components/Dialogs/Dialog.d.ts.map +1 -1
  48. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +6 -29
  49. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +1 -1
  50. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  51. package/dist/types/src/components/Icon/Icon.d.ts +1 -1
  52. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  53. package/dist/types/src/components/Input/Input.d.ts +2 -4
  54. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  55. package/dist/types/src/components/Input/Input.stories.d.ts +10 -11
  56. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  57. package/dist/types/src/components/Link/Link.stories.d.ts +8 -8
  58. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  59. package/dist/types/src/components/Lists/List.d.ts +2 -2
  60. package/dist/types/src/components/Lists/List.d.ts.map +1 -1
  61. package/dist/types/src/components/Lists/List.stories.d.ts +8 -31
  62. package/dist/types/src/components/Lists/List.stories.d.ts.map +1 -1
  63. package/dist/types/src/components/Lists/Tree.d.ts +1 -1
  64. package/dist/types/src/components/Lists/Tree.d.ts.map +1 -1
  65. package/dist/types/src/components/Lists/Tree.stories.d.ts +6 -32
  66. package/dist/types/src/components/Lists/Tree.stories.d.ts.map +1 -1
  67. package/dist/types/src/components/Lists/Treegrid.d.ts +1 -1
  68. package/dist/types/src/components/Lists/Treegrid.d.ts.map +1 -1
  69. package/dist/types/src/components/Lists/Treegrid.stories.d.ts +6 -4
  70. package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +1 -1
  71. package/dist/types/src/components/Main/Main.d.ts +2 -11
  72. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  73. package/dist/types/src/components/Main/Main.stories.d.ts +6 -7
  74. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  75. package/dist/types/src/components/Menus/ContextMenu.d.ts.map +1 -1
  76. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts +6 -44
  77. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +1 -1
  78. package/dist/types/src/components/Menus/DropdownMenu.d.ts +6 -5
  79. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +1 -1
  80. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts +6 -41
  81. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +1 -1
  82. package/dist/types/src/components/Message/Message.d.ts +1 -1
  83. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  84. package/dist/types/src/components/Message/Message.stories.d.ts +7 -16
  85. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  86. package/dist/types/src/components/Popover/Popover.d.ts +2 -2
  87. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  88. package/dist/types/src/components/Popover/Popover.stories.d.ts +6 -34
  89. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  90. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +1 -1
  91. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  92. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +6 -32
  93. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  94. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  95. package/dist/types/src/components/Select/Select.stories.d.ts +4 -9
  96. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  97. package/dist/types/src/components/Status/Status.stories.d.ts +2 -8
  98. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  99. package/dist/types/src/components/Tag/Tag.stories.d.ts +12 -12
  100. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  101. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +1 -1
  102. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  103. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +1 -1
  104. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  105. package/dist/types/src/components/Toast/Toast.d.ts +1 -1
  106. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  107. package/dist/types/src/components/Toast/Toast.stories.d.ts +6 -44
  108. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  109. package/dist/types/src/components/Toolbar/Toolbar.d.ts +3 -7
  110. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  111. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +6 -50
  112. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  113. package/dist/types/src/components/Tooltip/Tooltip.d.ts +2 -4
  114. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  115. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +8 -61
  116. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  117. package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
  118. package/dist/types/src/hooks/useVisualViewport.d.ts +2 -2
  119. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
  120. package/dist/types/src/index.d.ts +1 -1
  121. package/dist/types/src/index.d.ts.map +1 -1
  122. package/dist/types/src/playground/Controls.stories.d.ts +5 -9
  123. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  124. package/dist/types/src/playground/Custom.stories.d.ts +12 -4
  125. package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
  126. package/dist/types/src/playground/Typography.stories.d.ts +5 -11
  127. package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
  128. package/dist/types/src/testing/decorators/withTheme.d.ts +3 -0
  129. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  130. package/dist/types/src/util/domino.d.ts +18 -0
  131. package/dist/types/src/util/domino.d.ts.map +1 -0
  132. package/dist/types/src/util/index.d.ts +2 -0
  133. package/dist/types/src/util/index.d.ts.map +1 -1
  134. package/dist/types/src/util/usePx.d.ts +8 -0
  135. package/dist/types/src/util/usePx.d.ts.map +1 -0
  136. package/dist/types/tsconfig.tsbuildinfo +1 -1
  137. package/package.json +22 -22
  138. package/src/components/Avatars/Avatar.stories.tsx +19 -10
  139. package/src/components/Avatars/Avatar.tsx +3 -3
  140. package/src/components/Avatars/AvatarGroup.stories.tsx +10 -6
  141. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +16 -11
  142. package/src/components/Breadcrumb/Breadcrumb.tsx +1 -1
  143. package/src/components/Buttons/Button.stories.tsx +8 -9
  144. package/src/components/Buttons/IconButton.stories.tsx +11 -8
  145. package/src/components/Buttons/IconButton.tsx +4 -3
  146. package/src/components/Buttons/Toggle.stories.tsx +10 -7
  147. package/src/components/Buttons/ToggleGroup.stories.tsx +10 -7
  148. package/src/components/Buttons/ToggleGroup.tsx +17 -4
  149. package/src/components/Clipboard/ClipboardProvider.tsx +1 -1
  150. package/src/components/Clipboard/CopyButton.tsx +2 -1
  151. package/src/components/DensityProvider/DensityProvider.tsx +1 -1
  152. package/src/components/Dialogs/AlertDialog.stories.tsx +14 -11
  153. package/src/components/Dialogs/AlertDialog.tsx +13 -13
  154. package/src/components/Dialogs/Dialog.stories.tsx +16 -14
  155. package/src/components/Dialogs/Dialog.tsx +13 -13
  156. package/src/components/ElevationProvider/ElevationProvider.tsx +1 -1
  157. package/src/components/Input/Input.stories.tsx +12 -14
  158. package/src/components/Input/Input.tsx +16 -16
  159. package/src/components/Link/Link.stories.tsx +10 -6
  160. package/src/components/Lists/List.stories.tsx +16 -14
  161. package/src/components/Lists/List.tsx +16 -12
  162. package/src/components/Lists/Tree.stories.tsx +11 -8
  163. package/src/components/Lists/Tree.tsx +4 -3
  164. package/src/components/Lists/TreeDropIndicator.tsx +1 -1
  165. package/src/components/Lists/Treegrid.stories.tsx +12 -6
  166. package/src/components/Lists/Treegrid.tsx +58 -17
  167. package/src/components/Main/Main.stories.tsx +16 -8
  168. package/src/components/Main/Main.tsx +32 -17
  169. package/src/components/Menus/ContextMenu.stories.tsx +11 -8
  170. package/src/components/Menus/ContextMenu.tsx +1 -0
  171. package/src/components/Menus/DropdownMenu.stories.tsx +11 -8
  172. package/src/components/Menus/DropdownMenu.tsx +23 -13
  173. package/src/components/Message/Message.stories.tsx +11 -7
  174. package/src/components/Message/Message.tsx +1 -1
  175. package/src/components/Popover/Popover.stories.tsx +11 -8
  176. package/src/components/Popover/Popover.tsx +9 -9
  177. package/src/components/ScrollArea/ScrollArea.stories.tsx +11 -8
  178. package/src/components/ScrollArea/ScrollArea.tsx +4 -4
  179. package/src/components/Select/Select.stories.tsx +15 -12
  180. package/src/components/Select/Select.tsx +5 -4
  181. package/src/components/Status/Status.stories.tsx +9 -6
  182. package/src/components/Tag/Tag.stories.tsx +18 -9
  183. package/src/components/ThemeProvider/ThemeProvider.tsx +3 -2
  184. package/src/components/ThemeProvider/TranslationsProvider.tsx +3 -3
  185. package/src/components/Toast/Toast.stories.tsx +11 -8
  186. package/src/components/Toast/Toast.tsx +9 -9
  187. package/src/components/Toolbar/Toolbar.stories.tsx +12 -8
  188. package/src/components/Toolbar/Toolbar.tsx +3 -2
  189. package/src/components/Tooltip/Tooltip.stories.tsx +15 -11
  190. package/src/components/Tooltip/Tooltip.tsx +5 -4
  191. package/src/hooks/useSafeArea.ts +1 -0
  192. package/src/hooks/useVisualViewport.ts +3 -3
  193. package/src/index.ts +1 -1
  194. package/src/playground/Controls.stories.tsx +12 -8
  195. package/src/playground/Custom.stories.tsx +7 -16
  196. package/src/playground/Typography.stories.tsx +8 -6
  197. package/src/testing/decorators/withTheme.tsx +31 -0
  198. package/src/util/domino.ts +51 -0
  199. package/src/util/index.ts +2 -0
  200. package/src/util/usePx.ts +61 -0
  201. package/dist/lib/browser/chunk-2COVUP44.mjs.map +0 -7
  202. package/dist/lib/node-esm/chunk-GHXHND5V.mjs.map +0 -7
  203. package/src/testing/decorators/withTheme.ts +0 -25
@@ -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";
@@ -138,7 +138,7 @@ var useVisualViewport = (deps) => {
138
138
  setHeight(window.visualViewport.height);
139
139
  }
140
140
  }, []);
141
- useResize2(handleResize);
141
+ useResize2(handleResize, deps);
142
142
  return {
143
143
  width,
144
144
  height
@@ -1136,7 +1136,7 @@ var LabelledIconButton = /* @__PURE__ */ forwardRef8(({ icon, size, iconOnly, la
1136
1136
  iconOnly
1137
1137
  }, classNames),
1138
1138
  ref: forwardedRef
1139
- }, /* @__PURE__ */ React9.createElement(Icon, {
1139
+ }, icon && /* @__PURE__ */ React9.createElement(Icon, {
1140
1140
  icon,
1141
1141
  size,
1142
1142
  classNames: iconClassNames
@@ -1188,7 +1188,7 @@ var Toggle = /* @__PURE__ */ forwardRef9(({ defaultPressed, pressed, onPressedCh
1188
1188
 
1189
1189
  // src/components/Buttons/ToggleGroup.tsx
1190
1190
  import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
1191
- import { ToggleGroup as ToggleGroupPrimitive, ToggleGroupItem as ToggleGroupItemPrimitive } from "@radix-ui/react-toggle-group";
1191
+ import { ToggleGroupItem as ToggleGroupItemPrimitive, ToggleGroup as ToggleGroupPrimitive } from "@radix-ui/react-toggle-group";
1192
1192
  import React11, { forwardRef as forwardRef10 } from "react";
1193
1193
  var ToggleGroup = /* @__PURE__ */ forwardRef10(({ classNames, children, ...props }, forwardedRef) => {
1194
1194
  var _effect = _useSignals11();
@@ -1223,6 +1223,26 @@ var ToggleGroupItem = /* @__PURE__ */ forwardRef10(({ variant, elevation, densit
1223
1223
  _effect.f();
1224
1224
  }
1225
1225
  });
1226
+ var ToggleGroupIconItem = /* @__PURE__ */ forwardRef10(({ variant, label, icon, size, elevation, density, classNames, ...props }, forwardedRef) => {
1227
+ var _effect = _useSignals11();
1228
+ try {
1229
+ return /* @__PURE__ */ React11.createElement(ToggleGroupItemPrimitive, {
1230
+ ...props,
1231
+ asChild: true
1232
+ }, /* @__PURE__ */ React11.createElement(IconButton, {
1233
+ variant,
1234
+ elevation,
1235
+ density,
1236
+ classNames,
1237
+ label,
1238
+ icon,
1239
+ size,
1240
+ ref: forwardedRef
1241
+ }));
1242
+ } finally {
1243
+ _effect.f();
1244
+ }
1245
+ });
1226
1246
 
1227
1247
  // src/components/Clipboard/ClipboardProvider.tsx
1228
1248
  import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
@@ -1255,18 +1275,116 @@ var ClipboardProvider = ({ children }) => {
1255
1275
  // src/components/Clipboard/CopyButton.tsx
1256
1276
  import { useSignals as _useSignals16 } from "@preact-signals/safe-react/tracking";
1257
1277
  import React16 from "react";
1258
- import { mx as mx2 } from "@dxos/react-ui-theme";
1278
+ import { mx as mx3 } from "@dxos/react-ui-theme";
1259
1279
 
1260
1280
  // src/components/ThemeProvider/ThemeProvider.tsx
1261
1281
  import { useSignals as _useSignals15 } from "@preact-signals/safe-react/tracking";
1262
1282
  import { createKeyborg } from "keyborg";
1263
- import React15, { createContext as createContext7, useEffect as useEffect3, useMemo as useMemo2 } from "react";
1283
+ import React15, { createContext as createContext7, useEffect as useEffect4, useMemo as useMemo3 } from "react";
1284
+
1285
+ // src/util/domino.ts
1286
+ import { mx as mx2 } from "@dxos/react-ui-theme";
1287
+ function _define_property(obj, key, value) {
1288
+ if (key in obj) {
1289
+ Object.defineProperty(obj, key, {
1290
+ value,
1291
+ enumerable: true,
1292
+ configurable: true,
1293
+ writable: true
1294
+ });
1295
+ } else {
1296
+ obj[key] = value;
1297
+ }
1298
+ return obj;
1299
+ }
1300
+ var Domino = class _Domino {
1301
+ static of(tag) {
1302
+ return new _Domino(tag);
1303
+ }
1304
+ classNames(...classNames) {
1305
+ this._el.className = mx2(classNames);
1306
+ return this;
1307
+ }
1308
+ text(value) {
1309
+ this._el.textContent = value;
1310
+ return this;
1311
+ }
1312
+ data(key, value) {
1313
+ this._el.dataset[key] = value;
1314
+ return this;
1315
+ }
1316
+ style(styles) {
1317
+ Object.assign(this._el.style, styles);
1318
+ return this;
1319
+ }
1320
+ attr(key, value) {
1321
+ this._el[key] = value;
1322
+ return this;
1323
+ }
1324
+ children(...children) {
1325
+ children.forEach((child) => this._el.appendChild(child.build()));
1326
+ return this;
1327
+ }
1328
+ on(event, handler) {
1329
+ this._el.addEventListener(event, handler);
1330
+ return this;
1331
+ }
1332
+ build() {
1333
+ return this._el;
1334
+ }
1335
+ constructor(tag) {
1336
+ _define_property(this, "_el", void 0);
1337
+ this._el = document.createElement(tag);
1338
+ }
1339
+ };
1264
1340
 
1265
1341
  // src/util/hasIosKeyboard.ts
1266
1342
  var hasIosKeyboard = () => {
1267
1343
  return !!navigator.userAgent.match(/iP(ad|od|hone).+Safari/);
1268
1344
  };
1269
1345
 
1346
+ // src/util/usePx.ts
1347
+ import { useCallback as useCallback5, useEffect as useEffect3, useMemo as useMemo2, useState as useState6 } from "react";
1348
+ var getDocumentElementFontSize = () => parseFloat(getComputedStyle(document.documentElement).fontSize);
1349
+ var usePx = (rem) => {
1350
+ const [fontSize, setFontSize] = useState6(() => {
1351
+ if (typeof document !== "undefined") {
1352
+ return getDocumentElementFontSize();
1353
+ }
1354
+ return 16;
1355
+ });
1356
+ const updateFontSize = useCallback5(() => {
1357
+ setFontSize(getDocumentElementFontSize());
1358
+ }, []);
1359
+ useEffect3(() => {
1360
+ if (typeof document === "undefined") {
1361
+ return;
1362
+ }
1363
+ const resizeObserver = new ResizeObserver(updateFontSize);
1364
+ resizeObserver.observe(document.documentElement);
1365
+ const mediaQueryList = window.matchMedia("all");
1366
+ const handleMediaChange = () => {
1367
+ updateFontSize();
1368
+ };
1369
+ if (mediaQueryList.addEventListener) {
1370
+ mediaQueryList.addEventListener("change", handleMediaChange);
1371
+ } else {
1372
+ mediaQueryList.addListener(handleMediaChange);
1373
+ }
1374
+ return () => {
1375
+ resizeObserver.disconnect();
1376
+ if (mediaQueryList.removeEventListener) {
1377
+ mediaQueryList.removeEventListener("change", handleMediaChange);
1378
+ } else {
1379
+ mediaQueryList.removeListener(handleMediaChange);
1380
+ }
1381
+ };
1382
+ }, []);
1383
+ return useMemo2(() => rem * fontSize, [
1384
+ fontSize
1385
+ ]);
1386
+ };
1387
+
1270
1388
  // src/components/DensityProvider/DensityProvider.tsx
1271
1389
  import { useSignals as _useSignals13 } from "@preact-signals/safe-react/tracking";
1272
1390
  import React13, { createContext as createContext5 } from "react";
@@ -1310,7 +1428,7 @@ var ThemeContext = /* @__PURE__ */ createContext7(void 0);
1310
1428
  var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName, themeMode = "dark", rootDensity = "fine", ...rest }) => {
1311
1429
  var _effect = _useSignals15();
1312
1430
  try {
1313
- useEffect3(() => {
1431
+ useEffect4(() => {
1314
1432
  if (document.defaultView) {
1315
1433
  const kb = createKeyborg(document.defaultView);
1316
1434
  kb.subscribe(handleInputModalityChange);
@@ -1318,7 +1436,7 @@ var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx
1318
1436
  }
1319
1437
  }, []);
1320
1438
  const safeAreaPadding = useSafeArea();
1321
- const contextValue = useMemo2(() => ({
1439
+ const contextValue = useMemo3(() => ({
1322
1440
  tx,
1323
1441
  themeMode,
1324
1442
  hasIosKeyboard: hasIosKeyboard(),
@@ -1371,7 +1489,7 @@ var CopyButton = ({ classNames, value, size = 5, ...props }) => {
1371
1489
  "data-testid": "copy-invitation"
1372
1490
  }, /* @__PURE__ */ React16.createElement("div", {
1373
1491
  role: "none",
1374
- className: mx2("flex gap-1 items-center", isCopied && inactiveLabelStyles)
1492
+ className: mx3("flex gap-1 items-center", isCopied && inactiveLabelStyles)
1375
1493
  }, /* @__PURE__ */ React16.createElement("span", {
1376
1494
  className: "pli-1"
1377
1495
  }, t("copy label")), /* @__PURE__ */ React16.createElement(Icon, {
@@ -1379,7 +1497,7 @@ var CopyButton = ({ classNames, value, size = 5, ...props }) => {
1379
1497
  size
1380
1498
  })), /* @__PURE__ */ React16.createElement("div", {
1381
1499
  role: "none",
1382
- className: mx2("flex gap-1 items-center", !isCopied && inactiveLabelStyles)
1500
+ className: mx3("flex gap-1 items-center", !isCopied && inactiveLabelStyles)
1383
1501
  }, /* @__PURE__ */ React16.createElement("span", {
1384
1502
  className: "pli-1"
1385
1503
  }, t("copy success label")), /* @__PURE__ */ React16.createElement(Icon, {
@@ -1426,7 +1544,7 @@ var Clipboard = {
1426
1544
  // src/components/Dialogs/Dialog.tsx
1427
1545
  import { useSignals as _useSignals17 } from "@preact-signals/safe-react/tracking";
1428
1546
  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";
1547
+ 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
1548
  import React17, { forwardRef as forwardRef11 } from "react";
1431
1549
  var DialogRoot = (props) => {
1432
1550
  var _effect = _useSignals17();
@@ -1524,7 +1642,7 @@ var Dialog = {
1524
1642
 
1525
1643
  // src/components/Dialogs/AlertDialog.tsx
1526
1644
  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";
1645
+ 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
1646
  import { createContext as createContext9 } from "@radix-ui/react-context";
1529
1647
  import React18, { forwardRef as forwardRef12 } from "react";
1530
1648
  var AlertDialogRoot = (props) => {
@@ -1626,9 +1744,9 @@ var AlertDialog = {
1626
1744
  import { useSignals as _useSignals19 } from "@preact-signals/safe-react/tracking";
1627
1745
  import { Root as CheckboxPrimitive } from "@radix-ui/react-checkbox";
1628
1746
  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";
1747
+ import React19, { forwardRef as forwardRef13, useCallback as useCallback6 } from "react";
1748
+ 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";
1749
+ import { mx as mx4 } from "@dxos/react-ui-theme";
1632
1750
  var Label = /* @__PURE__ */ forwardRef13(({ srOnly, classNames, children, ...props }, forwardedRef) => {
1633
1751
  var _effect = _useSignals19();
1634
1752
  try {
@@ -1698,7 +1816,7 @@ var PinInput = /* @__PURE__ */ forwardRef13(({ density: propsDensity, elevation:
1698
1816
  const { tx } = useThemeContext();
1699
1817
  const density = useDensityContext(propsDensity);
1700
1818
  const elevation = useElevationContext(propsElevation);
1701
- const segmentClassName = useCallback5(({ focused, validationValence }) => tx("input.input", "input--pin-segment", {
1819
+ const segmentClassName = useCallback6(({ focused, validationValence }) => tx("input.input", "input--pin-segment", {
1702
1820
  variant: "static",
1703
1821
  focused,
1704
1822
  disabled: props.disabled,
@@ -1780,7 +1898,7 @@ var TextArea = /* @__PURE__ */ forwardRef13(({ __inputScope, classNames, density
1780
1898
  _effect.f();
1781
1899
  }
1782
1900
  });
1783
- var Checkbox = /* @__PURE__ */ forwardRef13(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size, weight = "bold", classNames, ...props }, forwardedRef) => {
1901
+ var Checkbox = /* @__PURE__ */ forwardRef13(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size, classNames, ...props }, forwardedRef) => {
1784
1902
  var _effect = _useSignals19();
1785
1903
  try {
1786
1904
  const [checked, onCheckedChange] = useControllableState2({
@@ -1826,7 +1944,7 @@ var Switch = /* @__PURE__ */ forwardRef13(({ __inputScope, checked: propsChecked
1826
1944
  const { id, validationValence, descriptionId, errorMessageId } = useInputContext(INPUT_NAME, __inputScope);
1827
1945
  return /* @__PURE__ */ React19.createElement("input", {
1828
1946
  type: "checkbox",
1829
- className: mx3("dx-checkbox--switch dx-focus-ring", classNames),
1947
+ className: mx4("dx-checkbox--switch dx-focus-ring", classNames),
1830
1948
  checked,
1831
1949
  onChange: (event) => {
1832
1950
  onCheckedChange(event.target.checked);
@@ -1861,7 +1979,7 @@ var Input = {
1861
1979
  import { useSignals as _useSignals21 } from "@preact-signals/safe-react/tracking";
1862
1980
  import { Slot as Slot6 } from "@radix-ui/react-slot";
1863
1981
  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";
1982
+ 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
1983
 
1866
1984
  // src/components/Lists/ListDropIndicator.tsx
1867
1985
  import { useSignals as _useSignals20 } from "@preact-signals/safe-react/tracking";
@@ -1982,7 +2100,6 @@ var ListItemOpenTrigger = /* @__PURE__ */ forwardRef14(({ __listItemScope, class
1982
2100
  const { tx } = useThemeContext();
1983
2101
  const density = useDensityContext();
1984
2102
  const { open } = useListItemContext(LIST_ITEM_NAME, __listItemScope);
1985
- const iconName = open ? "ph--caret-down--bold" : "ph--caret-right--bold";
1986
2103
  return /* @__PURE__ */ React21.createElement(ListPrimitiveItemOpenTrigger, {
1987
2104
  ...props,
1988
2105
  className: tx("list.item.openTrigger", "list__listItem__openTrigger", {
@@ -1990,7 +2107,8 @@ var ListItemOpenTrigger = /* @__PURE__ */ forwardRef14(({ __listItemScope, class
1990
2107
  }, classNames),
1991
2108
  ref: forwardedRef
1992
2109
  }, children || /* @__PURE__ */ React21.createElement(Icon, {
1993
- icon: iconName,
2110
+ size: 3,
2111
+ icon: open ? "ph--caret-down--bold" : "ph--caret-right--bold",
1994
2112
  classNames: tx("list.item.openTriggerIcon", "list__listItem__openTrigger__icon", {})
1995
2113
  }));
1996
2114
  } finally {
@@ -2135,12 +2253,12 @@ var TreeItem = {
2135
2253
 
2136
2254
  // src/components/Lists/Treegrid.tsx
2137
2255
  import { useSignals as _useSignals24 } from "@preact-signals/safe-react/tracking";
2138
- import { useArrowNavigationGroup, useFocusableGroup } from "@fluentui/react-tabster";
2256
+ import { useFocusFinders } from "@fluentui/react-tabster";
2139
2257
  import { createContextScope as createContextScope2 } from "@radix-ui/react-context";
2140
2258
  import { Primitive as Primitive7 } from "@radix-ui/react-primitive";
2141
2259
  import { Slot as Slot7 } from "@radix-ui/react-slot";
2142
2260
  import { useControllableState as useControllableState3 } from "@radix-ui/react-use-controllable-state";
2143
- import React24, { forwardRef as forwardRef16 } from "react";
2261
+ import React24, { forwardRef as forwardRef16, useCallback as useCallback7 } from "react";
2144
2262
  var TREEGRID_ROW_NAME = "TreegridRow";
2145
2263
  var [createTreegridRowContext, createTreegridRowScope] = createContextScope2(TREEGRID_ROW_NAME, []);
2146
2264
  var [TreegridRowProvider, useTreegridRowContext] = createTreegridRowContext(TREEGRID_ROW_NAME);
@@ -2151,14 +2269,43 @@ var TreegridRoot = /* @__PURE__ */ forwardRef16(({ asChild, classNames, children
2151
2269
  try {
2152
2270
  const { tx } = useThemeContext();
2153
2271
  const Root7 = asChild ? Slot7 : Primitive7.div;
2154
- const arrowNavigationAttrs = useArrowNavigationGroup({
2155
- axis: "vertical",
2156
- tabbable: false,
2157
- circular: true
2158
- });
2272
+ const { findFirstFocusable } = useFocusFinders();
2273
+ const handleKeyDown = useCallback7((event) => {
2274
+ switch (event.key) {
2275
+ case "ArrowDown":
2276
+ case "ArrowUp": {
2277
+ const direction = event.key === "ArrowDown" ? "down" : "up";
2278
+ const target = event.target;
2279
+ const ancestorWithArrowKeys = target.closest(`[data-arrow-keys*="${direction}"], [data-arrow-keys="all"]`);
2280
+ if (!ancestorWithArrowKeys) {
2281
+ const currentRow = target.closest('[role="row"]');
2282
+ if (currentRow) {
2283
+ const treegrid = currentRow.closest('[role="treegrid"]');
2284
+ if (treegrid) {
2285
+ const rows = Array.from(treegrid.querySelectorAll('[role="row"]'));
2286
+ const currentIndex = rows.indexOf(currentRow);
2287
+ const nextIndex = direction === "down" ? currentIndex + 1 : currentIndex - 1;
2288
+ const targetRow = rows[nextIndex];
2289
+ if (targetRow) {
2290
+ const firstFocusable = findFirstFocusable(targetRow);
2291
+ if (firstFocusable) {
2292
+ event.preventDefault();
2293
+ firstFocusable.focus();
2294
+ }
2295
+ }
2296
+ }
2297
+ }
2298
+ }
2299
+ break;
2300
+ }
2301
+ }
2302
+ props.onKeyDown?.(event);
2303
+ }, [
2304
+ findFirstFocusable
2305
+ ]);
2159
2306
  return /* @__PURE__ */ React24.createElement(Root7, {
2160
2307
  role: "treegrid",
2161
- ...arrowNavigationAttrs,
2308
+ onKeyDown: handleKeyDown,
2162
2309
  ...props,
2163
2310
  className: tx("treegrid.root", "treegrid", {}, classNames),
2164
2311
  style: {
@@ -2183,15 +2330,6 @@ var TreegridRow = /* @__PURE__ */ forwardRef16(({ __treegridRowScope, asChild, c
2183
2330
  onChange: propsOnOpenChange,
2184
2331
  defaultProp: defaultOpen
2185
2332
  });
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
2333
  return /* @__PURE__ */ React24.createElement(TreegridRowProvider, {
2196
2334
  open,
2197
2335
  onOpenChange,
@@ -2206,16 +2344,10 @@ var TreegridRow = /* @__PURE__ */ forwardRef16(({ __treegridRowScope, asChild, c
2206
2344
  "aria-expanded": open,
2207
2345
  "aria-owns": parentOf
2208
2346
  },
2209
- tabIndex: 0,
2210
- ...focusableGroupAttrs,
2211
2347
  ...props,
2212
2348
  id,
2213
2349
  ref: forwardedRef
2214
- }, /* @__PURE__ */ React24.createElement("div", {
2215
- role: "none",
2216
- className: "contents",
2217
- ...arrowGroupAttrs
2218
- }, children)));
2350
+ }, children));
2219
2351
  } finally {
2220
2352
  _effect.f();
2221
2353
  }
@@ -2248,17 +2380,18 @@ var Treegrid = {
2248
2380
 
2249
2381
  // src/components/Main/Main.tsx
2250
2382
  import { useSignals as _useSignals25 } from "@preact-signals/safe-react/tracking";
2383
+ import { useFocusableGroup } from "@fluentui/react-tabster";
2251
2384
  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";
2385
+ import { DialogContent as DialogContent2, Root as DialogRoot2, DialogTitle as DialogTitle2 } from "@radix-ui/react-dialog";
2253
2386
  import { Primitive as Primitive8 } from "@radix-ui/react-primitive";
2254
2387
  import { Slot as Slot8 } from "@radix-ui/react-slot";
2255
2388
  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";
2389
+ import React25, { forwardRef as forwardRef17, useCallback as useCallback9, useEffect as useEffect6, useRef as useRef2, useState as useState8 } from "react";
2257
2390
  import { log } from "@dxos/log";
2258
- import { useMediaQuery, useForwardedRef } from "@dxos/react-hooks";
2391
+ import { useForwardedRef, useMediaQuery } from "@dxos/react-hooks";
2259
2392
 
2260
2393
  // src/components/Main/useSwipeToDismiss.ts
2261
- import { useCallback as useCallback6, useEffect as useEffect4, useState as useState6 } from "react";
2394
+ import { useCallback as useCallback8, useEffect as useEffect5, useState as useState7 } from "react";
2262
2395
  var useSwipeToDismiss = (ref, {
2263
2396
  onDismiss,
2264
2397
  dismissThreshold = 64,
@@ -2267,22 +2400,22 @@ var useSwipeToDismiss = (ref, {
2267
2400
  /* side = 'inline-start' */
2268
2401
  }) => {
2269
2402
  const $root = ref.current;
2270
- const [motionState, setMotionState] = useState6(0);
2271
- const [gestureStartX, setGestureStartX] = useState6(0);
2272
- const setIdle = useCallback6(() => {
2403
+ const [motionState, setMotionState] = useState7(0);
2404
+ const [gestureStartX, setGestureStartX] = useState7(0);
2405
+ const setIdle = useCallback8(() => {
2273
2406
  setMotionState(0);
2274
2407
  $root?.style.removeProperty("inset-inline-start");
2275
2408
  $root?.style.setProperty("transition-duration", "200ms");
2276
2409
  }, [
2277
2410
  $root
2278
2411
  ]);
2279
- const setFollowing = useCallback6(() => {
2412
+ const setFollowing = useCallback8(() => {
2280
2413
  setMotionState(2);
2281
2414
  $root?.style.setProperty("transition-duration", "0ms");
2282
2415
  }, [
2283
2416
  $root
2284
2417
  ]);
2285
- const handlePointerDown = useCallback6(({ screenX }) => {
2418
+ const handlePointerDown = useCallback8(({ screenX }) => {
2286
2419
  if (motionState === 0) {
2287
2420
  setMotionState(1);
2288
2421
  setGestureStartX(screenX);
@@ -2290,7 +2423,7 @@ var useSwipeToDismiss = (ref, {
2290
2423
  }, [
2291
2424
  motionState
2292
2425
  ]);
2293
- const handlePointerMove = useCallback6(({ screenX }) => {
2426
+ const handlePointerMove = useCallback8(({ screenX }) => {
2294
2427
  if ($root) {
2295
2428
  const delta = Math.min(screenX - gestureStartX, 0);
2296
2429
  switch (motionState) {
@@ -2314,12 +2447,12 @@ var useSwipeToDismiss = (ref, {
2314
2447
  motionState,
2315
2448
  gestureStartX
2316
2449
  ]);
2317
- const handlePointerUp = useCallback6(() => {
2450
+ const handlePointerUp = useCallback8(() => {
2318
2451
  setIdle();
2319
2452
  }, [
2320
2453
  setIdle
2321
2454
  ]);
2322
- useEffect4(() => {
2455
+ useEffect5(() => {
2323
2456
  $root?.addEventListener("pointerdown", handlePointerDown);
2324
2457
  return () => {
2325
2458
  $root?.removeEventListener("pointerdown", handlePointerDown);
@@ -2328,7 +2461,7 @@ var useSwipeToDismiss = (ref, {
2328
2461
  $root,
2329
2462
  handlePointerDown
2330
2463
  ]);
2331
- useEffect4(() => {
2464
+ useEffect5(() => {
2332
2465
  $root && document.documentElement.addEventListener("pointermove", handlePointerMove);
2333
2466
  return () => {
2334
2467
  document.documentElement.removeEventListener("pointermove", handlePointerMove);
@@ -2337,7 +2470,7 @@ var useSwipeToDismiss = (ref, {
2337
2470
  $root,
2338
2471
  handlePointerMove
2339
2472
  ]);
2340
- useEffect4(() => {
2473
+ useEffect5(() => {
2341
2474
  $root && document.documentElement.addEventListener("pointerup", handlePointerUp);
2342
2475
  return () => {
2343
2476
  document.documentElement.removeEventListener("pointerup", handlePointerUp);
@@ -2357,7 +2490,7 @@ var MAIN_NAME = "Main";
2357
2490
  var GENERIC_CONSUMER_NAME = "GenericConsumer";
2358
2491
  var landmarkAttr = "data-main-landmark";
2359
2492
  var useLandmarkMover = (propsOnKeyDown, landmark) => {
2360
- const handleKeyDown = useCallback7((event) => {
2493
+ const handleKeyDown = useCallback9((event) => {
2361
2494
  const target = event.target;
2362
2495
  if (event.target === event.currentTarget && event.key === "Tab" && target.hasAttribute(landmarkAttr)) {
2363
2496
  event.preventDefault();
@@ -2371,12 +2504,12 @@ var useLandmarkMover = (propsOnKeyDown, landmark) => {
2371
2504
  }, [
2372
2505
  propsOnKeyDown
2373
2506
  ]);
2374
- const focusableGroupAttrs = window ? {} : {
2507
+ const focusableGroupAttrs = useFocusableGroup({
2375
2508
  tabBehavior: "limited",
2376
2509
  ignoreDefaultKeydown: {
2377
2510
  Tab: true
2378
2511
  }
2379
- };
2512
+ });
2380
2513
  return {
2381
2514
  onKeyDown: handleKeyDown,
2382
2515
  [landmarkAttr]: landmark,
@@ -2387,19 +2520,19 @@ var useLandmarkMover = (propsOnKeyDown, landmark) => {
2387
2520
  var [MainProvider, useMainContext] = createContext10(MAIN_NAME, {
2388
2521
  resizing: false,
2389
2522
  navigationSidebarState: "closed",
2390
- setNavigationSidebarState: (nextState) => {
2523
+ setNavigationSidebarState: (_nextState) => {
2391
2524
  log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
2392
2525
  F: __dxlog_file,
2393
- L: 82,
2526
+ L: 92,
2394
2527
  S: void 0,
2395
2528
  C: (f, a) => f(...a)
2396
2529
  });
2397
2530
  },
2398
2531
  complementarySidebarState: "closed",
2399
- setComplementarySidebarState: (nextState) => {
2532
+ setComplementarySidebarState: (_nextState) => {
2400
2533
  log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
2401
2534
  F: __dxlog_file,
2402
- L: 87,
2535
+ L: 97,
2403
2536
  S: void 0,
2404
2537
  C: (f, a) => f(...a)
2405
2538
  });
@@ -2410,31 +2543,29 @@ var useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
2410
2543
  return {
2411
2544
  navigationSidebarState,
2412
2545
  setNavigationSidebarState,
2413
- toggleNavigationSidebar: useCallback7(() => setNavigationSidebarState(navigationSidebarState === "expanded" ? "closed" : "expanded"), [
2546
+ toggleNavigationSidebar: useCallback9(() => setNavigationSidebarState(navigationSidebarState === "expanded" ? "closed" : "expanded"), [
2414
2547
  navigationSidebarState,
2415
2548
  setNavigationSidebarState
2416
2549
  ]),
2417
- openNavigationSidebar: useCallback7(() => setNavigationSidebarState("expanded"), []),
2418
- collapseNavigationSidebar: useCallback7(() => setNavigationSidebarState("collapsed"), []),
2419
- closeNavigationSidebar: useCallback7(() => setNavigationSidebarState("closed"), []),
2550
+ openNavigationSidebar: useCallback9(() => setNavigationSidebarState("expanded"), []),
2551
+ collapseNavigationSidebar: useCallback9(() => setNavigationSidebarState("collapsed"), []),
2552
+ closeNavigationSidebar: useCallback9(() => setNavigationSidebarState("closed"), []),
2420
2553
  complementarySidebarState,
2421
2554
  setComplementarySidebarState,
2422
- toggleComplementarySidebar: useCallback7(() => setComplementarySidebarState(complementarySidebarState === "expanded" ? "closed" : "expanded"), [
2555
+ toggleComplementarySidebar: useCallback9(() => setComplementarySidebarState(complementarySidebarState === "expanded" ? "closed" : "expanded"), [
2423
2556
  complementarySidebarState,
2424
2557
  setComplementarySidebarState
2425
2558
  ]),
2426
- openComplementarySidebar: useCallback7(() => setComplementarySidebarState("expanded"), []),
2427
- collapseComplementarySidebar: useCallback7(() => setComplementarySidebarState("collapsed"), []),
2428
- closeComplementarySidebar: useCallback7(() => setComplementarySidebarState("closed"), [])
2559
+ openComplementarySidebar: useCallback9(() => setComplementarySidebarState("expanded"), []),
2560
+ collapseComplementarySidebar: useCallback9(() => setComplementarySidebarState("collapsed"), []),
2561
+ closeComplementarySidebar: useCallback9(() => setComplementarySidebarState("closed"), [])
2429
2562
  };
2430
2563
  };
2431
2564
  var resizeDebounce = 3e3;
2432
2565
  var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNavigationSidebarState, onNavigationSidebarStateChange, complementarySidebarState: propsComplementarySidebarState, defaultComplementarySidebarState, onComplementarySidebarStateChange, children, ...props }) => {
2433
2566
  var _effect = _useSignals25();
2434
2567
  try {
2435
- const [isLg] = useMediaQuery("lg", {
2436
- ssr: false
2437
- });
2568
+ const [isLg] = useMediaQuery("lg");
2438
2569
  const [navigationSidebarState = isLg ? "expanded" : "collapsed", setNavigationSidebarState] = useControllableState4({
2439
2570
  prop: propsNavigationSidebarState,
2440
2571
  defaultProp: defaultNavigationSidebarState,
@@ -2445,9 +2576,9 @@ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNa
2445
2576
  defaultProp: defaultComplementarySidebarState,
2446
2577
  onChange: onComplementarySidebarStateChange
2447
2578
  });
2448
- const [resizing, setResizing] = useState7(false);
2579
+ const [resizing, setResizing] = useState8(false);
2449
2580
  const resizeInterval = useRef2(null);
2450
- const handleResize = useCallback7(() => {
2581
+ const handleResize = useCallback9(() => {
2451
2582
  setResizing(true);
2452
2583
  if (resizeInterval.current) {
2453
2584
  clearTimeout(resizeInterval.current);
@@ -2457,7 +2588,7 @@ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNa
2457
2588
  resizeInterval.current = null;
2458
2589
  }, resizeDebounce);
2459
2590
  }, []);
2460
- useEffect5(() => {
2591
+ useEffect6(() => {
2461
2592
  window.addEventListener("resize", handleResize);
2462
2593
  return () => window.removeEventListener("resize", handleResize);
2463
2594
  }, [
@@ -2482,9 +2613,7 @@ var handleOpenAutoFocus = (event) => {
2482
2613
  var MainSidebar = /* @__PURE__ */ forwardRef17(({ classNames, children, swipeToDismiss, onOpenAutoFocus, state, resizing, onStateChange, side, label, ...props }, forwardedRef) => {
2483
2614
  var _effect = _useSignals25();
2484
2615
  try {
2485
- const [isLg] = useMediaQuery("lg", {
2486
- ssr: false
2487
- });
2616
+ const [isLg] = useMediaQuery("lg");
2488
2617
  const { tx } = useThemeContext();
2489
2618
  const { t } = useTranslation();
2490
2619
  const ref = useForwardedRef(forwardedRef);
@@ -2492,9 +2621,12 @@ var MainSidebar = /* @__PURE__ */ forwardRef17(({ classNames, children, swipeToD
2492
2621
  useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {
2493
2622
  onDismiss: () => onStateChange?.("closed")
2494
2623
  });
2495
- const handleKeyDown = useCallback7((event) => {
2496
- if (event.key === "Escape") {
2497
- event.target.closest("[data-tabster]")?.focus();
2624
+ const handleKeyDown = useCallback9((event) => {
2625
+ const focusGroupParent = event.target.closest("[data-tabster]");
2626
+ if (event.key === "Escape" && focusGroupParent) {
2627
+ event.preventDefault();
2628
+ event.stopPropagation();
2629
+ focusGroupParent.focus();
2498
2630
  }
2499
2631
  props.onKeyDown?.(event);
2500
2632
  }, [
@@ -2518,9 +2650,9 @@ var MainSidebar = /* @__PURE__ */ forwardRef17(({ classNames, children, swipeToD
2518
2650
  "data-state": state,
2519
2651
  "data-resizing": resizing ? "true" : "false",
2520
2652
  className: tx("main.sidebar", "main__sidebar", {}, classNames),
2521
- onKeyDown: handleKeyDown,
2653
+ onKeyDownCapture: handleKeyDown,
2522
2654
  ...state === "closed" && {
2523
- inert: "true"
2655
+ inert: true
2524
2656
  },
2525
2657
  ref
2526
2658
  }, children));
@@ -2596,9 +2728,7 @@ MainContent.displayName = MAIN_NAME;
2596
2728
  var MainOverlay = /* @__PURE__ */ forwardRef17(({ classNames, ...props }, forwardedRef) => {
2597
2729
  var _effect = _useSignals25();
2598
2730
  try {
2599
- const [isLg] = useMediaQuery("lg", {
2600
- ssr: false
2601
- });
2731
+ const [isLg] = useMediaQuery("lg");
2602
2732
  const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } = useMainContext(MAIN_NAME);
2603
2733
  const { tx } = useThemeContext();
2604
2734
  return /* @__PURE__ */ React25.createElement("div", {
@@ -2636,7 +2766,7 @@ import { Slot as Slot9 } from "@radix-ui/react-slot";
2636
2766
  import React26, { forwardRef as forwardRef18 } from "react";
2637
2767
 
2638
2768
  // src/hooks/useSafeCollisionPadding.ts
2639
- import { useMemo as useMemo3 } from "react";
2769
+ import { useMemo as useMemo4 } from "react";
2640
2770
  var propIsNumber = (prop) => Number.isFinite(prop);
2641
2771
  var propsIsRecord = (prop) => !!(prop && typeof prop === "object");
2642
2772
  var safePadding = (propsPadding, safePadding2, side) => {
@@ -2644,7 +2774,7 @@ var safePadding = (propsPadding, safePadding2, side) => {
2644
2774
  };
2645
2775
  var useSafeCollisionPadding = (collisionPadding) => {
2646
2776
  const { safeAreaPadding } = useThemeContext();
2647
- return useMemo3(() => ({
2777
+ return useMemo4(() => ({
2648
2778
  top: safePadding(collisionPadding, safeAreaPadding, "top"),
2649
2779
  right: safePadding(collisionPadding, safeAreaPadding, "right"),
2650
2780
  bottom: safePadding(collisionPadding, safeAreaPadding, "bottom"),
@@ -2667,6 +2797,7 @@ var ContextMenuContent = /* @__PURE__ */ forwardRef18(({ classNames, children, c
2667
2797
  const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
2668
2798
  return /* @__PURE__ */ React26.createElement(ContextMenuPrimitive.Content, {
2669
2799
  ...props,
2800
+ "data-arrow-keys": "up down",
2670
2801
  collisionPadding: safeCollisionPadding,
2671
2802
  className: tx("menu.content", "menu", {
2672
2803
  elevation
@@ -2784,7 +2915,7 @@ import { createMenuScope } from "@radix-ui/react-menu";
2784
2915
  import { Primitive as Primitive10 } from "@radix-ui/react-primitive";
2785
2916
  import { Slot as Slot10 } from "@radix-ui/react-slot";
2786
2917
  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";
2918
+ import React27, { forwardRef as forwardRef19, useCallback as useCallback10, useEffect as useEffect7, useRef as useRef3 } from "react";
2788
2919
  var DROPDOWN_MENU_NAME = "DropdownMenu";
2789
2920
  var [createDropdownMenuContext, createDropdownMenuScope] = createContextScope3(DROPDOWN_MENU_NAME, [
2790
2921
  createMenuScope
@@ -2809,7 +2940,7 @@ var DropdownMenuRoot = (props) => {
2809
2940
  contentId: useId3(),
2810
2941
  open,
2811
2942
  onOpenChange: setOpen,
2812
- onOpenToggle: useCallback8(() => setOpen((prevOpen) => !prevOpen), [
2943
+ onOpenToggle: useCallback10(() => setOpen((prevOpen) => !prevOpen), [
2813
2944
  setOpen
2814
2945
  ]),
2815
2946
  modal
@@ -2846,6 +2977,7 @@ var DropdownMenuTrigger = /* @__PURE__ */ forwardRef19((props, forwardedRef) =>
2846
2977
  disabled,
2847
2978
  ...triggerProps,
2848
2979
  ref: composeRefs(forwardedRef, context.triggerRef),
2980
+ "data-arrow-keys": "down",
2849
2981
  onPointerDown: composeEventHandlers2(props.onPointerDown, (event) => {
2850
2982
  if (!disabled && event.button === 0 && event.ctrlKey === false) {
2851
2983
  context.onOpenToggle();
@@ -2888,7 +3020,7 @@ var DropdownMenuVirtualTrigger = (props) => {
2888
3020
  const { __scopeDropdownMenu, virtualRef } = props;
2889
3021
  const context = useDropdownMenuContext(VIRTUAL_TRIGGER_NAME, __scopeDropdownMenu);
2890
3022
  const menuScope = useMenuScope(__scopeDropdownMenu);
2891
- useEffect6(() => {
3023
+ useEffect7(() => {
2892
3024
  if (virtualRef.current) {
2893
3025
  context.triggerRef.current = virtualRef.current;
2894
3026
  }
@@ -2964,6 +3096,7 @@ var DropdownMenuContent = /* @__PURE__ */ forwardRef19((props, forwardedRef) =>
2964
3096
  hasInteractedOutsideRef.current = true;
2965
3097
  }
2966
3098
  }),
3099
+ "data-arrow-keys": "up down",
2967
3100
  className: tx("menu.content", "menu", {
2968
3101
  elevation
2969
3102
  }, classNames),
@@ -3074,11 +3207,13 @@ var RADIO_ITEM_NAME = "DropdownMenuRadioItem";
3074
3207
  var DropdownMenuRadioItem = /* @__PURE__ */ forwardRef19((props, forwardedRef) => {
3075
3208
  var _effect = _useSignals27();
3076
3209
  try {
3077
- const { __scopeDropdownMenu, ...radioItemProps } = props;
3210
+ const { __scopeDropdownMenu, classNames, ...itemProps } = props;
3078
3211
  const menuScope = useMenuScope(__scopeDropdownMenu);
3079
- return /* @__PURE__ */ React27.createElement(MenuPrimitive.RadioItem, {
3212
+ const { tx } = useThemeContext();
3213
+ return /* @__PURE__ */ React27.createElement(MenuPrimitive.Item, {
3080
3214
  ...menuScope,
3081
- ...radioItemProps,
3215
+ ...itemProps,
3216
+ className: tx("menu.item", "menu__item", {}, classNames),
3082
3217
  ref: forwardedRef
3083
3218
  });
3084
3219
  } finally {
@@ -3332,7 +3467,7 @@ import { Primitive as Primitive12 } from "@radix-ui/react-primitive";
3332
3467
  import { Slot as Slot12 } from "@radix-ui/react-slot";
3333
3468
  import { useControllableState as useControllableState6 } from "@radix-ui/react-use-controllable-state";
3334
3469
  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";
3470
+ import React29, { forwardRef as forwardRef21, useCallback as useCallback11, useEffect as useEffect8, useRef as useRef4, useState as useState9 } from "react";
3336
3471
  import { RemoveScroll } from "react-remove-scroll";
3337
3472
  var POPOVER_NAME = "Popover";
3338
3473
  var [createPopoverContext, createPopoverScope] = createContextScope4(POPOVER_NAME, [
@@ -3346,7 +3481,7 @@ var PopoverRoot = (props) => {
3346
3481
  const { __scopePopover, children, open: openProp, defaultOpen, onOpenChange, modal = false } = props;
3347
3482
  const popperScope = usePopperScope2(__scopePopover);
3348
3483
  const triggerRef = useRef4(null);
3349
- const [hasCustomAnchor, setHasCustomAnchor] = useState8(false);
3484
+ const [hasCustomAnchor, setHasCustomAnchor] = useState9(false);
3350
3485
  const [open = false, setOpen] = useControllableState6({
3351
3486
  prop: openProp,
3352
3487
  defaultProp: defaultOpen,
@@ -3358,12 +3493,12 @@ var PopoverRoot = (props) => {
3358
3493
  triggerRef,
3359
3494
  open,
3360
3495
  onOpenChange: setOpen,
3361
- onOpenToggle: useCallback9(() => setOpen((prevOpen) => !prevOpen), [
3496
+ onOpenToggle: useCallback11(() => setOpen((prevOpen) => !prevOpen), [
3362
3497
  setOpen
3363
3498
  ]),
3364
3499
  hasCustomAnchor,
3365
- onCustomAnchorAdd: useCallback9(() => setHasCustomAnchor(true), []),
3366
- onCustomAnchorRemove: useCallback9(() => setHasCustomAnchor(false), []),
3500
+ onCustomAnchorAdd: useCallback11(() => setHasCustomAnchor(true), []),
3501
+ onCustomAnchorRemove: useCallback11(() => setHasCustomAnchor(false), []),
3367
3502
  modal
3368
3503
  }, children));
3369
3504
  } finally {
@@ -3379,7 +3514,7 @@ var PopoverAnchor = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
3379
3514
  const context = usePopoverContext(ANCHOR_NAME, __scopePopover);
3380
3515
  const popperScope = usePopperScope2(__scopePopover);
3381
3516
  const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
3382
- useEffect7(() => {
3517
+ useEffect8(() => {
3383
3518
  onCustomAnchorAdd();
3384
3519
  return () => onCustomAnchorRemove();
3385
3520
  }, [
@@ -3430,7 +3565,7 @@ var PopoverVirtualTrigger = (props) => {
3430
3565
  const { __scopePopover, virtualRef } = props;
3431
3566
  const context = usePopoverContext(VIRTUAL_TRIGGER_NAME2, __scopePopover);
3432
3567
  const popperScope = usePopperScope2(__scopePopover);
3433
- useEffect7(() => {
3568
+ useEffect8(() => {
3434
3569
  if (virtualRef.current) {
3435
3570
  context.triggerRef.current = virtualRef.current;
3436
3571
  }
@@ -3495,7 +3630,7 @@ var PopoverContentModal = /* @__PURE__ */ forwardRef21((props, forwardedRef) =>
3495
3630
  const contentRef = useRef4(null);
3496
3631
  const composedRefs = useComposedRefs2(forwardedRef, contentRef);
3497
3632
  const isRightClickOutsideRef = useRef4(false);
3498
- useEffect7(() => {
3633
+ useEffect8(() => {
3499
3634
  const content = contentRef.current;
3500
3635
  if (content) {
3501
3636
  return hideOthers(content);
@@ -3729,7 +3864,7 @@ var Status = /* @__PURE__ */ forwardRef22(({ classNames, children, progress = 0,
3729
3864
 
3730
3865
  // src/components/ScrollArea/ScrollArea.tsx
3731
3866
  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";
3867
+ import { Corner as ScrollAreaPrimitiveCorner, Root as ScrollAreaPrimitiveRoot, Scrollbar as ScrollAreaPrimitiveScrollbar, Thumb as ScrollAreaPrimitiveThumb, Viewport as ScrollAreaPrimitiveViewport } from "@radix-ui/react-scroll-area";
3733
3868
  import React31, { forwardRef as forwardRef23 } from "react";
3734
3869
  var ScrollAreaRoot = /* @__PURE__ */ forwardRef23(({ classNames, ...props }, forwardedRef) => {
3735
3870
  var _effect = _useSignals31();
@@ -3817,7 +3952,6 @@ var SelectPortal = SelectPrimitive.Portal;
3817
3952
  var SelectTriggerButton = /* @__PURE__ */ forwardRef24(({ children, placeholder, ...props }, forwardedRef) => {
3818
3953
  var _effect = _useSignals32();
3819
3954
  try {
3820
- const { tx } = useThemeContext();
3821
3955
  return /* @__PURE__ */ React32.createElement(SelectPrimitive.Trigger, {
3822
3956
  asChild: true,
3823
3957
  ref: forwardedRef
@@ -3828,8 +3962,8 @@ var SelectTriggerButton = /* @__PURE__ */ forwardRef24(({ children, placeholder,
3828
3962
  }), /* @__PURE__ */ React32.createElement(SelectPrimitive.Icon, {
3829
3963
  asChild: true
3830
3964
  }, /* @__PURE__ */ React32.createElement(Icon, {
3831
- icon: "ph--caret-down--bold",
3832
- classNames: tx("select.triggerIcon", "select__trigger__icon", {})
3965
+ size: 3,
3966
+ icon: "ph--caret-down--bold"
3833
3967
  }))));
3834
3968
  } finally {
3835
3969
  _effect.f();
@@ -3843,6 +3977,7 @@ var SelectContent = /* @__PURE__ */ forwardRef24(({ classNames, children, collis
3843
3977
  const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
3844
3978
  return /* @__PURE__ */ React32.createElement(SelectPrimitive.Content, {
3845
3979
  ...props,
3980
+ "data-arrow-keys": "up down",
3846
3981
  collisionPadding: safeCollisionPadding,
3847
3982
  className: tx("select.content", "select__content", {
3848
3983
  elevation
@@ -3863,6 +3998,7 @@ var SelectScrollUpButton2 = /* @__PURE__ */ forwardRef24(({ classNames, children
3863
3998
  className: tx("select.scrollButton", "select__scroll-button--up", {}, classNames),
3864
3999
  ref: forwardedRef
3865
4000
  }, children ?? /* @__PURE__ */ React32.createElement(Icon, {
4001
+ size: 3,
3866
4002
  icon: "ph--caret-up--bold"
3867
4003
  }));
3868
4004
  } finally {
@@ -3878,6 +4014,7 @@ var SelectScrollDownButton2 = /* @__PURE__ */ forwardRef24(({ classNames, childr
3878
4014
  className: tx("select.scrollButton", "select__scroll-button--down", {}, classNames),
3879
4015
  ref: forwardedRef
3880
4016
  }, children ?? /* @__PURE__ */ React32.createElement(Icon, {
4017
+ size: 3,
3881
4018
  icon: "ph--caret-down--bold"
3882
4019
  }));
3883
4020
  } finally {
@@ -4039,7 +4176,7 @@ var Tag = /* @__PURE__ */ forwardRef26(({ asChild, palette = "neutral", classNam
4039
4176
  import { useSignals as _useSignals35 } from "@preact-signals/safe-react/tracking";
4040
4177
  import { Primitive as Primitive14 } from "@radix-ui/react-primitive";
4041
4178
  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";
4179
+ 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";
4043
4180
  import React35, { forwardRef as forwardRef27 } from "react";
4044
4181
  var ToastProvider = ToastProviderPrimitive;
4045
4182
  var ToastViewport = /* @__PURE__ */ forwardRef27(({ classNames, ...props }, forwardedRef) => {
@@ -4149,6 +4286,7 @@ var ToolbarRoot = /* @__PURE__ */ forwardRef28(({ classNames, children, layoutMa
4149
4286
  const { tx } = useThemeContext();
4150
4287
  return /* @__PURE__ */ React36.createElement(ToolbarPrimitive.Root, {
4151
4288
  ...props,
4289
+ "data-arrow-keys": props.orientation === "vertical" ? "up down" : "left right",
4152
4290
  className: tx("toolbar.root", "toolbar", {
4153
4291
  layoutManaged
4154
4292
  }, classNames),
@@ -4327,8 +4465,11 @@ export {
4327
4465
  Toggle,
4328
4466
  ToggleGroup,
4329
4467
  ToggleGroupItem,
4468
+ ToggleGroupIconItem,
4330
4469
  useClipboard,
4470
+ Domino,
4331
4471
  hasIosKeyboard,
4472
+ usePx,
4332
4473
  DensityContext,
4333
4474
  DensityProvider,
4334
4475
  ElevationContext,
@@ -4339,8 +4480,8 @@ export {
4339
4480
  Dialog,
4340
4481
  AlertDialog,
4341
4482
  Input,
4342
- LIST_NAME,
4343
4483
  LIST_ITEM_NAME,
4484
+ LIST_NAME,
4344
4485
  useListContext,
4345
4486
  useListItemContext,
4346
4487
  List,
@@ -4370,4 +4511,4 @@ export {
4370
4511
  Toast,
4371
4512
  Toolbar
4372
4513
  };
4373
- //# sourceMappingURL=chunk-2COVUP44.mjs.map
4514
+ //# sourceMappingURL=chunk-B7HPXBP2.mjs.map