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