@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.
Files changed (180) hide show
  1. package/chunk-2NUE7GJ3.js +44 -0
  2. package/chunk-2NUE7GJ3.js.map +1 -0
  3. package/chunk-3PZY5HRH.mjs +82 -0
  4. package/chunk-3PZY5HRH.mjs.map +1 -0
  5. package/{components/ui/extension/multi-select.js → chunk-3TG6ZVFG.js} +63 -62
  6. package/chunk-3TG6ZVFG.js.map +1 -0
  7. package/{chunk-UQJ4A4H2.mjs → chunk-4IDPSNL3.mjs} +2 -2
  8. package/{chunk-GAJQQPUC.mjs → chunk-5CBMRDT7.mjs} +3 -3
  9. package/{components/ui/extension/multi-select.mjs → chunk-7JYFZETL.mjs} +64 -63
  10. package/chunk-7JYFZETL.mjs.map +1 -0
  11. package/{chunk-FCE22MQI.js → chunk-AQIBLBXW.js} +9 -9
  12. package/{chunk-FCE22MQI.js.map → chunk-AQIBLBXW.js.map} +1 -1
  13. package/{chunk-6C4NHVD6.js → chunk-BMAIJZN6.js} +3 -2
  14. package/chunk-BMAIJZN6.js.map +1 -0
  15. package/{chunk-S3CRUBGL.mjs → chunk-CNYC22IA.mjs} +2 -2
  16. package/{chunk-E5TF7QLI.mjs → chunk-D6YGFMSG.mjs} +5 -5
  17. package/{chunk-WHQINNUB.js → chunk-FOEQYO2Q.js} +5 -5
  18. package/{chunk-WHQINNUB.js.map → chunk-FOEQYO2Q.js.map} +1 -1
  19. package/chunk-FSU3BKPK.js +130 -0
  20. package/chunk-FSU3BKPK.js.map +1 -0
  21. package/{chunk-3ZN766EW.js → chunk-G6WKPZTL.js} +3 -3
  22. package/{chunk-3ZN766EW.js.map → chunk-G6WKPZTL.js.map} +1 -1
  23. package/chunk-IQIHYWXX.js +83 -0
  24. package/chunk-IQIHYWXX.js.map +1 -0
  25. package/{chunk-AJLAS62X.js → chunk-LAIO3QZX.js} +4 -4
  26. package/{chunk-AJLAS62X.js.map → chunk-LAIO3QZX.js.map} +1 -1
  27. package/{chunk-MJT6B7OJ.js → chunk-LPDYWZN6.js} +3 -3
  28. package/{chunk-MJT6B7OJ.js.map → chunk-LPDYWZN6.js.map} +1 -1
  29. package/{chunk-KO4TIQLS.mjs → chunk-M6UKU56L.mjs} +2 -1
  30. package/chunk-M6UKU56L.mjs.map +1 -0
  31. package/{chunk-Y6CUGIQB.js → chunk-NRCL342G.js} +9 -9
  32. package/{chunk-Y6CUGIQB.js.map → chunk-NRCL342G.js.map} +1 -1
  33. package/{chunk-4I6SLZWT.mjs → chunk-O6PHWGJH.mjs} +2 -1
  34. package/chunk-O6PHWGJH.mjs.map +1 -0
  35. package/{chunk-KUD4Z2MZ.mjs → chunk-P4DW3EEW.mjs} +2 -2
  36. package/{chunk-WREXRSAA.js → chunk-P4EDRIBH.js} +4 -4
  37. package/{chunk-WREXRSAA.js.map → chunk-P4EDRIBH.js.map} +1 -1
  38. package/{chunk-432PQWGO.mjs → chunk-RJVQU443.mjs} +2 -2
  39. package/{chunk-2UTAR6ZA.js → chunk-SC6IX6NJ.js} +3 -2
  40. package/chunk-SC6IX6NJ.js.map +1 -0
  41. package/chunk-USW6AILM.mjs +43 -0
  42. package/chunk-USW6AILM.mjs.map +1 -0
  43. package/{chunk-SLADFPSL.js → chunk-VBPJD7U3.js} +5 -5
  44. package/{chunk-SLADFPSL.js.map → chunk-VBPJD7U3.js.map} +1 -1
  45. package/{chunk-HKZRXGJ7.mjs → chunk-YDRPNCWF.mjs} +4 -4
  46. package/{chunk-ZMMYQNQV.mjs → chunk-ZFBUIBJH.mjs} +2 -2
  47. package/chunk-ZQK6REIM.mjs +129 -0
  48. package/chunk-ZQK6REIM.mjs.map +1 -0
  49. package/components/form/hook-multi-select.d.mts +14 -0
  50. package/components/form/hook-multi-select.d.ts +14 -0
  51. package/components/form/hook-multi-select.js +76 -0
  52. package/components/form/hook-multi-select.js.map +1 -0
  53. package/components/form/hook-multi-select.mjs +75 -0
  54. package/components/form/hook-multi-select.mjs.map +1 -0
  55. package/components/form/hook-searchable-select.js +5 -5
  56. package/components/form/hook-searchable-select.mjs +4 -4
  57. package/components/form/hook-tag-picker.d.mts +12 -0
  58. package/components/form/hook-tag-picker.d.ts +12 -0
  59. package/components/form/hook-tag-picker.js +66 -0
  60. package/components/form/hook-tag-picker.js.map +1 -0
  61. package/components/form/hook-tag-picker.mjs +65 -0
  62. package/components/form/hook-tag-picker.mjs.map +1 -0
  63. package/components/form/multi-select.d.mts +25 -1
  64. package/components/form/multi-select.d.ts +25 -1
  65. package/components/form/multi-select.js +20 -1
  66. package/components/form/multi-select.js.map +1 -1
  67. package/components/form/multi-select.mjs +19 -0
  68. package/components/form/searchable-select.js +5 -5
  69. package/components/form/searchable-select.mjs +4 -4
  70. package/components/form/tag-picker.d.mts +21 -0
  71. package/components/form/tag-picker.d.ts +21 -0
  72. package/components/form/tag-picker.js +14 -0
  73. package/components/form/tag-picker.js.map +1 -0
  74. package/components/form/tag-picker.mjs +13 -0
  75. package/components/form/tag-picker.mjs.map +1 -0
  76. package/components/ui/aspect-ratio.d.mts +2 -2
  77. package/components/ui/aspect-ratio.d.ts +2 -2
  78. package/components/ui/aspect-ratio.js +2 -1
  79. package/components/ui/aspect-ratio.js.map +1 -1
  80. package/components/ui/aspect-ratio.mjs +1 -0
  81. package/components/ui/aspect-ratio.mjs.map +1 -1
  82. package/components/ui/button-group.d.mts +4 -4
  83. package/components/ui/button-group.d.ts +4 -4
  84. package/components/ui/button-group.js +2 -1
  85. package/components/ui/button-group.js.map +1 -1
  86. package/components/ui/button-group.mjs +1 -0
  87. package/components/ui/button-group.mjs.map +1 -1
  88. package/components/ui/collapsible.d.mts +4 -4
  89. package/components/ui/collapsible.d.ts +4 -4
  90. package/components/ui/collapsible.js +2 -2
  91. package/components/ui/collapsible.mjs +1 -1
  92. package/components/ui/combobox.js +5 -5
  93. package/components/ui/combobox.mjs +2 -2
  94. package/components/ui/command.js +4 -4
  95. package/components/ui/command.mjs +3 -3
  96. package/components/ui/copy-button.d.mts +3 -3
  97. package/components/ui/copy-button.d.ts +3 -3
  98. package/components/ui/copy-button.js +12 -12
  99. package/components/ui/copy-button.js.map +1 -1
  100. package/components/ui/copy-button.mjs +2 -2
  101. package/components/ui/copy-button.mjs.map +1 -1
  102. package/components/ui/empty.d.mts +7 -7
  103. package/components/ui/empty.d.ts +7 -7
  104. package/components/ui/empty.js +2 -1
  105. package/components/ui/empty.js.map +1 -1
  106. package/components/ui/empty.mjs +1 -0
  107. package/components/ui/empty.mjs.map +1 -1
  108. package/components/ui/field.d.mts +11 -11
  109. package/components/ui/field.d.ts +11 -11
  110. package/components/ui/field.js +3 -3
  111. package/components/ui/field.js.map +1 -1
  112. package/components/ui/field.mjs +2 -2
  113. package/components/ui/field.mjs.map +1 -1
  114. package/components/ui/input-group.js +3 -3
  115. package/components/ui/input-group.mjs +2 -2
  116. package/components/ui/kbd.d.mts +3 -3
  117. package/components/ui/kbd.d.ts +3 -3
  118. package/components/ui/kbd.js +2 -1
  119. package/components/ui/kbd.js.map +1 -1
  120. package/components/ui/kbd.mjs +1 -0
  121. package/components/ui/kbd.mjs.map +1 -1
  122. package/components/ui/{extension/multi-select.d.mts → multi-select.d.mts} +4 -3
  123. package/components/ui/{extension/multi-select.d.ts → multi-select.d.ts} +4 -3
  124. package/components/ui/multi-select.js +29 -0
  125. package/components/ui/multi-select.js.map +1 -0
  126. package/components/ui/multi-select.mjs +28 -0
  127. package/components/ui/multi-select.mjs.map +1 -0
  128. package/components/ui/native-select.d.mts +4 -4
  129. package/components/ui/native-select.d.ts +4 -4
  130. package/components/ui/native-select.js +2 -1
  131. package/components/ui/native-select.js.map +1 -1
  132. package/components/ui/native-select.mjs +1 -0
  133. package/components/ui/native-select.mjs.map +1 -1
  134. package/components/ui/resizable.js +1 -0
  135. package/components/ui/resizable.js.map +1 -1
  136. package/components/ui/resizable.mjs +1 -0
  137. package/components/ui/resizable.mjs.map +1 -1
  138. package/components/ui/sidebar.js +3 -3
  139. package/components/ui/sidebar.mjs +2 -2
  140. package/components/ui/skeleton.d.mts +2 -2
  141. package/components/ui/skeleton.d.ts +2 -2
  142. package/components/ui/skeleton.js +2 -2
  143. package/components/ui/skeleton.mjs +1 -1
  144. package/components/ui/tag-picker.d.mts +14 -0
  145. package/components/ui/tag-picker.d.ts +14 -0
  146. package/components/ui/tag-picker.js +12 -0
  147. package/components/ui/tag-picker.js.map +1 -0
  148. package/components/ui/tag-picker.mjs +11 -0
  149. package/components/ui/tag-picker.mjs.map +1 -0
  150. package/components/widgets/dialog-manager/index.js +1 -1
  151. package/components/widgets/dialog-manager/index.js.map +1 -1
  152. package/components/widgets/dialog-manager/index.mjs +1 -1
  153. package/layouts/sidebar1/app-sidebar.js +10 -10
  154. package/layouts/sidebar1/app-sidebar.mjs +9 -9
  155. package/layouts/sidebar1/context-switcher.js +5 -5
  156. package/layouts/sidebar1/context-switcher.mjs +4 -4
  157. package/layouts/sidebar1/index.js +11 -11
  158. package/layouts/sidebar1/index.js.map +1 -1
  159. package/layouts/sidebar1/index.mjs +9 -9
  160. package/layouts/sidebar1/nav-menus.js +5 -5
  161. package/layouts/sidebar1/nav-menus.mjs +4 -4
  162. package/layouts/sidebar1/nav-user.js +6 -6
  163. package/layouts/sidebar1/nav-user.mjs +5 -5
  164. package/layouts/simple/index.js +2 -2
  165. package/layouts/simple/index.mjs +3 -3
  166. package/package.json +1 -1
  167. package/chunk-2UTAR6ZA.js.map +0 -1
  168. package/chunk-4I6SLZWT.mjs.map +0 -1
  169. package/chunk-6C4NHVD6.js.map +0 -1
  170. package/chunk-KO4TIQLS.mjs.map +0 -1
  171. package/components/ui/extension/multi-select.js.map +0 -1
  172. package/components/ui/extension/multi-select.mjs.map +0 -1
  173. /package/{chunk-UQJ4A4H2.mjs.map → chunk-4IDPSNL3.mjs.map} +0 -0
  174. /package/{chunk-GAJQQPUC.mjs.map → chunk-5CBMRDT7.mjs.map} +0 -0
  175. /package/{chunk-S3CRUBGL.mjs.map → chunk-CNYC22IA.mjs.map} +0 -0
  176. /package/{chunk-E5TF7QLI.mjs.map → chunk-D6YGFMSG.mjs.map} +0 -0
  177. /package/{chunk-KUD4Z2MZ.mjs.map → chunk-P4DW3EEW.mjs.map} +0 -0
  178. /package/{chunk-432PQWGO.mjs.map → chunk-RJVQU443.mjs.map} +0 -0
  179. /package/{chunk-HKZRXGJ7.mjs.map → chunk-YDRPNCWF.mjs.map} +0 -0
  180. /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 "../../../chunk-ZMMYQNQV.mjs";
