@egose/shadcn-theme 0.1.5 → 0.1.7
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/chunk-2NUE7GJ3.js +44 -0
- package/chunk-2NUE7GJ3.js.map +1 -0
- package/chunk-3PZY5HRH.mjs +82 -0
- package/chunk-3PZY5HRH.mjs.map +1 -0
- package/{components/ui/extension/multi-select.js → chunk-3TG6ZVFG.js} +63 -62
- package/chunk-3TG6ZVFG.js.map +1 -0
- package/{chunk-UQJ4A4H2.mjs → chunk-4IDPSNL3.mjs} +2 -2
- package/{chunk-GAJQQPUC.mjs → chunk-5CBMRDT7.mjs} +3 -3
- package/{components/ui/extension/multi-select.mjs → chunk-7JYFZETL.mjs} +64 -63
- package/chunk-7JYFZETL.mjs.map +1 -0
- package/{chunk-FCE22MQI.js → chunk-AQIBLBXW.js} +9 -9
- package/{chunk-FCE22MQI.js.map → chunk-AQIBLBXW.js.map} +1 -1
- package/{chunk-6C4NHVD6.js → chunk-BMAIJZN6.js} +3 -2
- package/chunk-BMAIJZN6.js.map +1 -0
- package/{chunk-S3CRUBGL.mjs → chunk-CNYC22IA.mjs} +2 -2
- package/{chunk-E5TF7QLI.mjs → chunk-D6YGFMSG.mjs} +5 -5
- package/{chunk-WHQINNUB.js → chunk-FOEQYO2Q.js} +5 -5
- package/{chunk-WHQINNUB.js.map → chunk-FOEQYO2Q.js.map} +1 -1
- package/chunk-FSU3BKPK.js +130 -0
- package/chunk-FSU3BKPK.js.map +1 -0
- package/{chunk-3ZN766EW.js → chunk-G6WKPZTL.js} +3 -3
- package/{chunk-3ZN766EW.js.map → chunk-G6WKPZTL.js.map} +1 -1
- package/chunk-IQIHYWXX.js +83 -0
- package/chunk-IQIHYWXX.js.map +1 -0
- package/{chunk-AJLAS62X.js → chunk-LAIO3QZX.js} +4 -4
- package/{chunk-AJLAS62X.js.map → chunk-LAIO3QZX.js.map} +1 -1
- package/{chunk-MJT6B7OJ.js → chunk-LPDYWZN6.js} +3 -3
- package/{chunk-MJT6B7OJ.js.map → chunk-LPDYWZN6.js.map} +1 -1
- package/{chunk-KO4TIQLS.mjs → chunk-M6UKU56L.mjs} +2 -1
- package/chunk-M6UKU56L.mjs.map +1 -0
- package/{chunk-Y6CUGIQB.js → chunk-NRCL342G.js} +9 -9
- package/{chunk-Y6CUGIQB.js.map → chunk-NRCL342G.js.map} +1 -1
- package/{chunk-4I6SLZWT.mjs → chunk-O6PHWGJH.mjs} +2 -1
- package/chunk-O6PHWGJH.mjs.map +1 -0
- package/{chunk-KUD4Z2MZ.mjs → chunk-P4DW3EEW.mjs} +2 -2
- package/{chunk-WREXRSAA.js → chunk-P4EDRIBH.js} +4 -4
- package/{chunk-WREXRSAA.js.map → chunk-P4EDRIBH.js.map} +1 -1
- package/{chunk-432PQWGO.mjs → chunk-RJVQU443.mjs} +2 -2
- package/{chunk-2UTAR6ZA.js → chunk-SC6IX6NJ.js} +3 -2
- package/chunk-SC6IX6NJ.js.map +1 -0
- package/chunk-USW6AILM.mjs +43 -0
- package/chunk-USW6AILM.mjs.map +1 -0
- package/{chunk-SLADFPSL.js → chunk-VBPJD7U3.js} +5 -5
- package/{chunk-SLADFPSL.js.map → chunk-VBPJD7U3.js.map} +1 -1
- package/{chunk-HKZRXGJ7.mjs → chunk-YDRPNCWF.mjs} +4 -4
- package/{chunk-ZMMYQNQV.mjs → chunk-ZFBUIBJH.mjs} +2 -2
- package/chunk-ZQK6REIM.mjs +129 -0
- package/chunk-ZQK6REIM.mjs.map +1 -0
- package/components/form/hook-multi-select.d.mts +14 -0
- package/components/form/hook-multi-select.d.ts +14 -0
- package/components/form/hook-multi-select.js +76 -0
- package/components/form/hook-multi-select.js.map +1 -0
- package/components/form/hook-multi-select.mjs +75 -0
- package/components/form/hook-multi-select.mjs.map +1 -0
- package/components/form/hook-searchable-select.js +5 -5
- package/components/form/hook-searchable-select.mjs +4 -4
- package/components/form/hook-tag-picker.d.mts +12 -0
- package/components/form/hook-tag-picker.d.ts +12 -0
- package/components/form/hook-tag-picker.js +66 -0
- package/components/form/hook-tag-picker.js.map +1 -0
- package/components/form/hook-tag-picker.mjs +65 -0
- package/components/form/hook-tag-picker.mjs.map +1 -0
- package/components/form/multi-select.d.mts +25 -1
- package/components/form/multi-select.d.ts +25 -1
- package/components/form/multi-select.js +20 -1
- package/components/form/multi-select.js.map +1 -1
- package/components/form/multi-select.mjs +19 -0
- package/components/form/searchable-select.js +5 -5
- package/components/form/searchable-select.mjs +4 -4
- package/components/form/tag-picker.d.mts +21 -0
- package/components/form/tag-picker.d.ts +21 -0
- package/components/form/tag-picker.js +14 -0
- package/components/form/tag-picker.js.map +1 -0
- package/components/form/tag-picker.mjs +13 -0
- package/components/form/tag-picker.mjs.map +1 -0
- package/components/ui/aspect-ratio.d.mts +2 -2
- package/components/ui/aspect-ratio.d.ts +2 -2
- package/components/ui/aspect-ratio.js +2 -1
- package/components/ui/aspect-ratio.js.map +1 -1
- package/components/ui/aspect-ratio.mjs +1 -0
- package/components/ui/aspect-ratio.mjs.map +1 -1
- package/components/ui/button-group.d.mts +4 -4
- package/components/ui/button-group.d.ts +4 -4
- package/components/ui/button-group.js +2 -1
- package/components/ui/button-group.js.map +1 -1
- package/components/ui/button-group.mjs +1 -0
- package/components/ui/button-group.mjs.map +1 -1
- package/components/ui/collapsible.d.mts +4 -4
- package/components/ui/collapsible.d.ts +4 -4
- package/components/ui/collapsible.js +2 -2
- package/components/ui/collapsible.mjs +1 -1
- package/components/ui/combobox.js +5 -5
- package/components/ui/combobox.mjs +2 -2
- package/components/ui/command.js +4 -4
- package/components/ui/command.mjs +3 -3
- package/components/ui/copy-button.d.mts +3 -3
- package/components/ui/copy-button.d.ts +3 -3
- package/components/ui/copy-button.js +12 -12
- package/components/ui/copy-button.js.map +1 -1
- package/components/ui/copy-button.mjs +2 -2
- package/components/ui/copy-button.mjs.map +1 -1
- package/components/ui/empty.d.mts +7 -7
- package/components/ui/empty.d.ts +7 -7
- package/components/ui/empty.js +2 -1
- package/components/ui/empty.js.map +1 -1
- package/components/ui/empty.mjs +1 -0
- package/components/ui/empty.mjs.map +1 -1
- package/components/ui/field.d.mts +11 -11
- package/components/ui/field.d.ts +11 -11
- package/components/ui/field.js +3 -3
- package/components/ui/field.js.map +1 -1
- package/components/ui/field.mjs +2 -2
- package/components/ui/field.mjs.map +1 -1
- package/components/ui/input-group.js +3 -3
- package/components/ui/input-group.mjs +2 -2
- package/components/ui/kbd.d.mts +3 -3
- package/components/ui/kbd.d.ts +3 -3
- package/components/ui/kbd.js +2 -1
- package/components/ui/kbd.js.map +1 -1
- package/components/ui/kbd.mjs +1 -0
- package/components/ui/kbd.mjs.map +1 -1
- package/components/ui/{extension/multi-select.d.mts → multi-select.d.mts} +4 -3
- package/components/ui/{extension/multi-select.d.ts → multi-select.d.ts} +4 -3
- package/components/ui/multi-select.js +29 -0
- package/components/ui/multi-select.js.map +1 -0
- package/components/ui/multi-select.mjs +28 -0
- package/components/ui/multi-select.mjs.map +1 -0
- package/components/ui/native-select.d.mts +4 -4
- package/components/ui/native-select.d.ts +4 -4
- package/components/ui/native-select.js +2 -1
- package/components/ui/native-select.js.map +1 -1
- package/components/ui/native-select.mjs +1 -0
- package/components/ui/native-select.mjs.map +1 -1
- package/components/ui/resizable.js +1 -0
- package/components/ui/resizable.js.map +1 -1
- package/components/ui/resizable.mjs +1 -0
- package/components/ui/resizable.mjs.map +1 -1
- package/components/ui/sidebar.js +3 -3
- package/components/ui/sidebar.mjs +2 -2
- package/components/ui/skeleton.d.mts +2 -2
- package/components/ui/skeleton.d.ts +2 -2
- package/components/ui/skeleton.js +2 -2
- package/components/ui/skeleton.mjs +1 -1
- package/components/ui/tag-picker.d.mts +14 -0
- package/components/ui/tag-picker.d.ts +14 -0
- package/components/ui/tag-picker.js +12 -0
- package/components/ui/tag-picker.js.map +1 -0
- package/components/ui/tag-picker.mjs +11 -0
- package/components/ui/tag-picker.mjs.map +1 -0
- package/components/widgets/dialog-manager/index.js +1 -1
- package/components/widgets/dialog-manager/index.js.map +1 -1
- package/components/widgets/dialog-manager/index.mjs +1 -1
- package/layouts/sidebar1/app-sidebar.js +10 -10
- package/layouts/sidebar1/app-sidebar.mjs +9 -9
- package/layouts/sidebar1/context-switcher.js +5 -5
- package/layouts/sidebar1/context-switcher.mjs +4 -4
- package/layouts/sidebar1/index.js +11 -11
- package/layouts/sidebar1/index.js.map +1 -1
- package/layouts/sidebar1/index.mjs +9 -9
- package/layouts/sidebar1/nav-menus.js +5 -5
- package/layouts/sidebar1/nav-menus.mjs +4 -4
- package/layouts/sidebar1/nav-user.js +6 -6
- package/layouts/sidebar1/nav-user.mjs +5 -5
- package/layouts/simple/index.js +2 -2
- package/layouts/simple/index.mjs +3 -3
- package/package.json +1 -1
- package/chunk-2UTAR6ZA.js.map +0 -1
- package/chunk-4I6SLZWT.mjs.map +0 -1
- package/chunk-6C4NHVD6.js.map +0 -1
- package/chunk-KO4TIQLS.mjs.map +0 -1
- package/components/ui/extension/multi-select.js.map +0 -1
- package/components/ui/extension/multi-select.mjs.map +0 -1
- /package/{chunk-UQJ4A4H2.mjs.map → chunk-4IDPSNL3.mjs.map} +0 -0
- /package/{chunk-GAJQQPUC.mjs.map → chunk-5CBMRDT7.mjs.map} +0 -0
- /package/{chunk-S3CRUBGL.mjs.map → chunk-CNYC22IA.mjs.map} +0 -0
- /package/{chunk-E5TF7QLI.mjs.map → chunk-D6YGFMSG.mjs.map} +0 -0
- /package/{chunk-KUD4Z2MZ.mjs.map → chunk-P4DW3EEW.mjs.map} +0 -0
- /package/{chunk-432PQWGO.mjs.map → chunk-RJVQU443.mjs.map} +0 -0
- /package/{chunk-HKZRXGJ7.mjs.map → chunk-YDRPNCWF.mjs.map} +0 -0
- /package/{chunk-ZMMYQNQV.mjs.map → chunk-ZFBUIBJH.mjs.map} +0 -0
|
@@ -1,30 +1,23 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import {
|
|
3
|
-
Badge
|
|
4
|
-
} from "../../../chunk-WIISPZZE.mjs";
|
|
5
1
|
import {
|
|
6
2
|
Command,
|
|
7
3
|
CommandEmpty,
|
|
8
4
|
CommandItem,
|
|
9
5
|
CommandList
|
|
10
|
-
} from "
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
import "../../../chunk-YQENFZOY.mjs";
|
|
15
|
-
import "../../../chunk-7BYWDRRI.mjs";
|
|
16
|
-
import "../../../chunk-3GHC4JQU.mjs";
|
|
6
|
+
} from "./chunk-ZFBUIBJH.mjs";
|
|
7
|
+
import {
|
|
8
|
+
Badge
|
|
9
|
+
} from "./chunk-WIISPZZE.mjs";
|
|
17
10
|
import {
|
|
18
11
|
cn
|
|
19
|
-
} from "
|
|
12
|
+
} from "./chunk-KGUUDFJE.mjs";
|
|
20
13
|
import {
|
|
21
14
|
__objRest,
|
|
22
15
|
__spreadProps,
|
|
23
16
|
__spreadValues
|
|
24
|
-
} from "
|
|
17
|
+
} from "./chunk-YOSPWY5K.mjs";
|
|
25
18
|
|
|
26
|
-
// components/ui/
|
|
27
|
-
import {
|
|
19
|
+
// components/ui/multi-select.tsx
|
|
20
|
+
import { IconCheck, IconX } from "@tabler/icons-react";
|
|
28
21
|
import { Command as CommandPrimitive } from "cmdk";
|
|
29
22
|
import React, { createContext, forwardRef, useCallback, useContext, useState } from "react";
|
|
30
23
|
var MultiSelectContext = createContext(null);
|
|
@@ -50,14 +43,16 @@ var MultiSelector = (_a) => {
|
|
|
50
43
|
loop = false,
|
|
51
44
|
className,
|
|
52
45
|
children,
|
|
53
|
-
dir
|
|
46
|
+
dir,
|
|
47
|
+
disabled = false
|
|
54
48
|
} = _b, props = __objRest(_b, [
|
|
55
49
|
"values",
|
|
56
50
|
"onValuesChange",
|
|
57
51
|
"loop",
|
|
58
52
|
"className",
|
|
59
53
|
"children",
|
|
60
|
-
"dir"
|
|
54
|
+
"dir",
|
|
55
|
+
"disabled"
|
|
61
56
|
]);
|
|
62
57
|
const [inputValue, setInputValue] = useState("");
|
|
63
58
|
const [open, setOpen] = useState(false);
|
|
@@ -65,20 +60,21 @@ var MultiSelector = (_a) => {
|
|
|
65
60
|
const inputRef = React.useRef(null);
|
|
66
61
|
const onValueChangeHandler = useCallback(
|
|
67
62
|
(val) => {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
63
|
+
if (disabled) return;
|
|
64
|
+
const exists = value.some((currentValue) => currentValue.value === val.value);
|
|
65
|
+
if (exists) {
|
|
66
|
+
onValueChange(value.filter((currentValue) => currentValue.value !== val.value));
|
|
71
67
|
} else {
|
|
72
68
|
onValueChange([...value, val]);
|
|
73
69
|
}
|
|
74
70
|
},
|
|
75
|
-
|
|
76
|
-
[value]
|
|
71
|
+
[disabled, onValueChange, value]
|
|
77
72
|
);
|
|
78
73
|
const handleKeyDown = useCallback(
|
|
79
74
|
(e) => {
|
|
80
75
|
var _a2, _b2;
|
|
81
76
|
e.stopPropagation();
|
|
77
|
+
if (disabled) return;
|
|
82
78
|
const target = inputRef.current;
|
|
83
79
|
if (!target) return;
|
|
84
80
|
const selectionStart = (_a2 = target.selectionStart) != null ? _a2 : 0;
|
|
@@ -104,10 +100,8 @@ var MultiSelector = (_a) => {
|
|
|
104
100
|
if (value.length > 0 && (activeIndex !== -1 || loop)) {
|
|
105
101
|
moveNext();
|
|
106
102
|
}
|
|
107
|
-
} else {
|
|
108
|
-
|
|
109
|
-
movePrev();
|
|
110
|
-
}
|
|
103
|
+
} else if (value.length > 0 && target.selectionStart === 0) {
|
|
104
|
+
movePrev();
|
|
111
105
|
}
|
|
112
106
|
break;
|
|
113
107
|
case "ArrowRight":
|
|
@@ -115,10 +109,8 @@ var MultiSelector = (_a) => {
|
|
|
115
109
|
if (value.length > 0 && target.selectionStart === 0) {
|
|
116
110
|
movePrev();
|
|
117
111
|
}
|
|
118
|
-
} else {
|
|
119
|
-
|
|
120
|
-
moveNext();
|
|
121
|
-
}
|
|
112
|
+
} else if (value.length > 0 && (activeIndex !== -1 || loop)) {
|
|
113
|
+
moveNext();
|
|
122
114
|
}
|
|
123
115
|
break;
|
|
124
116
|
case "Backspace":
|
|
@@ -127,10 +119,8 @@ var MultiSelector = (_a) => {
|
|
|
127
119
|
if (activeIndex !== -1 && activeIndex < value.length) {
|
|
128
120
|
onValueChangeHandler(value[activeIndex]);
|
|
129
121
|
moveCurrent();
|
|
130
|
-
} else {
|
|
131
|
-
|
|
132
|
-
onValueChangeHandler(value[value.length - 1]);
|
|
133
|
-
}
|
|
122
|
+
} else if (target.selectionStart === 0) {
|
|
123
|
+
onValueChangeHandler(value[value.length - 1]);
|
|
134
124
|
}
|
|
135
125
|
}
|
|
136
126
|
break;
|
|
@@ -147,7 +137,7 @@ var MultiSelector = (_a) => {
|
|
|
147
137
|
break;
|
|
148
138
|
}
|
|
149
139
|
},
|
|
150
|
-
[
|
|
140
|
+
[activeIndex, dir, disabled, loop, onValueChangeHandler, open, value]
|
|
151
141
|
);
|
|
152
142
|
return /* @__PURE__ */ React.createElement(
|
|
153
143
|
MultiSelectContext.Provider,
|
|
@@ -161,14 +151,15 @@ var MultiSelector = (_a) => {
|
|
|
161
151
|
setInputValue,
|
|
162
152
|
activeIndex,
|
|
163
153
|
setActiveIndex,
|
|
164
|
-
ref: inputRef
|
|
154
|
+
ref: inputRef,
|
|
155
|
+
disabled
|
|
165
156
|
}
|
|
166
157
|
},
|
|
167
158
|
/* @__PURE__ */ React.createElement(
|
|
168
159
|
Command,
|
|
169
160
|
__spreadValues({
|
|
170
161
|
onKeyDown: handleKeyDown,
|
|
171
|
-
className: cn("
|
|
162
|
+
className: cn("flex flex-col overflow-visible bg-transparent", className),
|
|
172
163
|
dir
|
|
173
164
|
}, props),
|
|
174
165
|
children
|
|
@@ -178,7 +169,7 @@ var MultiSelector = (_a) => {
|
|
|
178
169
|
var MultiSelectorTrigger = forwardRef(
|
|
179
170
|
(_a, ref) => {
|
|
180
171
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
181
|
-
const { value, onValueChange, activeIndex } = useMultiSelect();
|
|
172
|
+
const { value, onValueChange, activeIndex, disabled } = useMultiSelect();
|
|
182
173
|
const mousePreventDefault = useCallback((e) => {
|
|
183
174
|
e.preventDefault();
|
|
184
175
|
e.stopPropagation();
|
|
@@ -188,10 +179,9 @@ var MultiSelectorTrigger = forwardRef(
|
|
|
188
179
|
__spreadValues({
|
|
189
180
|
ref,
|
|
190
181
|
className: cn(
|
|
191
|
-
"flex flex-wrap gap-1
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
},
|
|
182
|
+
"flex flex-wrap gap-1 rounded-lg border bg-background px-2 py-1",
|
|
183
|
+
activeIndex === -1 && "focus-within:ring-1 focus-within:ring-ring",
|
|
184
|
+
disabled && "cursor-not-allowed opacity-60",
|
|
195
185
|
className
|
|
196
186
|
)
|
|
197
187
|
}, props),
|
|
@@ -200,8 +190,8 @@ var MultiSelectorTrigger = forwardRef(
|
|
|
200
190
|
{
|
|
201
191
|
key: item.value,
|
|
202
192
|
className: cn(
|
|
203
|
-
"
|
|
204
|
-
activeIndex === index && "ring-2 ring-muted-foreground
|
|
193
|
+
"flex items-center gap-1 rounded-md px-1.5",
|
|
194
|
+
activeIndex === index && "ring-2 ring-muted-foreground"
|
|
205
195
|
),
|
|
206
196
|
variant: "secondary"
|
|
207
197
|
},
|
|
@@ -209,14 +199,19 @@ var MultiSelectorTrigger = forwardRef(
|
|
|
209
199
|
/* @__PURE__ */ React.createElement(
|
|
210
200
|
"button",
|
|
211
201
|
{
|
|
212
|
-
"aria-label": `Remove ${item} option`,
|
|
213
|
-
"aria-roledescription": "button to remove option",
|
|
202
|
+
"aria-label": `Remove ${item.label} option`,
|
|
214
203
|
type: "button",
|
|
204
|
+
disabled,
|
|
215
205
|
onMouseDown: mousePreventDefault,
|
|
216
|
-
onClick: () =>
|
|
206
|
+
onClick: (event) => {
|
|
207
|
+
event.preventDefault();
|
|
208
|
+
event.stopPropagation();
|
|
209
|
+
onValueChange(item);
|
|
210
|
+
},
|
|
211
|
+
className: "inline-flex cursor-pointer items-center justify-center rounded-md p-1 transition-colors hover:bg-red-50 hover:text-red-700 focus-visible:bg-red-100 focus-visible:outline-none disabled:cursor-not-allowed"
|
|
217
212
|
},
|
|
218
213
|
/* @__PURE__ */ React.createElement("span", { className: "sr-only" }, "Remove ", item.label, " option"),
|
|
219
|
-
/* @__PURE__ */ React.createElement(IconX, { className: "h-
|
|
214
|
+
/* @__PURE__ */ React.createElement(IconX, { className: "h-3.5 w-3.5" })
|
|
220
215
|
)
|
|
221
216
|
)),
|
|
222
217
|
children
|
|
@@ -225,14 +220,15 @@ var MultiSelectorTrigger = forwardRef(
|
|
|
225
220
|
);
|
|
226
221
|
MultiSelectorTrigger.displayName = "MultiSelectorTrigger";
|
|
227
222
|
var MultiSelectorInput = forwardRef((_a, ref) => {
|
|
228
|
-
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
229
|
-
const { setOpen, inputValue, setInputValue, activeIndex, setActiveIndex, ref: inputRef } = useMultiSelect();
|
|
223
|
+
var _b = _a, { className, disabled: disabledProp } = _b, props = __objRest(_b, ["className", "disabled"]);
|
|
224
|
+
const { setOpen, inputValue, setInputValue, activeIndex, setActiveIndex, ref: inputRef, disabled } = useMultiSelect();
|
|
230
225
|
return /* @__PURE__ */ React.createElement(
|
|
231
226
|
CommandPrimitive.Input,
|
|
232
227
|
__spreadProps(__spreadValues({}, props), {
|
|
233
228
|
tabIndex: 0,
|
|
234
229
|
ref: inputRef,
|
|
235
230
|
value: inputValue,
|
|
231
|
+
disabled: disabled || disabledProp,
|
|
236
232
|
onValueChange: activeIndex === -1 ? setInputValue : void 0,
|
|
237
233
|
onBlur: () => {
|
|
238
234
|
setInputValue("");
|
|
@@ -241,7 +237,7 @@ var MultiSelectorInput = forwardRef((_a, ref) => {
|
|
|
241
237
|
onFocus: () => setOpen(true),
|
|
242
238
|
onClick: () => setActiveIndex(-1),
|
|
243
239
|
className: cn(
|
|
244
|
-
"
|
|
240
|
+
"flex-1 border-none bg-transparent p-0 text-sm outline-none placeholder:text-muted-foreground focus:outline-none focus:ring-0",
|
|
245
241
|
className,
|
|
246
242
|
activeIndex !== -1 && "caret-transparent"
|
|
247
243
|
)
|
|
@@ -251,7 +247,8 @@ var MultiSelectorInput = forwardRef((_a, ref) => {
|
|
|
251
247
|
MultiSelectorInput.displayName = "MultiSelectorInput";
|
|
252
248
|
var MultiSelectorContent = forwardRef(({ children }, ref) => {
|
|
253
249
|
const { open } = useMultiSelect();
|
|
254
|
-
|
|
250
|
+
if (!open) return null;
|
|
251
|
+
return /* @__PURE__ */ React.createElement("div", { ref, className: "relative" }, children);
|
|
255
252
|
});
|
|
256
253
|
MultiSelectorContent.displayName = "MultiSelectorContent";
|
|
257
254
|
var MultiSelectorList = forwardRef(({ className, children }, ref) => {
|
|
@@ -260,7 +257,7 @@ var MultiSelectorList = forwardRef(({ className, children }, ref) => {
|
|
|
260
257
|
{
|
|
261
258
|
ref,
|
|
262
259
|
className: cn(
|
|
263
|
-
"
|
|
260
|
+
"absolute top-0 z-100 flex w-full flex-col gap-2 rounded-md border border-muted bg-background p-2 shadow-md scrollbar-thin scrollbar-track-transparent scrollbar-thumb-rounded-lg scrollbar-thumb-muted-foreground transition-colors dark:scrollbar-thumb-muted",
|
|
264
261
|
className
|
|
265
262
|
)
|
|
266
263
|
},
|
|
@@ -270,22 +267,25 @@ var MultiSelectorList = forwardRef(({ className, children }, ref) => {
|
|
|
270
267
|
});
|
|
271
268
|
MultiSelectorList.displayName = "MultiSelectorList";
|
|
272
269
|
var MultiSelectorItem = forwardRef((_a, ref) => {
|
|
273
|
-
var _b = _a, { className, value, label, children } = _b, props = __objRest(_b, ["className", "value", "label", "children"]);
|
|
274
|
-
const { value:
|
|
270
|
+
var _b = _a, { className, value, label, children, disabled: disabledProp } = _b, props = __objRest(_b, ["className", "value", "label", "children", "disabled"]);
|
|
271
|
+
const { value: options, onValueChange, setInputValue, disabled } = useMultiSelect();
|
|
275
272
|
const mousePreventDefault = useCallback((e) => {
|
|
276
273
|
e.preventDefault();
|
|
277
274
|
e.stopPropagation();
|
|
278
275
|
}, []);
|
|
279
|
-
const isIncluded = searchForValue(
|
|
276
|
+
const isIncluded = searchForValue(options, {
|
|
280
277
|
value,
|
|
281
278
|
label
|
|
282
279
|
}) !== -1;
|
|
280
|
+
const isDisabled = disabled || disabledProp;
|
|
283
281
|
return /* @__PURE__ */ React.createElement(
|
|
284
282
|
CommandItem,
|
|
285
283
|
__spreadProps(__spreadValues({
|
|
286
284
|
ref
|
|
287
285
|
}, props), {
|
|
286
|
+
disabled: isDisabled,
|
|
288
287
|
onSelect: () => {
|
|
288
|
+
if (isDisabled) return;
|
|
289
289
|
onValueChange({
|
|
290
290
|
value,
|
|
291
291
|
label
|
|
@@ -293,10 +293,10 @@ var MultiSelectorItem = forwardRef((_a, ref) => {
|
|
|
293
293
|
setInputValue("");
|
|
294
294
|
},
|
|
295
295
|
className: cn(
|
|
296
|
-
"
|
|
296
|
+
"flex cursor-pointer justify-between rounded-md px-2 py-1 transition-colors",
|
|
297
297
|
className,
|
|
298
|
-
isIncluded && "opacity-50
|
|
299
|
-
|
|
298
|
+
isIncluded && "cursor-default opacity-50",
|
|
299
|
+
isDisabled && "cursor-not-allowed opacity-50"
|
|
300
300
|
),
|
|
301
301
|
onMouseDown: mousePreventDefault
|
|
302
302
|
}),
|
|
@@ -305,12 +305,13 @@ var MultiSelectorItem = forwardRef((_a, ref) => {
|
|
|
305
305
|
);
|
|
306
306
|
});
|
|
307
307
|
MultiSelectorItem.displayName = "MultiSelectorItem";
|
|
308
|
+
|
|
308
309
|
export {
|
|
309
310
|
MultiSelector,
|
|
310
|
-
|
|
311
|
+
MultiSelectorTrigger,
|
|
311
312
|
MultiSelectorInput,
|
|
312
|
-
|
|
313
|
+
MultiSelectorContent,
|
|
313
314
|
MultiSelectorList,
|
|
314
|
-
|
|
315
|
+
MultiSelectorItem
|
|
315
316
|
};
|
|
316
|
-
//# sourceMappingURL=
|
|
317
|
+
//# sourceMappingURL=chunk-7JYFZETL.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../components/ui/multi-select.tsx"],"sourcesContent":["\"use client\";\nimport { IconCheck, IconX } from '@tabler/icons-react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport React, { type KeyboardEvent, createContext, forwardRef, useCallback, useContext, useState } from 'react';\n\nimport { cn } from '../../utils/ui';\nimport { Badge } from './badge';\nimport { Command, CommandEmpty, CommandItem, CommandList } from './command';\n\nexport type MultiSelectValue = {\n value: string;\n label: string;\n};\n\ninterface MultiSelectorProps extends React.ComponentPropsWithoutRef<typeof CommandPrimitive> {\n values: MultiSelectValue[];\n onValuesChange: (value: MultiSelectValue[]) => void;\n loop?: boolean;\n className?: string;\n children?: React.ReactNode;\n dir?: 'ltr' | 'rtl';\n disabled?: boolean;\n}\n\ninterface MultiSelectContextProps {\n value: MultiSelectValue[];\n onValueChange: (value: MultiSelectValue) => void;\n open: boolean;\n setOpen: (value: boolean) => void;\n inputValue: string;\n setInputValue: React.Dispatch<React.SetStateAction<string>>;\n activeIndex: number;\n setActiveIndex: React.Dispatch<React.SetStateAction<number>>;\n ref: React.RefObject<HTMLInputElement | null>;\n disabled: boolean;\n}\n\nconst MultiSelectContext = createContext<MultiSelectContextProps | null>(null);\n\nconst useMultiSelect = () => {\n const context = useContext(MultiSelectContext);\n if (!context) {\n throw new Error('useMultiSelect must be used within MultiSelectProvider');\n }\n return context;\n};\n\nfunction searchForValue(source: MultiSelectValue[], value: MultiSelectValue) {\n for (let i = 0; i < source.length; i++) {\n if (source[i].value === value.value) {\n return i;\n }\n }\n return -1;\n}\n\nconst MultiSelector = ({\n values: value,\n onValuesChange: onValueChange,\n loop = false,\n className,\n children,\n dir,\n disabled = false,\n ...props\n}: MultiSelectorProps) => {\n const [inputValue, setInputValue] = useState('');\n const [open, setOpen] = useState<boolean>(false);\n const [activeIndex, setActiveIndex] = useState<number>(-1);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const onValueChangeHandler = useCallback(\n (val: MultiSelectValue) => {\n if (disabled) return;\n\n const exists = value.some((currentValue) => currentValue.value === val.value);\n if (exists) {\n onValueChange(value.filter((currentValue) => currentValue.value !== val.value));\n } else {\n onValueChange([...value, val]);\n }\n },\n [disabled, onValueChange, value],\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n e.stopPropagation();\n\n if (disabled) return;\n\n const target = inputRef.current;\n\n if (!target) return;\n\n const selectionStart = target.selectionStart ?? 0;\n const selectionEnd = target.selectionEnd ?? 0;\n\n if (selectionStart !== selectionEnd) {\n return;\n }\n\n const moveNext = () => {\n const nextIndex = activeIndex + 1;\n setActiveIndex(nextIndex > value.length - 1 ? (loop ? 0 : -1) : nextIndex);\n };\n\n const movePrev = () => {\n const prevIndex = activeIndex - 1;\n setActiveIndex(prevIndex < 0 ? value.length - 1 : prevIndex);\n };\n\n const moveCurrent = () => {\n const newIndex = activeIndex - 1 <= 0 ? (value.length - 1 === 0 ? -1 : 0) : activeIndex - 1;\n setActiveIndex(newIndex);\n };\n\n switch (e.key) {\n case 'ArrowLeft':\n if (dir === 'rtl') {\n if (value.length > 0 && (activeIndex !== -1 || loop)) {\n moveNext();\n }\n } else if (value.length > 0 && target.selectionStart === 0) {\n movePrev();\n }\n break;\n\n case 'ArrowRight':\n if (dir === 'rtl') {\n if (value.length > 0 && target.selectionStart === 0) {\n movePrev();\n }\n } else if (value.length > 0 && (activeIndex !== -1 || loop)) {\n moveNext();\n }\n break;\n\n case 'Backspace':\n case 'Delete':\n if (value.length > 0) {\n if (activeIndex !== -1 && activeIndex < value.length) {\n onValueChangeHandler(value[activeIndex]);\n moveCurrent();\n } else if (target.selectionStart === 0) {\n onValueChangeHandler(value[value.length - 1]);\n }\n }\n break;\n\n case 'Enter':\n setOpen(true);\n break;\n\n case 'Escape':\n if (activeIndex !== -1) {\n setActiveIndex(-1);\n } else if (open) {\n setInputValue('');\n setOpen(false);\n }\n break;\n }\n },\n [activeIndex, dir, disabled, loop, onValueChangeHandler, open, value],\n );\n\n return (\n <MultiSelectContext.Provider\n value={{\n value,\n onValueChange: onValueChangeHandler,\n open,\n setOpen,\n inputValue,\n setInputValue,\n activeIndex,\n setActiveIndex,\n ref: inputRef,\n disabled,\n }}\n >\n <Command\n onKeyDown={handleKeyDown}\n className={cn('flex flex-col overflow-visible bg-transparent', className)}\n dir={dir}\n {...props}\n >\n {children}\n </Command>\n </MultiSelectContext.Provider>\n );\n};\n\nconst MultiSelectorTrigger = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => {\n const { value, onValueChange, activeIndex, disabled } = useMultiSelect();\n\n const mousePreventDefault = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-wrap gap-1 rounded-lg border bg-background px-2 py-1',\n activeIndex === -1 && 'focus-within:ring-1 focus-within:ring-ring',\n disabled && 'cursor-not-allowed opacity-60',\n className,\n )}\n {...props}\n >\n {value.map((item, index) => (\n <Badge\n key={item.value}\n className={cn(\n 'flex items-center gap-1 rounded-md px-1.5',\n activeIndex === index && 'ring-2 ring-muted-foreground',\n )}\n variant=\"secondary\"\n >\n <span className=\"text-xs\">{item.label}</span>\n <button\n aria-label={`Remove ${item.label} option`}\n type=\"button\"\n disabled={disabled}\n onMouseDown={mousePreventDefault}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n\n onValueChange(item);\n }}\n className=\"inline-flex cursor-pointer items-center justify-center rounded-md p-1 transition-colors hover:bg-red-50 hover:text-red-700 focus-visible:bg-red-100 focus-visible:outline-none disabled:cursor-not-allowed\"\n >\n <span className=\"sr-only\">Remove {item.label} option</span>\n <IconX className=\"h-3.5 w-3.5\" />\n </button>\n </Badge>\n ))}\n {children}\n </div>\n );\n },\n);\n\nMultiSelectorTrigger.displayName = 'MultiSelectorTrigger';\n\nconst MultiSelectorInput = forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, disabled: disabledProp, ...props }, ref) => {\n const { setOpen, inputValue, setInputValue, activeIndex, setActiveIndex, ref: inputRef, disabled } = useMultiSelect();\n\n return (\n <CommandPrimitive.Input\n {...props}\n tabIndex={0}\n ref={inputRef}\n value={inputValue}\n disabled={disabled || disabledProp}\n onValueChange={activeIndex === -1 ? setInputValue : undefined}\n onBlur={() => {\n setInputValue('');\n setOpen(false);\n }}\n onFocus={() => setOpen(true)}\n onClick={() => setActiveIndex(-1)}\n className={cn(\n 'flex-1 border-none bg-transparent p-0 text-sm outline-none placeholder:text-muted-foreground focus:outline-none focus:ring-0',\n className,\n activeIndex !== -1 && 'caret-transparent',\n )}\n />\n );\n});\n\nMultiSelectorInput.displayName = 'MultiSelectorInput';\n\nconst MultiSelectorContent = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ children }, ref) => {\n const { open } = useMultiSelect();\n\n if (!open) return null;\n\n return (\n <div ref={ref} className=\"relative\">\n {children}\n </div>\n );\n});\n\nMultiSelectorContent.displayName = 'MultiSelectorContent';\n\nconst MultiSelectorList = forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, children }, ref) => {\n return (\n <CommandList\n ref={ref}\n className={cn(\n 'absolute top-0 z-100 flex w-full flex-col gap-2 rounded-md border border-muted bg-background p-2 shadow-md scrollbar-thin scrollbar-track-transparent scrollbar-thumb-rounded-lg scrollbar-thumb-muted-foreground transition-colors dark:scrollbar-thumb-muted',\n className,\n )}\n >\n {children}\n <CommandEmpty>\n <span className=\"text-muted-foreground\">No results found</span>\n </CommandEmpty>\n </CommandList>\n );\n});\n\nMultiSelectorList.displayName = 'MultiSelectorList';\n\nconst MultiSelectorItem = forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n { value: string; label: string } & React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, value, label, children, disabled: disabledProp, ...props }, ref) => {\n const { value: options, onValueChange, setInputValue, disabled } = useMultiSelect();\n\n const mousePreventDefault = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n const isIncluded =\n searchForValue(options, {\n value,\n label,\n }) !== -1;\n\n const isDisabled = disabled || disabledProp;\n\n return (\n <CommandItem\n ref={ref}\n {...props}\n disabled={isDisabled}\n onSelect={() => {\n if (isDisabled) return;\n\n onValueChange({\n value,\n label,\n });\n setInputValue('');\n }}\n className={cn(\n 'flex cursor-pointer justify-between rounded-md px-2 py-1 transition-colors',\n className,\n isIncluded && 'cursor-default opacity-50',\n isDisabled && 'cursor-not-allowed opacity-50',\n )}\n onMouseDown={mousePreventDefault}\n >\n {children}\n {isIncluded && <IconCheck className=\"h-4 w-4\" />}\n </CommandItem>\n );\n});\n\nMultiSelectorItem.displayName = 'MultiSelectorItem';\n\nexport {\n MultiSelector,\n MultiSelectorTrigger,\n MultiSelectorInput,\n MultiSelectorContent,\n MultiSelectorList,\n MultiSelectorItem,\n};\n"],"mappings":"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","names":["_a","_b"]}
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkP4EDRIBHjs = require('./chunk-P4EDRIBH.js');
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var _chunkSC6IX6NJjs = require('./chunk-SC6IX6NJ.js');
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
var _chunkPSPAJNNBjs = require('./chunk-PSPAJNNB.js');
|
|
@@ -23,19 +23,19 @@ var _chunkPSPAJNNBjs = require('./chunk-PSPAJNNB.js');
|
|
|
23
23
|
var _react = require('react'); var React = _interopRequireWildcard(_react);
|
|
24
24
|
var _lucidereact = require('lucide-react');
|
|
25
25
|
function SidebarMenuLink({ item, as: LinkComponent }) {
|
|
26
|
-
const { setOpenMobile } =
|
|
26
|
+
const { setOpenMobile } = _chunkP4EDRIBHjs.useSidebar.call(void 0, );
|
|
27
27
|
const Comp = LinkComponent && item.url ? LinkComponent : "button";
|
|
28
|
-
return /* @__PURE__ */ React.createElement(
|
|
28
|
+
return /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuItem, null, /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuButton, { asChild: true, isActive: item.isActive, tooltip: item.title, onClick: () => setOpenMobile(false) }, /* @__PURE__ */ React.createElement(Comp, { to: item.url, href: item.url, onClick: () => {
|
|
29
29
|
var _a;
|
|
30
30
|
return (_a = item.onClick) == null ? void 0 : _a.call(item, item.title);
|
|
31
31
|
} }, item.icon && /* @__PURE__ */ React.createElement(item.icon, null), /* @__PURE__ */ React.createElement("span", null, item.title))));
|
|
32
32
|
}
|
|
33
33
|
function SidebarMenuCollapsible({ item, as: LinkComponent }) {
|
|
34
|
-
const { setOpenMobile } =
|
|
34
|
+
const { setOpenMobile } = _chunkP4EDRIBHjs.useSidebar.call(void 0, );
|
|
35
35
|
if (!item.subItems) return null;
|
|
36
|
-
return /* @__PURE__ */ React.createElement(
|
|
36
|
+
return /* @__PURE__ */ React.createElement(_chunkSC6IX6NJjs.Collapsible, { key: item.title, asChild: true, defaultOpen: item.isActive, className: "group/collapsible" }, /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuItem, null, /* @__PURE__ */ React.createElement(_chunkSC6IX6NJjs.CollapsibleTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuButton, { tooltip: item.title }, item.icon && /* @__PURE__ */ React.createElement(item.icon, null), /* @__PURE__ */ React.createElement("span", null, item.title), /* @__PURE__ */ React.createElement(_lucidereact.ChevronRight, { className: "ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90" }))), /* @__PURE__ */ React.createElement(_chunkSC6IX6NJjs.CollapsibleContent, null, /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuSub, null, item.subItems.map((subItem) => {
|
|
37
37
|
const Comp = LinkComponent && subItem.url ? LinkComponent : "button";
|
|
38
|
-
return /* @__PURE__ */ React.createElement(
|
|
38
|
+
return /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuSubItem, { key: subItem.title }, /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuSubButton, { asChild: true, isActive: subItem.isActive, onClick: () => setOpenMobile(false) }, /* @__PURE__ */ React.createElement(
|
|
39
39
|
Comp,
|
|
40
40
|
{
|
|
41
41
|
to: subItem.url,
|
|
@@ -53,7 +53,7 @@ function SidebarMenuCollapsible({ item, as: LinkComponent }) {
|
|
|
53
53
|
}
|
|
54
54
|
function NavMenus({ menus, aslink }) {
|
|
55
55
|
return menus.map((menu) => {
|
|
56
|
-
return /* @__PURE__ */ React.createElement(
|
|
56
|
+
return /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarGroup, { key: menu.title, className: _chunkPSPAJNNBjs.cn.call(void 0, menu.className) }, !menu.hideTitle && /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarGroupLabel, null, menu.title), /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenu, null, menu.items.map(
|
|
57
57
|
(item) => item.subItems && item.subItems.length > 0 ? /* @__PURE__ */ React.createElement(SidebarMenuCollapsible, { key: item.title, item, as: aslink }) : /* @__PURE__ */ React.createElement(SidebarMenuLink, { key: item.title, item, as: aslink })
|
|
58
58
|
)));
|
|
59
59
|
});
|
|
@@ -62,4 +62,4 @@ function NavMenus({ menus, aslink }) {
|
|
|
62
62
|
|
|
63
63
|
|
|
64
64
|
exports.NavMenus = NavMenus;
|
|
65
|
-
//# sourceMappingURL=chunk-
|
|
65
|
+
//# sourceMappingURL=chunk-AQIBLBXW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-AQIBLBXW.js","../layouts/sidebar1/nav-menus.tsx"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACA;ACnBA,2EAAuB;AACvB,2CAA6B;AAkC7B,SAAS,eAAA,CAAgB,EAAE,IAAA,EAAM,EAAA,EAAI,cAAc,CAAA,EAAkD;AACnG,EAAA,MAAM,EAAE,cAAc,EAAA,EAAI,yCAAA,CAAW;AACrC,EAAA,MAAM,KAAA,EAAO,cAAA,GAAiB,IAAA,CAAK,IAAA,EAAM,cAAA,EAAgB,QAAA;AAEzD,EAAA,uBACE,KAAA,CAAA,aAAA,CAAC,gCAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,kCAAA,EAAA,EAAkB,OAAA,EAAO,IAAA,EAAC,QAAA,EAAU,IAAA,CAAK,QAAA,EAAU,OAAA,EAAS,IAAA,CAAK,KAAA,EAAO,OAAA,EAAS,CAAA,EAAA,GAAM,aAAA,CAAc,KAAK,EAAA,CAAA,kBACzG,KAAA,CAAA,aAAA,CAAC,IAAA,EAAA,EAAK,EAAA,EAAI,IAAA,CAAK,GAAA,EAAK,IAAA,EAAM,IAAA,CAAK,GAAA,EAAK,OAAA,EAAS,CAAA,EAAA,GAAG;AA3CxD,IAAA,IAAA,EAAA;AA2C2D,IAAA,OAAA,CAAA,GAAA,EAAA,IAAA,CAAK,OAAA,EAAA,GAAL,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAA,IAAA,CAAA,IAAA,EAAe,IAAA,CAAK,KAAA,CAAA;AAAA,EAAA,EAAA,CAAA,EACpE,IAAA,CAAK,KAAA,mBAAQ,KAAA,CAAA,aAAA,CAAC,IAAA,CAAK,IAAA,EAAL,IAAU,CAAA,kBACzB,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,IAAA,EAAM,IAAA,CAAK,KAAM,CACpB,CACF,CACF,CAAA;AAEJ;AAEA,SAAS,sBAAA,CAAuB,EAAE,IAAA,EAAM,EAAA,EAAI,cAAc,CAAA,EAA+C;AACvG,EAAA,MAAM,EAAE,cAAc,EAAA,EAAI,yCAAA,CAAW;AACrC,EAAA,GAAA,CAAI,CAAC,IAAA,CAAK,QAAA,EAAU,OAAO,IAAA;AAE3B,EAAA,uBACE,KAAA,CAAA,aAAA,CAAC,4BAAA,EAAA,EAAY,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,OAAA,EAAO,IAAA,EAAC,WAAA,EAAa,IAAA,CAAK,QAAA,EAAU,SAAA,EAAU,oBAAA,CAAA,kBAC1E,KAAA,CAAA,aAAA,CAAC,gCAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,mCAAA,EAAA,EAAmB,OAAA,EAAO,KAAA,CAAA,kBACzB,KAAA,CAAA,aAAA,CAAC,kCAAA,EAAA,EAAkB,OAAA,EAAS,IAAA,CAAK,MAAA,CAAA,EAC9B,IAAA,CAAK,KAAA,mBAAQ,KAAA,CAAA,aAAA,CAAC,IAAA,CAAK,IAAA,EAAL,IAAU,CAAA,kBACzB,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,IAAA,EAAM,IAAA,CAAK,KAAM,CAAA,kBAElB,KAAA,CAAA,aAAA,CAAC,yBAAA,EAAA,EAAa,SAAA,EAAU,0FAAA,CAA0F,CACpH,CACF,CAAA,kBAEA,KAAA,CAAA,aAAA,CAAC,mCAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,+BAAA,EAAA,IAAA,EACE,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,EAAA,GAAY;AAC9B,IAAA,MAAM,KAAA,EAAO,cAAA,GAAiB,OAAA,CAAQ,IAAA,EAAM,cAAA,EAAgB,QAAA;AAE5D,IAAA,uBACE,KAAA,CAAA,aAAA,CAAC,mCAAA,EAAA,EAAmB,GAAA,EAAK,OAAA,CAAQ,MAAA,CAAA,kBAC/B,KAAA,CAAA,aAAA,CAAC,qCAAA,EAAA,EAAqB,OAAA,EAAO,IAAA,EAAC,QAAA,EAAU,OAAA,CAAQ,QAAA,EAAU,OAAA,EAAS,CAAA,EAAA,GAAM,aAAA,CAAc,KAAK,EAAA,CAAA,kBAC1F,KAAA,CAAA,aAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,OAAA,CAAQ,GAAA;AAAA,QACZ,IAAA,EAAM,OAAA,CAAQ,GAAA;AAAA,QACd,OAAA,EAAS,CAAA,EAAA,GAAG;AA/ElC,UAAA,IAAA,EAAA;AA+EqC,UAAA,OAAA,CAAA,GAAA,EAAA,IAAA,CAAK,OAAA,EAAA,GAAL,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAA,IAAA,CAAA,IAAA,EAAe,OAAA,CAAQ,KAAA,CAAA;AAAA,QAAA,CAAA;AAAA,QACtC,SAAA,EAAU;AAAA,MAAA,CAAA;AAAA,MAET,OAAA,CAAQ,KAAA,mBAAQ,KAAA,CAAA,aAAA,CAAC,OAAA,CAAQ,IAAA,EAAR,IAAa,CAAA;AAAA,sBAC/B,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,IAAA,EAAM,OAAA,CAAQ,KAAM;AAAA,IACvB,CACF,CACF,CAAA;AAAA,EAEJ,CAAC,CACH,CACF,CACF,CACF,CAAA;AAEJ;AAEO,SAAS,QAAA,CAAS,EAAE,KAAA,EAAO,OAAO,CAAA,EAAqD;AAC5F,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAA,GAAS;AACzB,IAAA,uBACE,KAAA,CAAA,aAAA,CAAC,6BAAA,EAAA,EAAa,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,SAAA,EAAW,iCAAA,IAAG,CAAK,SAAS,EAAA,CAAA,EACxD,CAAC,IAAA,CAAK,UAAA,mBAAa,KAAA,CAAA,aAAA,CAAC,kCAAA,EAAA,IAAA,EAAmB,IAAA,CAAK,KAAM,CAAA,kBAEnD,KAAA,CAAA,aAAA,CAAC,4BAAA,EAAA,IAAA,EACE,IAAA,CAAK,KAAA,CAAM,GAAA;AAAA,MAAI,CAAC,IAAA,EAAA,GACf,IAAA,CAAK,SAAA,GAAY,IAAA,CAAK,QAAA,CAAS,OAAA,EAAS,EAAA,kBACtC,KAAA,CAAA,aAAA,CAAC,sBAAA,EAAA,EAAuB,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,IAAA,EAAY,EAAA,EAAI,OAAA,CAAQ,EAAA,kBAEjE,KAAA,CAAA,aAAA,CAAC,eAAA,EAAA,EAAgB,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,IAAA,EAAY,EAAA,EAAI,OAAA,CAAQ;AAAA,IAE9D,CACF,CACF,CAAA;AAAA,EAEJ,CAAC,CAAA;AACH;ADvDA;AACA;AACE;AACF,4BAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-AQIBLBXW.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { ChevronRight } from 'lucide-react';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../../components/ui/collapsible';\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from '../../components/ui/sidebar';\nimport { useSidebar } from '../../components/ui/sidebar';\nimport { cn } from '../../utils/ui';\n\nexport interface IMenuSubItem {\n title: string;\n url?: string;\n icon?: React.ElementType;\n isActive?: boolean;\n onClick?: (title: string) => void;\n}\n\nexport interface IMenuItem extends IMenuSubItem {\n subItems?: IMenuSubItem[];\n}\n\nexport interface INavMenu {\n title: string;\n items: IMenuItem[];\n hideTitle?: boolean;\n className?: string;\n}\n\nfunction SidebarMenuLink({ item, as: LinkComponent }: { item: IMenuSubItem; as: React.ElementType }) {\n const { setOpenMobile } = useSidebar();\n const Comp = LinkComponent && item.url ? LinkComponent : 'button';\n\n return (\n <SidebarMenuItem>\n <SidebarMenuButton asChild isActive={item.isActive} tooltip={item.title} onClick={() => setOpenMobile(false)}>\n <Comp to={item.url} href={item.url} onClick={() => item.onClick?.(item.title)}>\n {item.icon && <item.icon />}\n <span>{item.title}</span>\n </Comp>\n </SidebarMenuButton>\n </SidebarMenuItem>\n );\n}\n\nfunction SidebarMenuCollapsible({ item, as: LinkComponent }: { item: IMenuItem; as: React.ElementType }) {\n const { setOpenMobile } = useSidebar();\n if (!item.subItems) return null;\n\n return (\n <Collapsible key={item.title} asChild defaultOpen={item.isActive} className=\"group/collapsible\">\n <SidebarMenuItem>\n <CollapsibleTrigger asChild>\n <SidebarMenuButton tooltip={item.title}>\n {item.icon && <item.icon />}\n <span>{item.title}</span>\n\n <ChevronRight className=\"ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90\" />\n </SidebarMenuButton>\n </CollapsibleTrigger>\n\n <CollapsibleContent>\n <SidebarMenuSub>\n {item.subItems.map((subItem) => {\n const Comp = LinkComponent && subItem.url ? LinkComponent : 'button';\n\n return (\n <SidebarMenuSubItem key={subItem.title}>\n <SidebarMenuSubButton asChild isActive={subItem.isActive} onClick={() => setOpenMobile(false)}>\n <Comp\n to={subItem.url}\n href={subItem.url}\n onClick={() => item.onClick?.(subItem.title)}\n className=\"block w-full\"\n >\n {subItem.icon && <subItem.icon />}\n <span>{subItem.title}</span>\n </Comp>\n </SidebarMenuSubButton>\n </SidebarMenuSubItem>\n );\n })}\n </SidebarMenuSub>\n </CollapsibleContent>\n </SidebarMenuItem>\n </Collapsible>\n );\n}\n\nexport function NavMenus({ menus, aslink }: { menus: INavMenu[]; aslink: React.ElementType }) {\n return menus.map((menu) => {\n return (\n <SidebarGroup key={menu.title} className={cn(menu.className)}>\n {!menu.hideTitle && <SidebarGroupLabel>{menu.title}</SidebarGroupLabel>}\n\n <SidebarMenu>\n {menu.items.map((item) =>\n item.subItems && item.subItems.length > 0 ? (\n <SidebarMenuCollapsible key={item.title} item={item} as={aslink} />\n ) : (\n <SidebarMenuLink key={item.title} item={item} as={aslink} />\n ),\n )}\n </SidebarMenu>\n </SidebarGroup>\n );\n });\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
|
|
3
3
|
|
|
4
4
|
var _chunkPSPAJNNBjs = require('./chunk-PSPAJNNB.js');
|
|
5
5
|
|
|
@@ -8,6 +8,7 @@ var _chunkPSPAJNNBjs = require('./chunk-PSPAJNNB.js');
|
|
|
8
8
|
var _chunk2NMEKWO5js = require('./chunk-2NMEKWO5.js');
|
|
9
9
|
|
|
10
10
|
// components/ui/skeleton.tsx
|
|
11
|
+
var _react = require('react'); var React = _interopRequireWildcard(_react);
|
|
11
12
|
function Skeleton(_a) {
|
|
12
13
|
var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
|
|
13
14
|
return /* @__PURE__ */ React.createElement("div", _chunk2NMEKWO5js.__spreadValues.call(void 0, { "data-slot": "skeleton", className: _chunkPSPAJNNBjs.cn.call(void 0, "bg-muted rounded-md animate-pulse", className) }, props));
|
|
@@ -16,4 +17,4 @@ function Skeleton(_a) {
|
|
|
16
17
|
|
|
17
18
|
|
|
18
19
|
exports.Skeleton = Skeleton;
|
|
19
|
-
//# sourceMappingURL=chunk-
|
|
20
|
+
//# sourceMappingURL=chunk-BMAIJZN6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-BMAIJZN6.js","../components/ui/skeleton.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;ACPA,2EAAuB;AAGvB,SAAS,QAAA,CAAS,EAAA,EAAsD;AAAtD,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,UAJpB,EAAA,EAIkB,EAAA,EAAgB,MAAA,EAAA,wCAAA,EAAhB,EAAgB,CAAd,WAAA,CAAA,CAAA;AAClB,EAAA,uBAAO,KAAA,CAAA,aAAA,CAAC,KAAA,EAAA,6CAAA,EAAI,WAAA,EAAU,UAAA,EAAW,SAAA,EAAW,iCAAA,mCAAG,EAAqC,SAAS,EAAA,CAAA,EAAO,KAAA,CAAO,CAAA;AAC7G;ADQA;AACA;AACE;AACF,4BAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-BMAIJZN6.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { cn } from '../../utils/ui';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"skeleton\" className={cn('bg-muted rounded-md animate-pulse', className)} {...props} />;\n}\n\nexport { Skeleton };\n"]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
SidebarMenuButton,
|
|
4
4
|
SidebarMenuItem,
|
|
5
5
|
useSidebar
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-4IDPSNL3.mjs";
|
|
7
7
|
import {
|
|
8
8
|
DropdownMenu,
|
|
9
9
|
DropdownMenuContent,
|
|
@@ -97,4 +97,4 @@ function ContextSwitcher({
|
|
|
97
97
|
export {
|
|
98
98
|
ContextSwitcher
|
|
99
99
|
};
|
|
100
|
-
//# sourceMappingURL=chunk-
|
|
100
|
+
//# sourceMappingURL=chunk-CNYC22IA.mjs.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ContextSwitcher
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-CNYC22IA.mjs";
|
|
4
4
|
import {
|
|
5
5
|
NavMenus
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-5CBMRDT7.mjs";
|
|
7
7
|
import {
|
|
8
8
|
NavUser
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-P4DW3EEW.mjs";
|
|
10
10
|
import {
|
|
11
11
|
Sidebar,
|
|
12
12
|
SidebarContent,
|
|
13
13
|
SidebarFooter,
|
|
14
14
|
SidebarHeader,
|
|
15
15
|
SidebarRail
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-4IDPSNL3.mjs";
|
|
17
17
|
import {
|
|
18
18
|
Button
|
|
19
19
|
} from "./chunk-7BYWDRRI.mjs";
|
|
@@ -67,4 +67,4 @@ function AppSidebar(_a) {
|
|
|
67
67
|
export {
|
|
68
68
|
AppSidebar
|
|
69
69
|
};
|
|
70
|
-
//# sourceMappingURL=chunk-
|
|
70
|
+
//# sourceMappingURL=chunk-D6YGFMSG.mjs.map
|
|
@@ -7,7 +7,7 @@ var _chunk5TXFHYQ5js = require('./chunk-5TXFHYQ5.js');
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkP4EDRIBHjs = require('./chunk-P4EDRIBH.js');
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
@@ -32,9 +32,9 @@ function NavUser({
|
|
|
32
32
|
aslink: LinkComponent,
|
|
33
33
|
onLogout
|
|
34
34
|
}) {
|
|
35
|
-
const { isMobile } =
|
|
36
|
-
return /* @__PURE__ */ React.createElement(
|
|
37
|
-
|
|
35
|
+
const { isMobile } = _chunkP4EDRIBHjs.useSidebar.call(void 0, );
|
|
36
|
+
return /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenu, null, /* @__PURE__ */ React.createElement(_chunkP4EDRIBHjs.SidebarMenuItem, null, /* @__PURE__ */ React.createElement(_chunkUKPBHVOTjs.DropdownMenu, null, /* @__PURE__ */ React.createElement(_chunkUKPBHVOTjs.DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(
|
|
37
|
+
_chunkP4EDRIBHjs.SidebarMenuButton,
|
|
38
38
|
{
|
|
39
39
|
size: "lg",
|
|
40
40
|
className: "data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground"
|
|
@@ -78,4 +78,4 @@ function NavUser({
|
|
|
78
78
|
|
|
79
79
|
|
|
80
80
|
exports.NavUser = NavUser;
|
|
81
|
-
//# sourceMappingURL=chunk-
|
|
81
|
+
//# sourceMappingURL=chunk-FOEQYO2Q.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-FOEQYO2Q.js","../layouts/sidebar1/nav-user.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-FOEQYO2Q.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { ChevronsUpDown, LogOut } from 'lucide-react';\nimport { Avatar, AvatarFallback, AvatarImage } from '../../components/ui/avatar';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '../../components/ui/dropdown-menu';\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '../../components/ui/sidebar';\nimport { ThemeSwitcher } from './theme-switcher';\n\nexport interface INavUser {\n name: string;\n email: string;\n avatar: string;\n}\n\nexport interface INavUserMenuItem {\n title: string;\n url?: string;\n icon?: React.ElementType;\n onClick?: (title: string) => void;\n}\n\nexport function NavUser({\n user,\n menus = [],\n aslink: LinkComponent,\n onLogout,\n}: {\n user: INavUser;\n menus: INavUserMenuItem[];\n aslink?: React.ElementType;\n onLogout?: (user: INavUser) => void;\n}) {\n const { isMobile } = useSidebar();\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n >\n <Avatar className=\"h-8 w-8 rounded-lg\">\n <AvatarImage src={user.avatar} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\n </Avatar>\n\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{user.name}</span>\n <span className=\"truncate text-xs\">{user.email}</span>\n </div>\n\n <ChevronsUpDown className=\"ml-auto size-4\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n\n <DropdownMenuContent\n className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg\"\n side={isMobile ? 'bottom' : 'right'}\n align=\"end\"\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"p-0 font-normal\">\n <div className=\"flex items-center gap-2 px-1 py-1.5 text-left text-sm\">\n <Avatar className=\"h-8 w-8 rounded-lg\">\n <AvatarImage src={user.avatar} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\n </Avatar>\n\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{user.name}</span>\n <span className=\"truncate text-xs\">{user.email}</span>\n </div>\n </div>\n </DropdownMenuLabel>\n {menus.length > 0 && <DropdownMenuSeparator />}\n\n <DropdownMenuGroup>\n {menus.map((menu) => {\n const Comp = LinkComponent && menu.url ? LinkComponent : 'button';\n\n return (\n <Comp\n key={menu.title}\n to={menu.url}\n href={menu.url}\n onClick={() => menu.onClick?.(menu.title)}\n className=\"block w-full\"\n >\n <DropdownMenuItem>\n {menu.icon && <menu.icon />}\n {menu.title}\n </DropdownMenuItem>\n </Comp>\n );\n })}\n </DropdownMenuGroup>\n\n <DropdownMenuSeparator />\n\n <ThemeSwitcher />\n {onLogout && (\n <>\n <DropdownMenuSeparator />\n\n <DropdownMenuItem onClick={() => onLogout(user)}>\n <LogOut />\n Log out\n </DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n}\n"]}
|