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