@dxos/react-ui 0.8.4-main.21d9917 → 0.8.4-main.2244d791bb

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 (183) hide show
  1. package/dist/lib/browser/{chunk-CEKVHJ27.mjs → chunk-6DTBPJE4.mjs} +4 -4
  2. package/dist/lib/browser/chunk-6DTBPJE4.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +456 -309
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +5 -4
  7. package/dist/lib/browser/testing/index.mjs.map +3 -3
  8. package/dist/lib/node-esm/{chunk-2NHEX4AD.mjs → chunk-JKHQSGNU.mjs} +4 -4
  9. package/dist/lib/node-esm/chunk-JKHQSGNU.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +456 -309
  11. package/dist/lib/node-esm/index.mjs.map +4 -4
  12. package/dist/lib/node-esm/meta.json +1 -1
  13. package/dist/lib/node-esm/testing/index.mjs +5 -4
  14. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  15. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +7 -0
  16. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +1 -1
  17. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
  18. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  19. package/dist/types/src/components/Button/Button.d.ts.map +1 -1
  20. package/dist/types/src/components/Dialog/AlertDialog.d.ts +4 -2
  21. package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -1
  22. package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -1
  23. package/dist/types/src/components/Dialog/Dialog.d.ts +7 -1
  24. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
  25. package/dist/types/src/components/Dialog/Dialog.stories.d.ts +1 -5
  26. package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
  27. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  28. package/dist/types/src/components/Input/Input.stories.d.ts +1 -1
  29. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  30. package/dist/types/src/components/List/List.d.ts.map +1 -1
  31. package/dist/types/src/components/List/Treegrid.d.ts.map +1 -1
  32. package/dist/types/src/components/Main/Main.d.ts +8 -9
  33. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  34. package/dist/types/src/components/Main/Main.stories.d.ts +0 -3
  35. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  36. package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -1
  37. package/dist/types/src/components/Message/Message.d.ts.map +1 -1
  38. package/dist/types/src/components/Message/Message.stories.d.ts +2 -3
  39. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  40. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +23 -26
  41. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  42. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +43 -9
  43. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  44. package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
  45. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +6 -1
  46. package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -1
  47. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  48. package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
  49. package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
  50. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
  51. package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
  52. package/dist/types/src/components/Skeleton/index.d.ts +2 -0
  53. package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
  54. package/dist/types/src/components/Splitter/Splitter.d.ts +26 -0
  55. package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
  56. package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
  57. package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
  58. package/dist/types/src/components/Splitter/index.d.ts +2 -0
  59. package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
  60. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  61. package/dist/types/src/components/Tag/Tag.stories.d.ts +1 -5
  62. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  63. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +1 -0
  64. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  65. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  66. package/dist/types/src/components/Toolbar/Toolbar.d.ts +7 -6
  67. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  68. package/dist/types/src/components/index.d.ts +2 -0
  69. package/dist/types/src/components/index.d.ts.map +1 -1
  70. package/dist/types/src/exemplars/generics.stories.d.ts +17 -0
  71. package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
  72. package/dist/types/src/exemplars/slot.stories.d.ts +14 -0
  73. package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -0
  74. package/dist/types/src/exemplars/tabster.stories.d.ts +8 -0
  75. package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -0
  76. package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
  77. package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
  78. package/dist/types/src/index.d.ts +1 -0
  79. package/dist/types/src/index.d.ts.map +1 -1
  80. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  81. package/dist/types/src/primitives/Container/Container.d.ts +23 -0
  82. package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
  83. package/dist/types/src/primitives/Container/Container.stories.d.ts +11 -0
  84. package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
  85. package/dist/types/src/primitives/Container/Layout.d.ts +18 -0
  86. package/dist/types/src/primitives/Container/Layout.d.ts.map +1 -0
  87. package/dist/types/src/primitives/Container/Layout.stories.d.ts +10 -0
  88. package/dist/types/src/primitives/Container/Layout.stories.d.ts.map +1 -0
  89. package/dist/types/src/primitives/Container/index.d.ts +3 -0
  90. package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
  91. package/dist/types/src/primitives/Flex/Flex.d.ts +8 -0
  92. package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
  93. package/dist/types/src/primitives/Flex/index.d.ts +2 -0
  94. package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
  95. package/dist/types/src/primitives/index.d.ts +3 -0
  96. package/dist/types/src/primitives/index.d.ts.map +1 -0
  97. package/dist/types/src/testing/decorators/withTheme.d.ts +3 -2
  98. package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
  99. package/dist/types/tsconfig.tsbuildinfo +1 -1
  100. package/package.json +23 -22
  101. package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +10 -12
  102. package/src/components/Avatars/Avatar.stories.tsx +2 -2
  103. package/src/components/Avatars/Avatar.tsx +2 -9
  104. package/src/components/Avatars/AvatarGroup.stories.tsx +2 -2
  105. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +2 -2
  106. package/src/components/Breadcrumb/Breadcrumb.tsx +5 -31
  107. package/src/components/Button/Button.stories.tsx +3 -3
  108. package/src/components/Button/Button.tsx +1 -7
  109. package/src/components/Button/IconButton.stories.tsx +2 -2
  110. package/src/components/Button/IconButton.tsx +1 -1
  111. package/src/components/Button/Toggle.stories.tsx +2 -2
  112. package/src/components/Button/ToggleGroup.stories.tsx +2 -2
  113. package/src/components/Dialog/AlertDialog.stories.tsx +6 -7
  114. package/src/components/Dialog/AlertDialog.tsx +78 -9
  115. package/src/components/Dialog/Dialog.stories.tsx +11 -11
  116. package/src/components/Dialog/Dialog.tsx +44 -19
  117. package/src/components/Icon/Icon.stories.tsx +2 -2
  118. package/src/components/Icon/Icon.tsx +1 -1
  119. package/src/components/Input/Input.stories.tsx +11 -10
  120. package/src/components/Input/Input.tsx +10 -25
  121. package/src/components/Link/Link.stories.tsx +2 -2
  122. package/src/components/Link/Link.tsx +1 -1
  123. package/src/components/List/List.stories.tsx +2 -2
  124. package/src/components/List/List.tsx +7 -13
  125. package/src/components/List/Tree.stories.tsx +2 -2
  126. package/src/components/List/Treegrid.stories.tsx +2 -2
  127. package/src/components/List/Treegrid.tsx +4 -9
  128. package/src/components/Main/Main.stories.tsx +41 -23
  129. package/src/components/Main/Main.tsx +128 -71
  130. package/src/components/Menu/ContextMenu.stories.tsx +2 -2
  131. package/src/components/Menu/ContextMenu.tsx +7 -31
  132. package/src/components/Menu/DropdownMenu.stories.tsx +2 -2
  133. package/src/components/Menu/DropdownMenu.tsx +8 -8
  134. package/src/components/Message/Message.stories.tsx +23 -8
  135. package/src/components/Message/Message.tsx +8 -21
  136. package/src/components/Popover/Popover.stories.tsx +2 -2
  137. package/src/components/Popover/Popover.tsx +3 -3
  138. package/src/components/ScrollArea/ScrollArea.stories.tsx +152 -76
  139. package/src/components/ScrollArea/ScrollArea.tsx +68 -116
  140. package/src/components/ScrollArea/index.ts +1 -1
  141. package/src/components/ScrollContainer/ScrollContainer.stories.tsx +24 -9
  142. package/src/components/ScrollContainer/ScrollContainer.tsx +14 -9
  143. package/src/components/Select/Select.stories.tsx +2 -2
  144. package/src/components/Select/Select.tsx +9 -25
  145. package/src/components/Separator/Separator.tsx +1 -1
  146. package/src/components/Skeleton/Skeleton.stories.tsx +52 -0
  147. package/src/components/Skeleton/Skeleton.tsx +26 -0
  148. package/src/components/Skeleton/index.ts +5 -0
  149. package/src/components/Splitter/Splitter.stories.tsx +73 -0
  150. package/src/components/Splitter/Splitter.tsx +123 -0
  151. package/src/components/Splitter/index.ts +5 -0
  152. package/src/components/Status/Status.stories.tsx +2 -2
  153. package/src/components/Status/Status.tsx +2 -2
  154. package/src/components/Tag/Tag.stories.tsx +3 -7
  155. package/src/components/Tag/Tag.tsx +1 -6
  156. package/src/components/ThemeProvider/ThemeProvider.tsx +2 -1
  157. package/src/components/Toast/Toast.stories.tsx +2 -2
  158. package/src/components/Toast/Toast.tsx +6 -10
  159. package/src/components/Toolbar/Toolbar.stories.tsx +2 -2
  160. package/src/components/Toolbar/Toolbar.tsx +13 -9
  161. package/src/components/Tooltip/Tooltip.stories.tsx +2 -2
  162. package/src/components/Tooltip/Tooltip.tsx +2 -2
  163. package/src/components/index.ts +2 -0
  164. package/src/exemplars/generics.stories.tsx +44 -0
  165. package/src/exemplars/slot.stories.tsx +108 -0
  166. package/src/exemplars/tabster.stories.tsx +127 -0
  167. package/src/exemplars/virtualizer.stories.tsx +133 -0
  168. package/src/index.ts +1 -0
  169. package/src/playground/Controls.stories.tsx +3 -4
  170. package/src/playground/Custom.stories.tsx +2 -2
  171. package/src/playground/Typography.stories.tsx +2 -2
  172. package/src/primitives/Container/Container.stories.tsx +67 -0
  173. package/src/primitives/Container/Container.tsx +79 -0
  174. package/src/primitives/Container/Layout.stories.tsx +57 -0
  175. package/src/primitives/Container/Layout.tsx +61 -0
  176. package/src/primitives/Container/index.ts +6 -0
  177. package/src/primitives/Flex/Flex.tsx +26 -0
  178. package/src/primitives/Flex/index.ts +5 -0
  179. package/src/primitives/index.ts +6 -0
  180. package/src/testing/decorators/withLayoutVariants.tsx +1 -1
  181. package/src/testing/decorators/withTheme.tsx +19 -17
  182. package/dist/lib/browser/chunk-CEKVHJ27.mjs.map +0 -7
  183. package/dist/lib/node-esm/chunk-2NHEX4AD.mjs.map +0 -7
@@ -15,7 +15,7 @@ import {
15
15
  useThemeContext,
16
16
  useTooltipContext,
17
17
  useTranslation
18
- } from "./chunk-CEKVHJ27.mjs";
18
+ } from "./chunk-6DTBPJE4.mjs";
19
19
 
20
20
  // src/index.ts
21
21
  import { Trans } from "react-i18next";
