@dxos/react-ui 0.6.13 → 0.6.14-main.69511f5
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 +731 -198
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +2925 -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 +2924 -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.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 +9 -10
- 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
|
});
|
|
@@ -2026,11 +2554,11 @@ var SelectOption = /* @__PURE__ */ forwardRef23(({ children, classNames, ...prop
|
|
|
2026
2554
|
...props,
|
|
2027
2555
|
className: tx("select.item", "option", {}, classNames),
|
|
2028
2556
|
ref: forwardedRef
|
|
2029
|
-
}, /* @__PURE__ */ React26.createElement(SelectPrimitive.ItemText, null, children), /* @__PURE__ */ React26.createElement(
|
|
2030
|
-
className:
|
|
2031
|
-
}, /* @__PURE__ */ React26.createElement(
|
|
2032
|
-
|
|
2033
|
-
}))
|
|
2557
|
+
}, /* @__PURE__ */ React26.createElement(SelectPrimitive.ItemText, null, children), /* @__PURE__ */ React26.createElement("span", {
|
|
2558
|
+
className: "grow w-1"
|
|
2559
|
+
}), /* @__PURE__ */ React26.createElement(Icon, {
|
|
2560
|
+
icon: "ph--check--regular"
|
|
2561
|
+
}));
|
|
2034
2562
|
});
|
|
2035
2563
|
var SelectGroup = SelectPrimitive.Group;
|
|
2036
2564
|
var SelectLabel = SelectPrimitive.Label;
|
|
@@ -2091,8 +2619,8 @@ import { Slot as Slot13 } from "@radix-ui/react-slot";
|
|
|
2091
2619
|
import React28, { forwardRef as forwardRef24 } from "react";
|
|
2092
2620
|
var Tag = /* @__PURE__ */ forwardRef24(({ asChild, palette, classNames, ...props }, forwardedRef) => {
|
|
2093
2621
|
const { tx } = useThemeContext();
|
|
2094
|
-
const
|
|
2095
|
-
return /* @__PURE__ */ React28.createElement(
|
|
2622
|
+
const Root5 = asChild ? Slot13 : Primitive12.span;
|
|
2623
|
+
return /* @__PURE__ */ React28.createElement(Root5, {
|
|
2096
2624
|
...props,
|
|
2097
2625
|
className: tx("tag.root", "tag", {
|
|
2098
2626
|
palette
|
|
@@ -2122,14 +2650,12 @@ var ToastRoot = /* @__PURE__ */ forwardRef25(({ classNames, children, ...props }
|
|
|
2122
2650
|
ref: forwardedRef
|
|
2123
2651
|
}, /* @__PURE__ */ React29.createElement(ElevationProvider, {
|
|
2124
2652
|
elevation: "chrome"
|
|
2125
|
-
},
|
|
2126
|
-
density: "fine"
|
|
2127
|
-
}, children)));
|
|
2653
|
+
}, children));
|
|
2128
2654
|
});
|
|
2129
2655
|
var ToastBody = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
2130
2656
|
const { tx } = useThemeContext();
|
|
2131
|
-
const
|
|
2132
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2657
|
+
const Root5 = asChild ? Slot14 : Primitive13.div;
|
|
2658
|
+
return /* @__PURE__ */ React29.createElement(Root5, {
|
|
2133
2659
|
...props,
|
|
2134
2660
|
className: tx("toast.body", "toast__body", {}, classNames),
|
|
2135
2661
|
ref: forwardedRef
|
|
@@ -2137,8 +2663,8 @@ var ToastBody = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props },
|
|
|
2137
2663
|
});
|
|
2138
2664
|
var ToastTitle = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
2139
2665
|
const { tx } = useThemeContext();
|
|
2140
|
-
const
|
|
2141
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2666
|
+
const Root5 = asChild ? Slot14 : ToastTitlePrimitive;
|
|
2667
|
+
return /* @__PURE__ */ React29.createElement(Root5, {
|
|
2142
2668
|
...props,
|
|
2143
2669
|
className: tx("toast.title", "toast__title", {}, classNames),
|
|
2144
2670
|
ref: forwardedRef
|
|
@@ -2146,8 +2672,8 @@ var ToastTitle = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props }
|
|
|
2146
2672
|
});
|
|
2147
2673
|
var ToastDescription = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
2148
2674
|
const { tx } = useThemeContext();
|
|
2149
|
-
const
|
|
2150
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2675
|
+
const Root5 = asChild ? Slot14 : ToastDescriptionPrimitive;
|
|
2676
|
+
return /* @__PURE__ */ React29.createElement(Root5, {
|
|
2151
2677
|
...props,
|
|
2152
2678
|
className: tx("toast.description", "toast__description", {}, classNames),
|
|
2153
2679
|
ref: forwardedRef
|
|
@@ -2155,8 +2681,8 @@ var ToastDescription = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...p
|
|
|
2155
2681
|
});
|
|
2156
2682
|
var ToastActions = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props }, forwardedRef) => {
|
|
2157
2683
|
const { tx } = useThemeContext();
|
|
2158
|
-
const
|
|
2159
|
-
return /* @__PURE__ */ React29.createElement(
|
|
2684
|
+
const Root5 = asChild ? Slot14 : Primitive13.div;
|
|
2685
|
+
return /* @__PURE__ */ React29.createElement(Root5, {
|
|
2160
2686
|
...props,
|
|
2161
2687
|
className: tx("toast.actions", "toast__actions", {}, classNames),
|
|
2162
2688
|
ref: forwardedRef
|
|
@@ -2195,6 +2721,14 @@ var ToolbarButton = /* @__PURE__ */ forwardRef26((props, forwardedRef) => {
|
|
|
2195
2721
|
ref: forwardedRef
|
|
2196
2722
|
}));
|
|
2197
2723
|
});
|
|
2724
|
+
var ToolbarToggle = /* @__PURE__ */ forwardRef26((props, forwardedRef) => {
|
|
2725
|
+
return /* @__PURE__ */ React30.createElement(ToolbarPrimitive.Button, {
|
|
2726
|
+
asChild: true
|
|
2727
|
+
}, /* @__PURE__ */ React30.createElement(Toggle, {
|
|
2728
|
+
...props,
|
|
2729
|
+
ref: forwardedRef
|
|
2730
|
+
}));
|
|
2731
|
+
});
|
|
2198
2732
|
var ToolbarLink = /* @__PURE__ */ forwardRef26((props, forwardedRef) => {
|
|
2199
2733
|
return /* @__PURE__ */ React30.createElement(ToolbarPrimitive.Link, {
|
|
2200
2734
|
asChild: true
|
|
@@ -2239,6 +2773,7 @@ var Toolbar = {
|
|
|
2239
2773
|
Root: ToolbarRoot,
|
|
2240
2774
|
Button: ToolbarButton,
|
|
2241
2775
|
Link: ToolbarLink,
|
|
2776
|
+
Toggle: ToolbarToggle,
|
|
2242
2777
|
ToggleGroup: ToolbarToggleGroup2,
|
|
2243
2778
|
ToggleGroupItem: ToolbarToggleGroupItem,
|
|
2244
2779
|
Separator: ToolbarSeparator
|
|
@@ -2280,7 +2815,7 @@ var Tooltip = {
|
|
|
2280
2815
|
|
|
2281
2816
|
// packages/ui/react-ui/src/components/ThemeProvider/ThemeProvider.tsx
|
|
2282
2817
|
import { createKeyborg } from "keyborg";
|
|
2283
|
-
import React32, { createContext as createContext10, useEffect as
|
|
2818
|
+
import React32, { createContext as createContext10, useEffect as useEffect7 } from "react";
|
|
2284
2819
|
|
|
2285
2820
|
// packages/ui/react-ui/src/util/hasIosKeyboard.ts
|
|
2286
2821
|
var hasIosKeyboard = () => {
|
|
@@ -2288,20 +2823,9 @@ var hasIosKeyboard = () => {
|
|
|
2288
2823
|
};
|
|
2289
2824
|
|
|
2290
2825
|
// 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(() => {
|
|
2826
|
+
var ThemeContext = /* @__PURE__ */ createContext10(void 0);
|
|
2827
|
+
var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName, themeMode = "dark", rootDensity = "fine", rootElevation = "base" }) => {
|
|
2828
|
+
useEffect7(() => {
|
|
2305
2829
|
if (document.defaultView) {
|
|
2306
2830
|
const kb = createKeyborg(document.defaultView);
|
|
2307
2831
|
kb.subscribe(handleInputModalityChange);
|
|
@@ -2324,6 +2848,13 @@ var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx
|
|
|
2324
2848
|
density: rootDensity
|
|
2325
2849
|
}, children))));
|
|
2326
2850
|
};
|
|
2851
|
+
var handleInputModalityChange = (isUsingKeyboard) => {
|
|
2852
|
+
if (isUsingKeyboard) {
|
|
2853
|
+
document.body.setAttribute("data-is-keyboard", "true");
|
|
2854
|
+
} else {
|
|
2855
|
+
document.body.removeAttribute("data-is-keyboard");
|
|
2856
|
+
}
|
|
2857
|
+
};
|
|
2327
2858
|
export {
|
|
2328
2859
|
AlertDialog,
|
|
2329
2860
|
AnchoredOverflow,
|
|
@@ -2338,7 +2869,7 @@ export {
|
|
|
2338
2869
|
DensityContext,
|
|
2339
2870
|
DensityProvider,
|
|
2340
2871
|
Dialog,
|
|
2341
|
-
|
|
2872
|
+
DropdownMenu,
|
|
2342
2873
|
ElevationContext,
|
|
2343
2874
|
ElevationProvider,
|
|
2344
2875
|
Icon,
|
|
@@ -2368,14 +2899,16 @@ export {
|
|
|
2368
2899
|
Tree,
|
|
2369
2900
|
TreeItem,
|
|
2370
2901
|
Treegrid,
|
|
2902
|
+
createDropdownMenuScope,
|
|
2903
|
+
createPopoverScope,
|
|
2371
2904
|
hasIosKeyboard,
|
|
2372
2905
|
isLabel,
|
|
2373
2906
|
toLocalizedString,
|
|
2374
2907
|
useAvatarContext,
|
|
2375
2908
|
useButtonGroupContext,
|
|
2376
2909
|
useDensityContext,
|
|
2377
|
-
|
|
2378
|
-
|
|
2910
|
+
useDropdownMenuContext,
|
|
2911
|
+
useDropdownMenuMenuScope,
|
|
2379
2912
|
useElevationContext,
|
|
2380
2913
|
useListContext,
|
|
2381
2914
|
useListItemContext,
|