@c-rex/ui 0.0.11 → 0.0.13

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 (106) hide show
  1. package/package.json +34 -54
  2. package/src/alert.tsx +58 -0
  3. package/src/breadcrumb.tsx +115 -0
  4. package/src/button.tsx +66 -0
  5. package/src/command.tsx +151 -0
  6. package/src/dialog.tsx +122 -0
  7. package/src/hooks/use-mobile.tsx +19 -0
  8. package/src/input.tsx +22 -0
  9. package/src/popover.tsx +31 -0
  10. package/src/select.tsx +157 -0
  11. package/src/separator.tsx +29 -0
  12. package/src/sheet.tsx +140 -0
  13. package/src/sidebar.tsx +785 -0
  14. package/src/skeleton.tsx +15 -0
  15. package/src/table.tsx +120 -0
  16. package/src/tooltip.tsx +30 -0
  17. package/dist/alert.cjs.js +0 -197
  18. package/dist/alert.cjs.js.map +0 -1
  19. package/dist/alert.d.cts +0 -11
  20. package/dist/alert.d.ts +0 -11
  21. package/dist/alert.esm.js +0 -116
  22. package/dist/alert.esm.js.map +0 -1
  23. package/dist/breadcrumb.cjs.js +0 -299
  24. package/dist/breadcrumb.cjs.js.map +0 -1
  25. package/dist/breadcrumb.d.cts +0 -22
  26. package/dist/breadcrumb.d.ts +0 -22
  27. package/dist/breadcrumb.esm.js +0 -202
  28. package/dist/breadcrumb.esm.js.map +0 -1
  29. package/dist/button.cjs.js +0 -200
  30. package/dist/button.cjs.js.map +0 -1
  31. package/dist/button.d.cts +0 -15
  32. package/dist/button.d.ts +0 -15
  33. package/dist/button.esm.js +0 -123
  34. package/dist/button.esm.js.map +0 -1
  35. package/dist/command.cjs.js +0 -387
  36. package/dist/command.cjs.js.map +0 -1
  37. package/dist/command.d.cts +0 -83
  38. package/dist/command.d.ts +0 -83
  39. package/dist/command.esm.js +0 -282
  40. package/dist/command.esm.js.map +0 -1
  41. package/dist/dialog.cjs.js +0 -290
  42. package/dist/dialog.cjs.js.map +0 -1
  43. package/dist/dialog.d.cts +0 -22
  44. package/dist/dialog.d.ts +0 -22
  45. package/dist/dialog.esm.js +0 -181
  46. package/dist/dialog.esm.js.map +0 -1
  47. package/dist/hooks/use-mobile.cjs.js +0 -127
  48. package/dist/hooks/use-mobile.cjs.js.map +0 -1
  49. package/dist/hooks/use-mobile.d.cts +0 -3
  50. package/dist/hooks/use-mobile.d.ts +0 -3
  51. package/dist/hooks/use-mobile.esm.js +0 -66
  52. package/dist/hooks/use-mobile.esm.js.map +0 -1
  53. package/dist/input.cjs.js +0 -155
  54. package/dist/input.cjs.js.map +0 -1
  55. package/dist/input.d.cts +0 -5
  56. package/dist/input.d.ts +0 -5
  57. package/dist/input.esm.js +0 -82
  58. package/dist/input.esm.js.map +0 -1
  59. package/dist/popover.cjs.js +0 -175
  60. package/dist/popover.cjs.js.map +0 -1
  61. package/dist/popover.d.cts +0 -9
  62. package/dist/popover.d.ts +0 -9
  63. package/dist/popover.esm.js +0 -90
  64. package/dist/popover.esm.js.map +0 -1
  65. package/dist/select.cjs.js +0 -326
  66. package/dist/select.cjs.js.map +0 -1
  67. package/dist/select.d.cts +0 -15
  68. package/dist/select.d.ts +0 -15
  69. package/dist/select.esm.js +0 -217
  70. package/dist/select.esm.js.map +0 -1
  71. package/dist/separator.cjs.js +0 -158
  72. package/dist/separator.cjs.js.map +0 -1
  73. package/dist/separator.d.cts +0 -6
  74. package/dist/separator.d.ts +0 -6
  75. package/dist/separator.esm.js +0 -85
  76. package/dist/separator.esm.js.map +0 -1
  77. package/dist/sheet.cjs.js +0 -308
  78. package/dist/sheet.cjs.js.map +0 -1
  79. package/dist/sheet.d.cts +0 -29
  80. package/dist/sheet.d.ts +0 -29
  81. package/dist/sheet.esm.js +0 -199
  82. package/dist/sheet.esm.js.map +0 -1
  83. package/dist/sidebar.cjs.js +0 -1077
  84. package/dist/sidebar.cjs.js.map +0 -1
  85. package/dist/sidebar.d.cts +0 -72
  86. package/dist/sidebar.d.ts +0 -72
  87. package/dist/sidebar.esm.js +0 -912
  88. package/dist/sidebar.esm.js.map +0 -1
  89. package/dist/skeleton.cjs.js +0 -138
  90. package/dist/skeleton.cjs.js.map +0 -1
  91. package/dist/skeleton.d.cts +0 -5
  92. package/dist/skeleton.d.ts +0 -5
  93. package/dist/skeleton.esm.js +0 -76
  94. package/dist/skeleton.esm.js.map +0 -1
  95. package/dist/table.cjs.js +0 -254
  96. package/dist/table.cjs.js.map +0 -1
  97. package/dist/table.d.cts +0 -12
  98. package/dist/table.d.ts +0 -12
  99. package/dist/table.esm.js +0 -153
  100. package/dist/table.esm.js.map +0 -1
  101. package/dist/tooltip.cjs.js +0 -173
  102. package/dist/tooltip.cjs.js.map +0 -1
  103. package/dist/tooltip.d.cts +0 -9
  104. package/dist/tooltip.d.ts +0 -9
  105. package/dist/tooltip.esm.js +0 -88
  106. package/dist/tooltip.esm.js.map +0 -1
