@akira-io/ui 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +151 -0
- package/dist/blocks.d.ts +186 -0
- package/dist/blocks.js +921 -0
- package/dist/blocks.js.map +1 -0
- package/dist/chunk-42BJBH56.js +786 -0
- package/dist/chunk-42BJBH56.js.map +1 -0
- package/dist/chunk-5MQWJVM2.js +1291 -0
- package/dist/chunk-5MQWJVM2.js.map +1 -0
- package/dist/chunk-A2SIZOEA.js +413 -0
- package/dist/chunk-A2SIZOEA.js.map +1 -0
- package/dist/chunk-POE7OYET.js +96 -0
- package/dist/chunk-POE7OYET.js.map +1 -0
- package/dist/chunk-UXL33CZ4.js +170 -0
- package/dist/chunk-UXL33CZ4.js.map +1 -0
- package/dist/date-range-filter-QEa8fhUM.d.ts +149 -0
- package/dist/index.d.ts +474 -0
- package/dist/index.js +3094 -0
- package/dist/index.js.map +1 -0
- package/dist/inertia.d.ts +41 -0
- package/dist/inertia.js +86 -0
- package/dist/inertia.js.map +1 -0
- package/dist/language-Bft6rBBt.d.ts +14 -0
- package/dist/locales/pt.d.ts +21 -0
- package/dist/locales/pt.js +79 -0
- package/dist/locales/pt.js.map +1 -0
- package/dist/shells.d.ts +121 -0
- package/dist/shells.js +101 -0
- package/dist/shells.js.map +1 -0
- package/dist/sidebar-BDhG9SUU.d.ts +88 -0
- package/dist/types-Cno1_Ijx.d.ts +40 -0
- package/dist/types-cOieac8G.d.ts +77 -0
- package/dist/types-u1qfmJQi.d.ts +28 -0
- package/package.json +142 -0
- package/theme.css +224 -0
- package/themes/nosferry.css +9 -0
|
@@ -0,0 +1,1291 @@
|
|
|
1
|
+
import { cn, elevatedSurface, nestedSurfaceReset, menuSurface, focusRing, floatingSurface, Button, Input } from './chunk-POE7OYET.js';
|
|
2
|
+
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
5
|
+
import { ChevronRight, MoreHorizontal, CheckIcon, CircleIcon, ChevronRightIcon, XIcon, PanelLeftIcon } from 'lucide-react';
|
|
6
|
+
import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
|
|
7
|
+
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
8
|
+
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
|
9
|
+
import * as SheetPrimitive from '@radix-ui/react-dialog';
|
|
10
|
+
import * as React2 from 'react';
|
|
11
|
+
import { useState, useEffect } from 'react';
|
|
12
|
+
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
13
|
+
import { cva } from 'class-variance-authority';
|
|
14
|
+
|
|
15
|
+
function Avatar({
|
|
16
|
+
className,
|
|
17
|
+
...props
|
|
18
|
+
}) {
|
|
19
|
+
return /* @__PURE__ */ jsx(
|
|
20
|
+
AvatarPrimitive.Root,
|
|
21
|
+
{
|
|
22
|
+
"data-slot": "avatar",
|
|
23
|
+
className: cn(
|
|
24
|
+
"size-8 relative flex shrink-0 overflow-hidden rounded-full",
|
|
25
|
+
className
|
|
26
|
+
),
|
|
27
|
+
...props
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
function AvatarImage({
|
|
32
|
+
className,
|
|
33
|
+
...props
|
|
34
|
+
}) {
|
|
35
|
+
return /* @__PURE__ */ jsx(
|
|
36
|
+
AvatarPrimitive.Image,
|
|
37
|
+
{
|
|
38
|
+
"data-slot": "avatar-image",
|
|
39
|
+
className: cn("aspect-square size-full", className),
|
|
40
|
+
...props
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
function AvatarFallback({
|
|
45
|
+
className,
|
|
46
|
+
...props
|
|
47
|
+
}) {
|
|
48
|
+
return /* @__PURE__ */ jsx(
|
|
49
|
+
AvatarPrimitive.Fallback,
|
|
50
|
+
{
|
|
51
|
+
"data-slot": "avatar-fallback",
|
|
52
|
+
className: cn(
|
|
53
|
+
"flex size-full items-center justify-center rounded-full bg-muted",
|
|
54
|
+
className
|
|
55
|
+
),
|
|
56
|
+
...props
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
function Breadcrumb({ ...props }) {
|
|
61
|
+
return /* @__PURE__ */ jsx("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
|
|
62
|
+
}
|
|
63
|
+
function BreadcrumbList({ className, ...props }) {
|
|
64
|
+
return /* @__PURE__ */ jsx(
|
|
65
|
+
"ol",
|
|
66
|
+
{
|
|
67
|
+
"data-slot": "breadcrumb-list",
|
|
68
|
+
className: cn(
|
|
69
|
+
"gap-1.5 text-sm sm:gap-2.5 flex flex-wrap items-center break-words text-muted-foreground",
|
|
70
|
+
className
|
|
71
|
+
),
|
|
72
|
+
...props
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
function BreadcrumbItem({ className, ...props }) {
|
|
77
|
+
return /* @__PURE__ */ jsx(
|
|
78
|
+
"li",
|
|
79
|
+
{
|
|
80
|
+
"data-slot": "breadcrumb-item",
|
|
81
|
+
className: cn("gap-1.5 inline-flex items-center", className),
|
|
82
|
+
...props
|
|
83
|
+
}
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
function BreadcrumbLink({
|
|
87
|
+
asChild,
|
|
88
|
+
className,
|
|
89
|
+
...props
|
|
90
|
+
}) {
|
|
91
|
+
const Comp = asChild ? Slot : "a";
|
|
92
|
+
return /* @__PURE__ */ jsx(
|
|
93
|
+
Comp,
|
|
94
|
+
{
|
|
95
|
+
"data-slot": "breadcrumb-link",
|
|
96
|
+
className: cn("transition-colors hover:text-foreground", className),
|
|
97
|
+
...props
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
function BreadcrumbPage({ className, ...props }) {
|
|
102
|
+
return /* @__PURE__ */ jsx(
|
|
103
|
+
"span",
|
|
104
|
+
{
|
|
105
|
+
"data-slot": "breadcrumb-page",
|
|
106
|
+
role: "link",
|
|
107
|
+
"aria-disabled": "true",
|
|
108
|
+
"aria-current": "page",
|
|
109
|
+
className: cn("font-semibold text-foreground", className),
|
|
110
|
+
...props
|
|
111
|
+
}
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
function BreadcrumbSeparator({
|
|
115
|
+
children,
|
|
116
|
+
className,
|
|
117
|
+
...props
|
|
118
|
+
}) {
|
|
119
|
+
return /* @__PURE__ */ jsx(
|
|
120
|
+
"li",
|
|
121
|
+
{
|
|
122
|
+
"data-slot": "breadcrumb-separator",
|
|
123
|
+
role: "presentation",
|
|
124
|
+
"aria-hidden": "true",
|
|
125
|
+
className: cn("[&>svg]:size-3.5", className),
|
|
126
|
+
...props,
|
|
127
|
+
children: children ?? /* @__PURE__ */ jsx(ChevronRight, {})
|
|
128
|
+
}
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
function BreadcrumbEllipsis({
|
|
132
|
+
className,
|
|
133
|
+
...props
|
|
134
|
+
}) {
|
|
135
|
+
return /* @__PURE__ */ jsxs(
|
|
136
|
+
"span",
|
|
137
|
+
{
|
|
138
|
+
"data-slot": "breadcrumb-ellipsis",
|
|
139
|
+
role: "presentation",
|
|
140
|
+
"aria-hidden": "true",
|
|
141
|
+
className: cn(
|
|
142
|
+
"size-9 rounded-xl flex items-center justify-center",
|
|
143
|
+
className
|
|
144
|
+
),
|
|
145
|
+
...props,
|
|
146
|
+
children: [
|
|
147
|
+
/* @__PURE__ */ jsx(MoreHorizontal, { className: "size-4" }),
|
|
148
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "More" })
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
function Collapsible({
|
|
154
|
+
className,
|
|
155
|
+
...props
|
|
156
|
+
}) {
|
|
157
|
+
return /* @__PURE__ */ jsx(
|
|
158
|
+
CollapsiblePrimitive.Root,
|
|
159
|
+
{
|
|
160
|
+
"data-slot": "collapsible",
|
|
161
|
+
className: cn(
|
|
162
|
+
elevatedSurface,
|
|
163
|
+
nestedSurfaceReset,
|
|
164
|
+
"p-5 bg-card",
|
|
165
|
+
className
|
|
166
|
+
),
|
|
167
|
+
...props
|
|
168
|
+
}
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
function CollapsibleTrigger2({
|
|
172
|
+
...props
|
|
173
|
+
}) {
|
|
174
|
+
return /* @__PURE__ */ jsx(
|
|
175
|
+
CollapsiblePrimitive.CollapsibleTrigger,
|
|
176
|
+
{
|
|
177
|
+
"data-slot": "collapsible-trigger",
|
|
178
|
+
...props
|
|
179
|
+
}
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
function CollapsibleContent2({
|
|
183
|
+
...props
|
|
184
|
+
}) {
|
|
185
|
+
return /* @__PURE__ */ jsx(
|
|
186
|
+
CollapsiblePrimitive.CollapsibleContent,
|
|
187
|
+
{
|
|
188
|
+
"data-slot": "collapsible-content",
|
|
189
|
+
...props
|
|
190
|
+
}
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
function DropdownMenu({
|
|
194
|
+
modal = false,
|
|
195
|
+
...props
|
|
196
|
+
}) {
|
|
197
|
+
return /* @__PURE__ */ jsx(
|
|
198
|
+
DropdownMenuPrimitive.Root,
|
|
199
|
+
{
|
|
200
|
+
"data-slot": "dropdown-menu",
|
|
201
|
+
modal,
|
|
202
|
+
...props
|
|
203
|
+
}
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
function DropdownMenuPortal({
|
|
207
|
+
...props
|
|
208
|
+
}) {
|
|
209
|
+
return /* @__PURE__ */ jsx(
|
|
210
|
+
DropdownMenuPrimitive.Portal,
|
|
211
|
+
{
|
|
212
|
+
"data-slot": "dropdown-menu-portal",
|
|
213
|
+
...props
|
|
214
|
+
}
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
function DropdownMenuTrigger({
|
|
218
|
+
...props
|
|
219
|
+
}) {
|
|
220
|
+
return /* @__PURE__ */ jsx(
|
|
221
|
+
DropdownMenuPrimitive.Trigger,
|
|
222
|
+
{
|
|
223
|
+
"data-slot": "dropdown-menu-trigger",
|
|
224
|
+
...props
|
|
225
|
+
}
|
|
226
|
+
);
|
|
227
|
+
}
|
|
228
|
+
function DropdownMenuContent({
|
|
229
|
+
className,
|
|
230
|
+
sideOffset = 4,
|
|
231
|
+
...props
|
|
232
|
+
}) {
|
|
233
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
234
|
+
DropdownMenuPrimitive.Content,
|
|
235
|
+
{
|
|
236
|
+
"data-slot": "dropdown-menu-content",
|
|
237
|
+
sideOffset,
|
|
238
|
+
className: cn(
|
|
239
|
+
`${menuSurface} data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 p-1.5 z-50 min-w-[8rem] overflow-hidden`,
|
|
240
|
+
className
|
|
241
|
+
),
|
|
242
|
+
...props
|
|
243
|
+
}
|
|
244
|
+
) });
|
|
245
|
+
}
|
|
246
|
+
function DropdownMenuGroup({
|
|
247
|
+
...props
|
|
248
|
+
}) {
|
|
249
|
+
return /* @__PURE__ */ jsx(
|
|
250
|
+
DropdownMenuPrimitive.Group,
|
|
251
|
+
{
|
|
252
|
+
"data-slot": "dropdown-menu-group",
|
|
253
|
+
...props
|
|
254
|
+
}
|
|
255
|
+
);
|
|
256
|
+
}
|
|
257
|
+
function DropdownMenuItem({
|
|
258
|
+
className,
|
|
259
|
+
inset,
|
|
260
|
+
variant = "default",
|
|
261
|
+
...props
|
|
262
|
+
}) {
|
|
263
|
+
return /* @__PURE__ */ jsx(
|
|
264
|
+
DropdownMenuPrimitive.Item,
|
|
265
|
+
{
|
|
266
|
+
"data-slot": "dropdown-menu-item",
|
|
267
|
+
"data-inset": inset,
|
|
268
|
+
"data-variant": variant,
|
|
269
|
+
className: cn(
|
|
270
|
+
"font-medium gap-2 rounded-xl px-2 py-2 text-sm data-[inset]:pl-8 [&_svg:not([class*='size-'])]:size-5 focus:font-semibold relative flex cursor-default items-center outline-hidden transition-all select-none focus:bg-primary/10 focus:text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:!text-destructive",
|
|
271
|
+
className
|
|
272
|
+
),
|
|
273
|
+
...props
|
|
274
|
+
}
|
|
275
|
+
);
|
|
276
|
+
}
|
|
277
|
+
function DropdownMenuCheckboxItem({
|
|
278
|
+
className,
|
|
279
|
+
children,
|
|
280
|
+
checked,
|
|
281
|
+
...props
|
|
282
|
+
}) {
|
|
283
|
+
return /* @__PURE__ */ jsxs(
|
|
284
|
+
DropdownMenuPrimitive.CheckboxItem,
|
|
285
|
+
{
|
|
286
|
+
"data-slot": "dropdown-menu-checkbox-item",
|
|
287
|
+
className: cn(
|
|
288
|
+
"gap-2 py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
289
|
+
className
|
|
290
|
+
),
|
|
291
|
+
checked,
|
|
292
|
+
...props,
|
|
293
|
+
children: [
|
|
294
|
+
/* @__PURE__ */ jsx("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) }) }),
|
|
295
|
+
children
|
|
296
|
+
]
|
|
297
|
+
}
|
|
298
|
+
);
|
|
299
|
+
}
|
|
300
|
+
function DropdownMenuRadioGroup({
|
|
301
|
+
...props
|
|
302
|
+
}) {
|
|
303
|
+
return /* @__PURE__ */ jsx(
|
|
304
|
+
DropdownMenuPrimitive.RadioGroup,
|
|
305
|
+
{
|
|
306
|
+
"data-slot": "dropdown-menu-radio-group",
|
|
307
|
+
...props
|
|
308
|
+
}
|
|
309
|
+
);
|
|
310
|
+
}
|
|
311
|
+
function DropdownMenuRadioItem({
|
|
312
|
+
className,
|
|
313
|
+
children,
|
|
314
|
+
...props
|
|
315
|
+
}) {
|
|
316
|
+
return /* @__PURE__ */ jsxs(
|
|
317
|
+
DropdownMenuPrimitive.RadioItem,
|
|
318
|
+
{
|
|
319
|
+
"data-slot": "dropdown-menu-radio-item",
|
|
320
|
+
className: cn(
|
|
321
|
+
"gap-2 py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
322
|
+
className
|
|
323
|
+
),
|
|
324
|
+
...props,
|
|
325
|
+
children: [
|
|
326
|
+
/* @__PURE__ */ jsx("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
327
|
+
children
|
|
328
|
+
]
|
|
329
|
+
}
|
|
330
|
+
);
|
|
331
|
+
}
|
|
332
|
+
function DropdownMenuLabel({
|
|
333
|
+
className,
|
|
334
|
+
inset,
|
|
335
|
+
...props
|
|
336
|
+
}) {
|
|
337
|
+
return /* @__PURE__ */ jsx(
|
|
338
|
+
DropdownMenuPrimitive.Label,
|
|
339
|
+
{
|
|
340
|
+
"data-slot": "dropdown-menu-label",
|
|
341
|
+
"data-inset": inset,
|
|
342
|
+
className: cn(
|
|
343
|
+
"px-2 py-2 text-xs font-medium tracking-wider data-[inset]:pl-8 text-muted-foreground uppercase",
|
|
344
|
+
className
|
|
345
|
+
),
|
|
346
|
+
...props
|
|
347
|
+
}
|
|
348
|
+
);
|
|
349
|
+
}
|
|
350
|
+
function DropdownMenuSeparator({
|
|
351
|
+
className,
|
|
352
|
+
...props
|
|
353
|
+
}) {
|
|
354
|
+
return /* @__PURE__ */ jsx(
|
|
355
|
+
DropdownMenuPrimitive.Separator,
|
|
356
|
+
{
|
|
357
|
+
"data-slot": "dropdown-menu-separator",
|
|
358
|
+
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
359
|
+
...props
|
|
360
|
+
}
|
|
361
|
+
);
|
|
362
|
+
}
|
|
363
|
+
function DropdownMenuShortcut({
|
|
364
|
+
className,
|
|
365
|
+
...props
|
|
366
|
+
}) {
|
|
367
|
+
return /* @__PURE__ */ jsx(
|
|
368
|
+
"span",
|
|
369
|
+
{
|
|
370
|
+
"data-slot": "dropdown-menu-shortcut",
|
|
371
|
+
className: cn(
|
|
372
|
+
"text-xs tracking-widest ml-auto text-muted-foreground",
|
|
373
|
+
className
|
|
374
|
+
),
|
|
375
|
+
...props
|
|
376
|
+
}
|
|
377
|
+
);
|
|
378
|
+
}
|
|
379
|
+
function DropdownMenuSub({
|
|
380
|
+
...props
|
|
381
|
+
}) {
|
|
382
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
|
|
383
|
+
}
|
|
384
|
+
function DropdownMenuSubTrigger({
|
|
385
|
+
className,
|
|
386
|
+
inset,
|
|
387
|
+
children,
|
|
388
|
+
...props
|
|
389
|
+
}) {
|
|
390
|
+
return /* @__PURE__ */ jsxs(
|
|
391
|
+
DropdownMenuPrimitive.SubTrigger,
|
|
392
|
+
{
|
|
393
|
+
"data-slot": "dropdown-menu-sub-trigger",
|
|
394
|
+
"data-inset": inset,
|
|
395
|
+
className: cn(
|
|
396
|
+
"font-medium rounded-xl px-2 py-2 text-sm data-[inset]:pl-8 focus:font-semibold data-[state=open]:font-semibold flex cursor-default items-center outline-hidden transition-all select-none focus:bg-primary/10 focus:text-primary data-[state=open]:bg-primary/10 data-[state=open]:text-primary",
|
|
397
|
+
className
|
|
398
|
+
),
|
|
399
|
+
...props,
|
|
400
|
+
children: [
|
|
401
|
+
children,
|
|
402
|
+
/* @__PURE__ */ jsx(ChevronRightIcon, { className: "size-4 ml-auto" })
|
|
403
|
+
]
|
|
404
|
+
}
|
|
405
|
+
);
|
|
406
|
+
}
|
|
407
|
+
function DropdownMenuSubContent({
|
|
408
|
+
className,
|
|
409
|
+
...props
|
|
410
|
+
}) {
|
|
411
|
+
return /* @__PURE__ */ jsx(
|
|
412
|
+
DropdownMenuPrimitive.SubContent,
|
|
413
|
+
{
|
|
414
|
+
"data-slot": "dropdown-menu-sub-content",
|
|
415
|
+
className: cn(
|
|
416
|
+
`${menuSurface} data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 p-1.5 z-50 min-w-[8rem] overflow-hidden`,
|
|
417
|
+
className
|
|
418
|
+
),
|
|
419
|
+
...props
|
|
420
|
+
}
|
|
421
|
+
);
|
|
422
|
+
}
|
|
423
|
+
function Icon({ iconNode: IconComponent, className }) {
|
|
424
|
+
if (!IconComponent) {
|
|
425
|
+
return null;
|
|
426
|
+
}
|
|
427
|
+
return /* @__PURE__ */ jsx(IconComponent, { className });
|
|
428
|
+
}
|
|
429
|
+
function Separator2({
|
|
430
|
+
className,
|
|
431
|
+
orientation = "horizontal",
|
|
432
|
+
decorative = true,
|
|
433
|
+
...props
|
|
434
|
+
}) {
|
|
435
|
+
return /* @__PURE__ */ jsx(
|
|
436
|
+
SeparatorPrimitive.Root,
|
|
437
|
+
{
|
|
438
|
+
"data-slot": "separator-root",
|
|
439
|
+
decorative,
|
|
440
|
+
orientation,
|
|
441
|
+
className: cn(
|
|
442
|
+
"shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
|
|
443
|
+
className
|
|
444
|
+
),
|
|
445
|
+
...props
|
|
446
|
+
}
|
|
447
|
+
);
|
|
448
|
+
}
|
|
449
|
+
function Sheet({
|
|
450
|
+
preserveScroll = false,
|
|
451
|
+
onOpenChange: onOpenChangeProp,
|
|
452
|
+
...props
|
|
453
|
+
}) {
|
|
454
|
+
const scrollPosition = React2.useRef(0);
|
|
455
|
+
const onOpenChange = (open) => {
|
|
456
|
+
if (preserveScroll) {
|
|
457
|
+
if (open) {
|
|
458
|
+
scrollPosition.current = window.scrollY;
|
|
459
|
+
} else {
|
|
460
|
+
setTimeout(() => {
|
|
461
|
+
window.scrollTo(0, scrollPosition.current);
|
|
462
|
+
}, 0);
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
onOpenChangeProp?.(open);
|
|
466
|
+
};
|
|
467
|
+
return /* @__PURE__ */ jsx(
|
|
468
|
+
SheetPrimitive.Root,
|
|
469
|
+
{
|
|
470
|
+
"data-slot": "sheet",
|
|
471
|
+
...props,
|
|
472
|
+
onOpenChange
|
|
473
|
+
}
|
|
474
|
+
);
|
|
475
|
+
}
|
|
476
|
+
function SheetTrigger({
|
|
477
|
+
...props
|
|
478
|
+
}) {
|
|
479
|
+
return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, { "data-slot": "sheet-trigger", ...props });
|
|
480
|
+
}
|
|
481
|
+
function SheetClose({
|
|
482
|
+
...props
|
|
483
|
+
}) {
|
|
484
|
+
return /* @__PURE__ */ jsx(SheetPrimitive.Close, { "data-slot": "sheet-close", ...props });
|
|
485
|
+
}
|
|
486
|
+
function SheetPortal({
|
|
487
|
+
...props
|
|
488
|
+
}) {
|
|
489
|
+
return /* @__PURE__ */ jsx(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
|
|
490
|
+
}
|
|
491
|
+
function SheetOverlay({
|
|
492
|
+
className,
|
|
493
|
+
...props
|
|
494
|
+
}) {
|
|
495
|
+
return /* @__PURE__ */ jsx(
|
|
496
|
+
SheetPrimitive.Overlay,
|
|
497
|
+
{
|
|
498
|
+
"data-slot": "sheet-overlay",
|
|
499
|
+
className: cn(
|
|
500
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 inset-0 bg-black/60 backdrop-blur-sm fixed z-50",
|
|
501
|
+
className
|
|
502
|
+
),
|
|
503
|
+
...props
|
|
504
|
+
}
|
|
505
|
+
);
|
|
506
|
+
}
|
|
507
|
+
function SheetContent({
|
|
508
|
+
className,
|
|
509
|
+
children,
|
|
510
|
+
side = "right",
|
|
511
|
+
...props
|
|
512
|
+
}) {
|
|
513
|
+
return /* @__PURE__ */ jsxs(SheetPortal, { children: [
|
|
514
|
+
/* @__PURE__ */ jsx(SheetOverlay, {}),
|
|
515
|
+
/* @__PURE__ */ jsxs(
|
|
516
|
+
SheetPrimitive.Content,
|
|
517
|
+
{
|
|
518
|
+
"data-slot": "sheet-content",
|
|
519
|
+
className: cn(
|
|
520
|
+
`${floatingSurface} data-[state=open]:animate-in data-[state=closed]:animate-out gap-4 ease-in-out fixed z-50 flex flex-col transition data-[state=closed]:duration-300 data-[state=open]:duration-500`,
|
|
521
|
+
side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 sm:max-w-sm rounded-l-3xl h-full w-3/4 border-l border-border",
|
|
522
|
+
side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 sm:max-w-sm rounded-r-3xl h-full w-3/4 border-r border-border",
|
|
523
|
+
side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 rounded-b-3xl h-auto border-b border-border",
|
|
524
|
+
side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 rounded-t-3xl h-auto border-t border-border",
|
|
525
|
+
className
|
|
526
|
+
),
|
|
527
|
+
...props,
|
|
528
|
+
children: [
|
|
529
|
+
children,
|
|
530
|
+
/* @__PURE__ */ jsxs(
|
|
531
|
+
SheetPrimitive.Close,
|
|
532
|
+
{
|
|
533
|
+
className: cn(
|
|
534
|
+
"top-4 right-4 size-9 shadow-xs absolute flex items-center justify-center rounded-full border border-border bg-muted text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:pointer-events-none",
|
|
535
|
+
focusRing
|
|
536
|
+
),
|
|
537
|
+
children: [
|
|
538
|
+
/* @__PURE__ */ jsx(XIcon, { className: "size-4" }),
|
|
539
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
540
|
+
]
|
|
541
|
+
}
|
|
542
|
+
)
|
|
543
|
+
]
|
|
544
|
+
}
|
|
545
|
+
)
|
|
546
|
+
] });
|
|
547
|
+
}
|
|
548
|
+
function SheetHeader({ className, ...props }) {
|
|
549
|
+
return /* @__PURE__ */ jsx(
|
|
550
|
+
"div",
|
|
551
|
+
{
|
|
552
|
+
"data-slot": "sheet-header",
|
|
553
|
+
className: cn("gap-1.5 p-4 flex flex-col", className),
|
|
554
|
+
...props
|
|
555
|
+
}
|
|
556
|
+
);
|
|
557
|
+
}
|
|
558
|
+
function SheetFooter({ className, ...props }) {
|
|
559
|
+
return /* @__PURE__ */ jsx(
|
|
560
|
+
"div",
|
|
561
|
+
{
|
|
562
|
+
"data-slot": "sheet-footer",
|
|
563
|
+
className: cn("gap-2 p-4 mt-auto flex flex-col", className),
|
|
564
|
+
...props
|
|
565
|
+
}
|
|
566
|
+
);
|
|
567
|
+
}
|
|
568
|
+
function SheetTitle({
|
|
569
|
+
className,
|
|
570
|
+
...props
|
|
571
|
+
}) {
|
|
572
|
+
return /* @__PURE__ */ jsx(
|
|
573
|
+
SheetPrimitive.Title,
|
|
574
|
+
{
|
|
575
|
+
"data-slot": "sheet-title",
|
|
576
|
+
className: cn("font-semibold text-foreground", className),
|
|
577
|
+
...props
|
|
578
|
+
}
|
|
579
|
+
);
|
|
580
|
+
}
|
|
581
|
+
function SheetDescription({
|
|
582
|
+
className,
|
|
583
|
+
...props
|
|
584
|
+
}) {
|
|
585
|
+
return /* @__PURE__ */ jsx(
|
|
586
|
+
SheetPrimitive.Description,
|
|
587
|
+
{
|
|
588
|
+
"data-slot": "sheet-description",
|
|
589
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
590
|
+
...props
|
|
591
|
+
}
|
|
592
|
+
);
|
|
593
|
+
}
|
|
594
|
+
function Skeleton({ className, ...props }) {
|
|
595
|
+
return /* @__PURE__ */ jsx(
|
|
596
|
+
"div",
|
|
597
|
+
{
|
|
598
|
+
"data-slot": "skeleton",
|
|
599
|
+
className: cn("animate-pulse rounded-xl bg-muted", className),
|
|
600
|
+
...props
|
|
601
|
+
}
|
|
602
|
+
);
|
|
603
|
+
}
|
|
604
|
+
function TooltipProvider({
|
|
605
|
+
delayDuration = 0,
|
|
606
|
+
...props
|
|
607
|
+
}) {
|
|
608
|
+
return /* @__PURE__ */ jsx(
|
|
609
|
+
TooltipPrimitive.Provider,
|
|
610
|
+
{
|
|
611
|
+
"data-slot": "tooltip-provider",
|
|
612
|
+
delayDuration,
|
|
613
|
+
...props
|
|
614
|
+
}
|
|
615
|
+
);
|
|
616
|
+
}
|
|
617
|
+
function Tooltip({
|
|
618
|
+
...props
|
|
619
|
+
}) {
|
|
620
|
+
return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
|
|
621
|
+
}
|
|
622
|
+
function TooltipTrigger({
|
|
623
|
+
...props
|
|
624
|
+
}) {
|
|
625
|
+
return /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
626
|
+
}
|
|
627
|
+
function TooltipContent({
|
|
628
|
+
className,
|
|
629
|
+
sideOffset = 4,
|
|
630
|
+
children,
|
|
631
|
+
...props
|
|
632
|
+
}) {
|
|
633
|
+
return /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
634
|
+
TooltipPrimitive.Content,
|
|
635
|
+
{
|
|
636
|
+
"data-slot": "tooltip-content",
|
|
637
|
+
sideOffset,
|
|
638
|
+
className: cn(
|
|
639
|
+
"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 max-w-sm px-3 py-1.5 text-xs shadow-2xl rounded-xl z-50 bg-primary text-primary-foreground",
|
|
640
|
+
className
|
|
641
|
+
),
|
|
642
|
+
...props,
|
|
643
|
+
children: [
|
|
644
|
+
children,
|
|
645
|
+
/* @__PURE__ */ jsx(TooltipPrimitive.Arrow, { className: "size-2.5 z-50 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-primary fill-primary" })
|
|
646
|
+
]
|
|
647
|
+
}
|
|
648
|
+
) });
|
|
649
|
+
}
|
|
650
|
+
var MOBILE_BREAKPOINT = 768;
|
|
651
|
+
function useIsMobile() {
|
|
652
|
+
const [isMobile, setIsMobile] = useState();
|
|
653
|
+
useEffect(() => {
|
|
654
|
+
const mql = window.matchMedia(
|
|
655
|
+
`(max-width: ${MOBILE_BREAKPOINT - 1}px)`
|
|
656
|
+
);
|
|
657
|
+
const onChange = () => {
|
|
658
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
659
|
+
};
|
|
660
|
+
mql.addEventListener("change", onChange);
|
|
661
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
662
|
+
return () => mql.removeEventListener("change", onChange);
|
|
663
|
+
}, []);
|
|
664
|
+
return !!isMobile;
|
|
665
|
+
}
|
|
666
|
+
var SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
667
|
+
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
668
|
+
var SIDEBAR_WIDTH = "16rem";
|
|
669
|
+
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
670
|
+
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
671
|
+
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
672
|
+
var SidebarContext = React2.createContext(null);
|
|
673
|
+
function useSidebar() {
|
|
674
|
+
const context = React2.useContext(SidebarContext);
|
|
675
|
+
if (!context) {
|
|
676
|
+
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
677
|
+
}
|
|
678
|
+
return context;
|
|
679
|
+
}
|
|
680
|
+
function SidebarProvider({
|
|
681
|
+
defaultOpen = true,
|
|
682
|
+
open: openProp,
|
|
683
|
+
onOpenChange: setOpenProp,
|
|
684
|
+
className,
|
|
685
|
+
style,
|
|
686
|
+
children,
|
|
687
|
+
...props
|
|
688
|
+
}) {
|
|
689
|
+
const isMobile = useIsMobile();
|
|
690
|
+
const [openMobile, setOpenMobile] = React2.useState(false);
|
|
691
|
+
const [_open, _setOpen] = React2.useState(defaultOpen);
|
|
692
|
+
const open = openProp ?? _open;
|
|
693
|
+
const setOpen = React2.useCallback(
|
|
694
|
+
(value) => {
|
|
695
|
+
const openState = typeof value === "function" ? value(open) : value;
|
|
696
|
+
if (setOpenProp) {
|
|
697
|
+
setOpenProp(openState);
|
|
698
|
+
} else {
|
|
699
|
+
_setOpen(openState);
|
|
700
|
+
}
|
|
701
|
+
document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
|
|
702
|
+
},
|
|
703
|
+
[setOpenProp, open]
|
|
704
|
+
);
|
|
705
|
+
const toggleSidebar = React2.useCallback(() => {
|
|
706
|
+
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
707
|
+
}, [isMobile, setOpen, setOpenMobile]);
|
|
708
|
+
React2.useEffect(() => {
|
|
709
|
+
const handleKeyDown = (event) => {
|
|
710
|
+
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
711
|
+
event.preventDefault();
|
|
712
|
+
toggleSidebar();
|
|
713
|
+
}
|
|
714
|
+
};
|
|
715
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
716
|
+
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
717
|
+
}, [toggleSidebar]);
|
|
718
|
+
const state = open ? "expanded" : "collapsed";
|
|
719
|
+
const contextValue = React2.useMemo(
|
|
720
|
+
() => ({
|
|
721
|
+
state,
|
|
722
|
+
open,
|
|
723
|
+
setOpen,
|
|
724
|
+
isMobile,
|
|
725
|
+
openMobile,
|
|
726
|
+
setOpenMobile,
|
|
727
|
+
toggleSidebar
|
|
728
|
+
}),
|
|
729
|
+
[
|
|
730
|
+
state,
|
|
731
|
+
open,
|
|
732
|
+
setOpen,
|
|
733
|
+
isMobile,
|
|
734
|
+
openMobile,
|
|
735
|
+
setOpenMobile,
|
|
736
|
+
toggleSidebar
|
|
737
|
+
]
|
|
738
|
+
);
|
|
739
|
+
return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx(
|
|
740
|
+
"div",
|
|
741
|
+
{
|
|
742
|
+
"data-slot": "sidebar-wrapper",
|
|
743
|
+
style: {
|
|
744
|
+
"--sidebar-width": SIDEBAR_WIDTH,
|
|
745
|
+
"--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
|
|
746
|
+
...style
|
|
747
|
+
},
|
|
748
|
+
className: cn(
|
|
749
|
+
"group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",
|
|
750
|
+
className
|
|
751
|
+
),
|
|
752
|
+
...props,
|
|
753
|
+
children
|
|
754
|
+
}
|
|
755
|
+
) }) });
|
|
756
|
+
}
|
|
757
|
+
function Sidebar({
|
|
758
|
+
side = "left",
|
|
759
|
+
variant = "sidebar",
|
|
760
|
+
collapsible = "offcanvas",
|
|
761
|
+
className,
|
|
762
|
+
children,
|
|
763
|
+
...props
|
|
764
|
+
}) {
|
|
765
|
+
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
766
|
+
if (collapsible === "none") {
|
|
767
|
+
return /* @__PURE__ */ jsx(
|
|
768
|
+
"div",
|
|
769
|
+
{
|
|
770
|
+
"data-slot": "sidebar",
|
|
771
|
+
className: cn(
|
|
772
|
+
"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",
|
|
773
|
+
className
|
|
774
|
+
),
|
|
775
|
+
...props,
|
|
776
|
+
children
|
|
777
|
+
}
|
|
778
|
+
);
|
|
779
|
+
}
|
|
780
|
+
if (isMobile) {
|
|
781
|
+
return /* @__PURE__ */ jsxs(
|
|
782
|
+
Sheet,
|
|
783
|
+
{
|
|
784
|
+
open: openMobile,
|
|
785
|
+
onOpenChange: setOpenMobile,
|
|
786
|
+
...props,
|
|
787
|
+
preserveScroll: true,
|
|
788
|
+
children: [
|
|
789
|
+
/* @__PURE__ */ jsxs(SheetHeader, { className: "sr-only", children: [
|
|
790
|
+
/* @__PURE__ */ jsx(SheetTitle, { children: "Sidebar" }),
|
|
791
|
+
/* @__PURE__ */ jsx(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
792
|
+
] }),
|
|
793
|
+
/* @__PURE__ */ jsx(
|
|
794
|
+
SheetContent,
|
|
795
|
+
{
|
|
796
|
+
"data-sidebar": "sidebar",
|
|
797
|
+
"data-slot": "sidebar",
|
|
798
|
+
"data-mobile": "true",
|
|
799
|
+
className: "p-0 w-(--sidebar-width) bg-sidebar text-sidebar-foreground [&>button]:hidden",
|
|
800
|
+
style: {
|
|
801
|
+
"--sidebar-width": SIDEBAR_WIDTH_MOBILE
|
|
802
|
+
},
|
|
803
|
+
side,
|
|
804
|
+
children: /* @__PURE__ */ jsx("div", { className: "flex h-full w-full flex-col", children })
|
|
805
|
+
}
|
|
806
|
+
)
|
|
807
|
+
]
|
|
808
|
+
}
|
|
809
|
+
);
|
|
810
|
+
}
|
|
811
|
+
return /* @__PURE__ */ jsxs(
|
|
812
|
+
"div",
|
|
813
|
+
{
|
|
814
|
+
className: "group peer md:block hidden text-sidebar-foreground",
|
|
815
|
+
"data-state": state,
|
|
816
|
+
"data-collapsible": state === "collapsed" ? collapsible : "",
|
|
817
|
+
"data-variant": variant,
|
|
818
|
+
"data-side": side,
|
|
819
|
+
"data-slot": "sidebar",
|
|
820
|
+
children: [
|
|
821
|
+
/* @__PURE__ */ jsx(
|
|
822
|
+
"div",
|
|
823
|
+
{
|
|
824
|
+
className: cn(
|
|
825
|
+
"relative h-svh w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
|
|
826
|
+
"group-data-[collapsible=offcanvas]:w-0",
|
|
827
|
+
"group-data-[side=right]:rotate-180",
|
|
828
|
+
variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
|
|
829
|
+
)
|
|
830
|
+
}
|
|
831
|
+
),
|
|
832
|
+
/* @__PURE__ */ jsx(
|
|
833
|
+
"div",
|
|
834
|
+
{
|
|
835
|
+
className: cn(
|
|
836
|
+
"inset-y-0 md:flex fixed z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear",
|
|
837
|
+
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)]",
|
|
838
|
+
// Adjust the padding for floating and inset variants.
|
|
839
|
+
variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
|
|
840
|
+
className
|
|
841
|
+
),
|
|
842
|
+
...props,
|
|
843
|
+
children: /* @__PURE__ */ jsx(
|
|
844
|
+
"div",
|
|
845
|
+
{
|
|
846
|
+
"data-sidebar": "sidebar",
|
|
847
|
+
className: "group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:rounded-2xl flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border",
|
|
848
|
+
children
|
|
849
|
+
}
|
|
850
|
+
)
|
|
851
|
+
}
|
|
852
|
+
)
|
|
853
|
+
]
|
|
854
|
+
}
|
|
855
|
+
);
|
|
856
|
+
}
|
|
857
|
+
function SidebarTrigger({
|
|
858
|
+
className,
|
|
859
|
+
onClick,
|
|
860
|
+
...props
|
|
861
|
+
}) {
|
|
862
|
+
const { toggleSidebar } = useSidebar();
|
|
863
|
+
return /* @__PURE__ */ jsxs(
|
|
864
|
+
Button,
|
|
865
|
+
{
|
|
866
|
+
"data-sidebar": "trigger",
|
|
867
|
+
"data-slot": "sidebar-trigger",
|
|
868
|
+
variant: "ghost",
|
|
869
|
+
size: "icon",
|
|
870
|
+
className: cn("h-7 w-7", className),
|
|
871
|
+
onClick: (event) => {
|
|
872
|
+
onClick?.(event);
|
|
873
|
+
toggleSidebar();
|
|
874
|
+
},
|
|
875
|
+
...props,
|
|
876
|
+
children: [
|
|
877
|
+
/* @__PURE__ */ jsx(PanelLeftIcon, {}),
|
|
878
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
879
|
+
]
|
|
880
|
+
}
|
|
881
|
+
);
|
|
882
|
+
}
|
|
883
|
+
function SidebarRail({ className, ...props }) {
|
|
884
|
+
const { toggleSidebar } = useSidebar();
|
|
885
|
+
return /* @__PURE__ */ jsx(
|
|
886
|
+
"button",
|
|
887
|
+
{
|
|
888
|
+
"data-sidebar": "rail",
|
|
889
|
+
"data-slot": "sidebar-rail",
|
|
890
|
+
"aria-label": "Toggle Sidebar",
|
|
891
|
+
tabIndex: -1,
|
|
892
|
+
onClick: toggleSidebar,
|
|
893
|
+
title: "Toggle Sidebar",
|
|
894
|
+
className: cn(
|
|
895
|
+
"inset-y-0 w-4 group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:inset-y-0 sm:flex absolute z-20 hidden -translate-x-1/2 transition-all ease-linear after:absolute after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border",
|
|
896
|
+
"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
|
|
897
|
+
"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
|
|
898
|
+
"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar",
|
|
899
|
+
"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
|
|
900
|
+
"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
|
|
901
|
+
className
|
|
902
|
+
),
|
|
903
|
+
...props
|
|
904
|
+
}
|
|
905
|
+
);
|
|
906
|
+
}
|
|
907
|
+
function SidebarInset({ className, ...props }) {
|
|
908
|
+
return /* @__PURE__ */ jsx(
|
|
909
|
+
"main",
|
|
910
|
+
{
|
|
911
|
+
"data-slot": "sidebar-inset",
|
|
912
|
+
className: cn(
|
|
913
|
+
"relative flex min-h-svh max-w-full flex-1 flex-col bg-background",
|
|
914
|
+
"peer-data-[variant=inset]:min-h-[calc(100svh-(--spacing(4)))] md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-0",
|
|
915
|
+
className
|
|
916
|
+
),
|
|
917
|
+
...props
|
|
918
|
+
}
|
|
919
|
+
);
|
|
920
|
+
}
|
|
921
|
+
function SidebarInput({
|
|
922
|
+
className,
|
|
923
|
+
...props
|
|
924
|
+
}) {
|
|
925
|
+
return /* @__PURE__ */ jsx(
|
|
926
|
+
Input,
|
|
927
|
+
{
|
|
928
|
+
"data-slot": "sidebar-input",
|
|
929
|
+
"data-sidebar": "input",
|
|
930
|
+
className: cn("h-11 w-full bg-background shadow-none", className),
|
|
931
|
+
...props
|
|
932
|
+
}
|
|
933
|
+
);
|
|
934
|
+
}
|
|
935
|
+
function SidebarHeader({ className, ...props }) {
|
|
936
|
+
return /* @__PURE__ */ jsx(
|
|
937
|
+
"div",
|
|
938
|
+
{
|
|
939
|
+
"data-slot": "sidebar-header",
|
|
940
|
+
"data-sidebar": "header",
|
|
941
|
+
className: cn("gap-2 p-2 flex flex-col", className),
|
|
942
|
+
...props
|
|
943
|
+
}
|
|
944
|
+
);
|
|
945
|
+
}
|
|
946
|
+
function SidebarFooter({ className, ...props }) {
|
|
947
|
+
return /* @__PURE__ */ jsx(
|
|
948
|
+
"div",
|
|
949
|
+
{
|
|
950
|
+
"data-slot": "sidebar-footer",
|
|
951
|
+
"data-sidebar": "footer",
|
|
952
|
+
className: cn("gap-2 p-2 flex flex-col", className),
|
|
953
|
+
...props
|
|
954
|
+
}
|
|
955
|
+
);
|
|
956
|
+
}
|
|
957
|
+
function SidebarSeparator({
|
|
958
|
+
className,
|
|
959
|
+
...props
|
|
960
|
+
}) {
|
|
961
|
+
return /* @__PURE__ */ jsx(
|
|
962
|
+
Separator2,
|
|
963
|
+
{
|
|
964
|
+
"data-slot": "sidebar-separator",
|
|
965
|
+
"data-sidebar": "separator",
|
|
966
|
+
className: cn("mx-2 w-auto bg-sidebar-border", className),
|
|
967
|
+
...props
|
|
968
|
+
}
|
|
969
|
+
);
|
|
970
|
+
}
|
|
971
|
+
function SidebarContent({ className, ...props }) {
|
|
972
|
+
return /* @__PURE__ */ jsx(
|
|
973
|
+
"div",
|
|
974
|
+
{
|
|
975
|
+
"data-slot": "sidebar-content",
|
|
976
|
+
"data-sidebar": "content",
|
|
977
|
+
className: cn(
|
|
978
|
+
"min-h-0 gap-2 flex flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden",
|
|
979
|
+
className
|
|
980
|
+
),
|
|
981
|
+
...props
|
|
982
|
+
}
|
|
983
|
+
);
|
|
984
|
+
}
|
|
985
|
+
function SidebarGroup({ className, ...props }) {
|
|
986
|
+
return /* @__PURE__ */ jsx(
|
|
987
|
+
"div",
|
|
988
|
+
{
|
|
989
|
+
"data-slot": "sidebar-group",
|
|
990
|
+
"data-sidebar": "group",
|
|
991
|
+
className: cn(
|
|
992
|
+
"min-w-0 p-2 relative flex w-full flex-col",
|
|
993
|
+
className
|
|
994
|
+
),
|
|
995
|
+
...props
|
|
996
|
+
}
|
|
997
|
+
);
|
|
998
|
+
}
|
|
999
|
+
function SidebarGroupLabel({
|
|
1000
|
+
className,
|
|
1001
|
+
asChild = false,
|
|
1002
|
+
...props
|
|
1003
|
+
}) {
|
|
1004
|
+
const Comp = asChild ? Slot : "div";
|
|
1005
|
+
return /* @__PURE__ */ jsx(
|
|
1006
|
+
Comp,
|
|
1007
|
+
{
|
|
1008
|
+
"data-slot": "sidebar-group-label",
|
|
1009
|
+
"data-sidebar": "group-label",
|
|
1010
|
+
className: cn(
|
|
1011
|
+
"h-8 rounded-xl px-2 text-xs font-medium tracking-wider [&>svg]:size-4 flex shrink-0 items-center text-sidebar-foreground/70 uppercase ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-[3px] focus-visible:ring-ring/50 [&>svg]:shrink-0",
|
|
1012
|
+
"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:pointer-events-none group-data-[collapsible=icon]:opacity-0 group-data-[collapsible=icon]:select-none",
|
|
1013
|
+
className
|
|
1014
|
+
),
|
|
1015
|
+
...props
|
|
1016
|
+
}
|
|
1017
|
+
);
|
|
1018
|
+
}
|
|
1019
|
+
function SidebarGroupAction({
|
|
1020
|
+
className,
|
|
1021
|
+
asChild = false,
|
|
1022
|
+
...props
|
|
1023
|
+
}) {
|
|
1024
|
+
const Comp = asChild ? Slot : "button";
|
|
1025
|
+
return /* @__PURE__ */ jsx(
|
|
1026
|
+
Comp,
|
|
1027
|
+
{
|
|
1028
|
+
"data-slot": "sidebar-group-action",
|
|
1029
|
+
"data-sidebar": "group-action",
|
|
1030
|
+
className: cn(
|
|
1031
|
+
"top-3.5 right-3 w-5 p-0 [&>svg]:size-4 rounded-xl absolute flex aspect-square items-center justify-center text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 [&>svg]:shrink-0",
|
|
1032
|
+
// Increases the hit area of the button on mobile.
|
|
1033
|
+
"after:-inset-2 md:after:hidden after:absolute",
|
|
1034
|
+
"group-data-[collapsible=icon]:hidden",
|
|
1035
|
+
className
|
|
1036
|
+
),
|
|
1037
|
+
...props
|
|
1038
|
+
}
|
|
1039
|
+
);
|
|
1040
|
+
}
|
|
1041
|
+
function SidebarGroupContent({
|
|
1042
|
+
className,
|
|
1043
|
+
...props
|
|
1044
|
+
}) {
|
|
1045
|
+
return /* @__PURE__ */ jsx(
|
|
1046
|
+
"div",
|
|
1047
|
+
{
|
|
1048
|
+
"data-slot": "sidebar-group-content",
|
|
1049
|
+
"data-sidebar": "group-content",
|
|
1050
|
+
className: cn("text-sm w-full", className),
|
|
1051
|
+
...props
|
|
1052
|
+
}
|
|
1053
|
+
);
|
|
1054
|
+
}
|
|
1055
|
+
function SidebarMenu({ className, ...props }) {
|
|
1056
|
+
return /* @__PURE__ */ jsx(
|
|
1057
|
+
"ul",
|
|
1058
|
+
{
|
|
1059
|
+
"data-slot": "sidebar-menu",
|
|
1060
|
+
"data-sidebar": "menu",
|
|
1061
|
+
className: cn("min-w-0 gap-1 flex w-full flex-col", className),
|
|
1062
|
+
...props
|
|
1063
|
+
}
|
|
1064
|
+
);
|
|
1065
|
+
}
|
|
1066
|
+
function SidebarMenuItem({ className, ...props }) {
|
|
1067
|
+
return /* @__PURE__ */ jsx(
|
|
1068
|
+
"li",
|
|
1069
|
+
{
|
|
1070
|
+
"data-slot": "sidebar-menu-item",
|
|
1071
|
+
"data-sidebar": "menu-item",
|
|
1072
|
+
className: cn("group/menu-item relative", className),
|
|
1073
|
+
...props
|
|
1074
|
+
}
|
|
1075
|
+
);
|
|
1076
|
+
}
|
|
1077
|
+
var sidebarMenuButtonVariants = cva(
|
|
1078
|
+
"peer/menu-button flex w-full items-center gap-3 overflow-hidden rounded-xl p-2.5 text-left text-sm font-medium outline-hidden ring-sidebar-ring transition-all hover:bg-accent hover:text-accent-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 active:scale-[0.98] 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-primary/10 data-[active=true]:font-semibold data-[active=true]:text-primary group-data-[collapsible=icon]:size-10! group-data-[collapsible=icon]:p-3! [&>span:last-child]:truncate [&>svg]:size-5 [&>svg]:shrink-0",
|
|
1079
|
+
{
|
|
1080
|
+
variants: {
|
|
1081
|
+
variant: {
|
|
1082
|
+
default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
1083
|
+
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))]"
|
|
1084
|
+
},
|
|
1085
|
+
size: {
|
|
1086
|
+
default: "h-11 text-sm",
|
|
1087
|
+
sm: "h-9 text-sm",
|
|
1088
|
+
lg: "h-14 text-sm group-data-[collapsible=icon]:p-0!"
|
|
1089
|
+
}
|
|
1090
|
+
},
|
|
1091
|
+
defaultVariants: {
|
|
1092
|
+
variant: "default",
|
|
1093
|
+
size: "default"
|
|
1094
|
+
}
|
|
1095
|
+
}
|
|
1096
|
+
);
|
|
1097
|
+
function SidebarMenuButton({
|
|
1098
|
+
asChild = false,
|
|
1099
|
+
isActive = false,
|
|
1100
|
+
variant = "default",
|
|
1101
|
+
size = "default",
|
|
1102
|
+
tooltip,
|
|
1103
|
+
className,
|
|
1104
|
+
...props
|
|
1105
|
+
}) {
|
|
1106
|
+
const Comp = asChild ? Slot : "button";
|
|
1107
|
+
const { isMobile, state } = useSidebar();
|
|
1108
|
+
const button = /* @__PURE__ */ jsx(
|
|
1109
|
+
Comp,
|
|
1110
|
+
{
|
|
1111
|
+
"data-slot": "sidebar-menu-button",
|
|
1112
|
+
"data-sidebar": "menu-button",
|
|
1113
|
+
"data-size": size,
|
|
1114
|
+
"data-active": isActive,
|
|
1115
|
+
className: cn(
|
|
1116
|
+
sidebarMenuButtonVariants({ variant, size }),
|
|
1117
|
+
className
|
|
1118
|
+
),
|
|
1119
|
+
...props
|
|
1120
|
+
}
|
|
1121
|
+
);
|
|
1122
|
+
if (!tooltip) {
|
|
1123
|
+
return button;
|
|
1124
|
+
}
|
|
1125
|
+
if (typeof tooltip === "string") {
|
|
1126
|
+
tooltip = {
|
|
1127
|
+
children: tooltip
|
|
1128
|
+
};
|
|
1129
|
+
}
|
|
1130
|
+
return /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
1131
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: button }),
|
|
1132
|
+
/* @__PURE__ */ jsx(
|
|
1133
|
+
TooltipContent,
|
|
1134
|
+
{
|
|
1135
|
+
side: "right",
|
|
1136
|
+
align: "center",
|
|
1137
|
+
hidden: state !== "collapsed" || isMobile,
|
|
1138
|
+
...tooltip
|
|
1139
|
+
}
|
|
1140
|
+
)
|
|
1141
|
+
] });
|
|
1142
|
+
}
|
|
1143
|
+
function SidebarMenuAction({
|
|
1144
|
+
className,
|
|
1145
|
+
asChild = false,
|
|
1146
|
+
showOnHover = false,
|
|
1147
|
+
...props
|
|
1148
|
+
}) {
|
|
1149
|
+
const Comp = asChild ? Slot : "button";
|
|
1150
|
+
return /* @__PURE__ */ jsx(
|
|
1151
|
+
Comp,
|
|
1152
|
+
{
|
|
1153
|
+
"data-slot": "sidebar-menu-action",
|
|
1154
|
+
"data-sidebar": "menu-action",
|
|
1155
|
+
className: cn(
|
|
1156
|
+
"top-1.5 right-1 w-5 p-0 [&>svg]:size-4 rounded-xl absolute flex aspect-square items-center justify-center text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform peer-hover/menu-button:text-sidebar-accent-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 [&>svg]:shrink-0",
|
|
1157
|
+
// Increases the hit area of the button on mobile.
|
|
1158
|
+
"after:-inset-2 md:after:hidden after:absolute",
|
|
1159
|
+
"peer-data-[size=sm]/menu-button:top-1",
|
|
1160
|
+
"peer-data-[size=default]/menu-button:top-1.5",
|
|
1161
|
+
"peer-data-[size=lg]/menu-button:top-2.5",
|
|
1162
|
+
"group-data-[collapsible=icon]:hidden",
|
|
1163
|
+
showOnHover && "md:opacity-0 group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground data-[state=open]:opacity-100",
|
|
1164
|
+
className
|
|
1165
|
+
),
|
|
1166
|
+
...props
|
|
1167
|
+
}
|
|
1168
|
+
);
|
|
1169
|
+
}
|
|
1170
|
+
function SidebarMenuBadge({
|
|
1171
|
+
className,
|
|
1172
|
+
...props
|
|
1173
|
+
}) {
|
|
1174
|
+
return /* @__PURE__ */ jsx(
|
|
1175
|
+
"div",
|
|
1176
|
+
{
|
|
1177
|
+
"data-slot": "sidebar-menu-badge",
|
|
1178
|
+
"data-sidebar": "menu-badge",
|
|
1179
|
+
className: cn(
|
|
1180
|
+
"right-1 h-5 min-w-5 px-1 text-xs font-medium rounded-xl pointer-events-none absolute flex items-center justify-center text-sidebar-foreground tabular-nums select-none",
|
|
1181
|
+
"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
|
|
1182
|
+
"peer-data-[size=sm]/menu-button:top-1",
|
|
1183
|
+
"peer-data-[size=default]/menu-button:top-1.5",
|
|
1184
|
+
"peer-data-[size=lg]/menu-button:top-2.5",
|
|
1185
|
+
"group-data-[collapsible=icon]:hidden",
|
|
1186
|
+
className
|
|
1187
|
+
),
|
|
1188
|
+
...props
|
|
1189
|
+
}
|
|
1190
|
+
);
|
|
1191
|
+
}
|
|
1192
|
+
function SidebarMenuSkeleton({
|
|
1193
|
+
className,
|
|
1194
|
+
showIcon = false,
|
|
1195
|
+
...props
|
|
1196
|
+
}) {
|
|
1197
|
+
const width = React2.useMemo(() => {
|
|
1198
|
+
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
1199
|
+
}, []);
|
|
1200
|
+
return /* @__PURE__ */ jsxs(
|
|
1201
|
+
"div",
|
|
1202
|
+
{
|
|
1203
|
+
"data-slot": "sidebar-menu-skeleton",
|
|
1204
|
+
"data-sidebar": "menu-skeleton",
|
|
1205
|
+
className: cn(
|
|
1206
|
+
"h-8 gap-2 px-2 rounded-xl flex items-center",
|
|
1207
|
+
className
|
|
1208
|
+
),
|
|
1209
|
+
...props,
|
|
1210
|
+
children: [
|
|
1211
|
+
showIcon && /* @__PURE__ */ jsx(
|
|
1212
|
+
Skeleton,
|
|
1213
|
+
{
|
|
1214
|
+
className: "size-4 rounded-xl",
|
|
1215
|
+
"data-sidebar": "menu-skeleton-icon"
|
|
1216
|
+
}
|
|
1217
|
+
),
|
|
1218
|
+
/* @__PURE__ */ jsx(
|
|
1219
|
+
Skeleton,
|
|
1220
|
+
{
|
|
1221
|
+
className: "h-4 max-w-(--skeleton-width) flex-1",
|
|
1222
|
+
"data-sidebar": "menu-skeleton-text",
|
|
1223
|
+
style: {
|
|
1224
|
+
"--skeleton-width": width
|
|
1225
|
+
}
|
|
1226
|
+
}
|
|
1227
|
+
)
|
|
1228
|
+
]
|
|
1229
|
+
}
|
|
1230
|
+
);
|
|
1231
|
+
}
|
|
1232
|
+
function SidebarMenuSub({ className, ...props }) {
|
|
1233
|
+
return /* @__PURE__ */ jsx(
|
|
1234
|
+
"ul",
|
|
1235
|
+
{
|
|
1236
|
+
"data-slot": "sidebar-menu-sub",
|
|
1237
|
+
"data-sidebar": "menu-sub",
|
|
1238
|
+
className: cn(
|
|
1239
|
+
"mx-3.5 min-w-0 gap-1 px-2.5 py-0.5 flex translate-x-px flex-col border-l border-sidebar-border",
|
|
1240
|
+
"group-data-[collapsible=icon]:hidden",
|
|
1241
|
+
className
|
|
1242
|
+
),
|
|
1243
|
+
...props
|
|
1244
|
+
}
|
|
1245
|
+
);
|
|
1246
|
+
}
|
|
1247
|
+
function SidebarMenuSubItem({
|
|
1248
|
+
className,
|
|
1249
|
+
...props
|
|
1250
|
+
}) {
|
|
1251
|
+
return /* @__PURE__ */ jsx(
|
|
1252
|
+
"li",
|
|
1253
|
+
{
|
|
1254
|
+
"data-slot": "sidebar-menu-sub-item",
|
|
1255
|
+
"data-sidebar": "menu-sub-item",
|
|
1256
|
+
className: cn("group/menu-sub-item relative", className),
|
|
1257
|
+
...props
|
|
1258
|
+
}
|
|
1259
|
+
);
|
|
1260
|
+
}
|
|
1261
|
+
function SidebarMenuSubButton({
|
|
1262
|
+
asChild = false,
|
|
1263
|
+
size = "md",
|
|
1264
|
+
isActive = false,
|
|
1265
|
+
className,
|
|
1266
|
+
...props
|
|
1267
|
+
}) {
|
|
1268
|
+
const Comp = asChild ? Slot : "a";
|
|
1269
|
+
return /* @__PURE__ */ jsx(
|
|
1270
|
+
Comp,
|
|
1271
|
+
{
|
|
1272
|
+
"data-slot": "sidebar-menu-sub-button",
|
|
1273
|
+
"data-sidebar": "menu-sub-button",
|
|
1274
|
+
"data-size": size,
|
|
1275
|
+
"data-active": isActive,
|
|
1276
|
+
className: cn(
|
|
1277
|
+
"h-9 min-w-0 gap-2 px-2 text-sm font-medium [&>svg]:size-4 rounded-xl flex -translate-x-px items-center overflow-hidden text-sidebar-foreground ring-sidebar-ring outline-hidden hover:bg-accent hover:text-accent-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 active:bg-accent disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0 [&>svg]:text-current",
|
|
1278
|
+
"data-[active=true]:font-semibold data-[active=true]:bg-primary/10 data-[active=true]:text-primary",
|
|
1279
|
+
size === "sm" && "h-9 text-sm",
|
|
1280
|
+
size === "md" && "h-9 text-sm",
|
|
1281
|
+
"group-data-[collapsible=icon]:hidden",
|
|
1282
|
+
className
|
|
1283
|
+
),
|
|
1284
|
+
...props
|
|
1285
|
+
}
|
|
1286
|
+
);
|
|
1287
|
+
}
|
|
1288
|
+
|
|
1289
|
+
export { Avatar, AvatarFallback, AvatarImage, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Icon, Separator2 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, useIsMobile, useSidebar };
|
|
1290
|
+
//# sourceMappingURL=chunk-5MQWJVM2.js.map
|
|
1291
|
+
//# sourceMappingURL=chunk-5MQWJVM2.js.map
|