@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
@@ -59,7 +59,7 @@ import { useContext as useContext4 } from "react";
59
59
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
60
60
  import { enUS as dtLocaleEnUs } from "date-fns/locale";
61
61
  import i18Next from "i18next";
62
- import React, { useEffect, createContext, useState as useState2, Suspense, useContext as useContext3 } from "react";
62
+ import React, { Suspense, createContext, useContext as useContext3, useEffect, useState as useState2 } from "react";
63
63
  import { initReactI18next, useTranslation as useI18NextTranslation } from "react-i18next";
64
64
  var initialLng = "en-US";
65
65
  var initialNs = "dxos-common";
@@ -140,7 +140,7 @@ var useVisualViewport = (deps) => {
140
140
  setHeight(window.visualViewport.height);
141
141
  }
142
142
  }, []);
143
- useResize2(handleResize);
143
+ useResize2(handleResize, deps);
144
144
  return {
145
145
  width,
146
146
  height
@@ -1138,7 +1138,7 @@ var LabelledIconButton = /* @__PURE__ */ forwardRef8(({ icon, size, iconOnly, la
1138
1138
  iconOnly
1139
1139
  }, classNames),
1140
1140
  ref: forwardedRef
1141
- }, /* @__PURE__ */ React9.createElement(Icon, {
1141
+ }, icon && /* @__PURE__ */ React9.createElement(Icon, {
1142
1142
  icon,
1143
1143
  size,
1144
1144
  classNames: iconClassNames
@@ -1190,7 +1190,7 @@ var Toggle = /* @__PURE__ */ forwardRef9(({ defaultPressed, pressed, onPressedCh
1190
1190
 
1191
1191
  // src/components/Buttons/ToggleGroup.tsx
1192
1192
  import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
1193
- import { ToggleGroup as ToggleGroupPrimitive, ToggleGroupItem as ToggleGroupItemPrimitive } from "@radix-ui/react-toggle-group";
1193
+ import { ToggleGroupItem as ToggleGroupItemPrimitive, ToggleGroup as ToggleGroupPrimitive } from "@radix-ui/react-toggle-group";
1194
1194
  import React11, { forwardRef as forwardRef10 } from "react";
1195
1195
  var ToggleGroup = /* @__PURE__ */ forwardRef10(({ classNames, children, ...props }, forwardedRef) => {
1196
1196
  var _effect = _useSignals11();
@@ -1225,6 +1225,26 @@ var ToggleGroupItem = /* @__PURE__ */ forwardRef10(({ variant, elevation, densit
1225
1225
  _effect.f();
1226
1226
  }
1227
1227
  });
1228
+ var ToggleGroupIconItem = /* @__PURE__ */ forwardRef10(({ variant, label, icon, size, elevation, density, classNames, ...props }, forwardedRef) => {
1229
+ var _effect = _useSignals11();
1230
+ try {
1231
+ return /* @__PURE__ */ React11.createElement(ToggleGroupItemPrimitive, {
1232
+ ...props,
1233
+ asChild: true
1234
+ }, /* @__PURE__ */ React11.createElement(IconButton, {
1235
+ variant,
1236
+ elevation,
1237
+ density,
1238
+ classNames,
1239
+ label,
1240
+ icon,
1241
+ size,
1242
+ ref: forwardedRef
1243
+ }));
1244
+ } finally {
1245
+ _effect.f();
1246
+ }
1247
+ });
1228
1248
 
1229
1249
  // src/components/Clipboard/ClipboardProvider.tsx
1230
1250
  import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
@@ -1257,18 +1277,116 @@ var ClipboardProvider = ({ children }) => {
1257
1277
  // src/components/Clipboard/CopyButton.tsx
1258
1278
  import { useSignals as _useSignals16 } from "@preact-signals/safe-react/tracking";
1259
1279
  import React16 from "react";
1260
- import { mx as mx2 } from "@dxos/react-ui-theme";
1280
+ import { mx as mx3 } from "@dxos/react-ui-theme";
1261
1281
 
1262
1282
  // src/components/ThemeProvider/ThemeProvider.tsx
1263
1283
  import { useSignals as _useSignals15 } from "@preact-signals/safe-react/tracking";
1264
1284
  import { createKeyborg } from "keyborg";
1265
- import React15, { createContext as createContext7, useEffect as useEffect3, useMemo as useMemo2 } from "react";
1285
+ import React15, { createContext as createContext7, useEffect as useEffect4, useMemo as useMemo3 } from "react";
1286
+
1287
+ // src/util/domino.ts
1288
+ import { mx as mx2 } from "@dxos/react-ui-theme";
1289
+ function _define_property(obj, key, value) {
1290
+ if (key in obj) {
1291
+ Object.defineProperty(obj, key, {
1292
+ value,
1293
+ enumerable: true,
1294
+ configurable: true,
1295
+ writable: true
1296
+ });
1297
+ } else {
1298
+ obj[key] = value;
1299
+ }
1300
+ return obj;
1301
+ }
1302
+ var Domino = class _Domino {
1303
+ static of(tag) {
1304
+ return new _Domino(tag);
1305
+ }
1306
+ classNames(...classNames) {
1307
+ this._el.className = mx2(classNames);
1308
+ return this;
1309
+ }
1310
+ text(value) {
1311
+ this._el.textContent = value;
1312
+ return this;
1313
+ }
1314
+ data(key, value) {
1315
+ this._el.dataset[key] = value;
1316
+ return this;
1317
+ }
1318
+ style(styles) {
1319
+ Object.assign(this._el.style, styles);
1320
+ return this;
1321
+ }
1322
+ attr(key, value) {
1323
+ this._el[key] = value;
1324
+ return this;
1325
+ }
1326
+ children(...children) {
1327
+ children.forEach((child) => this._el.appendChild(child.build()));
1328
+ return this;
1329
+ }
1330
+ on(event, handler) {
1331
+ this._el.addEventListener(event, handler);
1332
+ return this;
1333
+ }
1334
+ build() {
1335
+ return this._el;
1336
+ }
1337
+ constructor(tag) {
1338
+ _define_property(this, "_el", void 0);
1339
+ this._el = document.createElement(tag);
1340
+ }
1341
+ };
1266
1342
 
1267
1343
  // src/util/hasIosKeyboard.ts
1268
1344
  var hasIosKeyboard = () => {
1269
1345
  return !!navigator.userAgent.match(/iP(ad|od|hone).+Safari/);
1270
1346
  };
1271
1347
 
1348
+ // src/util/usePx.ts
1349
+ import { useCallback as useCallback5, useEffect as useEffect3, useMemo as useMemo2, useState as useState6 } from "react";
1350
+ var getDocumentElementFontSize = () => parseFloat(getComputedStyle(document.documentElement).fontSize);
1351
+ var usePx = (rem) => {
1352
+ const [fontSize, setFontSize] = useState6(() => {
1353
+ if (typeof document !== "undefined") {
1354
+ return getDocumentElementFontSize();
1355
+ }
1356
+ return 16;
1357
+ });
1358
+ const updateFontSize = useCallback5(() => {
1359
+ setFontSize(getDocumentElementFontSize());
1360
+ }, []);
1361
+ useEffect3(() => {
1362
+ if (typeof document === "undefined") {
1363
+ return;
1364
+ }
1365
+ const resizeObserver = new ResizeObserver(updateFontSize);
1366
+ resizeObserver.observe(document.documentElement);
1367
+ const mediaQueryList = window.matchMedia("all");
1368
+ const handleMediaChange = () => {
1369
+ updateFontSize();
1370
+ };
1371
+ if (mediaQueryList.addEventListener) {
1372
+ mediaQueryList.addEventListener("change", handleMediaChange);
1373
+ } else {
1374
+ mediaQueryList.addListener(handleMediaChange);
1375
+ }
1376
+ return () => {
1377
+ resizeObserver.disconnect();
1378
+ if (mediaQueryList.removeEventListener) {
1379
+ mediaQueryList.removeEventListener("change", handleMediaChange);
1380
+ } else {
1381
+ mediaQueryList.removeListener(handleMediaChange);
1382
+ }
1383
+ };
1384
+ }, []);
1385
+ return useMemo2(() => rem * fontSize, [
1386
+ fontSize
1387
+ ]);
1388
+ };
1389
+
1272
1390
  // src/components/DensityProvider/DensityProvider.tsx
1273
1391
  import { useSignals as _useSignals13 } from "@preact-signals/safe-react/tracking";
1274
1392
  import React13, { createContext as createContext5 } from "react";
@@ -1312,7 +1430,7 @@ var ThemeContext = /* @__PURE__ */ createContext7(void 0);
1312
1430
  var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName, themeMode = "dark", rootDensity = "fine", ...rest }) => {
1313
1431
  var _effect = _useSignals15();
1314
1432
  try {
1315
- useEffect3(() => {
1433
+ useEffect4(() => {
1316
1434
  if (document.defaultView) {
1317
1435
  const kb = createKeyborg(document.defaultView);
1318
1436
  kb.subscribe(handleInputModalityChange);
@@ -1320,7 +1438,7 @@ var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx
1320
1438
  }
1321
1439
  }, []);
1322
1440
  const safeAreaPadding = useSafeArea();
1323
- const contextValue = useMemo2(() => ({
1441
+ const contextValue = useMemo3(() => ({
1324
1442
  tx,
1325
1443
  themeMode,
1326
1444
  hasIosKeyboard: hasIosKeyboard(),
@@ -1373,7 +1491,7 @@ var CopyButton = ({ classNames, value, size = 5, ...props }) => {
1373
1491
  "data-testid": "copy-invitation"
1374
1492
  }, /* @__PURE__ */ React16.createElement("div", {
1375
1493
  role: "none",
1376
- className: mx2("flex gap-1 items-center", isCopied && inactiveLabelStyles)
1494
+ className: mx3("flex gap-1 items-center", isCopied && inactiveLabelStyles)
1377
1495
  }, /* @__PURE__ */ React16.createElement("span", {
1378
1496
  className: "pli-1"
1379
1497
  }, t("copy label")), /* @__PURE__ */ React16.createElement(Icon, {
@@ -1381,7 +1499,7 @@ var CopyButton = ({ classNames, value, size = 5, ...props }) => {
1381
1499
  size
1382
1500
  })), /* @__PURE__ */ React16.createElement("div", {
1383
1501
  role: "none",
1384
- className: mx2("flex gap-1 items-center", !isCopied && inactiveLabelStyles)
1502
+ className: mx3("flex gap-1 items-center", !isCopied && inactiveLabelStyles)
1385
1503
  }, /* @__PURE__ */ React16.createElement("span", {
1386
1504
  className: "pli-1"
1387
1505
  }, t("copy success label")), /* @__PURE__ */ React16.createElement(Icon, {
@@ -1428,7 +1546,7 @@ var Clipboard = {
1428
1546
  // src/components/Dialogs/Dialog.tsx
1429
1547
  import { useSignals as _useSignals17 } from "@preact-signals/safe-react/tracking";
1430
1548
  import { createContext as createContext8 } from "@radix-ui/react-context";
1431
- import { Root as DialogRootPrimitive, DialogTrigger as DialogTriggerPrimitive, DialogPortal as DialogPortalPrimitive, DialogOverlay as DialogOverlayPrimitive, DialogTitle as DialogTitlePrimitive, DialogDescription as DialogDescriptionPrimitive, DialogClose as DialogClosePrimitive, DialogContent as DialogContentPrimitive } from "@radix-ui/react-dialog";
1549
+ import { DialogClose as DialogClosePrimitive, DialogContent as DialogContentPrimitive, DialogDescription as DialogDescriptionPrimitive, DialogOverlay as DialogOverlayPrimitive, DialogPortal as DialogPortalPrimitive, Root as DialogRootPrimitive, DialogTitle as DialogTitlePrimitive, DialogTrigger as DialogTriggerPrimitive } from "@radix-ui/react-dialog";
1432
1550
  import React17, { forwardRef as forwardRef11 } from "react";
1433
1551
  var DialogRoot = (props) => {
1434
1552
  var _effect = _useSignals17();
@@ -1526,7 +1644,7 @@ var Dialog = {
1526
1644
 
1527
1645
  // src/components/Dialogs/AlertDialog.tsx
1528
1646
  import { useSignals as _useSignals18 } from "@preact-signals/safe-react/tracking";
1529
- import { Root as AlertDialogRootPrimitive, AlertDialogTrigger as AlertDialogTriggerPrimitive, AlertDialogPortal as AlertDialogPortalPrimitive, AlertDialogOverlay as AlertDialogOverlayPrimitive, AlertDialogTitle as AlertDialogTitlePrimitive, AlertDialogDescription as AlertDialogDescriptionPrimitive, AlertDialogAction as AlertDialogActionPrimitive, AlertDialogCancel as AlertDialogCancelPrimitive, AlertDialogContent as AlertDialogContentPrimitive } from "@radix-ui/react-alert-dialog";
1647
+ import { AlertDialogAction as AlertDialogActionPrimitive, AlertDialogCancel as AlertDialogCancelPrimitive, AlertDialogContent as AlertDialogContentPrimitive, AlertDialogDescription as AlertDialogDescriptionPrimitive, AlertDialogOverlay as AlertDialogOverlayPrimitive, AlertDialogPortal as AlertDialogPortalPrimitive, Root as AlertDialogRootPrimitive, AlertDialogTitle as AlertDialogTitlePrimitive, AlertDialogTrigger as AlertDialogTriggerPrimitive } from "@radix-ui/react-alert-dialog";
1530
1648
  import { createContext as createContext9 } from "@radix-ui/react-context";
1531
1649
  import React18, { forwardRef as forwardRef12 } from "react";
1532
1650
  var AlertDialogRoot = (props) => {
@@ -1628,9 +1746,9 @@ var AlertDialog = {
1628
1746
  import { useSignals as _useSignals19 } from "@preact-signals/safe-react/tracking";
1629
1747
  import { Root as CheckboxPrimitive } from "@radix-ui/react-checkbox";
1630
1748
  import { useControllableState as useControllableState2 } from "@radix-ui/react-use-controllable-state";
1631
- import React19, { forwardRef as forwardRef13, useCallback as useCallback5 } from "react";
1632
- import { InputRoot, PinInput as PinInputPrimitive, TextInput as TextInputPrimitive, TextArea as TextAreaPrimitive, useInputContext, INPUT_NAME, Description as DescriptionPrimitive, DescriptionAndValidation as DescriptionAndValidationPrimitive, Label as LabelPrimitive, Validation as ValidationPrimitive } from "@dxos/react-input";
1633
- import { mx as mx3 } from "@dxos/react-ui-theme";
1749
+ import React19, { forwardRef as forwardRef13, useCallback as useCallback6 } from "react";
1750
+ 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";
1751
+ import { mx as mx4 } from "@dxos/react-ui-theme";
1634
1752
  var Label = /* @__PURE__ */ forwardRef13(({ srOnly, classNames, children, ...props }, forwardedRef) => {
1635
1753
  var _effect = _useSignals19();
1636
1754
  try {
@@ -1700,7 +1818,7 @@ var PinInput = /* @__PURE__ */ forwardRef13(({ density: propsDensity, elevation:
1700
1818
  const { tx } = useThemeContext();
1701
1819
  const density = useDensityContext(propsDensity);
1702
1820
  const elevation = useElevationContext(propsElevation);
1703
- const segmentClassName = useCallback5(({ focused, validationValence }) => tx("input.input", "input--pin-segment", {
1821
+ const segmentClassName = useCallback6(({ focused, validationValence }) => tx("input.input", "input--pin-segment", {
1704
1822
  variant: "static",
1705
1823
  focused,
1706
1824
  disabled: props.disabled,
@@ -1782,7 +1900,7 @@ var TextArea = /* @__PURE__ */ forwardRef13(({ __inputScope, classNames, density
1782
1900
  _effect.f();
1783
1901
  }
1784
1902
  });
1785
- var Checkbox = /* @__PURE__ */ forwardRef13(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size, weight = "bold", classNames, ...props }, forwardedRef) => {
1903
+ var Checkbox = /* @__PURE__ */ forwardRef13(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size, classNames, ...props }, forwardedRef) => {
1786
1904
  var _effect = _useSignals19();
1787
1905
  try {
1788
1906
  const [checked, onCheckedChange] = useControllableState2({
@@ -1828,7 +1946,7 @@ var Switch = /* @__PURE__ */ forwardRef13(({ __inputScope, checked: propsChecked
1828
1946
  const { id, validationValence, descriptionId, errorMessageId } = useInputContext(INPUT_NAME, __inputScope);
1829
1947
  return /* @__PURE__ */ React19.createElement("input", {
1830
1948
  type: "checkbox",
1831
- className: mx3("dx-checkbox--switch dx-focus-ring", classNames),
1949
+ className: mx4("dx-checkbox--switch dx-focus-ring", classNames),
1832
1950
  checked,
1833
1951
  onChange: (event) => {
1834
1952
  onCheckedChange(event.target.checked);
@@ -1863,7 +1981,7 @@ var Input = {
1863
1981
  import { useSignals as _useSignals21 } from "@preact-signals/safe-react/tracking";
1864
1982
  import { Slot as Slot6 } from "@radix-ui/react-slot";
1865
1983
  import React21, { forwardRef as forwardRef14 } from "react";
1866
- import { List as ListPrimitive, ListItemHeading as ListPrimitiveItemHeading, ListItemOpenTrigger as ListPrimitiveItemOpenTrigger, ListItemCollapsibleContent, ListItem as ListPrimitiveItem, LIST_NAME, LIST_ITEM_NAME, useListContext, useListItemContext } from "@dxos/react-list";
1984
+ import { LIST_ITEM_NAME, LIST_NAME, ListItemCollapsibleContent, List as ListPrimitive, ListItem as ListPrimitiveItem, ListItemHeading as ListPrimitiveItemHeading, ListItemOpenTrigger as ListPrimitiveItemOpenTrigger, useListContext, useListItemContext } from "@dxos/react-list";
1867
1985
 
1868
1986
  // src/components/Lists/ListDropIndicator.tsx
1869
1987
  import { useSignals as _useSignals20 } from "@preact-signals/safe-react/tracking";
@@ -1984,7 +2102,6 @@ var ListItemOpenTrigger = /* @__PURE__ */ forwardRef14(({ __listItemScope, class
1984
2102
  const { tx } = useThemeContext();
1985
2103
  const density = useDensityContext();
1986
2104
  const { open } = useListItemContext(LIST_ITEM_NAME, __listItemScope);
1987
- const iconName = open ? "ph--caret-down--bold" : "ph--caret-right--bold";
1988
2105
  return /* @__PURE__ */ React21.createElement(ListPrimitiveItemOpenTrigger, {
1989
2106
  ...props,
1990
2107
  className: tx("list.item.openTrigger", "list__listItem__openTrigger", {
@@ -1992,7 +2109,8 @@ var ListItemOpenTrigger = /* @__PURE__ */ forwardRef14(({ __listItemScope, class
1992
2109
  }, classNames),
1993
2110
  ref: forwardedRef
1994
2111
  }, children || /* @__PURE__ */ React21.createElement(Icon, {
1995
- icon: iconName,
2112
+ size: 3,
2113
+ icon: open ? "ph--caret-down--bold" : "ph--caret-right--bold",
1996
2114
  classNames: tx("list.item.openTriggerIcon", "list__listItem__openTrigger__icon", {})
1997
2115
  }));
1998
2116
  } finally {
@@ -2137,12 +2255,12 @@ var TreeItem = {
2137
2255
 
2138
2256
  // src/components/Lists/Treegrid.tsx
2139
2257
  import { useSignals as _useSignals24 } from "@preact-signals/safe-react/tracking";
2140
- import { useArrowNavigationGroup, useFocusableGroup } from "@fluentui/react-tabster";
2258
+ import { useFocusFinders } from "@fluentui/react-tabster";
2141
2259
  import { createContextScope as createContextScope2 } from "@radix-ui/react-context";
2142
2260
  import { Primitive as Primitive7 } from "@radix-ui/react-primitive";
2143
2261
  import { Slot as Slot7 } from "@radix-ui/react-slot";
2144
2262
  import { useControllableState as useControllableState3 } from "@radix-ui/react-use-controllable-state";
2145
- import React24, { forwardRef as forwardRef16 } from "react";
2263
+ import React24, { forwardRef as forwardRef16, useCallback as useCallback7 } from "react";
2146
2264
  var TREEGRID_ROW_NAME = "TreegridRow";
2147
2265
  var [createTreegridRowContext, createTreegridRowScope] = createContextScope2(TREEGRID_ROW_NAME, []);
2148
2266
  var [TreegridRowProvider, useTreegridRowContext] = createTreegridRowContext(TREEGRID_ROW_NAME);
@@ -2153,14 +2271,43 @@ var TreegridRoot = /* @__PURE__ */ forwardRef16(({ asChild, classNames, children
2153
2271
  try {
2154
2272
  const { tx } = useThemeContext();
2155
2273
  const Root7 = asChild ? Slot7 : Primitive7.div;
2156
- const arrowNavigationAttrs = useArrowNavigationGroup({
2157
- axis: "vertical",
2158
- tabbable: false,
2159
- circular: true
2160
- });
2274
+ const { findFirstFocusable } = useFocusFinders();
2275
+ const handleKeyDown = useCallback7((event) => {
2276
+ switch (event.key) {
2277
+ case "ArrowDown":
2278
+ case "ArrowUp": {
2279
+ const direction = event.key === "ArrowDown" ? "down" : "up";
2280
+ const target = event.target;
2281
+ const ancestorWithArrowKeys = target.closest(`[data-arrow-keys*="${direction}"], [data-arrow-keys="all"]`);
2282
+ if (!ancestorWithArrowKeys) {
2283
+ const currentRow = target.closest('[role="row"]');
2284
+ if (currentRow) {
2285
+ const treegrid = currentRow.closest('[role="treegrid"]');
2286
+ if (treegrid) {
2287
+ const rows = Array.from(treegrid.querySelectorAll('[role="row"]'));
2288
+ const currentIndex = rows.indexOf(currentRow);
2289
+ const nextIndex = direction === "down" ? currentIndex + 1 : currentIndex - 1;
2290
+ const targetRow = rows[nextIndex];
2291
+ if (targetRow) {
2292
+ const firstFocusable = findFirstFocusable(targetRow);
2293
+ if (firstFocusable) {
2294
+ event.preventDefault();
2295
+ firstFocusable.focus();
2296
+ }
2297
+ }
2298
+ }
2299
+ }
2300
+ }
2301
+ break;
2302
+ }
2303
+ }
2304
+ props.onKeyDown?.(event);
2305
+ }, [
2306
+ findFirstFocusable
2307
+ ]);
2161
2308
  return /* @__PURE__ */ React24.createElement(Root7, {
2162
2309
  role: "treegrid",
2163
- ...arrowNavigationAttrs,
2310
+ onKeyDown: handleKeyDown,
2164
2311
  ...props,
2165
2312
  className: tx("treegrid.root", "treegrid", {}, classNames),
2166
2313
  style: {
@@ -2185,15 +2332,6 @@ var TreegridRow = /* @__PURE__ */ forwardRef16(({ __treegridRowScope, asChild, c
2185
2332
  onChange: propsOnOpenChange,
2186
2333
  defaultProp: defaultOpen
2187
2334
  });
2188
- const focusableGroupAttrs = useFocusableGroup({
2189
- tabBehavior: "limited"
2190
- });
2191
- const arrowGroupAttrs = useArrowNavigationGroup({
2192
- axis: "horizontal",
2193
- tabbable: false,
2194
- circular: false,
2195
- memorizeCurrent: false
2196
- });
2197
2335
  return /* @__PURE__ */ React24.createElement(TreegridRowProvider, {
2198
2336
  open,
2199
2337
  onOpenChange,
@@ -2208,16 +2346,10 @@ var TreegridRow = /* @__PURE__ */ forwardRef16(({ __treegridRowScope, asChild, c
2208
2346
  "aria-expanded": open,
2209
2347
  "aria-owns": parentOf
2210
2348
  },
2211
- tabIndex: 0,
2212
- ...focusableGroupAttrs,
2213
2349
  ...props,
2214
2350
  id,
2215
2351
  ref: forwardedRef
2216
- }, /* @__PURE__ */ React24.createElement("div", {
2217
- role: "none",
2218
- className: "contents",
2219
- ...arrowGroupAttrs
2220
- }, children)));
2352
+ }, children));
2221
2353
  } finally {
2222
2354
  _effect.f();
2223
2355
  }
@@ -2250,17 +2382,18 @@ var Treegrid = {
2250
2382
 
2251
2383
  // src/components/Main/Main.tsx
2252
2384
  import { useSignals as _useSignals25 } from "@preact-signals/safe-react/tracking";
2385
+ import { useFocusableGroup } from "@fluentui/react-tabster";
2253
2386
  import { createContext as createContext10 } from "@radix-ui/react-context";
2254
- import { Root as DialogRoot2, DialogContent as DialogContent2, DialogTitle as DialogTitle2 } from "@radix-ui/react-dialog";
2387
+ import { DialogContent as DialogContent2, Root as DialogRoot2, DialogTitle as DialogTitle2 } from "@radix-ui/react-dialog";
2255
2388
  import { Primitive as Primitive8 } from "@radix-ui/react-primitive";
2256
2389
  import { Slot as Slot8 } from "@radix-ui/react-slot";
2257
2390
  import { useControllableState as useControllableState4 } from "@radix-ui/react-use-controllable-state";
2258
- import React25, { forwardRef as forwardRef17, useCallback as useCallback7, useEffect as useEffect5, useRef as useRef2, useState as useState7 } from "react";
2391
+ import React25, { forwardRef as forwardRef17, useCallback as useCallback9, useEffect as useEffect6, useRef as useRef2, useState as useState8 } from "react";
2259
2392
  import { log } from "@dxos/log";
2260
- import { useMediaQuery, useForwardedRef } from "@dxos/react-hooks";
2393
+ import { useForwardedRef, useMediaQuery } from "@dxos/react-hooks";
2261
2394
 
2262
2395
  // src/components/Main/useSwipeToDismiss.ts
2263
- import { useCallback as useCallback6, useEffect as useEffect4, useState as useState6 } from "react";
2396
+ import { useCallback as useCallback8, useEffect as useEffect5, useState as useState7 } from "react";
2264
2397
  var useSwipeToDismiss = (ref, {
2265
2398
  onDismiss,
2266
2399
  dismissThreshold = 64,
@@ -2269,22 +2402,22 @@ var useSwipeToDismiss = (ref, {
2269
2402
  /* side = 'inline-start' */
2270
2403
  }) => {
2271
2404
  const $root = ref.current;
2272
- const [motionState, setMotionState] = useState6(0);
2273
- const [gestureStartX, setGestureStartX] = useState6(0);
2274
- const setIdle = useCallback6(() => {
2405
+ const [motionState, setMotionState] = useState7(0);
2406
+ const [gestureStartX, setGestureStartX] = useState7(0);
2407
+ const setIdle = useCallback8(() => {
2275
2408
  setMotionState(0);
2276
2409
  $root?.style.removeProperty("inset-inline-start");
2277
2410
  $root?.style.setProperty("transition-duration", "200ms");
2278
2411
  }, [
2279
2412
  $root
2280
2413
  ]);
2281
- const setFollowing = useCallback6(() => {
2414
+ const setFollowing = useCallback8(() => {
2282
2415
  setMotionState(2);
2283
2416
  $root?.style.setProperty("transition-duration", "0ms");
2284
2417
  }, [
2285
2418
  $root
2286
2419
  ]);
2287
- const handlePointerDown = useCallback6(({ screenX }) => {
2420
+ const handlePointerDown = useCallback8(({ screenX }) => {
2288
2421
  if (motionState === 0) {
2289
2422
  setMotionState(1);
2290
2423
  setGestureStartX(screenX);
@@ -2292,7 +2425,7 @@ var useSwipeToDismiss = (ref, {
2292
2425
  }, [
2293
2426
  motionState
2294
2427
  ]);
2295
- const handlePointerMove = useCallback6(({ screenX }) => {
2428
+ const handlePointerMove = useCallback8(({ screenX }) => {
2296
2429
  if ($root) {
2297
2430
  const delta = Math.min(screenX - gestureStartX, 0);
2298
2431
  switch (motionState) {
@@ -2316,12 +2449,12 @@ var useSwipeToDismiss = (ref, {
2316
2449
  motionState,
2317
2450
  gestureStartX
2318
2451
  ]);
2319
- const handlePointerUp = useCallback6(() => {
2452
+ const handlePointerUp = useCallback8(() => {
2320
2453
  setIdle();
2321
2454
  }, [
2322
2455
  setIdle
2323
2456
  ]);
2324
- useEffect4(() => {
2457
+ useEffect5(() => {
2325
2458
  $root?.addEventListener("pointerdown", handlePointerDown);
2326
2459
  return () => {
2327
2460
  $root?.removeEventListener("pointerdown", handlePointerDown);
@@ -2330,7 +2463,7 @@ var useSwipeToDismiss = (ref, {
2330
2463
  $root,
2331
2464
  handlePointerDown
2332
2465
  ]);
2333
- useEffect4(() => {
2466
+ useEffect5(() => {
2334
2467
  $root && document.documentElement.addEventListener("pointermove", handlePointerMove);
2335
2468
  return () => {
2336
2469
  document.documentElement.removeEventListener("pointermove", handlePointerMove);
@@ -2339,7 +2472,7 @@ var useSwipeToDismiss = (ref, {
2339
2472
  $root,
2340
2473
  handlePointerMove
2341
2474
  ]);
2342
- useEffect4(() => {
2475
+ useEffect5(() => {
2343
2476
  $root && document.documentElement.addEventListener("pointerup", handlePointerUp);
2344
2477
  return () => {
2345
2478
  document.documentElement.removeEventListener("pointerup", handlePointerUp);
@@ -2359,7 +2492,7 @@ var MAIN_NAME = "Main";
2359
2492
  var GENERIC_CONSUMER_NAME = "GenericConsumer";
2360
2493
  var landmarkAttr = "data-main-landmark";
2361
2494
  var useLandmarkMover = (propsOnKeyDown, landmark) => {
2362
- const handleKeyDown = useCallback7((event) => {
2495
+ const handleKeyDown = useCallback9((event) => {
2363
2496
  const target = event.target;
2364
2497
  if (event.target === event.currentTarget && event.key === "Tab" && target.hasAttribute(landmarkAttr)) {
2365
2498
  event.preventDefault();
@@ -2373,12 +2506,12 @@ var useLandmarkMover = (propsOnKeyDown, landmark) => {
2373
2506
  }, [
2374
2507
  propsOnKeyDown
2375
2508
  ]);
2376
- const focusableGroupAttrs = window ? {} : {
2509
+ const focusableGroupAttrs = useFocusableGroup({
2377
2510
  tabBehavior: "limited",
2378
2511
  ignoreDefaultKeydown: {
2379
2512
  Tab: true
2380
2513
  }
2381
- };
2514
+ });
2382
2515
  return {
2383
2516
  onKeyDown: handleKeyDown,
2384
2517
  [landmarkAttr]: landmark,
@@ -2389,19 +2522,19 @@ var useLandmarkMover = (propsOnKeyDown, landmark) => {
2389
2522
  var [MainProvider, useMainContext] = createContext10(MAIN_NAME, {
2390
2523
  resizing: false,
2391
2524
  navigationSidebarState: "closed",
2392
- setNavigationSidebarState: (nextState) => {
2525
+ setNavigationSidebarState: (_nextState) => {
2393
2526
  log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
2394
2527
  F: __dxlog_file,
2395
- L: 82,
2528
+ L: 92,
2396
2529
  S: void 0,
2397
2530
  C: (f, a) => f(...a)
2398
2531
  });
2399
2532
  },
2400
2533
  complementarySidebarState: "closed",
2401
- setComplementarySidebarState: (nextState) => {
2534
+ setComplementarySidebarState: (_nextState) => {
2402
2535
  log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
2403
2536
  F: __dxlog_file,
2404
- L: 87,
2537
+ L: 97,
2405
2538
  S: void 0,
2406
2539
  C: (f, a) => f(...a)
2407
2540
  });
@@ -2412,31 +2545,29 @@ var useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
2412
2545
  return {
2413
2546
  navigationSidebarState,
2414
2547
  setNavigationSidebarState,
2415
- toggleNavigationSidebar: useCallback7(() => setNavigationSidebarState(navigationSidebarState === "expanded" ? "closed" : "expanded"), [
2548
+ toggleNavigationSidebar: useCallback9(() => setNavigationSidebarState(navigationSidebarState === "expanded" ? "closed" : "expanded"), [
2416
2549
  navigationSidebarState,
2417
2550
  setNavigationSidebarState
2418
2551
  ]),
2419
- openNavigationSidebar: useCallback7(() => setNavigationSidebarState("expanded"), []),
2420
- collapseNavigationSidebar: useCallback7(() => setNavigationSidebarState("collapsed"), []),
2421
- closeNavigationSidebar: useCallback7(() => setNavigationSidebarState("closed"), []),
2552
+ openNavigationSidebar: useCallback9(() => setNavigationSidebarState("expanded"), []),
2553
+ collapseNavigationSidebar: useCallback9(() => setNavigationSidebarState("collapsed"), []),
2554
+ closeNavigationSidebar: useCallback9(() => setNavigationSidebarState("closed"), []),
2422
2555
  complementarySidebarState,
2423
2556
  setComplementarySidebarState,
2424
- toggleComplementarySidebar: useCallback7(() => setComplementarySidebarState(complementarySidebarState === "expanded" ? "closed" : "expanded"), [
2557
+ toggleComplementarySidebar: useCallback9(() => setComplementarySidebarState(complementarySidebarState === "expanded" ? "closed" : "expanded"), [
2425
2558
  complementarySidebarState,
2426
2559
  setComplementarySidebarState
2427
2560
  ]),
2428
- openComplementarySidebar: useCallback7(() => setComplementarySidebarState("expanded"), []),
2429
- collapseComplementarySidebar: useCallback7(() => setComplementarySidebarState("collapsed"), []),
2430
- closeComplementarySidebar: useCallback7(() => setComplementarySidebarState("closed"), [])
2561
+ openComplementarySidebar: useCallback9(() => setComplementarySidebarState("expanded"), []),
2562
+ collapseComplementarySidebar: useCallback9(() => setComplementarySidebarState("collapsed"), []),
2563
+ closeComplementarySidebar: useCallback9(() => setComplementarySidebarState("closed"), [])
2431
2564
  };
2432
2565
  };
2433
2566
  var resizeDebounce = 3e3;
2434
2567
  var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNavigationSidebarState, onNavigationSidebarStateChange, complementarySidebarState: propsComplementarySidebarState, defaultComplementarySidebarState, onComplementarySidebarStateChange, children, ...props }) => {
2435
2568
  var _effect = _useSignals25();
2436
2569
  try {
2437
- const [isLg] = useMediaQuery("lg", {
2438
- ssr: false
2439
- });
2570
+ const [isLg] = useMediaQuery("lg");
2440
2571
  const [navigationSidebarState = isLg ? "expanded" : "collapsed", setNavigationSidebarState] = useControllableState4({
2441
2572
  prop: propsNavigationSidebarState,
2442
2573
  defaultProp: defaultNavigationSidebarState,
@@ -2447,9 +2578,9 @@ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNa
2447
2578
  defaultProp: defaultComplementarySidebarState,
2448
2579
  onChange: onComplementarySidebarStateChange
2449
2580
  });
2450
- const [resizing, setResizing] = useState7(false);
2581
+ const [resizing, setResizing] = useState8(false);
2451
2582
  const resizeInterval = useRef2(null);
2452
- const handleResize = useCallback7(() => {
2583
+ const handleResize = useCallback9(() => {
2453
2584
  setResizing(true);
2454
2585
  if (resizeInterval.current) {
2455
2586
  clearTimeout(resizeInterval.current);
@@ -2459,7 +2590,7 @@ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNa
2459
2590
  resizeInterval.current = null;
2460
2591
  }, resizeDebounce);
2461
2592
  }, []);
2462
- useEffect5(() => {
2593
+ useEffect6(() => {
2463
2594
  window.addEventListener("resize", handleResize);
2464
2595
  return () => window.removeEventListener("resize", handleResize);
2465
2596
  }, [
@@ -2484,9 +2615,7 @@ var handleOpenAutoFocus = (event) => {
2484
2615
  var MainSidebar = /* @__PURE__ */ forwardRef17(({ classNames, children, swipeToDismiss, onOpenAutoFocus, state, resizing, onStateChange, side, label, ...props }, forwardedRef) => {
2485
2616
  var _effect = _useSignals25();
2486
2617
  try {
2487
- const [isLg] = useMediaQuery("lg", {
2488
- ssr: false
2489
- });
2618
+ const [isLg] = useMediaQuery("lg");
2490
2619
  const { tx } = useThemeContext();
2491
2620
  const { t } = useTranslation();
2492
2621
  const ref = useForwardedRef(forwardedRef);
@@ -2494,9 +2623,12 @@ var MainSidebar = /* @__PURE__ */ forwardRef17(({ classNames, children, swipeToD
2494
2623
  useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {
2495
2624
  onDismiss: () => onStateChange?.("closed")
2496
2625
  });
2497
- const handleKeyDown = useCallback7((event) => {
2498
- if (event.key === "Escape") {
2499
- event.target.closest("[data-tabster]")?.focus();
2626
+ const handleKeyDown = useCallback9((event) => {
2627
+ const focusGroupParent = event.target.closest("[data-tabster]");
2628
+ if (event.key === "Escape" && focusGroupParent) {
2629
+ event.preventDefault();
2630
+ event.stopPropagation();
2631
+ focusGroupParent.focus();
2500
2632
  }
2501
2633
  props.onKeyDown?.(event);
2502
2634
  }, [
@@ -2520,9 +2652,9 @@ var MainSidebar = /* @__PURE__ */ forwardRef17(({ classNames, children, swipeToD
2520
2652
  "data-state": state,
2521
2653
  "data-resizing": resizing ? "true" : "false",
2522
2654
  className: tx("main.sidebar", "main__sidebar", {}, classNames),
2523
- onKeyDown: handleKeyDown,
2655
+ onKeyDownCapture: handleKeyDown,
2524
2656
  ...state === "closed" && {
2525
- inert: "true"
2657
+ inert: true
2526
2658
  },
2527
2659
  ref
2528
2660
  }, children));
@@ -2598,9 +2730,7 @@ MainContent.displayName = MAIN_NAME;
2598
2730
  var MainOverlay = /* @__PURE__ */ forwardRef17(({ classNames, ...props }, forwardedRef) => {
2599
2731
  var _effect = _useSignals25();
2600
2732
  try {
2601
- const [isLg] = useMediaQuery("lg", {
2602
- ssr: false
2603
- });
2733
+ const [isLg] = useMediaQuery("lg");
2604
2734
  const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } = useMainContext(MAIN_NAME);
2605
2735
  const { tx } = useThemeContext();
2606
2736
  return /* @__PURE__ */ React25.createElement("div", {
@@ -2638,7 +2768,7 @@ import { Slot as Slot9 } from "@radix-ui/react-slot";
2638
2768
  import React26, { forwardRef as forwardRef18 } from "react";
2639
2769
 
2640
2770
  // src/hooks/useSafeCollisionPadding.ts
2641
- import { useMemo as useMemo3 } from "react";
2771
+ import { useMemo as useMemo4 } from "react";
2642
2772
  var propIsNumber = (prop) => Number.isFinite(prop);
2643
2773
  var propsIsRecord = (prop) => !!(prop && typeof prop === "object");
2644
2774
  var safePadding = (propsPadding, safePadding2, side) => {
@@ -2646,7 +2776,7 @@ var safePadding = (propsPadding, safePadding2, side) => {
2646
2776
  };
2647
2777
  var useSafeCollisionPadding = (collisionPadding) => {
2648
2778
  const { safeAreaPadding } = useThemeContext();
2649
- return useMemo3(() => ({
2779
+ return useMemo4(() => ({
2650
2780
  top: safePadding(collisionPadding, safeAreaPadding, "top"),
2651
2781
  right: safePadding(collisionPadding, safeAreaPadding, "right"),
2652
2782
  bottom: safePadding(collisionPadding, safeAreaPadding, "bottom"),
@@ -2669,6 +2799,7 @@ var ContextMenuContent = /* @__PURE__ */ forwardRef18(({ classNames, children, c
2669
2799
  const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
2670
2800
  return /* @__PURE__ */ React26.createElement(ContextMenuPrimitive.Content, {
2671
2801
  ...props,
2802
+ "data-arrow-keys": "up down",
2672
2803
  collisionPadding: safeCollisionPadding,
2673
2804
  className: tx("menu.content", "menu", {
2674
2805
  elevation
@@ -2786,7 +2917,7 @@ import { createMenuScope } from "@radix-ui/react-menu";
2786
2917
  import { Primitive as Primitive10 } from "@radix-ui/react-primitive";
2787
2918
  import { Slot as Slot10 } from "@radix-ui/react-slot";
2788
2919
  import { useControllableState as useControllableState5 } from "@radix-ui/react-use-controllable-state";
2789
- import React27, { useRef as useRef3, useCallback as useCallback8, forwardRef as forwardRef19, useEffect as useEffect6 } from "react";
2920
+ import React27, { forwardRef as forwardRef19, useCallback as useCallback10, useEffect as useEffect7, useRef as useRef3 } from "react";
2790
2921
  var DROPDOWN_MENU_NAME = "DropdownMenu";
2791
2922
  var [createDropdownMenuContext, createDropdownMenuScope] = createContextScope3(DROPDOWN_MENU_NAME, [
2792
2923
  createMenuScope
@@ -2811,7 +2942,7 @@ var DropdownMenuRoot = (props) => {
2811
2942
  contentId: useId3(),
2812
2943
  open,
2813
2944
  onOpenChange: setOpen,
2814
- onOpenToggle: useCallback8(() => setOpen((prevOpen) => !prevOpen), [
2945
+ onOpenToggle: useCallback10(() => setOpen((prevOpen) => !prevOpen), [
2815
2946
  setOpen
2816
2947
  ]),
2817
2948
  modal
@@ -2848,6 +2979,7 @@ var DropdownMenuTrigger = /* @__PURE__ */ forwardRef19((props, forwardedRef) =>
2848
2979
  disabled,
2849
2980
  ...triggerProps,
2850
2981
  ref: composeRefs(forwardedRef, context.triggerRef),
2982
+ "data-arrow-keys": "down",
2851
2983
  onPointerDown: composeEventHandlers2(props.onPointerDown, (event) => {
2852
2984
  if (!disabled && event.button === 0 && event.ctrlKey === false) {
2853
2985
  context.onOpenToggle();
@@ -2890,7 +3022,7 @@ var DropdownMenuVirtualTrigger = (props) => {
2890
3022
  const { __scopeDropdownMenu, virtualRef } = props;
2891
3023
  const context = useDropdownMenuContext(VIRTUAL_TRIGGER_NAME, __scopeDropdownMenu);
2892
3024
  const menuScope = useMenuScope(__scopeDropdownMenu);
2893
- useEffect6(() => {
3025
+ useEffect7(() => {
2894
3026
  if (virtualRef.current) {
2895
3027
  context.triggerRef.current = virtualRef.current;
2896
3028
  }
@@ -2966,6 +3098,7 @@ var DropdownMenuContent = /* @__PURE__ */ forwardRef19((props, forwardedRef) =>
2966
3098
  hasInteractedOutsideRef.current = true;
2967
3099
  }
2968
3100
  }),
3101
+ "data-arrow-keys": "up down",
2969
3102
  className: tx("menu.content", "menu", {
2970
3103
  elevation
2971
3104
  }, classNames),
@@ -3076,11 +3209,13 @@ var RADIO_ITEM_NAME = "DropdownMenuRadioItem";
3076
3209
  var DropdownMenuRadioItem = /* @__PURE__ */ forwardRef19((props, forwardedRef) => {
3077
3210
  var _effect = _useSignals27();
3078
3211
  try {
3079
- const { __scopeDropdownMenu, ...radioItemProps } = props;
3212
+ const { __scopeDropdownMenu, classNames, ...itemProps } = props;
3080
3213
  const menuScope = useMenuScope(__scopeDropdownMenu);
3081
- return /* @__PURE__ */ React27.createElement(MenuPrimitive.RadioItem, {
3214
+ const { tx } = useThemeContext();
3215
+ return /* @__PURE__ */ React27.createElement(MenuPrimitive.Item, {
3082
3216
  ...menuScope,
3083
- ...radioItemProps,
3217
+ ...itemProps,
3218
+ className: tx("menu.item", "menu__item", {}, classNames),
3084
3219
  ref: forwardedRef
3085
3220
  });
3086
3221
  } finally {
@@ -3334,7 +3469,7 @@ import { Primitive as Primitive12 } from "@radix-ui/react-primitive";
3334
3469
  import { Slot as Slot12 } from "@radix-ui/react-slot";
3335
3470
  import { useControllableState as useControllableState6 } from "@radix-ui/react-use-controllable-state";
3336
3471
  import { hideOthers } from "aria-hidden";
3337
- import React29, { forwardRef as forwardRef21, useRef as useRef4, useCallback as useCallback9, useState as useState8, useEffect as useEffect7 } from "react";
3472
+ import React29, { forwardRef as forwardRef21, useCallback as useCallback11, useEffect as useEffect8, useRef as useRef4, useState as useState9 } from "react";
3338
3473
  import { RemoveScroll } from "react-remove-scroll";
3339
3474
  var POPOVER_NAME = "Popover";
3340
3475
  var [createPopoverContext, createPopoverScope] = createContextScope4(POPOVER_NAME, [
@@ -3348,7 +3483,7 @@ var PopoverRoot = (props) => {
3348
3483
  const { __scopePopover, children, open: openProp, defaultOpen, onOpenChange, modal = false } = props;
3349
3484
  const popperScope = usePopperScope2(__scopePopover);
3350
3485
  const triggerRef = useRef4(null);
3351
- const [hasCustomAnchor, setHasCustomAnchor] = useState8(false);
3486
+ const [hasCustomAnchor, setHasCustomAnchor] = useState9(false);
3352
3487
  const [open = false, setOpen] = useControllableState6({
3353
3488
  prop: openProp,
3354
3489
  defaultProp: defaultOpen,
@@ -3360,12 +3495,12 @@ var PopoverRoot = (props) => {
3360
3495
  triggerRef,
3361
3496
  open,
3362
3497
  onOpenChange: setOpen,
3363
- onOpenToggle: useCallback9(() => setOpen((prevOpen) => !prevOpen), [
3498
+ onOpenToggle: useCallback11(() => setOpen((prevOpen) => !prevOpen), [
3364
3499
  setOpen
3365
3500
  ]),
3366
3501
  hasCustomAnchor,
3367
- onCustomAnchorAdd: useCallback9(() => setHasCustomAnchor(true), []),
3368
- onCustomAnchorRemove: useCallback9(() => setHasCustomAnchor(false), []),
3502
+ onCustomAnchorAdd: useCallback11(() => setHasCustomAnchor(true), []),
3503
+ onCustomAnchorRemove: useCallback11(() => setHasCustomAnchor(false), []),
3369
3504
  modal
3370
3505
  }, children));
3371
3506
  } finally {
@@ -3381,7 +3516,7 @@ var PopoverAnchor = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
3381
3516
  const context = usePopoverContext(ANCHOR_NAME, __scopePopover);
3382
3517
  const popperScope = usePopperScope2(__scopePopover);
3383
3518
  const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
3384
- useEffect7(() => {
3519
+ useEffect8(() => {
3385
3520
  onCustomAnchorAdd();
3386
3521
  return () => onCustomAnchorRemove();
3387
3522
  }, [
@@ -3432,7 +3567,7 @@ var PopoverVirtualTrigger = (props) => {
3432
3567
  const { __scopePopover, virtualRef } = props;
3433
3568
  const context = usePopoverContext(VIRTUAL_TRIGGER_NAME2, __scopePopover);
3434
3569
  const popperScope = usePopperScope2(__scopePopover);
3435
- useEffect7(() => {
3570
+ useEffect8(() => {
3436
3571
  if (virtualRef.current) {
3437
3572
  context.triggerRef.current = virtualRef.current;
3438
3573
  }
@@ -3497,7 +3632,7 @@ var PopoverContentModal = /* @__PURE__ */ forwardRef21((props, forwardedRef) =>
3497
3632
  const contentRef = useRef4(null);
3498
3633
  const composedRefs = useComposedRefs2(forwardedRef, contentRef);
3499
3634
  const isRightClickOutsideRef = useRef4(false);
3500
- useEffect7(() => {
3635
+ useEffect8(() => {
3501
3636
  const content = contentRef.current;
3502
3637
  if (content) {
3503
3638
  return hideOthers(content);
@@ -3731,7 +3866,7 @@ var Status = /* @__PURE__ */ forwardRef22(({ classNames, children, progress = 0,
3731
3866
 
3732
3867
  // src/components/ScrollArea/ScrollArea.tsx
3733
3868
  import { useSignals as _useSignals31 } from "@preact-signals/safe-react/tracking";
3734
- import { Root as ScrollAreaPrimitiveRoot, Viewport as ScrollAreaPrimitiveViewport, Scrollbar as ScrollAreaPrimitiveScrollbar, Thumb as ScrollAreaPrimitiveThumb, Corner as ScrollAreaPrimitiveCorner } from "@radix-ui/react-scroll-area";
3869
+ import { Corner as ScrollAreaPrimitiveCorner, Root as ScrollAreaPrimitiveRoot, Scrollbar as ScrollAreaPrimitiveScrollbar, Thumb as ScrollAreaPrimitiveThumb, Viewport as ScrollAreaPrimitiveViewport } from "@radix-ui/react-scroll-area";
3735
3870
  import React31, { forwardRef as forwardRef23 } from "react";
3736
3871
  var ScrollAreaRoot = /* @__PURE__ */ forwardRef23(({ classNames, ...props }, forwardedRef) => {
3737
3872
  var _effect = _useSignals31();
@@ -3819,7 +3954,6 @@ var SelectPortal = SelectPrimitive.Portal;
3819
3954
  var SelectTriggerButton = /* @__PURE__ */ forwardRef24(({ children, placeholder, ...props }, forwardedRef) => {
3820
3955
  var _effect = _useSignals32();
3821
3956
  try {
3822
- const { tx } = useThemeContext();
3823
3957
  return /* @__PURE__ */ React32.createElement(SelectPrimitive.Trigger, {
3824
3958
  asChild: true,
3825
3959
  ref: forwardedRef
@@ -3830,8 +3964,8 @@ var SelectTriggerButton = /* @__PURE__ */ forwardRef24(({ children, placeholder,
3830
3964
  }), /* @__PURE__ */ React32.createElement(SelectPrimitive.Icon, {
3831
3965
  asChild: true
3832
3966
  }, /* @__PURE__ */ React32.createElement(Icon, {
3833
- icon: "ph--caret-down--bold",
3834
- classNames: tx("select.triggerIcon", "select__trigger__icon", {})
3967
+ size: 3,
3968
+ icon: "ph--caret-down--bold"
3835
3969
  }))));
3836
3970
  } finally {
3837
3971
  _effect.f();
@@ -3845,6 +3979,7 @@ var SelectContent = /* @__PURE__ */ forwardRef24(({ classNames, children, collis
3845
3979
  const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
3846
3980
  return /* @__PURE__ */ React32.createElement(SelectPrimitive.Content, {
3847
3981
  ...props,
3982
+ "data-arrow-keys": "up down",
3848
3983
  collisionPadding: safeCollisionPadding,
3849
3984
  className: tx("select.content", "select__content", {
3850
3985
  elevation
@@ -3865,6 +4000,7 @@ var SelectScrollUpButton2 = /* @__PURE__ */ forwardRef24(({ classNames, children
3865
4000
  className: tx("select.scrollButton", "select__scroll-button--up", {}, classNames),
3866
4001
  ref: forwardedRef
3867
4002
  }, children ?? /* @__PURE__ */ React32.createElement(Icon, {
4003
+ size: 3,
3868
4004
  icon: "ph--caret-up--bold"
3869
4005
  }));
3870
4006
  } finally {
@@ -3880,6 +4016,7 @@ var SelectScrollDownButton2 = /* @__PURE__ */ forwardRef24(({ classNames, childr
3880
4016
  className: tx("select.scrollButton", "select__scroll-button--down", {}, classNames),
3881
4017
  ref: forwardedRef
3882
4018
  }, children ?? /* @__PURE__ */ React32.createElement(Icon, {
4019
+ size: 3,
3883
4020
  icon: "ph--caret-down--bold"
3884
4021
  }));
3885
4022
  } finally {
@@ -4041,7 +4178,7 @@ var Tag = /* @__PURE__ */ forwardRef26(({ asChild, palette = "neutral", classNam
4041
4178
  import { useSignals as _useSignals35 } from "@preact-signals/safe-react/tracking";
4042
4179
  import { Primitive as Primitive14 } from "@radix-ui/react-primitive";
4043
4180
  import { Slot as Slot14 } from "@radix-ui/react-slot";
4044
- import { ToastProvider as ToastProviderPrimitive, ToastViewport as ToastViewportPrimitive, Root as ToastRootPrimitive, ToastTitle as ToastTitlePrimitive, ToastDescription as ToastDescriptionPrimitive, ToastAction as ToastActionPrimitive, ToastClose as ToastClosePrimitive } from "@radix-ui/react-toast";
4181
+ 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";
4045
4182
  import React35, { forwardRef as forwardRef27 } from "react";
4046
4183
  var ToastProvider = ToastProviderPrimitive;
4047
4184
  var ToastViewport = /* @__PURE__ */ forwardRef27(({ classNames, ...props }, forwardedRef) => {
@@ -4151,6 +4288,7 @@ var ToolbarRoot = /* @__PURE__ */ forwardRef28(({ classNames, children, layoutMa
4151
4288
  const { tx } = useThemeContext();
4152
4289
  return /* @__PURE__ */ React36.createElement(ToolbarPrimitive.Root, {
4153
4290
  ...props,
4291
+ "data-arrow-keys": props.orientation === "vertical" ? "up down" : "left right",
4154
4292
  className: tx("toolbar.root", "toolbar", {
4155
4293
  layoutManaged
4156
4294
  }, classNames),
@@ -4329,8 +4467,11 @@ export {
4329
4467
  Toggle,
4330
4468
  ToggleGroup,
4331
4469
  ToggleGroupItem,
4470
+ ToggleGroupIconItem,
4332
4471
  useClipboard,
4472
+ Domino,
4333
4473
  hasIosKeyboard,
4474
+ usePx,
4334
4475
  DensityContext,
4335
4476
  DensityProvider,
4336
4477
  ElevationContext,
@@ -4341,8 +4482,8 @@ export {
4341
4482
  Dialog,
4342
4483
  AlertDialog,
4343
4484
  Input,
4344
- LIST_NAME,
4345
4485
  LIST_ITEM_NAME,
4486
+ LIST_NAME,
4346
4487
  useListContext,
4347
4488
  useListItemContext,
4348
4489
  List,
@@ -4372,4 +4513,4 @@ export {
4372
4513
  Toast,
4373
4514
  Toolbar
4374
4515
  };
4375
- //# sourceMappingURL=chunk-GHXHND5V.mjs.map
4516
+ //# sourceMappingURL=chunk-6JCSY5Y7.mjs.map