@@ -1,912 +0,0 @@
1
- "use client";
2
- function _array_like_to_array(arr, len) {
3
- if (len == null || len > arr.length) len = arr.length;
4
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
5
- return arr2;
6
- }
7
- function _array_with_holes(arr) {
8
- if (Array.isArray(arr)) return arr;
9
- }
10
- function _define_property(obj, key, value) {
11
- if (key in obj) {
12
- Object.defineProperty(obj, key, {
13
- value: value,
14
- enumerable: true,
15
- configurable: true,
16
- writable: true
17
- });
18
- } else {
19
- obj[key] = value;
20
- }
21
- return obj;
22
- }
23
- function _extends() {
24
- _extends = Object.assign || function(target) {
25
- for(var i = 1; i < arguments.length; i++){
26
- var source = arguments[i];
27
- for(var key in source){
28
- if (Object.prototype.hasOwnProperty.call(source, key)) {
29
- target[key] = source[key];
30
- }
31
- }
32
- }
33
- return target;
34
- };
35
- return _extends.apply(this, arguments);
36
- }
37
- function _iterable_to_array_limit(arr, i) {
38
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
39
- if (_i == null) return;
40
- var _arr = [];
41
- var _n = true;
42
- var _d = false;
43
- var _s, _e;
44
- try {
45
- for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
46
- _arr.push(_s.value);
47
- if (i && _arr.length === i) break;
48
- }
49
- } catch (err) {
50
- _d = true;
51
- _e = err;
52
- } finally{
53
- try {
54
- if (!_n && _i["return"] != null) _i["return"]();
55
- } finally{
56
- if (_d) throw _e;
57
- }
58
- }
59
- return _arr;
60
- }
61
- function _non_iterable_rest() {
62
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
63
- }
64
- function _object_destructuring_empty(o) {
65
- if (o === null || o === void 0) throw new TypeError("Cannot destructure " + o);
66
- return o;
67
- }
68
- function _object_spread(target) {
69
- for(var i = 1; i < arguments.length; i++){
70
- var source = arguments[i] != null ? arguments[i] : {};
71
- var ownKeys = Object.keys(source);
72
- if (typeof Object.getOwnPropertySymbols === "function") {
73
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
74
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
75
- }));
76
- }
77
- ownKeys.forEach(function(key) {
78
- _define_property(target, key, source[key]);
79
- });
80
- }
81
- return target;
82
- }
83
- function ownKeys(object, enumerableOnly) {
84
- var keys = Object.keys(object);
85
- if (Object.getOwnPropertySymbols) {
86
- var symbols = Object.getOwnPropertySymbols(object);
87
- if (enumerableOnly) {
88
- symbols = symbols.filter(function(sym) {
89
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
90
- });
91
- }
92
- keys.push.apply(keys, symbols);
93
- }
94
- return keys;
95
- }
96
- function _object_spread_props(target, source) {
97
- source = source != null ? source : {};
98
- if (Object.getOwnPropertyDescriptors) {
99
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
100
- } else {
101
- ownKeys(Object(source)).forEach(function(key) {
102
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
103
- });
104
- }
105
- return target;
106
- }
107
- function _object_without_properties(source, excluded) {
108
- if (source == null) return {};
109
- var target = _object_without_properties_loose(source, excluded);
110
- var key, i;
111
- if (Object.getOwnPropertySymbols) {
112
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
113
- for(i = 0; i < sourceSymbolKeys.length; i++){
114
- key = sourceSymbolKeys[i];
115
- if (excluded.indexOf(key) >= 0) continue;
116
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
117
- target[key] = source[key];
118
- }
119
- }
120
- return target;
121
- }
122
- function _object_without_properties_loose(source, excluded) {
123
- if (source == null) return {};
124
- var target = {};
125
- var sourceKeys = Object.keys(source);
126
- var key, i;
127
- for(i = 0; i < sourceKeys.length; i++){
128
- key = sourceKeys[i];
129
- if (excluded.indexOf(key) >= 0) continue;
130
- target[key] = source[key];
131
- }
132
- return target;
133
- }
134
- function _sliced_to_array(arr, i) {
135
- return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
136
- }
137
- function _unsupported_iterable_to_array(o, minLen) {
138
- if (!o) return;
139
- if (typeof o === "string") return _array_like_to_array(o, minLen);
140
- var n = Object.prototype.toString.call(o).slice(8, -1);
141
- if (n === "Object" && o.constructor) n = o.constructor.name;
142
- if (n === "Map" || n === "Set") return Array.from(n);
143
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
144
- }
145
- // src/sidebar.tsx
146
- import * as React6 from "react";
147
- import { Slot as Slot2 } from "@radix-ui/react-slot";
148
- import { cva as cva3 } from "class-variance-authority";
149
- import { PanelLeft } from "lucide-react";
150
- // ../utils/src/classMerge.ts
151
- import { clsx } from "clsx";
152
- import { twMerge } from "tailwind-merge";
153
- function cn() {
154
- for(var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++){
155
- inputs[_key] = arguments[_key];
156
- }
157
- return twMerge(clsx(inputs));
158
- }
159
- // src/hooks/use-mobile.tsx
160
- import { useEffect, useState } from "react";
161
- var MOBILE_BREAKPOINT = 768;
162
- function useIsMobile() {
163
- var _useState = _sliced_to_array(useState(void 0), 2), isMobile = _useState[0], setIsMobile = _useState[1];
164
- useEffect(function() {
165
- var mql = window.matchMedia("(max-width: ".concat(MOBILE_BREAKPOINT - 1, "px)"));
166
- var onChange = function() {
167
- setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
168
- };
169
- mql.addEventListener("change", onChange);
170
- setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
171
- return function() {
172
- return mql.removeEventListener("change", onChange);
173
- };
174
- }, []);
175
- return !!isMobile;
176
- }
177
- // src/button.tsx
178
- import * as React from "react";
179
- import { Slot } from "@radix-ui/react-slot";
180
- import { cva } from "class-variance-authority";
181
- import { jsx } from "react/jsx-runtime";
182
- var buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", {
183
- variants: {
184
- variant: {
185
- default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
186
- destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
187
- outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
188
- secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
189
- ghost: "hover:bg-accent hover:text-accent-foreground",
190
- link: "text-primary underline-offset-4 hover:underline"
191
- },
192
- size: {
193
- default: "h-9 px-4 py-2",
194
- sm: "h-8 rounded-md px-3 text-xs",
195
- lg: "h-10 rounded-md px-8",
196
- icon: "h-9 w-9"
197
- },
198
- rounded: {
199
- default: "rounded-md",
200
- sm: "rounded-sm",
201
- lg: "rounded-lg",
202
- xl: "rounded-xl",
203
- "2xl": "rounded-2xl",
204
- full: "rounded-full"
205
- }
206
- },
207
- defaultVariants: {
208
- variant: "default",
209
- size: "default",
210
- rounded: "default"
211
- }
212
- });
213
- var Button = React.forwardRef(function(_param, ref) {
214
- var className = _param.className, variant = _param.variant, size = _param.size, rounded = _param.rounded, _param_asChild = _param.asChild, asChild = _param_asChild === void 0 ? false : _param_asChild, props = _object_without_properties(_param, [
215
- "className",
216
- "variant",
217
- "size",
218
- "rounded",
219
- "asChild"
220
- ]);
221
- var Comp = asChild ? Slot : "button";
222
- return /* @__PURE__ */ jsx(Comp, _object_spread({
223
- className: cn(buttonVariants({
224
- variant: variant,
225
- size: size,
226
- rounded: rounded,
227
- className: className
228
- })),
229
- ref: ref
230
- }, props));
231
- });
232
- Button.displayName = "Button";
233
- // src/input.tsx
234
- import * as React2 from "react";
235
- import { jsx as jsx2 } from "react/jsx-runtime";
236
- var Input = React2.forwardRef(function(_param, ref) {
237
- var className = _param.className, type = _param.type, props = _object_without_properties(_param, [
238
- "className",
239
- "type"
240
- ]);
241
- return /* @__PURE__ */ jsx2("input", _object_spread({
242
- type: type,
243
- className: cn("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", className),
244
- ref: ref
245
- }, props));
246
- });
247
- Input.displayName = "Input";
248
- // src/separator.tsx
249
- import * as React3 from "react";
250
- import * as SeparatorPrimitive from "@radix-ui/react-separator";
251
- import { jsx as jsx3 } from "react/jsx-runtime";
252
- var Separator = React3.forwardRef(function(_param, ref) {
253
- var className = _param.className, _param_orientation = _param.orientation, orientation = _param_orientation === void 0 ? "horizontal" : _param_orientation, _param_decorative = _param.decorative, decorative = _param_decorative === void 0 ? true : _param_decorative, props = _object_without_properties(_param, [
254
- "className",
255
- "orientation",
256
- "decorative"
257
- ]);
258
- return /* @__PURE__ */ jsx3(SeparatorPrimitive.Root, _object_spread({
259
- ref: ref,
260
- decorative: decorative,
261
- orientation: orientation,
262
- className: cn("shrink-0 bg-border", orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]", className)
263
- }, props));
264
- });
265
- Separator.displayName = SeparatorPrimitive.Root.displayName;
266
- // src/sheet.tsx
267
- import * as React4 from "react";
268
- import * as SheetPrimitive from "@radix-ui/react-dialog";
269
- import { cva as cva2 } from "class-variance-authority";
270
- import { X } from "lucide-react";
271
- import { jsx as jsx4, jsxs } from "react/jsx-runtime";
272
- var Sheet = SheetPrimitive.Root;
273
- var SheetPortal = SheetPrimitive.Portal;
274
- var SheetOverlay = React4.forwardRef(function(_param, ref) {
275
- var className = _param.className, props = _object_without_properties(_param, [
276
- "className"
277
- ]);
278
- return /* @__PURE__ */ jsx4(SheetPrimitive.Overlay, _object_spread_props(_object_spread({
279
- className: cn("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", className)
280
- }, props), {
281
- ref: ref
282
- }));
283
- });
284
- SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
285
- var sheetVariants = cva2("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out", {
286
- variants: {
287
- side: {
288
- top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
289
- bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
290
- left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
291
- right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
292
- }
293
- },
294
- defaultVariants: {
295
- side: "right"
296
- }
297
- });
298
- var SheetContent = React4.forwardRef(function(_param, ref) {
299
- var _param_side = _param.side, side = _param_side === void 0 ? "right" : _param_side, className = _param.className, children = _param.children, props = _object_without_properties(_param, [
300
- "side",
301
- "className",
302
- "children"
303
- ]);
304
- return /* @__PURE__ */ jsxs(SheetPortal, {
305
- children: [
306
- /* @__PURE__ */ jsx4(SheetOverlay, {}),
307
- /* @__PURE__ */ jsxs(SheetPrimitive.Content, _object_spread_props(_object_spread({
308
- ref: ref,
309
- className: cn(sheetVariants({
310
- side: side
311
- }), className)
312
- }, props), {
313
- children: [
314
- /* @__PURE__ */ jsxs(SheetPrimitive.Close, {
315
- className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",
316
- children: [
317
- /* @__PURE__ */ jsx4(X, {
318
- className: "h-4 w-4"
319
- }),
320
- /* @__PURE__ */ jsx4("span", {
321
- className: "sr-only",
322
- children: "Close"
323
- })
324
- ]
325
- }),
326
- children
327
- ]
328
- }))
329
- ]
330
- });
331
- });
332
- SheetContent.displayName = SheetPrimitive.Content.displayName;
333
- var SheetHeader = function(_param) {
334
- var className = _param.className, props = _object_without_properties(_param, [
335
- "className"
336
- ]);
337
- return /* @__PURE__ */ jsx4("div", _object_spread({
338
- className: cn("flex flex-col space-y-2 text-center sm:text-left", className)
339
- }, props));
340
- };
341
- SheetHeader.displayName = "SheetHeader";
342
- var SheetFooter = function(_param) {
343
- var className = _param.className, props = _object_without_properties(_param, [
344
- "className"
345
- ]);
346
- return /* @__PURE__ */ jsx4("div", _object_spread({
347
- className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className)
348
- }, props));
349
- };
350
- SheetFooter.displayName = "SheetFooter";
351
- var SheetTitle = React4.forwardRef(function(_param, ref) {
352
- var className = _param.className, props = _object_without_properties(_param, [
353
- "className"
354
- ]);
355
- return /* @__PURE__ */ jsx4(SheetPrimitive.Title, _object_spread({
356
- ref: ref,
357
- className: cn("text-lg font-semibold text-foreground", className)
358
- }, props));
359
- });
360
- SheetTitle.displayName = SheetPrimitive.Title.displayName;
361
- var SheetDescription = React4.forwardRef(function(_param, ref) {
362
- var className = _param.className, props = _object_without_properties(_param, [
363
- "className"
364
- ]);
365
- return /* @__PURE__ */ jsx4(SheetPrimitive.Description, _object_spread({
366
- ref: ref,
367
- className: cn("text-sm text-muted-foreground", className)
368
- }, props));
369
- });
370
- SheetDescription.displayName = SheetPrimitive.Description.displayName;
371
- // src/skeleton.tsx
372
- import { jsx as jsx5 } from "react/jsx-runtime";
373
- function Skeleton(_param) {
374
- var className = _param.className, props = _object_without_properties(_param, [
375
- "className"
376
- ]);
377
- return /* @__PURE__ */ jsx5("div", _object_spread({
378
- className: cn("animate-pulse rounded-md bg-primary/10", className)
379
- }, props));
380
- }
381
- // src/tooltip.tsx
382
- import * as React5 from "react";
383
- import * as TooltipPrimitive from "@radix-ui/react-tooltip";
384
- import { jsx as jsx6 } from "react/jsx-runtime";
385
- var TooltipProvider = TooltipPrimitive.Provider;
386
- var Tooltip = TooltipPrimitive.Root;
387
- var TooltipTrigger = TooltipPrimitive.Trigger;
388
- var TooltipContent = React5.forwardRef(function(_param, ref) {
389
- var className = _param.className, _param_sideOffset = _param.sideOffset, sideOffset = _param_sideOffset === void 0 ? 4 : _param_sideOffset, props = _object_without_properties(_param, [
390
- "className",
391
- "sideOffset"
392
- ]);
393
- return /* @__PURE__ */ jsx6(TooltipPrimitive.Portal, {
394
- children: /* @__PURE__ */ jsx6(TooltipPrimitive.Content, _object_spread({
395
- ref: ref,
396
- sideOffset: sideOffset,
397
- className: cn("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className)
398
- }, props))
399
- });
400
- });
401
- TooltipContent.displayName = TooltipPrimitive.Content.displayName;
402
- // src/sidebar.tsx
403
- import { jsx as jsx7, jsxs as jsxs2 } from "react/jsx-runtime";
404
- var SIDEBAR_COOKIE_NAME = "sidebar_state";
405
- var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
406
- var SIDEBAR_WIDTH = "16rem";
407
- var SIDEBAR_WIDTH_MOBILE = "18rem";
408
- var SIDEBAR_WIDTH_ICON = "3rem";
409
- var SIDEBAR_KEYBOARD_SHORTCUT = "b";
410
- var SidebarContext = React6.createContext(null);
411
- function useSidebar() {
412
- var context = React6.useContext(SidebarContext);
413
- if (!context) {
414
- throw new Error("useSidebar must be used within a SidebarProvider.");
415
- }
416
- return context;
417
- }
418
- var SidebarProvider = React6.forwardRef(function(_param, ref) {
419
- var _param_defaultOpen = _param.defaultOpen, defaultOpen = _param_defaultOpen === void 0 ? true : _param_defaultOpen, openProp = _param.open, setOpenProp = _param.onOpenChange, className = _param.className, style = _param.style, children = _param.children, props = _object_without_properties(_param, [
420
- "defaultOpen",
421
- "open",
422
- "onOpenChange",
423
- "className",
424
- "style",
425
- "children"
426
- ]);
427
- var isMobile = useIsMobile();
428
- var _React6_useState = _sliced_to_array(React6.useState(false), 2), openMobile = _React6_useState[0], setOpenMobile = _React6_useState[1];
429
- var _React6_useState1 = _sliced_to_array(React6.useState(defaultOpen), 2), _open = _React6_useState1[0], _setOpen = _React6_useState1[1];
430
- var open = openProp !== null && openProp !== void 0 ? openProp : _open;
431
- var setOpen = React6.useCallback(function(value) {
432
- var openState = typeof value === "function" ? value(open) : value;
433
- if (setOpenProp) {
434
- setOpenProp(openState);
435
- } else {
436
- _setOpen(openState);
437
- }
438
- document.cookie = "".concat(SIDEBAR_COOKIE_NAME, "=").concat(openState, "; path=/; max-age=").concat(SIDEBAR_COOKIE_MAX_AGE);
439
- }, [
440
- setOpenProp,
441
- open
442
- ]);
443
- var toggleSidebar = React6.useCallback(function() {
444
- return isMobile ? setOpenMobile(function(open2) {
445
- return !open2;
446
- }) : setOpen(function(open2) {
447
- return !open2;
448
- });
449
- }, [
450
- isMobile,
451
- setOpen,
452
- setOpenMobile
453
- ]);
454
- React6.useEffect(function() {
455
- var handleKeyDown = function(event) {
456
- if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
457
- event.preventDefault();
458
- toggleSidebar();
459
- }
460
- };
461
- window.addEventListener("keydown", handleKeyDown);
462
- return function() {
463
- return window.removeEventListener("keydown", handleKeyDown);
464
- };
465
- }, [
466
- toggleSidebar
467
- ]);
468
- var state = open ? "expanded" : "collapsed";
469
- var contextValue = React6.useMemo(function() {
470
- return {
471
- state: state,
472
- open: open,
473
- setOpen: setOpen,
474
- isMobile: isMobile,
475
- openMobile: openMobile,
476
- setOpenMobile: setOpenMobile,
477
- toggleSidebar: toggleSidebar
478
- };
479
- }, [
480
- state,
481
- open,
482
- setOpen,
483
- isMobile,
484
- openMobile,
485
- setOpenMobile,
486
- toggleSidebar
487
- ]);
488
- return /* @__PURE__ */ jsx7(SidebarContext.Provider, {
489
- value: contextValue,
490
- children: /* @__PURE__ */ jsx7(TooltipProvider, {
491
- delayDuration: 0,
492
- children: /* @__PURE__ */ jsx7("div", _object_spread_props(_object_spread({
493
- style: _object_spread({
494
- "--sidebar-width": SIDEBAR_WIDTH,
495
- "--sidebar-width-icon": SIDEBAR_WIDTH_ICON
496
- }, style),
497
- className: cn("group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar", className),
498
- ref: ref
499
- }, props), {
500
- children: children
501
- }))
502
- })
503
- });
504
- });
505
- SidebarProvider.displayName = "SidebarProvider";
506
- var Sidebar = React6.forwardRef(function(_param, ref) {
507
- var _param_side = _param.side, side = _param_side === void 0 ? "left" : _param_side, _param_variant = _param.variant, variant = _param_variant === void 0 ? "sidebar" : _param_variant, _param_collapsible = _param.collapsible, collapsible = _param_collapsible === void 0 ? "offcanvas" : _param_collapsible, className = _param.className, children = _param.children, props = _object_without_properties(_param, [
508
- "side",
509
- "variant",
510
- "collapsible",
511
- "className",
512
- "children"
513
- ]);
514
- var _useSidebar = useSidebar(), isMobile = _useSidebar.isMobile, state = _useSidebar.state, openMobile = _useSidebar.openMobile, setOpenMobile = _useSidebar.setOpenMobile;
515
- if (collapsible === "none") {
516
- return /* @__PURE__ */ jsx7("div", _object_spread_props(_object_spread({
517
- className: cn("flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground", className),
518
- ref: ref
519
- }, props), {
520
- children: children
521
- }));
522
- }
523
- if (isMobile) {
524
- return /* @__PURE__ */ jsx7(Sheet, _object_spread_props(_object_spread({
525
- open: openMobile,
526
- onOpenChange: setOpenMobile
527
- }, props), {
528
- children: /* @__PURE__ */ jsxs2(SheetContent, {
529
- "data-sidebar": "sidebar",
530
- "data-mobile": "true",
531
- className: "w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",
532
- style: {
533
- "--sidebar-width": SIDEBAR_WIDTH_MOBILE
534
- },
535
- side: side,
536
- children: [
537
- /* @__PURE__ */ jsxs2(SheetHeader, {
538
- className: "sr-only",
539
- children: [
540
- /* @__PURE__ */ jsx7(SheetTitle, {
541
- children: "Sidebar"
542
- }),
543
- /* @__PURE__ */ jsx7(SheetDescription, {
544
- children: "Displays the mobile sidebar."
545
- })
546
- ]
547
- }),
548
- /* @__PURE__ */ jsx7("div", {
549
- className: "flex h-full w-full flex-col",
550
- children: children
551
- })
552
- ]
553
- })
554
- }));
555
- }
556
- return /* @__PURE__ */ jsxs2("div", {
557
- ref: ref,
558
- className: "group peer hidden text-sidebar-foreground md:block",
559
- "data-state": state,
560
- "data-collapsible": state === "collapsed" ? collapsible : "",
561
- "data-variant": variant,
562
- "data-side": side,
563
- children: [
564
- /* @__PURE__ */ jsx7("div", {
565
- className: cn("relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]" : "group-data-[collapsible=icon]:w-[--sidebar-width-icon]")
566
- }),
567
- /* @__PURE__ */ jsx7("div", _object_spread_props(_object_spread({
568
- className: cn("fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex", side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]", // Adjust the padding for floating and inset variants.
569
- variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]" : "group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l", className)
570
- }, props), {
571
- children: /* @__PURE__ */ jsx7("div", {
572
- "data-sidebar": "sidebar",
573
- className: "flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow",
574
- children: children
575
- })
576
- }))
577
- ]
578
- });
579
- });
580
- Sidebar.displayName = "Sidebar";
581
- var SidebarTrigger = React6.forwardRef(function(_param, ref) {
582
- var className = _param.className, onClick = _param.onClick, props = _object_without_properties(_param, [
583
- "className",
584
- "onClick"
585
- ]);
586
- var toggleSidebar = useSidebar().toggleSidebar;
587
- return /* @__PURE__ */ jsxs2(Button, _object_spread_props(_object_spread({
588
- ref: ref,
589
- "data-sidebar": "trigger",
590
- variant: "ghost",
591
- size: "icon",
592
- className: cn("h-7 w-7", className),
593
- onClick: function(event) {
594
- onClick === null || onClick === void 0 ? void 0 : onClick(event);
595
- toggleSidebar();
596
- }
597
- }, props), {
598
- children: [
599
- /* @__PURE__ */ jsx7(PanelLeft, {}),
600
- /* @__PURE__ */ jsx7("span", {
601
- className: "sr-only",
602
- children: "Toggle Sidebar"
603
- })
604
- ]
605
- }));
606
- });
607
- SidebarTrigger.displayName = "SidebarTrigger";
608
- var SidebarRail = React6.forwardRef(function(_param, ref) {
609
- var className = _param.className, props = _object_without_properties(_param, [
610
- "className"
611
- ]);
612
- var toggleSidebar = useSidebar().toggleSidebar;
613
- return /* @__PURE__ */ jsx7("button", _object_spread({
614
- ref: ref,
615
- "data-sidebar": "rail",
616
- "aria-label": "Toggle Sidebar",
617
- tabIndex: -1,
618
- onClick: toggleSidebar,
619
- title: "Toggle Sidebar",
620
- className: cn("absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex", "[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize", "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize", "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar", "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2", "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2", className)
621
- }, props));
622
- });
623
- SidebarRail.displayName = "SidebarRail";
624
- var SidebarInset = React6.forwardRef(function(_param, ref) {
625
- var className = _param.className, props = _object_without_properties(_param, [
626
- "className"
627
- ]);
628
- return /* @__PURE__ */ jsx7("main", _object_spread({
629
- ref: ref,
630
- className: cn("relative flex w-full flex-1 flex-col bg-background", "md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow", className)
631
- }, props));
632
- });
633
- SidebarInset.displayName = "SidebarInset";
634
- var SidebarInput = React6.forwardRef(function(_param, ref) {
635
- var className = _param.className, props = _object_without_properties(_param, [
636
- "className"
637
- ]);
638
- return /* @__PURE__ */ jsx7(Input, _object_spread({
639
- ref: ref,
640
- "data-sidebar": "input",
641
- className: cn("h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring", className)
642
- }, props));
643
- });
644
- SidebarInput.displayName = "SidebarInput";
645
- var SidebarHeader = React6.forwardRef(function(_param, ref) {
646
- var className = _param.className, props = _object_without_properties(_param, [
647
- "className"
648
- ]);
649
- return /* @__PURE__ */ jsx7("div", _object_spread({
650
- ref: ref,
651
- "data-sidebar": "header",
652
- className: cn("flex flex-col gap-2 p-2", className)
653
- }, props));
654
- });
655
- SidebarHeader.displayName = "SidebarHeader";
656
- var SidebarFooter = React6.forwardRef(function(_param, ref) {
657
- var className = _param.className, props = _object_without_properties(_param, [
658
- "className"
659
- ]);
660
- return /* @__PURE__ */ jsx7("div", _object_spread({
661
- ref: ref,
662
- "data-sidebar": "footer",
663
- className: cn("flex flex-col gap-2 p-2", className)
664
- }, props));
665
- });
666
- SidebarFooter.displayName = "SidebarFooter";
667
- var SidebarSeparator = React6.forwardRef(function(_param, ref) {
668
- var className = _param.className, props = _object_without_properties(_param, [
669
- "className"
670
- ]);
671
- return /* @__PURE__ */ jsx7(Separator, _object_spread({
672
- ref: ref,
673
- "data-sidebar": "separator",
674
- className: cn("mx-2 w-auto bg-sidebar-border", className)
675
- }, props));
676
- });
677
- SidebarSeparator.displayName = "SidebarSeparator";
678
- var SidebarContent = React6.forwardRef(function(_param, ref) {
679
- var className = _param.className, props = _object_without_properties(_param, [
680
- "className"
681
- ]);
682
- return /* @__PURE__ */ jsx7("div", _object_spread({
683
- ref: ref,
684
- "data-sidebar": "content",
685
- className: cn("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden", className)
686
- }, props));
687
- });
688
- SidebarContent.displayName = "SidebarContent";
689
- var SidebarGroup = React6.forwardRef(function(_param, ref) {
690
- var className = _param.className, props = _object_without_properties(_param, [
691
- "className"
692
- ]);
693
- return /* @__PURE__ */ jsx7("div", _object_spread({
694
- ref: ref,
695
- "data-sidebar": "group",
696
- className: cn("relative flex w-full min-w-0 flex-col p-2", className)
697
- }, props));
698
- });
699
- SidebarGroup.displayName = "SidebarGroup";
700
- var SidebarGroupLabel = React6.forwardRef(function(_param, ref) {
701
- var className = _param.className, _param_asChild = _param.asChild, asChild = _param_asChild === void 0 ? false : _param_asChild, props = _object_without_properties(_param, [
702
- "className",
703
- "asChild"
704
- ]);
705
- var Comp = asChild ? Slot2 : "div";
706
- return /* @__PURE__ */ jsx7(Comp, _object_spread({
707
- ref: ref,
708
- "data-sidebar": "group-label",
709
- className: cn("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0", className)
710
- }, props));
711
- });
712
- SidebarGroupLabel.displayName = "SidebarGroupLabel";
713
- var SidebarGroupAction = React6.forwardRef(function(_param, ref) {
714
- var className = _param.className, _param_asChild = _param.asChild, asChild = _param_asChild === void 0 ? false : _param_asChild, props = _object_without_properties(_param, [
715
- "className",
716
- "asChild"
717
- ]);
718
- var Comp = asChild ? Slot2 : "button";
719
- return /* @__PURE__ */ jsx7(Comp, _object_spread({
720
- ref: ref,
721
- "data-sidebar": "group-action",
722
- className: cn("absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", // Increases the hit area of the button on mobile.
723
- "after:absolute after:-inset-2 after:md:hidden", "group-data-[collapsible=icon]:hidden", className)
724
- }, props));
725
- });
726
- SidebarGroupAction.displayName = "SidebarGroupAction";
727
- var SidebarGroupContent = React6.forwardRef(function(_param, ref) {
728
- var className = _param.className, props = _object_without_properties(_param, [
729
- "className"
730
- ]);
731
- return /* @__PURE__ */ jsx7("div", _object_spread({
732
- ref: ref,
733
- "data-sidebar": "group-content",
734
- className: cn("w-full text-sm", className)
735
- }, props));
736
- });
737
- SidebarGroupContent.displayName = "SidebarGroupContent";
738
- var SidebarMenu = React6.forwardRef(function(_param, ref) {
739
- var className = _param.className, props = _object_without_properties(_param, [
740
- "className"
741
- ]);
742
- return /* @__PURE__ */ jsx7("ul", _object_spread({
743
- ref: ref,
744
- "data-sidebar": "menu",
745
- className: cn("flex w-full min-w-0 flex-col gap-1", className)
746
- }, props));
747
- });
748
- SidebarMenu.displayName = "SidebarMenu";
749
- var SidebarMenuItem = React6.forwardRef(function(_param, ref) {
750
- var className = _param.className, props = _object_without_properties(_param, [
751
- "className"
752
- ]);
753
- return /* @__PURE__ */ jsx7("li", _object_spread({
754
- ref: ref,
755
- "data-sidebar": "menu-item",
756
- className: cn("group/menu-item relative", className)
757
- }, props));
758
- });
759
- SidebarMenuItem.displayName = "SidebarMenuItem";
760
- var sidebarMenuButtonVariants = cva3("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", {
761
- variants: {
762
- variant: {
763
- default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
764
- outline: "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"
765
- },
766
- size: {
767
- default: "text-sm",
768
- sm: "text-xs",
769
- lg: "text-sm group-data-[collapsible=icon]:!p-0"
770
- }
771
- },
772
- defaultVariants: {
773
- variant: "default",
774
- size: "default"
775
- }
776
- });
777
- var SidebarMenuButton = React6.forwardRef(function(_param, ref) {
778
- var _param_asChild = _param.asChild, asChild = _param_asChild === void 0 ? false : _param_asChild, _param_isActive = _param.isActive, isActive = _param_isActive === void 0 ? false : _param_isActive, _param_variant = _param.variant, variant = _param_variant === void 0 ? "default" : _param_variant, _param_size = _param.size, size = _param_size === void 0 ? "default" : _param_size, tooltip = _param.tooltip, className = _param.className, props = _object_without_properties(_param, [
779
- "asChild",
780
- "isActive",
781
- "variant",
782
- "size",
783
- "tooltip",
784
- "className"
785
- ]);
786
- var Comp = asChild ? Slot2 : "button";
787
- var _useSidebar = useSidebar(), isMobile = _useSidebar.isMobile, state = _useSidebar.state;
788
- var button = /* @__PURE__ */ jsx7(Comp, _object_spread({
789
- ref: ref,
790
- "data-sidebar": "menu-button",
791
- "data-size": size,
792
- "data-active": isActive,
793
- className: cn(isActive && "font-bold", sidebarMenuButtonVariants({
794
- variant: variant,
795
- size: size
796
- }), className)
797
- }, props));
798
- if (!tooltip) {
799
- return button;
800
- }
801
- if (typeof tooltip === "string") {
802
- tooltip = {
803
- children: tooltip
804
- };
805
- }
806
- return /* @__PURE__ */ jsxs2(Tooltip, {
807
- children: [
808
- /* @__PURE__ */ jsx7(TooltipTrigger, {
809
- asChild: true,
810
- children: button
811
- }),
812
- /* @__PURE__ */ jsx7(TooltipContent, _object_spread({
813
- side: "right",
814
- align: "center",
815
- hidden: state !== "collapsed" || isMobile
816
- }, tooltip))
817
- ]
818
- });
819
- });
820
- SidebarMenuButton.displayName = "SidebarMenuButton";
821
- var SidebarMenuAction = React6.forwardRef(function(_param, ref) {
822
- var className = _param.className, _param_asChild = _param.asChild, asChild = _param_asChild === void 0 ? false : _param_asChild, _param_showOnHover = _param.showOnHover, showOnHover = _param_showOnHover === void 0 ? false : _param_showOnHover, props = _object_without_properties(_param, [
823
- "className",
824
- "asChild",
825
- "showOnHover"
826
- ]);
827
- var Comp = asChild ? Slot2 : "button";
828
- return /* @__PURE__ */ jsx7(Comp, _object_spread({
829
- ref: ref,
830
- "data-sidebar": "menu-action",
831
- className: cn("absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0", // Increases the hit area of the button on mobile.
832
- "after:absolute after:-inset-2 after:md:hidden", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", showOnHover && "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0", className)
833
- }, props));
834
- });
835
- SidebarMenuAction.displayName = "SidebarMenuAction";
836
- var SidebarMenuBadge = React6.forwardRef(function(_param, ref) {
837
- var className = _param.className, props = _object_without_properties(_param, [
838
- "className"
839
- ]);
840
- return /* @__PURE__ */ jsx7("div", _object_spread({
841
- ref: ref,
842
- "data-sidebar": "menu-badge",
843
- className: cn("pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground", "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", className)
844
- }, props));
845
- });
846
- SidebarMenuBadge.displayName = "SidebarMenuBadge";
847
- var SidebarMenuSkeleton = React6.forwardRef(function(_param, ref) {
848
- var className = _param.className, _param_showIcon = _param.showIcon, showIcon = _param_showIcon === void 0 ? false : _param_showIcon, props = _object_without_properties(_param, [
849
- "className",
850
- "showIcon"
851
- ]);
852
- var width = React6.useMemo(function() {
853
- return "".concat(Math.floor(Math.random() * 40) + 50, "%");
854
- }, []);
855
- return /* @__PURE__ */ jsxs2("div", _object_spread_props(_object_spread({
856
- ref: ref,
857
- "data-sidebar": "menu-skeleton",
858
- className: cn("flex h-8 items-center gap-2 rounded-md px-2", className)
859
- }, props), {
860
- children: [
861
- showIcon && /* @__PURE__ */ jsx7(Skeleton, {
862
- className: "size-4 rounded-md",
863
- "data-sidebar": "menu-skeleton-icon"
864
- }),
865
- /* @__PURE__ */ jsx7(Skeleton, {
866
- className: "h-4 max-w-[--skeleton-width] flex-1",
867
- "data-sidebar": "menu-skeleton-text",
868
- style: {
869
- "--skeleton-width": width
870
- }
871
- })
872
- ]
873
- }));
874
- });
875
- SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
876
- var SidebarMenuSub = React6.forwardRef(function(_param, ref) {
877
- var className = _param.className, props = _object_without_properties(_param, [
878
- "className"
879
- ]);
880
- return /* @__PURE__ */ jsx7("ul", _object_spread({
881
- ref: ref,
882
- "data-sidebar": "menu-sub",
883
- className: cn("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5", "group-data-[collapsible=icon]:hidden", className)
884
- }, props));
885
- });
886
- SidebarMenuSub.displayName = "SidebarMenuSub";
887
- var SidebarMenuSubItem = React6.forwardRef(function(_param, ref) {
888
- var props = _extends({}, _object_destructuring_empty(_param));
889
- return /* @__PURE__ */ jsx7("li", _object_spread({
890
- ref: ref
891
- }, props));
892
- });
893
- SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
894
- var SidebarMenuSubButton = React6.forwardRef(function(_param, ref) {
895
- var _param_asChild = _param.asChild, asChild = _param_asChild === void 0 ? false : _param_asChild, _param_size = _param.size, size = _param_size === void 0 ? "md" : _param_size, isActive = _param.isActive, className = _param.className, props = _object_without_properties(_param, [
896
- "asChild",
897
- "size",
898
- "isActive",
899
- "className"
900
- ]);
901
- var Comp = asChild ? Slot2 : "a";
902
- return /* @__PURE__ */ jsx7(Comp, _object_spread({
903
- ref: ref,
904
- "data-sidebar": "menu-sub-button",
905
- "data-size": size,
906
- "data-active": isActive,
907
- className: cn("flex min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md p-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground", "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground", size === "sm" && "text-xs", size === "md" && "text-sm", isActive && "font-bold", "group-data-[collapsible=icon]:hidden", className)
908
- }, props));
909
- });
910
- SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
911
- export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar };
912
- //# sourceMappingURL=sidebar.esm.js.map