@@ -68,21 +68,21 @@ var useVisualViewport = (deps) => {
68
68
  // src/components/AnchoredOverflow/AnchoredOverflow.tsx
69
69
  var AnchoredOverflowRoot = /* @__PURE__ */ forwardRef(({ asChild, classNames, children, ...props }, forwardedRef) => {
70
70
  const { tx } = useThemeContext();
71
- const Root6 = asChild ? Slot : Primitive.div;
72
- return /* @__PURE__ */ React.createElement(Root6, {
71
+ const Root8 = asChild ? Slot : Primitive.div;
72
+ return /* @__PURE__ */ React.createElement(Root8, {
73
73
  role: "none",
74
74
  ...props,
75
- className: tx("anchoredOverflow.root", "overflow-anchored", {}, classNames),
75
+ className: tx("anchoredOverflow.root", {}, classNames),
76
76
  ref: forwardedRef
77
77
  }, children);
78
78
  });
79
79
  var AnchoredOverflowAnchor = /* @__PURE__ */ forwardRef(({ asChild, classNames, children, ...props }, forwardedRef) => {
80
80
  const { tx } = useThemeContext();
81
- const Root6 = asChild ? Slot : Primitive.div;
82
- return /* @__PURE__ */ React.createElement(Root6, {
81
+ const Root8 = asChild ? Slot : Primitive.div;
82
+ return /* @__PURE__ */ React.createElement(Root8, {
83
83
  role: "none",
84
84
  ...props,
85
- className: tx("anchoredOverflow.anchor", "overflow-anchor", {}, classNames),
85
+ className: tx("anchoredOverflow.anchor", {}, classNames),
86
86
  ref: forwardedRef
87
87
  }, children);
88
88
  });
@@ -123,27 +123,27 @@ var AvatarContent = /* @__PURE__ */ forwardRef2(({ icon, classNames, ...props },
123
123
  });
124
124
  });
125
125
  var AvatarLabel = /* @__PURE__ */ forwardRef2(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
126
- const Root6 = asChild ? Slot2 : Primitive2.span;
126
+ const Root8 = asChild ? Slot2 : Primitive2.span;
127
127
  const { tx } = useThemeContext();
128
128
  const { labelId } = useAvatarContext("AvatarLabel");
129
- return /* @__PURE__ */ React2.createElement(Root6, {
129
+ return /* @__PURE__ */ React2.createElement(Root8, {
130
130
  ...props,
131
131
  id: labelId,
132
132
  ref: forwardedRef,
133
- className: tx("avatar.label", "avatar__label", {
133
+ className: tx("avatar.label", {
134
134
  srOnly
135
135
  }, classNames)
136
136
  });
137
137
  });
138
138
  var AvatarDescription = /* @__PURE__ */ forwardRef2(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
139
- const Root6 = asChild ? Slot2 : Primitive2.span;
139
+ const Root8 = asChild ? Slot2 : Primitive2.span;
140
140
  const { tx } = useThemeContext();
141
141
  const { descriptionId } = useAvatarContext("AvatarDescription");
142
- return /* @__PURE__ */ React2.createElement(Root6, {
142
+ return /* @__PURE__ */ React2.createElement(Root8, {
143
143
  ...props,
144
144
  id: descriptionId,
145
145
  ref: forwardedRef,
146
- className: tx("avatar.description", "avatar__description", {
146
+ className: tx("avatar.description", {
147
147
  srOnly
148
148
  }, classNames)
149
149
  });
@@ -167,7 +167,7 @@ var Icon = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef3(({ icon, classNames,
167
167
  const href = useIconHref(icon);
168
168
  return /* @__PURE__ */ React3.createElement("svg", {
169
169
  ...props,
170
- className: tx("icon.root", "icon", {
170
+ className: tx("icon.root", {
171
171
  size
172
172
  }, classNames),
173
173
  ref: forwardedRef
@@ -182,10 +182,10 @@ import { Slot as Slot3 } from "@radix-ui/react-slot";
182
182
  import React4, { forwardRef as forwardRef4 } from "react";
183
183
  var Link = /* @__PURE__ */ forwardRef4(({ asChild, variant, classNames, ...props }, forwardedRef) => {
184
184
  const { tx } = useThemeContext();
185
- const Root6 = asChild ? Slot3 : Primitive3.a;
186
- return /* @__PURE__ */ React4.createElement(Root6, {
185
+ const Root8 = asChild ? Slot3 : Primitive3.a;
186
+ return /* @__PURE__ */ React4.createElement(Root8, {
187
187
  ...props,
188
- className: tx("link.root", "link", {
188
+ className: tx("link.root", {
189
189
  variant
190
190
  }, classNames),
191
191
  ref: forwardedRef
@@ -195,48 +195,48 @@ var Link = /* @__PURE__ */ forwardRef4(({ asChild, variant, classNames, ...props
195
195
  // src/components/Breadcrumb/Breadcrumb.tsx
196
196
  var BreadcrumbRoot = /* @__PURE__ */ forwardRef5(({ asChild, classNames, ...props }, forwardedRef) => {
197
197
  const { tx } = useThemeContext();
198
- const Root6 = asChild ? Slot4 : Primitive4.div;
199
- return /* @__PURE__ */ React5.createElement(Root6, {
198
+ const Root8 = asChild ? Slot4 : Primitive4.div;
199
+ return /* @__PURE__ */ React5.createElement(Root8, {
200
200
  role: "navigation",
201
201
  ...props,
202
- className: tx("breadcrumb.root", "breadcrumb", {}, classNames),
202
+ className: tx("breadcrumb.root", {}, classNames),
203
203
  ref: forwardedRef
204
204
  });
205
205
  });
206
206
  var BreadcrumbList = /* @__PURE__ */ forwardRef5(({ asChild, classNames, ...props }, forwardedRef) => {
207
207
  const { tx } = useThemeContext();
208
- const Root6 = asChild ? Slot4 : Primitive4.ol;
209
- return /* @__PURE__ */ React5.createElement(Root6, {
208
+ const Root8 = asChild ? Slot4 : Primitive4.ol;
209
+ return /* @__PURE__ */ React5.createElement(Root8, {
210
210
  role: "list",
211
211
  ...props,
212
- className: tx("breadcrumb.list", "breadcrumb__list", {}, classNames),
212
+ className: tx("breadcrumb.list", {}, classNames),
213
213
  ref: forwardedRef
214
214
  });
215
215
  });
216
216
  var BreadcrumbListItem = /* @__PURE__ */ forwardRef5(({ asChild, classNames, ...props }, forwardedRef) => {
217
217
  const { tx } = useThemeContext();
218
- const Root6 = asChild ? Slot4 : Primitive4.li;
219
- return /* @__PURE__ */ React5.createElement(Root6, {
218
+ const Root8 = asChild ? Slot4 : Primitive4.li;
219
+ return /* @__PURE__ */ React5.createElement(Root8, {
220
220
  role: "listitem",
221
221
  ...props,
222
- className: tx("breadcrumb.listItem", "breadcrumb__list__item", {}, classNames),
222
+ className: tx("breadcrumb.listItem", {}, classNames),
223
223
  ref: forwardedRef
224
224
  });
225
225
  });
226
226
  var BreadcrumbLink = /* @__PURE__ */ forwardRef5(({ asChild, ...props }, forwardedRef) => {
227
- const Root6 = asChild ? Slot4 : Link;
228
- return /* @__PURE__ */ React5.createElement(Root6, {
227
+ const Root8 = asChild ? Slot4 : Link;
228
+ return /* @__PURE__ */ React5.createElement(Root8, {
229
229
  ...props,
230
230
  ref: forwardedRef
231
231
  });
232
232
  });
233
233
  var BreadcrumbCurrent = /* @__PURE__ */ forwardRef5(({ asChild, classNames, ...props }, forwardedRef) => {
234
234
  const { tx } = useThemeContext();
235
- const Root6 = asChild ? Slot4 : "h1";
236
- return /* @__PURE__ */ React5.createElement(Root6, {
235
+ const Root8 = asChild ? Slot4 : "h1";
236
+ return /* @__PURE__ */ React5.createElement(Root8, {
237
237
  ...props,
238
238
  "aria-current": "page",
239
- className: tx("breadcrumb.current", "breadcrumb__item__heading--current", {}, classNames),
239
+ className: tx("breadcrumb.current", {}, classNames),
240
240
  ref: forwardedRef
241
241
  });
242
242
  });
@@ -246,7 +246,7 @@ var BreadcrumbSeparator = ({ children, classNames, ...props }) => {
246
246
  role: "separator",
247
247
  "aria-hidden": "true",
248
248
  ...props,
249
- className: tx("breadcrumb.separator", "breadcrumb__separator", {}, classNames)
249
+ className: tx("breadcrumb.separator", {}, classNames)
250
250
  }, children ?? /* @__PURE__ */ React5.createElement(Icon, {
251
251
  icon: "ph--dot--bold"
252
252
  }));
@@ -275,14 +275,14 @@ var Button = /* @__PURE__ */ memo2(/* @__PURE__ */ forwardRef6(({ classNames, ch
275
275
  const { tx } = useThemeContext();
276
276
  const elevation = useElevationContext(propsElevation);
277
277
  const density = useDensityContext(propsDensity);
278
- const Root6 = asChild ? Slot5 : Primitive5.button;
279
- return /* @__PURE__ */ React6.createElement(Root6, {
278
+ const Root8 = asChild ? Slot5 : Primitive5.button;
279
+ return /* @__PURE__ */ React6.createElement(Root8, {
280
280
  ref,
281
281
  ...props,
282
282
  "data-variant": variant,
283
283
  "data-density": density,
284
284
  "data-props": inGroup ? "grouped" : "",
285
- className: tx("button.root", "button", {
285
+ className: tx("button.root", {
286
286
  variant,
287
287
  inGroup,
288
288
  disabled: props.disabled,
@@ -298,11 +298,11 @@ Button.displayName = BUTTON_NAME;
298
298
  var ButtonGroup = /* @__PURE__ */ forwardRef6(({ children, elevation: propsElevation, classNames, asChild, ...props }, forwardedRef) => {
299
299
  const { tx } = useThemeContext();
300
300
  const elevation = useElevationContext(propsElevation);
301
- const Root6 = asChild ? Slot5 : Primitive5.div;
302
- return /* @__PURE__ */ React6.createElement(Root6, {
301
+ const Root8 = asChild ? Slot5 : Primitive5.div;
302
+ return /* @__PURE__ */ React6.createElement(Root8, {
303
303
  role: "none",
304
304
  ...props,
305
- className: tx("button.group", "button-group", {
305
+ className: tx("button.group", {
306
306
  elevation
307
307
  }, classNames),
308
308
  ref: forwardedRef
@@ -341,7 +341,7 @@ var LabelledIconButton = /* @__PURE__ */ forwardRef7(({ size = 5, icon, iconOnly
341
341
  const { tx } = useThemeContext();
342
342
  return /* @__PURE__ */ React7.createElement(Button, {
343
343
  ...props,
344
- classNames: tx("iconButton.root", "iconButton", {
344
+ classNames: tx("iconButton.root", {
345
345
  iconOnly
346
346
  }, classNames),
347
347
  ref: forwardedRef
@@ -566,7 +566,7 @@ var DialogOverlay = /* @__PURE__ */ forwardRef10(({ classNames, children, blockA
566
566
  const { tx } = useThemeContext();
567
567
  return /* @__PURE__ */ React12.createElement(DialogOverlayPrimitive, {
568
568
  ...props,
569
- className: tx("dialog.overlay", "dialog__overlay", {}, classNames),
569
+ className: tx("dialog.overlay", {}, classNames),
570
570
  ref: forwardedRef,
571
571
  "data-block-align": blockAlign
572
572
  }, /* @__PURE__ */ React12.createElement(OverlayLayoutProvider, {
@@ -583,7 +583,7 @@ var DialogContent = /* @__PURE__ */ forwardRef10(({ classNames, children, size,
583
583
  // https://www.radix-ui.com/primitives/docs/components/dialog#description
584
584
  "aria-describedby": void 0,
585
585
  ...props,
586
- className: tx("dialog.content", "dialog", {
586
+ className: tx("dialog.content", {
587
587
  inOverlayLayout: propsInOverlayLayout || inOverlayLayout,
588
588
  size
589
589
  }, classNames),
@@ -596,17 +596,25 @@ var DialogHeader = /* @__PURE__ */ forwardRef10(({ classNames, srOnly, ...props
596
596
  return /* @__PURE__ */ React12.createElement("div", {
597
597
  ...props,
598
598
  role: "header",
599
- className: tx("dialog.header", "dialog__header", {
599
+ className: tx("dialog.header", {
600
600
  srOnly
601
601
  }, classNames),
602
602
  ref: forwardedRef
603
603
  });
604
604
  });
605
+ var DialogBody = /* @__PURE__ */ forwardRef10(({ children, ...props }, forwardedRef) => {
606
+ const { tx } = useThemeContext();
607
+ return /* @__PURE__ */ React12.createElement("div", {
608
+ ...props,
609
+ className: tx("dialog.body"),
610
+ ref: forwardedRef
611
+ }, children);
612
+ });
605
613
  var DialogTitle = /* @__PURE__ */ forwardRef10(({ classNames, srOnly, ...props }, forwardedRef) => {
606
614
  const { tx } = useThemeContext();
607
615
  return /* @__PURE__ */ React12.createElement(DialogTitlePrimitive, {
608
616
  ...props,
609
- className: tx("dialog.title", "dialog__title", {
617
+ className: tx("dialog.title", {
610
618
  srOnly
611
619
  }, classNames),
612
620
  ref: forwardedRef
@@ -616,12 +624,20 @@ var DialogDescription = /* @__PURE__ */ forwardRef10(({ classNames, srOnly, ...p
616
624
  const { tx } = useThemeContext();
617
625
  return /* @__PURE__ */ React12.createElement(DialogDescriptionPrimitive, {
618
626
  ...props,
619
- className: tx("dialog.description", "dialog__description", {
627
+ className: tx("dialog.description", {
620
628
  srOnly
621
629
  }, classNames),
622
630
  ref: forwardedRef
623
631
  });
624
632
  });
633
+ var DialogActionBar = /* @__PURE__ */ forwardRef10(({ children, classNames, ...props }, forwardedRef) => {
634
+ const { tx } = useThemeContext();
635
+ return /* @__PURE__ */ React12.createElement("div", {
636
+ ...props,
637
+ className: tx("dialog.actionbar", {}, classNames),
638
+ ref: forwardedRef
639
+ }, children);
640
+ });
625
641
  var DialogClose = DialogClosePrimitive;
626
642
  var DialogCloseIconButton = /* @__PURE__ */ forwardRef10((props, forwardedRef) => {
627
643
  const { t } = useTranslation2(osTranslations2);
@@ -643,8 +659,10 @@ var Dialog = {
643
659
  Overlay: DialogOverlay,
644
660
  Content: DialogContent,
645
661
  Header: DialogHeader,
662
+ Body: DialogBody,
646
663
  Title: DialogTitle,
647
664
  Description: DialogDescription,
665
+ ActionBar: DialogActionBar,
648
666
  Close: DialogClose,
649
667
  CloseIconButton: DialogCloseIconButton
650
668
  };
@@ -664,7 +682,7 @@ var AlertDialogTitle = /* @__PURE__ */ forwardRef11(({ classNames, srOnly, ...pr
664
682
  const { tx } = useThemeContext();
665
683
  return /* @__PURE__ */ React13.createElement(AlertDialogTitlePrimitive, {
666
684
  ...props,
667
- className: tx("dialog.title", "dialog--alert__title", {
685
+ className: tx("dialog.title", {
668
686
  srOnly
669
687
  }, classNames),
670
688
  ref: forwardedRef
@@ -674,7 +692,7 @@ var AlertDialogDescription = /* @__PURE__ */ forwardRef11(({ classNames, srOnly,
674
692
  const { tx } = useThemeContext();
675
693
  return /* @__PURE__ */ React13.createElement(AlertDialogDescriptionPrimitive, {
676
694
  ...props,
677
- className: tx("dialog.description", "dialog--alert__description", {
695
+ className: tx("dialog.description", {
678
696
  srOnly
679
697
  }, classNames),
680
698
  ref: forwardedRef
@@ -682,6 +700,7 @@ var AlertDialogDescription = /* @__PURE__ */ forwardRef11(({ classNames, srOnly,
682
700
  });
683
701
  var ALERT_DIALOG_OVERLAY_NAME = "AlertDialogOverlay";
684
702
  var ALERT_DIALOG_CONTENT_NAME = "AlertDialogContent";
703
+ var ALERT_DIALOG_ACTIONBAR_NAME = "AlertDialogActionBar";
685
704
  var [OverlayLayoutProvider2, useOverlayLayoutContext2] = createContext5(ALERT_DIALOG_OVERLAY_NAME, {
686
705
  inOverlayLayout: false
687
706
  });
@@ -689,7 +708,7 @@ var AlertDialogOverlay = /* @__PURE__ */ forwardRef11(({ classNames, children, b
689
708
  const { tx } = useThemeContext();
690
709
  return /* @__PURE__ */ React13.createElement(AlertDialogOverlayPrimitive, {
691
710
  ...props,
692
- className: tx("dialog.overlay", "dialog--alert__overlay", {}, classNames, "data-[block-align=start]:justify-center", "data-[block-align=start]:items-start", "data-[block-align=center]:place-content-center"),
711
+ className: tx("dialog.overlay", {}, classNames, "data-[block-align=start]:justify-center", "data-[block-align=start]:items-start", "data-[block-align=center]:place-content-center"),
693
712
  ref: forwardedRef,
694
713
  "data-block-align": blockAlign
695
714
  }, /* @__PURE__ */ React13.createElement(OverlayLayoutProvider2, {
@@ -702,13 +721,22 @@ var AlertDialogContent = /* @__PURE__ */ forwardRef11(({ classNames, children, .
702
721
  const { inOverlayLayout } = useOverlayLayoutContext2(ALERT_DIALOG_CONTENT_NAME);
703
722
  return /* @__PURE__ */ React13.createElement(AlertDialogContentPrimitive, {
704
723
  ...props,
705
- className: tx("dialog.content", "dialog--alert", {
724
+ className: tx("dialog.content", {
706
725
  inOverlayLayout
707
726
  }, classNames),
708
727
  ref: forwardedRef
709
728
  }, children);
710
729
  });
711
730
  AlertDialogContent.displayName = ALERT_DIALOG_CONTENT_NAME;
731
+ var AlertDialogActionBar = /* @__PURE__ */ forwardRef11(({ children, classNames, ...props }, forwardedRef) => {
732
+ const { tx } = useThemeContext();
733
+ return /* @__PURE__ */ React13.createElement("div", {
734
+ ...props,
735
+ className: tx("dialog.actionbar", {}, classNames),
736
+ ref: forwardedRef
737
+ }, children);
738
+ });
739
+ AlertDialogActionBar.displayName = ALERT_DIALOG_ACTIONBAR_NAME;
712
740
  var AlertDialog = {
713
741
  Root: AlertDialogRoot,
714
742
  Trigger: AlertDialogTrigger,
@@ -717,6 +745,7 @@ var AlertDialog = {
717
745
  Content: AlertDialogContent,
718
746
  Title: AlertDialogTitle,
719
747
  Description: AlertDialogDescription,
748
+ ActionBar: AlertDialogActionBar,
720
749
  Cancel: AlertDialogCancel,
721
750
  Action: AlertDialogAction
722
751
  };
@@ -731,7 +760,7 @@ var Label = /* @__PURE__ */ forwardRef12(({ srOnly, classNames, children, ...pro
731
760
  const { tx } = useThemeContext();
732
761
  return /* @__PURE__ */ React14.createElement(LabelPrimitive, {
733
762
  ...props,
734
- className: tx("input.label", "input__label", {
763
+ className: tx("input.label", {
735
764
  srOnly
736
765
  }, classNames),
737
766
  ref: forwardedRef
@@ -741,7 +770,7 @@ var Description = /* @__PURE__ */ forwardRef12(({ srOnly, classNames, children,
741
770
  const { tx } = useThemeContext();
742
771
  return /* @__PURE__ */ React14.createElement(DescriptionPrimitive, {
743
772
  ...props,
744
- className: tx("input.description", "input__description", {
773
+ className: tx("input.description", {
745
774
  srOnly
746
775
  }, classNames),
747
776
  ref: forwardedRef
@@ -752,7 +781,7 @@ var Validation = /* @__PURE__ */ forwardRef12(({ __inputScope, srOnly, className
752
781
  const { validationValence } = useInputContext(INPUT_NAME, __inputScope);
753
782
  return /* @__PURE__ */ React14.createElement(ValidationPrimitive, {
754
783
  ...props,
755
- className: tx("input.validation", `input__validation-message input__validation-message--${validationValence}`, {
784
+ className: tx("input.validation", {
756
785
  srOnly,
757
786
  validationValence
758
787
  }, classNames),
@@ -763,25 +792,25 @@ var DescriptionAndValidation = /* @__PURE__ */ forwardRef12(({ srOnly, className
763
792
  const { tx } = useThemeContext();
764
793
  return /* @__PURE__ */ React14.createElement(DescriptionAndValidationPrimitive, {
765
794
  ...props,
766
- className: tx("input.descriptionAndValidation", "input__description-and-validation", {
795
+ className: tx("input.descriptionAndValidation", {
767
796
  srOnly
768
797
  }, classNames),
769
798
  ref: forwardedRef
770
799
  }, children);
771
800
  });
772
- var PinInput = /* @__PURE__ */ forwardRef12(({ density: propsDensity, elevation: propsElevation, segmentClassName: propsSegmentClassName, inputClassName, variant, ...props }, forwardedRef) => {
801
+ var PinInput = /* @__PURE__ */ forwardRef12(({ density: propsDensity, elevation: propsElevation, segmentClassName: propsSegmentClassName, inputClassName, ...props }, forwardedRef) => {
773
802
  const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
774
803
  const { tx } = useThemeContext();
775
804
  const density = useDensityContext(propsDensity);
776
805
  const elevation = useElevationContext(propsElevation);
777
- const segmentClassName = useCallback4(({ focused, validationValence }) => tx("input.input", "input--pin-segment", {
806
+ const segmentClassName = useCallback4(({ focused, validationValence }) => tx("input.input", {
778
807
  variant: "static",
779
808
  focused,
780
809
  disabled: props.disabled,
781
810
  density,
782
811
  elevation,
783
812
  validationValence
784
- }, propsSegmentClassName), [
813
+ }, propsSegmentClassName) || "", [
785
814
  tx,
786
815
  props.disabled,
787
816
  elevation,
@@ -794,23 +823,22 @@ var PinInput = /* @__PURE__ */ forwardRef12(({ density: propsDensity, elevation:
794
823
  ...props.autoFocus && !hasIosKeyboard2 && {
795
824
  autoFocus: true
796
825
  },
797
- inputClassName: tx("input.inputWithSegments", "input input--pin", {
826
+ inputClassName: tx("input.inputWithSegments", {
798
827
  disabled: props.disabled
799
- }, inputClassName),
828
+ }, inputClassName) || "",
800
829
  ref: forwardedRef
801
830
  });
802
831
  });
803
832
  var TextInput = /* @__PURE__ */ forwardRef12(({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, noAutoFill, ...props }, forwardedRef) => {
804
833
  const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
805
- const themeContextValue = useThemeContext();
834
+ const { tx } = useThemeContext();
806
835
  const density = useDensityContext(propsDensity);
807
836
  const elevation = useElevationContext(propsElevation);
808
837
  const { validationValence } = useInputContext(INPUT_NAME, __inputScope);
809
- const { tx } = themeContextValue;
810
838
  return /* @__PURE__ */ React14.createElement(TextInputPrimitive, {
811
839
  ...props,
812
840
  "data-1p-ignore": noAutoFill,
813
- className: tx("input.input", "input", {
841
+ className: tx("input.input", {
814
842
  variant,
815
843
  disabled: props.disabled,
816
844
  density,
@@ -831,7 +859,7 @@ var TextArea = /* @__PURE__ */ forwardRef12(({ __inputScope, classNames, density
831
859
  const { validationValence } = useInputContext(INPUT_NAME, __inputScope);
832
860
  return /* @__PURE__ */ React14.createElement(TextAreaPrimitive, {
833
861
  ...props,
834
- className: tx("input.input", "input--text-area", {
862
+ className: tx("input.input", {
835
863
  variant,
836
864
  disabled: props.disabled,
837
865
  density,
@@ -862,13 +890,13 @@ var Checkbox = /* @__PURE__ */ forwardRef12(({ __inputScope, checked: propsCheck
862
890
  "aria-invalid": "true",
863
891
  "aria-errormessage": errorMessageId
864
892
  },
865
- className: tx("input.checkbox", "input--checkbox", {
893
+ className: tx("input.checkbox", {
866
894
  size
867
895
  }, "shrink-0", classNames),
868
896
  ref: forwardedRef
869
897
  }, /* @__PURE__ */ React14.createElement(Icon, {
870
898
  icon: checked === "indeterminate" ? "ph--minus--regular" : "ph--check--regular",
871
- classNames: tx("input.checkboxIndicator", "input--checkbox__indicator", {
899
+ classNames: tx("input.checkboxIndicator", {
872
900
  size,
873
901
  checked
874
902
  })
@@ -962,20 +990,20 @@ var List = /* @__PURE__ */ forwardRef13(({ classNames, children, ...props }, for
962
990
  density
963
991
  }, /* @__PURE__ */ React16.createElement(ListPrimitive, {
964
992
  ...props,
965
- className: tx("list.root", "list", {}, classNames),
993
+ className: tx("list.root", {}, classNames),
966
994
  ref: forwardedRef
967
995
  }, children));
968
996
  });
969
997
  var ListItemEndcap = /* @__PURE__ */ forwardRef13(({ children, classNames, asChild, ...props }, forwardedRef) => {
970
- const Root6 = asChild ? Slot6 : "div";
998
+ const Root8 = asChild ? Slot6 : "div";
971
999
  const density = useDensityContext();
972
1000
  const { tx } = useThemeContext();
973
- return /* @__PURE__ */ React16.createElement(Root6, {
1001
+ return /* @__PURE__ */ React16.createElement(Root8, {
974
1002
  ...!asChild && {
975
1003
  role: "none"
976
1004
  },
977
1005
  ...props,
978
- className: tx("list.item.endcap", "list__listItem__endcap", {
1006
+ className: tx("list.item.endcap", {
979
1007
  density
980
1008
  }, classNames),
981
1009
  ref: forwardedRef
@@ -987,7 +1015,7 @@ var MockListItemOpenTrigger = ({ classNames, ...props }) => {
987
1015
  return /* @__PURE__ */ React16.createElement("div", {
988
1016
  role: "none",
989
1017
  ...props,
990
- className: tx("list.item.openTrigger", "list__listItem__openTrigger--mock", {
1018
+ className: tx("list.item.openTrigger", {
991
1019
  density
992
1020
  }, classNames)
993
1021
  });
@@ -997,7 +1025,7 @@ var ListItemHeading = /* @__PURE__ */ forwardRef13(({ children, classNames, ...p
997
1025
  const density = useDensityContext();
998
1026
  return /* @__PURE__ */ React16.createElement(ListPrimitiveItemHeading, {
999
1027
  ...props,
1000
- className: tx("list.item.heading", "list__listItem__heading", {
1028
+ className: tx("list.item.heading", {
1001
1029
  density
1002
1030
  }, classNames),
1003
1031
  ref: forwardedRef
@@ -1009,14 +1037,14 @@ var ListItemOpenTrigger = /* @__PURE__ */ forwardRef13(({ __listItemScope, class
1009
1037
  const { open } = useListItemContext(LIST_ITEM_NAME, __listItemScope);
1010
1038
  return /* @__PURE__ */ React16.createElement(ListPrimitiveItemOpenTrigger, {
1011
1039
  ...props,
1012
- className: tx("list.item.openTrigger", "list__listItem__openTrigger", {
1040
+ className: tx("list.item.openTrigger", {
1013
1041
  density
1014
1042
  }, classNames),
1015
1043
  ref: forwardedRef
1016
1044
  }, children || /* @__PURE__ */ React16.createElement(Icon, {
1017
1045
  size: 3,
1018
1046
  icon: open ? "ph--caret-down--bold" : "ph--caret-right--bold",
1019
- classNames: tx("list.item.openTriggerIcon", "list__listItem__openTrigger__icon", {})
1047
+ classNames: tx("list.item.openTriggerIcon", {})
1020
1048
  }));
1021
1049
  });
1022
1050
  var ListItemRoot = /* @__PURE__ */ forwardRef13(({ classNames, children, ...props }, forwardedRef) => {
@@ -1024,7 +1052,7 @@ var ListItemRoot = /* @__PURE__ */ forwardRef13(({ classNames, children, ...prop
1024
1052
  const density = useDensityContext();
1025
1053
  return /* @__PURE__ */ React16.createElement(ListPrimitiveItem, {
1026
1054
  ...props,
1027
- className: tx("list.item.root", "list__listItem", {
1055
+ className: tx("list.item.root", {
1028
1056
  density,
1029
1057
  collapsible: props.collapsible
1030
1058
  }, classNames),
@@ -1142,7 +1170,7 @@ var PATH_SEPARATOR = "~";
1142
1170
  var PARENT_OF_SEPARATOR = " ";
1143
1171
  var TreegridRoot = /* @__PURE__ */ forwardRef15(({ asChild, classNames, children, style, gridTemplateColumns, ...props }, forwardedRef) => {
1144
1172
  const { tx } = useThemeContext();
1145
- const Root6 = asChild ? Slot7 : Primitive6.div;
1173
+ const Root8 = asChild ? Slot7 : Primitive6.div;
1146
1174
  const { findFirstFocusable } = useFocusFinders();
1147
1175
  const handleKeyDown = useCallback5((event) => {
1148
1176
  switch (event.key) {
@@ -1177,21 +1205,21 @@ var TreegridRoot = /* @__PURE__ */ forwardRef15(({ asChild, classNames, children
1177
1205
  }, [
1178
1206
  findFirstFocusable
1179
1207
  ]);
1180
- return /* @__PURE__ */ React19.createElement(Root6, {
1208
+ return /* @__PURE__ */ React19.createElement(Root8, {
1181
1209
  role: "treegrid",
1182
- onKeyDown: handleKeyDown,
1183
1210
  ...props,
1184
- className: tx("treegrid.root", "treegrid", {}, classNames),
1211
+ className: tx("treegrid.root", {}, classNames),
1185
1212
  style: {
1186
1213
  ...style,
1187
1214
  gridTemplateColumns
1188
1215
  },
1216
+ onKeyDown: handleKeyDown,
1189
1217
  ref: forwardedRef
1190
1218
  }, children);
1191
1219
  });
1192
1220
  var TreegridRow = /* @__PURE__ */ forwardRef15(({ __treegridRowScope, asChild, classNames, children, id, parentOf, open: propsOpen, defaultOpen, onOpenChange: propsOnOpenChange, ...props }, forwardedRef) => {
1193
1221
  const { tx } = useThemeContext();
1194
- const Root6 = asChild ? Slot7 : Primitive6.div;
1222
+ const Root8 = asChild ? Slot7 : Primitive6.div;
1195
1223
  const pathParts = id.split(PATH_SEPARATOR);
1196
1224
  const level = pathParts.length - 1;
1197
1225
  const [open, onOpenChange] = useControllableState2({
@@ -1203,10 +1231,10 @@ var TreegridRow = /* @__PURE__ */ forwardRef15(({ __treegridRowScope, asChild, c
1203
1231
  open,
1204
1232
  onOpenChange,
1205
1233
  scope: __treegridRowScope
1206
- }, /* @__PURE__ */ React19.createElement(Root6, {
1234
+ }, /* @__PURE__ */ React19.createElement(Root8, {
1207
1235
  role: "row",
1208
1236
  "aria-level": level,
1209
- className: tx("treegrid.row", "treegrid__row", {
1237
+ className: tx("treegrid.row", {
1210
1238
  level
1211
1239
  }, classNames),
1212
1240
  ...parentOf && {
@@ -1222,7 +1250,7 @@ var TreegridCell = /* @__PURE__ */ forwardRef15(({ classNames, children, indent,
1222
1250
  const { tx } = useThemeContext();
1223
1251
  return /* @__PURE__ */ React19.createElement("div", {
1224
1252
  role: "gridcell",
1225
- className: tx("treegrid.cell", "treegrid__cell", {
1253
+ className: tx("treegrid.cell", {
1226
1254
  indent
1227
1255
  }, classNames),
1228
1256
  ...props,
@@ -1247,6 +1275,7 @@ import { Primitive as Primitive7 } from "@radix-ui/react-primitive";
1247
1275
  import { Slot as Slot8 } from "@radix-ui/react-slot";
1248
1276
  import { useControllableState as useControllableState3 } from "@radix-ui/react-use-controllable-state";
1249
1277
  import React20, { forwardRef as forwardRef16, useCallback as useCallback7, useEffect as useEffect3, useRef, useState as useState5 } from "react";
1278
+ import { addEventListener } from "@dxos/async";
1250
1279
  import { log } from "@dxos/log";
1251
1280
  import { useForwardedRef, useMediaQuery } from "@dxos/react-hooks";
1252
1281
 
@@ -1345,9 +1374,12 @@ var useSwipeToDismiss = (ref, {
1345
1374
  var __dxlog_file = "/__w/dxos/dxos/packages/ui/react-ui/src/components/Main/Main.tsx";
1346
1375
  var MAIN_NAME = "Main";
1347
1376
  var MAIN_ROOT_NAME = "MainRoot";
1377
+ var MAIN_OVERLAY_NAME = "MainOverlay";
1348
1378
  var NAVIGATION_SIDEBAR_NAME = "NavigationSidebar";
1349
1379
  var COMPLEMENTARY_SIDEBAR_NAME = "ComplementarySidebar";
1350
- var GENERIC_CONSUMER_NAME = "GenericConsumer";
1380
+ var handleOpenAutoFocus = (event) => {
1381
+ !document.body.hasAttribute("data-is-keyboard") && event.preventDefault();
1382
+ };
1351
1383
  var landmarkAttr = "data-main-landmark";
1352
1384
  var useLandmarkMover = (propsOnKeyDown, landmark) => {
1353
1385
  const handleKeyDown = useCallback7((event) => {
@@ -1371,9 +1403,9 @@ var useLandmarkMover = (propsOnKeyDown, landmark) => {
1371
1403
  }
1372
1404
  });
1373
1405
  return {
1374
- onKeyDown: handleKeyDown,
1375
1406
  [landmarkAttr]: landmark,
1376
1407
  tabIndex: 0,
1408
+ onKeyDown: handleKeyDown,
1377
1409
  ...focusableGroupAttrs
1378
1410
  };
1379
1411
  };
@@ -1381,25 +1413,25 @@ var [MainProvider, useMainContext] = createContext6(MAIN_NAME, {
1381
1413
  resizing: false,
1382
1414
  navigationSidebarState: "closed",
1383
1415
  setNavigationSidebarState: (_nextState) => {
1384
- log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
1416
+ log.warn("Not initialized", void 0, {
1385
1417
  F: __dxlog_file,
1386
- L: 92,
1418
+ L: 111,
1387
1419
  S: void 0,
1388
1420
  C: (f, a) => f(...a)
1389
1421
  });
1390
1422
  },
1391
1423
  complementarySidebarState: "closed",
1392
1424
  setComplementarySidebarState: (_nextState) => {
1393
- log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
1425
+ log.warn("Not initialized", void 0, {
1394
1426
  F: __dxlog_file,
1395
- L: 97,
1427
+ L: 116,
1396
1428
  S: void 0,
1397
1429
  C: (f, a) => f(...a)
1398
1430
  });
1399
1431
  }
1400
1432
  });
1401
- var useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
1402
- const { setNavigationSidebarState, navigationSidebarState, setComplementarySidebarState, complementarySidebarState } = useMainContext(consumerName);
1433
+ var useSidebars = (consumerName) => {
1434
+ const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } = useMainContext(consumerName);
1403
1435
  return {
1404
1436
  navigationSidebarState,
1405
1437
  setNavigationSidebarState,
@@ -1421,8 +1453,7 @@ var useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
1421
1453
  closeComplementarySidebar: useCallback7(() => setComplementarySidebarState("closed"), [])
1422
1454
  };
1423
1455
  };
1424
- var resizeDebounce = 3e3;
1425
- var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNavigationSidebarState, onNavigationSidebarStateChange, complementarySidebarState: propsComplementarySidebarState, defaultComplementarySidebarState, onComplementarySidebarStateChange, children, ...props }) => {
1456
+ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNavigationSidebarState = "closed", onNavigationSidebarStateChange, complementarySidebarState: propsComplementarySidebarState, defaultComplementarySidebarState = "closed", onComplementarySidebarStateChange, children, ...props }) => {
1426
1457
  const [isLg] = useMediaQuery("lg");
1427
1458
  const [navigationSidebarState = isLg ? "expanded" : "collapsed", setNavigationSidebarState] = useControllableState3({
1428
1459
  prop: propsNavigationSidebarState,
@@ -1436,7 +1467,7 @@ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNa
1436
1467
  });
1437
1468
  const [resizing, setResizing] = useState5(false);
1438
1469
  const resizeInterval = useRef(null);
1439
- const handleResize = useCallback7(() => {
1470
+ useEffect3(() => addEventListener(window, "resize", () => {
1440
1471
  setResizing(true);
1441
1472
  if (resizeInterval.current) {
1442
1473
  clearTimeout(resizeInterval.current);
@@ -1444,14 +1475,8 @@ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNa
1444
1475
  resizeInterval.current = setTimeout(() => {
1445
1476
  setResizing(false);
1446
1477
  resizeInterval.current = null;
1447
- }, resizeDebounce);
1448
- }, []);
1449
- useEffect3(() => {
1450
- window.addEventListener("resize", handleResize);
1451
- return () => window.removeEventListener("resize", handleResize);
1452
- }, [
1453
- handleResize
1454
- ]);
1478
+ }, 3e3);
1479
+ }), []);
1455
1480
  return /* @__PURE__ */ React20.createElement(MainProvider, {
1456
1481
  ...props,
1457
1482
  navigationSidebarState,
@@ -1462,9 +1487,27 @@ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNa
1462
1487
  }, children);
1463
1488
  };
1464
1489
  MainRoot.displayName = MAIN_ROOT_NAME;
1465
- var handleOpenAutoFocus = (event) => {
1466
- !document.body.hasAttribute("data-is-keyboard") && event.preventDefault();
1467
- };
1490
+ var MainOverlay = /* @__PURE__ */ forwardRef16(({ classNames, ...props }, forwardedRef) => {
1491
+ const [isLg] = useMediaQuery("lg");
1492
+ const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } = useMainContext(MAIN_OVERLAY_NAME);
1493
+ const { tx } = useThemeContext();
1494
+ return /* @__PURE__ */ React20.createElement("div", {
1495
+ ...props,
1496
+ onClick: () => {
1497
+ setNavigationSidebarState("collapsed");
1498
+ setComplementarySidebarState("collapsed");
1499
+ },
1500
+ className: tx("main.overlay", {
1501
+ isLg,
1502
+ inlineStartSidebarOpen: navigationSidebarState,
1503
+ inlineEndSidebarOpen: complementarySidebarState
1504
+ }, classNames),
1505
+ "data-state": navigationSidebarState === "expanded" || complementarySidebarState === "expanded" ? "open" : "closed",
1506
+ "aria-hidden": "true",
1507
+ ref: forwardedRef
1508
+ });
1509
+ });
1510
+ MainOverlay.displayName = MAIN_OVERLAY_NAME;
1468
1511
  var MainSidebar = /* @__PURE__ */ forwardRef16(({ classNames, children, swipeToDismiss, onOpenAutoFocus, state, resizing, onStateChange, side, label, ...props }, forwardedRef) => {
1469
1512
  const [isLg] = useMediaQuery("lg");
1470
1513
  const { tx } = useThemeContext();
@@ -1485,28 +1528,28 @@ var MainSidebar = /* @__PURE__ */ forwardRef16(({ classNames, children, swipeToD
1485
1528
  }, [
1486
1529
  props.onKeyDown
1487
1530
  ]);
1488
- const Root6 = isLg ? Primitive7.div : DialogContent2;
1531
+ const Root8 = isLg ? Primitive7.div : DialogContent2;
1489
1532
  return /* @__PURE__ */ React20.createElement(DialogRoot2, {
1490
1533
  open: state !== "closed",
1491
1534
  "aria-label": toLocalizedString(label, t),
1492
1535
  modal: false
1493
1536
  }, !isLg && /* @__PURE__ */ React20.createElement(DialogTitle2, {
1494
1537
  className: "sr-only"
1495
- }, toLocalizedString(label, t)), /* @__PURE__ */ React20.createElement(Root6, {
1538
+ }, toLocalizedString(label, t)), /* @__PURE__ */ React20.createElement(Root8, {
1496
1539
  ...!isLg && {
1497
1540
  forceMount: true,
1498
1541
  tabIndex: -1,
1499
1542
  onOpenAutoFocus: onOpenAutoFocus ?? handleOpenAutoFocus
1500
1543
  },
1544
+ ...state === "closed" && {
1545
+ inert: true
1546
+ },
1501
1547
  ...props,
1502
1548
  "data-side": side === "inline-end" ? "ie" : "is",
1503
1549
  "data-state": state,
1504
1550
  "data-resizing": resizing ? "true" : "false",
1505
- className: tx("main.sidebar", "main__sidebar", {}, classNames),
1551
+ className: tx("main.sidebar", {}, classNames),
1506
1552
  onKeyDownCapture: handleKeyDown,
1507
- ...state === "closed" && {
1508
- inert: true
1509
- },
1510
1553
  ref
1511
1554
  }, children));
1512
1555
  });
@@ -1537,13 +1580,13 @@ var MainComplementarySidebar = /* @__PURE__ */ forwardRef16((props, forwardedRef
1537
1580
  ref: forwardedRef
1538
1581
  });
1539
1582
  });
1540
- MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
1583
+ MainComplementarySidebar.displayName = COMPLEMENTARY_SIDEBAR_NAME;
1541
1584
  var MainContent = /* @__PURE__ */ forwardRef16(({ asChild, classNames, bounce, handlesFocus, children, role, ...props }, forwardedRef) => {
1542
1585
  const { navigationSidebarState, complementarySidebarState } = useMainContext(MAIN_NAME);
1543
1586
  const { tx } = useThemeContext();
1544
- const Root6 = asChild ? Slot8 : role ? "div" : "main";
1587
+ const Root8 = asChild ? Slot8 : role ? "div" : "main";
1545
1588
  const mover = useLandmarkMover(props.onKeyDown, "1");
1546
- return /* @__PURE__ */ React20.createElement(Root6, {
1589
+ return /* @__PURE__ */ React20.createElement(Root8, {
1547
1590
  role,
1548
1591
  ...handlesFocus && {
1549
1592
  ...mover
@@ -1552,7 +1595,7 @@ var MainContent = /* @__PURE__ */ forwardRef16(({ asChild, classNames, bounce, h
1552
1595
  "data-sidebar-inline-start-state": navigationSidebarState,
1553
1596
  "data-sidebar-inline-end-state": complementarySidebarState,
1554
1597
  "data-handles-focus": handlesFocus,
1555
- className: tx("main.content", "main", {
1598
+ className: tx("main.content", {
1556
1599
  bounce,
1557
1600
  handlesFocus
1558
1601
  }, classNames),
@@ -1560,30 +1603,10 @@ var MainContent = /* @__PURE__ */ forwardRef16(({ asChild, classNames, bounce, h
1560
1603
  }, children);
1561
1604
  });
1562
1605
  MainContent.displayName = MAIN_NAME;
1563
- var MainOverlay = /* @__PURE__ */ forwardRef16(({ classNames, ...props }, forwardedRef) => {
1564
- const [isLg] = useMediaQuery("lg");
1565
- const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } = useMainContext(MAIN_NAME);
1566
- const { tx } = useThemeContext();
1567
- return /* @__PURE__ */ React20.createElement("div", {
1568
- onClick: () => {
1569
- setNavigationSidebarState("collapsed");
1570
- setComplementarySidebarState("collapsed");
1571
- },
1572
- ...props,
1573
- className: tx("main.overlay", "main__overlay", {
1574
- isLg,
1575
- inlineStartSidebarOpen: navigationSidebarState,
1576
- inlineEndSidebarOpen: complementarySidebarState
1577
- }, classNames),
1578
- "data-state": navigationSidebarState === "expanded" || complementarySidebarState === "expanded" ? "open" : "closed",
1579
- "aria-hidden": "true",
1580
- ref: forwardedRef
1581
- });
1582
- });
1583
1606
  var Main = {
1584
1607
  Root: MainRoot,
1585
- Content: MainContent,
1586
1608
  Overlay: MainOverlay,
1609
+ Content: MainContent,
1587
1610
  NavigationSidebar: MainNavigationSidebar,
1588
1611
  ComplementarySidebar: MainComplementarySidebar
1589
1612
  };
@@ -1626,7 +1649,7 @@ var ContextMenuContent = /* @__PURE__ */ forwardRef17(({ classNames, children, c
1626
1649
  ...props,
1627
1650
  "data-arrow-keys": "up down",
1628
1651
  collisionPadding: safeCollisionPadding,
1629
- className: tx("menu.content", "menu", {
1652
+ className: tx("menu.content", {
1630
1653
  elevation
1631
1654
  }, classNames),
1632
1655
  ref: forwardedRef
@@ -1634,10 +1657,10 @@ var ContextMenuContent = /* @__PURE__ */ forwardRef17(({ classNames, children, c
1634
1657
  });
1635
1658
  var ContextMenuViewport = /* @__PURE__ */ forwardRef17(({ classNames, asChild, children, ...props }, forwardedRef) => {
1636
1659
  const { tx } = useThemeContext();
1637
- const Root6 = asChild ? Slot9 : Primitive8.div;
1638
- return /* @__PURE__ */ React21.createElement(Root6, {
1660
+ const Root8 = asChild ? Slot9 : Primitive8.div;
1661
+ return /* @__PURE__ */ React21.createElement(Root8, {
1639
1662
  ...props,
1640
- className: tx("menu.viewport", "menu__viewport", {}, classNames),
1663
+ className: tx("menu.viewport", {}, classNames),
1641
1664
  ref: forwardedRef
1642
1665
  }, children);
1643
1666
  });
@@ -1645,7 +1668,7 @@ var ContextMenuArrow = /* @__PURE__ */ forwardRef17(({ classNames, ...props }, f
1645
1668
  const { tx } = useThemeContext();
1646
1669
  return /* @__PURE__ */ React21.createElement(ContextMenuPrimitive.Arrow, {
1647
1670
  ...props,
1648
- className: tx("menu.arrow", "menu__arrow", {}, classNames),
1671
+ className: tx("menu.arrow", {}, classNames),
1649
1672
  ref: forwardedRef
1650
1673
  });
1651
1674
  });
@@ -1655,7 +1678,7 @@ var ContextMenuItem = /* @__PURE__ */ forwardRef17(({ classNames, ...props }, fo
1655
1678
  const { tx } = useThemeContext();
1656
1679
  return /* @__PURE__ */ React21.createElement(ContextMenuPrimitive.Item, {
1657
1680
  ...props,
1658
- className: tx("menu.item", "menu__item", {}, classNames),
1681
+ className: tx("menu.item", {}, classNames),
1659
1682
  ref: forwardedRef
1660
1683
  });
1661
1684
  });
@@ -1663,7 +1686,7 @@ var ContextMenuCheckboxItem = /* @__PURE__ */ forwardRef17(({ classNames, ...pro
1663
1686
  const { tx } = useThemeContext();
1664
1687
  return /* @__PURE__ */ React21.createElement(ContextMenuPrimitive.CheckboxItem, {
1665
1688
  ...props,
1666
- className: tx("menu.item", "menu__item--checkbox", {}, classNames),
1689
+ className: tx("menu.item", {}, classNames),
1667
1690
  ref: forwardedRef
1668
1691
  });
1669
1692
  });
@@ -1671,7 +1694,7 @@ var ContextMenuSeparator = /* @__PURE__ */ forwardRef17(({ classNames, ...props
1671
1694
  const { tx } = useThemeContext();
1672
1695
  return /* @__PURE__ */ React21.createElement(ContextMenuPrimitive.Separator, {
1673
1696
  ...props,
1674
- className: tx("menu.separator", "menu__item", {}, classNames),
1697
+ className: tx("menu.separator", {}, classNames),
1675
1698
  ref: forwardedRef
1676
1699
  });
1677
1700
  });
@@ -1679,7 +1702,7 @@ var ContextMenuGroupLabel = /* @__PURE__ */ forwardRef17(({ classNames, ...props
1679
1702
  const { tx } = useThemeContext();
1680
1703
  return /* @__PURE__ */ React21.createElement(ContextMenuPrimitive.Label, {
1681
1704
  ...props,
1682
- className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
1705
+ className: tx("menu.groupLabel", {}, classNames),
1683
1706
  ref: forwardedRef
1684
1707
  });
1685
1708
  });
@@ -1824,10 +1847,10 @@ var DropdownMenuPortal = (props) => {
1824
1847
  DropdownMenuPortal.displayName = PORTAL_NAME;
1825
1848
  var DropdownMenuViewport = /* @__PURE__ */ forwardRef18(({ classNames, asChild, children, ...props }, forwardedRef) => {
1826
1849
  const { tx } = useThemeContext();
1827
- const Root6 = asChild ? Slot10 : Primitive9.div;
1828
- return /* @__PURE__ */ React22.createElement(Root6, {
1850
+ const Root8 = asChild ? Slot10 : Primitive9.div;
1851
+ return /* @__PURE__ */ React22.createElement(Root8, {
1829
1852
  ...props,
1830
- className: tx("menu.viewport", "menu__viewport", {}, classNames),
1853
+ className: tx("menu.viewport", {}, classNames),
1831
1854
  ref: forwardedRef
1832
1855
  }, children);
1833
1856
  });
@@ -1880,7 +1903,7 @@ var DropdownMenuContent = /* @__PURE__ */ forwardRef18((props, forwardedRef) =>
1880
1903
  }
1881
1904
  }),
1882
1905
  "data-arrow-keys": "up down",
1883
- className: tx("menu.content", "menu", {
1906
+ className: tx("menu.content", {
1884
1907
  elevation
1885
1908
  }, classNames),
1886
1909
  style: {
@@ -1916,7 +1939,7 @@ var DropdownMenuGroupLabel = /* @__PURE__ */ forwardRef18((props, forwardedRef)
1916
1939
  return /* @__PURE__ */ React22.createElement(MenuPrimitive.Label, {
1917
1940
  ...menuScope,
1918
1941
  ...labelProps,
1919
- className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
1942
+ className: tx("menu.groupLabel", {}, classNames),
1920
1943
  ref: forwardedRef
1921
1944
  });
1922
1945
  });
@@ -1929,7 +1952,7 @@ var DropdownMenuItem = /* @__PURE__ */ forwardRef18((props, forwardedRef) => {
1929
1952
  return /* @__PURE__ */ React22.createElement(MenuPrimitive.Item, {
1930
1953
  ...menuScope,
1931
1954
  ...itemProps,
1932
- className: tx("menu.item", "menu__item", {}, classNames),
1955
+ className: tx("menu.item", {}, classNames),
1933
1956
  ref: forwardedRef
1934
1957
  });
1935
1958
  });
@@ -1942,7 +1965,7 @@ var DropdownMenuCheckboxItem = /* @__PURE__ */ forwardRef18((props, forwardedRef
1942
1965
  return /* @__PURE__ */ React22.createElement(MenuPrimitive.CheckboxItem, {
1943
1966
  ...menuScope,
1944
1967
  ...checkboxItemProps,
1945
- className: tx("menu.item", "menu__item--checkbox", {}, classNames),
1968
+ className: tx("menu.item", {}, classNames),
1946
1969
  ref: forwardedRef
1947
1970
  });
1948
1971
  });
@@ -1966,7 +1989,7 @@ var DropdownMenuRadioItem = /* @__PURE__ */ forwardRef18((props, forwardedRef) =
1966
1989
  return /* @__PURE__ */ React22.createElement(MenuPrimitive.Item, {
1967
1990
  ...menuScope,
1968
1991
  ...itemProps,
1969
- className: tx("menu.item", "menu__item", {}, classNames),
1992
+ className: tx("menu.item", {}, classNames),
1970
1993
  ref: forwardedRef
1971
1994
  });
1972
1995
  });
@@ -1990,7 +2013,7 @@ var DropdownMenuSeparator = /* @__PURE__ */ forwardRef18((props, forwardedRef) =
1990
2013
  return /* @__PURE__ */ React22.createElement(MenuPrimitive.Separator, {
1991
2014
  ...menuScope,
1992
2015
  ...separatorProps,
1993
- className: tx("menu.separator", "menu__item", {}, classNames),
2016
+ className: tx("menu.separator", {}, classNames),
1994
2017
  ref: forwardedRef
1995
2018
  });
1996
2019
  });
@@ -2003,7 +2026,7 @@ var DropdownMenuArrow = /* @__PURE__ */ forwardRef18((props, forwardedRef) => {
2003
2026
  return /* @__PURE__ */ React22.createElement(MenuPrimitive.Arrow, {
2004
2027
  ...menuScope,
2005
2028
  ...arrowProps,
2006
- className: tx("menu.arrow", "menu__arrow", {}, classNames),
2029
+ className: tx("menu.arrow", {}, classNames),
2007
2030
  ref: forwardedRef
2008
2031
  });
2009
2032
  });
@@ -2097,15 +2120,15 @@ var MessageRoot = /* @__PURE__ */ forwardRef19(({ asChild, valence = "neutral",
2097
2120
  const titleId = useId3("message__title", propsTitleId);
2098
2121
  const descriptionId = useId3("message__description", propsDescriptionId);
2099
2122
  const elevation = useElevationContext(propsElevation);
2100
- const Root6 = asChild ? Slot11 : Primitive10.div;
2123
+ const Root8 = asChild ? Slot11 : Primitive10.div;
2101
2124
  return /* @__PURE__ */ React23.createElement(MessageProvider, {
2102
2125
  titleId,
2103
2126
  descriptionId,
2104
2127
  valence
2105
- }, /* @__PURE__ */ React23.createElement(Root6, {
2128
+ }, /* @__PURE__ */ React23.createElement(Root8, {
2106
2129
  role: valence === "neutral" ? "paragraph" : "alert",
2107
2130
  ...props,
2108
- className: tx("message.root", "message", {
2131
+ className: tx("message.root", {
2109
2132
  valence,
2110
2133
  elevation
2111
2134
  }, classNames),
@@ -2119,29 +2142,31 @@ var MESSAGE_TITLE_NAME = "MessageTitle";
2119
2142
  var MessageTitle = /* @__PURE__ */ forwardRef19(({ asChild, classNames, children, icon, ...props }, forwardedRef) => {
2120
2143
  const { tx } = useThemeContext();
2121
2144
  const { titleId, valence } = useMessageContext(MESSAGE_TITLE_NAME);
2122
- const Root6 = asChild ? Slot11 : Primitive10.h2;
2123
- return /* @__PURE__ */ React23.createElement(Root6, {
2145
+ const Root8 = asChild ? Slot11 : Primitive10.h2;
2146
+ return /* @__PURE__ */ React23.createElement(Root8, {
2124
2147
  ...props,
2125
- className: tx("message.title", "message__title", {}, classNames),
2148
+ className: tx("message.header", {}, classNames),
2126
2149
  id: titleId,
2127
2150
  ref: forwardedRef
2128
- }, !icon && valence === "neutral" ? null : /* @__PURE__ */ React23.createElement(Icon, {
2151
+ }, !icon && valence === "neutral" ? /* @__PURE__ */ React23.createElement("div", null) : /* @__PURE__ */ React23.createElement(Icon, {
2129
2152
  size: 5,
2130
2153
  icon: icon ?? messageIcons[valence],
2131
- classNames: tx("message.icon", "message__icon", {
2154
+ classNames: tx("message.icon", {
2132
2155
  valence
2133
2156
  })
2134
- }), /* @__PURE__ */ React23.createElement("span", null, children));
2157
+ }), /* @__PURE__ */ React23.createElement("span", {
2158
+ className: tx("message.title", {}, classNames)
2159
+ }, children));
2135
2160
  });
2136
2161
  MessageTitle.displayName = MESSAGE_TITLE_NAME;
2137
2162
  var MESSAGE_CONTENT_NAME = "MessageContent";
2138
2163
  var MessageContent = /* @__PURE__ */ forwardRef19(({ asChild, classNames, children, ...props }, forwardedRef) => {
2139
2164
  const { tx } = useThemeContext();
2140
2165
  const { descriptionId } = useMessageContext(MESSAGE_CONTENT_NAME);
2141
- const Root6 = asChild ? Slot11 : Primitive10.p;
2142
- return /* @__PURE__ */ React23.createElement(Root6, {
2166
+ const Root8 = asChild ? Slot11 : Primitive10.p;
2167
+ return /* @__PURE__ */ React23.createElement(Root8, {
2143
2168
  ...props,
2144
- className: tx("message.content", "message__content", {}, classNames),
2169
+ className: tx("message.content", {}, classNames),
2145
2170
  id: descriptionId,
2146
2171
  ref: forwardedRef
2147
2172
  }, children);
@@ -2423,7 +2448,7 @@ var PopoverContentImpl = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
2423
2448
  ...contentProps,
2424
2449
  collisionPadding: safeCollisionPadding,
2425
2450
  collisionBoundary: computedCollisionBoundary,
2426
- className: tx("popover.content", "popover", {
2451
+ className: tx("popover.content", {
2427
2452
  elevation
2428
2453
  }, classNames),
2429
2454
  ref: forwardedRef,
@@ -2460,17 +2485,17 @@ var PopoverArrow = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
2460
2485
  return /* @__PURE__ */ React24.createElement(PopperPrimitive.Arrow, {
2461
2486
  ...popperScope,
2462
2487
  ...arrowProps,
2463
- className: tx("popover.arrow", "popover__arrow", {}, classNames),
2488
+ className: tx("popover.arrow", {}, classNames),
2464
2489
  ref: forwardedRef
2465
2490
  });
2466
2491
  });
2467
2492
  PopoverArrow.displayName = ARROW_NAME2;
2468
2493
  var PopoverViewport = /* @__PURE__ */ forwardRef20(({ classNames, asChild, constrainInline = true, constrainBlock = true, children, ...props }, forwardedRef) => {
2469
2494
  const { tx } = useThemeContext();
2470
- const Root6 = asChild ? Slot12 : Primitive11.div;
2471
- return /* @__PURE__ */ React24.createElement(Root6, {
2495
+ const Root8 = asChild ? Slot12 : Primitive11.div;
2496
+ return /* @__PURE__ */ React24.createElement(Root8, {
2472
2497
  ...props,
2473
- className: tx("popover.viewport", "popover__viewport", {
2498
+ className: tx("popover.viewport", {
2474
2499
  constrainInline,
2475
2500
  constrainBlock
2476
2501
  }, classNames),
@@ -2497,14 +2522,14 @@ var Status = /* @__PURE__ */ forwardRef21(({ classNames, children, progress = 0,
2497
2522
  return /* @__PURE__ */ React25.createElement("span", {
2498
2523
  role: "status",
2499
2524
  ...props,
2500
- className: tx("status.root", "status", {
2525
+ className: tx("status.root", {
2501
2526
  indeterminate,
2502
2527
  variant
2503
2528
  }, classNames),
2504
2529
  ref: forwardedRef
2505
2530
  }, /* @__PURE__ */ React25.createElement("span", {
2506
2531
  role: "none",
2507
- className: tx("status.bar", "status__bar", {
2532
+ className: tx("status.bar", {
2508
2533
  indeterminate,
2509
2534
  variant
2510
2535
  }, classNames),
@@ -2517,80 +2542,59 @@ var Status = /* @__PURE__ */ forwardRef21(({ classNames, children, progress = 0,
2517
2542
  });
2518
2543
 
2519
2544
  // src/components/ScrollArea/ScrollArea.tsx
2520
- import { Corner as ScrollAreaPrimitiveCorner, Root as ScrollAreaPrimitiveRoot, Scrollbar as ScrollAreaPrimitiveScrollbar, Thumb as ScrollAreaPrimitiveThumb, Viewport as ScrollAreaPrimitiveViewport } from "@radix-ui/react-scroll-area";
2545
+ import { createContext as createContext8 } from "@radix-ui/react-context";
2521
2546
  import React26, { forwardRef as forwardRef22 } from "react";
2522
- import { mx as mx4 } from "@dxos/ui-theme";
2523
- var ScrollAreaRoot = /* @__PURE__ */ forwardRef22(({ classNames, ...props }, forwardedRef) => {
2547
+ var SCROLLAREA_NAME = "ScrollArea";
2548
+ var [ScrollAreaProvider, useScrollAreaContext] = createContext8(SCROLLAREA_NAME);
2549
+ var SCROLLAREA_ROOT_NAME = "ScrollArea.Root";
2550
+ var ScrollAreaRoot = /* @__PURE__ */ forwardRef22(({ classNames, className, children, orientation = "vertical", autoHide = true, margin = true, padding = false, thin = false, snap = false, ...props }, forwardedRef) => {
2524
2551
  const { tx } = useThemeContext();
2525
- return /* @__PURE__ */ React26.createElement(ScrollAreaPrimitiveRoot, {
2526
- ...props,
2527
- className: tx("scrollArea.root", "scroll-area", {}, classNames),
2528
- ref: forwardedRef
2529
- });
2530
- });
2531
- var ScrollAreaViewport = /* @__PURE__ */ forwardRef22(({ classNames, ...props }, forwardedRef) => {
2532
- const { tx } = useThemeContext();
2533
- return /* @__PURE__ */ React26.createElement(ScrollAreaPrimitiveViewport, {
2534
- ...props,
2535
- className: tx("scrollArea.viewport", "scroll-area", {}, classNames),
2536
- ref: forwardedRef
2537
- });
2538
- });
2539
- var ScrollAreaScrollbar = /* @__PURE__ */ forwardRef22(({ classNames, variant = "fine", ...props }, forwardedRef) => {
2540
- const { tx } = useThemeContext();
2541
- return /* @__PURE__ */ React26.createElement(ScrollAreaPrimitiveScrollbar, {
2542
- "data-variant": variant,
2543
- ...props,
2544
- className: tx("scrollArea.scrollbar", "scroll-area__scrollbar", {}, classNames),
2545
- ref: forwardedRef
2546
- });
2547
- });
2548
- var ScrollAreaThumb = /* @__PURE__ */ forwardRef22(({ classNames, ...props }, forwardedRef) => {
2549
- const { tx } = useThemeContext();
2550
- return /* @__PURE__ */ React26.createElement(ScrollAreaPrimitiveThumb, {
2552
+ const options = {
2553
+ orientation,
2554
+ autoHide,
2555
+ margin,
2556
+ padding,
2557
+ thin,
2558
+ snap
2559
+ };
2560
+ return /* @__PURE__ */ React26.createElement(ScrollAreaProvider, options, /* @__PURE__ */ React26.createElement("div", {
2551
2561
  ...props,
2552
- className: tx("scrollArea.thumb", "scroll-area__thumb", {}, classNames),
2562
+ className: tx("scrollArea.root", options, [
2563
+ className,
2564
+ classNames
2565
+ ]),
2553
2566
  ref: forwardedRef
2554
- });
2567
+ }, children));
2555
2568
  });
2556
- var ScrollAreaCorner = /* @__PURE__ */ forwardRef22(({ classNames, ...props }, forwardedRef) => {
2569
+ ScrollAreaRoot.displayName = SCROLLAREA_ROOT_NAME;
2570
+ var SCROLLAREA_VIEWPORT_NAME = "ScrollArea.Viewport";
2571
+ var ScrollAreaViewport = /* @__PURE__ */ forwardRef22(({ classNames, children, ...props }, forwardedRef) => {
2557
2572
  const { tx } = useThemeContext();
2558
- return /* @__PURE__ */ React26.createElement(ScrollAreaPrimitiveCorner, {
2573
+ const options = useScrollAreaContext(SCROLLAREA_VIEWPORT_NAME);
2574
+ return /* @__PURE__ */ React26.createElement("div", {
2559
2575
  ...props,
2560
- className: tx("scrollArea.corner", "scroll-area__corner", {}, classNames),
2576
+ className: tx("scrollArea.viewport", options, classNames),
2561
2577
  ref: forwardedRef
2562
- });
2578
+ }, children);
2563
2579
  });
2564
- var ScrollAreaExpander = ({ classNames, children }) => {
2565
- return /* @__PURE__ */ React26.createElement("div", {
2566
- role: "none",
2567
- className: mx4("relative bs-full is-full overflow-hidden", classNames)
2568
- }, /* @__PURE__ */ React26.createElement("div", {
2569
- role: "none",
2570
- className: "absolute inset-0 overflow-hidden"
2571
- }, children));
2572
- };
2580
+ ScrollAreaViewport.displayName = SCROLLAREA_VIEWPORT_NAME;
2573
2581
  var ScrollArea = {
2574
2582
  Root: ScrollAreaRoot,
2575
- Viewport: ScrollAreaViewport,
2576
- Scrollbar: ScrollAreaScrollbar,
2577
- Thumb: ScrollAreaThumb,
2578
- Corner: ScrollAreaCorner,
2579
- Expander: ScrollAreaExpander
2583
+ Viewport: ScrollAreaViewport
2580
2584
  };
2581
2585
 
2582
2586
  // src/components/ScrollContainer/ScrollContainer.tsx
2583
- import { createContext as createContext8 } from "@radix-ui/react-context";
2587
+ import { createContext as createContext9 } from "@radix-ui/react-context";
2584
2588
  import React27, { forwardRef as forwardRef23, useCallback as useCallback10, useEffect as useEffect6, useImperativeHandle, useMemo as useMemo5, useRef as useRef4, useState as useState7 } from "react";
2585
- import { addEventListener, combine } from "@dxos/async";
2589
+ import { addEventListener as addEventListener2, combine } from "@dxos/async";
2586
2590
  import { invariant } from "@dxos/invariant";
2587
2591
  import { useForwardedRef as useForwardedRef2 } from "@dxos/react-hooks";
2588
- import { mx as mx5 } from "@dxos/ui-theme";
2592
+ import { mx as mx4 } from "@dxos/ui-theme";
2589
2593
  var __dxlog_file2 = "/__w/dxos/dxos/packages/ui/react-ui/src/components/ScrollContainer/ScrollContainer.tsx";
2590
2594
  var isBottom = (el) => {
2591
2595
  return !!(el && el.scrollHeight - el.scrollTop === el.clientHeight);
2592
2596
  };
2593
- var [ScrollContainerProvider, useScrollContainerContext] = createContext8("ScrollContainer");
2597
+ var [ScrollContainerProvider, useScrollContainerContext] = createContext9("ScrollContainer");
2594
2598
  var Root3 = /* @__PURE__ */ forwardRef23(({ children, classNames, pin, fade, behavior: behaviorProp = "smooth" }, forwardedRef) => {
2595
2599
  const scrollerRef = useRef4(null);
2596
2600
  const autoScrollRef = useRef4(false);
@@ -2620,7 +2624,7 @@ var Root3 = /* @__PURE__ */ forwardRef23(({ children, classNames, pin, fade, beh
2620
2624
  scrollToTop: () => {
2621
2625
  invariant(scrollerRef.current, void 0, {
2622
2626
  F: __dxlog_file2,
2623
- L: 94,
2627
+ L: 95,
2624
2628
  S: void 0,
2625
2629
  A: [
2626
2630
  "scrollerRef.current",
@@ -2649,11 +2653,11 @@ var Root3 = /* @__PURE__ */ forwardRef23(({ children, classNames, pin, fade, beh
2649
2653
  }
2650
2654
  return combine(
2651
2655
  // Check if user scrolls.
2652
- addEventListener(scrollerRef.current, "wheel", () => {
2656
+ addEventListener2(scrollerRef.current, "wheel", () => {
2653
2657
  setPinned(isBottom(scrollerRef.current));
2654
2658
  }),
2655
2659
  // Check if scrolls.
2656
- addEventListener(scrollerRef.current, "scroll", () => {
2660
+ addEventListener2(scrollerRef.current, "scroll", () => {
2657
2661
  setOverflow((scrollerRef.current?.scrollTop ?? 0) > 0);
2658
2662
  })
2659
2663
  );
@@ -2667,21 +2671,24 @@ var Root3 = /* @__PURE__ */ forwardRef23(({ children, classNames, pin, fade, beh
2667
2671
  }, fade && /* @__PURE__ */ React27.createElement("div", {
2668
2672
  role: "none",
2669
2673
  "data-visible": overflow,
2670
- className: mx5(
2674
+ className: mx4(
2671
2675
  // NOTE: Gradients may not be visible with dark reader extensions.
2672
2676
  "z-10 absolute block-start-0 inset-inline-0 bs-24 is-full",
2673
2677
  'opacity-0 duration-200 transition-opacity data-[visible="true"]:opacity-100',
2674
2678
  "bg-gradient-to-b from-[--surface-bg] to-transparent pointer-events-none"
2675
2679
  )
2676
- }), /* @__PURE__ */ React27.createElement("div", {
2677
- className: mx5("flex flex-col min-bs-0 overflow-y-auto scrollbar-thin", classNames),
2680
+ }), /* @__PURE__ */ React27.createElement(ScrollArea.Root, {
2681
+ classNames: mx4("min-bs-0", classNames),
2682
+ thin: true
2683
+ }, /* @__PURE__ */ React27.createElement(ScrollArea.Viewport, {
2678
2684
  ref: scrollerRef
2679
- }, children)));
2685
+ }, children))));
2680
2686
  });
2681
2687
  Root3.displayName = "ScrollContainer.Root";
2688
+ var VIEWPORT_NAME = "ScrollContainer.Viewport";
2682
2689
  var Viewport = /* @__PURE__ */ forwardRef23(({ classNames, children, ...props }, forwardedRef) => {
2683
2690
  const contentRef = useForwardedRef2(forwardedRef);
2684
- const { pinned, scrollToBottom } = useScrollContainerContext(Viewport.displayName);
2691
+ const { pinned, scrollToBottom } = useScrollContainerContext(VIEWPORT_NAME);
2685
2692
  useEffect6(() => {
2686
2693
  if (!pinned || !contentRef.current) {
2687
2694
  return;
@@ -2695,17 +2702,18 @@ var Viewport = /* @__PURE__ */ forwardRef23(({ classNames, children, ...props },
2695
2702
  scrollToBottom
2696
2703
  ]);
2697
2704
  return /* @__PURE__ */ React27.createElement("div", {
2698
- className: mx5("is-full", classNames),
2705
+ className: mx4("is-full", classNames),
2699
2706
  ...props,
2700
2707
  ref: contentRef
2701
2708
  }, children);
2702
2709
  });
2703
- Viewport.displayName = "ScrollContainer.Viewport";
2710
+ Viewport.displayName = VIEWPORT_NAME;
2711
+ var SCROLL_DOWN_BUTTON_NAME = "ScrollContainer.ScrollDownButton";
2704
2712
  var ScrollDownButton = ({ classNames }) => {
2705
- const { pinned, scrollToBottom } = useScrollContainerContext(ScrollDownButton.displayName);
2713
+ const { pinned, scrollToBottom } = useScrollContainerContext(SCROLL_DOWN_BUTTON_NAME);
2706
2714
  return /* @__PURE__ */ React27.createElement("div", {
2707
2715
  role: "none",
2708
- className: mx5("absolute bottom-2 right-4 opacity-100 transition-opacity duration-300", pinned && "opacity-0", classNames)
2716
+ className: mx4("absolute bottom-2 right-4 opacity-100 transition-opacity duration-300", pinned && "opacity-0", classNames)
2709
2717
  }, /* @__PURE__ */ React27.createElement(IconButton, {
2710
2718
  variant: "primary",
2711
2719
  icon: "ph--arrow-down--regular",
@@ -2715,7 +2723,7 @@ var ScrollDownButton = ({ classNames }) => {
2715
2723
  onClick: () => scrollToBottom()
2716
2724
  }));
2717
2725
  };
2718
- ScrollDownButton.displayName = "ScrollContainer.ScrollDownButton";
2726
+ ScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;
2719
2727
  var ScrollContainer = {
2720
2728
  Root: Root3,
2721
2729
  Viewport,
@@ -2753,7 +2761,7 @@ var SelectContent = /* @__PURE__ */ forwardRef24(({ classNames, children, collis
2753
2761
  ...props,
2754
2762
  "data-arrow-keys": "up down",
2755
2763
  collisionPadding: safeCollisionPadding,
2756
- className: tx("select.content", "select__content", {
2764
+ className: tx("select.content", {
2757
2765
  elevation
2758
2766
  }, classNames),
2759
2767
  position: "popper",
@@ -2764,7 +2772,7 @@ var SelectScrollUpButton2 = /* @__PURE__ */ forwardRef24(({ classNames, children
2764
2772
  const { tx } = useThemeContext();
2765
2773
  return /* @__PURE__ */ React28.createElement(SelectPrimitive.SelectScrollUpButton, {
2766
2774
  ...props,
2767
- className: tx("select.scrollButton", "select__scroll-button--up", {}, classNames),
2775
+ className: tx("select.scrollButton", {}, classNames),
2768
2776
  ref: forwardedRef
2769
2777
  }, children ?? /* @__PURE__ */ React28.createElement(Icon, {
2770
2778
  size: 3,
@@ -2775,7 +2783,7 @@ var SelectScrollDownButton2 = /* @__PURE__ */ forwardRef24(({ classNames, childr
2775
2783
  const { tx } = useThemeContext();
2776
2784
  return /* @__PURE__ */ React28.createElement(SelectPrimitive.SelectScrollDownButton, {
2777
2785
  ...props,
2778
- className: tx("select.scrollButton", "select__scroll-button--down", {}, classNames),
2786
+ className: tx("select.scrollButton", {}, classNames),
2779
2787
  ref: forwardedRef
2780
2788
  }, children ?? /* @__PURE__ */ React28.createElement(Icon, {
2781
2789
  size: 3,
@@ -2786,7 +2794,7 @@ var SelectViewport2 = /* @__PURE__ */ forwardRef24(({ classNames, children, ...p
2786
2794
  const { tx } = useThemeContext();
2787
2795
  return /* @__PURE__ */ React28.createElement(SelectPrimitive.SelectViewport, {
2788
2796
  ...props,
2789
- className: tx("select.viewport", "select__viewport", {}, classNames),
2797
+ className: tx("select.viewport", {}, classNames),
2790
2798
  ref: forwardedRef
2791
2799
  }, children);
2792
2800
  });
@@ -2794,7 +2802,7 @@ var SelectItem = /* @__PURE__ */ forwardRef24(({ classNames, ...props }, forward
2794
2802
  const { tx } = useThemeContext();
2795
2803
  return /* @__PURE__ */ React28.createElement(SelectPrimitive.Item, {
2796
2804
  ...props,
2797
- className: tx("select.item", "option", {}, classNames),
2805
+ className: tx("select.item", {}, classNames),
2798
2806
  ref: forwardedRef
2799
2807
  });
2800
2808
  });
@@ -2803,7 +2811,7 @@ var SelectItemIndicator = /* @__PURE__ */ forwardRef24(({ classNames, children,
2803
2811
  const { tx } = useThemeContext();
2804
2812
  return /* @__PURE__ */ React28.createElement(SelectPrimitive.ItemIndicator, {
2805
2813
  ...props,
2806
- className: tx("select.itemIndicator", "option__indicator", {}, classNames),
2814
+ className: tx("select.itemIndicator", {}, classNames),
2807
2815
  ref: forwardedRef
2808
2816
  }, children);
2809
2817
  });
@@ -2811,7 +2819,7 @@ var SelectOption = /* @__PURE__ */ forwardRef24(({ children, classNames, ...prop
2811
2819
  const { tx } = useThemeContext();
2812
2820
  return /* @__PURE__ */ React28.createElement(SelectPrimitive.Item, {
2813
2821
  ...props,
2814
- className: tx("select.item", "option", {}, classNames),
2822
+ className: tx("select.item", {}, classNames),
2815
2823
  ref: forwardedRef
2816
2824
  }, /* @__PURE__ */ React28.createElement(SelectPrimitive.ItemText, null, children), /* @__PURE__ */ React28.createElement("span", {
2817
2825
  className: "grow is-1"
@@ -2825,7 +2833,7 @@ var SelectSeparator = /* @__PURE__ */ forwardRef24(({ classNames, ...props }, fo
2825
2833
  const { tx } = useThemeContext();
2826
2834
  return /* @__PURE__ */ React28.createElement(SelectPrimitive.Separator, {
2827
2835
  ...props,
2828
- className: tx("select.separator", "select__separator", {}, classNames),
2836
+ className: tx("select.separator", {}, classNames),
2829
2837
  ref: forwardedRef
2830
2838
  });
2831
2839
  });
@@ -2833,7 +2841,7 @@ var SelectArrow = /* @__PURE__ */ forwardRef24(({ classNames, ...props }, forwar
2833
2841
  const { tx } = useThemeContext();
2834
2842
  return /* @__PURE__ */ React28.createElement(SelectPrimitive.Arrow, {
2835
2843
  ...props,
2836
- className: tx("select.arrow", "select__arrow", {}, classNames),
2844
+ className: tx("select.arrow", {}, classNames),
2837
2845
  ref: forwardedRef
2838
2846
  });
2839
2847
  });
@@ -2866,7 +2874,7 @@ var Separator4 = /* @__PURE__ */ forwardRef25(({ classNames, orientation = "hori
2866
2874
  return /* @__PURE__ */ React29.createElement(SeparatorPrimitive, {
2867
2875
  orientation,
2868
2876
  ...props,
2869
- className: tx("separator.root", "separator", {
2877
+ className: tx("separator.root", {
2870
2878
  orientation,
2871
2879
  subdued
2872
2880
  }, classNames),
@@ -2874,16 +2882,76 @@ var Separator4 = /* @__PURE__ */ forwardRef25(({ classNames, orientation = "hori
2874
2882
  });
2875
2883
  });
2876
2884
 
2885
+ // src/components/Skeleton/Skeleton.tsx
2886
+ import React30, { forwardRef as forwardRef26 } from "react";
2887
+ var Skeleton = /* @__PURE__ */ forwardRef26(({ classNames, variant = "default", ...props }, forwardedRef) => {
2888
+ const { tx } = useThemeContext();
2889
+ return /* @__PURE__ */ React30.createElement("div", {
2890
+ ...props,
2891
+ className: tx("skeleton.root", {
2892
+ variant
2893
+ }, classNames),
2894
+ ref: forwardedRef
2895
+ });
2896
+ });
2897
+
2898
+ // src/components/Splitter/Splitter.tsx
2899
+ import { createContextScope as createContextScope4 } from "@radix-ui/react-context";
2900
+ import React31, { forwardRef as forwardRef27 } from "react";
2901
+ import { mx as mx5 } from "@dxos/ui-theme";
2902
+ var SPLITTER_NAME = "Splitter";
2903
+ var [createSplitterContext, createSplitterScope] = createContextScope4(SPLITTER_NAME);
2904
+ var [SplitterProvider, useSplitterContext] = createSplitterContext(SPLITTER_NAME);
2905
+ var ROOT_NAME = "Splitter.Root";
2906
+ var Root5 = /* @__PURE__ */ forwardRef27(({ __scopeSplitter, classNames, mode = "upper", ratio = 0.5, transition = 250, children, ...rootProps }, forwardedRef) => {
2907
+ return /* @__PURE__ */ React31.createElement(SplitterProvider, {
2908
+ scope: __scopeSplitter,
2909
+ mode,
2910
+ ratio,
2911
+ transition
2912
+ }, /* @__PURE__ */ React31.createElement("div", {
2913
+ role: "none",
2914
+ ...rootProps,
2915
+ ref: forwardedRef,
2916
+ className: mx5("relative bs-full overflow-hidden", classNames)
2917
+ }, children));
2918
+ });
2919
+ Root5.displayName = ROOT_NAME;
2920
+ var PANEL_NAME = "Splitter.Panel";
2921
+ var Panel = /* @__PURE__ */ forwardRef27(({ __scopeSplitter, classNames, children, position, style, ...panelProps }, forwardedRef) => {
2922
+ const context = useSplitterContext(PANEL_NAME, __scopeSplitter);
2923
+ const { mode, ratio, transition } = context;
2924
+ const isUpper = position === "upper";
2925
+ const top = isUpper ? "0%" : mode === "upper" ? "100%" : mode === "lower" ? "0%" : `${ratio * 100}%`;
2926
+ const height = isUpper ? mode === "upper" ? "100%" : mode === "lower" ? "0%" : `${ratio * 100}%` : mode === "lower" ? "100%" : mode === "upper" ? "0%" : `${(1 - ratio) * 100}%`;
2927
+ return /* @__PURE__ */ React31.createElement("div", {
2928
+ ...panelProps,
2929
+ ref: forwardedRef,
2930
+ className: mx5("absolute inset-inline-0 flex flex-col overflow-hidden", classNames),
2931
+ style: {
2932
+ top,
2933
+ height,
2934
+ transition: `top ${transition}ms, height ${transition}ms ease-out`,
2935
+ ...style
2936
+ }
2937
+ }, children);
2938
+ });
2939
+ Panel.displayName = PANEL_NAME;
2940
+ var Splitter = {
2941
+ Root: Root5,
2942
+ Panel
2943
+ };
2944
+
2877
2945
  // src/components/Tag/Tag.tsx
2878
2946
  import { Primitive as Primitive12 } from "@radix-ui/react-primitive";
2879
2947
  import { Slot as Slot13 } from "@radix-ui/react-slot";
2880
- import React30, { forwardRef as forwardRef26 } from "react";
2881
- var Tag = /* @__PURE__ */ forwardRef26(({ asChild, palette = "neutral", classNames, ...props }, forwardedRef) => {
2948
+ import React32, { forwardRef as forwardRef28 } from "react";
2949
+ var Tag = /* @__PURE__ */ forwardRef28(({ asChild, palette = "neutral", classNames, ...props }, forwardedRef) => {
2882
2950
  const { tx } = useThemeContext();
2883
- const Root6 = asChild ? Slot13 : Primitive12.span;
2884
- return /* @__PURE__ */ React30.createElement(Root6, {
2951
+ const Root8 = asChild ? Slot13 : Primitive12.span;
2952
+ return /* @__PURE__ */ React32.createElement(Root8, {
2885
2953
  ...props,
2886
- className: tx("tag.root", "dx-tag", {
2954
+ className: tx("tag.root", {
2887
2955
  palette
2888
2956
  }, classNames),
2889
2957
  "data-hue": palette,
@@ -2895,58 +2963,58 @@ var Tag = /* @__PURE__ */ forwardRef26(({ asChild, palette = "neutral", classNam
2895
2963
  import { Primitive as Primitive13 } from "@radix-ui/react-primitive";
2896
2964
  import { Slot as Slot14 } from "@radix-ui/react-slot";
2897
2965
  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";
2898
- import React31, { forwardRef as forwardRef27 } from "react";
2966
+ import React33, { forwardRef as forwardRef29 } from "react";
2899
2967
  var ToastProvider = ToastProviderPrimitive;
2900
- var ToastViewport = /* @__PURE__ */ forwardRef27(({ classNames, ...props }, forwardedRef) => {
2968
+ var ToastViewport = /* @__PURE__ */ forwardRef29(({ classNames, ...props }, forwardedRef) => {
2901
2969
  const { tx } = useThemeContext();
2902
- return /* @__PURE__ */ React31.createElement(ToastViewportPrimitive, {
2903
- className: tx("toast.viewport", "toast-viewport", {}, classNames),
2970
+ return /* @__PURE__ */ React33.createElement(ToastViewportPrimitive, {
2971
+ className: tx("toast.viewport", {}, classNames),
2904
2972
  ref: forwardedRef
2905
2973
  });
2906
2974
  });
2907
- var ToastRoot = /* @__PURE__ */ forwardRef27(({ classNames, children, ...props }, forwardedRef) => {
2975
+ var ToastRoot = /* @__PURE__ */ forwardRef29(({ classNames, children, ...props }, forwardedRef) => {
2908
2976
  const { tx } = useThemeContext();
2909
- return /* @__PURE__ */ React31.createElement(ToastRootPrimitive, {
2977
+ return /* @__PURE__ */ React33.createElement(ToastRootPrimitive, {
2910
2978
  ...props,
2911
- className: tx("toast.root", "toast", {}, classNames),
2979
+ className: tx("toast.root", {}, classNames),
2912
2980
  ref: forwardedRef
2913
- }, /* @__PURE__ */ React31.createElement(ElevationProvider, {
2981
+ }, /* @__PURE__ */ React33.createElement(ElevationProvider, {
2914
2982
  elevation: "toast"
2915
2983
  }, children));
2916
2984
  });
2917
- var ToastBody = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props }, forwardedRef) => {
2985
+ var ToastBody = /* @__PURE__ */ forwardRef29(({ asChild, classNames, ...props }, forwardedRef) => {
2918
2986
  const { tx } = useThemeContext();
2919
- const Root6 = asChild ? Slot14 : Primitive13.div;
2920
- return /* @__PURE__ */ React31.createElement(Root6, {
2987
+ const Root8 = asChild ? Slot14 : Primitive13.div;
2988
+ return /* @__PURE__ */ React33.createElement(Root8, {
2921
2989
  ...props,
2922
- className: tx("toast.body", "toast__body", {}, classNames),
2990
+ className: tx("toast.body", {}, classNames),
2923
2991
  ref: forwardedRef
2924
2992
  });
2925
2993
  });
2926
- var ToastTitle = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props }, forwardedRef) => {
2994
+ var ToastTitle = /* @__PURE__ */ forwardRef29(({ asChild, classNames, ...props }, forwardedRef) => {
2927
2995
  const { tx } = useThemeContext();
2928
- const Root6 = asChild ? Slot14 : ToastTitlePrimitive;
2929
- return /* @__PURE__ */ React31.createElement(Root6, {
2996
+ const Root8 = asChild ? Slot14 : ToastTitlePrimitive;
2997
+ return /* @__PURE__ */ React33.createElement(Root8, {
2930
2998
  ...props,
2931
- className: tx("toast.title", "toast__title", {}, classNames),
2999
+ className: tx("toast.title", {}, classNames),
2932
3000
  ref: forwardedRef
2933
3001
  });
2934
3002
  });
2935
- var ToastDescription = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props }, forwardedRef) => {
3003
+ var ToastDescription = /* @__PURE__ */ forwardRef29(({ asChild, classNames, ...props }, forwardedRef) => {
2936
3004
  const { tx } = useThemeContext();
2937
- const Root6 = asChild ? Slot14 : ToastDescriptionPrimitive;
2938
- return /* @__PURE__ */ React31.createElement(Root6, {
3005
+ const Root8 = asChild ? Slot14 : ToastDescriptionPrimitive;
3006
+ return /* @__PURE__ */ React33.createElement(Root8, {
2939
3007
  ...props,
2940
- className: tx("toast.description", "toast__description", {}, classNames),
3008
+ className: tx("toast.description", {}, classNames),
2941
3009
  ref: forwardedRef
2942
3010
  });
2943
3011
  });
2944
- var ToastActions = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props }, forwardedRef) => {
3012
+ var ToastActions = /* @__PURE__ */ forwardRef29(({ asChild, classNames, ...props }, forwardedRef) => {
2945
3013
  const { tx } = useThemeContext();
2946
- const Root6 = asChild ? Slot14 : Primitive13.div;
2947
- return /* @__PURE__ */ React31.createElement(Root6, {
3014
+ const Root8 = asChild ? Slot14 : Primitive13.div;
3015
+ return /* @__PURE__ */ React33.createElement(Root8, {
2948
3016
  ...props,
2949
- className: tx("toast.actions", "toast__actions", {}, classNames),
3017
+ className: tx("toast.actions", {}, classNames),
2950
3018
  ref: forwardedRef
2951
3019
  });
2952
3020
  });
@@ -2966,75 +3034,76 @@ var Toast = {
2966
3034
 
2967
3035
  // src/components/Toolbar/Toolbar.tsx
2968
3036
  import * as ToolbarPrimitive from "@radix-ui/react-toolbar";
2969
- import React32, { Fragment, forwardRef as forwardRef28 } from "react";
2970
- var ToolbarRoot = /* @__PURE__ */ forwardRef28(({ classNames, children, disabled, layoutManaged, textBlockWidth: textBlockWidthProp, ...props }, forwardedRef) => {
3037
+ import React34, { Fragment, forwardRef as forwardRef30 } from "react";
3038
+ var ToolbarRoot = /* @__PURE__ */ forwardRef30(({ classNames, children, density, disabled, layoutManaged, textBlockWidth: textBlockWidthProp, ...props }, forwardedRef) => {
2971
3039
  const { tx } = useThemeContext();
2972
3040
  const InnerRoot = textBlockWidthProp ? "div" : Fragment;
2973
3041
  const innerRootProps = textBlockWidthProp ? {
2974
3042
  role: "none",
2975
- className: tx("toolbar.inner", "toolbar", {
3043
+ className: tx("toolbar.inner", {
2976
3044
  layoutManaged
2977
3045
  }, classNames)
2978
3046
  } : {};
2979
- return /* @__PURE__ */ React32.createElement(ToolbarPrimitive.Root, {
3047
+ return /* @__PURE__ */ React34.createElement(ToolbarPrimitive.Root, {
2980
3048
  ...props,
2981
3049
  "data-arrow-keys": props.orientation === "vertical" ? "up down" : "left right",
2982
- className: tx("toolbar.root", "toolbar", {
2983
- layoutManaged,
2984
- disabled
3050
+ className: tx("toolbar.root", {
3051
+ density,
3052
+ disabled,
3053
+ layoutManaged
2985
3054
  }, classNames),
2986
3055
  ref: forwardedRef
2987
- }, /* @__PURE__ */ React32.createElement(InnerRoot, innerRootProps, children));
3056
+ }, /* @__PURE__ */ React34.createElement(InnerRoot, innerRootProps, children));
2988
3057
  });
2989
- var ToolbarButton = /* @__PURE__ */ forwardRef28((props, forwardedRef) => {
2990
- return /* @__PURE__ */ React32.createElement(ToolbarPrimitive.Button, {
3058
+ var ToolbarButton = /* @__PURE__ */ forwardRef30((props, forwardedRef) => {
3059
+ return /* @__PURE__ */ React34.createElement(ToolbarPrimitive.Button, {
2991
3060
  asChild: true
2992
- }, /* @__PURE__ */ React32.createElement(Button, {
3061
+ }, /* @__PURE__ */ React34.createElement(Button, {
2993
3062
  ...props,
2994
3063
  ref: forwardedRef
2995
3064
  }));
2996
3065
  });
2997
- var ToolbarIconButton = /* @__PURE__ */ forwardRef28((props, forwardedRef) => {
2998
- return /* @__PURE__ */ React32.createElement(ToolbarPrimitive.Button, {
3066
+ var ToolbarIconButton = /* @__PURE__ */ forwardRef30((props, forwardedRef) => {
3067
+ return /* @__PURE__ */ React34.createElement(ToolbarPrimitive.Button, {
2999
3068
  asChild: true
3000
- }, /* @__PURE__ */ React32.createElement(IconButton, {
3069
+ }, /* @__PURE__ */ React34.createElement(IconButton, {
3001
3070
  ...props,
3002
3071
  noTooltip: true,
3003
3072
  ref: forwardedRef
3004
3073
  }));
3005
3074
  });
3006
- var ToolbarToggle = /* @__PURE__ */ forwardRef28((props, forwardedRef) => {
3007
- return /* @__PURE__ */ React32.createElement(ToolbarPrimitive.Button, {
3075
+ var ToolbarToggle = /* @__PURE__ */ forwardRef30((props, forwardedRef) => {
3076
+ return /* @__PURE__ */ React34.createElement(ToolbarPrimitive.Button, {
3008
3077
  asChild: true
3009
- }, /* @__PURE__ */ React32.createElement(Toggle, {
3078
+ }, /* @__PURE__ */ React34.createElement(Toggle, {
3010
3079
  ...props,
3011
3080
  ref: forwardedRef
3012
3081
  }));
3013
3082
  });
3014
- var ToolbarLink = /* @__PURE__ */ forwardRef28((props, forwardedRef) => {
3015
- return /* @__PURE__ */ React32.createElement(ToolbarPrimitive.Link, {
3083
+ var ToolbarLink = /* @__PURE__ */ forwardRef30((props, forwardedRef) => {
3084
+ return /* @__PURE__ */ React34.createElement(ToolbarPrimitive.Link, {
3016
3085
  asChild: true
3017
- }, /* @__PURE__ */ React32.createElement(Link, {
3086
+ }, /* @__PURE__ */ React34.createElement(Link, {
3018
3087
  ...props,
3019
3088
  ref: forwardedRef
3020
3089
  }));
3021
3090
  });
3022
- var ToolbarToggleGroup2 = /* @__PURE__ */ forwardRef28(({ classNames, children, elevation, ...props }, forwardedRef) => {
3023
- return /* @__PURE__ */ React32.createElement(ToolbarPrimitive.ToolbarToggleGroup, {
3091
+ var ToolbarToggleGroup2 = /* @__PURE__ */ forwardRef30(({ classNames, children, elevation, ...props }, forwardedRef) => {
3092
+ return /* @__PURE__ */ React34.createElement(ToolbarPrimitive.ToolbarToggleGroup, {
3024
3093
  ...props,
3025
3094
  asChild: true
3026
- }, /* @__PURE__ */ React32.createElement(ButtonGroup, {
3095
+ }, /* @__PURE__ */ React34.createElement(ButtonGroup, {
3027
3096
  classNames,
3028
3097
  children,
3029
3098
  elevation,
3030
3099
  ref: forwardedRef
3031
3100
  }));
3032
3101
  });
3033
- var ToolbarToggleGroupItem = /* @__PURE__ */ forwardRef28(({ variant, density, elevation, classNames, children, ...props }, forwardedRef) => {
3034
- return /* @__PURE__ */ React32.createElement(ToolbarPrimitive.ToolbarToggleItem, {
3102
+ var ToolbarToggleGroupItem = /* @__PURE__ */ forwardRef30(({ variant, density, elevation, classNames, children, ...props }, forwardedRef) => {
3103
+ return /* @__PURE__ */ React34.createElement(ToolbarPrimitive.ToolbarToggleItem, {
3035
3104
  ...props,
3036
3105
  asChild: true
3037
- }, /* @__PURE__ */ React32.createElement(Button, {
3106
+ }, /* @__PURE__ */ React34.createElement(Button, {
3038
3107
  variant,
3039
3108
  density,
3040
3109
  elevation,
@@ -3043,11 +3112,11 @@ var ToolbarToggleGroupItem = /* @__PURE__ */ forwardRef28(({ variant, density, e
3043
3112
  ref: forwardedRef
3044
3113
  }));
3045
3114
  });
3046
- var ToolbarToggleGroupIconItem = /* @__PURE__ */ forwardRef28(({ variant, density, elevation, classNames, icon, label, iconOnly, ...props }, forwardedRef) => {
3047
- return /* @__PURE__ */ React32.createElement(ToolbarPrimitive.ToolbarToggleItem, {
3115
+ var ToolbarToggleGroupIconItem = /* @__PURE__ */ forwardRef30(({ variant, density, elevation, classNames, icon, label, iconOnly, ...props }, forwardedRef) => {
3116
+ return /* @__PURE__ */ React34.createElement(ToolbarPrimitive.ToolbarToggleItem, {
3048
3117
  ...props,
3049
3118
  asChild: true
3050
- }, /* @__PURE__ */ React32.createElement(IconButton, {
3119
+ }, /* @__PURE__ */ React34.createElement(IconButton, {
3051
3120
  variant,
3052
3121
  density,
3053
3122
  elevation,
@@ -3058,13 +3127,13 @@ var ToolbarToggleGroupIconItem = /* @__PURE__ */ forwardRef28(({ variant, densit
3058
3127
  ref: forwardedRef
3059
3128
  }));
3060
3129
  });
3061
- var ToolbarSeparator = /* @__PURE__ */ forwardRef28(({ variant = "line", ...props }, forwardedRef) => {
3062
- return variant === "line" ? /* @__PURE__ */ React32.createElement(ToolbarPrimitive.Separator, {
3130
+ var ToolbarSeparator = /* @__PURE__ */ forwardRef30(({ variant = "line", ...props }, forwardedRef) => {
3131
+ return variant === "line" ? /* @__PURE__ */ React34.createElement(ToolbarPrimitive.Separator, {
3063
3132
  asChild: true
3064
- }, /* @__PURE__ */ React32.createElement(Separator4, {
3133
+ }, /* @__PURE__ */ React34.createElement(Separator4, {
3065
3134
  ...props,
3066
3135
  ref: forwardedRef
3067
- })) : /* @__PURE__ */ React32.createElement(ToolbarPrimitive.Separator, {
3136
+ })) : /* @__PURE__ */ React34.createElement(ToolbarPrimitive.Separator, {
3068
3137
  className: "grow",
3069
3138
  ref: forwardedRef
3070
3139
  });
@@ -3080,6 +3149,78 @@ var Toolbar = {
3080
3149
  ToggleGroupIconItem: ToolbarToggleGroupIconItem,
3081
3150
  Separator: ToolbarSeparator
3082
3151
  };
3152
+
3153
+ // src/primitives/Container/Container.tsx
3154
+ import { createContext as createContext10 } from "@radix-ui/react-context";
3155
+ import { Primitive as Primitive14 } from "@radix-ui/react-primitive";
3156
+ import { Slot as Slot15 } from "@radix-ui/react-slot";
3157
+ import React35, { forwardRef as forwardRef31 } from "react";
3158
+ var [ContainerProvider, useContext4] = createContext10("Container");
3159
+ var Root7 = ({ variant, children }) => {
3160
+ return /* @__PURE__ */ React35.createElement(ContainerProvider, {
3161
+ variant
3162
+ }, children);
3163
+ };
3164
+ var CONTAINER_COLUMN_NAME = "Container.Column";
3165
+ var Column = /* @__PURE__ */ forwardRef31(({ classNames, className, asChild, role = "none", children, variant, ...props }, ref) => {
3166
+ const { tx } = useThemeContext();
3167
+ const Root8 = asChild ? Slot15 : Primitive14.div;
3168
+ const context = useContext4(CONTAINER_COLUMN_NAME);
3169
+ return /* @__PURE__ */ React35.createElement(Root8, {
3170
+ ...props,
3171
+ className: tx("container.column", {
3172
+ variant: variant ?? context.variant
3173
+ }, [
3174
+ className,
3175
+ classNames
3176
+ ]),
3177
+ role,
3178
+ ref
3179
+ }, children);
3180
+ });
3181
+ Column.displayName = CONTAINER_COLUMN_NAME;
3182
+ var Container = {
3183
+ Root: Root7,
3184
+ Column
3185
+ };
3186
+
3187
+ // src/primitives/Container/Layout.tsx
3188
+ import React36, { forwardRef as forwardRef32, useMemo as useMemo6 } from "react";
3189
+ import { mx as mx6 } from "@dxos/ui-theme";
3190
+ var Main2 = /* @__PURE__ */ forwardRef32(({ classNames, children, role, toolbar, statusbar }, forwardedRef) => {
3191
+ const style = useMemo6(() => ({
3192
+ gridTemplateRows: [
3193
+ toolbar && "var(--toolbar-size)",
3194
+ "1fr",
3195
+ statusbar && "var(--statusbar-size)"
3196
+ ].filter(Boolean).join(" ")
3197
+ }), [
3198
+ toolbar,
3199
+ statusbar
3200
+ ]);
3201
+ return /* @__PURE__ */ React36.createElement("div", {
3202
+ ref: forwardedRef,
3203
+ role: role ?? "none",
3204
+ style,
3205
+ className: mx6("bs-full is-full grid grid-cols-[100%] overflow-hidden", toolbar && [
3206
+ "[.dx-main-mobile-layout_&>.dx-toolbar]:pli-3 [&>.dx-toolbar]:relative",
3207
+ "[&>.dx-toolbar]:border-be [&>.dx-toolbar]:border-subduedSeparator"
3208
+ ], classNames)
3209
+ }, children);
3210
+ });
3211
+ var Layout = {
3212
+ Main: Main2
3213
+ };
3214
+
3215
+ // src/primitives/Flex/Flex.tsx
3216
+ import React37 from "react";
3217
+ import { mx as mx7 } from "@dxos/ui-theme";
3218
+ var Flex = ({ children, classNames, role, column, grow }) => {
3219
+ return /* @__PURE__ */ React37.createElement("div", {
3220
+ role: role ?? "none",
3221
+ className: mx7("flex", column && "flex-col", grow && "flex-1 overflow-hidden", classNames)
3222
+ }, children);
3223
+ };
3083
3224
  export {
3084
3225
  AlertDialog,
3085
3226
  AnchoredOverflow,
@@ -3090,6 +3231,7 @@ export {
3090
3231
  ButtonGroup,
3091
3232
  Callout,
3092
3233
  Clipboard,
3234
+ Container,
3093
3235
  ContextMenu2 as ContextMenu,
3094
3236
  DensityContext,
3095
3237
  DensityProvider,
@@ -3097,11 +3239,13 @@ export {
3097
3239
  DropdownMenu,
3098
3240
  ElevationContext,
3099
3241
  ElevationProvider,
3242
+ Flex,
3100
3243
  Icon,
3101
3244
  IconButton,
3102
3245
  Input,
3103
3246
  LIST_ITEM_NAME,
3104
3247
  LIST_NAME,
3248
+ Layout,
3105
3249
  Link,
3106
3250
  List,
3107
3251
  ListItem,
@@ -3112,6 +3256,8 @@ export {
3112
3256
  ScrollContainer,
3113
3257
  Select,
3114
3258
  Separator4 as Separator,
3259
+ Skeleton,
3260
+ Splitter,
3115
3261
  Status,
3116
3262
  Tag,
3117
3263
  ThemeContext,
@@ -3129,6 +3275,7 @@ export {
3129
3275
  Treegrid,
3130
3276
  createDropdownMenuScope,
3131
3277
  createPopoverScope,
3278
+ createSplitterScope,
3132
3279
  createTooltipScope,
3133
3280
  hasIosKeyboard,
3134
3281
  initialSafeArea,