@dxos/react-ui 0.8.2-main.fbd8ed0 → 0.8.2-staging.7ac8446
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.
- package/dist/lib/browser/index.mjs +1081 -1616
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +1404 -1941
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +1081 -1616
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/components/Avatars/Avatar.d.ts +2 -2
- package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
- package/dist/types/src/components/Avatars/Avatar.stories.d.ts +3 -3
- package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +1 -0
- package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
- package/dist/types/src/components/Buttons/Button.stories.d.ts +44 -10
- package/dist/types/src/components/Buttons/Button.stories.d.ts.map +1 -1
- package/dist/types/src/components/Buttons/IconButton.d.ts +5 -4
- package/dist/types/src/components/Buttons/IconButton.d.ts.map +1 -1
- package/dist/types/src/components/Buttons/IconButton.stories.d.ts +6 -7
- package/dist/types/src/components/Buttons/IconButton.stories.d.ts.map +1 -1
- package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +1 -1
- package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +4 -1
- package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +1 -1
- package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
- package/dist/types/src/components/Clipboard/CopyButton.d.ts +1 -2
- package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
- package/dist/types/src/components/Clipboard/index.d.ts +2 -2
- package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
- package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +2 -2
- package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/Dialogs/Dialog.d.ts +2 -2
- package/dist/types/src/components/Dialogs/Dialog.d.ts.map +1 -1
- package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +2 -2
- package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.d.ts +1 -1
- package/dist/types/src/components/Input/Input.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.stories.d.ts +159 -33
- package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
- package/dist/types/src/components/Lists/ListDropIndicator.d.ts.map +1 -1
- package/dist/types/src/components/Lists/Tree.stories.d.ts.map +1 -1
- package/dist/types/src/components/Lists/TreeDropIndicator.d.ts.map +1 -1
- package/dist/types/src/components/Lists/Treegrid.stories.d.ts +1 -1
- package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +1 -1
- package/dist/types/src/components/Main/Main.d.ts.map +1 -1
- package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
- package/dist/types/src/components/Main/useSwipeToDismiss.d.ts.map +1 -1
- package/dist/types/src/components/Message/Message.stories.d.ts +2 -2
- package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
- package/dist/types/src/components/Popover/Popover.d.ts +6 -15
- package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
- package/dist/types/src/components/Popover/Popover.stories.d.ts +1 -5
- package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
- package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +1 -1
- package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
- package/dist/types/src/components/Toast/Toast.stories.d.ts +2 -2
- package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Tooltip/Tooltip.d.ts +20 -94
- package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +17 -41
- package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
- package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
- package/dist/types/src/hooks/useIconHref.d.ts.map +1 -1
- package/dist/types/src/hooks/useSafeCollisionPadding.d.ts.map +1 -1
- package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
- package/dist/types/src/playground/Controls.stories.d.ts +1 -1
- package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
- package/dist/types/src/testing/decorators/withVariants.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -14
- package/src/components/Avatars/Avatar.stories.tsx +27 -27
- package/src/components/Avatars/Avatar.tsx +13 -17
- package/src/components/Avatars/AvatarGroup.stories.tsx +5 -4
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +2 -2
- package/src/components/Buttons/Button.stories.tsx +14 -19
- package/src/components/Buttons/IconButton.stories.tsx +10 -9
- package/src/components/Buttons/IconButton.tsx +33 -8
- package/src/components/Buttons/Toggle.stories.tsx +2 -2
- package/src/components/Buttons/ToggleGroup.stories.tsx +7 -3
- package/src/components/Clipboard/CopyButton.tsx +24 -22
- package/src/components/Dialogs/AlertDialog.stories.tsx +11 -4
- package/src/components/Dialogs/Dialog.stories.tsx +3 -3
- package/src/components/Dialogs/Dialog.tsx +4 -8
- package/src/components/Input/Input.stories.tsx +56 -67
- package/src/components/Input/Input.tsx +0 -1
- package/src/components/Lists/Tree.stories.tsx +2 -2
- package/src/components/Lists/Treegrid.stories.tsx +12 -12
- package/src/components/Main/Main.stories.tsx +2 -2
- package/src/components/Menus/ContextMenu.stories.tsx +2 -2
- package/src/components/Menus/DropdownMenu.stories.tsx +2 -2
- package/src/components/Message/Message.stories.tsx +3 -3
- package/src/components/Popover/Popover.stories.tsx +2 -2
- package/src/components/Popover/Popover.tsx +4 -8
- package/src/components/ScrollArea/ScrollArea.stories.tsx +2 -2
- package/src/components/ScrollArea/ScrollArea.tsx +0 -3
- package/src/components/Toast/Toast.stories.tsx +10 -15
- package/src/components/Toolbar/Toolbar.stories.tsx +2 -2
- package/src/components/Tooltip/Tooltip.stories.tsx +18 -43
- package/src/components/Tooltip/Tooltip.tsx +58 -748
- package/src/components/index.ts +1 -1
- package/src/playground/Controls.stories.tsx +2 -2
- package/src/playground/Typography.stories.tsx +2 -2
- package/dist/types/src/playground/Custom.stories.d.ts +0 -8
- package/dist/types/src/playground/Custom.stories.d.ts.map +0 -1
- package/src/playground/Custom.stories.tsx +0 -137
|
@@ -152,8 +152,8 @@ var useVisualViewport = (deps) => {
|
|
|
152
152
|
// packages/ui/react-ui/src/components/AnchoredOverflow/AnchoredOverflow.tsx
|
|
153
153
|
var AnchoredOverflowRoot = /* @__PURE__ */ forwardRef(({ asChild, classNames, children, ...props }, forwardedRef) => {
|
|
154
154
|
const { tx } = useThemeContext();
|
|
155
|
-
const
|
|
156
|
-
return /* @__PURE__ */ React2.createElement(
|
|
155
|
+
const Root5 = asChild ? Slot : Primitive.div;
|
|
156
|
+
return /* @__PURE__ */ React2.createElement(Root5, {
|
|
157
157
|
role: "none",
|
|
158
158
|
...props,
|
|
159
159
|
className: tx("anchoredOverflow.root", "overflow-anchored", {}, classNames),
|
|
@@ -162,8 +162,8 @@ var AnchoredOverflowRoot = /* @__PURE__ */ forwardRef(({ asChild, classNames, ch
|
|
|
162
162
|
});
|
|
163
163
|
var AnchoredOverflowAnchor = /* @__PURE__ */ forwardRef(({ asChild, classNames, children, ...props }, forwardedRef) => {
|
|
164
164
|
const { tx } = useThemeContext();
|
|
165
|
-
const
|
|
166
|
-
return /* @__PURE__ */ React2.createElement(
|
|
165
|
+
const Root5 = asChild ? Slot : Primitive.div;
|
|
166
|
+
return /* @__PURE__ */ React2.createElement(Root5, {
|
|
167
167
|
role: "none",
|
|
168
168
|
...props,
|
|
169
169
|
className: tx("anchoredOverflow.anchor", "overflow-anchor", {}, classNames),
|
|
@@ -200,23 +200,22 @@ var DxAvatar = createComponent({
|
|
|
200
200
|
elementClass: NaturalDxAvatar,
|
|
201
201
|
react: React3
|
|
202
202
|
});
|
|
203
|
-
var AvatarContent =
|
|
203
|
+
var AvatarContent = ({ icon, classNames, ...props }) => {
|
|
204
204
|
const href = useIconHref(icon);
|
|
205
205
|
const { labelId, descriptionId } = useAvatarContext("AvatarContent");
|
|
206
206
|
return /* @__PURE__ */ React3.createElement(DxAvatar, {
|
|
207
207
|
...props,
|
|
208
208
|
icon: href,
|
|
209
|
-
|
|
209
|
+
labelId,
|
|
210
210
|
"aria-describedby": descriptionId,
|
|
211
|
-
rootClassName: mx(classNames)
|
|
212
|
-
ref: forwardedRef
|
|
211
|
+
rootClassName: mx(classNames)
|
|
213
212
|
});
|
|
214
|
-
}
|
|
213
|
+
};
|
|
215
214
|
var AvatarLabel = /* @__PURE__ */ forwardRef2(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
|
|
216
|
-
const
|
|
215
|
+
const Root5 = asChild ? Slot2 : Primitive2.span;
|
|
217
216
|
const { tx } = useThemeContext();
|
|
218
217
|
const { labelId } = useAvatarContext("AvatarLabel");
|
|
219
|
-
return /* @__PURE__ */ React3.createElement(
|
|
218
|
+
return /* @__PURE__ */ React3.createElement(Root5, {
|
|
220
219
|
...props,
|
|
221
220
|
id: labelId,
|
|
222
221
|
ref: forwardedRef,
|
|
@@ -226,10 +225,10 @@ var AvatarLabel = /* @__PURE__ */ forwardRef2(({ asChild, srOnly, classNames, ..
|
|
|
226
225
|
});
|
|
227
226
|
});
|
|
228
227
|
var AvatarDescription = /* @__PURE__ */ forwardRef2(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
|
|
229
|
-
const
|
|
228
|
+
const Root5 = asChild ? Slot2 : Primitive2.span;
|
|
230
229
|
const { tx } = useThemeContext();
|
|
231
230
|
const { descriptionId } = useAvatarContext("AvatarDescription");
|
|
232
|
-
return /* @__PURE__ */ React3.createElement(
|
|
231
|
+
return /* @__PURE__ */ React3.createElement(Root5, {
|
|
233
232
|
...props,
|
|
234
233
|
id: descriptionId,
|
|
235
234
|
ref: forwardedRef,
|
|
@@ -257,8 +256,8 @@ import { Slot as Slot3 } from "@radix-ui/react-slot";
|
|
|
257
256
|
import React4, { forwardRef as forwardRef3 } from "react";
|
|
258
257
|
var Link = /* @__PURE__ */ forwardRef3(({ asChild, variant, classNames, ...props }, forwardedRef) => {
|
|
259
258
|
const { tx } = useThemeContext();
|
|
260
|
-
const
|
|
261
|
-
return /* @__PURE__ */ React4.createElement(
|
|
259
|
+
const Root5 = asChild ? Slot3 : Primitive3.a;
|
|
260
|
+
return /* @__PURE__ */ React4.createElement(Root5, {
|
|
262
261
|
...props,
|
|
263
262
|
className: tx("link.root", "link", {
|
|
264
263
|
variant
|
|
@@ -270,8 +269,8 @@ var Link = /* @__PURE__ */ forwardRef3(({ asChild, variant, classNames, ...props
|
|
|
270
269
|
// packages/ui/react-ui/src/components/Breadcrumb/Breadcrumb.tsx
|
|
271
270
|
var BreadcrumbRoot = /* @__PURE__ */ forwardRef4(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
272
271
|
const { tx } = useThemeContext();
|
|
273
|
-
const
|
|
274
|
-
return /* @__PURE__ */ React5.createElement(
|
|
272
|
+
const Root5 = asChild ? Slot4 : Primitive4.div;
|
|
273
|
+
return /* @__PURE__ */ React5.createElement(Root5, {
|
|
275
274
|
role: "navigation",
|
|
276
275
|
...props,
|
|
277
276
|
className: tx("breadcrumb.root", "breadcrumb", {}, classNames),
|
|
@@ -280,8 +279,8 @@ var BreadcrumbRoot = /* @__PURE__ */ forwardRef4(({ asChild, classNames, ...prop
|
|
|
280
279
|
});
|
|
281
280
|
var BreadcrumbList = /* @__PURE__ */ forwardRef4(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
282
281
|
const { tx } = useThemeContext();
|
|
283
|
-
const
|
|
284
|
-
return /* @__PURE__ */ React5.createElement(
|
|
282
|
+
const Root5 = asChild ? Slot4 : Primitive4.ol;
|
|
283
|
+
return /* @__PURE__ */ React5.createElement(Root5, {
|
|
285
284
|
role: "list",
|
|
286
285
|
...props,
|
|
287
286
|
className: tx("breadcrumb.list", "breadcrumb__list", {}, classNames),
|
|
@@ -290,8 +289,8 @@ var BreadcrumbList = /* @__PURE__ */ forwardRef4(({ asChild, classNames, ...prop
|
|
|
290
289
|
});
|
|
291
290
|
var BreadcrumbListItem = /* @__PURE__ */ forwardRef4(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
292
291
|
const { tx } = useThemeContext();
|
|
293
|
-
const
|
|
294
|
-
return /* @__PURE__ */ React5.createElement(
|
|
292
|
+
const Root5 = asChild ? Slot4 : Primitive4.li;
|
|
293
|
+
return /* @__PURE__ */ React5.createElement(Root5, {
|
|
295
294
|
role: "listitem",
|
|
296
295
|
...props,
|
|
297
296
|
className: tx("breadcrumb.listItem", "breadcrumb__list__item", {}, classNames),
|
|
@@ -299,16 +298,16 @@ var BreadcrumbListItem = /* @__PURE__ */ forwardRef4(({ asChild, classNames, ...
|
|
|
299
298
|
});
|
|
300
299
|
});
|
|
301
300
|
var BreadcrumbLink = /* @__PURE__ */ forwardRef4(({ asChild, ...props }, forwardedRef) => {
|
|
302
|
-
const
|
|
303
|
-
return /* @__PURE__ */ React5.createElement(
|
|
301
|
+
const Root5 = asChild ? Slot4 : Link;
|
|
302
|
+
return /* @__PURE__ */ React5.createElement(Root5, {
|
|
304
303
|
...props,
|
|
305
304
|
ref: forwardedRef
|
|
306
305
|
});
|
|
307
306
|
});
|
|
308
307
|
var BreadcrumbCurrent = /* @__PURE__ */ forwardRef4(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
309
308
|
const { tx } = useThemeContext();
|
|
310
|
-
const
|
|
311
|
-
return /* @__PURE__ */ React5.createElement(
|
|
309
|
+
const Root5 = asChild ? Slot4 : "h1";
|
|
310
|
+
return /* @__PURE__ */ React5.createElement(Root5, {
|
|
312
311
|
...props,
|
|
313
312
|
"aria-current": "page",
|
|
314
313
|
className: tx("breadcrumb.current", "breadcrumb__item__heading--current", {}, classNames),
|
|
@@ -350,8 +349,8 @@ var Button = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef5(({ classNames, chi
|
|
|
350
349
|
const { tx } = useThemeContext();
|
|
351
350
|
const elevation = useElevationContext(propsElevation);
|
|
352
351
|
const density = useDensityContext(propsDensity);
|
|
353
|
-
const
|
|
354
|
-
return /* @__PURE__ */ React6.createElement(
|
|
352
|
+
const Root5 = asChild ? Slot5 : Primitive5.button;
|
|
353
|
+
return /* @__PURE__ */ React6.createElement(Root5, {
|
|
355
354
|
ref,
|
|
356
355
|
...props,
|
|
357
356
|
"data-variant": variant,
|
|
@@ -373,8 +372,8 @@ Button.displayName = BUTTON_NAME;
|
|
|
373
372
|
var ButtonGroup = /* @__PURE__ */ forwardRef5(({ children, elevation: propsElevation, classNames, asChild, ...props }, forwardedRef) => {
|
|
374
373
|
const { tx } = useThemeContext();
|
|
375
374
|
const elevation = useElevationContext(propsElevation);
|
|
376
|
-
const
|
|
377
|
-
return /* @__PURE__ */ React6.createElement(
|
|
375
|
+
const Root5 = asChild ? Slot5 : Primitive5.div;
|
|
376
|
+
return /* @__PURE__ */ React6.createElement(Root5, {
|
|
378
377
|
role: "none",
|
|
379
378
|
...props,
|
|
380
379
|
className: tx("button.group", "button-group", {
|
|
@@ -388,7 +387,7 @@ var ButtonGroup = /* @__PURE__ */ forwardRef5(({ children, elevation: propsEleva
|
|
|
388
387
|
ButtonGroup.displayName = BUTTON_GROUP_NAME;
|
|
389
388
|
|
|
390
389
|
// packages/ui/react-ui/src/components/Buttons/IconButton.tsx
|
|
391
|
-
import React9, { forwardRef as forwardRef8 } from "react";
|
|
390
|
+
import React9, { forwardRef as forwardRef8, useState as useState4 } from "react";
|
|
392
391
|
|
|
393
392
|
// packages/ui/react-ui/src/components/Icon/Icon.tsx
|
|
394
393
|
import React7, { forwardRef as forwardRef6, memo as memo2 } from "react";
|
|
@@ -407,618 +406,98 @@ var Icon = /* @__PURE__ */ memo2(/* @__PURE__ */ forwardRef6(({ icon, classNames
|
|
|
407
406
|
}));
|
|
408
407
|
|
|
409
408
|
// packages/ui/react-ui/src/components/Tooltip/Tooltip.tsx
|
|
410
|
-
import {
|
|
411
|
-
import {
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
import {
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
import { Primitive as Primitive6 } from "@radix-ui/react-primitive";
|
|
420
|
-
import { Slottable } from "@radix-ui/react-slot";
|
|
421
|
-
import { useControllableState } from "@radix-ui/react-use-controllable-state";
|
|
422
|
-
import * as VisuallyHiddenPrimitive from "@radix-ui/react-visually-hidden";
|
|
423
|
-
import React8, { forwardRef as forwardRef7, useCallback as useCallback3, useEffect as useEffect2, useMemo, useRef, useState as useState4 } from "react";
|
|
424
|
-
var [createTooltipContext, createTooltipScope] = createContextScope("Tooltip", [
|
|
425
|
-
createPopperScope
|
|
426
|
-
]);
|
|
427
|
-
var usePopperScope = createPopperScope();
|
|
428
|
-
var DEFAULT_DELAY_DURATION = 700;
|
|
429
|
-
var TOOLTIP_OPEN = "tooltip.open";
|
|
430
|
-
var TOOLTIP_NAME = "Tooltip";
|
|
431
|
-
var [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);
|
|
432
|
-
var TooltipProvider = (props) => {
|
|
433
|
-
const { __scopeTooltip, children, open: openProp, defaultOpen = false, onOpenChange, disableHoverableContent = false, delayDuration = DEFAULT_DELAY_DURATION, skipDelayDuration = 300 } = props;
|
|
434
|
-
const isOpenDelayedRef = useRef(true);
|
|
435
|
-
const isPointerInTransitRef = useRef(false);
|
|
436
|
-
const skipDelayTimerRef = useRef(0);
|
|
437
|
-
useEffect2(() => {
|
|
438
|
-
const skipDelayTimer = skipDelayTimerRef.current;
|
|
439
|
-
return () => window.clearTimeout(skipDelayTimer);
|
|
440
|
-
}, []);
|
|
441
|
-
const popperScope = usePopperScope(__scopeTooltip);
|
|
442
|
-
const [trigger, setTrigger] = useState4(null);
|
|
443
|
-
const [content, setContent] = useState4("");
|
|
444
|
-
const [side, setSide] = useState4(void 0);
|
|
445
|
-
const triggerRef = useRef(trigger);
|
|
446
|
-
const handleTriggerChange = useCallback3((nextTrigger) => {
|
|
447
|
-
setTrigger(nextTrigger);
|
|
448
|
-
triggerRef.current = nextTrigger;
|
|
449
|
-
setContent(nextTrigger?.getAttribute("data-tooltip-content") ?? "");
|
|
450
|
-
setSide(nextTrigger?.getAttribute("data-tooltip-side") ?? void 0);
|
|
451
|
-
}, []);
|
|
452
|
-
const contentId = useId2();
|
|
453
|
-
const openTimerRef = useRef(0);
|
|
454
|
-
const wasOpenDelayedRef = useRef(false);
|
|
455
|
-
const handleOpenChange = useCallback3((open2) => {
|
|
456
|
-
if (open2) {
|
|
457
|
-
window.clearTimeout(skipDelayTimerRef.current);
|
|
458
|
-
isOpenDelayedRef.current = false;
|
|
459
|
-
document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));
|
|
460
|
-
} else {
|
|
461
|
-
window.clearTimeout(skipDelayTimerRef.current);
|
|
462
|
-
skipDelayTimerRef.current = window.setTimeout(() => isOpenDelayedRef.current = true, skipDelayDuration);
|
|
463
|
-
}
|
|
464
|
-
onOpenChange?.(open2);
|
|
465
|
-
}, [
|
|
466
|
-
skipDelayDuration,
|
|
467
|
-
onOpenChange
|
|
468
|
-
]);
|
|
469
|
-
const [open = false, setOpen] = useControllableState({
|
|
470
|
-
prop: openProp,
|
|
471
|
-
defaultProp: defaultOpen,
|
|
472
|
-
onChange: handleOpenChange
|
|
473
|
-
});
|
|
474
|
-
const stateAttribute = useMemo(() => {
|
|
475
|
-
return open ? wasOpenDelayedRef.current ? "delayed-open" : "instant-open" : "closed";
|
|
476
|
-
}, [
|
|
477
|
-
open
|
|
478
|
-
]);
|
|
479
|
-
const handleOpen = useCallback3(() => {
|
|
480
|
-
window.clearTimeout(openTimerRef.current);
|
|
481
|
-
openTimerRef.current = 0;
|
|
482
|
-
wasOpenDelayedRef.current = false;
|
|
483
|
-
setOpen(true);
|
|
484
|
-
}, [
|
|
485
|
-
setOpen
|
|
486
|
-
]);
|
|
487
|
-
const handleClose = useCallback3(() => {
|
|
488
|
-
window.clearTimeout(openTimerRef.current);
|
|
489
|
-
openTimerRef.current = 0;
|
|
490
|
-
setOpen(false);
|
|
491
|
-
}, [
|
|
492
|
-
setOpen
|
|
493
|
-
]);
|
|
494
|
-
const handleDelayedOpen = useCallback3(() => {
|
|
495
|
-
window.clearTimeout(openTimerRef.current);
|
|
496
|
-
openTimerRef.current = window.setTimeout(() => {
|
|
497
|
-
wasOpenDelayedRef.current = true;
|
|
498
|
-
setOpen(true);
|
|
499
|
-
openTimerRef.current = 0;
|
|
500
|
-
}, delayDuration);
|
|
501
|
-
}, [
|
|
502
|
-
delayDuration,
|
|
503
|
-
setOpen
|
|
504
|
-
]);
|
|
505
|
-
useEffect2(() => {
|
|
506
|
-
return () => {
|
|
507
|
-
if (openTimerRef.current) {
|
|
508
|
-
window.clearTimeout(openTimerRef.current);
|
|
509
|
-
openTimerRef.current = 0;
|
|
510
|
-
}
|
|
511
|
-
};
|
|
512
|
-
}, []);
|
|
513
|
-
const { tx } = useThemeContext();
|
|
514
|
-
const elevation = useElevationContext();
|
|
515
|
-
return /* @__PURE__ */ React8.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ React8.createElement(TooltipContextProvider, {
|
|
516
|
-
scope: __scopeTooltip,
|
|
517
|
-
contentId,
|
|
518
|
-
open,
|
|
519
|
-
stateAttribute,
|
|
520
|
-
trigger,
|
|
521
|
-
onTriggerChange: handleTriggerChange,
|
|
522
|
-
onTriggerEnter: useCallback3(() => {
|
|
523
|
-
if (isOpenDelayedRef.current) {
|
|
524
|
-
handleDelayedOpen();
|
|
525
|
-
} else {
|
|
526
|
-
handleOpen();
|
|
527
|
-
}
|
|
528
|
-
}, [
|
|
529
|
-
isOpenDelayedRef,
|
|
530
|
-
handleDelayedOpen,
|
|
531
|
-
handleOpen
|
|
532
|
-
]),
|
|
533
|
-
onTriggerLeave: useCallback3(() => {
|
|
534
|
-
if (disableHoverableContent) {
|
|
535
|
-
handleClose();
|
|
536
|
-
} else {
|
|
537
|
-
window.clearTimeout(openTimerRef.current);
|
|
538
|
-
openTimerRef.current = 0;
|
|
539
|
-
}
|
|
540
|
-
}, [
|
|
541
|
-
handleClose,
|
|
542
|
-
disableHoverableContent
|
|
543
|
-
]),
|
|
544
|
-
onOpen: handleOpen,
|
|
545
|
-
onClose: handleClose,
|
|
546
|
-
disableHoverableContent,
|
|
547
|
-
isPointerInTransitRef,
|
|
548
|
-
onPointerInTransitChange: useCallback3((inTransit) => {
|
|
549
|
-
isPointerInTransitRef.current = inTransit;
|
|
550
|
-
}, [])
|
|
551
|
-
}, /* @__PURE__ */ React8.createElement(TooltipContent, {
|
|
552
|
-
side,
|
|
553
|
-
className: tx("tooltip.content", "tooltip", {
|
|
554
|
-
elevation
|
|
555
|
-
})
|
|
556
|
-
}, content, /* @__PURE__ */ React8.createElement(TooltipArrow, {
|
|
557
|
-
className: tx("tooltip.arrow", "tooltip__arrow")
|
|
558
|
-
})), /* @__PURE__ */ React8.createElement(TooltipVirtualTrigger, {
|
|
559
|
-
virtualRef: triggerRef
|
|
560
|
-
}), children));
|
|
561
|
-
};
|
|
562
|
-
TooltipProvider.displayName = TOOLTIP_NAME;
|
|
563
|
-
var TooltipVirtualTrigger = ({ virtualRef, __scopeTooltip }) => {
|
|
564
|
-
const popperScope = usePopperScope(__scopeTooltip);
|
|
565
|
-
return /* @__PURE__ */ React8.createElement(PopperPrimitive.Anchor, {
|
|
566
|
-
asChild: true,
|
|
567
|
-
...popperScope,
|
|
568
|
-
virtualRef
|
|
569
|
-
});
|
|
409
|
+
import { Provider as TooltipProviderPrimitive, Root as TooltipRootPrimitive, TooltipContent as TooltipContentPrimitive, TooltipTrigger as TooltipTriggerPrimitive, TooltipPortal as TooltipPortalPrimitive, TooltipArrow as TooltipArrowPrimitive } from "@radix-ui/react-tooltip";
|
|
410
|
+
import React8, { forwardRef as forwardRef7 } from "react";
|
|
411
|
+
|
|
412
|
+
// packages/ui/react-ui/src/hooks/useSafeCollisionPadding.ts
|
|
413
|
+
import { useMemo } from "react";
|
|
414
|
+
var propIsNumber = (prop) => Number.isFinite(prop);
|
|
415
|
+
var propsIsRecord = (prop) => !!(prop && typeof prop === "object");
|
|
416
|
+
var safePadding = (propsPadding, safePadding2, side) => {
|
|
417
|
+
return (propIsNumber(safePadding2[side]) ? safePadding2[side] : 0) + (propIsNumber(propsPadding) ? propsPadding : propsIsRecord(propsPadding) ? propsPadding[side] ?? 0 : 0);
|
|
570
418
|
};
|
|
571
|
-
var
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
...triggerProps
|
|
582
|
-
} = props;
|
|
583
|
-
const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);
|
|
584
|
-
const ref = useRef(null);
|
|
585
|
-
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
586
|
-
const isPointerDownRef = useRef(false);
|
|
587
|
-
const hasPointerMoveOpenedRef = useRef(false);
|
|
588
|
-
const handlePointerUp = useCallback3(() => isPointerDownRef.current = false, []);
|
|
589
|
-
useEffect2(() => {
|
|
590
|
-
return () => document.removeEventListener("pointerup", handlePointerUp);
|
|
591
|
-
}, [
|
|
592
|
-
handlePointerUp
|
|
419
|
+
var useSafeCollisionPadding = (collisionPadding) => {
|
|
420
|
+
const { safeAreaPadding } = useThemeContext();
|
|
421
|
+
return useMemo(() => ({
|
|
422
|
+
top: safePadding(collisionPadding, safeAreaPadding, "top"),
|
|
423
|
+
right: safePadding(collisionPadding, safeAreaPadding, "right"),
|
|
424
|
+
bottom: safePadding(collisionPadding, safeAreaPadding, "bottom"),
|
|
425
|
+
left: safePadding(collisionPadding, safeAreaPadding, "left")
|
|
426
|
+
}), [
|
|
427
|
+
collisionPadding,
|
|
428
|
+
safeAreaPadding
|
|
593
429
|
]);
|
|
594
|
-
return /* @__PURE__ */ React8.createElement(Primitive6.button, {
|
|
595
|
-
// We purposefully avoid adding `type=button` here because tooltip triggers are also
|
|
596
|
-
// commonly anchors and the anchor `type` attribute signifies MIME type.
|
|
597
|
-
"aria-describedby": context.open ? context.contentId : void 0,
|
|
598
|
-
"data-state": context.stateAttribute,
|
|
599
|
-
"data-tooltip-content": content,
|
|
600
|
-
"data-tooltip-side": side,
|
|
601
|
-
...triggerProps,
|
|
602
|
-
ref: composedRefs,
|
|
603
|
-
onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {
|
|
604
|
-
if (event.pointerType === "touch") {
|
|
605
|
-
return;
|
|
606
|
-
}
|
|
607
|
-
if (!hasPointerMoveOpenedRef.current && !context.isPointerInTransitRef.current) {
|
|
608
|
-
onInteract?.(event);
|
|
609
|
-
if (event.defaultPrevented) {
|
|
610
|
-
return;
|
|
611
|
-
}
|
|
612
|
-
context.onTriggerChange(ref.current);
|
|
613
|
-
context.onTriggerEnter();
|
|
614
|
-
hasPointerMoveOpenedRef.current = true;
|
|
615
|
-
}
|
|
616
|
-
}),
|
|
617
|
-
onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {
|
|
618
|
-
context.onTriggerLeave();
|
|
619
|
-
hasPointerMoveOpenedRef.current = false;
|
|
620
|
-
}),
|
|
621
|
-
onPointerDown: composeEventHandlers(props.onPointerDown, () => {
|
|
622
|
-
if (context.open) {
|
|
623
|
-
context.onClose();
|
|
624
|
-
}
|
|
625
|
-
isPointerDownRef.current = true;
|
|
626
|
-
document.addEventListener("pointerup", handlePointerUp, {
|
|
627
|
-
once: true
|
|
628
|
-
});
|
|
629
|
-
}),
|
|
630
|
-
onFocus: composeEventHandlers(props.onFocus, (event) => {
|
|
631
|
-
if (!isPointerDownRef.current) {
|
|
632
|
-
onInteract?.(event);
|
|
633
|
-
if (event.defaultPrevented) {
|
|
634
|
-
return;
|
|
635
|
-
}
|
|
636
|
-
if (suppressNextTooltip?.current) {
|
|
637
|
-
suppressNextTooltip.current = false;
|
|
638
|
-
} else {
|
|
639
|
-
context.onTriggerChange(ref.current);
|
|
640
|
-
context.onOpen();
|
|
641
|
-
}
|
|
642
|
-
}
|
|
643
|
-
}),
|
|
644
|
-
onBlur: composeEventHandlers(props.onBlur, context.onClose),
|
|
645
|
-
onClick: composeEventHandlers(props.onClick, context.onClose)
|
|
646
|
-
});
|
|
647
|
-
});
|
|
648
|
-
TooltipTrigger.displayName = TRIGGER_NAME;
|
|
649
|
-
var PORTAL_NAME = "TooltipPortal";
|
|
650
|
-
var [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {
|
|
651
|
-
forceMount: void 0
|
|
652
|
-
});
|
|
653
|
-
var TooltipPortal = (props) => {
|
|
654
|
-
const { __scopeTooltip, forceMount, children, container } = props;
|
|
655
|
-
const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);
|
|
656
|
-
return /* @__PURE__ */ React8.createElement(PortalProvider, {
|
|
657
|
-
scope: __scopeTooltip,
|
|
658
|
-
forceMount
|
|
659
|
-
}, /* @__PURE__ */ React8.createElement(Presence, {
|
|
660
|
-
present: forceMount || context.open
|
|
661
|
-
}, /* @__PURE__ */ React8.createElement(PortalPrimitive, {
|
|
662
|
-
asChild: true,
|
|
663
|
-
container
|
|
664
|
-
}, children)));
|
|
665
430
|
};
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
var
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
side,
|
|
676
|
-
...contentProps,
|
|
677
|
-
ref: forwardedRef
|
|
678
|
-
}) : /* @__PURE__ */ React8.createElement(TooltipContentHoverable, {
|
|
679
|
-
side,
|
|
680
|
-
...contentProps,
|
|
681
|
-
ref: forwardedRef
|
|
682
|
-
}));
|
|
683
|
-
});
|
|
684
|
-
var TooltipContentHoverable = /* @__PURE__ */ forwardRef7((props, forwardedRef) => {
|
|
685
|
-
const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
|
|
686
|
-
const ref = useRef(null);
|
|
687
|
-
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
688
|
-
const [pointerGraceArea, setPointerGraceArea] = useState4(null);
|
|
689
|
-
const { trigger, onClose } = context;
|
|
690
|
-
const content = ref.current;
|
|
691
|
-
const { onPointerInTransitChange } = context;
|
|
692
|
-
const handleRemoveGraceArea = useCallback3(() => {
|
|
693
|
-
setPointerGraceArea(null);
|
|
694
|
-
onPointerInTransitChange(false);
|
|
695
|
-
}, [
|
|
696
|
-
onPointerInTransitChange
|
|
697
|
-
]);
|
|
698
|
-
const handleCreateGraceArea = useCallback3((event, hoverTarget) => {
|
|
699
|
-
const currentTarget = event.currentTarget;
|
|
700
|
-
const exitPoint = {
|
|
701
|
-
x: event.clientX,
|
|
702
|
-
y: event.clientY
|
|
703
|
-
};
|
|
704
|
-
const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());
|
|
705
|
-
const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);
|
|
706
|
-
const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());
|
|
707
|
-
const graceArea = getHull([
|
|
708
|
-
...paddedExitPoints,
|
|
709
|
-
...hoverTargetPoints
|
|
710
|
-
]);
|
|
711
|
-
setPointerGraceArea(graceArea);
|
|
712
|
-
onPointerInTransitChange(true);
|
|
713
|
-
}, [
|
|
714
|
-
onPointerInTransitChange
|
|
715
|
-
]);
|
|
716
|
-
useEffect2(() => {
|
|
717
|
-
return () => handleRemoveGraceArea();
|
|
718
|
-
}, [
|
|
719
|
-
handleRemoveGraceArea
|
|
720
|
-
]);
|
|
721
|
-
useEffect2(() => {
|
|
722
|
-
if (trigger && content) {
|
|
723
|
-
const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);
|
|
724
|
-
const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);
|
|
725
|
-
trigger.addEventListener("pointerleave", handleTriggerLeave);
|
|
726
|
-
content.addEventListener("pointerleave", handleContentLeave);
|
|
727
|
-
return () => {
|
|
728
|
-
trigger.removeEventListener("pointerleave", handleTriggerLeave);
|
|
729
|
-
content.removeEventListener("pointerleave", handleContentLeave);
|
|
730
|
-
};
|
|
731
|
-
}
|
|
732
|
-
}, [
|
|
733
|
-
trigger,
|
|
734
|
-
content,
|
|
735
|
-
handleCreateGraceArea,
|
|
736
|
-
handleRemoveGraceArea
|
|
737
|
-
]);
|
|
738
|
-
useEffect2(() => {
|
|
739
|
-
if (pointerGraceArea) {
|
|
740
|
-
const handleTrackPointerGrace = (event) => {
|
|
741
|
-
const target = event.target;
|
|
742
|
-
const pointerPosition = {
|
|
743
|
-
x: event.clientX,
|
|
744
|
-
y: event.clientY
|
|
745
|
-
};
|
|
746
|
-
const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);
|
|
747
|
-
const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);
|
|
748
|
-
if (hasEnteredTarget) {
|
|
749
|
-
handleRemoveGraceArea();
|
|
750
|
-
} else if (isPointerOutsideGraceArea) {
|
|
751
|
-
handleRemoveGraceArea();
|
|
752
|
-
onClose();
|
|
753
|
-
}
|
|
754
|
-
};
|
|
755
|
-
document.addEventListener("pointermove", handleTrackPointerGrace);
|
|
756
|
-
return () => document.removeEventListener("pointermove", handleTrackPointerGrace);
|
|
757
|
-
}
|
|
758
|
-
}, [
|
|
759
|
-
trigger,
|
|
760
|
-
content,
|
|
761
|
-
pointerGraceArea,
|
|
762
|
-
onClose,
|
|
763
|
-
handleRemoveGraceArea
|
|
764
|
-
]);
|
|
765
|
-
return /* @__PURE__ */ React8.createElement(TooltipContentImpl, {
|
|
431
|
+
|
|
432
|
+
// packages/ui/react-ui/src/components/Tooltip/Tooltip.tsx
|
|
433
|
+
var TooltipProvider = TooltipProviderPrimitive;
|
|
434
|
+
var TooltipRoot = TooltipRootPrimitive;
|
|
435
|
+
var TooltipPortal = TooltipPortalPrimitive;
|
|
436
|
+
var TooltipTrigger = TooltipTriggerPrimitive;
|
|
437
|
+
var TooltipArrow = /* @__PURE__ */ forwardRef7(({ classNames, ...props }, forwardedRef) => {
|
|
438
|
+
const { tx } = useThemeContext();
|
|
439
|
+
return /* @__PURE__ */ React8.createElement(TooltipArrowPrimitive, {
|
|
766
440
|
...props,
|
|
767
|
-
|
|
441
|
+
className: tx("tooltip.arrow", "tooltip__arrow", {}, classNames),
|
|
442
|
+
ref: forwardedRef
|
|
768
443
|
});
|
|
769
444
|
});
|
|
770
|
-
var
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
}, [
|
|
782
|
-
onClose
|
|
783
|
-
]);
|
|
784
|
-
useEffect2(() => {
|
|
785
|
-
if (context.trigger) {
|
|
786
|
-
const handleScroll = (event) => {
|
|
787
|
-
const target = event.target;
|
|
788
|
-
if (target?.contains(context.trigger)) {
|
|
789
|
-
onClose();
|
|
790
|
-
}
|
|
791
|
-
};
|
|
792
|
-
window.addEventListener("scroll", handleScroll, {
|
|
793
|
-
capture: true
|
|
794
|
-
});
|
|
795
|
-
return () => window.removeEventListener("scroll", handleScroll, {
|
|
796
|
-
capture: true
|
|
797
|
-
});
|
|
798
|
-
}
|
|
799
|
-
}, [
|
|
800
|
-
context.trigger,
|
|
801
|
-
onClose
|
|
802
|
-
]);
|
|
803
|
-
return /* @__PURE__ */ React8.createElement(DismissableLayer, {
|
|
804
|
-
asChild: true,
|
|
805
|
-
disableOutsidePointerEvents: false,
|
|
806
|
-
onEscapeKeyDown,
|
|
807
|
-
onPointerDownOutside,
|
|
808
|
-
onFocusOutside: (event) => event.preventDefault(),
|
|
809
|
-
onDismiss: onClose
|
|
810
|
-
}, /* @__PURE__ */ React8.createElement(PopperPrimitive.Content, {
|
|
811
|
-
"data-state": context.stateAttribute,
|
|
812
|
-
...popperScope,
|
|
813
|
-
...contentProps,
|
|
814
|
-
ref: forwardedRef,
|
|
815
|
-
style: {
|
|
816
|
-
...contentProps.style,
|
|
817
|
-
// re-namespace exposed content custom properties
|
|
818
|
-
...{
|
|
819
|
-
"--radix-tooltip-content-transform-origin": "var(--radix-popper-transform-origin)",
|
|
820
|
-
"--radix-tooltip-content-available-width": "var(--radix-popper-available-width)",
|
|
821
|
-
"--radix-tooltip-content-available-height": "var(--radix-popper-available-height)",
|
|
822
|
-
"--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
|
|
823
|
-
"--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
|
|
824
|
-
}
|
|
825
|
-
}
|
|
826
|
-
}, /* @__PURE__ */ React8.createElement(Slottable, null, children), /* @__PURE__ */ React8.createElement(VisuallyHiddenContentContextProvider, {
|
|
827
|
-
scope: __scopeTooltip,
|
|
828
|
-
isInside: true
|
|
829
|
-
}, /* @__PURE__ */ React8.createElement(VisuallyHiddenPrimitive.Root, {
|
|
830
|
-
id: context.contentId,
|
|
831
|
-
role: "tooltip"
|
|
832
|
-
}, ariaLabel || children))));
|
|
833
|
-
});
|
|
834
|
-
TooltipContent.displayName = CONTENT_NAME;
|
|
835
|
-
var ARROW_NAME = "TooltipArrow";
|
|
836
|
-
var TooltipArrow = /* @__PURE__ */ forwardRef7((props, forwardedRef) => {
|
|
837
|
-
const { __scopeTooltip, ...arrowProps } = props;
|
|
838
|
-
const popperScope = usePopperScope(__scopeTooltip);
|
|
839
|
-
const visuallyHiddenContentContext = useVisuallyHiddenContentContext(ARROW_NAME, __scopeTooltip);
|
|
840
|
-
return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ React8.createElement(PopperPrimitive.Arrow, {
|
|
841
|
-
...popperScope,
|
|
842
|
-
...arrowProps,
|
|
445
|
+
var TooltipContent = /* @__PURE__ */ forwardRef7(({ classNames, collisionPadding = 8, ...props }, forwardedRef) => {
|
|
446
|
+
const { tx } = useThemeContext();
|
|
447
|
+
const elevation = useElevationContext();
|
|
448
|
+
const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
|
|
449
|
+
return /* @__PURE__ */ React8.createElement(TooltipContentPrimitive, {
|
|
450
|
+
sideOffset: 4,
|
|
451
|
+
...props,
|
|
452
|
+
collisionPadding: safeCollisionPadding,
|
|
453
|
+
className: tx("tooltip.content", "tooltip", {
|
|
454
|
+
elevation
|
|
455
|
+
}, classNames),
|
|
843
456
|
ref: forwardedRef
|
|
844
457
|
});
|
|
845
458
|
});
|
|
846
|
-
TooltipArrow.displayName = ARROW_NAME;
|
|
847
|
-
var getExitSideFromRect = (point, rect) => {
|
|
848
|
-
const top = Math.abs(rect.top - point.y);
|
|
849
|
-
const bottom = Math.abs(rect.bottom - point.y);
|
|
850
|
-
const right = Math.abs(rect.right - point.x);
|
|
851
|
-
const left = Math.abs(rect.left - point.x);
|
|
852
|
-
switch (Math.min(top, bottom, right, left)) {
|
|
853
|
-
case left:
|
|
854
|
-
return "left";
|
|
855
|
-
case right:
|
|
856
|
-
return "right";
|
|
857
|
-
case top:
|
|
858
|
-
return "top";
|
|
859
|
-
case bottom:
|
|
860
|
-
return "bottom";
|
|
861
|
-
default:
|
|
862
|
-
throw new Error("unreachable");
|
|
863
|
-
}
|
|
864
|
-
};
|
|
865
|
-
var getPaddedExitPoints = (exitPoint, exitSide, padding = 5) => {
|
|
866
|
-
const paddedExitPoints = [];
|
|
867
|
-
switch (exitSide) {
|
|
868
|
-
case "top":
|
|
869
|
-
paddedExitPoints.push({
|
|
870
|
-
x: exitPoint.x - padding,
|
|
871
|
-
y: exitPoint.y + padding
|
|
872
|
-
}, {
|
|
873
|
-
x: exitPoint.x + padding,
|
|
874
|
-
y: exitPoint.y + padding
|
|
875
|
-
});
|
|
876
|
-
break;
|
|
877
|
-
case "bottom":
|
|
878
|
-
paddedExitPoints.push({
|
|
879
|
-
x: exitPoint.x - padding,
|
|
880
|
-
y: exitPoint.y - padding
|
|
881
|
-
}, {
|
|
882
|
-
x: exitPoint.x + padding,
|
|
883
|
-
y: exitPoint.y - padding
|
|
884
|
-
});
|
|
885
|
-
break;
|
|
886
|
-
case "left":
|
|
887
|
-
paddedExitPoints.push({
|
|
888
|
-
x: exitPoint.x + padding,
|
|
889
|
-
y: exitPoint.y - padding
|
|
890
|
-
}, {
|
|
891
|
-
x: exitPoint.x + padding,
|
|
892
|
-
y: exitPoint.y + padding
|
|
893
|
-
});
|
|
894
|
-
break;
|
|
895
|
-
case "right":
|
|
896
|
-
paddedExitPoints.push({
|
|
897
|
-
x: exitPoint.x - padding,
|
|
898
|
-
y: exitPoint.y - padding
|
|
899
|
-
}, {
|
|
900
|
-
x: exitPoint.x - padding,
|
|
901
|
-
y: exitPoint.y + padding
|
|
902
|
-
});
|
|
903
|
-
break;
|
|
904
|
-
}
|
|
905
|
-
return paddedExitPoints;
|
|
906
|
-
};
|
|
907
|
-
var getPointsFromRect = (rect) => {
|
|
908
|
-
const { top, right, bottom, left } = rect;
|
|
909
|
-
return [
|
|
910
|
-
{
|
|
911
|
-
x: left,
|
|
912
|
-
y: top
|
|
913
|
-
},
|
|
914
|
-
{
|
|
915
|
-
x: right,
|
|
916
|
-
y: top
|
|
917
|
-
},
|
|
918
|
-
{
|
|
919
|
-
x: right,
|
|
920
|
-
y: bottom
|
|
921
|
-
},
|
|
922
|
-
{
|
|
923
|
-
x: left,
|
|
924
|
-
y: bottom
|
|
925
|
-
}
|
|
926
|
-
];
|
|
927
|
-
};
|
|
928
|
-
var isPointInPolygon = (point, polygon) => {
|
|
929
|
-
const { x, y } = point;
|
|
930
|
-
let inside = false;
|
|
931
|
-
for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
|
|
932
|
-
const xi = polygon[i].x;
|
|
933
|
-
const yi = polygon[i].y;
|
|
934
|
-
const xj = polygon[j].x;
|
|
935
|
-
const yj = polygon[j].y;
|
|
936
|
-
const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
|
|
937
|
-
if (intersect) {
|
|
938
|
-
inside = !inside;
|
|
939
|
-
}
|
|
940
|
-
}
|
|
941
|
-
return inside;
|
|
942
|
-
};
|
|
943
|
-
var getHull = (points) => {
|
|
944
|
-
const newPoints = points.slice();
|
|
945
|
-
newPoints.sort((a, b) => {
|
|
946
|
-
if (a.x < b.x) {
|
|
947
|
-
return -1;
|
|
948
|
-
} else if (a.x > b.x) {
|
|
949
|
-
return 1;
|
|
950
|
-
} else if (a.y < b.y) {
|
|
951
|
-
return -1;
|
|
952
|
-
} else if (a.y > b.y) {
|
|
953
|
-
return 1;
|
|
954
|
-
} else {
|
|
955
|
-
return 0;
|
|
956
|
-
}
|
|
957
|
-
});
|
|
958
|
-
return getHullPresorted(newPoints);
|
|
959
|
-
};
|
|
960
|
-
var getHullPresorted = (points) => {
|
|
961
|
-
if (points.length <= 1) {
|
|
962
|
-
return points.slice();
|
|
963
|
-
}
|
|
964
|
-
const upperHull = [];
|
|
965
|
-
for (let i = 0; i < points.length; i++) {
|
|
966
|
-
const p = points[i];
|
|
967
|
-
while (upperHull.length >= 2) {
|
|
968
|
-
const q = upperHull[upperHull.length - 1];
|
|
969
|
-
const r = upperHull[upperHull.length - 2];
|
|
970
|
-
if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) {
|
|
971
|
-
upperHull.pop();
|
|
972
|
-
} else {
|
|
973
|
-
break;
|
|
974
|
-
}
|
|
975
|
-
}
|
|
976
|
-
upperHull.push(p);
|
|
977
|
-
}
|
|
978
|
-
upperHull.pop();
|
|
979
|
-
const lowerHull = [];
|
|
980
|
-
for (let i = points.length - 1; i >= 0; i--) {
|
|
981
|
-
const p = points[i];
|
|
982
|
-
while (lowerHull.length >= 2) {
|
|
983
|
-
const q = lowerHull[lowerHull.length - 1];
|
|
984
|
-
const r = lowerHull[lowerHull.length - 2];
|
|
985
|
-
if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) {
|
|
986
|
-
lowerHull.pop();
|
|
987
|
-
} else {
|
|
988
|
-
break;
|
|
989
|
-
}
|
|
990
|
-
}
|
|
991
|
-
lowerHull.push(p);
|
|
992
|
-
}
|
|
993
|
-
lowerHull.pop();
|
|
994
|
-
if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {
|
|
995
|
-
return upperHull;
|
|
996
|
-
} else {
|
|
997
|
-
return upperHull.concat(lowerHull);
|
|
998
|
-
}
|
|
999
|
-
};
|
|
1000
459
|
var Tooltip = {
|
|
1001
460
|
Provider: TooltipProvider,
|
|
1002
|
-
|
|
461
|
+
Root: TooltipRoot,
|
|
462
|
+
Portal: TooltipPortal,
|
|
463
|
+
Trigger: TooltipTrigger,
|
|
464
|
+
Arrow: TooltipArrow,
|
|
465
|
+
Content: TooltipContent
|
|
1003
466
|
};
|
|
1004
467
|
|
|
1005
468
|
// packages/ui/react-ui/src/components/Buttons/IconButton.tsx
|
|
1006
|
-
var IconOnlyButton = /* @__PURE__ */ forwardRef8(({ noTooltip, tooltipPortal = true, tooltipSide, suppressNextTooltip, ...props }, forwardedRef) => {
|
|
469
|
+
var IconOnlyButton = /* @__PURE__ */ forwardRef8(({ noTooltip, tooltipPortal = true, tooltipZIndex: zIndex, tooltipSide, suppressNextTooltip, ...props }, forwardedRef) => {
|
|
470
|
+
const [triggerTooltipOpen, setTriggerTooltipOpen] = useState4(false);
|
|
1007
471
|
if (noTooltip) {
|
|
1008
472
|
return /* @__PURE__ */ React9.createElement(LabelledIconButton, {
|
|
1009
473
|
...props,
|
|
1010
474
|
ref: forwardedRef
|
|
1011
475
|
});
|
|
1012
476
|
}
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
477
|
+
const content = /* @__PURE__ */ React9.createElement(Tooltip.Content, {
|
|
478
|
+
...zIndex && {
|
|
479
|
+
style: {
|
|
480
|
+
zIndex
|
|
481
|
+
}
|
|
482
|
+
},
|
|
483
|
+
side: tooltipSide
|
|
484
|
+
}, props.label, /* @__PURE__ */ React9.createElement(Tooltip.Arrow, null));
|
|
485
|
+
return /* @__PURE__ */ React9.createElement(Tooltip.Root, {
|
|
486
|
+
open: triggerTooltipOpen,
|
|
487
|
+
onOpenChange: (nextOpen) => {
|
|
488
|
+
if (suppressNextTooltip?.current) {
|
|
489
|
+
setTriggerTooltipOpen(false);
|
|
490
|
+
suppressNextTooltip.current = false;
|
|
491
|
+
} else {
|
|
492
|
+
setTriggerTooltipOpen(nextOpen);
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
}, /* @__PURE__ */ React9.createElement(Tooltip.Trigger, {
|
|
496
|
+
asChild: true
|
|
1018
497
|
}, /* @__PURE__ */ React9.createElement(LabelledIconButton, {
|
|
1019
498
|
...props,
|
|
1020
499
|
ref: forwardedRef
|
|
1021
|
-
}));
|
|
500
|
+
})), tooltipPortal ? /* @__PURE__ */ React9.createElement(Tooltip.Portal, null, content) : content);
|
|
1022
501
|
});
|
|
1023
502
|
var LabelledIconButton = /* @__PURE__ */ forwardRef8(({ icon, size, iconOnly, label, classNames, iconClassNames, caretDown, suppressNextTooltip, ...props }, forwardedRef) => {
|
|
1024
503
|
const { tx } = useThemeContext();
|
|
@@ -1088,7 +567,7 @@ var ToggleGroupItem = /* @__PURE__ */ forwardRef10(({ variant, elevation, densit
|
|
|
1088
567
|
});
|
|
1089
568
|
|
|
1090
569
|
// packages/ui/react-ui/src/components/Clipboard/ClipboardProvider.tsx
|
|
1091
|
-
import React12, { createContext as createContext4, useCallback as
|
|
570
|
+
import React12, { createContext as createContext4, useCallback as useCallback3, useContext as useContext6, useState as useState5 } from "react";
|
|
1092
571
|
var ClipboardContext = /* @__PURE__ */ createContext4({
|
|
1093
572
|
textValue: "",
|
|
1094
573
|
setTextValue: async (_) => {
|
|
@@ -1097,7 +576,7 @@ var ClipboardContext = /* @__PURE__ */ createContext4({
|
|
|
1097
576
|
var useClipboard = () => useContext6(ClipboardContext);
|
|
1098
577
|
var ClipboardProvider = ({ children }) => {
|
|
1099
578
|
const [textValue, setInternalTextValue] = useState5("");
|
|
1100
|
-
const setTextValue =
|
|
579
|
+
const setTextValue = useCallback3(async (nextValue) => {
|
|
1101
580
|
await navigator.clipboard.writeText(nextValue);
|
|
1102
581
|
return setInternalTextValue(nextValue);
|
|
1103
582
|
}, []);
|
|
@@ -1110,12 +589,12 @@ var ClipboardProvider = ({ children }) => {
|
|
|
1110
589
|
};
|
|
1111
590
|
|
|
1112
591
|
// packages/ui/react-ui/src/components/Clipboard/CopyButton.tsx
|
|
1113
|
-
import React16 from "react";
|
|
592
|
+
import React16, { useState as useState6 } from "react";
|
|
1114
593
|
import { mx as mx2 } from "@dxos/react-ui-theme";
|
|
1115
594
|
|
|
1116
595
|
// packages/ui/react-ui/src/components/ThemeProvider/ThemeProvider.tsx
|
|
1117
596
|
import { createKeyborg } from "keyborg";
|
|
1118
|
-
import React15, { createContext as createContext7, useEffect as
|
|
597
|
+
import React15, { createContext as createContext7, useEffect as useEffect2, useMemo as useMemo2 } from "react";
|
|
1119
598
|
|
|
1120
599
|
// packages/ui/react-ui/src/util/hasIosKeyboard.ts
|
|
1121
600
|
var hasIosKeyboard = () => {
|
|
@@ -1147,7 +626,7 @@ var ElevationProvider = ({ elevation, children }) => /* @__PURE__ */ React14.cre
|
|
|
1147
626
|
// packages/ui/react-ui/src/components/ThemeProvider/ThemeProvider.tsx
|
|
1148
627
|
var ThemeContext = /* @__PURE__ */ createContext7(void 0);
|
|
1149
628
|
var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName, themeMode = "dark", rootDensity = "fine", ...rest }) => {
|
|
1150
|
-
|
|
629
|
+
useEffect2(() => {
|
|
1151
630
|
if (document.defaultView) {
|
|
1152
631
|
const kb = createKeyborg(document.defaultView);
|
|
1153
632
|
kb.subscribe(handleInputModalityChange);
|
|
@@ -1221,25 +700,36 @@ var CopyButton = ({ value, classNames, iconProps, ...props }) => {
|
|
|
1221
700
|
...iconProps
|
|
1222
701
|
})));
|
|
1223
702
|
};
|
|
1224
|
-
var CopyButtonIconOnly = ({
|
|
703
|
+
var CopyButtonIconOnly = ({ value, classNames, iconProps, variant, ...props }) => {
|
|
1225
704
|
const { t } = useTranslation("os");
|
|
1226
705
|
const { textValue, setTextValue } = useClipboard();
|
|
1227
706
|
const isCopied = textValue === value;
|
|
1228
707
|
const label = isCopied ? t("copy success label") : props.label ?? t("copy label");
|
|
1229
|
-
const
|
|
1230
|
-
return /* @__PURE__ */ React16.createElement(
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
708
|
+
const [open, setOpen] = useState6(false);
|
|
709
|
+
return /* @__PURE__ */ React16.createElement(Tooltip.Root, {
|
|
710
|
+
delayDuration: 1500,
|
|
711
|
+
open,
|
|
712
|
+
onOpenChange: setOpen
|
|
713
|
+
}, /* @__PURE__ */ React16.createElement(Tooltip.Portal, null, /* @__PURE__ */ React16.createElement(Tooltip.Content, {
|
|
714
|
+
side: "bottom",
|
|
715
|
+
sideOffset: 12
|
|
716
|
+
}, /* @__PURE__ */ React16.createElement("span", null, label), /* @__PURE__ */ React16.createElement(Tooltip.Arrow, null))), /* @__PURE__ */ React16.createElement(Tooltip.Trigger, {
|
|
717
|
+
"aria-label": label,
|
|
718
|
+
...props,
|
|
719
|
+
onClick: () => setTextValue(value).then(() => setOpen(true)),
|
|
720
|
+
"data-testid": "copy-invitation",
|
|
721
|
+
asChild: true
|
|
722
|
+
}, /* @__PURE__ */ React16.createElement(Button, {
|
|
1235
723
|
variant,
|
|
1236
724
|
classNames: [
|
|
1237
725
|
"inline-flex flex-col justify-center",
|
|
1238
726
|
classNames
|
|
1239
|
-
]
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
727
|
+
]
|
|
728
|
+
}, /* @__PURE__ */ React16.createElement(Icon, {
|
|
729
|
+
icon: "ph--copy--regular",
|
|
730
|
+
size: 5,
|
|
731
|
+
...iconProps
|
|
732
|
+
}))));
|
|
1243
733
|
};
|
|
1244
734
|
|
|
1245
735
|
// packages/ui/react-ui/src/components/Clipboard/index.ts
|
|
@@ -1281,7 +771,9 @@ var DialogDescription = /* @__PURE__ */ forwardRef11(({ classNames, srOnly, ...p
|
|
|
1281
771
|
var DialogClose = DialogClosePrimitive;
|
|
1282
772
|
var DIALOG_OVERLAY_NAME = "DialogOverlay";
|
|
1283
773
|
var DIALOG_CONTENT_NAME = "DialogContent";
|
|
1284
|
-
var [OverlayLayoutProvider, useOverlayLayoutContext] = createContext8(DIALOG_OVERLAY_NAME, {
|
|
774
|
+
var [OverlayLayoutProvider, useOverlayLayoutContext] = createContext8(DIALOG_OVERLAY_NAME, {
|
|
775
|
+
inOverlayLayout: false
|
|
776
|
+
});
|
|
1285
777
|
var DialogOverlay = /* @__PURE__ */ forwardRef11(({ classNames, children, blockAlign, ...props }, forwardedRef) => {
|
|
1286
778
|
const { tx } = useThemeContext();
|
|
1287
779
|
return /* @__PURE__ */ React17.createElement(DialogOverlayPrimitive, {
|
|
@@ -1298,9 +790,6 @@ var DialogContent = /* @__PURE__ */ forwardRef11(({ classNames, children, inOver
|
|
|
1298
790
|
const { tx } = useThemeContext();
|
|
1299
791
|
const { inOverlayLayout } = useOverlayLayoutContext(DIALOG_CONTENT_NAME);
|
|
1300
792
|
return /* @__PURE__ */ React17.createElement(DialogContentPrimitive, {
|
|
1301
|
-
// NOTE: Radix warning unless set to undefined.
|
|
1302
|
-
// https://www.radix-ui.com/primitives/docs/components/dialog#description
|
|
1303
|
-
"aria-describedby": void 0,
|
|
1304
793
|
...props,
|
|
1305
794
|
className: tx("dialog.content", "dialog", {
|
|
1306
795
|
inOverlayLayout: propsInOverlayLayout || inOverlayLayout
|
|
@@ -1392,320 +881,765 @@ var AlertDialog = {
|
|
|
1392
881
|
Action: AlertDialogAction
|
|
1393
882
|
};
|
|
1394
883
|
|
|
1395
|
-
// packages/ui/react-ui/src/components/
|
|
1396
|
-
import
|
|
1397
|
-
import {
|
|
1398
|
-
import
|
|
1399
|
-
import
|
|
1400
|
-
|
|
1401
|
-
var
|
|
884
|
+
// packages/ui/react-ui/src/components/Menus/ContextMenu.tsx
|
|
885
|
+
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
886
|
+
import { Primitive as Primitive6 } from "@radix-ui/react-primitive";
|
|
887
|
+
import { Slot as Slot6 } from "@radix-ui/react-slot";
|
|
888
|
+
import React19, { forwardRef as forwardRef13 } from "react";
|
|
889
|
+
var ContextMenuRoot = ContextMenuPrimitive.ContextMenu;
|
|
890
|
+
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
891
|
+
var ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
892
|
+
var ContextMenuContent = /* @__PURE__ */ forwardRef13(({ classNames, children, collisionPadding = 8, ...props }, forwardedRef) => {
|
|
1402
893
|
const { tx } = useThemeContext();
|
|
1403
|
-
|
|
894
|
+
const elevation = useElevationContext();
|
|
895
|
+
const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
|
|
896
|
+
return /* @__PURE__ */ React19.createElement(ContextMenuPrimitive.Content, {
|
|
1404
897
|
...props,
|
|
1405
|
-
|
|
1406
|
-
|
|
898
|
+
collisionPadding: safeCollisionPadding,
|
|
899
|
+
className: tx("menu.content", "menu", {
|
|
900
|
+
elevation
|
|
1407
901
|
}, classNames),
|
|
1408
902
|
ref: forwardedRef
|
|
1409
903
|
}, children);
|
|
1410
904
|
});
|
|
1411
|
-
var
|
|
905
|
+
var ContextMenuViewport = /* @__PURE__ */ forwardRef13(({ classNames, asChild, children, ...props }, forwardedRef) => {
|
|
1412
906
|
const { tx } = useThemeContext();
|
|
1413
|
-
|
|
907
|
+
const Root5 = asChild ? Slot6 : Primitive6.div;
|
|
908
|
+
return /* @__PURE__ */ React19.createElement(Root5, {
|
|
1414
909
|
...props,
|
|
1415
|
-
className: tx("
|
|
1416
|
-
srOnly
|
|
1417
|
-
}, classNames),
|
|
910
|
+
className: tx("menu.viewport", "menu__viewport", {}, classNames),
|
|
1418
911
|
ref: forwardedRef
|
|
1419
912
|
}, children);
|
|
1420
913
|
});
|
|
1421
|
-
var
|
|
914
|
+
var ContextMenuArrow = /* @__PURE__ */ forwardRef13(({ classNames, ...props }, forwardedRef) => {
|
|
1422
915
|
const { tx } = useThemeContext();
|
|
1423
|
-
|
|
1424
|
-
return /* @__PURE__ */ React19.createElement(ValidationPrimitive, {
|
|
916
|
+
return /* @__PURE__ */ React19.createElement(ContextMenuPrimitive.Arrow, {
|
|
1425
917
|
...props,
|
|
1426
|
-
className: tx("
|
|
1427
|
-
srOnly,
|
|
1428
|
-
validationValence
|
|
1429
|
-
}, classNames),
|
|
918
|
+
className: tx("menu.arrow", "menu__arrow", {}, classNames),
|
|
1430
919
|
ref: forwardedRef
|
|
1431
|
-
}
|
|
920
|
+
});
|
|
1432
921
|
});
|
|
1433
|
-
var
|
|
922
|
+
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
923
|
+
var ContextMenuItemIndicator = ContextMenuPrimitive.ItemIndicator;
|
|
924
|
+
var ContextMenuItem = /* @__PURE__ */ forwardRef13(({ classNames, ...props }, forwardedRef) => {
|
|
1434
925
|
const { tx } = useThemeContext();
|
|
1435
|
-
return /* @__PURE__ */ React19.createElement(
|
|
926
|
+
return /* @__PURE__ */ React19.createElement(ContextMenuPrimitive.Item, {
|
|
1436
927
|
...props,
|
|
1437
|
-
className: tx("
|
|
1438
|
-
srOnly
|
|
1439
|
-
}, classNames),
|
|
928
|
+
className: tx("menu.item", "menu__item", {}, classNames),
|
|
1440
929
|
ref: forwardedRef
|
|
1441
|
-
}
|
|
930
|
+
});
|
|
1442
931
|
});
|
|
1443
|
-
var
|
|
1444
|
-
const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
|
|
932
|
+
var ContextMenuCheckboxItem = /* @__PURE__ */ forwardRef13(({ classNames, ...props }, forwardedRef) => {
|
|
1445
933
|
const { tx } = useThemeContext();
|
|
1446
|
-
|
|
1447
|
-
const elevation = useElevationContext(propsElevation);
|
|
1448
|
-
const segmentClassName = useCallback5(({ focused, validationValence }) => tx("input.input", "input--pin-segment", {
|
|
1449
|
-
variant: "static",
|
|
1450
|
-
focused,
|
|
1451
|
-
disabled: props.disabled,
|
|
1452
|
-
density,
|
|
1453
|
-
elevation,
|
|
1454
|
-
validationValence
|
|
1455
|
-
}, propsSegmentClassName), [
|
|
1456
|
-
tx,
|
|
1457
|
-
props.disabled,
|
|
1458
|
-
elevation,
|
|
1459
|
-
propsElevation,
|
|
1460
|
-
density
|
|
1461
|
-
]);
|
|
1462
|
-
return /* @__PURE__ */ React19.createElement(PinInputPrimitive, {
|
|
934
|
+
return /* @__PURE__ */ React19.createElement(ContextMenuPrimitive.CheckboxItem, {
|
|
1463
935
|
...props,
|
|
1464
|
-
|
|
1465
|
-
...props.autoFocus && !hasIosKeyboard2 && {
|
|
1466
|
-
autoFocus: true
|
|
1467
|
-
},
|
|
1468
|
-
inputClassName: tx("input.inputWithSegments", "input input--pin", {
|
|
1469
|
-
disabled: props.disabled
|
|
1470
|
-
}, inputClassName),
|
|
936
|
+
className: tx("menu.item", "menu__item--checkbox", {}, classNames),
|
|
1471
937
|
ref: forwardedRef
|
|
1472
938
|
});
|
|
1473
939
|
});
|
|
1474
|
-
var
|
|
1475
|
-
const {
|
|
1476
|
-
|
|
1477
|
-
const density = useDensityContext(propsDensity);
|
|
1478
|
-
const elevation = useElevationContext(propsElevation);
|
|
1479
|
-
const { validationValence } = useInputContext(INPUT_NAME, __inputScope);
|
|
1480
|
-
const { tx } = themeContextValue;
|
|
1481
|
-
return /* @__PURE__ */ React19.createElement(TextInputPrimitive, {
|
|
940
|
+
var ContextMenuSeparator = /* @__PURE__ */ forwardRef13(({ classNames, ...props }, forwardedRef) => {
|
|
941
|
+
const { tx } = useThemeContext();
|
|
942
|
+
return /* @__PURE__ */ React19.createElement(ContextMenuPrimitive.Separator, {
|
|
1482
943
|
...props,
|
|
1483
|
-
className: tx("
|
|
1484
|
-
variant,
|
|
1485
|
-
disabled: props.disabled,
|
|
1486
|
-
density,
|
|
1487
|
-
elevation,
|
|
1488
|
-
validationValence
|
|
1489
|
-
}, classNames),
|
|
1490
|
-
...props.autoFocus && !hasIosKeyboard2 && {
|
|
1491
|
-
autoFocus: true
|
|
1492
|
-
},
|
|
944
|
+
className: tx("menu.separator", "menu__item", {}, classNames),
|
|
1493
945
|
ref: forwardedRef
|
|
1494
946
|
});
|
|
1495
947
|
});
|
|
1496
|
-
var
|
|
1497
|
-
const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
|
|
948
|
+
var ContextMenuGroupLabel = /* @__PURE__ */ forwardRef13(({ classNames, ...props }, forwardedRef) => {
|
|
1498
949
|
const { tx } = useThemeContext();
|
|
1499
|
-
|
|
1500
|
-
const elevation = useElevationContext(propsElevation);
|
|
1501
|
-
const { validationValence } = useInputContext(INPUT_NAME, __inputScope);
|
|
1502
|
-
return /* @__PURE__ */ React19.createElement(TextAreaPrimitive, {
|
|
950
|
+
return /* @__PURE__ */ React19.createElement(ContextMenuPrimitive.Label, {
|
|
1503
951
|
...props,
|
|
1504
|
-
className: tx("
|
|
1505
|
-
variant,
|
|
1506
|
-
disabled: props.disabled,
|
|
1507
|
-
density,
|
|
1508
|
-
elevation,
|
|
1509
|
-
validationValence
|
|
1510
|
-
}, classNames),
|
|
1511
|
-
...props.autoFocus && !hasIosKeyboard2 && {
|
|
1512
|
-
autoFocus: true
|
|
1513
|
-
},
|
|
952
|
+
className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
|
|
1514
953
|
ref: forwardedRef
|
|
1515
954
|
});
|
|
1516
955
|
});
|
|
1517
|
-
var
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
956
|
+
var ContextMenu2 = {
|
|
957
|
+
Root: ContextMenuRoot,
|
|
958
|
+
Trigger: ContextMenuTrigger,
|
|
959
|
+
Portal: ContextMenuPortal,
|
|
960
|
+
Content: ContextMenuContent,
|
|
961
|
+
Viewport: ContextMenuViewport,
|
|
962
|
+
Arrow: ContextMenuArrow,
|
|
963
|
+
Group: ContextMenuGroup,
|
|
964
|
+
Item: ContextMenuItem,
|
|
965
|
+
CheckboxItem: ContextMenuCheckboxItem,
|
|
966
|
+
ItemIndicator: ContextMenuItemIndicator,
|
|
967
|
+
Separator: ContextMenuSeparator,
|
|
968
|
+
GroupLabel: ContextMenuGroupLabel
|
|
969
|
+
};
|
|
970
|
+
|
|
971
|
+
// packages/ui/react-ui/src/components/Menus/DropdownMenu.tsx
|
|
972
|
+
import { composeEventHandlers } from "@radix-ui/primitive";
|
|
973
|
+
import { composeRefs } from "@radix-ui/react-compose-refs";
|
|
974
|
+
import { createContextScope } from "@radix-ui/react-context";
|
|
975
|
+
import { useId as useId2 } from "@radix-ui/react-id";
|
|
976
|
+
import * as MenuPrimitive from "@radix-ui/react-menu";
|
|
977
|
+
import { createMenuScope } from "@radix-ui/react-menu";
|
|
978
|
+
import { Primitive as Primitive7 } from "@radix-ui/react-primitive";
|
|
979
|
+
import { Slot as Slot7 } from "@radix-ui/react-slot";
|
|
980
|
+
import { useControllableState } from "@radix-ui/react-use-controllable-state";
|
|
981
|
+
import React20, { useRef, useCallback as useCallback4, forwardRef as forwardRef14, useEffect as useEffect3 } from "react";
|
|
982
|
+
var DROPDOWN_MENU_NAME = "DropdownMenu";
|
|
983
|
+
var [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(DROPDOWN_MENU_NAME, [
|
|
984
|
+
createMenuScope
|
|
985
|
+
]);
|
|
986
|
+
var useMenuScope = createMenuScope();
|
|
987
|
+
var [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);
|
|
988
|
+
var DropdownMenuRoot = (props) => {
|
|
989
|
+
const { __scopeDropdownMenu, children, dir, open: openProp, defaultOpen, onOpenChange, modal = true } = props;
|
|
990
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
991
|
+
const triggerRef = useRef(null);
|
|
992
|
+
const [open = false, setOpen] = useControllableState({
|
|
993
|
+
prop: openProp,
|
|
994
|
+
defaultProp: defaultOpen,
|
|
995
|
+
onChange: onOpenChange
|
|
1522
996
|
});
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
997
|
+
return /* @__PURE__ */ React20.createElement(DropdownMenuProvider, {
|
|
998
|
+
scope: __scopeDropdownMenu,
|
|
999
|
+
triggerId: useId2(),
|
|
1000
|
+
triggerRef,
|
|
1001
|
+
contentId: useId2(),
|
|
1002
|
+
open,
|
|
1003
|
+
onOpenChange: setOpen,
|
|
1004
|
+
onOpenToggle: useCallback4(() => setOpen((prevOpen) => !prevOpen), [
|
|
1005
|
+
setOpen
|
|
1006
|
+
]),
|
|
1007
|
+
modal
|
|
1008
|
+
}, /* @__PURE__ */ React20.createElement(MenuPrimitive.Root, {
|
|
1009
|
+
...menuScope,
|
|
1010
|
+
open,
|
|
1011
|
+
onOpenChange: setOpen,
|
|
1012
|
+
dir,
|
|
1013
|
+
modal
|
|
1014
|
+
}, children));
|
|
1015
|
+
};
|
|
1016
|
+
DropdownMenuRoot.displayName = DROPDOWN_MENU_NAME;
|
|
1017
|
+
var TRIGGER_NAME = "DropdownMenuTrigger";
|
|
1018
|
+
var DropdownMenuTrigger = /* @__PURE__ */ forwardRef14((props, forwardedRef) => {
|
|
1019
|
+
const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;
|
|
1020
|
+
const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);
|
|
1021
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1022
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.Anchor, {
|
|
1023
|
+
asChild: true,
|
|
1024
|
+
...menuScope
|
|
1025
|
+
}, /* @__PURE__ */ React20.createElement(Primitive7.button, {
|
|
1026
|
+
type: "button",
|
|
1027
|
+
id: context.triggerId,
|
|
1028
|
+
"aria-haspopup": "menu",
|
|
1029
|
+
"aria-expanded": context.open,
|
|
1030
|
+
"aria-controls": context.open ? context.contentId : void 0,
|
|
1031
|
+
"data-state": context.open ? "open" : "closed",
|
|
1032
|
+
"data-disabled": disabled ? "" : void 0,
|
|
1033
|
+
disabled,
|
|
1034
|
+
...triggerProps,
|
|
1035
|
+
ref: composeRefs(forwardedRef, context.triggerRef),
|
|
1036
|
+
onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {
|
|
1037
|
+
if (!disabled && event.button === 0 && event.ctrlKey === false) {
|
|
1038
|
+
context.onOpenToggle();
|
|
1039
|
+
if (!context.open) {
|
|
1040
|
+
event.preventDefault();
|
|
1041
|
+
}
|
|
1042
|
+
}
|
|
1043
|
+
}),
|
|
1044
|
+
onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
|
|
1045
|
+
if (disabled) {
|
|
1046
|
+
return;
|
|
1047
|
+
}
|
|
1048
|
+
if ([
|
|
1049
|
+
"Enter",
|
|
1050
|
+
" "
|
|
1051
|
+
].includes(event.key)) {
|
|
1052
|
+
context.onOpenToggle();
|
|
1053
|
+
}
|
|
1054
|
+
if (event.key === "ArrowDown") {
|
|
1055
|
+
context.onOpenChange(true);
|
|
1056
|
+
}
|
|
1057
|
+
if ([
|
|
1058
|
+
"Enter",
|
|
1059
|
+
" ",
|
|
1060
|
+
"ArrowDown"
|
|
1061
|
+
].includes(event.key)) {
|
|
1062
|
+
event.preventDefault();
|
|
1063
|
+
}
|
|
1544
1064
|
})
|
|
1545
1065
|
}));
|
|
1546
1066
|
});
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1067
|
+
DropdownMenuTrigger.displayName = TRIGGER_NAME;
|
|
1068
|
+
var VIRTUAL_TRIGGER_NAME = "DropdownMenuVirtualTrigger";
|
|
1069
|
+
var DropdownMenuVirtualTrigger = (props) => {
|
|
1070
|
+
const { __scopeDropdownMenu, virtualRef } = props;
|
|
1071
|
+
const context = useDropdownMenuContext(VIRTUAL_TRIGGER_NAME, __scopeDropdownMenu);
|
|
1072
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1073
|
+
useEffect3(() => {
|
|
1074
|
+
if (virtualRef.current) {
|
|
1075
|
+
context.triggerRef.current = virtualRef.current;
|
|
1076
|
+
}
|
|
1552
1077
|
});
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1078
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.Anchor, {
|
|
1079
|
+
...menuScope,
|
|
1080
|
+
virtualRef
|
|
1081
|
+
});
|
|
1082
|
+
};
|
|
1083
|
+
DropdownMenuVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME;
|
|
1084
|
+
var PORTAL_NAME = "DropdownMenuPortal";
|
|
1085
|
+
var DropdownMenuPortal = (props) => {
|
|
1086
|
+
const { __scopeDropdownMenu, ...portalProps } = props;
|
|
1087
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1088
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.Portal, {
|
|
1089
|
+
...menuScope,
|
|
1090
|
+
...portalProps
|
|
1091
|
+
});
|
|
1092
|
+
};
|
|
1093
|
+
DropdownMenuPortal.displayName = PORTAL_NAME;
|
|
1094
|
+
var DropdownMenuViewport = /* @__PURE__ */ forwardRef14(({ classNames, asChild, children, ...props }, forwardedRef) => {
|
|
1095
|
+
const { tx } = useThemeContext();
|
|
1096
|
+
const Root5 = asChild ? Slot7 : Primitive7.div;
|
|
1097
|
+
return /* @__PURE__ */ React20.createElement(Root5, {
|
|
1563
1098
|
...props,
|
|
1564
|
-
|
|
1565
|
-
"aria-invalid": "true",
|
|
1566
|
-
"aria-errormessage": errorMessageId
|
|
1567
|
-
},
|
|
1099
|
+
className: tx("menu.viewport", "menu__viewport", {}, classNames),
|
|
1568
1100
|
ref: forwardedRef
|
|
1101
|
+
}, children);
|
|
1102
|
+
});
|
|
1103
|
+
var CONTENT_NAME = "DropdownMenuContent";
|
|
1104
|
+
var DropdownMenuContent = /* @__PURE__ */ forwardRef14((props, forwardedRef) => {
|
|
1105
|
+
const { __scopeDropdownMenu, classNames, collisionPadding = 8, ...contentProps } = props;
|
|
1106
|
+
const { tx } = useThemeContext();
|
|
1107
|
+
const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);
|
|
1108
|
+
const elevation = useElevationContext();
|
|
1109
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1110
|
+
const hasInteractedOutsideRef = useRef(false);
|
|
1111
|
+
const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
|
|
1112
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.Content, {
|
|
1113
|
+
id: context.contentId,
|
|
1114
|
+
"aria-labelledby": context.triggerId,
|
|
1115
|
+
...menuScope,
|
|
1116
|
+
...contentProps,
|
|
1117
|
+
collisionPadding: safeCollisionPadding,
|
|
1118
|
+
ref: forwardedRef,
|
|
1119
|
+
onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {
|
|
1120
|
+
if (!hasInteractedOutsideRef.current) {
|
|
1121
|
+
context.triggerRef.current?.focus();
|
|
1122
|
+
}
|
|
1123
|
+
hasInteractedOutsideRef.current = false;
|
|
1124
|
+
event.preventDefault();
|
|
1125
|
+
}),
|
|
1126
|
+
onInteractOutside: composeEventHandlers(props.onInteractOutside, (event) => {
|
|
1127
|
+
const originalEvent = event.detail.originalEvent;
|
|
1128
|
+
const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
|
|
1129
|
+
const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
|
|
1130
|
+
if (!context.modal || isRightClick) {
|
|
1131
|
+
hasInteractedOutsideRef.current = true;
|
|
1132
|
+
}
|
|
1133
|
+
}),
|
|
1134
|
+
className: tx("menu.content", "menu", {
|
|
1135
|
+
elevation
|
|
1136
|
+
}, classNames),
|
|
1137
|
+
style: {
|
|
1138
|
+
...props.style,
|
|
1139
|
+
// re-namespace exposed content custom properties
|
|
1140
|
+
...{
|
|
1141
|
+
"--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
|
|
1142
|
+
"--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
|
|
1143
|
+
"--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
|
|
1144
|
+
"--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
|
|
1145
|
+
"--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1569
1148
|
});
|
|
1570
1149
|
});
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1150
|
+
DropdownMenuContent.displayName = CONTENT_NAME;
|
|
1151
|
+
var GROUP_NAME = "DropdownMenuGroup";
|
|
1152
|
+
var DropdownMenuGroup = /* @__PURE__ */ forwardRef14((props, forwardedRef) => {
|
|
1153
|
+
const { __scopeDropdownMenu, ...groupProps } = props;
|
|
1154
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1155
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.Group, {
|
|
1156
|
+
...menuScope,
|
|
1157
|
+
...groupProps,
|
|
1158
|
+
ref: forwardedRef
|
|
1159
|
+
});
|
|
1160
|
+
});
|
|
1161
|
+
DropdownMenuGroup.displayName = GROUP_NAME;
|
|
1162
|
+
var LABEL_NAME = "DropdownMenuLabel";
|
|
1163
|
+
var DropdownMenuGroupLabel = /* @__PURE__ */ forwardRef14((props, forwardedRef) => {
|
|
1164
|
+
const { __scopeDropdownMenu, classNames, ...labelProps } = props;
|
|
1165
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1166
|
+
const { tx } = useThemeContext();
|
|
1167
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.Label, {
|
|
1168
|
+
...menuScope,
|
|
1169
|
+
...labelProps,
|
|
1170
|
+
className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
|
|
1171
|
+
ref: forwardedRef
|
|
1172
|
+
});
|
|
1173
|
+
});
|
|
1174
|
+
DropdownMenuGroupLabel.displayName = LABEL_NAME;
|
|
1175
|
+
var ITEM_NAME = "DropdownMenuItem";
|
|
1176
|
+
var DropdownMenuItem = /* @__PURE__ */ forwardRef14((props, forwardedRef) => {
|
|
1177
|
+
const { __scopeDropdownMenu, classNames, ...itemProps } = props;
|
|
1178
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1179
|
+
const { tx } = useThemeContext();
|
|
1180
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.Item, {
|
|
1181
|
+
...menuScope,
|
|
1182
|
+
...itemProps,
|
|
1183
|
+
className: tx("menu.item", "menu__item", {}, classNames),
|
|
1184
|
+
ref: forwardedRef
|
|
1185
|
+
});
|
|
1186
|
+
});
|
|
1187
|
+
DropdownMenuItem.displayName = ITEM_NAME;
|
|
1188
|
+
var CHECKBOX_ITEM_NAME = "DropdownMenuCheckboxItem";
|
|
1189
|
+
var DropdownMenuCheckboxItem = /* @__PURE__ */ forwardRef14((props, forwardedRef) => {
|
|
1190
|
+
const { __scopeDropdownMenu, classNames, ...checkboxItemProps } = props;
|
|
1191
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1192
|
+
const { tx } = useThemeContext();
|
|
1193
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.CheckboxItem, {
|
|
1194
|
+
...menuScope,
|
|
1195
|
+
...checkboxItemProps,
|
|
1196
|
+
className: tx("menu.item", "menu__item--checkbox", {}, classNames),
|
|
1197
|
+
ref: forwardedRef
|
|
1198
|
+
});
|
|
1199
|
+
});
|
|
1200
|
+
DropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;
|
|
1201
|
+
var RADIO_GROUP_NAME = "DropdownMenuRadioGroup";
|
|
1202
|
+
var DropdownMenuRadioGroup = /* @__PURE__ */ forwardRef14((props, forwardedRef) => {
|
|
1203
|
+
const { __scopeDropdownMenu, ...radioGroupProps } = props;
|
|
1204
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1205
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.RadioGroup, {
|
|
1206
|
+
...menuScope,
|
|
1207
|
+
...radioGroupProps,
|
|
1208
|
+
ref: forwardedRef
|
|
1209
|
+
});
|
|
1210
|
+
});
|
|
1211
|
+
DropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;
|
|
1212
|
+
var RADIO_ITEM_NAME = "DropdownMenuRadioItem";
|
|
1213
|
+
var DropdownMenuRadioItem = /* @__PURE__ */ forwardRef14((props, forwardedRef) => {
|
|
1214
|
+
const { __scopeDropdownMenu, ...radioItemProps } = props;
|
|
1215
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1216
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.RadioItem, {
|
|
1217
|
+
...menuScope,
|
|
1218
|
+
...radioItemProps,
|
|
1219
|
+
ref: forwardedRef
|
|
1220
|
+
});
|
|
1221
|
+
});
|
|
1222
|
+
DropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;
|
|
1223
|
+
var INDICATOR_NAME = "DropdownMenuItemIndicator";
|
|
1224
|
+
var DropdownMenuItemIndicator = /* @__PURE__ */ forwardRef14((props, forwardedRef) => {
|
|
1225
|
+
const { __scopeDropdownMenu, ...itemIndicatorProps } = props;
|
|
1226
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1227
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.ItemIndicator, {
|
|
1228
|
+
...menuScope,
|
|
1229
|
+
...itemIndicatorProps,
|
|
1230
|
+
ref: forwardedRef
|
|
1231
|
+
});
|
|
1232
|
+
});
|
|
1233
|
+
DropdownMenuItemIndicator.displayName = INDICATOR_NAME;
|
|
1234
|
+
var SEPARATOR_NAME = "DropdownMenuSeparator";
|
|
1235
|
+
var DropdownMenuSeparator = /* @__PURE__ */ forwardRef14((props, forwardedRef) => {
|
|
1236
|
+
const { __scopeDropdownMenu, classNames, ...separatorProps } = props;
|
|
1237
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1238
|
+
const { tx } = useThemeContext();
|
|
1239
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.Separator, {
|
|
1240
|
+
...menuScope,
|
|
1241
|
+
...separatorProps,
|
|
1242
|
+
className: tx("menu.separator", "menu__item", {}, classNames),
|
|
1243
|
+
ref: forwardedRef
|
|
1244
|
+
});
|
|
1245
|
+
});
|
|
1246
|
+
DropdownMenuSeparator.displayName = SEPARATOR_NAME;
|
|
1247
|
+
var ARROW_NAME = "DropdownMenuArrow";
|
|
1248
|
+
var DropdownMenuArrow = /* @__PURE__ */ forwardRef14((props, forwardedRef) => {
|
|
1249
|
+
const { __scopeDropdownMenu, classNames, ...arrowProps } = props;
|
|
1250
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1251
|
+
const { tx } = useThemeContext();
|
|
1252
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.Arrow, {
|
|
1253
|
+
...menuScope,
|
|
1254
|
+
...arrowProps,
|
|
1255
|
+
className: tx("menu.arrow", "menu__arrow", {}, classNames),
|
|
1256
|
+
ref: forwardedRef
|
|
1257
|
+
});
|
|
1258
|
+
});
|
|
1259
|
+
DropdownMenuArrow.displayName = ARROW_NAME;
|
|
1260
|
+
var DropdownMenuSub = (props) => {
|
|
1261
|
+
const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;
|
|
1262
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1263
|
+
const [open = false, setOpen] = useControllableState({
|
|
1264
|
+
prop: openProp,
|
|
1265
|
+
defaultProp: defaultOpen,
|
|
1266
|
+
onChange: onOpenChange
|
|
1267
|
+
});
|
|
1268
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.Sub, {
|
|
1269
|
+
...menuScope,
|
|
1270
|
+
open,
|
|
1271
|
+
onOpenChange: setOpen
|
|
1272
|
+
}, children);
|
|
1607
1273
|
};
|
|
1608
|
-
var
|
|
1609
|
-
var
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1274
|
+
var SUB_TRIGGER_NAME = "DropdownMenuSubTrigger";
|
|
1275
|
+
var DropdownMenuSubTrigger = /* @__PURE__ */ forwardRef14((props, forwardedRef) => {
|
|
1276
|
+
const { __scopeDropdownMenu, ...subTriggerProps } = props;
|
|
1277
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1278
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.SubTrigger, {
|
|
1279
|
+
...menuScope,
|
|
1280
|
+
...subTriggerProps,
|
|
1281
|
+
ref: forwardedRef
|
|
1282
|
+
});
|
|
1283
|
+
});
|
|
1284
|
+
DropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;
|
|
1285
|
+
var SUB_CONTENT_NAME = "DropdownMenuSubContent";
|
|
1286
|
+
var DropdownMenuSubContent = /* @__PURE__ */ forwardRef14((props, forwardedRef) => {
|
|
1287
|
+
const { __scopeDropdownMenu, ...subContentProps } = props;
|
|
1288
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1289
|
+
return /* @__PURE__ */ React20.createElement(MenuPrimitive.SubContent, {
|
|
1290
|
+
...menuScope,
|
|
1291
|
+
...subContentProps,
|
|
1292
|
+
ref: forwardedRef,
|
|
1615
1293
|
style: {
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1294
|
+
...props.style,
|
|
1295
|
+
// re-namespace exposed content custom properties
|
|
1296
|
+
...{
|
|
1297
|
+
"--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
|
|
1298
|
+
"--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
|
|
1299
|
+
"--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
|
|
1300
|
+
"--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
|
|
1301
|
+
"--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
|
|
1302
|
+
}
|
|
1303
|
+
}
|
|
1625
1304
|
});
|
|
1305
|
+
});
|
|
1306
|
+
DropdownMenuSubContent.displayName = SUB_CONTENT_NAME;
|
|
1307
|
+
var DropdownMenu = {
|
|
1308
|
+
Root: DropdownMenuRoot,
|
|
1309
|
+
Trigger: DropdownMenuTrigger,
|
|
1310
|
+
VirtualTrigger: DropdownMenuVirtualTrigger,
|
|
1311
|
+
Portal: DropdownMenuPortal,
|
|
1312
|
+
Content: DropdownMenuContent,
|
|
1313
|
+
Viewport: DropdownMenuViewport,
|
|
1314
|
+
Group: DropdownMenuGroup,
|
|
1315
|
+
GroupLabel: DropdownMenuGroupLabel,
|
|
1316
|
+
Item: DropdownMenuItem,
|
|
1317
|
+
CheckboxItem: DropdownMenuCheckboxItem,
|
|
1318
|
+
RadioGroup: DropdownMenuRadioGroup,
|
|
1319
|
+
RadioItem: DropdownMenuRadioItem,
|
|
1320
|
+
ItemIndicator: DropdownMenuItemIndicator,
|
|
1321
|
+
Separator: DropdownMenuSeparator,
|
|
1322
|
+
Arrow: DropdownMenuArrow,
|
|
1323
|
+
Sub: DropdownMenuSub,
|
|
1324
|
+
SubTrigger: DropdownMenuSubTrigger,
|
|
1325
|
+
SubContent: DropdownMenuSubContent
|
|
1626
1326
|
};
|
|
1327
|
+
var useDropdownMenuMenuScope = useMenuScope;
|
|
1627
1328
|
|
|
1628
|
-
// packages/ui/react-ui/src/components/
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
...props,
|
|
1636
|
-
className: tx("list.root", "list", {}, classNames),
|
|
1637
|
-
ref: forwardedRef
|
|
1638
|
-
}, children));
|
|
1639
|
-
});
|
|
1640
|
-
var ListItemEndcap = /* @__PURE__ */ forwardRef14(({ children, classNames, asChild, ...props }, forwardedRef) => {
|
|
1641
|
-
const Root7 = asChild ? Slot6 : "div";
|
|
1642
|
-
const density = useDensityContext();
|
|
1329
|
+
// packages/ui/react-ui/src/components/Input/Input.tsx
|
|
1330
|
+
import { Root as CheckboxPrimitive } from "@radix-ui/react-checkbox";
|
|
1331
|
+
import { useControllableState as useControllableState2 } from "@radix-ui/react-use-controllable-state";
|
|
1332
|
+
import React21, { forwardRef as forwardRef15, useCallback as useCallback5 } from "react";
|
|
1333
|
+
import { InputRoot, PinInput as PinInputPrimitive, TextInput as TextInputPrimitive, TextArea as TextAreaPrimitive, useInputContext, INPUT_NAME, Description as DescriptionPrimitive, DescriptionAndValidation as DescriptionAndValidationPrimitive, Label as LabelPrimitive, Validation as ValidationPrimitive } from "@dxos/react-input";
|
|
1334
|
+
import { mx as mx3 } from "@dxos/react-ui-theme";
|
|
1335
|
+
var Label3 = /* @__PURE__ */ forwardRef15(({ srOnly, classNames, children, ...props }, forwardedRef) => {
|
|
1643
1336
|
const { tx } = useThemeContext();
|
|
1644
|
-
return /* @__PURE__ */ React21.createElement(
|
|
1645
|
-
...!asChild && {
|
|
1646
|
-
role: "none"
|
|
1647
|
-
},
|
|
1337
|
+
return /* @__PURE__ */ React21.createElement(LabelPrimitive, {
|
|
1648
1338
|
...props,
|
|
1649
|
-
className: tx("
|
|
1650
|
-
|
|
1339
|
+
className: tx("input.label", "input__label", {
|
|
1340
|
+
srOnly
|
|
1651
1341
|
}, classNames),
|
|
1652
1342
|
ref: forwardedRef
|
|
1653
1343
|
}, children);
|
|
1654
1344
|
});
|
|
1655
|
-
var
|
|
1656
|
-
const density = useDensityContext();
|
|
1657
|
-
const { tx } = useThemeContext();
|
|
1658
|
-
return /* @__PURE__ */ React21.createElement("div", {
|
|
1659
|
-
role: "none",
|
|
1660
|
-
...props,
|
|
1661
|
-
className: tx("list.item.openTrigger", "list__listItem__openTrigger--mock", {
|
|
1662
|
-
density
|
|
1663
|
-
}, classNames)
|
|
1664
|
-
});
|
|
1665
|
-
};
|
|
1666
|
-
var ListItemHeading = /* @__PURE__ */ forwardRef14(({ children, classNames, ...props }, forwardedRef) => {
|
|
1345
|
+
var Description = /* @__PURE__ */ forwardRef15(({ srOnly, classNames, children, ...props }, forwardedRef) => {
|
|
1667
1346
|
const { tx } = useThemeContext();
|
|
1668
|
-
|
|
1669
|
-
return /* @__PURE__ */ React21.createElement(ListPrimitiveItemHeading, {
|
|
1347
|
+
return /* @__PURE__ */ React21.createElement(DescriptionPrimitive, {
|
|
1670
1348
|
...props,
|
|
1671
|
-
className: tx("
|
|
1672
|
-
|
|
1349
|
+
className: tx("input.description", "input__description", {
|
|
1350
|
+
srOnly
|
|
1673
1351
|
}, classNames),
|
|
1674
1352
|
ref: forwardedRef
|
|
1675
1353
|
}, children);
|
|
1676
1354
|
});
|
|
1677
|
-
var
|
|
1355
|
+
var Validation = /* @__PURE__ */ forwardRef15(({ __inputScope, srOnly, classNames, children, ...props }, forwardedRef) => {
|
|
1678
1356
|
const { tx } = useThemeContext();
|
|
1679
|
-
const
|
|
1680
|
-
|
|
1681
|
-
const Icon3 = open ? CaretDown : CaretRight;
|
|
1682
|
-
return /* @__PURE__ */ React21.createElement(ListPrimitiveItemOpenTrigger, {
|
|
1357
|
+
const { validationValence } = useInputContext(INPUT_NAME, __inputScope);
|
|
1358
|
+
return /* @__PURE__ */ React21.createElement(ValidationPrimitive, {
|
|
1683
1359
|
...props,
|
|
1684
|
-
className: tx("
|
|
1685
|
-
|
|
1360
|
+
className: tx("input.validation", `input__validation-message input__validation-message--${validationValence}`, {
|
|
1361
|
+
srOnly,
|
|
1362
|
+
validationValence
|
|
1686
1363
|
}, classNames),
|
|
1687
1364
|
ref: forwardedRef
|
|
1688
|
-
}, children
|
|
1689
|
-
weight: "bold",
|
|
1690
|
-
className: tx("list.item.openTriggerIcon", "list__listItem__openTrigger__icon", {})
|
|
1691
|
-
}));
|
|
1365
|
+
}, children);
|
|
1692
1366
|
});
|
|
1693
|
-
var
|
|
1367
|
+
var DescriptionAndValidation = /* @__PURE__ */ forwardRef15(({ srOnly, classNames, children, ...props }, forwardedRef) => {
|
|
1694
1368
|
const { tx } = useThemeContext();
|
|
1695
|
-
|
|
1696
|
-
return /* @__PURE__ */ React21.createElement(ListPrimitiveItem, {
|
|
1369
|
+
return /* @__PURE__ */ React21.createElement(DescriptionAndValidationPrimitive, {
|
|
1697
1370
|
...props,
|
|
1698
|
-
className: tx("
|
|
1699
|
-
|
|
1700
|
-
collapsible: props.collapsible
|
|
1371
|
+
className: tx("input.descriptionAndValidation", "input__description-and-validation", {
|
|
1372
|
+
srOnly
|
|
1701
1373
|
}, classNames),
|
|
1702
1374
|
ref: forwardedRef
|
|
1703
1375
|
}, children);
|
|
1704
1376
|
});
|
|
1705
|
-
var
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1377
|
+
var PinInput = /* @__PURE__ */ forwardRef15(({ density: propsDensity, elevation: propsElevation, segmentClassName: propsSegmentClassName, inputClassName, variant, ...props }, forwardedRef) => {
|
|
1378
|
+
const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
|
|
1379
|
+
const { tx } = useThemeContext();
|
|
1380
|
+
const density = useDensityContext(propsDensity);
|
|
1381
|
+
const elevation = useElevationContext(propsElevation);
|
|
1382
|
+
const segmentClassName = useCallback5(({ focused, validationValence }) => tx("input.input", "input--pin-segment", {
|
|
1383
|
+
variant: "static",
|
|
1384
|
+
focused,
|
|
1385
|
+
disabled: props.disabled,
|
|
1386
|
+
density,
|
|
1387
|
+
elevation,
|
|
1388
|
+
validationValence
|
|
1389
|
+
}, propsSegmentClassName), [
|
|
1390
|
+
tx,
|
|
1391
|
+
props.disabled,
|
|
1392
|
+
elevation,
|
|
1393
|
+
propsElevation,
|
|
1394
|
+
density
|
|
1395
|
+
]);
|
|
1396
|
+
return /* @__PURE__ */ React21.createElement(PinInputPrimitive, {
|
|
1397
|
+
...props,
|
|
1398
|
+
segmentClassName,
|
|
1399
|
+
...props.autoFocus && !hasIosKeyboard2 && {
|
|
1400
|
+
autoFocus: true
|
|
1401
|
+
},
|
|
1402
|
+
inputClassName: tx("input.inputWithSegments", "input input--pin", {
|
|
1403
|
+
disabled: props.disabled
|
|
1404
|
+
}, inputClassName),
|
|
1405
|
+
ref: forwardedRef
|
|
1406
|
+
});
|
|
1407
|
+
});
|
|
1408
|
+
var TextInput = /* @__PURE__ */ forwardRef15(({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {
|
|
1409
|
+
const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
|
|
1410
|
+
const themeContextValue = useThemeContext();
|
|
1411
|
+
const density = useDensityContext(propsDensity);
|
|
1412
|
+
const elevation = useElevationContext(propsElevation);
|
|
1413
|
+
const { validationValence } = useInputContext(INPUT_NAME, __inputScope);
|
|
1414
|
+
const { tx } = themeContextValue;
|
|
1415
|
+
return /* @__PURE__ */ React21.createElement(TextInputPrimitive, {
|
|
1416
|
+
...props,
|
|
1417
|
+
className: tx("input.input", "input", {
|
|
1418
|
+
variant,
|
|
1419
|
+
disabled: props.disabled,
|
|
1420
|
+
density,
|
|
1421
|
+
elevation,
|
|
1422
|
+
validationValence
|
|
1423
|
+
}, classNames),
|
|
1424
|
+
...props.autoFocus && !hasIosKeyboard2 && {
|
|
1425
|
+
autoFocus: true
|
|
1426
|
+
},
|
|
1427
|
+
ref: forwardedRef
|
|
1428
|
+
});
|
|
1429
|
+
});
|
|
1430
|
+
var TextArea = /* @__PURE__ */ forwardRef15(({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {
|
|
1431
|
+
const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
|
|
1432
|
+
const { tx } = useThemeContext();
|
|
1433
|
+
const density = useDensityContext(propsDensity);
|
|
1434
|
+
const elevation = useElevationContext(propsElevation);
|
|
1435
|
+
const { validationValence } = useInputContext(INPUT_NAME, __inputScope);
|
|
1436
|
+
return /* @__PURE__ */ React21.createElement(TextAreaPrimitive, {
|
|
1437
|
+
...props,
|
|
1438
|
+
className: tx("input.input", "input--text-area", {
|
|
1439
|
+
variant,
|
|
1440
|
+
disabled: props.disabled,
|
|
1441
|
+
density,
|
|
1442
|
+
elevation,
|
|
1443
|
+
validationValence
|
|
1444
|
+
}, classNames),
|
|
1445
|
+
...props.autoFocus && !hasIosKeyboard2 && {
|
|
1446
|
+
autoFocus: true
|
|
1447
|
+
},
|
|
1448
|
+
ref: forwardedRef
|
|
1449
|
+
});
|
|
1450
|
+
});
|
|
1451
|
+
var Checkbox = /* @__PURE__ */ forwardRef15(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size, weight = "bold", classNames, ...props }, forwardedRef) => {
|
|
1452
|
+
const [checked, onCheckedChange] = useControllableState2({
|
|
1453
|
+
prop: propsChecked,
|
|
1454
|
+
defaultProp: propsDefaultChecked,
|
|
1455
|
+
onChange: propsOnCheckedChange
|
|
1456
|
+
});
|
|
1457
|
+
const { id, validationValence, descriptionId, errorMessageId } = useInputContext(INPUT_NAME, __inputScope);
|
|
1458
|
+
const { tx } = useThemeContext();
|
|
1459
|
+
return /* @__PURE__ */ React21.createElement(CheckboxPrimitive, {
|
|
1460
|
+
...props,
|
|
1461
|
+
checked,
|
|
1462
|
+
onCheckedChange,
|
|
1463
|
+
id,
|
|
1464
|
+
"aria-describedby": descriptionId,
|
|
1465
|
+
...validationValence === "error" && {
|
|
1466
|
+
"aria-invalid": "true",
|
|
1467
|
+
"aria-errormessage": errorMessageId
|
|
1468
|
+
},
|
|
1469
|
+
className: tx("input.checkbox", "input--checkbox", {
|
|
1470
|
+
size
|
|
1471
|
+
}, "shrink-0", classNames),
|
|
1472
|
+
ref: forwardedRef
|
|
1473
|
+
}, /* @__PURE__ */ React21.createElement(Icon, {
|
|
1474
|
+
icon: checked === "indeterminate" ? "ph--minus--regular" : "ph--check--regular",
|
|
1475
|
+
classNames: tx("input.checkboxIndicator", "input--checkbox__indicator", {
|
|
1476
|
+
size,
|
|
1477
|
+
checked
|
|
1478
|
+
})
|
|
1479
|
+
}));
|
|
1480
|
+
});
|
|
1481
|
+
var Switch = /* @__PURE__ */ forwardRef15(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, classNames, ...props }, forwardedRef) => {
|
|
1482
|
+
const [checked, onCheckedChange] = useControllableState2({
|
|
1483
|
+
prop: propsChecked,
|
|
1484
|
+
defaultProp: propsDefaultChecked ?? false,
|
|
1485
|
+
onChange: propsOnCheckedChange
|
|
1486
|
+
});
|
|
1487
|
+
const { id, validationValence, descriptionId, errorMessageId } = useInputContext(INPUT_NAME, __inputScope);
|
|
1488
|
+
return /* @__PURE__ */ React21.createElement("input", {
|
|
1489
|
+
type: "checkbox",
|
|
1490
|
+
className: mx3("dx-checkbox--switch dx-focus-ring", classNames),
|
|
1491
|
+
checked,
|
|
1492
|
+
onChange: (event) => {
|
|
1493
|
+
onCheckedChange(event.target.checked);
|
|
1494
|
+
},
|
|
1495
|
+
id,
|
|
1496
|
+
"aria-describedby": descriptionId,
|
|
1497
|
+
...props,
|
|
1498
|
+
...validationValence === "error" && {
|
|
1499
|
+
"aria-invalid": "true",
|
|
1500
|
+
"aria-errormessage": errorMessageId
|
|
1501
|
+
},
|
|
1502
|
+
ref: forwardedRef
|
|
1503
|
+
});
|
|
1504
|
+
});
|
|
1505
|
+
var Input = {
|
|
1506
|
+
Root: InputRoot,
|
|
1507
|
+
PinInput,
|
|
1508
|
+
TextInput,
|
|
1509
|
+
TextArea,
|
|
1510
|
+
Checkbox,
|
|
1511
|
+
Switch,
|
|
1512
|
+
Label: Label3,
|
|
1513
|
+
Description,
|
|
1514
|
+
Validation,
|
|
1515
|
+
DescriptionAndValidation
|
|
1516
|
+
};
|
|
1517
|
+
|
|
1518
|
+
// packages/ui/react-ui/src/components/Lists/List.tsx
|
|
1519
|
+
import { CaretDown, CaretRight } from "@phosphor-icons/react";
|
|
1520
|
+
import { Slot as Slot8 } from "@radix-ui/react-slot";
|
|
1521
|
+
import React23, { forwardRef as forwardRef16 } from "react";
|
|
1522
|
+
import { List as ListPrimitive, ListItemHeading as ListPrimitiveItemHeading, ListItemOpenTrigger as ListPrimitiveItemOpenTrigger, ListItemCollapsibleContent, ListItem as ListPrimitiveItem, LIST_NAME, LIST_ITEM_NAME, useListContext, useListItemContext } from "@dxos/react-list";
|
|
1523
|
+
|
|
1524
|
+
// packages/ui/react-ui/src/components/Lists/ListDropIndicator.tsx
|
|
1525
|
+
import React22 from "react";
|
|
1526
|
+
var edgeToOrientationMap = {
|
|
1527
|
+
top: "horizontal",
|
|
1528
|
+
bottom: "horizontal",
|
|
1529
|
+
left: "vertical",
|
|
1530
|
+
right: "vertical"
|
|
1531
|
+
};
|
|
1532
|
+
var orientationStyles = {
|
|
1533
|
+
horizontal: "h-[--line-thickness] left-[calc(var(--line-inset)+var(--terminal-radius))] right-[--line-inset] before:left-[--terminal-inset]",
|
|
1534
|
+
vertical: "w-[--line-thickness] top-[calc(var(--line-inset)+var(--terminal-radius))] bottom-[--line-inset] before:top-[--terminal-inset]"
|
|
1535
|
+
};
|
|
1536
|
+
var edgeStyles = {
|
|
1537
|
+
top: "top-[--line-offset] before:top-[--offset-terminal]",
|
|
1538
|
+
right: "right-[--line-offset] before:right-[--offset-terminal]",
|
|
1539
|
+
bottom: "bottom-[--line-offset] before:bottom-[--offset-terminal]",
|
|
1540
|
+
left: "left-[--line-offset] before:left-[--offset-terminal]"
|
|
1541
|
+
};
|
|
1542
|
+
var strokeSize = 2;
|
|
1543
|
+
var terminalSize = 8;
|
|
1544
|
+
var offsetToAlignTerminalWithLine = (strokeSize - terminalSize) / 2;
|
|
1545
|
+
var ListDropIndicator = ({ edge, gap = 0, lineInset = 0, terminalInset = lineInset - terminalSize }) => {
|
|
1546
|
+
const orientation = edgeToOrientationMap[edge];
|
|
1547
|
+
return /* @__PURE__ */ React22.createElement("div", {
|
|
1548
|
+
role: "none",
|
|
1549
|
+
style: {
|
|
1550
|
+
"--line-thickness": `${strokeSize}px`,
|
|
1551
|
+
"--line-offset": `calc(-0.5 * (${gap}px + ${strokeSize}px))`,
|
|
1552
|
+
"--line-inset": `${lineInset}px`,
|
|
1553
|
+
"--terminal-size": `${terminalSize}px`,
|
|
1554
|
+
"--terminal-radius": `${terminalSize / 2}px`,
|
|
1555
|
+
"--terminal-inset": `${terminalInset}px`,
|
|
1556
|
+
"--offset-terminal": `${offsetToAlignTerminalWithLine}px`
|
|
1557
|
+
},
|
|
1558
|
+
className: `absolute z-10 pointer-events-none bg-accentSurface before:content-[''] before:w-[--terminal-size] before:h-[--terminal-size] box-border before:absolute before:border-[length:--line-thickness] before:border-solid before:border-accentSurface before:rounded-full ${orientationStyles[orientation]} ${edgeStyles[edge]}`
|
|
1559
|
+
});
|
|
1560
|
+
};
|
|
1561
|
+
|
|
1562
|
+
// packages/ui/react-ui/src/components/Lists/List.tsx
|
|
1563
|
+
var List = /* @__PURE__ */ forwardRef16(({ classNames, children, ...props }, forwardedRef) => {
|
|
1564
|
+
const { tx } = useThemeContext();
|
|
1565
|
+
const density = useDensityContext(props.density);
|
|
1566
|
+
return /* @__PURE__ */ React23.createElement(DensityProvider, {
|
|
1567
|
+
density
|
|
1568
|
+
}, /* @__PURE__ */ React23.createElement(ListPrimitive, {
|
|
1569
|
+
...props,
|
|
1570
|
+
className: tx("list.root", "list", {}, classNames),
|
|
1571
|
+
ref: forwardedRef
|
|
1572
|
+
}, children));
|
|
1573
|
+
});
|
|
1574
|
+
var ListItemEndcap = /* @__PURE__ */ forwardRef16(({ children, classNames, asChild, ...props }, forwardedRef) => {
|
|
1575
|
+
const Root5 = asChild ? Slot8 : "div";
|
|
1576
|
+
const density = useDensityContext();
|
|
1577
|
+
const { tx } = useThemeContext();
|
|
1578
|
+
return /* @__PURE__ */ React23.createElement(Root5, {
|
|
1579
|
+
...!asChild && {
|
|
1580
|
+
role: "none"
|
|
1581
|
+
},
|
|
1582
|
+
...props,
|
|
1583
|
+
className: tx("list.item.endcap", "list__listItem__endcap", {
|
|
1584
|
+
density
|
|
1585
|
+
}, classNames),
|
|
1586
|
+
ref: forwardedRef
|
|
1587
|
+
}, children);
|
|
1588
|
+
});
|
|
1589
|
+
var MockListItemOpenTrigger = ({ classNames, ...props }) => {
|
|
1590
|
+
const density = useDensityContext();
|
|
1591
|
+
const { tx } = useThemeContext();
|
|
1592
|
+
return /* @__PURE__ */ React23.createElement("div", {
|
|
1593
|
+
role: "none",
|
|
1594
|
+
...props,
|
|
1595
|
+
className: tx("list.item.openTrigger", "list__listItem__openTrigger--mock", {
|
|
1596
|
+
density
|
|
1597
|
+
}, classNames)
|
|
1598
|
+
});
|
|
1599
|
+
};
|
|
1600
|
+
var ListItemHeading = /* @__PURE__ */ forwardRef16(({ children, classNames, ...props }, forwardedRef) => {
|
|
1601
|
+
const { tx } = useThemeContext();
|
|
1602
|
+
const density = useDensityContext();
|
|
1603
|
+
return /* @__PURE__ */ React23.createElement(ListPrimitiveItemHeading, {
|
|
1604
|
+
...props,
|
|
1605
|
+
className: tx("list.item.heading", "list__listItem__heading", {
|
|
1606
|
+
density
|
|
1607
|
+
}, classNames),
|
|
1608
|
+
ref: forwardedRef
|
|
1609
|
+
}, children);
|
|
1610
|
+
});
|
|
1611
|
+
var ListItemOpenTrigger = /* @__PURE__ */ forwardRef16(({ __listItemScope, classNames, children, ...props }, forwardedRef) => {
|
|
1612
|
+
const { tx } = useThemeContext();
|
|
1613
|
+
const density = useDensityContext();
|
|
1614
|
+
const { open } = useListItemContext(LIST_ITEM_NAME, __listItemScope);
|
|
1615
|
+
const Icon3 = open ? CaretDown : CaretRight;
|
|
1616
|
+
return /* @__PURE__ */ React23.createElement(ListPrimitiveItemOpenTrigger, {
|
|
1617
|
+
...props,
|
|
1618
|
+
className: tx("list.item.openTrigger", "list__listItem__openTrigger", {
|
|
1619
|
+
density
|
|
1620
|
+
}, classNames),
|
|
1621
|
+
ref: forwardedRef
|
|
1622
|
+
}, children || /* @__PURE__ */ React23.createElement(Icon3, {
|
|
1623
|
+
weight: "bold",
|
|
1624
|
+
className: tx("list.item.openTriggerIcon", "list__listItem__openTrigger__icon", {})
|
|
1625
|
+
}));
|
|
1626
|
+
});
|
|
1627
|
+
var ListItemRoot = /* @__PURE__ */ forwardRef16(({ classNames, children, ...props }, forwardedRef) => {
|
|
1628
|
+
const { tx } = useThemeContext();
|
|
1629
|
+
const density = useDensityContext();
|
|
1630
|
+
return /* @__PURE__ */ React23.createElement(ListPrimitiveItem, {
|
|
1631
|
+
...props,
|
|
1632
|
+
className: tx("list.item.root", "list__listItem", {
|
|
1633
|
+
density,
|
|
1634
|
+
collapsible: props.collapsible
|
|
1635
|
+
}, classNames),
|
|
1636
|
+
ref: forwardedRef
|
|
1637
|
+
}, children);
|
|
1638
|
+
});
|
|
1639
|
+
var ListItem = {
|
|
1640
|
+
Root: ListItemRoot,
|
|
1641
|
+
Endcap: ListItemEndcap,
|
|
1642
|
+
Heading: ListItemHeading,
|
|
1709
1643
|
OpenTrigger: ListItemOpenTrigger,
|
|
1710
1644
|
CollapsibleContent: ListItemCollapsibleContent,
|
|
1711
1645
|
MockOpenTrigger: MockListItemOpenTrigger,
|
|
@@ -1713,10 +1647,10 @@ var ListItem = {
|
|
|
1713
1647
|
};
|
|
1714
1648
|
|
|
1715
1649
|
// packages/ui/react-ui/src/components/Lists/Tree.tsx
|
|
1716
|
-
import
|
|
1650
|
+
import React25, { forwardRef as forwardRef17 } from "react";
|
|
1717
1651
|
|
|
1718
1652
|
// packages/ui/react-ui/src/components/Lists/TreeDropIndicator.tsx
|
|
1719
|
-
import
|
|
1653
|
+
import React24 from "react";
|
|
1720
1654
|
var edgeToOrientationMap2 = {
|
|
1721
1655
|
"reorder-above": "sibling",
|
|
1722
1656
|
"reorder-below": "sibling",
|
|
@@ -1746,7 +1680,7 @@ var TreeDropIndicator = ({ instruction, gap = 0 }) => {
|
|
|
1746
1680
|
if (isBlocked) {
|
|
1747
1681
|
return null;
|
|
1748
1682
|
}
|
|
1749
|
-
return /* @__PURE__ */
|
|
1683
|
+
return /* @__PURE__ */ React24.createElement("div", {
|
|
1750
1684
|
style: {
|
|
1751
1685
|
"--line-thickness": `${strokeSize2}px`,
|
|
1752
1686
|
"--line-offset": `${lineOffset}`,
|
|
@@ -1761,22 +1695,22 @@ var TreeDropIndicator = ({ instruction, gap = 0 }) => {
|
|
|
1761
1695
|
};
|
|
1762
1696
|
|
|
1763
1697
|
// packages/ui/react-ui/src/components/Lists/Tree.tsx
|
|
1764
|
-
var TreeRoot = /* @__PURE__ */
|
|
1765
|
-
return /* @__PURE__ */
|
|
1698
|
+
var TreeRoot = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
|
|
1699
|
+
return /* @__PURE__ */ React25.createElement(List, {
|
|
1766
1700
|
...props,
|
|
1767
1701
|
ref: forwardedRef
|
|
1768
1702
|
});
|
|
1769
1703
|
});
|
|
1770
|
-
var TreeBranch = /* @__PURE__ */
|
|
1704
|
+
var TreeBranch = /* @__PURE__ */ forwardRef17(({ __listScope, ...props }, forwardedRef) => {
|
|
1771
1705
|
const { headingId } = useListItemContext(LIST_ITEM_NAME, __listScope);
|
|
1772
|
-
return /* @__PURE__ */
|
|
1706
|
+
return /* @__PURE__ */ React25.createElement(List, {
|
|
1773
1707
|
...props,
|
|
1774
1708
|
"aria-labelledby": headingId,
|
|
1775
1709
|
ref: forwardedRef
|
|
1776
1710
|
});
|
|
1777
1711
|
});
|
|
1778
|
-
var TreeItemRoot = /* @__PURE__ */
|
|
1779
|
-
return /* @__PURE__ */
|
|
1712
|
+
var TreeItemRoot = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
|
|
1713
|
+
return /* @__PURE__ */ React25.createElement(ListItem.Root, {
|
|
1780
1714
|
role: "treeitem",
|
|
1781
1715
|
...props,
|
|
1782
1716
|
ref: forwardedRef
|
|
@@ -1802,24 +1736,24 @@ var TreeItem = {
|
|
|
1802
1736
|
// packages/ui/react-ui/src/components/Lists/Treegrid.tsx
|
|
1803
1737
|
import { useArrowNavigationGroup, useFocusableGroup } from "@fluentui/react-tabster";
|
|
1804
1738
|
import { createContextScope as createContextScope2 } from "@radix-ui/react-context";
|
|
1805
|
-
import { Primitive as
|
|
1806
|
-
import { Slot as
|
|
1739
|
+
import { Primitive as Primitive8 } from "@radix-ui/react-primitive";
|
|
1740
|
+
import { Slot as Slot9 } from "@radix-ui/react-slot";
|
|
1807
1741
|
import { useControllableState as useControllableState3 } from "@radix-ui/react-use-controllable-state";
|
|
1808
|
-
import
|
|
1742
|
+
import React26, { forwardRef as forwardRef18 } from "react";
|
|
1809
1743
|
var TREEGRID_ROW_NAME = "TreegridRow";
|
|
1810
1744
|
var [createTreegridRowContext, createTreegridRowScope] = createContextScope2(TREEGRID_ROW_NAME, []);
|
|
1811
1745
|
var [TreegridRowProvider, useTreegridRowContext] = createTreegridRowContext(TREEGRID_ROW_NAME);
|
|
1812
1746
|
var PATH_SEPARATOR = "~";
|
|
1813
1747
|
var PARENT_OF_SEPARATOR = " ";
|
|
1814
|
-
var TreegridRoot = /* @__PURE__ */
|
|
1748
|
+
var TreegridRoot = /* @__PURE__ */ forwardRef18(({ asChild, classNames, children, style, gridTemplateColumns, ...props }, forwardedRef) => {
|
|
1815
1749
|
const { tx } = useThemeContext();
|
|
1816
|
-
const
|
|
1750
|
+
const Root5 = asChild ? Slot9 : Primitive8.div;
|
|
1817
1751
|
const arrowNavigationAttrs = useArrowNavigationGroup({
|
|
1818
1752
|
axis: "vertical",
|
|
1819
1753
|
tabbable: false,
|
|
1820
1754
|
circular: true
|
|
1821
1755
|
});
|
|
1822
|
-
return /* @__PURE__ */
|
|
1756
|
+
return /* @__PURE__ */ React26.createElement(Root5, {
|
|
1823
1757
|
role: "treegrid",
|
|
1824
1758
|
...arrowNavigationAttrs,
|
|
1825
1759
|
...props,
|
|
@@ -1831,9 +1765,9 @@ var TreegridRoot = /* @__PURE__ */ forwardRef16(({ asChild, classNames, children
|
|
|
1831
1765
|
ref: forwardedRef
|
|
1832
1766
|
}, children);
|
|
1833
1767
|
});
|
|
1834
|
-
var TreegridRow = /* @__PURE__ */
|
|
1768
|
+
var TreegridRow = /* @__PURE__ */ forwardRef18(({ __treegridRowScope, asChild, classNames, children, id, parentOf, open: propsOpen, defaultOpen, onOpenChange: propsOnOpenChange, ...props }, forwardedRef) => {
|
|
1835
1769
|
const { tx } = useThemeContext();
|
|
1836
|
-
const
|
|
1770
|
+
const Root5 = asChild ? Slot9 : Primitive8.div;
|
|
1837
1771
|
const pathParts = id.split(PATH_SEPARATOR);
|
|
1838
1772
|
const level = pathParts.length - 1;
|
|
1839
1773
|
const [open, onOpenChange] = useControllableState3({
|
|
@@ -1850,11 +1784,11 @@ var TreegridRow = /* @__PURE__ */ forwardRef16(({ __treegridRowScope, asChild, c
|
|
|
1850
1784
|
circular: false,
|
|
1851
1785
|
memorizeCurrent: false
|
|
1852
1786
|
});
|
|
1853
|
-
return /* @__PURE__ */
|
|
1787
|
+
return /* @__PURE__ */ React26.createElement(TreegridRowProvider, {
|
|
1854
1788
|
open,
|
|
1855
1789
|
onOpenChange,
|
|
1856
1790
|
scope: __treegridRowScope
|
|
1857
|
-
}, /* @__PURE__ */
|
|
1791
|
+
}, /* @__PURE__ */ React26.createElement(Root5, {
|
|
1858
1792
|
role: "row",
|
|
1859
1793
|
"aria-level": level,
|
|
1860
1794
|
className: tx("treegrid.row", "treegrid__row", {
|
|
@@ -1869,15 +1803,15 @@ var TreegridRow = /* @__PURE__ */ forwardRef16(({ __treegridRowScope, asChild, c
|
|
|
1869
1803
|
...props,
|
|
1870
1804
|
id,
|
|
1871
1805
|
ref: forwardedRef
|
|
1872
|
-
}, /* @__PURE__ */
|
|
1806
|
+
}, /* @__PURE__ */ React26.createElement("div", {
|
|
1873
1807
|
role: "none",
|
|
1874
1808
|
className: "contents",
|
|
1875
1809
|
...arrowGroupAttrs
|
|
1876
1810
|
}, children)));
|
|
1877
1811
|
});
|
|
1878
|
-
var TreegridCell = /* @__PURE__ */
|
|
1812
|
+
var TreegridCell = /* @__PURE__ */ forwardRef18(({ classNames, children, indent, ...props }, forwardedRef) => {
|
|
1879
1813
|
const { tx } = useThemeContext();
|
|
1880
|
-
return /* @__PURE__ */
|
|
1814
|
+
return /* @__PURE__ */ React26.createElement("div", {
|
|
1881
1815
|
role: "gridcell",
|
|
1882
1816
|
className: tx("treegrid.cell", "treegrid__cell", {
|
|
1883
1817
|
indent
|
|
@@ -1899,15 +1833,15 @@ var Treegrid = {
|
|
|
1899
1833
|
// packages/ui/react-ui/src/components/Main/Main.tsx
|
|
1900
1834
|
import { createContext as createContext10 } from "@radix-ui/react-context";
|
|
1901
1835
|
import { Root as DialogRoot2, DialogContent as DialogContent2, DialogTitle as DialogTitle2 } from "@radix-ui/react-dialog";
|
|
1902
|
-
import { Primitive as
|
|
1903
|
-
import { Slot as
|
|
1836
|
+
import { Primitive as Primitive9 } from "@radix-ui/react-primitive";
|
|
1837
|
+
import { Slot as Slot10 } from "@radix-ui/react-slot";
|
|
1904
1838
|
import { useControllableState as useControllableState4 } from "@radix-ui/react-use-controllable-state";
|
|
1905
|
-
import
|
|
1839
|
+
import React27, { forwardRef as forwardRef19, useCallback as useCallback7, useEffect as useEffect5, useRef as useRef2, useState as useState8 } from "react";
|
|
1906
1840
|
import { log } from "@dxos/log";
|
|
1907
1841
|
import { useMediaQuery, useForwardedRef } from "@dxos/react-hooks";
|
|
1908
1842
|
|
|
1909
1843
|
// packages/ui/react-ui/src/components/Main/useSwipeToDismiss.ts
|
|
1910
|
-
import { useCallback as useCallback6, useEffect as useEffect4, useState as
|
|
1844
|
+
import { useCallback as useCallback6, useEffect as useEffect4, useState as useState7 } from "react";
|
|
1911
1845
|
var MotionState;
|
|
1912
1846
|
(function(MotionState2) {
|
|
1913
1847
|
MotionState2[MotionState2["IDLE"] = 0] = "IDLE";
|
|
@@ -1922,8 +1856,8 @@ var useSwipeToDismiss = (ref, {
|
|
|
1922
1856
|
/* side = 'inline-start' */
|
|
1923
1857
|
}) => {
|
|
1924
1858
|
const $root = ref.current;
|
|
1925
|
-
const [motionState, setMotionState] =
|
|
1926
|
-
const [gestureStartX, setGestureStartX] =
|
|
1859
|
+
const [motionState, setMotionState] = useState7(0);
|
|
1860
|
+
const [gestureStartX, setGestureStartX] = useState7(0);
|
|
1927
1861
|
const setIdle = useCallback6(() => {
|
|
1928
1862
|
setMotionState(0);
|
|
1929
1863
|
$root?.style.removeProperty("inset-inline-start");
|
|
@@ -2091,652 +2025,185 @@ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNa
|
|
|
2091
2025
|
const [navigationSidebarState = isLg ? "expanded" : "collapsed", setNavigationSidebarState] = useControllableState4({
|
|
2092
2026
|
prop: propsNavigationSidebarState,
|
|
2093
2027
|
defaultProp: defaultNavigationSidebarState,
|
|
2094
|
-
onChange: onNavigationSidebarStateChange
|
|
2095
|
-
});
|
|
2096
|
-
const [complementarySidebarState = isLg ? "expanded" : "collapsed", setComplementarySidebarState] = useControllableState4({
|
|
2097
|
-
prop: propsComplementarySidebarState,
|
|
2098
|
-
defaultProp: defaultComplementarySidebarState,
|
|
2099
|
-
onChange: onComplementarySidebarStateChange
|
|
2100
|
-
});
|
|
2101
|
-
const [resizing, setResizing] = useState7(false);
|
|
2102
|
-
const resizeInterval = useRef2(null);
|
|
2103
|
-
const handleResize = useCallback7(() => {
|
|
2104
|
-
setResizing(true);
|
|
2105
|
-
if (resizeInterval.current) {
|
|
2106
|
-
clearTimeout(resizeInterval.current);
|
|
2107
|
-
}
|
|
2108
|
-
resizeInterval.current = setTimeout(() => {
|
|
2109
|
-
setResizing(false);
|
|
2110
|
-
resizeInterval.current = null;
|
|
2111
|
-
}, resizeDebounce);
|
|
2112
|
-
}, []);
|
|
2113
|
-
useEffect5(() => {
|
|
2114
|
-
window.addEventListener("resize", handleResize);
|
|
2115
|
-
return () => window.removeEventListener("resize", handleResize);
|
|
2116
|
-
}, [
|
|
2117
|
-
handleResize
|
|
2118
|
-
]);
|
|
2119
|
-
return /* @__PURE__ */ React25.createElement(MainProvider, {
|
|
2120
|
-
...props,
|
|
2121
|
-
navigationSidebarState,
|
|
2122
|
-
setNavigationSidebarState,
|
|
2123
|
-
complementarySidebarState,
|
|
2124
|
-
setComplementarySidebarState,
|
|
2125
|
-
resizing
|
|
2126
|
-
}, children);
|
|
2127
|
-
};
|
|
2128
|
-
MainRoot.displayName = MAIN_ROOT_NAME;
|
|
2129
|
-
var handleOpenAutoFocus = (event) => {
|
|
2130
|
-
!document.body.hasAttribute("data-is-keyboard") && event.preventDefault();
|
|
2131
|
-
};
|
|
2132
|
-
var MainSidebar = /* @__PURE__ */ forwardRef17(({ classNames, children, swipeToDismiss, onOpenAutoFocus, state, resizing, onStateChange, side, label, ...props }, forwardedRef) => {
|
|
2133
|
-
const [isLg] = useMediaQuery("lg", {
|
|
2134
|
-
ssr: false
|
|
2135
|
-
});
|
|
2136
|
-
const { tx } = useThemeContext();
|
|
2137
|
-
const { t } = useTranslation();
|
|
2138
|
-
const ref = useForwardedRef(forwardedRef);
|
|
2139
|
-
const noopRef = useRef2(null);
|
|
2140
|
-
useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {
|
|
2141
|
-
onDismiss: () => onStateChange?.("closed")
|
|
2142
|
-
});
|
|
2143
|
-
const handleKeyDown = useCallback7((event) => {
|
|
2144
|
-
if (event.key === "Escape") {
|
|
2145
|
-
event.target.closest("[data-tabster]")?.focus();
|
|
2146
|
-
}
|
|
2147
|
-
props.onKeyDown?.(event);
|
|
2148
|
-
}, [
|
|
2149
|
-
props.onKeyDown
|
|
2150
|
-
]);
|
|
2151
|
-
const Root7 = isLg ? Primitive8.div : DialogContent2;
|
|
2152
|
-
return /* @__PURE__ */ React25.createElement(DialogRoot2, {
|
|
2153
|
-
open: state !== "closed",
|
|
2154
|
-
"aria-label": toLocalizedString(label, t),
|
|
2155
|
-
modal: false
|
|
2156
|
-
}, !isLg && /* @__PURE__ */ React25.createElement(DialogTitle2, {
|
|
2157
|
-
className: "sr-only"
|
|
2158
|
-
}, toLocalizedString(label, t)), /* @__PURE__ */ React25.createElement(Root7, {
|
|
2159
|
-
...!isLg && {
|
|
2160
|
-
forceMount: true,
|
|
2161
|
-
tabIndex: -1,
|
|
2162
|
-
onOpenAutoFocus: onOpenAutoFocus ?? handleOpenAutoFocus
|
|
2163
|
-
},
|
|
2164
|
-
...props,
|
|
2165
|
-
"data-side": side === "inline-end" ? "ie" : "is",
|
|
2166
|
-
"data-state": state,
|
|
2167
|
-
"data-resizing": resizing ? "true" : "false",
|
|
2168
|
-
className: tx("main.sidebar", "main__sidebar", {}, classNames),
|
|
2169
|
-
onKeyDown: handleKeyDown,
|
|
2170
|
-
...state === "closed" && {
|
|
2171
|
-
inert: "true"
|
|
2172
|
-
},
|
|
2173
|
-
ref
|
|
2174
|
-
}, children));
|
|
2175
|
-
});
|
|
2176
|
-
var MainNavigationSidebar = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
|
|
2177
|
-
const { navigationSidebarState, setNavigationSidebarState, resizing } = useMainContext(NAVIGATION_SIDEBAR_NAME);
|
|
2178
|
-
const mover = useLandmarkMover(props.onKeyDown, "0");
|
|
2179
|
-
return /* @__PURE__ */ React25.createElement(MainSidebar, {
|
|
2180
|
-
...mover,
|
|
2181
|
-
...props,
|
|
2182
|
-
state: navigationSidebarState,
|
|
2183
|
-
onStateChange: setNavigationSidebarState,
|
|
2184
|
-
resizing,
|
|
2185
|
-
side: "inline-start",
|
|
2186
|
-
ref: forwardedRef
|
|
2187
|
-
});
|
|
2188
|
-
});
|
|
2189
|
-
MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
|
|
2190
|
-
var MainComplementarySidebar = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
|
|
2191
|
-
const { complementarySidebarState, setComplementarySidebarState, resizing } = useMainContext(COMPLEMENTARY_SIDEBAR_NAME);
|
|
2192
|
-
const mover = useLandmarkMover(props.onKeyDown, "2");
|
|
2193
|
-
return /* @__PURE__ */ React25.createElement(MainSidebar, {
|
|
2194
|
-
...mover,
|
|
2195
|
-
...props,
|
|
2196
|
-
state: complementarySidebarState,
|
|
2197
|
-
onStateChange: setComplementarySidebarState,
|
|
2198
|
-
resizing,
|
|
2199
|
-
side: "inline-end",
|
|
2200
|
-
ref: forwardedRef
|
|
2201
|
-
});
|
|
2202
|
-
});
|
|
2203
|
-
MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
|
|
2204
|
-
var MainContent = /* @__PURE__ */ forwardRef17(({ asChild, classNames, bounce, handlesFocus, children, role, ...props }, forwardedRef) => {
|
|
2205
|
-
const { navigationSidebarState, complementarySidebarState } = useMainContext(MAIN_NAME);
|
|
2206
|
-
const { tx } = useThemeContext();
|
|
2207
|
-
const Root7 = asChild ? Slot8 : role ? "div" : "main";
|
|
2208
|
-
const mover = useLandmarkMover(props.onKeyDown, "1");
|
|
2209
|
-
return /* @__PURE__ */ React25.createElement(Root7, {
|
|
2210
|
-
role,
|
|
2211
|
-
...handlesFocus && {
|
|
2212
|
-
...mover
|
|
2213
|
-
},
|
|
2214
|
-
...props,
|
|
2215
|
-
"data-sidebar-inline-start-state": navigationSidebarState,
|
|
2216
|
-
"data-sidebar-inline-end-state": complementarySidebarState,
|
|
2217
|
-
className: tx("main.content", "main", {
|
|
2218
|
-
bounce,
|
|
2219
|
-
handlesFocus
|
|
2220
|
-
}, classNames),
|
|
2221
|
-
ref: forwardedRef
|
|
2222
|
-
}, children);
|
|
2223
|
-
});
|
|
2224
|
-
MainContent.displayName = MAIN_NAME;
|
|
2225
|
-
var MainOverlay = /* @__PURE__ */ forwardRef17(({ classNames, ...props }, forwardedRef) => {
|
|
2226
|
-
const [isLg] = useMediaQuery("lg", {
|
|
2227
|
-
ssr: false
|
|
2228
|
-
});
|
|
2229
|
-
const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } = useMainContext(MAIN_NAME);
|
|
2230
|
-
const { tx } = useThemeContext();
|
|
2231
|
-
return /* @__PURE__ */ React25.createElement("div", {
|
|
2232
|
-
onClick: () => {
|
|
2233
|
-
setNavigationSidebarState("collapsed");
|
|
2234
|
-
setComplementarySidebarState("collapsed");
|
|
2235
|
-
},
|
|
2236
|
-
...props,
|
|
2237
|
-
className: tx("main.overlay", "main__overlay", {
|
|
2238
|
-
isLg,
|
|
2239
|
-
inlineStartSidebarOpen: navigationSidebarState,
|
|
2240
|
-
inlineEndSidebarOpen: complementarySidebarState
|
|
2241
|
-
}, classNames),
|
|
2242
|
-
"data-state": navigationSidebarState === "expanded" || complementarySidebarState === "expanded" ? "open" : "closed",
|
|
2243
|
-
"aria-hidden": "true",
|
|
2244
|
-
ref: forwardedRef
|
|
2245
|
-
});
|
|
2246
|
-
});
|
|
2247
|
-
var Main = {
|
|
2248
|
-
Root: MainRoot,
|
|
2249
|
-
Content: MainContent,
|
|
2250
|
-
Overlay: MainOverlay,
|
|
2251
|
-
NavigationSidebar: MainNavigationSidebar,
|
|
2252
|
-
ComplementarySidebar: MainComplementarySidebar
|
|
2253
|
-
};
|
|
2254
|
-
|
|
2255
|
-
// packages/ui/react-ui/src/components/Menus/ContextMenu.tsx
|
|
2256
|
-
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
2257
|
-
import { Primitive as Primitive9 } from "@radix-ui/react-primitive";
|
|
2258
|
-
import { Slot as Slot9 } from "@radix-ui/react-slot";
|
|
2259
|
-
import React26, { forwardRef as forwardRef18 } from "react";
|
|
2260
|
-
|
|
2261
|
-
// packages/ui/react-ui/src/hooks/useSafeCollisionPadding.ts
|
|
2262
|
-
import { useMemo as useMemo3 } from "react";
|
|
2263
|
-
var propIsNumber = (prop) => Number.isFinite(prop);
|
|
2264
|
-
var propsIsRecord = (prop) => !!(prop && typeof prop === "object");
|
|
2265
|
-
var safePadding = (propsPadding, safePadding2, side) => {
|
|
2266
|
-
return (propIsNumber(safePadding2[side]) ? safePadding2[side] : 0) + (propIsNumber(propsPadding) ? propsPadding : propsIsRecord(propsPadding) ? propsPadding[side] ?? 0 : 0);
|
|
2267
|
-
};
|
|
2268
|
-
var useSafeCollisionPadding = (collisionPadding) => {
|
|
2269
|
-
const { safeAreaPadding } = useThemeContext();
|
|
2270
|
-
return useMemo3(() => ({
|
|
2271
|
-
top: safePadding(collisionPadding, safeAreaPadding, "top"),
|
|
2272
|
-
right: safePadding(collisionPadding, safeAreaPadding, "right"),
|
|
2273
|
-
bottom: safePadding(collisionPadding, safeAreaPadding, "bottom"),
|
|
2274
|
-
left: safePadding(collisionPadding, safeAreaPadding, "left")
|
|
2275
|
-
}), [
|
|
2276
|
-
collisionPadding,
|
|
2277
|
-
safeAreaPadding
|
|
2278
|
-
]);
|
|
2279
|
-
};
|
|
2280
|
-
|
|
2281
|
-
// packages/ui/react-ui/src/components/Menus/ContextMenu.tsx
|
|
2282
|
-
var ContextMenuRoot = ContextMenuPrimitive.ContextMenu;
|
|
2283
|
-
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
2284
|
-
var ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
2285
|
-
var ContextMenuContent = /* @__PURE__ */ forwardRef18(({ classNames, children, collisionPadding = 8, ...props }, forwardedRef) => {
|
|
2286
|
-
const { tx } = useThemeContext();
|
|
2287
|
-
const elevation = useElevationContext();
|
|
2288
|
-
const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
|
|
2289
|
-
return /* @__PURE__ */ React26.createElement(ContextMenuPrimitive.Content, {
|
|
2290
|
-
...props,
|
|
2291
|
-
collisionPadding: safeCollisionPadding,
|
|
2292
|
-
className: tx("menu.content", "menu", {
|
|
2293
|
-
elevation
|
|
2294
|
-
}, classNames),
|
|
2295
|
-
ref: forwardedRef
|
|
2296
|
-
}, children);
|
|
2297
|
-
});
|
|
2298
|
-
var ContextMenuViewport = /* @__PURE__ */ forwardRef18(({ classNames, asChild, children, ...props }, forwardedRef) => {
|
|
2299
|
-
const { tx } = useThemeContext();
|
|
2300
|
-
const Root7 = asChild ? Slot9 : Primitive9.div;
|
|
2301
|
-
return /* @__PURE__ */ React26.createElement(Root7, {
|
|
2302
|
-
...props,
|
|
2303
|
-
className: tx("menu.viewport", "menu__viewport", {}, classNames),
|
|
2304
|
-
ref: forwardedRef
|
|
2305
|
-
}, children);
|
|
2306
|
-
});
|
|
2307
|
-
var ContextMenuArrow = /* @__PURE__ */ forwardRef18(({ classNames, ...props }, forwardedRef) => {
|
|
2308
|
-
const { tx } = useThemeContext();
|
|
2309
|
-
return /* @__PURE__ */ React26.createElement(ContextMenuPrimitive.Arrow, {
|
|
2310
|
-
...props,
|
|
2311
|
-
className: tx("menu.arrow", "menu__arrow", {}, classNames),
|
|
2312
|
-
ref: forwardedRef
|
|
2313
|
-
});
|
|
2314
|
-
});
|
|
2315
|
-
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
2316
|
-
var ContextMenuItemIndicator = ContextMenuPrimitive.ItemIndicator;
|
|
2317
|
-
var ContextMenuItem = /* @__PURE__ */ forwardRef18(({ classNames, ...props }, forwardedRef) => {
|
|
2318
|
-
const { tx } = useThemeContext();
|
|
2319
|
-
return /* @__PURE__ */ React26.createElement(ContextMenuPrimitive.Item, {
|
|
2320
|
-
...props,
|
|
2321
|
-
className: tx("menu.item", "menu__item", {}, classNames),
|
|
2322
|
-
ref: forwardedRef
|
|
2323
|
-
});
|
|
2324
|
-
});
|
|
2325
|
-
var ContextMenuCheckboxItem = /* @__PURE__ */ forwardRef18(({ classNames, ...props }, forwardedRef) => {
|
|
2326
|
-
const { tx } = useThemeContext();
|
|
2327
|
-
return /* @__PURE__ */ React26.createElement(ContextMenuPrimitive.CheckboxItem, {
|
|
2328
|
-
...props,
|
|
2329
|
-
className: tx("menu.item", "menu__item--checkbox", {}, classNames),
|
|
2330
|
-
ref: forwardedRef
|
|
2331
|
-
});
|
|
2332
|
-
});
|
|
2333
|
-
var ContextMenuSeparator = /* @__PURE__ */ forwardRef18(({ classNames, ...props }, forwardedRef) => {
|
|
2334
|
-
const { tx } = useThemeContext();
|
|
2335
|
-
return /* @__PURE__ */ React26.createElement(ContextMenuPrimitive.Separator, {
|
|
2336
|
-
...props,
|
|
2337
|
-
className: tx("menu.separator", "menu__item", {}, classNames),
|
|
2338
|
-
ref: forwardedRef
|
|
2339
|
-
});
|
|
2340
|
-
});
|
|
2341
|
-
var ContextMenuGroupLabel = /* @__PURE__ */ forwardRef18(({ classNames, ...props }, forwardedRef) => {
|
|
2342
|
-
const { tx } = useThemeContext();
|
|
2343
|
-
return /* @__PURE__ */ React26.createElement(ContextMenuPrimitive.Label, {
|
|
2344
|
-
...props,
|
|
2345
|
-
className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
|
|
2346
|
-
ref: forwardedRef
|
|
2347
|
-
});
|
|
2348
|
-
});
|
|
2349
|
-
var ContextMenu2 = {
|
|
2350
|
-
Root: ContextMenuRoot,
|
|
2351
|
-
Trigger: ContextMenuTrigger,
|
|
2352
|
-
Portal: ContextMenuPortal,
|
|
2353
|
-
Content: ContextMenuContent,
|
|
2354
|
-
Viewport: ContextMenuViewport,
|
|
2355
|
-
Arrow: ContextMenuArrow,
|
|
2356
|
-
Group: ContextMenuGroup,
|
|
2357
|
-
Item: ContextMenuItem,
|
|
2358
|
-
CheckboxItem: ContextMenuCheckboxItem,
|
|
2359
|
-
ItemIndicator: ContextMenuItemIndicator,
|
|
2360
|
-
Separator: ContextMenuSeparator,
|
|
2361
|
-
GroupLabel: ContextMenuGroupLabel
|
|
2362
|
-
};
|
|
2363
|
-
|
|
2364
|
-
// packages/ui/react-ui/src/components/Menus/DropdownMenu.tsx
|
|
2365
|
-
import { composeEventHandlers as composeEventHandlers2 } from "@radix-ui/primitive";
|
|
2366
|
-
import { composeRefs } from "@radix-ui/react-compose-refs";
|
|
2367
|
-
import { createContextScope as createContextScope3 } from "@radix-ui/react-context";
|
|
2368
|
-
import { useId as useId3 } from "@radix-ui/react-id";
|
|
2369
|
-
import * as MenuPrimitive from "@radix-ui/react-menu";
|
|
2370
|
-
import { createMenuScope } from "@radix-ui/react-menu";
|
|
2371
|
-
import { Primitive as Primitive10 } from "@radix-ui/react-primitive";
|
|
2372
|
-
import { Slot as Slot10 } from "@radix-ui/react-slot";
|
|
2373
|
-
import { useControllableState as useControllableState5 } from "@radix-ui/react-use-controllable-state";
|
|
2374
|
-
import React27, { useRef as useRef3, useCallback as useCallback8, forwardRef as forwardRef19, useEffect as useEffect6 } from "react";
|
|
2375
|
-
var DROPDOWN_MENU_NAME = "DropdownMenu";
|
|
2376
|
-
var [createDropdownMenuContext, createDropdownMenuScope] = createContextScope3(DROPDOWN_MENU_NAME, [
|
|
2377
|
-
createMenuScope
|
|
2378
|
-
]);
|
|
2379
|
-
var useMenuScope = createMenuScope();
|
|
2380
|
-
var [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);
|
|
2381
|
-
var DropdownMenuRoot = (props) => {
|
|
2382
|
-
const { __scopeDropdownMenu, children, dir, open: openProp, defaultOpen, onOpenChange, modal = true } = props;
|
|
2383
|
-
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
2384
|
-
const triggerRef = useRef3(null);
|
|
2385
|
-
const [open = false, setOpen] = useControllableState5({
|
|
2386
|
-
prop: openProp,
|
|
2387
|
-
defaultProp: defaultOpen,
|
|
2388
|
-
onChange: onOpenChange
|
|
2389
|
-
});
|
|
2390
|
-
return /* @__PURE__ */ React27.createElement(DropdownMenuProvider, {
|
|
2391
|
-
scope: __scopeDropdownMenu,
|
|
2392
|
-
triggerId: useId3(),
|
|
2393
|
-
triggerRef,
|
|
2394
|
-
contentId: useId3(),
|
|
2395
|
-
open,
|
|
2396
|
-
onOpenChange: setOpen,
|
|
2397
|
-
onOpenToggle: useCallback8(() => setOpen((prevOpen) => !prevOpen), [
|
|
2398
|
-
setOpen
|
|
2399
|
-
]),
|
|
2400
|
-
modal
|
|
2401
|
-
}, /* @__PURE__ */ React27.createElement(MenuPrimitive.Root, {
|
|
2402
|
-
...menuScope,
|
|
2403
|
-
open,
|
|
2404
|
-
onOpenChange: setOpen,
|
|
2405
|
-
dir,
|
|
2406
|
-
modal
|
|
2407
|
-
}, children));
|
|
2408
|
-
};
|
|
2409
|
-
DropdownMenuRoot.displayName = DROPDOWN_MENU_NAME;
|
|
2410
|
-
var TRIGGER_NAME2 = "DropdownMenuTrigger";
|
|
2411
|
-
var DropdownMenuTrigger = /* @__PURE__ */ forwardRef19((props, forwardedRef) => {
|
|
2412
|
-
const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;
|
|
2413
|
-
const context = useDropdownMenuContext(TRIGGER_NAME2, __scopeDropdownMenu);
|
|
2414
|
-
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
2415
|
-
return /* @__PURE__ */ React27.createElement(MenuPrimitive.Anchor, {
|
|
2416
|
-
asChild: true,
|
|
2417
|
-
...menuScope
|
|
2418
|
-
}, /* @__PURE__ */ React27.createElement(Primitive10.button, {
|
|
2419
|
-
type: "button",
|
|
2420
|
-
id: context.triggerId,
|
|
2421
|
-
"aria-haspopup": "menu",
|
|
2422
|
-
"aria-expanded": context.open,
|
|
2423
|
-
"aria-controls": context.open ? context.contentId : void 0,
|
|
2424
|
-
"data-state": context.open ? "open" : "closed",
|
|
2425
|
-
"data-disabled": disabled ? "" : void 0,
|
|
2426
|
-
disabled,
|
|
2427
|
-
...triggerProps,
|
|
2428
|
-
ref: composeRefs(forwardedRef, context.triggerRef),
|
|
2429
|
-
onPointerDown: composeEventHandlers2(props.onPointerDown, (event) => {
|
|
2430
|
-
if (!disabled && event.button === 0 && event.ctrlKey === false) {
|
|
2431
|
-
context.onOpenToggle();
|
|
2432
|
-
if (!context.open) {
|
|
2433
|
-
event.preventDefault();
|
|
2434
|
-
}
|
|
2435
|
-
}
|
|
2436
|
-
}),
|
|
2437
|
-
onKeyDown: composeEventHandlers2(props.onKeyDown, (event) => {
|
|
2438
|
-
if (disabled) {
|
|
2439
|
-
return;
|
|
2440
|
-
}
|
|
2441
|
-
if ([
|
|
2442
|
-
"Enter",
|
|
2443
|
-
" "
|
|
2444
|
-
].includes(event.key)) {
|
|
2445
|
-
context.onOpenToggle();
|
|
2446
|
-
}
|
|
2447
|
-
if (event.key === "ArrowDown") {
|
|
2448
|
-
context.onOpenChange(true);
|
|
2449
|
-
}
|
|
2450
|
-
if ([
|
|
2451
|
-
"Enter",
|
|
2452
|
-
" ",
|
|
2453
|
-
"ArrowDown"
|
|
2454
|
-
].includes(event.key)) {
|
|
2455
|
-
event.preventDefault();
|
|
2456
|
-
}
|
|
2457
|
-
})
|
|
2458
|
-
}));
|
|
2459
|
-
});
|
|
2460
|
-
DropdownMenuTrigger.displayName = TRIGGER_NAME2;
|
|
2461
|
-
var VIRTUAL_TRIGGER_NAME = "DropdownMenuVirtualTrigger";
|
|
2462
|
-
var DropdownMenuVirtualTrigger = (props) => {
|
|
2463
|
-
const { __scopeDropdownMenu, virtualRef } = props;
|
|
2464
|
-
const context = useDropdownMenuContext(VIRTUAL_TRIGGER_NAME, __scopeDropdownMenu);
|
|
2465
|
-
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
2466
|
-
useEffect6(() => {
|
|
2467
|
-
if (virtualRef.current) {
|
|
2468
|
-
context.triggerRef.current = virtualRef.current;
|
|
2469
|
-
}
|
|
2470
|
-
});
|
|
2471
|
-
return /* @__PURE__ */ React27.createElement(MenuPrimitive.Anchor, {
|
|
2472
|
-
...menuScope,
|
|
2473
|
-
virtualRef
|
|
2474
|
-
});
|
|
2475
|
-
};
|
|
2476
|
-
DropdownMenuVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME;
|
|
2477
|
-
var PORTAL_NAME2 = "DropdownMenuPortal";
|
|
2478
|
-
var DropdownMenuPortal = (props) => {
|
|
2479
|
-
const { __scopeDropdownMenu, ...portalProps } = props;
|
|
2480
|
-
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
2481
|
-
return /* @__PURE__ */ React27.createElement(MenuPrimitive.Portal, {
|
|
2482
|
-
...menuScope,
|
|
2483
|
-
...portalProps
|
|
2484
|
-
});
|
|
2485
|
-
};
|
|
2486
|
-
DropdownMenuPortal.displayName = PORTAL_NAME2;
|
|
2487
|
-
var DropdownMenuViewport = /* @__PURE__ */ forwardRef19(({ classNames, asChild, children, ...props }, forwardedRef) => {
|
|
2488
|
-
const { tx } = useThemeContext();
|
|
2489
|
-
const Root7 = asChild ? Slot10 : Primitive10.div;
|
|
2490
|
-
return /* @__PURE__ */ React27.createElement(Root7, {
|
|
2491
|
-
...props,
|
|
2492
|
-
className: tx("menu.viewport", "menu__viewport", {}, classNames),
|
|
2493
|
-
ref: forwardedRef
|
|
2494
|
-
}, children);
|
|
2495
|
-
});
|
|
2496
|
-
var CONTENT_NAME2 = "DropdownMenuContent";
|
|
2497
|
-
var DropdownMenuContent = /* @__PURE__ */ forwardRef19((props, forwardedRef) => {
|
|
2498
|
-
const { __scopeDropdownMenu, classNames, collisionPadding = 8, ...contentProps } = props;
|
|
2499
|
-
const { tx } = useThemeContext();
|
|
2500
|
-
const context = useDropdownMenuContext(CONTENT_NAME2, __scopeDropdownMenu);
|
|
2501
|
-
const elevation = useElevationContext();
|
|
2502
|
-
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
2503
|
-
const hasInteractedOutsideRef = useRef3(false);
|
|
2504
|
-
const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
|
|
2505
|
-
return /* @__PURE__ */ React27.createElement(MenuPrimitive.Content, {
|
|
2506
|
-
id: context.contentId,
|
|
2507
|
-
"aria-labelledby": context.triggerId,
|
|
2508
|
-
...menuScope,
|
|
2509
|
-
...contentProps,
|
|
2510
|
-
collisionPadding: safeCollisionPadding,
|
|
2511
|
-
ref: forwardedRef,
|
|
2512
|
-
onCloseAutoFocus: composeEventHandlers2(props.onCloseAutoFocus, (event) => {
|
|
2513
|
-
if (!hasInteractedOutsideRef.current) {
|
|
2514
|
-
context.triggerRef.current?.focus();
|
|
2515
|
-
}
|
|
2516
|
-
hasInteractedOutsideRef.current = false;
|
|
2517
|
-
event.preventDefault();
|
|
2518
|
-
}),
|
|
2519
|
-
onInteractOutside: composeEventHandlers2(props.onInteractOutside, (event) => {
|
|
2520
|
-
const originalEvent = event.detail.originalEvent;
|
|
2521
|
-
const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
|
|
2522
|
-
const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
|
|
2523
|
-
if (!context.modal || isRightClick) {
|
|
2524
|
-
hasInteractedOutsideRef.current = true;
|
|
2525
|
-
}
|
|
2526
|
-
}),
|
|
2527
|
-
className: tx("menu.content", "menu", {
|
|
2528
|
-
elevation
|
|
2529
|
-
}, classNames),
|
|
2530
|
-
style: {
|
|
2531
|
-
...props.style,
|
|
2532
|
-
// re-namespace exposed content custom properties
|
|
2533
|
-
...{
|
|
2534
|
-
"--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
|
|
2535
|
-
"--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
|
|
2536
|
-
"--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
|
|
2537
|
-
"--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
|
|
2538
|
-
"--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
|
|
2539
|
-
}
|
|
2540
|
-
}
|
|
2541
|
-
});
|
|
2542
|
-
});
|
|
2543
|
-
DropdownMenuContent.displayName = CONTENT_NAME2;
|
|
2544
|
-
var GROUP_NAME = "DropdownMenuGroup";
|
|
2545
|
-
var DropdownMenuGroup = /* @__PURE__ */ forwardRef19((props, forwardedRef) => {
|
|
2546
|
-
const { __scopeDropdownMenu, ...groupProps } = props;
|
|
2547
|
-
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
2548
|
-
return /* @__PURE__ */ React27.createElement(MenuPrimitive.Group, {
|
|
2549
|
-
...menuScope,
|
|
2550
|
-
...groupProps,
|
|
2551
|
-
ref: forwardedRef
|
|
2552
|
-
});
|
|
2553
|
-
});
|
|
2554
|
-
DropdownMenuGroup.displayName = GROUP_NAME;
|
|
2555
|
-
var LABEL_NAME = "DropdownMenuLabel";
|
|
2556
|
-
var DropdownMenuGroupLabel = /* @__PURE__ */ forwardRef19((props, forwardedRef) => {
|
|
2557
|
-
const { __scopeDropdownMenu, classNames, ...labelProps } = props;
|
|
2558
|
-
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
2559
|
-
const { tx } = useThemeContext();
|
|
2560
|
-
return /* @__PURE__ */ React27.createElement(MenuPrimitive.Label, {
|
|
2561
|
-
...menuScope,
|
|
2562
|
-
...labelProps,
|
|
2563
|
-
className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
|
|
2564
|
-
ref: forwardedRef
|
|
2565
|
-
});
|
|
2566
|
-
});
|
|
2567
|
-
DropdownMenuGroupLabel.displayName = LABEL_NAME;
|
|
2568
|
-
var ITEM_NAME = "DropdownMenuItem";
|
|
2569
|
-
var DropdownMenuItem = /* @__PURE__ */ forwardRef19((props, forwardedRef) => {
|
|
2570
|
-
const { __scopeDropdownMenu, classNames, ...itemProps } = props;
|
|
2571
|
-
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
2572
|
-
const { tx } = useThemeContext();
|
|
2573
|
-
return /* @__PURE__ */ React27.createElement(MenuPrimitive.Item, {
|
|
2574
|
-
...menuScope,
|
|
2575
|
-
...itemProps,
|
|
2576
|
-
className: tx("menu.item", "menu__item", {}, classNames),
|
|
2577
|
-
ref: forwardedRef
|
|
2028
|
+
onChange: onNavigationSidebarStateChange
|
|
2578
2029
|
});
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
const { __scopeDropdownMenu, classNames, ...checkboxItemProps } = props;
|
|
2584
|
-
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
2585
|
-
const { tx } = useThemeContext();
|
|
2586
|
-
return /* @__PURE__ */ React27.createElement(MenuPrimitive.CheckboxItem, {
|
|
2587
|
-
...menuScope,
|
|
2588
|
-
...checkboxItemProps,
|
|
2589
|
-
className: tx("menu.item", "menu__item--checkbox", {}, classNames),
|
|
2590
|
-
ref: forwardedRef
|
|
2030
|
+
const [complementarySidebarState = isLg ? "expanded" : "collapsed", setComplementarySidebarState] = useControllableState4({
|
|
2031
|
+
prop: propsComplementarySidebarState,
|
|
2032
|
+
defaultProp: defaultComplementarySidebarState,
|
|
2033
|
+
onChange: onComplementarySidebarStateChange
|
|
2591
2034
|
});
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2035
|
+
const [resizing, setResizing] = useState8(false);
|
|
2036
|
+
const resizeInterval = useRef2(null);
|
|
2037
|
+
const handleResize = useCallback7(() => {
|
|
2038
|
+
setResizing(true);
|
|
2039
|
+
if (resizeInterval.current) {
|
|
2040
|
+
clearTimeout(resizeInterval.current);
|
|
2041
|
+
}
|
|
2042
|
+
resizeInterval.current = setTimeout(() => {
|
|
2043
|
+
setResizing(false);
|
|
2044
|
+
resizeInterval.current = null;
|
|
2045
|
+
}, resizeDebounce);
|
|
2046
|
+
}, []);
|
|
2047
|
+
useEffect5(() => {
|
|
2048
|
+
window.addEventListener("resize", handleResize);
|
|
2049
|
+
return () => window.removeEventListener("resize", handleResize);
|
|
2050
|
+
}, [
|
|
2051
|
+
handleResize
|
|
2052
|
+
]);
|
|
2053
|
+
return /* @__PURE__ */ React27.createElement(MainProvider, {
|
|
2054
|
+
...props,
|
|
2055
|
+
navigationSidebarState,
|
|
2056
|
+
setNavigationSidebarState,
|
|
2057
|
+
complementarySidebarState,
|
|
2058
|
+
setComplementarySidebarState,
|
|
2059
|
+
resizing
|
|
2060
|
+
}, children);
|
|
2061
|
+
};
|
|
2062
|
+
MainRoot.displayName = MAIN_ROOT_NAME;
|
|
2063
|
+
var handleOpenAutoFocus = (event) => {
|
|
2064
|
+
!document.body.hasAttribute("data-is-keyboard") && event.preventDefault();
|
|
2065
|
+
};
|
|
2066
|
+
var MainSidebar = /* @__PURE__ */ forwardRef19(({ classNames, children, swipeToDismiss, onOpenAutoFocus, state, resizing, onStateChange, side, label, ...props }, forwardedRef) => {
|
|
2067
|
+
const [isLg] = useMediaQuery("lg", {
|
|
2068
|
+
ssr: false
|
|
2602
2069
|
});
|
|
2603
|
-
});
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
return /* @__PURE__ */ React27.createElement(MenuPrimitive.RadioItem, {
|
|
2610
|
-
...menuScope,
|
|
2611
|
-
...radioItemProps,
|
|
2612
|
-
ref: forwardedRef
|
|
2070
|
+
const { tx } = useThemeContext();
|
|
2071
|
+
const { t } = useTranslation();
|
|
2072
|
+
const ref = useForwardedRef(forwardedRef);
|
|
2073
|
+
const noopRef = useRef2(null);
|
|
2074
|
+
useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {
|
|
2075
|
+
onDismiss: () => onStateChange?.("closed")
|
|
2613
2076
|
});
|
|
2077
|
+
const handleKeyDown = useCallback7((event) => {
|
|
2078
|
+
if (event.key === "Escape") {
|
|
2079
|
+
event.target.closest("[data-tabster]")?.focus();
|
|
2080
|
+
}
|
|
2081
|
+
props.onKeyDown?.(event);
|
|
2082
|
+
}, [
|
|
2083
|
+
props.onKeyDown
|
|
2084
|
+
]);
|
|
2085
|
+
const Root5 = isLg ? Primitive9.div : DialogContent2;
|
|
2086
|
+
return /* @__PURE__ */ React27.createElement(DialogRoot2, {
|
|
2087
|
+
open: state !== "closed",
|
|
2088
|
+
"aria-label": toLocalizedString(label, t),
|
|
2089
|
+
modal: false
|
|
2090
|
+
}, !isLg && /* @__PURE__ */ React27.createElement(DialogTitle2, {
|
|
2091
|
+
className: "sr-only"
|
|
2092
|
+
}, toLocalizedString(label, t)), /* @__PURE__ */ React27.createElement(Root5, {
|
|
2093
|
+
...!isLg && {
|
|
2094
|
+
forceMount: true,
|
|
2095
|
+
tabIndex: -1,
|
|
2096
|
+
onOpenAutoFocus: onOpenAutoFocus ?? handleOpenAutoFocus
|
|
2097
|
+
},
|
|
2098
|
+
...props,
|
|
2099
|
+
"data-side": side === "inline-end" ? "ie" : "is",
|
|
2100
|
+
"data-state": state,
|
|
2101
|
+
"data-resizing": resizing ? "true" : "false",
|
|
2102
|
+
className: tx("main.sidebar", "main__sidebar", {}, classNames),
|
|
2103
|
+
onKeyDown: handleKeyDown,
|
|
2104
|
+
...state === "closed" && {
|
|
2105
|
+
inert: "true"
|
|
2106
|
+
},
|
|
2107
|
+
ref
|
|
2108
|
+
}, children));
|
|
2614
2109
|
});
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2110
|
+
var MainNavigationSidebar = /* @__PURE__ */ forwardRef19((props, forwardedRef) => {
|
|
2111
|
+
const { navigationSidebarState, setNavigationSidebarState, resizing } = useMainContext(NAVIGATION_SIDEBAR_NAME);
|
|
2112
|
+
const mover = useLandmarkMover(props.onKeyDown, "0");
|
|
2113
|
+
return /* @__PURE__ */ React27.createElement(MainSidebar, {
|
|
2114
|
+
...mover,
|
|
2115
|
+
...props,
|
|
2116
|
+
state: navigationSidebarState,
|
|
2117
|
+
onStateChange: setNavigationSidebarState,
|
|
2118
|
+
resizing,
|
|
2119
|
+
side: "inline-start",
|
|
2623
2120
|
ref: forwardedRef
|
|
2624
2121
|
});
|
|
2625
2122
|
});
|
|
2626
|
-
|
|
2627
|
-
var
|
|
2628
|
-
|
|
2629
|
-
const
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2123
|
+
MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
|
|
2124
|
+
var MainComplementarySidebar = /* @__PURE__ */ forwardRef19((props, forwardedRef) => {
|
|
2125
|
+
const { complementarySidebarState, setComplementarySidebarState, resizing } = useMainContext(COMPLEMENTARY_SIDEBAR_NAME);
|
|
2126
|
+
const mover = useLandmarkMover(props.onKeyDown, "2");
|
|
2127
|
+
return /* @__PURE__ */ React27.createElement(MainSidebar, {
|
|
2128
|
+
...mover,
|
|
2129
|
+
...props,
|
|
2130
|
+
state: complementarySidebarState,
|
|
2131
|
+
onStateChange: setComplementarySidebarState,
|
|
2132
|
+
resizing,
|
|
2133
|
+
side: "inline-end",
|
|
2636
2134
|
ref: forwardedRef
|
|
2637
2135
|
});
|
|
2638
2136
|
});
|
|
2639
|
-
|
|
2640
|
-
var
|
|
2641
|
-
|
|
2642
|
-
const { __scopeDropdownMenu, classNames, ...arrowProps } = props;
|
|
2643
|
-
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
2137
|
+
MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
|
|
2138
|
+
var MainContent = /* @__PURE__ */ forwardRef19(({ asChild, classNames, bounce, handlesFocus, children, role, ...props }, forwardedRef) => {
|
|
2139
|
+
const { navigationSidebarState, complementarySidebarState } = useMainContext(MAIN_NAME);
|
|
2644
2140
|
const { tx } = useThemeContext();
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2141
|
+
const Root5 = asChild ? Slot10 : role ? "div" : "main";
|
|
2142
|
+
const mover = useLandmarkMover(props.onKeyDown, "1");
|
|
2143
|
+
return /* @__PURE__ */ React27.createElement(Root5, {
|
|
2144
|
+
role,
|
|
2145
|
+
...handlesFocus && {
|
|
2146
|
+
...mover
|
|
2147
|
+
},
|
|
2148
|
+
...props,
|
|
2149
|
+
"data-sidebar-inline-start-state": navigationSidebarState,
|
|
2150
|
+
"data-sidebar-inline-end-state": complementarySidebarState,
|
|
2151
|
+
className: tx("main.content", "main", {
|
|
2152
|
+
bounce,
|
|
2153
|
+
handlesFocus
|
|
2154
|
+
}, classNames),
|
|
2649
2155
|
ref: forwardedRef
|
|
2650
|
-
});
|
|
2156
|
+
}, children);
|
|
2651
2157
|
});
|
|
2652
|
-
|
|
2653
|
-
var
|
|
2654
|
-
const
|
|
2655
|
-
|
|
2656
|
-
const [open = false, setOpen] = useControllableState5({
|
|
2657
|
-
prop: openProp,
|
|
2658
|
-
defaultProp: defaultOpen,
|
|
2659
|
-
onChange: onOpenChange
|
|
2158
|
+
MainContent.displayName = MAIN_NAME;
|
|
2159
|
+
var MainOverlay = /* @__PURE__ */ forwardRef19(({ classNames, ...props }, forwardedRef) => {
|
|
2160
|
+
const [isLg] = useMediaQuery("lg", {
|
|
2161
|
+
ssr: false
|
|
2660
2162
|
});
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
|
|
2163
|
+
const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } = useMainContext(MAIN_NAME);
|
|
2164
|
+
const { tx } = useThemeContext();
|
|
2165
|
+
return /* @__PURE__ */ React27.createElement("div", {
|
|
2166
|
+
onClick: () => {
|
|
2167
|
+
setNavigationSidebarState("collapsed");
|
|
2168
|
+
setComplementarySidebarState("collapsed");
|
|
2169
|
+
},
|
|
2170
|
+
...props,
|
|
2171
|
+
className: tx("main.overlay", "main__overlay", {
|
|
2172
|
+
isLg,
|
|
2173
|
+
inlineStartSidebarOpen: navigationSidebarState,
|
|
2174
|
+
inlineEndSidebarOpen: complementarySidebarState
|
|
2175
|
+
}, classNames),
|
|
2176
|
+
"data-state": navigationSidebarState === "expanded" || complementarySidebarState === "expanded" ? "open" : "closed",
|
|
2177
|
+
"aria-hidden": "true",
|
|
2674
2178
|
ref: forwardedRef
|
|
2675
2179
|
});
|
|
2676
2180
|
});
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
...menuScope,
|
|
2684
|
-
...subContentProps,
|
|
2685
|
-
ref: forwardedRef,
|
|
2686
|
-
style: {
|
|
2687
|
-
...props.style,
|
|
2688
|
-
// re-namespace exposed content custom properties
|
|
2689
|
-
...{
|
|
2690
|
-
"--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
|
|
2691
|
-
"--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
|
|
2692
|
-
"--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
|
|
2693
|
-
"--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
|
|
2694
|
-
"--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
|
|
2695
|
-
}
|
|
2696
|
-
}
|
|
2697
|
-
});
|
|
2698
|
-
});
|
|
2699
|
-
DropdownMenuSubContent.displayName = SUB_CONTENT_NAME;
|
|
2700
|
-
var DropdownMenu = {
|
|
2701
|
-
Root: DropdownMenuRoot,
|
|
2702
|
-
Trigger: DropdownMenuTrigger,
|
|
2703
|
-
VirtualTrigger: DropdownMenuVirtualTrigger,
|
|
2704
|
-
Portal: DropdownMenuPortal,
|
|
2705
|
-
Content: DropdownMenuContent,
|
|
2706
|
-
Viewport: DropdownMenuViewport,
|
|
2707
|
-
Group: DropdownMenuGroup,
|
|
2708
|
-
GroupLabel: DropdownMenuGroupLabel,
|
|
2709
|
-
Item: DropdownMenuItem,
|
|
2710
|
-
CheckboxItem: DropdownMenuCheckboxItem,
|
|
2711
|
-
RadioGroup: DropdownMenuRadioGroup,
|
|
2712
|
-
RadioItem: DropdownMenuRadioItem,
|
|
2713
|
-
ItemIndicator: DropdownMenuItemIndicator,
|
|
2714
|
-
Separator: DropdownMenuSeparator,
|
|
2715
|
-
Arrow: DropdownMenuArrow,
|
|
2716
|
-
Sub: DropdownMenuSub,
|
|
2717
|
-
SubTrigger: DropdownMenuSubTrigger,
|
|
2718
|
-
SubContent: DropdownMenuSubContent
|
|
2181
|
+
var Main = {
|
|
2182
|
+
Root: MainRoot,
|
|
2183
|
+
Content: MainContent,
|
|
2184
|
+
Overlay: MainOverlay,
|
|
2185
|
+
NavigationSidebar: MainNavigationSidebar,
|
|
2186
|
+
ComplementarySidebar: MainComplementarySidebar
|
|
2719
2187
|
};
|
|
2720
|
-
var useDropdownMenuMenuScope = useMenuScope;
|
|
2721
2188
|
|
|
2722
2189
|
// packages/ui/react-ui/src/components/Message/Message.tsx
|
|
2723
2190
|
import { createContext as createContext11 } from "@radix-ui/react-context";
|
|
2724
|
-
import { Primitive as
|
|
2191
|
+
import { Primitive as Primitive10 } from "@radix-ui/react-primitive";
|
|
2725
2192
|
import { Slot as Slot11 } from "@radix-ui/react-slot";
|
|
2726
2193
|
import React28, { forwardRef as forwardRef20 } from "react";
|
|
2727
|
-
import { useId as
|
|
2194
|
+
import { useId as useId3 } from "@dxos/react-hooks";
|
|
2728
2195
|
var MESSAGE_NAME = "Message";
|
|
2729
2196
|
var [MessageProvider, useMessageContext] = createContext11(MESSAGE_NAME);
|
|
2730
2197
|
var MessageRoot = /* @__PURE__ */ forwardRef20(({ asChild, valence, elevation: propsElevation, className, titleId: propsTitleId, descriptionId: propsDescriptionId, children, ...props }, forwardedRef) => {
|
|
2731
2198
|
const { tx } = useThemeContext();
|
|
2732
|
-
const titleId =
|
|
2733
|
-
const descriptionId =
|
|
2199
|
+
const titleId = useId3("message__title", propsTitleId);
|
|
2200
|
+
const descriptionId = useId3("message__description", propsDescriptionId);
|
|
2734
2201
|
const elevation = useElevationContext(propsElevation);
|
|
2735
|
-
const
|
|
2202
|
+
const Root5 = asChild ? Slot11 : Primitive10.div;
|
|
2736
2203
|
return /* @__PURE__ */ React28.createElement(MessageProvider, {
|
|
2737
2204
|
titleId,
|
|
2738
2205
|
descriptionId
|
|
2739
|
-
}, /* @__PURE__ */ React28.createElement(
|
|
2206
|
+
}, /* @__PURE__ */ React28.createElement(Root5, {
|
|
2740
2207
|
...props,
|
|
2741
2208
|
className: tx("message.root", "message", {
|
|
2742
2209
|
valence,
|
|
@@ -2752,8 +2219,8 @@ var MESSAGE_TITLE_NAME = "MessageTitle";
|
|
|
2752
2219
|
var MessageTitle = /* @__PURE__ */ forwardRef20(({ asChild, className, children, ...props }, forwardedRef) => {
|
|
2753
2220
|
const { tx } = useThemeContext();
|
|
2754
2221
|
const { titleId } = useMessageContext(MESSAGE_TITLE_NAME);
|
|
2755
|
-
const
|
|
2756
|
-
return /* @__PURE__ */ React28.createElement(
|
|
2222
|
+
const Root5 = asChild ? Slot11 : Primitive10.h2;
|
|
2223
|
+
return /* @__PURE__ */ React28.createElement(Root5, {
|
|
2757
2224
|
...props,
|
|
2758
2225
|
className: tx("message.title", "message__title", {}, className),
|
|
2759
2226
|
id: titleId,
|
|
@@ -2765,8 +2232,8 @@ var MESSAGE_BODY_NAME = "MessageBody";
|
|
|
2765
2232
|
var MessageBody = /* @__PURE__ */ forwardRef20(({ asChild, className, children, ...props }, forwardedRef) => {
|
|
2766
2233
|
const { tx } = useThemeContext();
|
|
2767
2234
|
const { descriptionId } = useMessageContext(MESSAGE_BODY_NAME);
|
|
2768
|
-
const
|
|
2769
|
-
return /* @__PURE__ */ React28.createElement(
|
|
2235
|
+
const Root5 = asChild ? Slot11 : Primitive10.p;
|
|
2236
|
+
return /* @__PURE__ */ React28.createElement(Root5, {
|
|
2770
2237
|
...props,
|
|
2771
2238
|
className: tx("message.body", "message__body", {}, className),
|
|
2772
2239
|
id: descriptionId,
|
|
@@ -2781,51 +2248,51 @@ var Message = {
|
|
|
2781
2248
|
};
|
|
2782
2249
|
|
|
2783
2250
|
// packages/ui/react-ui/src/components/Popover/Popover.tsx
|
|
2784
|
-
import { composeEventHandlers as
|
|
2785
|
-
import { useComposedRefs
|
|
2786
|
-
import { createContextScope as
|
|
2787
|
-
import { DismissableLayer
|
|
2251
|
+
import { composeEventHandlers as composeEventHandlers2 } from "@radix-ui/primitive";
|
|
2252
|
+
import { useComposedRefs } from "@radix-ui/react-compose-refs";
|
|
2253
|
+
import { createContextScope as createContextScope3 } from "@radix-ui/react-context";
|
|
2254
|
+
import { DismissableLayer } from "@radix-ui/react-dismissable-layer";
|
|
2788
2255
|
import { useFocusGuards } from "@radix-ui/react-focus-guards";
|
|
2789
2256
|
import { FocusScope } from "@radix-ui/react-focus-scope";
|
|
2790
|
-
import { useId as
|
|
2791
|
-
import * as
|
|
2792
|
-
import { createPopperScope
|
|
2793
|
-
import { Portal as
|
|
2794
|
-
import { Presence
|
|
2795
|
-
import { Primitive as
|
|
2257
|
+
import { useId as useId4 } from "@radix-ui/react-id";
|
|
2258
|
+
import * as PopperPrimitive from "@radix-ui/react-popper";
|
|
2259
|
+
import { createPopperScope } from "@radix-ui/react-popper";
|
|
2260
|
+
import { Portal as PortalPrimitive } from "@radix-ui/react-portal";
|
|
2261
|
+
import { Presence } from "@radix-ui/react-presence";
|
|
2262
|
+
import { Primitive as Primitive11 } from "@radix-ui/react-primitive";
|
|
2796
2263
|
import { Slot as Slot12 } from "@radix-ui/react-slot";
|
|
2797
|
-
import { useControllableState as
|
|
2264
|
+
import { useControllableState as useControllableState5 } from "@radix-ui/react-use-controllable-state";
|
|
2798
2265
|
import { hideOthers } from "aria-hidden";
|
|
2799
|
-
import React29, { forwardRef as forwardRef21, useRef as
|
|
2266
|
+
import React29, { forwardRef as forwardRef21, useRef as useRef3, useCallback as useCallback8, useState as useState9, useEffect as useEffect6 } from "react";
|
|
2800
2267
|
import { RemoveScroll } from "react-remove-scroll";
|
|
2801
2268
|
var POPOVER_NAME = "Popover";
|
|
2802
|
-
var [createPopoverContext, createPopoverScope] =
|
|
2803
|
-
|
|
2269
|
+
var [createPopoverContext, createPopoverScope] = createContextScope3(POPOVER_NAME, [
|
|
2270
|
+
createPopperScope
|
|
2804
2271
|
]);
|
|
2805
|
-
var
|
|
2272
|
+
var usePopperScope = createPopperScope();
|
|
2806
2273
|
var [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);
|
|
2807
2274
|
var PopoverRoot = (props) => {
|
|
2808
2275
|
const { __scopePopover, children, open: openProp, defaultOpen, onOpenChange, modal = false } = props;
|
|
2809
|
-
const popperScope =
|
|
2810
|
-
const triggerRef =
|
|
2811
|
-
const [hasCustomAnchor, setHasCustomAnchor] =
|
|
2812
|
-
const [open = false, setOpen] =
|
|
2276
|
+
const popperScope = usePopperScope(__scopePopover);
|
|
2277
|
+
const triggerRef = useRef3(null);
|
|
2278
|
+
const [hasCustomAnchor, setHasCustomAnchor] = useState9(false);
|
|
2279
|
+
const [open = false, setOpen] = useControllableState5({
|
|
2813
2280
|
prop: openProp,
|
|
2814
2281
|
defaultProp: defaultOpen,
|
|
2815
2282
|
onChange: onOpenChange
|
|
2816
2283
|
});
|
|
2817
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2284
|
+
return /* @__PURE__ */ React29.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ React29.createElement(PopoverProvider, {
|
|
2818
2285
|
scope: __scopePopover,
|
|
2819
|
-
contentId:
|
|
2286
|
+
contentId: useId4(),
|
|
2820
2287
|
triggerRef,
|
|
2821
2288
|
open,
|
|
2822
2289
|
onOpenChange: setOpen,
|
|
2823
|
-
onOpenToggle:
|
|
2290
|
+
onOpenToggle: useCallback8(() => setOpen((prevOpen) => !prevOpen), [
|
|
2824
2291
|
setOpen
|
|
2825
2292
|
]),
|
|
2826
2293
|
hasCustomAnchor,
|
|
2827
|
-
onCustomAnchorAdd:
|
|
2828
|
-
onCustomAnchorRemove:
|
|
2294
|
+
onCustomAnchorAdd: useCallback8(() => setHasCustomAnchor(true), []),
|
|
2295
|
+
onCustomAnchorRemove: useCallback8(() => setHasCustomAnchor(false), []),
|
|
2829
2296
|
modal
|
|
2830
2297
|
}, children));
|
|
2831
2298
|
};
|
|
@@ -2834,29 +2301,29 @@ var ANCHOR_NAME = "PopoverAnchor";
|
|
|
2834
2301
|
var PopoverAnchor = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
|
|
2835
2302
|
const { __scopePopover, ...anchorProps } = props;
|
|
2836
2303
|
const context = usePopoverContext(ANCHOR_NAME, __scopePopover);
|
|
2837
|
-
const popperScope =
|
|
2304
|
+
const popperScope = usePopperScope(__scopePopover);
|
|
2838
2305
|
const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
|
|
2839
|
-
|
|
2306
|
+
useEffect6(() => {
|
|
2840
2307
|
onCustomAnchorAdd();
|
|
2841
2308
|
return () => onCustomAnchorRemove();
|
|
2842
2309
|
}, [
|
|
2843
2310
|
onCustomAnchorAdd,
|
|
2844
2311
|
onCustomAnchorRemove
|
|
2845
2312
|
]);
|
|
2846
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2313
|
+
return /* @__PURE__ */ React29.createElement(PopperPrimitive.Anchor, {
|
|
2847
2314
|
...popperScope,
|
|
2848
2315
|
...anchorProps,
|
|
2849
2316
|
ref: forwardedRef
|
|
2850
2317
|
});
|
|
2851
2318
|
});
|
|
2852
2319
|
PopoverAnchor.displayName = ANCHOR_NAME;
|
|
2853
|
-
var
|
|
2320
|
+
var TRIGGER_NAME2 = "PopoverTrigger";
|
|
2854
2321
|
var PopoverTrigger = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
|
|
2855
2322
|
const { __scopePopover, ...triggerProps } = props;
|
|
2856
|
-
const context = usePopoverContext(
|
|
2857
|
-
const popperScope =
|
|
2858
|
-
const composedTriggerRef =
|
|
2859
|
-
const trigger = /* @__PURE__ */ React29.createElement(
|
|
2323
|
+
const context = usePopoverContext(TRIGGER_NAME2, __scopePopover);
|
|
2324
|
+
const popperScope = usePopperScope(__scopePopover);
|
|
2325
|
+
const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
|
|
2326
|
+
const trigger = /* @__PURE__ */ React29.createElement(Primitive11.button, {
|
|
2860
2327
|
type: "button",
|
|
2861
2328
|
"aria-haspopup": "dialog",
|
|
2862
2329
|
"aria-expanded": context.open,
|
|
@@ -2864,54 +2331,54 @@ var PopoverTrigger = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
|
|
|
2864
2331
|
"data-state": getState(context.open),
|
|
2865
2332
|
...triggerProps,
|
|
2866
2333
|
ref: composedTriggerRef,
|
|
2867
|
-
onClick:
|
|
2334
|
+
onClick: composeEventHandlers2(props.onClick, context.onOpenToggle)
|
|
2868
2335
|
});
|
|
2869
|
-
return context.hasCustomAnchor ? trigger : /* @__PURE__ */ React29.createElement(
|
|
2336
|
+
return context.hasCustomAnchor ? trigger : /* @__PURE__ */ React29.createElement(PopperPrimitive.Anchor, {
|
|
2870
2337
|
asChild: true,
|
|
2871
2338
|
...popperScope
|
|
2872
2339
|
}, trigger);
|
|
2873
2340
|
});
|
|
2874
|
-
PopoverTrigger.displayName =
|
|
2341
|
+
PopoverTrigger.displayName = TRIGGER_NAME2;
|
|
2875
2342
|
var VIRTUAL_TRIGGER_NAME2 = "PopoverVirtualTrigger";
|
|
2876
2343
|
var PopoverVirtualTrigger = (props) => {
|
|
2877
2344
|
const { __scopePopover, virtualRef } = props;
|
|
2878
2345
|
const context = usePopoverContext(VIRTUAL_TRIGGER_NAME2, __scopePopover);
|
|
2879
|
-
const popperScope =
|
|
2880
|
-
|
|
2346
|
+
const popperScope = usePopperScope(__scopePopover);
|
|
2347
|
+
useEffect6(() => {
|
|
2881
2348
|
if (virtualRef.current) {
|
|
2882
2349
|
context.triggerRef.current = virtualRef.current;
|
|
2883
2350
|
}
|
|
2884
2351
|
});
|
|
2885
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2352
|
+
return /* @__PURE__ */ React29.createElement(PopperPrimitive.Anchor, {
|
|
2886
2353
|
...popperScope,
|
|
2887
2354
|
virtualRef
|
|
2888
2355
|
});
|
|
2889
2356
|
};
|
|
2890
2357
|
PopoverVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME2;
|
|
2891
|
-
var
|
|
2892
|
-
var [
|
|
2358
|
+
var PORTAL_NAME2 = "PopoverPortal";
|
|
2359
|
+
var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME2, {
|
|
2893
2360
|
forceMount: void 0
|
|
2894
2361
|
});
|
|
2895
2362
|
var PopoverPortal = (props) => {
|
|
2896
2363
|
const { __scopePopover, forceMount, children, container } = props;
|
|
2897
|
-
const context = usePopoverContext(
|
|
2898
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2364
|
+
const context = usePopoverContext(PORTAL_NAME2, __scopePopover);
|
|
2365
|
+
return /* @__PURE__ */ React29.createElement(PortalProvider, {
|
|
2899
2366
|
scope: __scopePopover,
|
|
2900
2367
|
forceMount
|
|
2901
|
-
}, /* @__PURE__ */ React29.createElement(
|
|
2368
|
+
}, /* @__PURE__ */ React29.createElement(Presence, {
|
|
2902
2369
|
present: forceMount || context.open
|
|
2903
|
-
}, /* @__PURE__ */ React29.createElement(
|
|
2370
|
+
}, /* @__PURE__ */ React29.createElement(PortalPrimitive, {
|
|
2904
2371
|
asChild: true,
|
|
2905
2372
|
container
|
|
2906
2373
|
}, children)));
|
|
2907
2374
|
};
|
|
2908
|
-
PopoverPortal.displayName =
|
|
2909
|
-
var
|
|
2375
|
+
PopoverPortal.displayName = PORTAL_NAME2;
|
|
2376
|
+
var CONTENT_NAME2 = "PopoverContent";
|
|
2910
2377
|
var PopoverContent = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
|
|
2911
|
-
const portalContext =
|
|
2378
|
+
const portalContext = usePortalContext(CONTENT_NAME2, props.__scopePopover);
|
|
2912
2379
|
const { forceMount = portalContext.forceMount, ...contentProps } = props;
|
|
2913
|
-
const context = usePopoverContext(
|
|
2914
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2380
|
+
const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
|
|
2381
|
+
return /* @__PURE__ */ React29.createElement(Presence, {
|
|
2915
2382
|
present: forceMount || context.open
|
|
2916
2383
|
}, context.modal ? /* @__PURE__ */ React29.createElement(PopoverContentModal, {
|
|
2917
2384
|
...contentProps,
|
|
@@ -2921,13 +2388,13 @@ var PopoverContent = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
|
|
|
2921
2388
|
ref: forwardedRef
|
|
2922
2389
|
}));
|
|
2923
2390
|
});
|
|
2924
|
-
PopoverContent.displayName =
|
|
2391
|
+
PopoverContent.displayName = CONTENT_NAME2;
|
|
2925
2392
|
var PopoverContentModal = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
|
|
2926
|
-
const context = usePopoverContext(
|
|
2927
|
-
const contentRef =
|
|
2928
|
-
const composedRefs =
|
|
2929
|
-
const isRightClickOutsideRef =
|
|
2930
|
-
|
|
2393
|
+
const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
|
|
2394
|
+
const contentRef = useRef3(null);
|
|
2395
|
+
const composedRefs = useComposedRefs(forwardedRef, contentRef);
|
|
2396
|
+
const isRightClickOutsideRef = useRef3(false);
|
|
2397
|
+
useEffect6(() => {
|
|
2931
2398
|
const content = contentRef.current;
|
|
2932
2399
|
if (content) {
|
|
2933
2400
|
return hideOthers(content);
|
|
@@ -2943,13 +2410,13 @@ var PopoverContentModal = /* @__PURE__ */ forwardRef21((props, forwardedRef) =>
|
|
|
2943
2410
|
// (closed !== unmounted when animating out)
|
|
2944
2411
|
trapFocus: context.open,
|
|
2945
2412
|
disableOutsidePointerEvents: true,
|
|
2946
|
-
onCloseAutoFocus:
|
|
2413
|
+
onCloseAutoFocus: composeEventHandlers2(props.onCloseAutoFocus, (event) => {
|
|
2947
2414
|
event.preventDefault();
|
|
2948
2415
|
if (!isRightClickOutsideRef.current) {
|
|
2949
2416
|
context.triggerRef.current?.focus();
|
|
2950
2417
|
}
|
|
2951
2418
|
}),
|
|
2952
|
-
onPointerDownOutside:
|
|
2419
|
+
onPointerDownOutside: composeEventHandlers2(props.onPointerDownOutside, (event) => {
|
|
2953
2420
|
const originalEvent = event.detail.originalEvent;
|
|
2954
2421
|
const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
|
|
2955
2422
|
const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
|
|
@@ -2959,15 +2426,15 @@ var PopoverContentModal = /* @__PURE__ */ forwardRef21((props, forwardedRef) =>
|
|
|
2959
2426
|
}),
|
|
2960
2427
|
// When focus is trapped, a `focusout` event may still happen.
|
|
2961
2428
|
// We make sure we don't trigger our `onDismiss` in such case.
|
|
2962
|
-
onFocusOutside:
|
|
2429
|
+
onFocusOutside: composeEventHandlers2(props.onFocusOutside, (event) => event.preventDefault(), {
|
|
2963
2430
|
checkForDefaultPrevented: false
|
|
2964
2431
|
})
|
|
2965
2432
|
}));
|
|
2966
2433
|
});
|
|
2967
2434
|
var PopoverContentNonModal = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
|
|
2968
|
-
const context = usePopoverContext(
|
|
2969
|
-
const hasInteractedOutsideRef =
|
|
2970
|
-
const hasPointerDownOutsideRef =
|
|
2435
|
+
const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
|
|
2436
|
+
const hasInteractedOutsideRef = useRef3(false);
|
|
2437
|
+
const hasPointerDownOutsideRef = useRef3(false);
|
|
2971
2438
|
return /* @__PURE__ */ React29.createElement(PopoverContentImpl, {
|
|
2972
2439
|
...props,
|
|
2973
2440
|
ref: forwardedRef,
|
|
@@ -3005,8 +2472,8 @@ var PopoverContentNonModal = /* @__PURE__ */ forwardRef21((props, forwardedRef)
|
|
|
3005
2472
|
});
|
|
3006
2473
|
var PopoverContentImpl = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
|
|
3007
2474
|
const { __scopePopover, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, collisionPadding = 8, classNames, ...contentProps } = props;
|
|
3008
|
-
const context = usePopoverContext(
|
|
3009
|
-
const popperScope =
|
|
2475
|
+
const context = usePopoverContext(CONTENT_NAME2, __scopePopover);
|
|
2476
|
+
const popperScope = usePopperScope(__scopePopover);
|
|
3010
2477
|
const { tx } = useThemeContext();
|
|
3011
2478
|
const elevation = useElevationContext();
|
|
3012
2479
|
const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
|
|
@@ -3017,7 +2484,7 @@ var PopoverContentImpl = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
|
|
|
3017
2484
|
trapped: trapFocus,
|
|
3018
2485
|
onMountAutoFocus: onOpenAutoFocus,
|
|
3019
2486
|
onUnmountAutoFocus: onCloseAutoFocus
|
|
3020
|
-
}, /* @__PURE__ */ React29.createElement(
|
|
2487
|
+
}, /* @__PURE__ */ React29.createElement(DismissableLayer, {
|
|
3021
2488
|
asChild: true,
|
|
3022
2489
|
disableOutsidePointerEvents,
|
|
3023
2490
|
onInteractOutside,
|
|
@@ -3025,7 +2492,7 @@ var PopoverContentImpl = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
|
|
|
3025
2492
|
onPointerDownOutside,
|
|
3026
2493
|
onFocusOutside,
|
|
3027
2494
|
onDismiss: () => context.onOpenChange(false)
|
|
3028
|
-
}, /* @__PURE__ */ React29.createElement(
|
|
2495
|
+
}, /* @__PURE__ */ React29.createElement(PopperPrimitive.Content, {
|
|
3029
2496
|
"data-state": getState(context.open),
|
|
3030
2497
|
role: "dialog",
|
|
3031
2498
|
id: context.contentId,
|
|
@@ -3053,31 +2520,31 @@ var CLOSE_NAME = "PopoverClose";
|
|
|
3053
2520
|
var PopoverClose = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
|
|
3054
2521
|
const { __scopePopover, ...closeProps } = props;
|
|
3055
2522
|
const context = usePopoverContext(CLOSE_NAME, __scopePopover);
|
|
3056
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2523
|
+
return /* @__PURE__ */ React29.createElement(Primitive11.button, {
|
|
3057
2524
|
type: "button",
|
|
3058
2525
|
...closeProps,
|
|
3059
2526
|
ref: forwardedRef,
|
|
3060
|
-
onClick:
|
|
2527
|
+
onClick: composeEventHandlers2(props.onClick, () => context.onOpenChange(false))
|
|
3061
2528
|
});
|
|
3062
2529
|
});
|
|
3063
2530
|
PopoverClose.displayName = CLOSE_NAME;
|
|
3064
|
-
var
|
|
2531
|
+
var ARROW_NAME2 = "PopoverArrow";
|
|
3065
2532
|
var PopoverArrow = /* @__PURE__ */ forwardRef21((props, forwardedRef) => {
|
|
3066
2533
|
const { __scopePopover, classNames, ...arrowProps } = props;
|
|
3067
|
-
const popperScope =
|
|
2534
|
+
const popperScope = usePopperScope(__scopePopover);
|
|
3068
2535
|
const { tx } = useThemeContext();
|
|
3069
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2536
|
+
return /* @__PURE__ */ React29.createElement(PopperPrimitive.Arrow, {
|
|
3070
2537
|
...popperScope,
|
|
3071
2538
|
...arrowProps,
|
|
3072
2539
|
className: tx("popover.arrow", "popover__arrow", {}, classNames),
|
|
3073
2540
|
ref: forwardedRef
|
|
3074
2541
|
});
|
|
3075
2542
|
});
|
|
3076
|
-
PopoverArrow.displayName =
|
|
2543
|
+
PopoverArrow.displayName = ARROW_NAME2;
|
|
3077
2544
|
var PopoverViewport = /* @__PURE__ */ forwardRef21(({ classNames, asChild, constrainInline = true, constrainBlock = true, children, ...props }, forwardedRef) => {
|
|
3078
2545
|
const { tx } = useThemeContext();
|
|
3079
|
-
const
|
|
3080
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2546
|
+
const Root5 = asChild ? Slot12 : Primitive11.div;
|
|
2547
|
+
return /* @__PURE__ */ React29.createElement(Root5, {
|
|
3081
2548
|
...props,
|
|
3082
2549
|
className: tx("popover.viewport", "popover__viewport", {
|
|
3083
2550
|
constrainInline,
|
|
@@ -3328,13 +2795,13 @@ var Separator4 = /* @__PURE__ */ forwardRef25(({ classNames, orientation = "hori
|
|
|
3328
2795
|
});
|
|
3329
2796
|
|
|
3330
2797
|
// packages/ui/react-ui/src/components/Tag/Tag.tsx
|
|
3331
|
-
import { Primitive as
|
|
2798
|
+
import { Primitive as Primitive12 } from "@radix-ui/react-primitive";
|
|
3332
2799
|
import { Slot as Slot13 } from "@radix-ui/react-slot";
|
|
3333
2800
|
import React34, { forwardRef as forwardRef26 } from "react";
|
|
3334
2801
|
var Tag = /* @__PURE__ */ forwardRef26(({ asChild, palette = "neutral", classNames, ...props }, forwardedRef) => {
|
|
3335
2802
|
const { tx } = useThemeContext();
|
|
3336
|
-
const
|
|
3337
|
-
return /* @__PURE__ */ React34.createElement(
|
|
2803
|
+
const Root5 = asChild ? Slot13 : Primitive12.span;
|
|
2804
|
+
return /* @__PURE__ */ React34.createElement(Root5, {
|
|
3338
2805
|
...props,
|
|
3339
2806
|
className: tx("tag.root", "dx-tag", {
|
|
3340
2807
|
palette
|
|
@@ -3345,7 +2812,7 @@ var Tag = /* @__PURE__ */ forwardRef26(({ asChild, palette = "neutral", classNam
|
|
|
3345
2812
|
});
|
|
3346
2813
|
|
|
3347
2814
|
// packages/ui/react-ui/src/components/Toast/Toast.tsx
|
|
3348
|
-
import { Primitive as
|
|
2815
|
+
import { Primitive as Primitive13 } from "@radix-ui/react-primitive";
|
|
3349
2816
|
import { Slot as Slot14 } from "@radix-ui/react-slot";
|
|
3350
2817
|
import { ToastProvider as ToastProviderPrimitive, ToastViewport as ToastViewportPrimitive, Root as ToastRootPrimitive, ToastTitle as ToastTitlePrimitive, ToastDescription as ToastDescriptionPrimitive, ToastAction as ToastActionPrimitive, ToastClose as ToastClosePrimitive } from "@radix-ui/react-toast";
|
|
3351
2818
|
import React35, { forwardRef as forwardRef27 } from "react";
|
|
@@ -3369,8 +2836,8 @@ var ToastRoot = /* @__PURE__ */ forwardRef27(({ classNames, children, ...props }
|
|
|
3369
2836
|
});
|
|
3370
2837
|
var ToastBody = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
3371
2838
|
const { tx } = useThemeContext();
|
|
3372
|
-
const
|
|
3373
|
-
return /* @__PURE__ */ React35.createElement(
|
|
2839
|
+
const Root5 = asChild ? Slot14 : Primitive13.div;
|
|
2840
|
+
return /* @__PURE__ */ React35.createElement(Root5, {
|
|
3374
2841
|
...props,
|
|
3375
2842
|
className: tx("toast.body", "toast__body", {}, classNames),
|
|
3376
2843
|
ref: forwardedRef
|
|
@@ -3378,8 +2845,8 @@ var ToastBody = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props },
|
|
|
3378
2845
|
});
|
|
3379
2846
|
var ToastTitle = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
3380
2847
|
const { tx } = useThemeContext();
|
|
3381
|
-
const
|
|
3382
|
-
return /* @__PURE__ */ React35.createElement(
|
|
2848
|
+
const Root5 = asChild ? Slot14 : ToastTitlePrimitive;
|
|
2849
|
+
return /* @__PURE__ */ React35.createElement(Root5, {
|
|
3383
2850
|
...props,
|
|
3384
2851
|
className: tx("toast.title", "toast__title", {}, classNames),
|
|
3385
2852
|
ref: forwardedRef
|
|
@@ -3387,8 +2854,8 @@ var ToastTitle = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props }
|
|
|
3387
2854
|
});
|
|
3388
2855
|
var ToastDescription = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
3389
2856
|
const { tx } = useThemeContext();
|
|
3390
|
-
const
|
|
3391
|
-
return /* @__PURE__ */ React35.createElement(
|
|
2857
|
+
const Root5 = asChild ? Slot14 : ToastDescriptionPrimitive;
|
|
2858
|
+
return /* @__PURE__ */ React35.createElement(Root5, {
|
|
3392
2859
|
...props,
|
|
3393
2860
|
className: tx("toast.description", "toast__description", {}, classNames),
|
|
3394
2861
|
ref: forwardedRef
|
|
@@ -3396,8 +2863,8 @@ var ToastDescription = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...p
|
|
|
3396
2863
|
});
|
|
3397
2864
|
var ToastActions = /* @__PURE__ */ forwardRef27(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
3398
2865
|
const { tx } = useThemeContext();
|
|
3399
|
-
const
|
|
3400
|
-
return /* @__PURE__ */ React35.createElement(
|
|
2866
|
+
const Root5 = asChild ? Slot14 : Primitive13.div;
|
|
2867
|
+
return /* @__PURE__ */ React35.createElement(Root5, {
|
|
3401
2868
|
...props,
|
|
3402
2869
|
className: tx("toast.actions", "toast__actions", {}, classNames),
|
|
3403
2870
|
ref: forwardedRef
|
|
@@ -3567,7 +3034,6 @@ export {
|
|
|
3567
3034
|
Treegrid,
|
|
3568
3035
|
createDropdownMenuScope,
|
|
3569
3036
|
createPopoverScope,
|
|
3570
|
-
createTooltipScope,
|
|
3571
3037
|
hasIosKeyboard,
|
|
3572
3038
|
initialSafeArea,
|
|
3573
3039
|
isLabel,
|
|
@@ -3587,7 +3053,6 @@ export {
|
|
|
3587
3053
|
useSafeArea,
|
|
3588
3054
|
useSidebars,
|
|
3589
3055
|
useThemeContext,
|
|
3590
|
-
useTooltipContext,
|
|
3591
3056
|
useTranslation,
|
|
3592
3057
|
useTranslationsContext,
|
|
3593
3058
|
useVisualViewport
|