11
- import "../../../chunk-HKZRXGJ7.mjs";
12
- import "../../../chunk-OPNHC6JN.mjs";
13
- import "../../../chunk-QF6PFV6M.mjs";
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 "../../../chunk-KGUUDFJE.mjs";
12
+ } from "./chunk-KGUUDFJE.mjs";
20
13
  import {
21
14
  __objRest,
22
15
  __spreadProps,
23
16
  __spreadValues
24
- } from "../../../chunk-YOSPWY5K.mjs";
17
+ } from "./chunk-YOSPWY5K.mjs";
25
18
 
26
- // components/ui/extension/multi-select.tsx
27
- import { IconX, IconCheck } from "@tabler/icons-react";
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
- const element = searchForValue(value, val);
69
- if (element !== -1) {
70
- onValueChange(value.filter((_, index) => index !== element));
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
- // eslint-disable-next-line react-hooks/exhaustive-deps
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
- if (value.length > 0 && target.selectionStart === 0) {
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
- if (value.length > 0 && (activeIndex !== -1 || loop)) {
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
- if (target.selectionStart === 0) {
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
- [value, activeIndex, loop]
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("overflow-visible bg-transparent flex flex-col space-y-2", className),
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 px-2 py-2 ring-1 ring-muted rounded-lg bg-background border rounded-sm",
192
- {
193
- "ring-1 focus-within:ring-ring": activeIndex === -1
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
- "px-1.5 rounded-md flex items-center gap-1",
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: () => onValueChange(item)
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-4 w-4 hover:stroke-destructive" })
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
- "p-0 bg-transparent border-none outline-none focus:outline-none focus:ring-0 placeholder:text-muted-foreground flex-1 text-sm",
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
- return /* @__PURE__ */ React.createElement("div", { ref, className: "relative" }, open ? children : null);
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
- "p-2 flex flex-col gap-2 rounded-md scrollbar-thin scrollbar-track-transparent transition-colors scrollbar-thumb-muted-foreground dark:scrollbar-thumb-muted scrollbar-thumb-rounded-lg w-full absolute bg-background shadow-md z-100 border border-muted top-0",
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: Options, onValueChange, setInputValue } = useMultiSelect();
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(Options, {
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
- "rounded-md cursor-pointer px-2 py-1 transition-colors flex justify-between",
296
+ "flex cursor-pointer justify-between rounded-md px-2 py-1 transition-colors",
297
297
  className,
298
- isIncluded && "opacity-50 cursor-default",
299
- props.disabled && "opacity-50 cursor-not-allowed"
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
- MultiSelectorContent,
311
+ MultiSelectorTrigger,
311
312
  MultiSelectorInput,
312
- MultiSelectorItem,
313
+ MultiSelectorContent,
313
314
  MultiSelectorList,
314
- MultiSelectorTrigger
315
+ MultiSelectorItem
315
316
  };
316
- //# sourceMappingURL=multi-select.mjs.map
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 _chunkWREXRSAAjs = require('./chunk-WREXRSAA.js');
12
+ var _chunkP4EDRIBHjs = require('./chunk-P4EDRIBH.js');
13
13
 
14
14
 
15
15
 
16
16
 
17
- var _chunk2UTAR6ZAjs = require('./chunk-2UTAR6ZA.js');
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 } = _chunkWREXRSAAjs.useSidebar.call(void 0, );
26
+ const { setOpenMobile } = _chunkP4EDRIBHjs.useSidebar.call(void 0, );
27
27
  const Comp = LinkComponent && item.url ? LinkComponent : "button";
28
- return /* @__PURE__ */ React.createElement(_chunkWREXRSAAjs.SidebarMenuItem, null, /* @__PURE__ */ React.createElement(_chunkWREXRSAAjs.SidebarMenuButton, { asChild: true, isActive: item.isActive, tooltip: item.title, onClick: () => setOpenMobile(false) }, /* @__PURE__ */ React.createElement(Comp, { to: item.url, href: item.url, onClick: () => {
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 } = _chunkWREXRSAAjs.useSidebar.call(void 0, );
34
+ const { setOpenMobile } = _chunkP4EDRIBHjs.useSidebar.call(void 0, );
35
35
  if (!item.subItems) return null;
36
- return /* @__PURE__ */ React.createElement(_chunk2UTAR6ZAjs.Collapsible, { key: item.title, asChild: true, defaultOpen: item.isActive, className: "group/collapsible" }, /* @__PURE__ */ React.createElement(_chunkWREXRSAAjs.SidebarMenuItem, null, /* @__PURE__ */ React.createElement(_chunk2UTAR6ZAjs.CollapsibleTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(_chunkWREXRSAAjs.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(_chunk2UTAR6ZAjs.CollapsibleContent, null, /* @__PURE__ */ React.createElement(_chunkWREXRSAAjs.SidebarMenuSub, null, item.subItems.map((subItem) => {
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(_chunkWREXRSAAjs.SidebarMenuSubItem, { key: subItem.title }, /* @__PURE__ */ React.createElement(_chunkWREXRSAAjs.SidebarMenuSubButton, { asChild: true, isActive: subItem.isActive, onClick: () => setOpenMobile(false) }, /* @__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(_chunkWREXRSAAjs.SidebarGroup, { key: menu.title, className: _chunkPSPAJNNBjs.cn.call(void 0, menu.className) }, !menu.hideTitle && /* @__PURE__ */ React.createElement(_chunkWREXRSAAjs.SidebarGroupLabel, null, menu.title), /* @__PURE__ */ React.createElement(_chunkWREXRSAAjs.SidebarMenu, null, menu.items.map(
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-FCE22MQI.js.map
65
+ //# sourceMappingURL=chunk-AQIBLBXW.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-FCE22MQI.js","../layouts/sidebar1/nav-menus.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-FCE22MQI.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
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-AQIBLBXW.js","../layouts/sidebar1/nav-menus.tsx"],"names":[],"mappings":"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","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-6C4NHVD6.js.map
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-UQJ4A4H2.mjs";
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-S3CRUBGL.mjs.map
100
+ //# sourceMappingURL=chunk-CNYC22IA.mjs.map
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  ContextSwitcher
3
- } from "./chunk-S3CRUBGL.mjs";
3
+ } from "./chunk-CNYC22IA.mjs";
4
4
  import {
5
5
  NavMenus
6
- } from "./chunk-GAJQQPUC.mjs";
6
+ } from "./chunk-5CBMRDT7.mjs";
7
7
  import {
8
8
  NavUser
9
- } from "./chunk-KUD4Z2MZ.mjs";
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-UQJ4A4H2.mjs";
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-E5TF7QLI.mjs.map
70
+ //# sourceMappingURL=chunk-D6YGFMSG.mjs.map
@@ -7,7 +7,7 @@ var _chunk5TXFHYQ5js = require('./chunk-5TXFHYQ5.js');
7
7
 
8
8
 
9
9
 
10
- var _chunkWREXRSAAjs = require('./chunk-WREXRSAA.js');
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 } = _chunkWREXRSAAjs.useSidebar.call(void 0, );
36
- return /* @__PURE__ */ React.createElement(_chunkWREXRSAAjs.SidebarMenu, null, /* @__PURE__ */ React.createElement(_chunkWREXRSAAjs.SidebarMenuItem, null, /* @__PURE__ */ React.createElement(_chunkUKPBHVOTjs.DropdownMenu, null, /* @__PURE__ */ React.createElement(_chunkUKPBHVOTjs.DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(
37
- _chunkWREXRSAAjs.SidebarMenuButton,
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-WHQINNUB.js.map
81
+ //# sourceMappingURL=chunk-FOEQYO2Q.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-WHQINNUB.js","../layouts/sidebar1/nav-user.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-WHQINNUB.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"]}
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"]}