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