@craftzbay/ui 0.10.0 → 0.11.1
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/README.md +18 -12
- package/dist-lib/__tests__/helpers/color.d.ts +9 -0
- package/dist-lib/__tests__/helpers/theme.d.ts +18 -0
- package/dist-lib/components/ui/Accordion.js +18 -7
- package/dist-lib/components/ui/Accordion.js.map +1 -1
- package/dist-lib/components/ui/Alert.d.ts +16 -0
- package/dist-lib/components/ui/Alert.js +47 -34
- package/dist-lib/components/ui/Alert.js.map +1 -1
- package/dist-lib/components/ui/Avatar.d.ts +1 -1
- package/dist-lib/components/ui/Avatar.js +45 -47
- package/dist-lib/components/ui/Avatar.js.map +1 -1
- package/dist-lib/components/ui/Badge.d.ts +3 -1
- package/dist-lib/components/ui/Badge.js +24 -15
- package/dist-lib/components/ui/Badge.js.map +1 -1
- package/dist-lib/components/ui/Breadcrumbs.d.ts +2 -0
- package/dist-lib/components/ui/Breadcrumbs.js +46 -28
- package/dist-lib/components/ui/Breadcrumbs.js.map +1 -1
- package/dist-lib/components/ui/Button.d.ts +5 -3
- package/dist-lib/components/ui/Button.js +59 -45
- package/dist-lib/components/ui/Button.js.map +1 -1
- package/dist-lib/components/ui/Calendar.d.ts +1 -1
- package/dist-lib/components/ui/Calendar.js +87 -59
- package/dist-lib/components/ui/Calendar.js.map +1 -1
- package/dist-lib/components/ui/Card.d.ts +2 -0
- package/dist-lib/components/ui/Card.js +48 -67
- package/dist-lib/components/ui/Card.js.map +1 -1
- package/dist-lib/components/ui/Carousel.d.ts +6 -6
- package/dist-lib/components/ui/Carousel.js +133 -102
- package/dist-lib/components/ui/Carousel.js.map +1 -1
- package/dist-lib/components/ui/Chart.d.ts +49 -10
- package/dist-lib/components/ui/Chart.js +415 -181
- package/dist-lib/components/ui/Chart.js.map +1 -1
- package/dist-lib/components/ui/Checkbox.js +42 -28
- package/dist-lib/components/ui/Checkbox.js.map +1 -1
- package/dist-lib/components/ui/Combobox.d.ts +2 -0
- package/dist-lib/components/ui/Combobox.js +142 -111
- package/dist-lib/components/ui/Combobox.js.map +1 -1
- package/dist-lib/components/ui/CommandPalette.d.ts +6 -3
- package/dist-lib/components/ui/CommandPalette.js +92 -87
- package/dist-lib/components/ui/CommandPalette.js.map +1 -1
- package/dist-lib/components/ui/ContextMenu.d.ts +7 -2
- package/dist-lib/components/ui/ContextMenu.js +77 -62
- package/dist-lib/components/ui/ContextMenu.js.map +1 -1
- package/dist-lib/components/ui/DataGrid.d.ts +17 -4
- package/dist-lib/components/ui/DataGrid.js +65 -50
- package/dist-lib/components/ui/DataGrid.js.map +1 -1
- package/dist-lib/components/ui/DatePicker.js +118 -99
- package/dist-lib/components/ui/DatePicker.js.map +1 -1
- package/dist-lib/components/ui/DesignSystemProvider.d.ts +94 -40
- package/dist-lib/components/ui/DesignSystemProvider.js +111 -55
- package/dist-lib/components/ui/DesignSystemProvider.js.map +1 -1
- package/dist-lib/components/ui/Dialog.d.ts +18 -3
- package/dist-lib/components/ui/Dialog.js +105 -80
- package/dist-lib/components/ui/Dialog.js.map +1 -1
- package/dist-lib/components/ui/Drawer.d.ts +17 -2
- package/dist-lib/components/ui/Drawer.js +89 -55
- package/dist-lib/components/ui/Drawer.js.map +1 -1
- package/dist-lib/components/ui/DropdownMenu.js +14 -9
- package/dist-lib/components/ui/DropdownMenu.js.map +1 -1
- package/dist-lib/components/ui/EmptyState.d.ts +2 -0
- package/dist-lib/components/ui/EmptyState.js +30 -16
- package/dist-lib/components/ui/EmptyState.js.map +1 -1
- package/dist-lib/components/ui/ErrorState.d.ts +13 -2
- package/dist-lib/components/ui/ErrorState.js +44 -23
- package/dist-lib/components/ui/ErrorState.js.map +1 -1
- package/dist-lib/components/ui/FileUpload.js +59 -56
- package/dist-lib/components/ui/FileUpload.js.map +1 -1
- package/dist-lib/components/ui/Form.d.ts +15 -2
- package/dist-lib/components/ui/Form.js +97 -71
- package/dist-lib/components/ui/Form.js.map +1 -1
- package/dist-lib/components/ui/Icon.d.ts +1 -1
- package/dist-lib/components/ui/Icon.js +20 -14
- package/dist-lib/components/ui/Icon.js.map +1 -1
- package/dist-lib/components/ui/IconButton.d.ts +2 -2
- package/dist-lib/components/ui/IconButton.js +28 -20
- package/dist-lib/components/ui/IconButton.js.map +1 -1
- package/dist-lib/components/ui/Input.d.ts +3 -1
- package/dist-lib/components/ui/Input.js +102 -79
- package/dist-lib/components/ui/Input.js.map +1 -1
- package/dist-lib/components/ui/Kbd.js +1 -1
- package/dist-lib/components/ui/Kbd.js.map +1 -1
- package/dist-lib/components/ui/MultiSelect.js +121 -107
- package/dist-lib/components/ui/MultiSelect.js.map +1 -1
- package/dist-lib/components/ui/Pagination.js +67 -62
- package/dist-lib/components/ui/Pagination.js.map +1 -1
- package/dist-lib/components/ui/Popover.js +14 -14
- package/dist-lib/components/ui/Popover.js.map +1 -1
- package/dist-lib/components/ui/Progress.d.ts +3 -3
- package/dist-lib/components/ui/Progress.js +77 -72
- package/dist-lib/components/ui/Progress.js.map +1 -1
- package/dist-lib/components/ui/RadioGroup.d.ts +1 -1
- package/dist-lib/components/ui/RadioGroup.js +69 -52
- package/dist-lib/components/ui/RadioGroup.js.map +1 -1
- package/dist-lib/components/ui/RelativeTime.d.ts +19 -0
- package/dist-lib/components/ui/RelativeTime.js +31 -0
- package/dist-lib/components/ui/RelativeTime.js.map +1 -0
- package/dist-lib/components/ui/ScrollArea.d.ts +9 -1
- package/dist-lib/components/ui/ScrollArea.js +43 -27
- package/dist-lib/components/ui/ScrollArea.js.map +1 -1
- package/dist-lib/components/ui/Select.d.ts +6 -1
- package/dist-lib/components/ui/Select.js +79 -71
- package/dist-lib/components/ui/Select.js.map +1 -1
- package/dist-lib/components/ui/Separator.js +1 -1
- package/dist-lib/components/ui/Separator.js.map +1 -1
- package/dist-lib/components/ui/Sheet.d.ts +9 -0
- package/dist-lib/components/ui/Sheet.js +69 -46
- package/dist-lib/components/ui/Sheet.js.map +1 -1
- package/dist-lib/components/ui/Sidebar.d.ts +12 -9
- package/dist-lib/components/ui/Sidebar.js +152 -109
- package/dist-lib/components/ui/Sidebar.js.map +1 -1
- package/dist-lib/components/ui/Skeleton.d.ts +13 -2
- package/dist-lib/components/ui/Skeleton.js +15 -14
- package/dist-lib/components/ui/Skeleton.js.map +1 -1
- package/dist-lib/components/ui/Slider.js +41 -29
- package/dist-lib/components/ui/Slider.js.map +1 -1
- package/dist-lib/components/ui/Snackbar.js +23 -22
- package/dist-lib/components/ui/Snackbar.js.map +1 -1
- package/dist-lib/components/ui/Spinner.js +18 -6
- package/dist-lib/components/ui/Spinner.js.map +1 -1
- package/dist-lib/components/ui/Stepper.d.ts +6 -0
- package/dist-lib/components/ui/Stepper.js +71 -48
- package/dist-lib/components/ui/Stepper.js.map +1 -1
- package/dist-lib/components/ui/Switch.js +46 -43
- package/dist-lib/components/ui/Switch.js.map +1 -1
- package/dist-lib/components/ui/Table.d.ts +33 -5
- package/dist-lib/components/ui/Table.js +141 -119
- package/dist-lib/components/ui/Table.js.map +1 -1
- package/dist-lib/components/ui/Tabs.js +50 -48
- package/dist-lib/components/ui/Tabs.js.map +1 -1
- package/dist-lib/components/ui/TagInput.js +45 -45
- package/dist-lib/components/ui/TagInput.js.map +1 -1
- package/dist-lib/components/ui/Textarea.js +65 -54
- package/dist-lib/components/ui/Textarea.js.map +1 -1
- package/dist-lib/components/ui/Timeline.js +39 -35
- package/dist-lib/components/ui/Timeline.js.map +1 -1
- package/dist-lib/components/ui/Toast.js +44 -57
- package/dist-lib/components/ui/Toast.js.map +1 -1
- package/dist-lib/components/ui/Tooltip.d.ts +4 -1
- package/dist-lib/components/ui/Tooltip.js +24 -22
- package/dist-lib/components/ui/Tooltip.js.map +1 -1
- package/dist-lib/components/ui/TopNav.d.ts +7 -3
- package/dist-lib/components/ui/TopNav.js +39 -22
- package/dist-lib/components/ui/TopNav.js.map +1 -1
- package/dist-lib/components/ui/Tree.d.ts +15 -10
- package/dist-lib/components/ui/Tree.js +82 -79
- package/dist-lib/components/ui/Tree.js.map +1 -1
- package/dist-lib/hooks/use-debounce.d.ts +19 -0
- package/dist-lib/hooks/use-debounce.js +36 -0
- package/dist-lib/hooks/use-debounce.js.map +1 -0
- package/dist-lib/hooks/use-delayed-loading.d.ts +21 -0
- package/dist-lib/hooks/use-delayed-loading.js +20 -0
- package/dist-lib/hooks/use-delayed-loading.js.map +1 -0
- package/dist-lib/hooks/use-field-ids.d.ts +2 -1
- package/dist-lib/hooks/use-field-ids.js +9 -9
- package/dist-lib/hooks/use-field-ids.js.map +1 -1
- package/dist-lib/hooks/use-media-query.d.ts +3 -1
- package/dist-lib/hooks/use-media-query.js +16 -12
- package/dist-lib/hooks/use-media-query.js.map +1 -1
- package/dist-lib/hooks/use-modifier-key.d.ts +13 -0
- package/dist-lib/hooks/use-modifier-key.js +19 -0
- package/dist-lib/hooks/use-modifier-key.js.map +1 -0
- package/dist-lib/hooks/use-toast.d.ts +7 -2
- package/dist-lib/hooks/use-toast.js +61 -30
- package/dist-lib/hooks/use-toast.js.map +1 -1
- package/dist-lib/icons/index.d.ts +9 -0
- package/dist-lib/icons/index.js +148 -130
- package/dist-lib/icons/index.js.map +1 -1
- package/dist-lib/illustrations/index.d.ts +1 -0
- package/dist-lib/illustrations/index.js +15 -6
- package/dist-lib/illustrations/index.js.map +1 -1
- package/dist-lib/index.d.ts +6 -0
- package/dist-lib/index.js +280 -260
- package/dist-lib/index.js.map +1 -1
- package/dist-lib/lib/format.d.ts +65 -0
- package/dist-lib/lib/format.js +95 -0
- package/dist-lib/lib/format.js.map +1 -0
- package/dist-lib/lib/return-focus.d.ts +11 -0
- package/dist-lib/lib/return-focus.js +12 -0
- package/dist-lib/lib/return-focus.js.map +1 -0
- package/dist-lib/lib/strings.d.ts +62 -1
- package/dist-lib/lib/strings.js +75 -19
- package/dist-lib/lib/strings.js.map +1 -1
- package/dist-lib/lib/strings.mn.js +50 -5
- package/dist-lib/lib/strings.mn.js.map +1 -1
- package/dist-lib/styles.css +1 -1
- package/dist-lib/theme.css +141 -78
- package/package.json +11 -4
|
@@ -1,174 +1,179 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as
|
|
3
|
-
import { forwardRef as d,
|
|
2
|
+
import { jsx as a, jsxs as u } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef as d, useRef as x, useEffect as y } from "react";
|
|
4
4
|
import { Command as m } from "cmdk";
|
|
5
|
-
import * as
|
|
6
|
-
import { Search as
|
|
5
|
+
import * as l from "@radix-ui/react-dialog";
|
|
6
|
+
import { Search as C } from "../../icons/index.js";
|
|
7
7
|
import { cn as r } from "../../lib/utils.js";
|
|
8
|
-
import { useStrings as
|
|
9
|
-
const
|
|
10
|
-
return /* @__PURE__ */
|
|
8
|
+
import { useStrings as p } from "../../hooks/use-strings.js";
|
|
9
|
+
const f = d(function({ className: t, ...e }, o) {
|
|
10
|
+
return /* @__PURE__ */ a(
|
|
11
11
|
m,
|
|
12
12
|
{
|
|
13
13
|
ref: o,
|
|
14
14
|
className: r(
|
|
15
|
-
"flex h-full w-full flex-col overflow-hidden rounded-lg
|
|
16
|
-
|
|
15
|
+
"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-lg",
|
|
16
|
+
t
|
|
17
17
|
),
|
|
18
|
-
...
|
|
18
|
+
...e
|
|
19
19
|
}
|
|
20
20
|
);
|
|
21
21
|
});
|
|
22
|
-
|
|
23
|
-
const
|
|
24
|
-
return /* @__PURE__ */
|
|
25
|
-
/* @__PURE__ */
|
|
26
|
-
/* @__PURE__ */
|
|
22
|
+
f.displayName = "Command";
|
|
23
|
+
const b = d(function({ className: t, ...e }, o) {
|
|
24
|
+
return /* @__PURE__ */ u("div", { className: "border-border flex items-center gap-2 border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
25
|
+
/* @__PURE__ */ a(C, { className: "text-foreground-subtle size-4 shrink-0", "aria-hidden": !0 }),
|
|
26
|
+
/* @__PURE__ */ a(
|
|
27
27
|
m.Input,
|
|
28
28
|
{
|
|
29
29
|
ref: o,
|
|
30
30
|
className: r(
|
|
31
|
-
"flex h-11 w-full bg-transparent py-3 text-
|
|
31
|
+
"flex h-11 w-full bg-transparent py-3 text-lg outline-none md:text-sm",
|
|
32
32
|
"placeholder:text-foreground-subtle disabled:cursor-not-allowed disabled:opacity-50",
|
|
33
|
-
|
|
33
|
+
t
|
|
34
34
|
),
|
|
35
|
-
...
|
|
35
|
+
...e
|
|
36
36
|
}
|
|
37
37
|
)
|
|
38
38
|
] });
|
|
39
39
|
});
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
|
|
40
|
+
b.displayName = "CommandInput";
|
|
41
|
+
const h = d(function({ className: t, label: e, ...o }, i) {
|
|
42
|
+
const s = p();
|
|
43
|
+
return /* @__PURE__ */ a(
|
|
43
44
|
m.List,
|
|
44
45
|
{
|
|
45
|
-
ref:
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
ref: i,
|
|
47
|
+
label: e ?? s.command.suggestions,
|
|
48
|
+
className: r("max-h-[320px] overflow-y-auto p-1", t),
|
|
49
|
+
...o
|
|
48
50
|
}
|
|
49
51
|
);
|
|
50
52
|
});
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
return /* @__PURE__ */
|
|
53
|
+
h.displayName = "CommandList";
|
|
54
|
+
const v = d(function({ className: t, ...e }, o) {
|
|
55
|
+
return /* @__PURE__ */ a(
|
|
54
56
|
m.Empty,
|
|
55
57
|
{
|
|
56
|
-
ref:
|
|
57
|
-
className: "py-8 text-center text-sm
|
|
58
|
+
ref: o,
|
|
59
|
+
className: r("text-foreground-subtle py-8 text-center text-sm", t),
|
|
58
60
|
...e
|
|
59
61
|
}
|
|
60
62
|
);
|
|
61
63
|
});
|
|
62
|
-
|
|
63
|
-
const
|
|
64
|
-
return /* @__PURE__ */
|
|
64
|
+
v.displayName = "CommandEmpty";
|
|
65
|
+
const N = d(function({ className: t, ...e }, o) {
|
|
66
|
+
return /* @__PURE__ */ a(
|
|
65
67
|
m.Group,
|
|
66
68
|
{
|
|
67
69
|
ref: o,
|
|
68
70
|
className: r(
|
|
69
|
-
"overflow-hidden
|
|
71
|
+
"text-foreground overflow-hidden p-1",
|
|
70
72
|
"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5",
|
|
71
73
|
"[&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",
|
|
72
74
|
"[&_[cmdk-group-heading]]:text-foreground-subtle",
|
|
73
|
-
|
|
75
|
+
t
|
|
74
76
|
),
|
|
75
|
-
...
|
|
77
|
+
...e
|
|
76
78
|
}
|
|
77
79
|
);
|
|
78
80
|
});
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
return /* @__PURE__ */
|
|
82
|
-
m.Separator,
|
|
83
|
-
{
|
|
84
|
-
ref: o,
|
|
85
|
-
className: r("-mx-1 my-1 h-px bg-border", e),
|
|
86
|
-
...t
|
|
87
|
-
}
|
|
88
|
-
);
|
|
81
|
+
N.displayName = "CommandGroup";
|
|
82
|
+
const w = d(function({ className: t, ...e }, o) {
|
|
83
|
+
return /* @__PURE__ */ a(m.Separator, { ref: o, asChild: !0, ...e, children: /* @__PURE__ */ a("div", { role: "none", className: r("bg-border -mx-1 my-1 h-px", t) }) });
|
|
89
84
|
});
|
|
90
|
-
|
|
91
|
-
const
|
|
92
|
-
return /* @__PURE__ */
|
|
85
|
+
w.displayName = "CommandSeparator";
|
|
86
|
+
const k = d(function({ className: t, ...e }, o) {
|
|
87
|
+
return /* @__PURE__ */ a(
|
|
93
88
|
m.Item,
|
|
94
89
|
{
|
|
95
90
|
ref: o,
|
|
96
91
|
className: r(
|
|
97
|
-
"relative flex cursor-default
|
|
92
|
+
"text-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none",
|
|
98
93
|
"data-[selected=true]:bg-background-muted data-[selected=true]:text-foreground",
|
|
99
94
|
"data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",
|
|
100
|
-
"[&_svg]:
|
|
101
|
-
|
|
95
|
+
"[&_svg]:text-foreground-subtle [&_svg]:size-4",
|
|
96
|
+
t
|
|
102
97
|
),
|
|
103
|
-
...
|
|
98
|
+
...e
|
|
104
99
|
}
|
|
105
100
|
);
|
|
106
101
|
});
|
|
107
|
-
|
|
108
|
-
function
|
|
109
|
-
|
|
102
|
+
k.displayName = "CommandItem";
|
|
103
|
+
function S({
|
|
104
|
+
children: n,
|
|
105
|
+
className: t
|
|
106
|
+
}) {
|
|
107
|
+
return /* @__PURE__ */ a(
|
|
110
108
|
"span",
|
|
111
109
|
{
|
|
112
110
|
className: r(
|
|
113
|
-
"ml-auto inline-flex items-center gap-0.5 text-xs tracking-widest
|
|
114
|
-
|
|
111
|
+
"text-foreground-subtle ml-auto inline-flex items-center gap-0.5 font-mono text-xs tracking-widest",
|
|
112
|
+
t
|
|
115
113
|
),
|
|
116
|
-
children:
|
|
114
|
+
children: n
|
|
117
115
|
}
|
|
118
116
|
);
|
|
119
117
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
118
|
+
S.displayName = "CommandShortcut";
|
|
119
|
+
function K({ open: n, onOpenChange: t, children: e, title: o }) {
|
|
120
|
+
const i = p(), s = x(null);
|
|
121
|
+
return /* @__PURE__ */ a(l.Root, { open: n, onOpenChange: t, children: /* @__PURE__ */ u(l.Portal, { children: [
|
|
122
|
+
/* @__PURE__ */ a(
|
|
123
|
+
l.Overlay,
|
|
125
124
|
{
|
|
126
125
|
className: r(
|
|
127
|
-
"fixed inset-0 z-[var(--z-overlay)]
|
|
126
|
+
"bg-overlay fixed inset-0 z-[var(--z-overlay)]",
|
|
128
127
|
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
129
128
|
"data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0"
|
|
130
129
|
)
|
|
131
130
|
}
|
|
132
131
|
),
|
|
133
|
-
/* @__PURE__ */
|
|
134
|
-
|
|
132
|
+
/* @__PURE__ */ u(
|
|
133
|
+
l.Content,
|
|
135
134
|
{
|
|
136
135
|
"aria-describedby": void 0,
|
|
136
|
+
onOpenAutoFocus: () => {
|
|
137
|
+
s.current = document.activeElement;
|
|
138
|
+
},
|
|
139
|
+
onCloseAutoFocus: (g) => {
|
|
140
|
+
var c;
|
|
141
|
+
g.preventDefault(), (c = s.current) == null || c.focus(), s.current = null;
|
|
142
|
+
},
|
|
137
143
|
className: r(
|
|
138
|
-
"fixed
|
|
144
|
+
"fixed top-[20%] left-1/2 z-[var(--z-modal)] -translate-x-1/2",
|
|
139
145
|
"w-[calc(100%-2rem)] max-w-[640px] overflow-hidden",
|
|
140
|
-
"
|
|
146
|
+
"border-border bg-popover text-popover-foreground rounded-lg border shadow-lg",
|
|
141
147
|
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
142
148
|
"data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
|
|
143
149
|
"data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95"
|
|
144
150
|
),
|
|
145
151
|
children: [
|
|
146
|
-
/* @__PURE__ */
|
|
147
|
-
/* @__PURE__ */
|
|
152
|
+
/* @__PURE__ */ a(l.Title, { className: "sr-only", children: o ?? i.commandDialog.title }),
|
|
153
|
+
/* @__PURE__ */ a(f, { children: e })
|
|
148
154
|
]
|
|
149
155
|
}
|
|
150
156
|
)
|
|
151
157
|
] }) });
|
|
152
158
|
}
|
|
153
|
-
function
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
s.key === "k" && (s.metaKey || s.ctrlKey) && (s.preventDefault(), a(!0), t((c) => c + 1));
|
|
159
|
+
function G(n) {
|
|
160
|
+
y(() => {
|
|
161
|
+
const t = (e) => {
|
|
162
|
+
(e.key === "k" || e.key === "K") && (e.metaKey || e.ctrlKey) && !e.altKey && (e.preventDefault(), n((o) => !o));
|
|
158
163
|
};
|
|
159
|
-
return window.addEventListener("keydown",
|
|
160
|
-
}, [
|
|
164
|
+
return window.addEventListener("keydown", t), () => window.removeEventListener("keydown", t);
|
|
165
|
+
}, [n]);
|
|
161
166
|
}
|
|
162
167
|
export {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
168
|
+
f as Command,
|
|
169
|
+
K as CommandDialog,
|
|
170
|
+
v as CommandEmpty,
|
|
171
|
+
N as CommandGroup,
|
|
172
|
+
b as CommandInput,
|
|
173
|
+
k as CommandItem,
|
|
174
|
+
h as CommandList,
|
|
175
|
+
w as CommandSeparator,
|
|
176
|
+
S as CommandShortcut,
|
|
177
|
+
G as useCommandPaletteShortcut
|
|
173
178
|
};
|
|
174
179
|
//# sourceMappingURL=CommandPalette.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandPalette.js","sources":["../../../src/components/ui/CommandPalette.tsx"],"sourcesContent":["'use client';\n\nimport {\n forwardRef,\n useEffect,\n useState,\n type ComponentPropsWithoutRef,\n type ElementRef,\n type ReactNode,\n} from 'react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { Search } from '@/icons';\nimport { cn } from '@/lib/utils';\nimport { useStrings } from '@/hooks/use-strings';\n\n/* -----------------------------------------------------------------------------\n * CommandPalette is a Dialog hosting a `cmdk` Command. It supports grouped\n * items, keyboard navigation (handled by cmdk), an empty state, and a\n * pluggable list of \"recent\" items shown when the search input is empty.\n * --------------------------------------------------------------------------- */\n\nexport const Command = forwardRef<\n ElementRef<typeof CommandPrimitive>,\n ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(function Command({ className, ...props }, ref) {\n return (\n <CommandPrimitive\n ref={ref}\n className={cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-lg bg-popover text-popover-foreground',\n className,\n )}\n {...props}\n />\n );\n});\nCommand.displayName = 'Command';\n\nexport const CommandInput = forwardRef<\n ElementRef<typeof CommandPrimitive.Input>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(function CommandInput({ className, ...props }, ref) {\n return (\n <div className=\"flex items-center gap-2 border-b border-border px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"size-4 shrink-0 text-foreground-subtle\" aria-hidden />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-11 w-full bg-transparent py-3 text-sm outline-none',\n 'placeholder:text-foreground-subtle disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n );\n});\nCommandInput.displayName = 'CommandInput';\n\nexport const CommandList = forwardRef<\n ElementRef<typeof CommandPrimitive.List>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(function CommandList({ className, ...props }, ref) {\n return (\n <CommandPrimitive.List\n ref={ref}\n className={cn('max-h-[320px] overflow-y-auto p-1', className)}\n {...props}\n />\n );\n});\nCommandList.displayName = 'CommandList';\n\nexport const CommandEmpty = forwardRef<\n ElementRef<typeof CommandPrimitive.Empty>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>(function CommandEmpty(props, ref) {\n return (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-8 text-center text-sm text-foreground-subtle\"\n {...props}\n />\n );\n});\nCommandEmpty.displayName = 'CommandEmpty';\n\nexport const CommandGroup = forwardRef<\n ElementRef<typeof CommandPrimitive.Group>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(function CommandGroup({ className, ...props }, ref) {\n return (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'overflow-hidden text-foreground p-1',\n '[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5',\n '[&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',\n '[&_[cmdk-group-heading]]:text-foreground-subtle',\n className,\n )}\n {...props}\n />\n );\n});\nCommandGroup.displayName = 'CommandGroup';\n\nexport const CommandSeparator = forwardRef<\n ElementRef<typeof CommandPrimitive.Separator>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(function CommandSeparator({ className, ...props }, ref) {\n return (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n );\n});\nCommandSeparator.displayName = 'CommandSeparator';\n\nexport const CommandItem = forwardRef<\n ElementRef<typeof CommandPrimitive.Item>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(function CommandItem({ className, ...props }, ref) {\n return (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm text-foreground outline-none',\n 'data-[selected=true]:bg-background-muted data-[selected=true]:text-foreground',\n 'data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50',\n '[&_svg]:size-4 [&_svg]:text-foreground-subtle',\n className,\n )}\n {...props}\n />\n );\n});\nCommandItem.displayName = 'CommandItem';\n\nexport function CommandShortcut({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <span\n className={cn(\n 'ml-auto inline-flex items-center gap-0.5 text-xs tracking-widest text-foreground-subtle font-mono',\n className,\n )}\n >\n {children}\n </span>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Dialog wrapper — a ready-to-use ⌘K palette.\n * --------------------------------------------------------------------------- */\n\nexport interface CommandDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n children: ReactNode;\n /** Visible label for screen readers. */\n title?: string;\n}\n\nexport function CommandDialog({ open, onOpenChange, children, title }: CommandDialogProps) {\n const strings = useStrings();\n return (\n <DialogPrimitive.Root open={open} onOpenChange={onOpenChange}>\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-[var(--z-overlay)] bg-overlay',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0',\n )}\n />\n <DialogPrimitive.Content\n aria-describedby={undefined}\n className={cn(\n 'fixed left-1/2 top-[20%] z-[var(--z-modal)] -translate-x-1/2',\n 'w-[calc(100%-2rem)] max-w-[640px] overflow-hidden',\n 'rounded-lg border border-border bg-popover text-popover-foreground shadow-lg',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0',\n 'data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95',\n )}\n >\n <DialogPrimitive.Title className=\"sr-only\">\n {title ?? strings.commandDialog.title}\n </DialogPrimitive.Title>\n <Command>{children}</Command>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n );\n}\n\n/**\n * Hook that wires ⌘K / Ctrl+K to a setter — the canonical way to mount the\n * palette in an app shell.\n *\n * @example\n * const [open, setOpen] = useState(false);\n * useCommandPaletteShortcut(setOpen);\n * …\n * <CommandDialog open={open} onOpenChange={setOpen}>\n * <CommandInput placeholder=\"Type a command…\" />\n * <CommandList>\n * <CommandEmpty>No results.</CommandEmpty>\n * <CommandGroup heading=\"Suggestions\">\n * <CommandItem>Create project</CommandItem>\n * <CommandItem>Invite teammate</CommandItem>\n * </CommandGroup>\n * </CommandList>\n * </CommandDialog>\n *\n * @do Group items by category. Show \"Recent\" first when the query is empty.\n * @dont Hide essential actions behind the palette only — keep at least one\n * button entry in the UI.\n */\nexport function useCommandPaletteShortcut(setOpen: (open: boolean) => void): void {\n const [_, force] = useState(0);\n useEffect(() => {\n const onKey = (e: KeyboardEvent) => {\n if (e.key === 'k' && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n setOpen(true);\n force((n) => n + 1);\n }\n };\n window.addEventListener('keydown', onKey);\n return () => window.removeEventListener('keydown', onKey);\n }, [setOpen]);\n}\n"],"names":["Command","forwardRef","className","props","ref","jsx","CommandPrimitive","cn","CommandInput","jsxs","Search","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut","children","CommandDialog","open","onOpenChange","title","strings","useStrings","DialogPrimitive","useCommandPaletteShortcut","setOpen","_","force","useState","useEffect","onKey","e","n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CommandPalette.js","sources":["../../../src/components/ui/CommandPalette.tsx"],"sourcesContent":["'use client';\n\nimport {\n forwardRef,\n useEffect,\n useRef,\n type ComponentPropsWithoutRef,\n type Dispatch,\n type ElementRef,\n type ReactNode,\n type SetStateAction,\n} from 'react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { Search } from '@/icons';\nimport { cn } from '@/lib/utils';\nimport { useStrings } from '@/hooks/use-strings';\n\n/* -----------------------------------------------------------------------------\n * CommandPalette is a Dialog hosting a `cmdk` Command. It supports grouped\n * items, keyboard navigation (handled by cmdk), an empty state, and a\n * pluggable list of \"recent\" items shown when the search input is empty.\n * --------------------------------------------------------------------------- */\n\nexport const Command = forwardRef<\n ElementRef<typeof CommandPrimitive>,\n ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(function Command({ className, ...props }, ref) {\n return (\n <CommandPrimitive\n ref={ref}\n className={cn(\n 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-lg',\n className,\n )}\n {...props}\n />\n );\n});\nCommand.displayName = 'Command';\n\nexport const CommandInput = forwardRef<\n ElementRef<typeof CommandPrimitive.Input>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(function CommandInput({ className, ...props }, ref) {\n return (\n <div className=\"border-border flex items-center gap-2 border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"text-foreground-subtle size-4 shrink-0\" aria-hidden />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-11 w-full bg-transparent py-3 text-lg outline-none md:text-sm',\n 'placeholder:text-foreground-subtle disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n );\n});\nCommandInput.displayName = 'CommandInput';\n\nexport const CommandList = forwardRef<\n ElementRef<typeof CommandPrimitive.List>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(function CommandList({ className, label, ...props }, ref) {\n const strings = useStrings();\n return (\n <CommandPrimitive.List\n ref={ref}\n label={label ?? strings.command.suggestions}\n className={cn('max-h-[320px] overflow-y-auto p-1', className)}\n {...props}\n />\n );\n});\nCommandList.displayName = 'CommandList';\n\nexport const CommandEmpty = forwardRef<\n ElementRef<typeof CommandPrimitive.Empty>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>(function CommandEmpty({ className, ...props }, ref) {\n return (\n <CommandPrimitive.Empty\n ref={ref}\n className={cn('text-foreground-subtle py-8 text-center text-sm', className)}\n {...props}\n />\n );\n});\nCommandEmpty.displayName = 'CommandEmpty';\n\nexport const CommandGroup = forwardRef<\n ElementRef<typeof CommandPrimitive.Group>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(function CommandGroup({ className, ...props }, ref) {\n return (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'text-foreground overflow-hidden p-1',\n '[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5',\n '[&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',\n '[&_[cmdk-group-heading]]:text-foreground-subtle',\n className,\n )}\n {...props}\n />\n );\n});\nCommandGroup.displayName = 'CommandGroup';\n\nexport const CommandSeparator = forwardRef<\n ElementRef<typeof CommandPrimitive.Separator>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(function CommandSeparator({ className, ...props }, ref) {\n // cmdk hard-codes role=\"separator\", which is not a permitted child of the\n // listbox. asChild lets the child's role win: the divider is purely visual.\n return (\n <CommandPrimitive.Separator ref={ref} asChild {...props}>\n <div role=\"none\" className={cn('bg-border -mx-1 my-1 h-px', className)} />\n </CommandPrimitive.Separator>\n );\n});\nCommandSeparator.displayName = 'CommandSeparator';\n\nexport const CommandItem = forwardRef<\n ElementRef<typeof CommandPrimitive.Item>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(function CommandItem({ className, ...props }, ref) {\n return (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n 'text-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none',\n 'data-[selected=true]:bg-background-muted data-[selected=true]:text-foreground',\n 'data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50',\n '[&_svg]:text-foreground-subtle [&_svg]:size-4',\n className,\n )}\n {...props}\n />\n );\n});\nCommandItem.displayName = 'CommandItem';\n\nexport function CommandShortcut({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) {\n return (\n <span\n className={cn(\n 'text-foreground-subtle ml-auto inline-flex items-center gap-0.5 font-mono text-xs tracking-widest',\n className,\n )}\n >\n {children}\n </span>\n );\n}\nCommandShortcut.displayName = 'CommandShortcut';\n\n/* -----------------------------------------------------------------------------\n * Dialog wrapper — a ready-to-use ⌘K palette.\n * --------------------------------------------------------------------------- */\n\nexport interface CommandDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n children: ReactNode;\n /** Visible label for screen readers. */\n title?: string;\n}\n\nexport function CommandDialog({ open, onOpenChange, children, title }: CommandDialogProps) {\n const strings = useStrings();\n // The palette has no DialogTrigger (⌘K / any button opens it), so Radix has\n // no trigger to return focus to and would drop it on <body>. Remember what\n // was focused when the dialog opened and restore it on close.\n const returnFocusRef = useRef<HTMLElement | null>(null);\n return (\n <DialogPrimitive.Root open={open} onOpenChange={onOpenChange}>\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay\n className={cn(\n 'bg-overlay fixed inset-0 z-[var(--z-overlay)]',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0',\n )}\n />\n <DialogPrimitive.Content\n aria-describedby={undefined}\n onOpenAutoFocus={() => {\n returnFocusRef.current = document.activeElement as HTMLElement | null;\n }}\n onCloseAutoFocus={(event) => {\n event.preventDefault();\n returnFocusRef.current?.focus();\n returnFocusRef.current = null;\n }}\n className={cn(\n 'fixed top-[20%] left-1/2 z-[var(--z-modal)] -translate-x-1/2',\n 'w-[calc(100%-2rem)] max-w-[640px] overflow-hidden',\n 'border-border bg-popover text-popover-foreground rounded-lg border shadow-lg',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0',\n 'data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95',\n )}\n >\n <DialogPrimitive.Title className=\"sr-only\">\n {title ?? strings.commandDialog.title}\n </DialogPrimitive.Title>\n <Command>{children}</Command>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n );\n}\n\n/**\n * Hook that wires ⌘K / Ctrl+K to a setter — the canonical way to mount the\n * palette in an app shell.\n *\n * @example\n * const [open, setOpen] = useState(false);\n * useCommandPaletteShortcut(setOpen);\n * …\n * <CommandDialog open={open} onOpenChange={setOpen}>\n * <CommandInput placeholder=\"Type a command…\" />\n * <CommandList>\n * <CommandEmpty>No results.</CommandEmpty>\n * <CommandGroup heading=\"Suggestions\">\n * <CommandItem>Create project</CommandItem>\n * <CommandItem>Invite teammate</CommandItem>\n * </CommandGroup>\n * </CommandList>\n * </CommandDialog>\n *\n * @do Group items by category. Show \"Recent\" first when the query is empty.\n * @dont Hide essential actions behind the palette only — keep at least one\n * button entry in the UI.\n */\nexport function useCommandPaletteShortcut(setOpen: Dispatch<SetStateAction<boolean>>): void {\n useEffect(() => {\n const onKey = (e: KeyboardEvent) => {\n if ((e.key === 'k' || e.key === 'K') && (e.metaKey || e.ctrlKey) && !e.altKey) {\n e.preventDefault();\n // Functional update: ⌘K toggles without the hook tracking open state.\n setOpen((prev) => !prev);\n }\n };\n window.addEventListener('keydown', onKey);\n return () => window.removeEventListener('keydown', onKey);\n }, [setOpen]);\n}\n"],"names":["Command","forwardRef","className","props","ref","jsx","CommandPrimitive","cn","CommandInput","jsxs","Search","CommandList","label","strings","useStrings","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut","children","CommandDialog","open","onOpenChange","title","returnFocusRef","useRef","DialogPrimitive","event","_a","useCommandPaletteShortcut","setOpen","useEffect","onKey","prev"],"mappings":"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"}
|
|
@@ -29,15 +29,20 @@ export declare const ContextMenuGroup: import('react').ForwardRefExoticComponent
|
|
|
29
29
|
export declare const ContextMenuPortal: import('react').FC<ContextMenuPrimitive.ContextMenuPortalProps>;
|
|
30
30
|
export declare const ContextMenuSub: import('react').FC<ContextMenuPrimitive.ContextMenuSubProps>;
|
|
31
31
|
export declare const ContextMenuRadioGroup: import('react').ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuRadioGroupProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
32
|
-
export declare const ContextMenuSubTrigger: import('react').ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubTriggerProps & import('react').RefAttributes<HTMLDivElement>, "ref"> &
|
|
32
|
+
export declare const ContextMenuSubTrigger: import('react').ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubTriggerProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & {
|
|
33
|
+
inset?: boolean;
|
|
34
|
+
} & import('react').RefAttributes<HTMLDivElement>>;
|
|
33
35
|
export declare const ContextMenuSubContent: import('react').ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubContentProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
34
36
|
export declare const ContextMenuContent: import('react').ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuContentProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
35
37
|
export declare const ContextMenuItem: import('react').ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuItemProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & {
|
|
38
|
+
inset?: boolean;
|
|
36
39
|
destructive?: boolean;
|
|
37
40
|
} & import('react').RefAttributes<HTMLDivElement>>;
|
|
38
41
|
export declare const ContextMenuCheckboxItem: import('react').ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuCheckboxItemProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
39
42
|
export declare const ContextMenuRadioItem: import('react').ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuRadioItemProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
40
|
-
export declare const ContextMenuLabel: import('react').ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuLabelProps & import('react').RefAttributes<HTMLDivElement>, "ref"> &
|
|
43
|
+
export declare const ContextMenuLabel: import('react').ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuLabelProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & {
|
|
44
|
+
inset?: boolean;
|
|
45
|
+
} & import('react').RefAttributes<HTMLDivElement>>;
|
|
41
46
|
export declare const ContextMenuSeparator: import('react').ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSeparatorProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
42
47
|
export declare function ContextMenuShortcut({ className, ...props }: HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
|
|
43
48
|
export declare namespace ContextMenuShortcut {
|
|
@@ -1,51 +1,61 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsxs as
|
|
3
|
-
import { forwardRef as
|
|
2
|
+
import { jsxs as l, jsx as a } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef as u } from "react";
|
|
4
4
|
import * as t from "@radix-ui/react-context-menu";
|
|
5
|
-
import { Check as
|
|
5
|
+
import { Check as m, Circle as x, ChevronRight as p } from "../../icons/index.js";
|
|
6
6
|
import { cn as r } from "../../lib/utils.js";
|
|
7
|
-
const
|
|
7
|
+
const w = t.Root, T = t.Trigger, j = t.Group, C = t.Portal, G = t.Sub, L = t.RadioGroup, i = r(
|
|
8
8
|
"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm text-foreground outline-none",
|
|
9
9
|
"data-[highlighted]:bg-background-muted data-[highlighted]:text-foreground",
|
|
10
|
-
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
11
|
+
"transition-colors duration-[var(--duration-fast)]"
|
|
12
|
+
), g = u(function({ className: e, inset: n, children: o, ...d }, c) {
|
|
13
|
+
return /* @__PURE__ */ l(
|
|
13
14
|
t.SubTrigger,
|
|
14
15
|
{
|
|
15
|
-
ref:
|
|
16
|
-
className: r(
|
|
17
|
-
|
|
16
|
+
ref: c,
|
|
17
|
+
className: r(
|
|
18
|
+
i,
|
|
19
|
+
"data-[state=open]:bg-background-muted",
|
|
20
|
+
n && "pl-8",
|
|
21
|
+
e
|
|
22
|
+
),
|
|
23
|
+
...d,
|
|
18
24
|
children: [
|
|
19
|
-
|
|
20
|
-
/* @__PURE__ */ a(
|
|
25
|
+
o,
|
|
26
|
+
/* @__PURE__ */ a(p, { className: "text-foreground-subtle ml-auto size-4", "aria-hidden": !0 })
|
|
21
27
|
]
|
|
22
28
|
}
|
|
23
29
|
);
|
|
24
30
|
});
|
|
25
|
-
|
|
26
|
-
const
|
|
31
|
+
g.displayName = "ContextMenuSubTrigger";
|
|
32
|
+
const f = u(function({ className: e, ...n }, o) {
|
|
27
33
|
return /* @__PURE__ */ a(
|
|
28
34
|
t.SubContent,
|
|
29
35
|
{
|
|
30
36
|
ref: o,
|
|
31
37
|
className: r(
|
|
32
|
-
"z-[var(--z-popover)] min-w-[8rem] overflow-hidden rounded-lg border
|
|
38
|
+
"border-border bg-popover text-popover-foreground z-[var(--z-popover)] min-w-[8rem] overflow-hidden rounded-lg border p-1 shadow-md",
|
|
39
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
40
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
41
|
+
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
33
42
|
e
|
|
34
43
|
),
|
|
35
44
|
...n
|
|
36
45
|
}
|
|
37
46
|
);
|
|
38
47
|
});
|
|
39
|
-
|
|
40
|
-
const b =
|
|
41
|
-
return /* @__PURE__ */ a(
|
|
48
|
+
f.displayName = "ContextMenuSubContent";
|
|
49
|
+
const b = u(function({ className: e, ...n }, o) {
|
|
50
|
+
return /* @__PURE__ */ a(C, { children: /* @__PURE__ */ a(
|
|
42
51
|
t.Content,
|
|
43
52
|
{
|
|
44
53
|
ref: o,
|
|
45
54
|
className: r(
|
|
46
|
-
"z-[var(--z-popover)] min-w-[12rem] overflow-hidden rounded-lg border
|
|
55
|
+
"border-border bg-popover text-popover-foreground z-[var(--z-popover)] min-w-[12rem] overflow-hidden rounded-lg border p-1 shadow-md",
|
|
47
56
|
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
48
57
|
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
58
|
+
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
49
59
|
e
|
|
50
60
|
),
|
|
51
61
|
...n
|
|
@@ -53,98 +63,103 @@ const b = s(function({ className: e, ...n }, o) {
|
|
|
53
63
|
) });
|
|
54
64
|
});
|
|
55
65
|
b.displayName = "ContextMenuContent";
|
|
56
|
-
const
|
|
66
|
+
const h = u(function({ className: e, inset: n, destructive: o, ...d }, c) {
|
|
57
67
|
return /* @__PURE__ */ a(
|
|
58
68
|
t.Item,
|
|
59
69
|
{
|
|
60
|
-
ref:
|
|
70
|
+
ref: c,
|
|
61
71
|
className: r(
|
|
62
|
-
|
|
63
|
-
n && "
|
|
72
|
+
i,
|
|
73
|
+
n && "pl-8",
|
|
74
|
+
o && "text-danger-text data-[highlighted]:bg-danger-soft data-[highlighted]:text-danger-text",
|
|
64
75
|
e
|
|
65
76
|
),
|
|
66
|
-
...
|
|
77
|
+
...d
|
|
67
78
|
}
|
|
68
79
|
);
|
|
69
80
|
});
|
|
70
|
-
|
|
71
|
-
const
|
|
72
|
-
return /* @__PURE__ */
|
|
81
|
+
h.displayName = "ContextMenuItem";
|
|
82
|
+
const M = u(function({ className: e, children: n, ...o }, d) {
|
|
83
|
+
return /* @__PURE__ */ l(
|
|
73
84
|
t.CheckboxItem,
|
|
74
85
|
{
|
|
75
|
-
ref:
|
|
76
|
-
className: r(
|
|
86
|
+
ref: d,
|
|
87
|
+
className: r(i, "pl-8", e),
|
|
77
88
|
...o,
|
|
78
89
|
children: [
|
|
79
|
-
/* @__PURE__ */ a("span", { className: "absolute left-2 flex size-4 items-center justify-center", children: /* @__PURE__ */ a(t.ItemIndicator, { children: /* @__PURE__ */ a(
|
|
90
|
+
/* @__PURE__ */ a("span", { className: "absolute left-2 flex size-4 items-center justify-center", children: /* @__PURE__ */ a(t.ItemIndicator, { children: /* @__PURE__ */ a(m, { className: "text-accent size-4", "aria-hidden": !0 }) }) }),
|
|
80
91
|
n
|
|
81
92
|
]
|
|
82
93
|
}
|
|
83
94
|
);
|
|
84
95
|
});
|
|
85
|
-
|
|
86
|
-
const
|
|
87
|
-
return /* @__PURE__ */
|
|
96
|
+
M.displayName = "ContextMenuCheckboxItem";
|
|
97
|
+
const N = u(function({ className: e, children: n, ...o }, d) {
|
|
98
|
+
return /* @__PURE__ */ l(
|
|
88
99
|
t.RadioItem,
|
|
89
100
|
{
|
|
90
|
-
ref:
|
|
91
|
-
className: r(
|
|
101
|
+
ref: d,
|
|
102
|
+
className: r(i, "pl-8", e),
|
|
92
103
|
...o,
|
|
93
104
|
children: [
|
|
94
|
-
/* @__PURE__ */ a("span", { className: "absolute left-2 flex size-4 items-center justify-center", children: /* @__PURE__ */ a(t.ItemIndicator, { children: /* @__PURE__ */ a(
|
|
105
|
+
/* @__PURE__ */ a("span", { className: "absolute left-2 flex size-4 items-center justify-center", children: /* @__PURE__ */ a(t.ItemIndicator, { children: /* @__PURE__ */ a(x, { className: "fill-accent text-accent size-2", "aria-hidden": !0 }) }) }),
|
|
95
106
|
n
|
|
96
107
|
]
|
|
97
108
|
}
|
|
98
109
|
);
|
|
99
110
|
});
|
|
100
|
-
|
|
101
|
-
const
|
|
111
|
+
N.displayName = "ContextMenuRadioItem";
|
|
112
|
+
const I = u(function({ className: e, inset: n, ...o }, d) {
|
|
102
113
|
return /* @__PURE__ */ a(
|
|
103
114
|
t.Label,
|
|
104
115
|
{
|
|
105
|
-
ref:
|
|
106
|
-
className: r(
|
|
107
|
-
|
|
116
|
+
ref: d,
|
|
117
|
+
className: r(
|
|
118
|
+
"text-foreground-subtle px-2 py-1.5 text-xs font-medium",
|
|
119
|
+
n && "pl-8",
|
|
120
|
+
e
|
|
121
|
+
),
|
|
122
|
+
...o
|
|
108
123
|
}
|
|
109
124
|
);
|
|
110
125
|
});
|
|
111
|
-
|
|
112
|
-
const
|
|
126
|
+
I.displayName = "ContextMenuLabel";
|
|
127
|
+
const S = u(function({ className: e, ...n }, o) {
|
|
113
128
|
return /* @__PURE__ */ a(
|
|
114
129
|
t.Separator,
|
|
115
130
|
{
|
|
116
131
|
ref: o,
|
|
117
|
-
className: r("-mx-1 my-1 h-px
|
|
132
|
+
className: r("bg-border -mx-1 my-1 h-px", e),
|
|
118
133
|
...n
|
|
119
134
|
}
|
|
120
135
|
);
|
|
121
136
|
});
|
|
122
|
-
|
|
123
|
-
function
|
|
137
|
+
S.displayName = "ContextMenuSeparator";
|
|
138
|
+
function v({ className: s, ...e }) {
|
|
124
139
|
return /* @__PURE__ */ a(
|
|
125
140
|
"span",
|
|
126
141
|
{
|
|
127
|
-
className: r("ml-auto text-xs tracking-widest
|
|
142
|
+
className: r("text-foreground-subtle ml-auto font-mono text-xs tracking-widest", s),
|
|
128
143
|
...e
|
|
129
144
|
}
|
|
130
145
|
);
|
|
131
146
|
}
|
|
132
|
-
|
|
147
|
+
v.displayName = "ContextMenuShortcut";
|
|
133
148
|
export {
|
|
134
|
-
|
|
135
|
-
|
|
149
|
+
w as ContextMenu,
|
|
150
|
+
M as ContextMenuCheckboxItem,
|
|
136
151
|
b as ContextMenuContent,
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
152
|
+
j as ContextMenuGroup,
|
|
153
|
+
h as ContextMenuItem,
|
|
154
|
+
I as ContextMenuLabel,
|
|
155
|
+
C as ContextMenuPortal,
|
|
156
|
+
L as ContextMenuRadioGroup,
|
|
157
|
+
N as ContextMenuRadioItem,
|
|
158
|
+
S as ContextMenuSeparator,
|
|
159
|
+
v as ContextMenuShortcut,
|
|
160
|
+
G as ContextMenuSub,
|
|
161
|
+
f as ContextMenuSubContent,
|
|
162
|
+
g as ContextMenuSubTrigger,
|
|
163
|
+
T as ContextMenuTrigger
|
|
149
164
|
};
|
|
150
165
|
//# sourceMappingURL=ContextMenu.js.map
|