@dxos/react-ui 0.6.13 → 0.6.14-main.1366248
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 +740 -200
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +2932 -0
- package/dist/lib/node/index.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -0
- package/dist/lib/node-esm/index.mjs +2931 -0
- package/dist/lib/node-esm/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -0
- package/dist/types/src/components/Avatars/Avatar.stories.d.ts +15 -1
- package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +6 -1
- package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
- package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts +9 -1
- package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
- package/dist/types/src/components/Buttons/Button.d.ts +1 -1
- package/dist/types/src/components/Buttons/Button.d.ts.map +1 -1
- package/dist/types/src/components/Buttons/Button.stories.d.ts +12 -17
- package/dist/types/src/components/Buttons/Button.stories.d.ts.map +1 -1
- package/dist/types/src/components/Buttons/Toggle.stories.d.ts +2 -1
- package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +1 -1
- package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +20 -1
- package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +1 -1
- package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
- package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +12 -1
- package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +11 -1
- package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/Icon/Icon.d.ts +1 -1
- package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.stories.d.ts +16 -1
- package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
- package/dist/types/src/components/Lists/List.stories.d.ts +2 -3
- package/dist/types/src/components/Lists/List.stories.d.ts.map +1 -1
- package/dist/types/src/components/Lists/Tree.stories.d.ts +5 -1
- package/dist/types/src/components/Lists/Tree.stories.d.ts.map +1 -1
- package/dist/types/src/components/Lists/Treegrid.stories.d.ts +3 -2
- package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +1 -1
- package/dist/types/src/components/Main/Main.stories.d.ts +5 -1
- package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
- package/dist/types/src/components/Menus/ContextMenu.stories.d.ts +29 -1
- package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +1 -1
- package/dist/types/src/components/Menus/DropdownMenu.d.ts +105 -44
- package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +1 -1
- package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts +29 -1
- package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +1 -1
- package/dist/types/src/components/Message/Message.stories.d.ts +6 -1
- package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
- package/dist/types/src/components/Popover/Popover.d.ts +87 -21
- package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
- package/dist/types/src/components/Popover/Popover.stories.d.ts +20 -1
- package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +20 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
- package/dist/types/src/components/Select/Select.d.ts +4 -2
- package/dist/types/src/components/Select/Select.d.ts.map +1 -1
- package/dist/types/src/components/Select/Select.stories.d.ts +10 -11
- package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
- package/dist/types/src/components/Status/Status.stories.d.ts +0 -3
- package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +4 -5
- package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +4 -4
- package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
- package/dist/types/src/components/Toast/Toast.stories.d.ts +20 -1
- package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.d.ts +4 -2
- package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +30 -1
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +13 -1
- package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
- package/dist/types/src/hooks/useThemeContext.d.ts.map +1 -1
- package/dist/types/src/playground/Controls.stories.d.ts +2 -6
- package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
- package/dist/types/src/playground/Surfaces.stories.d.ts +6 -2
- package/dist/types/src/playground/Surfaces.stories.d.ts.map +1 -1
- package/dist/types/src/playground/Typography.stories.d.ts +1 -1
- package/dist/types/src/testing/decorators/index.d.ts +1 -0
- package/dist/types/src/testing/decorators/index.d.ts.map +1 -1
- package/dist/types/src/testing/decorators/withVariants.d.ts +13 -0
- package/dist/types/src/testing/decorators/withVariants.d.ts.map +1 -0
- package/package.json +28 -17
- package/src/components/Avatars/Avatar.stories.tsx +3 -2
- package/src/components/Avatars/AvatarGroup.stories.tsx +3 -2
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +3 -2
- package/src/components/Buttons/Button.stories.tsx +34 -63
- package/src/components/Buttons/Button.tsx +46 -36
- package/src/components/Buttons/Toggle.stories.tsx +3 -2
- package/src/components/Buttons/ToggleGroup.stories.tsx +3 -2
- package/src/components/DensityProvider/DensityProvider.tsx +1 -1
- package/src/components/Dialogs/AlertDialog.stories.tsx +3 -2
- package/src/components/Dialogs/Dialog.stories.tsx +3 -2
- package/src/components/Icon/Icon.tsx +11 -9
- package/src/components/Input/Input.stories.tsx +4 -3
- package/src/components/Link/Link.stories.tsx +1 -1
- package/src/components/Lists/List.stories.tsx +4 -4
- package/src/components/Lists/Tree.stories.tsx +3 -2
- package/src/components/Lists/Treegrid.stories.tsx +7 -5
- package/src/components/Main/Main.stories.tsx +3 -2
- package/src/components/Menus/ContextMenu.stories.tsx +3 -2
- package/src/components/Menus/DropdownMenu.stories.tsx +43 -3
- package/src/components/Menus/DropdownMenu.tsx +518 -69
- package/src/components/Message/Message.stories.tsx +3 -2
- package/src/components/Popover/Popover.stories.tsx +27 -3
- package/src/components/Popover/Popover.tsx +524 -55
- package/src/components/ScrollArea/ScrollArea.stories.tsx +3 -2
- package/src/components/Select/Select.stories.tsx +14 -31
- package/src/components/Select/Select.tsx +24 -12
- package/src/components/Status/Status.stories.tsx +1 -2
- package/src/components/Tag/Tag.stories.tsx +1 -1
- package/src/components/ThemeProvider/ThemeProvider.tsx +17 -18
- package/src/components/Toast/Toast.stories.tsx +3 -2
- package/src/components/Toast/Toast.tsx +1 -4
- package/src/components/Toolbar/Toolbar.stories.tsx +3 -2
- package/src/components/Toolbar/Toolbar.tsx +21 -1
- package/src/components/Tooltip/Tooltip.stories.tsx +3 -2
- package/src/hooks/useThemeContext.ts +3 -1
- package/src/playground/Controls.stories.tsx +7 -10
- package/src/playground/Surfaces.stories.tsx +4 -3
- package/src/playground/Typography.stories.tsx +2 -2
- package/src/testing/decorators/index.ts +1 -0
- package/src/testing/decorators/withVariants.tsx +45 -0
- package/dist/types/src/playground/helpers.d.ts +0 -6
- package/dist/types/src/playground/helpers.d.ts.map +0 -1
- package/src/playground/helpers.tsx +0 -32
|
@@ -94,7 +94,8 @@ var useTranslationsContext = () => useContext4(TranslationsContext);
|
|
|
94
94
|
|
|
95
95
|
// packages/ui/react-ui/src/hooks/useThemeContext.ts
|
|
96
96
|
import { useContext as useContext5 } from "react";
|
|
97
|
-
|
|
97
|
+
import { raise } from "@dxos/debug";
|
|
98
|
+
var useThemeContext = () => useContext5(ThemeContext) ?? raise(new Error("Missing ThemeContext"));
|
|
98
99
|
|
|
99
100
|
// packages/ui/react-ui/src/hooks/useVisualViewport.ts
|
|
100
101
|
import { useEffect as useEffect2, useState as useState2 } from "react";
|
|
@@ -121,8 +122,8 @@ var useVisualViewport = (deps) => {
|
|
|
121
122
|
// packages/ui/react-ui/src/components/AnchoredOverflow/AnchoredOverflow.tsx
|
|
122
123
|
var AnchoredOverflowRoot = /* @__PURE__ */ forwardRef(({ asChild, classNames, children, ...props }, forwardedRef) => {
|
|
123
124
|
const { tx } = useThemeContext();
|
|
124
|
-
const
|
|
125
|
-
return /* @__PURE__ */ React2.createElement(
|
|
125
|
+
const Root5 = asChild ? Slot : Primitive.div;
|
|
126
|
+
return /* @__PURE__ */ React2.createElement(Root5, {
|
|
126
127
|
role: "none",
|
|
127
128
|
...props,
|
|
128
129
|
className: tx("anchoredOverflow.root", "overflow-anchored", {}, classNames),
|
|
@@ -131,8 +132,8 @@ var AnchoredOverflowRoot = /* @__PURE__ */ forwardRef(({ asChild, classNames, ch
|
|
|
131
132
|
});
|
|
132
133
|
var AnchoredOverflowAnchor = /* @__PURE__ */ forwardRef(({ asChild, classNames, children, ...props }, forwardedRef) => {
|
|
133
134
|
const { tx } = useThemeContext();
|
|
134
|
-
const
|
|
135
|
-
return /* @__PURE__ */ React2.createElement(
|
|
135
|
+
const Root5 = asChild ? Slot : Primitive.div;
|
|
136
|
+
return /* @__PURE__ */ React2.createElement(Root5, {
|
|
136
137
|
role: "none",
|
|
137
138
|
...props,
|
|
138
139
|
className: tx("anchoredOverflow.anchor", "overflow-anchor", {}, classNames),
|
|
@@ -153,8 +154,8 @@ import React4, { forwardRef as forwardRef3 } from "react";
|
|
|
153
154
|
import { useId } from "@dxos/react-hooks";
|
|
154
155
|
|
|
155
156
|
// packages/ui/react-ui/src/components/Icon/Icon.tsx
|
|
156
|
-
import React3, { forwardRef as forwardRef2 } from "react";
|
|
157
|
-
var Icon = /* @__PURE__ */ forwardRef2(({ icon, classNames, size, ...props }, forwardedRef) => {
|
|
157
|
+
import React3, { forwardRef as forwardRef2, memo } from "react";
|
|
158
|
+
var Icon = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef2(({ icon, classNames, size, ...props }, forwardedRef) => {
|
|
158
159
|
const { tx } = useThemeContext();
|
|
159
160
|
return /* @__PURE__ */ React3.createElement("svg", {
|
|
160
161
|
...props,
|
|
@@ -165,7 +166,7 @@ var Icon = /* @__PURE__ */ forwardRef2(({ icon, classNames, size, ...props }, fo
|
|
|
165
166
|
}, /* @__PURE__ */ React3.createElement("use", {
|
|
166
167
|
href: `/icons.svg#${icon}`
|
|
167
168
|
}));
|
|
168
|
-
});
|
|
169
|
+
}));
|
|
169
170
|
|
|
170
171
|
// packages/ui/react-ui/src/components/Avatars/Avatar.tsx
|
|
171
172
|
var AVATAR_NAME = "Avatar";
|
|
@@ -259,10 +260,10 @@ var AvatarFrame = /* @__PURE__ */ forwardRef3(({ classNames, children, ...props
|
|
|
259
260
|
}));
|
|
260
261
|
});
|
|
261
262
|
var AvatarLabel = /* @__PURE__ */ forwardRef3(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
|
|
262
|
-
const
|
|
263
|
+
const Root5 = asChild ? Slot2 : Primitive2.span;
|
|
263
264
|
const { tx } = useThemeContext();
|
|
264
265
|
const { labelId } = useAvatarContext("AvatarLabel");
|
|
265
|
-
return /* @__PURE__ */ React4.createElement(
|
|
266
|
+
return /* @__PURE__ */ React4.createElement(Root5, {
|
|
266
267
|
...props,
|
|
267
268
|
id: labelId,
|
|
268
269
|
ref: forwardedRef,
|
|
@@ -272,10 +273,10 @@ var AvatarLabel = /* @__PURE__ */ forwardRef3(({ asChild, srOnly, classNames, ..
|
|
|
272
273
|
});
|
|
273
274
|
});
|
|
274
275
|
var AvatarDescription = /* @__PURE__ */ forwardRef3(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
|
|
275
|
-
const
|
|
276
|
+
const Root5 = asChild ? Slot2 : Primitive2.span;
|
|
276
277
|
const { tx } = useThemeContext();
|
|
277
278
|
const { descriptionId } = useAvatarContext("AvatarDescription");
|
|
278
|
-
return /* @__PURE__ */ React4.createElement(
|
|
279
|
+
return /* @__PURE__ */ React4.createElement(Root5, {
|
|
279
280
|
...props,
|
|
280
281
|
id: descriptionId,
|
|
281
282
|
ref: forwardedRef,
|
|
@@ -438,8 +439,8 @@ import { Slot as Slot3 } from "@radix-ui/react-slot";
|
|
|
438
439
|
import React6, { forwardRef as forwardRef5 } from "react";
|
|
439
440
|
var Link = /* @__PURE__ */ forwardRef5(({ asChild, variant, classNames, ...props }, forwardedRef) => {
|
|
440
441
|
const { tx } = useThemeContext();
|
|
441
|
-
const
|
|
442
|
-
return /* @__PURE__ */ React6.createElement(
|
|
442
|
+
const Root5 = asChild ? Slot3 : Primitive3.a;
|
|
443
|
+
return /* @__PURE__ */ React6.createElement(Root5, {
|
|
443
444
|
...props,
|
|
444
445
|
className: tx("link.root", "link", {
|
|
445
446
|
variant
|
|
@@ -451,8 +452,8 @@ var Link = /* @__PURE__ */ forwardRef5(({ asChild, variant, classNames, ...props
|
|
|
451
452
|
// packages/ui/react-ui/src/components/Breadcrumb/Breadcrumb.tsx
|
|
452
453
|
var BreadcrumbRoot = /* @__PURE__ */ forwardRef6(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
453
454
|
const { tx } = useThemeContext();
|
|
454
|
-
const
|
|
455
|
-
return /* @__PURE__ */ React7.createElement(
|
|
455
|
+
const Root5 = asChild ? Slot4 : Primitive4.div;
|
|
456
|
+
return /* @__PURE__ */ React7.createElement(Root5, {
|
|
456
457
|
role: "navigation",
|
|
457
458
|
...props,
|
|
458
459
|
className: tx("breadcrumb.root", "breadcrumb", {}, classNames),
|
|
@@ -461,8 +462,8 @@ var BreadcrumbRoot = /* @__PURE__ */ forwardRef6(({ asChild, classNames, ...prop
|
|
|
461
462
|
});
|
|
462
463
|
var BreadcrumbList = /* @__PURE__ */ forwardRef6(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
463
464
|
const { tx } = useThemeContext();
|
|
464
|
-
const
|
|
465
|
-
return /* @__PURE__ */ React7.createElement(
|
|
465
|
+
const Root5 = asChild ? Slot4 : Primitive4.ol;
|
|
466
|
+
return /* @__PURE__ */ React7.createElement(Root5, {
|
|
466
467
|
role: "list",
|
|
467
468
|
...props,
|
|
468
469
|
className: tx("breadcrumb.list", "breadcrumb__list", {}, classNames),
|
|
@@ -471,8 +472,8 @@ var BreadcrumbList = /* @__PURE__ */ forwardRef6(({ asChild, classNames, ...prop
|
|
|
471
472
|
});
|
|
472
473
|
var BreadcrumbListItem = /* @__PURE__ */ forwardRef6(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
473
474
|
const { tx } = useThemeContext();
|
|
474
|
-
const
|
|
475
|
-
return /* @__PURE__ */ React7.createElement(
|
|
475
|
+
const Root5 = asChild ? Slot4 : Primitive4.li;
|
|
476
|
+
return /* @__PURE__ */ React7.createElement(Root5, {
|
|
476
477
|
role: "listitem",
|
|
477
478
|
...props,
|
|
478
479
|
className: tx("breadcrumb.listItem", "breadcrumb__list__item", {}, classNames),
|
|
@@ -480,16 +481,16 @@ var BreadcrumbListItem = /* @__PURE__ */ forwardRef6(({ asChild, classNames, ...
|
|
|
480
481
|
});
|
|
481
482
|
});
|
|
482
483
|
var BreadcrumbLink = /* @__PURE__ */ forwardRef6(({ asChild, ...props }, forwardedRef) => {
|
|
483
|
-
const
|
|
484
|
-
return /* @__PURE__ */ React7.createElement(
|
|
484
|
+
const Root5 = asChild ? Slot4 : Link;
|
|
485
|
+
return /* @__PURE__ */ React7.createElement(Root5, {
|
|
485
486
|
...props,
|
|
486
487
|
ref: forwardedRef
|
|
487
488
|
});
|
|
488
489
|
});
|
|
489
490
|
var BreadcrumbCurrent = /* @__PURE__ */ forwardRef6(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
490
491
|
const { tx } = useThemeContext();
|
|
491
|
-
const
|
|
492
|
-
return /* @__PURE__ */ React7.createElement(
|
|
492
|
+
const Root5 = asChild ? Slot4 : "h1";
|
|
493
|
+
return /* @__PURE__ */ React7.createElement(Root5, {
|
|
493
494
|
...props,
|
|
494
495
|
"aria-current": "page",
|
|
495
496
|
className: tx("breadcrumb.current", "breadcrumb__item__heading--current", {}, classNames),
|
|
@@ -520,19 +521,19 @@ var Breadcrumb = {
|
|
|
520
521
|
import { createContext as createContext3 } from "@radix-ui/react-context";
|
|
521
522
|
import { Primitive as Primitive5 } from "@radix-ui/react-primitive";
|
|
522
523
|
import { Slot as Slot5 } from "@radix-ui/react-slot";
|
|
523
|
-
import React8, { forwardRef as forwardRef7 } from "react";
|
|
524
|
+
import React8, { forwardRef as forwardRef7, memo as memo2 } from "react";
|
|
524
525
|
var BUTTON_GROUP_NAME = "ButtonGroup";
|
|
525
526
|
var BUTTON_NAME = "Button";
|
|
526
527
|
var [ButtonGroupProvider, useButtonGroupContext] = createContext3(BUTTON_GROUP_NAME, {
|
|
527
528
|
inGroup: false
|
|
528
529
|
});
|
|
529
|
-
var Button = /* @__PURE__ */ forwardRef7(({ classNames, children, density: propsDensity, elevation: propsElevation, variant = "default", asChild, ...props }, ref) => {
|
|
530
|
+
var Button = /* @__PURE__ */ memo2(/* @__PURE__ */ forwardRef7(({ classNames, children, density: propsDensity, elevation: propsElevation, variant = "default", asChild, ...props }, ref) => {
|
|
530
531
|
const { inGroup } = useButtonGroupContext(BUTTON_NAME);
|
|
531
532
|
const { tx } = useThemeContext();
|
|
532
533
|
const elevation = useElevationContext(propsElevation);
|
|
533
534
|
const density = useDensityContext(propsDensity);
|
|
534
|
-
const
|
|
535
|
-
return /* @__PURE__ */ React8.createElement(
|
|
535
|
+
const Root5 = asChild ? Slot5 : Primitive5.button;
|
|
536
|
+
return /* @__PURE__ */ React8.createElement(Root5, {
|
|
536
537
|
ref,
|
|
537
538
|
...props,
|
|
538
539
|
"data-variant": variant,
|
|
@@ -549,13 +550,13 @@ var Button = /* @__PURE__ */ forwardRef7(({ classNames, children, density: props
|
|
|
549
550
|
disabled: true
|
|
550
551
|
}
|
|
551
552
|
}, children);
|
|
552
|
-
});
|
|
553
|
+
}));
|
|
553
554
|
Button.displayName = BUTTON_NAME;
|
|
554
555
|
var ButtonGroup = /* @__PURE__ */ forwardRef7(({ children, elevation: propsElevation, classNames, asChild, ...props }, forwardedRef) => {
|
|
555
556
|
const { tx } = useThemeContext();
|
|
556
557
|
const elevation = useElevationContext(propsElevation);
|
|
557
|
-
const
|
|
558
|
-
return /* @__PURE__ */ React8.createElement(
|
|
558
|
+
const Root5 = asChild ? Slot5 : Primitive5.div;
|
|
559
|
+
return /* @__PURE__ */ React8.createElement(Root5, {
|
|
559
560
|
role: "none",
|
|
560
561
|
...props,
|
|
561
562
|
className: tx("button.group", "button-group", {
|
|
@@ -785,8 +786,8 @@ var ContextMenuContent = /* @__PURE__ */ forwardRef12(({ classNames, children, .
|
|
|
785
786
|
});
|
|
786
787
|
var ContextMenuViewport = /* @__PURE__ */ forwardRef12(({ classNames, asChild, children, ...props }, forwardedRef) => {
|
|
787
788
|
const { tx } = useThemeContext();
|
|
788
|
-
const
|
|
789
|
-
return /* @__PURE__ */ React14.createElement(
|
|
789
|
+
const Root5 = asChild ? Slot6 : Primitive6.div;
|
|
790
|
+
return /* @__PURE__ */ React14.createElement(Root5, {
|
|
790
791
|
...props,
|
|
791
792
|
className: tx("menu.viewport", "menu__viewport", {}, classNames),
|
|
792
793
|
ref: forwardedRef
|
|
@@ -850,99 +851,364 @@ var ContextMenu2 = {
|
|
|
850
851
|
};
|
|
851
852
|
|
|
852
853
|
// packages/ui/react-ui/src/components/Menus/DropdownMenu.tsx
|
|
853
|
-
import
|
|
854
|
+
import { composeEventHandlers } from "@radix-ui/primitive";
|
|
855
|
+
import { composeRefs } from "@radix-ui/react-compose-refs";
|
|
856
|
+
import { createContextScope } from "@radix-ui/react-context";
|
|
857
|
+
import { useId as useId3 } from "@radix-ui/react-id";
|
|
858
|
+
import * as MenuPrimitive from "@radix-ui/react-menu";
|
|
859
|
+
import { createMenuScope } from "@radix-ui/react-menu";
|
|
854
860
|
import { Primitive as Primitive7 } from "@radix-ui/react-primitive";
|
|
855
861
|
import { Slot as Slot7 } from "@radix-ui/react-slot";
|
|
856
|
-
import
|
|
857
|
-
|
|
858
|
-
var
|
|
859
|
-
var
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
var
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
862
|
+
import { useControllableState } from "@radix-ui/react-use-controllable-state";
|
|
863
|
+
import React15, { useRef, useCallback, forwardRef as forwardRef13, useEffect as useEffect3 } from "react";
|
|
864
|
+
var DROPDOWN_MENU_NAME = "DropdownMenu";
|
|
865
|
+
var [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(DROPDOWN_MENU_NAME, [
|
|
866
|
+
createMenuScope
|
|
867
|
+
]);
|
|
868
|
+
var useMenuScope = createMenuScope();
|
|
869
|
+
var [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);
|
|
870
|
+
var DropdownMenuRoot = (props) => {
|
|
871
|
+
const { __scopeDropdownMenu, children, dir, open: openProp, defaultOpen, onOpenChange, modal = true } = props;
|
|
872
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
873
|
+
const triggerRef = useRef(null);
|
|
874
|
+
const [open = false, setOpen] = useControllableState({
|
|
875
|
+
prop: openProp,
|
|
876
|
+
defaultProp: defaultOpen,
|
|
877
|
+
onChange: onOpenChange
|
|
878
|
+
});
|
|
879
|
+
return /* @__PURE__ */ React15.createElement(DropdownMenuProvider, {
|
|
880
|
+
scope: __scopeDropdownMenu,
|
|
881
|
+
triggerId: useId3(),
|
|
882
|
+
triggerRef,
|
|
883
|
+
contentId: useId3(),
|
|
884
|
+
open,
|
|
885
|
+
onOpenChange: setOpen,
|
|
886
|
+
onOpenToggle: useCallback(() => setOpen((prevOpen) => !prevOpen), [
|
|
887
|
+
setOpen
|
|
888
|
+
]),
|
|
889
|
+
modal
|
|
890
|
+
}, /* @__PURE__ */ React15.createElement(MenuPrimitive.Root, {
|
|
891
|
+
...menuScope,
|
|
892
|
+
open,
|
|
893
|
+
onOpenChange: setOpen,
|
|
894
|
+
dir,
|
|
895
|
+
modal
|
|
872
896
|
}, children));
|
|
897
|
+
};
|
|
898
|
+
DropdownMenuRoot.displayName = DROPDOWN_MENU_NAME;
|
|
899
|
+
var TRIGGER_NAME = "DropdownMenuTrigger";
|
|
900
|
+
var DropdownMenuTrigger = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
|
|
901
|
+
const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;
|
|
902
|
+
const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);
|
|
903
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
904
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.Anchor, {
|
|
905
|
+
asChild: true,
|
|
906
|
+
...menuScope
|
|
907
|
+
}, /* @__PURE__ */ React15.createElement(Primitive7.button, {
|
|
908
|
+
type: "button",
|
|
909
|
+
id: context.triggerId,
|
|
910
|
+
"aria-haspopup": "menu",
|
|
911
|
+
"aria-expanded": context.open,
|
|
912
|
+
"aria-controls": context.open ? context.contentId : void 0,
|
|
913
|
+
"data-state": context.open ? "open" : "closed",
|
|
914
|
+
"data-disabled": disabled ? "" : void 0,
|
|
915
|
+
disabled,
|
|
916
|
+
...triggerProps,
|
|
917
|
+
ref: composeRefs(forwardedRef, context.triggerRef),
|
|
918
|
+
onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {
|
|
919
|
+
if (!disabled && event.button === 0 && event.ctrlKey === false) {
|
|
920
|
+
context.onOpenToggle();
|
|
921
|
+
if (!context.open) {
|
|
922
|
+
event.preventDefault();
|
|
923
|
+
}
|
|
924
|
+
}
|
|
925
|
+
}),
|
|
926
|
+
onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
|
|
927
|
+
if (disabled) {
|
|
928
|
+
return;
|
|
929
|
+
}
|
|
930
|
+
if ([
|
|
931
|
+
"Enter",
|
|
932
|
+
" "
|
|
933
|
+
].includes(event.key)) {
|
|
934
|
+
context.onOpenToggle();
|
|
935
|
+
}
|
|
936
|
+
if (event.key === "ArrowDown") {
|
|
937
|
+
context.onOpenChange(true);
|
|
938
|
+
}
|
|
939
|
+
if ([
|
|
940
|
+
"Enter",
|
|
941
|
+
" ",
|
|
942
|
+
"ArrowDown"
|
|
943
|
+
].includes(event.key)) {
|
|
944
|
+
event.preventDefault();
|
|
945
|
+
}
|
|
946
|
+
})
|
|
947
|
+
}));
|
|
873
948
|
});
|
|
949
|
+
DropdownMenuTrigger.displayName = TRIGGER_NAME;
|
|
950
|
+
var VIRTUAL_TRIGGER_NAME = "DropdownMenuVirtualTrigger";
|
|
951
|
+
var DropdownMenuVirtualTrigger = (props) => {
|
|
952
|
+
const { __scopeDropdownMenu, virtualRef } = props;
|
|
953
|
+
const context = useDropdownMenuContext(VIRTUAL_TRIGGER_NAME, __scopeDropdownMenu);
|
|
954
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
955
|
+
useEffect3(() => {
|
|
956
|
+
if (virtualRef.current) {
|
|
957
|
+
context.triggerRef.current = virtualRef.current;
|
|
958
|
+
}
|
|
959
|
+
});
|
|
960
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.Anchor, {
|
|
961
|
+
...menuScope,
|
|
962
|
+
virtualRef
|
|
963
|
+
});
|
|
964
|
+
};
|
|
965
|
+
DropdownMenuVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME;
|
|
966
|
+
var PORTAL_NAME = "DropdownMenuPortal";
|
|
967
|
+
var DropdownMenuPortal = (props) => {
|
|
968
|
+
const { __scopeDropdownMenu, ...portalProps } = props;
|
|
969
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
970
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.Portal, {
|
|
971
|
+
...menuScope,
|
|
972
|
+
...portalProps
|
|
973
|
+
});
|
|
974
|
+
};
|
|
975
|
+
DropdownMenuPortal.displayName = PORTAL_NAME;
|
|
874
976
|
var DropdownMenuViewport = /* @__PURE__ */ forwardRef13(({ classNames, asChild, children, ...props }, forwardedRef) => {
|
|
875
977
|
const { tx } = useThemeContext();
|
|
876
|
-
const
|
|
877
|
-
return /* @__PURE__ */ React15.createElement(
|
|
978
|
+
const Root5 = asChild ? Slot7 : Primitive7.div;
|
|
979
|
+
return /* @__PURE__ */ React15.createElement(Root5, {
|
|
878
980
|
...props,
|
|
879
981
|
className: tx("menu.viewport", "menu__viewport", {}, classNames),
|
|
880
982
|
ref: forwardedRef
|
|
881
983
|
}, children);
|
|
882
984
|
});
|
|
883
|
-
var
|
|
985
|
+
var CONTENT_NAME = "DropdownMenuContent";
|
|
986
|
+
var DropdownMenuContent = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
|
|
987
|
+
const { __scopeDropdownMenu, classNames, ...contentProps } = props;
|
|
988
|
+
const { tx } = useThemeContext();
|
|
989
|
+
const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);
|
|
990
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
991
|
+
const hasInteractedOutsideRef = useRef(false);
|
|
992
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.Content, {
|
|
993
|
+
id: context.contentId,
|
|
994
|
+
"aria-labelledby": context.triggerId,
|
|
995
|
+
...menuScope,
|
|
996
|
+
...contentProps,
|
|
997
|
+
ref: forwardedRef,
|
|
998
|
+
onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {
|
|
999
|
+
if (!hasInteractedOutsideRef.current) {
|
|
1000
|
+
context.triggerRef.current?.focus();
|
|
1001
|
+
}
|
|
1002
|
+
hasInteractedOutsideRef.current = false;
|
|
1003
|
+
event.preventDefault();
|
|
1004
|
+
}),
|
|
1005
|
+
onInteractOutside: composeEventHandlers(props.onInteractOutside, (event) => {
|
|
1006
|
+
const originalEvent = event.detail.originalEvent;
|
|
1007
|
+
const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
|
|
1008
|
+
const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
|
|
1009
|
+
if (!context.modal || isRightClick) {
|
|
1010
|
+
hasInteractedOutsideRef.current = true;
|
|
1011
|
+
}
|
|
1012
|
+
}),
|
|
1013
|
+
className: tx("menu.content", "menu", {}, classNames),
|
|
1014
|
+
style: {
|
|
1015
|
+
...props.style,
|
|
1016
|
+
// re-namespace exposed content custom properties
|
|
1017
|
+
...{
|
|
1018
|
+
"--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
|
|
1019
|
+
"--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
|
|
1020
|
+
"--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
|
|
1021
|
+
"--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
|
|
1022
|
+
"--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
});
|
|
1026
|
+
});
|
|
1027
|
+
DropdownMenuContent.displayName = CONTENT_NAME;
|
|
1028
|
+
var GROUP_NAME = "DropdownMenuGroup";
|
|
1029
|
+
var DropdownMenuGroup = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
|
|
1030
|
+
const { __scopeDropdownMenu, ...groupProps } = props;
|
|
1031
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1032
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.Group, {
|
|
1033
|
+
...menuScope,
|
|
1034
|
+
...groupProps,
|
|
1035
|
+
ref: forwardedRef
|
|
1036
|
+
});
|
|
1037
|
+
});
|
|
1038
|
+
DropdownMenuGroup.displayName = GROUP_NAME;
|
|
1039
|
+
var LABEL_NAME = "DropdownMenuLabel";
|
|
1040
|
+
var DropdownMenuGroupLabel = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
|
|
1041
|
+
const { __scopeDropdownMenu, classNames, ...labelProps } = props;
|
|
1042
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
884
1043
|
const { tx } = useThemeContext();
|
|
885
|
-
return /* @__PURE__ */ React15.createElement(
|
|
886
|
-
...
|
|
887
|
-
|
|
1044
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.Label, {
|
|
1045
|
+
...menuScope,
|
|
1046
|
+
...labelProps,
|
|
1047
|
+
className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
|
|
888
1048
|
ref: forwardedRef
|
|
889
1049
|
});
|
|
890
1050
|
});
|
|
891
|
-
|
|
892
|
-
var
|
|
893
|
-
var DropdownMenuItem = /* @__PURE__ */ forwardRef13((
|
|
1051
|
+
DropdownMenuGroupLabel.displayName = LABEL_NAME;
|
|
1052
|
+
var ITEM_NAME = "DropdownMenuItem";
|
|
1053
|
+
var DropdownMenuItem = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
|
|
1054
|
+
const { __scopeDropdownMenu, classNames, ...itemProps } = props;
|
|
1055
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
894
1056
|
const { tx } = useThemeContext();
|
|
895
|
-
return /* @__PURE__ */ React15.createElement(
|
|
896
|
-
...
|
|
1057
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.Item, {
|
|
1058
|
+
...menuScope,
|
|
1059
|
+
...itemProps,
|
|
897
1060
|
className: tx("menu.item", "menu__item", {}, classNames),
|
|
898
1061
|
ref: forwardedRef
|
|
899
1062
|
});
|
|
900
1063
|
});
|
|
901
|
-
|
|
1064
|
+
DropdownMenuItem.displayName = ITEM_NAME;
|
|
1065
|
+
var CHECKBOX_ITEM_NAME = "DropdownMenuCheckboxItem";
|
|
1066
|
+
var DropdownMenuCheckboxItem = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
|
|
1067
|
+
const { __scopeDropdownMenu, classNames, ...checkboxItemProps } = props;
|
|
1068
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
902
1069
|
const { tx } = useThemeContext();
|
|
903
|
-
return /* @__PURE__ */ React15.createElement(
|
|
904
|
-
...
|
|
1070
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.CheckboxItem, {
|
|
1071
|
+
...menuScope,
|
|
1072
|
+
...checkboxItemProps,
|
|
905
1073
|
className: tx("menu.item", "menu__item--checkbox", {}, classNames),
|
|
906
1074
|
ref: forwardedRef
|
|
907
1075
|
});
|
|
908
1076
|
});
|
|
909
|
-
|
|
1077
|
+
DropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;
|
|
1078
|
+
var RADIO_GROUP_NAME = "DropdownMenuRadioGroup";
|
|
1079
|
+
var DropdownMenuRadioGroup = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
|
|
1080
|
+
const { __scopeDropdownMenu, ...radioGroupProps } = props;
|
|
1081
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1082
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.RadioGroup, {
|
|
1083
|
+
...menuScope,
|
|
1084
|
+
...radioGroupProps,
|
|
1085
|
+
ref: forwardedRef
|
|
1086
|
+
});
|
|
1087
|
+
});
|
|
1088
|
+
DropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;
|
|
1089
|
+
var RADIO_ITEM_NAME = "DropdownMenuRadioItem";
|
|
1090
|
+
var DropdownMenuRadioItem = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
|
|
1091
|
+
const { __scopeDropdownMenu, ...radioItemProps } = props;
|
|
1092
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1093
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.RadioItem, {
|
|
1094
|
+
...menuScope,
|
|
1095
|
+
...radioItemProps,
|
|
1096
|
+
ref: forwardedRef
|
|
1097
|
+
});
|
|
1098
|
+
});
|
|
1099
|
+
DropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;
|
|
1100
|
+
var INDICATOR_NAME = "DropdownMenuItemIndicator";
|
|
1101
|
+
var DropdownMenuItemIndicator = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
|
|
1102
|
+
const { __scopeDropdownMenu, ...itemIndicatorProps } = props;
|
|
1103
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1104
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.ItemIndicator, {
|
|
1105
|
+
...menuScope,
|
|
1106
|
+
...itemIndicatorProps,
|
|
1107
|
+
ref: forwardedRef
|
|
1108
|
+
});
|
|
1109
|
+
});
|
|
1110
|
+
DropdownMenuItemIndicator.displayName = INDICATOR_NAME;
|
|
1111
|
+
var SEPARATOR_NAME = "DropdownMenuSeparator";
|
|
1112
|
+
var DropdownMenuSeparator = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
|
|
1113
|
+
const { __scopeDropdownMenu, classNames, ...separatorProps } = props;
|
|
1114
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
910
1115
|
const { tx } = useThemeContext();
|
|
911
|
-
return /* @__PURE__ */ React15.createElement(
|
|
912
|
-
...
|
|
1116
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.Separator, {
|
|
1117
|
+
...menuScope,
|
|
1118
|
+
...separatorProps,
|
|
913
1119
|
className: tx("menu.separator", "menu__item", {}, classNames),
|
|
914
1120
|
ref: forwardedRef
|
|
915
1121
|
});
|
|
916
1122
|
});
|
|
917
|
-
|
|
1123
|
+
DropdownMenuSeparator.displayName = SEPARATOR_NAME;
|
|
1124
|
+
var ARROW_NAME = "DropdownMenuArrow";
|
|
1125
|
+
var DropdownMenuArrow = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
|
|
1126
|
+
const { __scopeDropdownMenu, classNames, ...arrowProps } = props;
|
|
1127
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
918
1128
|
const { tx } = useThemeContext();
|
|
919
|
-
return /* @__PURE__ */ React15.createElement(
|
|
920
|
-
...
|
|
921
|
-
|
|
1129
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.Arrow, {
|
|
1130
|
+
...menuScope,
|
|
1131
|
+
...arrowProps,
|
|
1132
|
+
className: tx("menu.arrow", "menu__arrow", {}, classNames),
|
|
922
1133
|
ref: forwardedRef
|
|
923
1134
|
});
|
|
924
1135
|
});
|
|
925
|
-
|
|
1136
|
+
DropdownMenuArrow.displayName = ARROW_NAME;
|
|
1137
|
+
var DropdownMenuSub = (props) => {
|
|
1138
|
+
const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;
|
|
1139
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1140
|
+
const [open = false, setOpen] = useControllableState({
|
|
1141
|
+
prop: openProp,
|
|
1142
|
+
defaultProp: defaultOpen,
|
|
1143
|
+
onChange: onOpenChange
|
|
1144
|
+
});
|
|
1145
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.Sub, {
|
|
1146
|
+
...menuScope,
|
|
1147
|
+
open,
|
|
1148
|
+
onOpenChange: setOpen
|
|
1149
|
+
}, children);
|
|
1150
|
+
};
|
|
1151
|
+
var SUB_TRIGGER_NAME = "DropdownMenuSubTrigger";
|
|
1152
|
+
var DropdownMenuSubTrigger = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
|
|
1153
|
+
const { __scopeDropdownMenu, ...subTriggerProps } = props;
|
|
1154
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1155
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.SubTrigger, {
|
|
1156
|
+
...menuScope,
|
|
1157
|
+
...subTriggerProps,
|
|
1158
|
+
ref: forwardedRef
|
|
1159
|
+
});
|
|
1160
|
+
});
|
|
1161
|
+
DropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;
|
|
1162
|
+
var SUB_CONTENT_NAME = "DropdownMenuSubContent";
|
|
1163
|
+
var DropdownMenuSubContent = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
|
|
1164
|
+
const { __scopeDropdownMenu, ...subContentProps } = props;
|
|
1165
|
+
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
1166
|
+
return /* @__PURE__ */ React15.createElement(MenuPrimitive.SubContent, {
|
|
1167
|
+
...menuScope,
|
|
1168
|
+
...subContentProps,
|
|
1169
|
+
ref: forwardedRef,
|
|
1170
|
+
style: {
|
|
1171
|
+
...props.style,
|
|
1172
|
+
// re-namespace exposed content custom properties
|
|
1173
|
+
...{
|
|
1174
|
+
"--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
|
|
1175
|
+
"--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
|
|
1176
|
+
"--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
|
|
1177
|
+
"--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
|
|
1178
|
+
"--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
|
|
1179
|
+
}
|
|
1180
|
+
}
|
|
1181
|
+
});
|
|
1182
|
+
});
|
|
1183
|
+
DropdownMenuSubContent.displayName = SUB_CONTENT_NAME;
|
|
1184
|
+
var DropdownMenu = {
|
|
926
1185
|
Root: DropdownMenuRoot,
|
|
927
1186
|
Trigger: DropdownMenuTrigger,
|
|
1187
|
+
VirtualTrigger: DropdownMenuVirtualTrigger,
|
|
928
1188
|
Portal: DropdownMenuPortal,
|
|
929
1189
|
Content: DropdownMenuContent,
|
|
930
1190
|
Viewport: DropdownMenuViewport,
|
|
931
|
-
Arrow: DropdownMenuArrow,
|
|
932
1191
|
Group: DropdownMenuGroup,
|
|
1192
|
+
GroupLabel: DropdownMenuGroupLabel,
|
|
933
1193
|
Item: DropdownMenuItem,
|
|
934
1194
|
CheckboxItem: DropdownMenuCheckboxItem,
|
|
1195
|
+
RadioGroup: DropdownMenuRadioGroup,
|
|
1196
|
+
RadioItem: DropdownMenuRadioItem,
|
|
935
1197
|
ItemIndicator: DropdownMenuItemIndicator,
|
|
936
1198
|
Separator: DropdownMenuSeparator,
|
|
937
|
-
|
|
1199
|
+
Arrow: DropdownMenuArrow,
|
|
1200
|
+
Sub: DropdownMenuSub,
|
|
1201
|
+
SubTrigger: DropdownMenuSubTrigger,
|
|
1202
|
+
SubContent: DropdownMenuSubContent
|
|
938
1203
|
};
|
|
1204
|
+
var useDropdownMenuMenuScope = useMenuScope;
|
|
939
1205
|
|
|
940
1206
|
// packages/ui/react-ui/src/components/Input/Input.tsx
|
|
941
1207
|
import { Check, Minus } from "@phosphor-icons/react";
|
|
942
1208
|
import { Root as CheckboxPrimitive, Indicator as CheckboxIndicatorPrimitive } from "@radix-ui/react-checkbox";
|
|
943
1209
|
import { Root as SwitchPrimitive, Thumb as SwitchThumbPrimitive } from "@radix-ui/react-switch";
|
|
944
|
-
import { useControllableState } from "@radix-ui/react-use-controllable-state";
|
|
945
|
-
import React16, { forwardRef as forwardRef14, Fragment, useCallback } from "react";
|
|
1210
|
+
import { useControllableState as useControllableState2 } from "@radix-ui/react-use-controllable-state";
|
|
1211
|
+
import React16, { forwardRef as forwardRef14, Fragment, useCallback as useCallback2 } from "react";
|
|
946
1212
|
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";
|
|
947
1213
|
var Label3 = /* @__PURE__ */ forwardRef14(({ srOnly, classNames, children, ...props }, forwardedRef) => {
|
|
948
1214
|
const { tx } = useThemeContext();
|
|
@@ -991,7 +1257,7 @@ var PinInput = /* @__PURE__ */ forwardRef14(({ density: propsDensity, elevation:
|
|
|
991
1257
|
const { tx } = useThemeContext();
|
|
992
1258
|
const density = useDensityContext(propsDensity);
|
|
993
1259
|
const elevation = useElevationContext(propsElevation);
|
|
994
|
-
const segmentClassName =
|
|
1260
|
+
const segmentClassName = useCallback2(({ focused, validationValence }) => tx("input.input", "input--pin-segment", {
|
|
995
1261
|
variant: "static",
|
|
996
1262
|
focused,
|
|
997
1263
|
disabled: props.disabled,
|
|
@@ -1061,7 +1327,7 @@ var TextArea = /* @__PURE__ */ forwardRef14(({ __inputScope, classNames, density
|
|
|
1061
1327
|
});
|
|
1062
1328
|
});
|
|
1063
1329
|
var Checkbox = /* @__PURE__ */ forwardRef14(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size, weight = "bold", classNames, ...props }, forwardedRef) => {
|
|
1064
|
-
const [checked, onCheckedChange] =
|
|
1330
|
+
const [checked, onCheckedChange] = useControllableState2({
|
|
1065
1331
|
prop: propsChecked,
|
|
1066
1332
|
defaultProp: propsDefaultChecked,
|
|
1067
1333
|
onChange: propsOnCheckedChange
|
|
@@ -1094,7 +1360,7 @@ var Checkbox = /* @__PURE__ */ forwardRef14(({ __inputScope, checked: propsCheck
|
|
|
1094
1360
|
});
|
|
1095
1361
|
var Switch = /* @__PURE__ */ forwardRef14(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size = 5, classNames, ...props }, forwardedRef) => {
|
|
1096
1362
|
const { tx } = useThemeContext();
|
|
1097
|
-
const [checked, onCheckedChange] =
|
|
1363
|
+
const [checked, onCheckedChange] = useControllableState2({
|
|
1098
1364
|
prop: propsChecked,
|
|
1099
1365
|
defaultProp: propsDefaultChecked,
|
|
1100
1366
|
onChange: propsOnCheckedChange
|
|
@@ -1142,7 +1408,7 @@ import { List as ListPrimitive, ListItemHeading as ListPrimitiveItemHeading, Lis
|
|
|
1142
1408
|
// packages/ui/react-ui/src/components/DensityProvider/DensityProvider.tsx
|
|
1143
1409
|
import React17, { createContext as createContext7 } from "react";
|
|
1144
1410
|
var DensityContext = /* @__PURE__ */ createContext7({
|
|
1145
|
-
density: "
|
|
1411
|
+
density: "fine"
|
|
1146
1412
|
});
|
|
1147
1413
|
var DensityProvider = ({ density, children }) => /* @__PURE__ */ React17.createElement(DensityContext.Provider, {
|
|
1148
1414
|
value: {
|
|
@@ -1163,10 +1429,10 @@ var List = /* @__PURE__ */ forwardRef15(({ classNames, children, ...props }, for
|
|
|
1163
1429
|
}, children));
|
|
1164
1430
|
});
|
|
1165
1431
|
var ListItemEndcap = /* @__PURE__ */ forwardRef15(({ children, classNames, asChild, ...props }, forwardedRef) => {
|
|
1166
|
-
const
|
|
1432
|
+
const Root5 = asChild ? Slot8 : "div";
|
|
1167
1433
|
const density = useDensityContext();
|
|
1168
1434
|
const { tx } = useThemeContext();
|
|
1169
|
-
return /* @__PURE__ */ React18.createElement(
|
|
1435
|
+
return /* @__PURE__ */ React18.createElement(Root5, {
|
|
1170
1436
|
...!asChild && {
|
|
1171
1437
|
role: "none"
|
|
1172
1438
|
},
|
|
@@ -1277,25 +1543,25 @@ var TreeItem = {
|
|
|
1277
1543
|
|
|
1278
1544
|
// packages/ui/react-ui/src/components/Lists/Treegrid.tsx
|
|
1279
1545
|
import { useFocusableGroup, useArrowNavigationGroup } from "@fluentui/react-tabster";
|
|
1280
|
-
import { createContextScope } from "@radix-ui/react-context";
|
|
1546
|
+
import { createContextScope as createContextScope2 } from "@radix-ui/react-context";
|
|
1281
1547
|
import { Primitive as Primitive8 } from "@radix-ui/react-primitive";
|
|
1282
1548
|
import { Slot as Slot9 } from "@radix-ui/react-slot";
|
|
1283
|
-
import { useControllableState as
|
|
1549
|
+
import { useControllableState as useControllableState3 } from "@radix-ui/react-use-controllable-state";
|
|
1284
1550
|
import React20, { forwardRef as forwardRef17 } from "react";
|
|
1285
1551
|
var TREEGRID_ROW_NAME = "TreegridRow";
|
|
1286
|
-
var [createTreegridRowContext, createTreegridRowScope] =
|
|
1552
|
+
var [createTreegridRowContext, createTreegridRowScope] = createContextScope2(TREEGRID_ROW_NAME, []);
|
|
1287
1553
|
var [TreegridRowProvider, useTreegridRowContext] = createTreegridRowContext(TREEGRID_ROW_NAME);
|
|
1288
1554
|
var PATH_SEPARATOR = "~";
|
|
1289
1555
|
var PARENT_OF_SEPARATOR = " ";
|
|
1290
1556
|
var TreegridRoot = /* @__PURE__ */ forwardRef17(({ asChild, classNames, children, style, gridTemplateColumns, ...props }, forwardedRef) => {
|
|
1291
1557
|
const { tx } = useThemeContext();
|
|
1292
|
-
const
|
|
1558
|
+
const Root5 = asChild ? Slot9 : Primitive8.div;
|
|
1293
1559
|
const arrowNavigationAttrs = useArrowNavigationGroup({
|
|
1294
1560
|
axis: "vertical",
|
|
1295
1561
|
tabbable: false,
|
|
1296
1562
|
circular: true
|
|
1297
1563
|
});
|
|
1298
|
-
return /* @__PURE__ */ React20.createElement(
|
|
1564
|
+
return /* @__PURE__ */ React20.createElement(Root5, {
|
|
1299
1565
|
role: "treegrid",
|
|
1300
1566
|
...arrowNavigationAttrs,
|
|
1301
1567
|
...props,
|
|
@@ -1309,10 +1575,10 @@ var TreegridRoot = /* @__PURE__ */ forwardRef17(({ asChild, classNames, children
|
|
|
1309
1575
|
});
|
|
1310
1576
|
var TreegridRow = /* @__PURE__ */ forwardRef17(({ __treegridRowScope, asChild, classNames, children, id, parentOf, open: propsOpen, defaultOpen, onOpenChange: propsOnOpenChange, ...props }, forwardedRef) => {
|
|
1311
1577
|
const { tx } = useThemeContext();
|
|
1312
|
-
const
|
|
1578
|
+
const Root5 = asChild ? Slot9 : Primitive8.div;
|
|
1313
1579
|
const pathParts = id.split(PATH_SEPARATOR);
|
|
1314
1580
|
const level = pathParts.length - 1;
|
|
1315
|
-
const [open, onOpenChange] =
|
|
1581
|
+
const [open, onOpenChange] = useControllableState3({
|
|
1316
1582
|
prop: propsOpen,
|
|
1317
1583
|
onChange: propsOnOpenChange,
|
|
1318
1584
|
defaultProp: defaultOpen
|
|
@@ -1330,7 +1596,7 @@ var TreegridRow = /* @__PURE__ */ forwardRef17(({ __treegridRowScope, asChild, c
|
|
|
1330
1596
|
open,
|
|
1331
1597
|
onOpenChange,
|
|
1332
1598
|
scope: __treegridRowScope
|
|
1333
|
-
}, /* @__PURE__ */ React20.createElement(
|
|
1599
|
+
}, /* @__PURE__ */ React20.createElement(Root5, {
|
|
1334
1600
|
role: "row",
|
|
1335
1601
|
"aria-level": level,
|
|
1336
1602
|
className: tx("treegrid.row", "treegrid__row", {
|
|
@@ -1379,13 +1645,13 @@ import { createContext as createContext8 } from "@radix-ui/react-context";
|
|
|
1379
1645
|
import { Root as DialogRoot2, DialogContent as DialogContent2 } from "@radix-ui/react-dialog";
|
|
1380
1646
|
import { Primitive as Primitive9 } from "@radix-ui/react-primitive";
|
|
1381
1647
|
import { Slot as Slot10 } from "@radix-ui/react-slot";
|
|
1382
|
-
import { useControllableState as
|
|
1383
|
-
import React21, { forwardRef as forwardRef18, useCallback as
|
|
1648
|
+
import { useControllableState as useControllableState4 } from "@radix-ui/react-use-controllable-state";
|
|
1649
|
+
import React21, { forwardRef as forwardRef18, useCallback as useCallback4, useEffect as useEffect5, useRef as useRef2, useState as useState4 } from "react";
|
|
1384
1650
|
import { log } from "@dxos/log";
|
|
1385
1651
|
import { useMediaQuery, useForwardedRef } from "@dxos/react-hooks";
|
|
1386
1652
|
|
|
1387
1653
|
// packages/ui/react-ui/src/components/Main/useSwipeToDismiss.ts
|
|
1388
|
-
import { useCallback as
|
|
1654
|
+
import { useCallback as useCallback3, useEffect as useEffect4, useState as useState3 } from "react";
|
|
1389
1655
|
var MotionState;
|
|
1390
1656
|
(function(MotionState2) {
|
|
1391
1657
|
MotionState2[MotionState2["IDLE"] = 0] = "IDLE";
|
|
@@ -1402,20 +1668,20 @@ var useSwipeToDismiss = (ref, {
|
|
|
1402
1668
|
const $root = ref.current;
|
|
1403
1669
|
const [motionState, setMotionState] = useState3(0);
|
|
1404
1670
|
const [gestureStartX, setGestureStartX] = useState3(0);
|
|
1405
|
-
const setIdle =
|
|
1671
|
+
const setIdle = useCallback3(() => {
|
|
1406
1672
|
setMotionState(0);
|
|
1407
1673
|
$root?.style.removeProperty("inset-inline-start");
|
|
1408
1674
|
$root?.style.setProperty("transition-duration", "200ms");
|
|
1409
1675
|
}, [
|
|
1410
1676
|
$root
|
|
1411
1677
|
]);
|
|
1412
|
-
const setFollowing =
|
|
1678
|
+
const setFollowing = useCallback3(() => {
|
|
1413
1679
|
setMotionState(2);
|
|
1414
1680
|
$root?.style.setProperty("transition-duration", "0ms");
|
|
1415
1681
|
}, [
|
|
1416
1682
|
$root
|
|
1417
1683
|
]);
|
|
1418
|
-
const handlePointerDown =
|
|
1684
|
+
const handlePointerDown = useCallback3(({ screenX }) => {
|
|
1419
1685
|
if (motionState === 0) {
|
|
1420
1686
|
setMotionState(1);
|
|
1421
1687
|
setGestureStartX(screenX);
|
|
@@ -1423,7 +1689,7 @@ var useSwipeToDismiss = (ref, {
|
|
|
1423
1689
|
}, [
|
|
1424
1690
|
motionState
|
|
1425
1691
|
]);
|
|
1426
|
-
const handlePointerMove =
|
|
1692
|
+
const handlePointerMove = useCallback3(({ screenX }) => {
|
|
1427
1693
|
if ($root) {
|
|
1428
1694
|
const delta = Math.min(screenX - gestureStartX, 0);
|
|
1429
1695
|
switch (motionState) {
|
|
@@ -1447,12 +1713,12 @@ var useSwipeToDismiss = (ref, {
|
|
|
1447
1713
|
motionState,
|
|
1448
1714
|
gestureStartX
|
|
1449
1715
|
]);
|
|
1450
|
-
const handlePointerUp =
|
|
1716
|
+
const handlePointerUp = useCallback3(() => {
|
|
1451
1717
|
setIdle();
|
|
1452
1718
|
}, [
|
|
1453
1719
|
setIdle
|
|
1454
1720
|
]);
|
|
1455
|
-
|
|
1721
|
+
useEffect4(() => {
|
|
1456
1722
|
$root?.addEventListener("pointerdown", handlePointerDown);
|
|
1457
1723
|
return () => {
|
|
1458
1724
|
$root?.removeEventListener("pointerdown", handlePointerDown);
|
|
@@ -1461,7 +1727,7 @@ var useSwipeToDismiss = (ref, {
|
|
|
1461
1727
|
$root,
|
|
1462
1728
|
handlePointerDown
|
|
1463
1729
|
]);
|
|
1464
|
-
|
|
1730
|
+
useEffect4(() => {
|
|
1465
1731
|
$root && document.documentElement.addEventListener("pointermove", handlePointerMove);
|
|
1466
1732
|
return () => {
|
|
1467
1733
|
document.documentElement.removeEventListener("pointermove", handlePointerMove);
|
|
@@ -1470,7 +1736,7 @@ var useSwipeToDismiss = (ref, {
|
|
|
1470
1736
|
$root,
|
|
1471
1737
|
handlePointerMove
|
|
1472
1738
|
]);
|
|
1473
|
-
|
|
1739
|
+
useEffect4(() => {
|
|
1474
1740
|
$root && document.documentElement.addEventListener("pointerup", handlePointerUp);
|
|
1475
1741
|
return () => {
|
|
1476
1742
|
document.documentElement.removeEventListener("pointerup", handlePointerUp);
|
|
@@ -1490,7 +1756,7 @@ var MAIN_NAME = "Main";
|
|
|
1490
1756
|
var GENERIC_CONSUMER_NAME = "GenericConsumer";
|
|
1491
1757
|
var landmarkAttr = "data-main-landmark";
|
|
1492
1758
|
var useLandmarkMover = (propsOnKeyDown, landmark) => {
|
|
1493
|
-
const handleKeyDown =
|
|
1759
|
+
const handleKeyDown = useCallback4((event) => {
|
|
1494
1760
|
const target = event.target;
|
|
1495
1761
|
if (event.target === event.currentTarget && event.key === "Tab" && target.hasAttribute(landmarkAttr)) {
|
|
1496
1762
|
event.preventDefault();
|
|
@@ -1543,26 +1809,26 @@ var useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
|
|
|
1543
1809
|
return {
|
|
1544
1810
|
navigationSidebarOpen,
|
|
1545
1811
|
setNavigationSidebarOpen,
|
|
1546
|
-
toggleNavigationSidebar:
|
|
1812
|
+
toggleNavigationSidebar: useCallback4(() => setNavigationSidebarOpen(!navigationSidebarOpen), [
|
|
1547
1813
|
navigationSidebarOpen,
|
|
1548
1814
|
setNavigationSidebarOpen
|
|
1549
1815
|
]),
|
|
1550
|
-
openNavigationSidebar:
|
|
1816
|
+
openNavigationSidebar: useCallback4(() => setNavigationSidebarOpen(true), [
|
|
1551
1817
|
setNavigationSidebarOpen
|
|
1552
1818
|
]),
|
|
1553
|
-
closeNavigationSidebar:
|
|
1819
|
+
closeNavigationSidebar: useCallback4(() => setNavigationSidebarOpen(false), [
|
|
1554
1820
|
setNavigationSidebarOpen
|
|
1555
1821
|
]),
|
|
1556
1822
|
complementarySidebarOpen,
|
|
1557
1823
|
setComplementarySidebarOpen,
|
|
1558
|
-
toggleComplementarySidebar:
|
|
1824
|
+
toggleComplementarySidebar: useCallback4(() => setComplementarySidebarOpen(!complementarySidebarOpen), [
|
|
1559
1825
|
complementarySidebarOpen,
|
|
1560
1826
|
setComplementarySidebarOpen
|
|
1561
1827
|
]),
|
|
1562
|
-
openComplementarySidebar:
|
|
1828
|
+
openComplementarySidebar: useCallback4(() => setComplementarySidebarOpen(true), [
|
|
1563
1829
|
setComplementarySidebarOpen
|
|
1564
1830
|
]),
|
|
1565
|
-
closeComplementarySidebar:
|
|
1831
|
+
closeComplementarySidebar: useCallback4(() => setComplementarySidebarOpen(false), [
|
|
1566
1832
|
setComplementarySidebarOpen
|
|
1567
1833
|
])
|
|
1568
1834
|
};
|
|
@@ -1572,19 +1838,19 @@ var MainRoot = ({ navigationSidebarOpen: propsNavigationSidebarOpen, defaultNavi
|
|
|
1572
1838
|
const [isLg] = useMediaQuery("lg", {
|
|
1573
1839
|
ssr: false
|
|
1574
1840
|
});
|
|
1575
|
-
const [navigationSidebarOpen = isLg, setNavigationSidebarOpen] =
|
|
1841
|
+
const [navigationSidebarOpen = isLg, setNavigationSidebarOpen] = useControllableState4({
|
|
1576
1842
|
prop: propsNavigationSidebarOpen,
|
|
1577
1843
|
defaultProp: defaultNavigationSidebarOpen,
|
|
1578
1844
|
onChange: onNavigationSidebarOpenChange
|
|
1579
1845
|
});
|
|
1580
|
-
const [complementarySidebarOpen = false, setComplementarySidebarOpen] =
|
|
1846
|
+
const [complementarySidebarOpen = false, setComplementarySidebarOpen] = useControllableState4({
|
|
1581
1847
|
prop: propsComplementarySidebarOpen,
|
|
1582
1848
|
defaultProp: defaultComplementarySidebarOpen,
|
|
1583
1849
|
onChange: onComplementarySidebarOpenChange
|
|
1584
1850
|
});
|
|
1585
1851
|
const [resizing, setResizing] = useState4(false);
|
|
1586
|
-
const resizeInterval =
|
|
1587
|
-
const handleResize =
|
|
1852
|
+
const resizeInterval = useRef2(null);
|
|
1853
|
+
const handleResize = useCallback4(() => {
|
|
1588
1854
|
setResizing(true);
|
|
1589
1855
|
if (resizeInterval.current) {
|
|
1590
1856
|
clearTimeout(resizeInterval.current);
|
|
@@ -1594,7 +1860,7 @@ var MainRoot = ({ navigationSidebarOpen: propsNavigationSidebarOpen, defaultNavi
|
|
|
1594
1860
|
resizeInterval.current = null;
|
|
1595
1861
|
}, resizeDebounce);
|
|
1596
1862
|
}, []);
|
|
1597
|
-
|
|
1863
|
+
useEffect5(() => {
|
|
1598
1864
|
window.addEventListener("resize", handleResize);
|
|
1599
1865
|
return () => window.removeEventListener("resize", handleResize);
|
|
1600
1866
|
}, [
|
|
@@ -1619,11 +1885,11 @@ var MainSidebar = /* @__PURE__ */ forwardRef18(({ classNames, children, swipeToD
|
|
|
1619
1885
|
});
|
|
1620
1886
|
const { tx } = useThemeContext();
|
|
1621
1887
|
const ref = useForwardedRef(forwardedRef);
|
|
1622
|
-
const noopRef =
|
|
1888
|
+
const noopRef = useRef2(null);
|
|
1623
1889
|
useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {
|
|
1624
1890
|
onDismiss: () => setOpen(false)
|
|
1625
1891
|
});
|
|
1626
|
-
const handleKeyDown =
|
|
1892
|
+
const handleKeyDown = useCallback4((event) => {
|
|
1627
1893
|
if (event.key === "Escape") {
|
|
1628
1894
|
event.target.closest("[data-tabster]")?.focus();
|
|
1629
1895
|
}
|
|
@@ -1631,11 +1897,11 @@ var MainSidebar = /* @__PURE__ */ forwardRef18(({ classNames, children, swipeToD
|
|
|
1631
1897
|
}, [
|
|
1632
1898
|
props.onKeyDown
|
|
1633
1899
|
]);
|
|
1634
|
-
const
|
|
1900
|
+
const Root5 = isLg ? Primitive9.div : DialogContent2;
|
|
1635
1901
|
return /* @__PURE__ */ React21.createElement(DialogRoot2, {
|
|
1636
1902
|
open,
|
|
1637
1903
|
modal: false
|
|
1638
|
-
}, /* @__PURE__ */ React21.createElement(
|
|
1904
|
+
}, /* @__PURE__ */ React21.createElement(Root5, {
|
|
1639
1905
|
...!isLg && {
|
|
1640
1906
|
forceMount: true,
|
|
1641
1907
|
tabIndex: -1,
|
|
@@ -1686,9 +1952,9 @@ MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
|
|
|
1686
1952
|
var MainContent = /* @__PURE__ */ forwardRef18(({ asChild, classNames, bounce, handlesFocus, children, role, ...props }, forwardedRef) => {
|
|
1687
1953
|
const { navigationSidebarOpen, complementarySidebarOpen } = useMainContext(MAIN_NAME);
|
|
1688
1954
|
const { tx } = useThemeContext();
|
|
1689
|
-
const
|
|
1955
|
+
const Root5 = asChild ? Slot10 : role ? "div" : "main";
|
|
1690
1956
|
const mover = useLandmarkMover(props.onKeyDown, "1");
|
|
1691
|
-
return /* @__PURE__ */ React21.createElement(
|
|
1957
|
+
return /* @__PURE__ */ React21.createElement(Root5, {
|
|
1692
1958
|
role,
|
|
1693
1959
|
...handlesFocus && {
|
|
1694
1960
|
...mover
|
|
@@ -1729,9 +1995,9 @@ var MainOverlay = /* @__PURE__ */ forwardRef18(({ classNames, ...props }, forwar
|
|
|
1729
1995
|
var MainNotch = /* @__PURE__ */ forwardRef18(({ classNames, ...props }, forwardedRef) => {
|
|
1730
1996
|
const { tx } = useThemeContext();
|
|
1731
1997
|
const { navigationSidebarOpen } = useMainContext(MAIN_NAME);
|
|
1732
|
-
const notchElement =
|
|
1998
|
+
const notchElement = useRef2(null);
|
|
1733
1999
|
const ref = useComposedRefs(forwardedRef, notchElement);
|
|
1734
|
-
const handleKeyDown =
|
|
2000
|
+
const handleKeyDown = useCallback4((event) => {
|
|
1735
2001
|
switch (event.key) {
|
|
1736
2002
|
case "Escape":
|
|
1737
2003
|
props?.onKeyDown?.(event);
|
|
@@ -1764,19 +2030,19 @@ import { createContext as createContext9 } from "@radix-ui/react-context";
|
|
|
1764
2030
|
import { Primitive as Primitive10 } from "@radix-ui/react-primitive";
|
|
1765
2031
|
import { Slot as Slot11 } from "@radix-ui/react-slot";
|
|
1766
2032
|
import React22, { forwardRef as forwardRef19 } from "react";
|
|
1767
|
-
import { useId as
|
|
2033
|
+
import { useId as useId4 } from "@dxos/react-hooks";
|
|
1768
2034
|
var MESSAGE_NAME = "Message";
|
|
1769
2035
|
var [MessageProvider, useMessageContext] = createContext9(MESSAGE_NAME);
|
|
1770
2036
|
var MessageRoot = /* @__PURE__ */ forwardRef19(({ asChild, valence, elevation: propsElevation, className, titleId: propsTitleId, descriptionId: propsDescriptionId, children, ...props }, forwardedRef) => {
|
|
1771
2037
|
const { tx } = useThemeContext();
|
|
1772
|
-
const titleId =
|
|
1773
|
-
const descriptionId =
|
|
2038
|
+
const titleId = useId4("message__title", propsTitleId);
|
|
2039
|
+
const descriptionId = useId4("message__description", propsDescriptionId);
|
|
1774
2040
|
const elevation = useElevationContext(propsElevation);
|
|
1775
|
-
const
|
|
2041
|
+
const Root5 = asChild ? Slot11 : Primitive10.div;
|
|
1776
2042
|
return /* @__PURE__ */ React22.createElement(MessageProvider, {
|
|
1777
2043
|
titleId,
|
|
1778
2044
|
descriptionId
|
|
1779
|
-
}, /* @__PURE__ */ React22.createElement(
|
|
2045
|
+
}, /* @__PURE__ */ React22.createElement(Root5, {
|
|
1780
2046
|
...props,
|
|
1781
2047
|
className: tx("message.root", "message", {
|
|
1782
2048
|
valence,
|
|
@@ -1792,8 +2058,8 @@ var MESSAGE_TITLE_NAME = "MessageTitle";
|
|
|
1792
2058
|
var MessageTitle = /* @__PURE__ */ forwardRef19(({ asChild, className, children, ...props }, forwardedRef) => {
|
|
1793
2059
|
const { tx } = useThemeContext();
|
|
1794
2060
|
const { titleId } = useMessageContext(MESSAGE_TITLE_NAME);
|
|
1795
|
-
const
|
|
1796
|
-
return /* @__PURE__ */ React22.createElement(
|
|
2061
|
+
const Root5 = asChild ? Slot11 : Primitive10.h2;
|
|
2062
|
+
return /* @__PURE__ */ React22.createElement(Root5, {
|
|
1797
2063
|
...props,
|
|
1798
2064
|
className: tx("message.title", "message__title", {}, className),
|
|
1799
2065
|
id: titleId,
|
|
@@ -1805,8 +2071,8 @@ var MESSAGE_BODY_NAME = "MessageBody";
|
|
|
1805
2071
|
var MessageBody = /* @__PURE__ */ forwardRef19(({ asChild, className, children, ...props }, forwardedRef) => {
|
|
1806
2072
|
const { tx } = useThemeContext();
|
|
1807
2073
|
const { descriptionId } = useMessageContext(MESSAGE_BODY_NAME);
|
|
1808
|
-
const
|
|
1809
|
-
return /* @__PURE__ */ React22.createElement(
|
|
2074
|
+
const Root5 = asChild ? Slot11 : Primitive10.p;
|
|
2075
|
+
return /* @__PURE__ */ React22.createElement(Root5, {
|
|
1810
2076
|
...props,
|
|
1811
2077
|
className: tx("message.body", "message__body", {}, className),
|
|
1812
2078
|
id: descriptionId,
|
|
@@ -1821,39 +2087,298 @@ var Message = {
|
|
|
1821
2087
|
};
|
|
1822
2088
|
|
|
1823
2089
|
// packages/ui/react-ui/src/components/Popover/Popover.tsx
|
|
1824
|
-
import {
|
|
2090
|
+
import { composeEventHandlers as composeEventHandlers2 } from "@radix-ui/primitive";
|
|
2091
|
+
import { useComposedRefs as useComposedRefs2 } from "@radix-ui/react-compose-refs";
|
|
2092
|
+
import { createContextScope as createContextScope3 } from "@radix-ui/react-context";
|
|
2093
|
+
import { DismissableLayer } from "@radix-ui/react-dismissable-layer";
|
|
2094
|
+
import { useFocusGuards } from "@radix-ui/react-focus-guards";
|
|
2095
|
+
import { FocusScope } from "@radix-ui/react-focus-scope";
|
|
2096
|
+
import { useId as useId5 } from "@radix-ui/react-id";
|
|
2097
|
+
import * as PopperPrimitive from "@radix-ui/react-popper";
|
|
2098
|
+
import { createPopperScope } from "@radix-ui/react-popper";
|
|
2099
|
+
import { Portal as PortalPrimitive } from "@radix-ui/react-portal";
|
|
2100
|
+
import { Presence } from "@radix-ui/react-presence";
|
|
1825
2101
|
import { Primitive as Primitive11 } from "@radix-ui/react-primitive";
|
|
1826
2102
|
import { Slot as Slot12 } from "@radix-ui/react-slot";
|
|
1827
|
-
import
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
var
|
|
1832
|
-
var
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
2103
|
+
import { useControllableState as useControllableState5 } from "@radix-ui/react-use-controllable-state";
|
|
2104
|
+
import { hideOthers } from "aria-hidden";
|
|
2105
|
+
import React23, { forwardRef as forwardRef20, useRef as useRef3, useCallback as useCallback5, useState as useState5, useEffect as useEffect6 } from "react";
|
|
2106
|
+
import { RemoveScroll } from "react-remove-scroll";
|
|
2107
|
+
var POPOVER_NAME = "Popover";
|
|
2108
|
+
var [createPopoverContext, createPopoverScope] = createContextScope3(POPOVER_NAME, [
|
|
2109
|
+
createPopperScope
|
|
2110
|
+
]);
|
|
2111
|
+
var usePopperScope = createPopperScope();
|
|
2112
|
+
var [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);
|
|
2113
|
+
var PopoverRoot = (props) => {
|
|
2114
|
+
const { __scopePopover, children, open: openProp, defaultOpen, onOpenChange, modal = false } = props;
|
|
2115
|
+
const popperScope = usePopperScope(__scopePopover);
|
|
2116
|
+
const triggerRef = useRef3(null);
|
|
2117
|
+
const [hasCustomAnchor, setHasCustomAnchor] = useState5(false);
|
|
2118
|
+
const [open = false, setOpen] = useControllableState5({
|
|
2119
|
+
prop: openProp,
|
|
2120
|
+
defaultProp: defaultOpen,
|
|
2121
|
+
onChange: onOpenChange
|
|
2122
|
+
});
|
|
2123
|
+
return /* @__PURE__ */ React23.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ React23.createElement(PopoverProvider, {
|
|
2124
|
+
scope: __scopePopover,
|
|
2125
|
+
contentId: useId5(),
|
|
2126
|
+
triggerRef,
|
|
2127
|
+
open,
|
|
2128
|
+
onOpenChange: setOpen,
|
|
2129
|
+
onOpenToggle: useCallback5(() => setOpen((prevOpen) => !prevOpen), [
|
|
2130
|
+
setOpen
|
|
2131
|
+
]),
|
|
2132
|
+
hasCustomAnchor,
|
|
2133
|
+
onCustomAnchorAdd: useCallback5(() => setHasCustomAnchor(true), []),
|
|
2134
|
+
onCustomAnchorRemove: useCallback5(() => setHasCustomAnchor(false), []),
|
|
2135
|
+
modal
|
|
2136
|
+
}, children));
|
|
2137
|
+
};
|
|
2138
|
+
PopoverRoot.displayName = POPOVER_NAME;
|
|
2139
|
+
var ANCHOR_NAME = "PopoverAnchor";
|
|
2140
|
+
var PopoverAnchor = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
|
|
2141
|
+
const { __scopePopover, ...anchorProps } = props;
|
|
2142
|
+
const context = usePopoverContext(ANCHOR_NAME, __scopePopover);
|
|
2143
|
+
const popperScope = usePopperScope(__scopePopover);
|
|
2144
|
+
const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
|
|
2145
|
+
useEffect6(() => {
|
|
2146
|
+
onCustomAnchorAdd();
|
|
2147
|
+
return () => onCustomAnchorRemove();
|
|
2148
|
+
}, [
|
|
2149
|
+
onCustomAnchorAdd,
|
|
2150
|
+
onCustomAnchorRemove
|
|
2151
|
+
]);
|
|
2152
|
+
return /* @__PURE__ */ React23.createElement(PopperPrimitive.Anchor, {
|
|
2153
|
+
...popperScope,
|
|
2154
|
+
...anchorProps,
|
|
2155
|
+
ref: forwardedRef
|
|
2156
|
+
});
|
|
2157
|
+
});
|
|
2158
|
+
PopoverAnchor.displayName = ANCHOR_NAME;
|
|
2159
|
+
var TRIGGER_NAME2 = "PopoverTrigger";
|
|
2160
|
+
var PopoverTrigger = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
|
|
2161
|
+
const { __scopePopover, ...triggerProps } = props;
|
|
2162
|
+
const context = usePopoverContext(TRIGGER_NAME2, __scopePopover);
|
|
2163
|
+
const popperScope = usePopperScope(__scopePopover);
|
|
2164
|
+
const composedTriggerRef = useComposedRefs2(forwardedRef, context.triggerRef);
|
|
2165
|
+
const trigger = /* @__PURE__ */ React23.createElement(Primitive11.button, {
|
|
2166
|
+
type: "button",
|
|
2167
|
+
"aria-haspopup": "dialog",
|
|
2168
|
+
"aria-expanded": context.open,
|
|
2169
|
+
"aria-controls": context.contentId,
|
|
2170
|
+
"data-state": getState(context.open),
|
|
2171
|
+
...triggerProps,
|
|
2172
|
+
ref: composedTriggerRef,
|
|
2173
|
+
onClick: composeEventHandlers2(props.onClick, context.onOpenToggle)
|
|
2174
|
+
});
|
|
2175
|
+
return context.hasCustomAnchor ? trigger : /* @__PURE__ */ React23.createElement(PopperPrimitive.Anchor, {
|
|
2176
|
+
asChild: true,
|
|
2177
|
+
...popperScope
|
|
2178
|
+
}, trigger);
|
|
2179
|
+
});
|
|
2180
|
+
PopoverTrigger.displayName = TRIGGER_NAME2;
|
|
2181
|
+
var VIRTUAL_TRIGGER_NAME2 = "PopoverVirtualTrigger";
|
|
2182
|
+
var PopoverVirtualTrigger = (props) => {
|
|
2183
|
+
const { __scopePopover, virtualRef } = props;
|
|
2184
|
+
const context = usePopoverContext(VIRTUAL_TRIGGER_NAME2, __scopePopover);
|
|
2185
|
+
const popperScope = usePopperScope(__scopePopover);
|
|
2186
|
+
useEffect6(() => {
|
|
2187
|
+
if (virtualRef.current) {
|
|
2188
|
+
context.triggerRef.current = virtualRef.current;
|
|
2189
|
+
}
|
|
2190
|
+
});
|
|
2191
|
+
return /* @__PURE__ */ React23.createElement(PopperPrimitive.Anchor, {
|
|
2192
|
+
...popperScope,
|
|
2193
|
+
virtualRef
|
|
2194
|
+
});
|
|
2195
|
+
};
|
|
2196
|
+
PopoverVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME2;
|
|
2197
|
+
var PORTAL_NAME2 = "PopoverPortal";
|
|
2198
|
+
var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME2, {
|
|
2199
|
+
forceMount: void 0
|
|
2200
|
+
});
|
|
2201
|
+
var PopoverPortal = (props) => {
|
|
2202
|
+
const { __scopePopover, forceMount, children, container } = props;
|
|
2203
|
+
const context = usePopoverContext(PORTAL_NAME2, __scopePopover);
|
|
2204
|
+
return /* @__PURE__ */ React23.createElement(PortalProvider, {
|
|
2205
|
+
scope: __scopePopover,
|
|
2206
|
+
forceMount
|
|
2207
|
+
}, /* @__PURE__ */ React23.createElement(Presence, {
|
|
2208
|
+
present: forceMount || context.open
|
|
2209
|
+
}, /* @__PURE__ */ React23.createElement(PortalPrimitive, {
|
|
2210
|
+
asChild: true,
|
|
2211
|
+
container
|
|
2212
|
+
}, children)));
|
|
2213
|
+
};
|
|
2214
|
+
PopoverPortal.displayName = PORTAL_NAME2;
|
|
2215
|
+
var CONTENT_NAME2 = "PopoverContent";
|
|
2216
|
+
var PopoverContent = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
|
|
2217
|
+
const portalContext = usePortalContext(CONTENT_NAME2, props.__scopePopover);
|
|
2218
|
+
const { forceMount = portalContext.forceMount, ...contentProps } = props;
|
|
2219
|
+
const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
|
|
2220
|
+
return /* @__PURE__ */ React23.createElement(Presence, {
|
|
2221
|
+
present: forceMount || context.open
|
|
2222
|
+
}, context.modal ? /* @__PURE__ */ React23.createElement(PopoverContentModal, {
|
|
2223
|
+
...contentProps,
|
|
2224
|
+
ref: forwardedRef
|
|
2225
|
+
}) : /* @__PURE__ */ React23.createElement(PopoverContentNonModal, {
|
|
2226
|
+
...contentProps,
|
|
1838
2227
|
ref: forwardedRef
|
|
2228
|
+
}));
|
|
2229
|
+
});
|
|
2230
|
+
PopoverContent.displayName = CONTENT_NAME2;
|
|
2231
|
+
var PopoverContentModal = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
|
|
2232
|
+
const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
|
|
2233
|
+
const contentRef = useRef3(null);
|
|
2234
|
+
const composedRefs = useComposedRefs2(forwardedRef, contentRef);
|
|
2235
|
+
const isRightClickOutsideRef = useRef3(false);
|
|
2236
|
+
useEffect6(() => {
|
|
2237
|
+
const content = contentRef.current;
|
|
2238
|
+
if (content) {
|
|
2239
|
+
return hideOthers(content);
|
|
2240
|
+
}
|
|
2241
|
+
}, []);
|
|
2242
|
+
return /* @__PURE__ */ React23.createElement(RemoveScroll, {
|
|
2243
|
+
as: Slot12,
|
|
2244
|
+
allowPinchZoom: true
|
|
2245
|
+
}, /* @__PURE__ */ React23.createElement(PopoverContentImpl, {
|
|
2246
|
+
...props,
|
|
2247
|
+
ref: composedRefs,
|
|
2248
|
+
// we make sure we're not trapping once it's been closed
|
|
2249
|
+
// (closed !== unmounted when animating out)
|
|
2250
|
+
trapFocus: context.open,
|
|
2251
|
+
disableOutsidePointerEvents: true,
|
|
2252
|
+
onCloseAutoFocus: composeEventHandlers2(props.onCloseAutoFocus, (event) => {
|
|
2253
|
+
event.preventDefault();
|
|
2254
|
+
if (!isRightClickOutsideRef.current) {
|
|
2255
|
+
context.triggerRef.current?.focus();
|
|
2256
|
+
}
|
|
2257
|
+
}),
|
|
2258
|
+
onPointerDownOutside: composeEventHandlers2(props.onPointerDownOutside, (event) => {
|
|
2259
|
+
const originalEvent = event.detail.originalEvent;
|
|
2260
|
+
const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
|
|
2261
|
+
const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
|
|
2262
|
+
isRightClickOutsideRef.current = isRightClick;
|
|
2263
|
+
}, {
|
|
2264
|
+
checkForDefaultPrevented: false
|
|
2265
|
+
}),
|
|
2266
|
+
// When focus is trapped, a `focusout` event may still happen.
|
|
2267
|
+
// We make sure we don't trigger our `onDismiss` in such case.
|
|
2268
|
+
onFocusOutside: composeEventHandlers2(props.onFocusOutside, (event) => event.preventDefault(), {
|
|
2269
|
+
checkForDefaultPrevented: false
|
|
2270
|
+
})
|
|
2271
|
+
}));
|
|
2272
|
+
});
|
|
2273
|
+
var PopoverContentNonModal = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
|
|
2274
|
+
const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
|
|
2275
|
+
const hasInteractedOutsideRef = useRef3(false);
|
|
2276
|
+
const hasPointerDownOutsideRef = useRef3(false);
|
|
2277
|
+
return /* @__PURE__ */ React23.createElement(PopoverContentImpl, {
|
|
2278
|
+
...props,
|
|
2279
|
+
ref: forwardedRef,
|
|
2280
|
+
trapFocus: false,
|
|
2281
|
+
disableOutsidePointerEvents: false,
|
|
2282
|
+
onCloseAutoFocus: (event) => {
|
|
2283
|
+
props.onCloseAutoFocus?.(event);
|
|
2284
|
+
if (!event.defaultPrevented) {
|
|
2285
|
+
if (!hasInteractedOutsideRef.current) {
|
|
2286
|
+
context.triggerRef.current?.focus();
|
|
2287
|
+
}
|
|
2288
|
+
event.preventDefault();
|
|
2289
|
+
}
|
|
2290
|
+
hasInteractedOutsideRef.current = false;
|
|
2291
|
+
hasPointerDownOutsideRef.current = false;
|
|
2292
|
+
},
|
|
2293
|
+
onInteractOutside: (event) => {
|
|
2294
|
+
props.onInteractOutside?.(event);
|
|
2295
|
+
if (!event.defaultPrevented) {
|
|
2296
|
+
hasInteractedOutsideRef.current = true;
|
|
2297
|
+
if (event.detail.originalEvent.type === "pointerdown") {
|
|
2298
|
+
hasPointerDownOutsideRef.current = true;
|
|
2299
|
+
}
|
|
2300
|
+
}
|
|
2301
|
+
const target = event.target;
|
|
2302
|
+
const targetIsTrigger = context.triggerRef.current?.contains(target);
|
|
2303
|
+
if (targetIsTrigger) {
|
|
2304
|
+
event.preventDefault();
|
|
2305
|
+
}
|
|
2306
|
+
if (event.detail.originalEvent.type === "focusin" && hasPointerDownOutsideRef.current) {
|
|
2307
|
+
event.preventDefault();
|
|
2308
|
+
}
|
|
2309
|
+
}
|
|
1839
2310
|
});
|
|
1840
2311
|
});
|
|
1841
|
-
var
|
|
2312
|
+
var PopoverContentImpl = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
|
|
2313
|
+
const { __scopePopover, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, classNames, ...contentProps } = props;
|
|
2314
|
+
const context = usePopoverContext(CONTENT_NAME2, __scopePopover);
|
|
2315
|
+
const popperScope = usePopperScope(__scopePopover);
|
|
1842
2316
|
const { tx } = useThemeContext();
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
2317
|
+
useFocusGuards();
|
|
2318
|
+
return /* @__PURE__ */ React23.createElement(FocusScope, {
|
|
2319
|
+
asChild: true,
|
|
2320
|
+
loop: true,
|
|
2321
|
+
trapped: trapFocus,
|
|
2322
|
+
onMountAutoFocus: onOpenAutoFocus,
|
|
2323
|
+
onUnmountAutoFocus: onCloseAutoFocus
|
|
2324
|
+
}, /* @__PURE__ */ React23.createElement(DismissableLayer, {
|
|
2325
|
+
asChild: true,
|
|
2326
|
+
disableOutsidePointerEvents,
|
|
2327
|
+
onInteractOutside,
|
|
2328
|
+
onEscapeKeyDown,
|
|
2329
|
+
onPointerDownOutside,
|
|
2330
|
+
onFocusOutside,
|
|
2331
|
+
onDismiss: () => context.onOpenChange(false)
|
|
2332
|
+
}, /* @__PURE__ */ React23.createElement(PopperPrimitive.Content, {
|
|
2333
|
+
"data-state": getState(context.open),
|
|
2334
|
+
role: "dialog",
|
|
2335
|
+
id: context.contentId,
|
|
2336
|
+
...popperScope,
|
|
2337
|
+
...contentProps,
|
|
1847
2338
|
className: tx("popover.content", "popover", {}, classNames),
|
|
2339
|
+
ref: forwardedRef,
|
|
2340
|
+
style: {
|
|
2341
|
+
...contentProps.style,
|
|
2342
|
+
// re-namespace exposed content custom properties
|
|
2343
|
+
...{
|
|
2344
|
+
"--radix-popover-content-transform-origin": "var(--radix-popper-transform-origin)",
|
|
2345
|
+
"--radix-popover-content-available-width": "var(--radix-popper-available-width)",
|
|
2346
|
+
"--radix-popover-content-available-height": "var(--radix-popper-available-height)",
|
|
2347
|
+
"--radix-popover-trigger-width": "var(--radix-popper-anchor-width)",
|
|
2348
|
+
"--radix-popover-trigger-height": "var(--radix-popper-anchor-height)"
|
|
2349
|
+
}
|
|
2350
|
+
}
|
|
2351
|
+
})));
|
|
2352
|
+
});
|
|
2353
|
+
var CLOSE_NAME = "PopoverClose";
|
|
2354
|
+
var PopoverClose = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
|
|
2355
|
+
const { __scopePopover, ...closeProps } = props;
|
|
2356
|
+
const context = usePopoverContext(CLOSE_NAME, __scopePopover);
|
|
2357
|
+
return /* @__PURE__ */ React23.createElement(Primitive11.button, {
|
|
2358
|
+
type: "button",
|
|
2359
|
+
...closeProps,
|
|
2360
|
+
ref: forwardedRef,
|
|
2361
|
+
onClick: composeEventHandlers2(props.onClick, () => context.onOpenChange(false))
|
|
2362
|
+
});
|
|
2363
|
+
});
|
|
2364
|
+
PopoverClose.displayName = CLOSE_NAME;
|
|
2365
|
+
var ARROW_NAME2 = "PopoverArrow";
|
|
2366
|
+
var PopoverArrow = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
|
|
2367
|
+
const { __scopePopover, classNames, ...arrowProps } = props;
|
|
2368
|
+
const popperScope = usePopperScope(__scopePopover);
|
|
2369
|
+
const { tx } = useThemeContext();
|
|
2370
|
+
return /* @__PURE__ */ React23.createElement(PopperPrimitive.Arrow, {
|
|
2371
|
+
...popperScope,
|
|
2372
|
+
...arrowProps,
|
|
2373
|
+
className: tx("popover.arrow", "popover__arrow", {}, classNames),
|
|
1848
2374
|
ref: forwardedRef
|
|
1849
|
-
}
|
|
1850
|
-
elevation: "chrome"
|
|
1851
|
-
}, children));
|
|
2375
|
+
});
|
|
1852
2376
|
});
|
|
2377
|
+
PopoverArrow.displayName = ARROW_NAME2;
|
|
1853
2378
|
var PopoverViewport = /* @__PURE__ */ forwardRef20(({ classNames, asChild, constrainInline = true, constrainBlock = true, children, ...props }, forwardedRef) => {
|
|
1854
2379
|
const { tx } = useThemeContext();
|
|
1855
|
-
const
|
|
1856
|
-
return /* @__PURE__ */ React23.createElement(
|
|
2380
|
+
const Root5 = asChild ? Slot12 : Primitive11.div;
|
|
2381
|
+
return /* @__PURE__ */ React23.createElement(Root5, {
|
|
1857
2382
|
...props,
|
|
1858
2383
|
className: tx("popover.viewport", "popover__viewport", {
|
|
1859
2384
|
constrainInline,
|
|
@@ -1862,14 +2387,16 @@ var PopoverViewport = /* @__PURE__ */ forwardRef20(({ classNames, asChild, const
|
|
|
1862
2387
|
ref: forwardedRef
|
|
1863
2388
|
}, children);
|
|
1864
2389
|
});
|
|
2390
|
+
var getState = (open) => open ? "open" : "closed";
|
|
1865
2391
|
var Popover = {
|
|
1866
2392
|
Root: PopoverRoot,
|
|
1867
|
-
Portal: PopoverPortal,
|
|
1868
|
-
Trigger: PopoverTrigger,
|
|
1869
2393
|
Anchor: PopoverAnchor,
|
|
1870
|
-
|
|
1871
|
-
|
|
2394
|
+
Trigger: PopoverTrigger,
|
|
2395
|
+
VirtualTrigger: PopoverVirtualTrigger,
|
|
2396
|
+
Portal: PopoverPortal,
|
|
1872
2397
|
Content: PopoverContent,
|
|
2398
|
+
Close: PopoverClose,
|
|
2399
|
+
Arrow: PopoverArrow,
|
|
1873
2400
|
Viewport: PopoverViewport
|
|
1874
2401
|
};
|
|
1875
2402
|
|
|
@@ -1950,7 +2477,7 @@ var ScrollArea = {
|
|
|
1950
2477
|
};
|
|
1951
2478
|
|
|
1952
2479
|
// packages/ui/react-ui/src/components/Select/Select.tsx
|
|
1953
|
-
import { CaretDown as CaretDown2, CaretUp
|
|
2480
|
+
import { CaretDown as CaretDown2, CaretUp } from "@phosphor-icons/react";
|
|
1954
2481
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
1955
2482
|
import React26, { forwardRef as forwardRef23 } from "react";
|
|
1956
2483
|
var SelectRoot = SelectPrimitive.Root;
|
|
@@ -1965,20 +2492,21 @@ var SelectTriggerButton = /* @__PURE__ */ forwardRef23(({ children, placeholder,
|
|
|
1965
2492
|
ref: forwardedRef
|
|
1966
2493
|
}, /* @__PURE__ */ React26.createElement(Button, props, /* @__PURE__ */ React26.createElement(SelectPrimitive.Value, {
|
|
1967
2494
|
placeholder
|
|
1968
|
-
}, children), /* @__PURE__ */ React26.createElement(
|
|
2495
|
+
}, children), /* @__PURE__ */ React26.createElement("span", {
|
|
2496
|
+
className: "w-1 flex-1"
|
|
2497
|
+
}), /* @__PURE__ */ React26.createElement(SelectPrimitive.Icon, {
|
|
1969
2498
|
asChild: true
|
|
1970
|
-
}, /* @__PURE__ */ React26.createElement(
|
|
1971
|
-
className: "w-1"
|
|
1972
|
-
}), /* @__PURE__ */ React26.createElement(CaretDown2, {
|
|
2499
|
+
}, /* @__PURE__ */ React26.createElement(CaretDown2, {
|
|
1973
2500
|
className: tx("select.triggerIcon", "select__trigger__icon", {}),
|
|
1974
2501
|
weight: "bold"
|
|
1975
|
-
}))))
|
|
2502
|
+
}))));
|
|
1976
2503
|
});
|
|
1977
2504
|
var SelectContent = /* @__PURE__ */ forwardRef23(({ classNames, children, ...props }, forwardedRef) => {
|
|
1978
2505
|
const { tx } = useThemeContext();
|
|
1979
2506
|
return /* @__PURE__ */ React26.createElement(SelectPrimitive.Content, {
|
|
1980
2507
|
...props,
|
|
1981
2508
|
className: tx("select.content", "select__content", {}, classNames),
|
|
2509
|
+
position: "popper",
|
|
1982
2510
|
ref: forwardedRef
|
|
1983
2511
|
}, children);
|
|
1984
2512
|
});
|
|
@@ -2002,7 +2530,14 @@ var SelectScrollDownButton2 = /* @__PURE__ */ forwardRef23(({ classNames, childr
|
|
|
2002
2530
|
weight: "bold"
|
|
2003
2531
|
}));
|
|
2004
2532
|
});
|
|
2005
|
-
var
|
|
2533
|
+
var SelectViewport2 = /* @__PURE__ */ forwardRef23(({ classNames, asChild, children, ...props }, forwardedRef) => {
|
|
2534
|
+
const { tx } = useThemeContext();
|
|
2535
|
+
return /* @__PURE__ */ React26.createElement(SelectPrimitive.SelectViewport, {
|
|
2536
|
+
...props,
|
|
2537
|
+
className: tx("select.viewport", "select__viewport", {}, classNames),
|
|
2538
|
+
ref: forwardedRef
|
|
2539
|
+
}, children);
|
|
2540
|
+
});
|
|
2006
2541
|
var SelectItem = /* @__PURE__ */ forwardRef23(({ classNames, ...props }, forwardedRef) => {
|
|
2007
2542
|
const { tx } = useThemeContext();
|
|
2008
2543
|
return /* @__PURE__ */ React26.createElement(SelectPrimitive.Item, {
|
|
@@ -2026,11 +2561,11 @@ var SelectOption = /* @__PURE__ */ forwardRef23(({ children, classNames, ...prop
|
|
|
2026
2561
|
...props,
|
|
2027
2562
|
className: tx("select.item", "option", {}, classNames),
|
|
2028
2563
|
ref: forwardedRef
|
|
2029
|
-
}, /* @__PURE__ */ React26.createElement(SelectPrimitive.ItemText, null, children), /* @__PURE__ */ React26.createElement(
|
|
2030
|
-
className:
|
|
2031
|
-
}, /* @__PURE__ */ React26.createElement(
|
|
2032
|
-
|
|
2033
|
-
}))
|
|
2564
|
+
}, /* @__PURE__ */ React26.createElement(SelectPrimitive.ItemText, null, children), /* @__PURE__ */ React26.createElement("span", {
|
|
2565
|
+
className: "grow w-1"
|
|
2566
|
+
}), /* @__PURE__ */ React26.createElement(Icon, {
|
|
2567
|
+
icon: "ph--check--regular"
|
|
2568
|
+
}));
|
|
2034
2569
|
});
|
|
2035
2570
|
var SelectGroup = SelectPrimitive.Group;
|
|
2036
2571
|
var SelectLabel = SelectPrimitive.Label;
|
|
@@ -2060,7 +2595,7 @@ var Select = {
|
|
|
2060
2595
|
Content: SelectContent,
|
|
2061
2596
|
ScrollUpButton: SelectScrollUpButton2,
|
|
2062
2597
|
ScrollDownButton: SelectScrollDownButton2,
|
|
2063
|
-
Viewport:
|
|
2598
|
+
Viewport: SelectViewport2,
|
|
2064
2599
|
Item: SelectItem,
|
|
2065
2600
|
ItemText: SelectItemText,
|
|
2066
2601
|
ItemIndicator: SelectItemIndicator,
|
|
@@ -2091,8 +2626,8 @@ import { Slot as Slot13 } from "@radix-ui/react-slot";
|
|
|
2091
2626
|
import React28, { forwardRef as forwardRef24 } from "react";
|
|
2092
2627
|
var Tag = /* @__PURE__ */ forwardRef24(({ asChild, palette, classNames, ...props }, forwardedRef) => {
|
|
2093
2628
|
const { tx } = useThemeContext();
|
|
2094
|
-
const
|
|
2095
|
-
return /* @__PURE__ */ React28.createElement(
|
|
2629
|
+
const Root5 = asChild ? Slot13 : Primitive12.span;
|
|
2630
|
+
return /* @__PURE__ */ React28.createElement(Root5, {
|
|
2096
2631
|
...props,
|
|
2097
2632
|
className: tx("tag.root", "tag", {
|
|
2098
2633
|
palette
|
|
@@ -2122,14 +2657,12 @@ var ToastRoot = /* @__PURE__ */ forwardRef25(({ classNames, children, ...props }
|
|
|
2122
2657
|
ref: forwardedRef
|
|
2123
2658
|
}, /* @__PURE__ */ React29.createElement(ElevationProvider, {
|
|
2124
2659
|
elevation: "chrome"
|
|
2125
|
-
},
|
|
2126
|
-
density: "fine"
|
|
2127
|
-
}, children)));
|
|
2660
|
+
}, children));
|
|
2128
2661
|
});
|
|
2129
2662
|
var ToastBody = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
2130
2663
|
const { tx } = useThemeContext();
|
|
2131
|
-
const
|
|
2132
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2664
|
+
const Root5 = asChild ? Slot14 : Primitive13.div;
|
|
2665
|
+
return /* @__PURE__ */ React29.createElement(Root5, {
|
|
2133
2666
|
...props,
|
|
2134
2667
|
className: tx("toast.body", "toast__body", {}, classNames),
|
|
2135
2668
|
ref: forwardedRef
|
|
@@ -2137,8 +2670,8 @@ var ToastBody = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props },
|
|
|
2137
2670
|
});
|
|
2138
2671
|
var ToastTitle = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
2139
2672
|
const { tx } = useThemeContext();
|
|
2140
|
-
const
|
|
2141
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2673
|
+
const Root5 = asChild ? Slot14 : ToastTitlePrimitive;
|
|
2674
|
+
return /* @__PURE__ */ React29.createElement(Root5, {
|
|
2142
2675
|
...props,
|
|
2143
2676
|
className: tx("toast.title", "toast__title", {}, classNames),
|
|
2144
2677
|
ref: forwardedRef
|
|
@@ -2146,8 +2679,8 @@ var ToastTitle = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props }
|
|
|
2146
2679
|
});
|
|
2147
2680
|
var ToastDescription = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
2148
2681
|
const { tx } = useThemeContext();
|
|
2149
|
-
const
|
|
2150
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2682
|
+
const Root5 = asChild ? Slot14 : ToastDescriptionPrimitive;
|
|
2683
|
+
return /* @__PURE__ */ React29.createElement(Root5, {
|
|
2151
2684
|
...props,
|
|
2152
2685
|
className: tx("toast.description", "toast__description", {}, classNames),
|
|
2153
2686
|
ref: forwardedRef
|
|
@@ -2155,8 +2688,8 @@ var ToastDescription = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...p
|
|
|
2155
2688
|
});
|
|
2156
2689
|
var ToastActions = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
2157
2690
|
const { tx } = useThemeContext();
|
|
2158
|
-
const
|
|
2159
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2691
|
+
const Root5 = asChild ? Slot14 : Primitive13.div;
|
|
2692
|
+
return /* @__PURE__ */ React29.createElement(Root5, {
|
|
2160
2693
|
...props,
|
|
2161
2694
|
className: tx("toast.actions", "toast__actions", {}, classNames),
|
|
2162
2695
|
ref: forwardedRef
|
|
@@ -2195,6 +2728,14 @@ var ToolbarButton = /* @__PURE__ */ forwardRef26((props, forwardedRef) => {
|
|
|
2195
2728
|
ref: forwardedRef
|
|
2196
2729
|
}));
|
|
2197
2730
|
});
|
|
2731
|
+
var ToolbarToggle = /* @__PURE__ */ forwardRef26((props, forwardedRef) => {
|
|
2732
|
+
return /* @__PURE__ */ React30.createElement(ToolbarPrimitive.Button, {
|
|
2733
|
+
asChild: true
|
|
2734
|
+
}, /* @__PURE__ */ React30.createElement(Toggle, {
|
|
2735
|
+
...props,
|
|
2736
|
+
ref: forwardedRef
|
|
2737
|
+
}));
|
|
2738
|
+
});
|
|
2198
2739
|
var ToolbarLink = /* @__PURE__ */ forwardRef26((props, forwardedRef) => {
|
|
2199
2740
|
return /* @__PURE__ */ React30.createElement(ToolbarPrimitive.Link, {
|
|
2200
2741
|
asChild: true
|
|
@@ -2239,6 +2780,7 @@ var Toolbar = {
|
|
|
2239
2780
|
Root: ToolbarRoot,
|
|
2240
2781
|
Button: ToolbarButton,
|
|
2241
2782
|
Link: ToolbarLink,
|
|
2783
|
+
Toggle: ToolbarToggle,
|
|
2242
2784
|
ToggleGroup: ToolbarToggleGroup2,
|
|
2243
2785
|
ToggleGroupItem: ToolbarToggleGroupItem,
|
|
2244
2786
|
Separator: ToolbarSeparator
|
|
@@ -2280,7 +2822,7 @@ var Tooltip = {
|
|
|
2280
2822
|
|
|
2281
2823
|
// packages/ui/react-ui/src/components/ThemeProvider/ThemeProvider.tsx
|
|
2282
2824
|
import { createKeyborg } from "keyborg";
|
|
2283
|
-
import React32, { createContext as createContext10, useEffect as
|
|
2825
|
+
import React32, { createContext as createContext10, useEffect as useEffect7 } from "react";
|
|
2284
2826
|
|
|
2285
2827
|
// packages/ui/react-ui/src/util/hasIosKeyboard.ts
|
|
2286
2828
|
var hasIosKeyboard = () => {
|
|
@@ -2288,20 +2830,9 @@ var hasIosKeyboard = () => {
|
|
|
2288
2830
|
};
|
|
2289
2831
|
|
|
2290
2832
|
// packages/ui/react-ui/src/components/ThemeProvider/ThemeProvider.tsx
|
|
2291
|
-
var ThemeContext = /* @__PURE__ */ createContext10(
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
hasIosKeyboard: false
|
|
2295
|
-
});
|
|
2296
|
-
var handleInputModalityChange = (isUsingKeyboard) => {
|
|
2297
|
-
if (isUsingKeyboard) {
|
|
2298
|
-
document.body.setAttribute("data-is-keyboard", "true");
|
|
2299
|
-
} else {
|
|
2300
|
-
document.body.removeAttribute("data-is-keyboard");
|
|
2301
|
-
}
|
|
2302
|
-
};
|
|
2303
|
-
var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName, themeMode = "dark", rootElevation = "base", rootDensity = "coarse" }) => {
|
|
2304
|
-
useEffect5(() => {
|
|
2833
|
+
var ThemeContext = /* @__PURE__ */ createContext10(void 0);
|
|
2834
|
+
var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName, themeMode = "dark", rootDensity = "fine", rootElevation = "base" }) => {
|
|
2835
|
+
useEffect7(() => {
|
|
2305
2836
|
if (document.defaultView) {
|
|
2306
2837
|
const kb = createKeyborg(document.defaultView);
|
|
2307
2838
|
kb.subscribe(handleInputModalityChange);
|
|
@@ -2324,6 +2855,13 @@ var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx
|
|
|
2324
2855
|
density: rootDensity
|
|
2325
2856
|
}, children))));
|
|
2326
2857
|
};
|
|
2858
|
+
var handleInputModalityChange = (isUsingKeyboard) => {
|
|
2859
|
+
if (isUsingKeyboard) {
|
|
2860
|
+
document.body.setAttribute("data-is-keyboard", "true");
|
|
2861
|
+
} else {
|
|
2862
|
+
document.body.removeAttribute("data-is-keyboard");
|
|
2863
|
+
}
|
|
2864
|
+
};
|
|
2327
2865
|
export {
|
|
2328
2866
|
AlertDialog,
|
|
2329
2867
|
AnchoredOverflow,
|
|
@@ -2338,7 +2876,7 @@ export {
|
|
|
2338
2876
|
DensityContext,
|
|
2339
2877
|
DensityProvider,
|
|
2340
2878
|
Dialog,
|
|
2341
|
-
|
|
2879
|
+
DropdownMenu,
|
|
2342
2880
|
ElevationContext,
|
|
2343
2881
|
ElevationProvider,
|
|
2344
2882
|
Icon,
|
|
@@ -2368,14 +2906,16 @@ export {
|
|
|
2368
2906
|
Tree,
|
|
2369
2907
|
TreeItem,
|
|
2370
2908
|
Treegrid,
|
|
2909
|
+
createDropdownMenuScope,
|
|
2910
|
+
createPopoverScope,
|
|
2371
2911
|
hasIosKeyboard,
|
|
2372
2912
|
isLabel,
|
|
2373
2913
|
toLocalizedString,
|
|
2374
2914
|
useAvatarContext,
|
|
2375
2915
|
useButtonGroupContext,
|
|
2376
2916
|
useDensityContext,
|
|
2377
|
-
|
|
2378
|
-
|
|
2917
|
+
useDropdownMenuContext,
|
|
2918
|
+
useDropdownMenuMenuScope,
|
|
2379
2919
|
useElevationContext,
|
|
2380
2920
|
useListContext,
|
|
2381
2921
|
useListItemContext,
|