@zuplo/ui 0.0.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +279 -0
- package/dist/favicon.ico +0 -0
- package/dist/index.cjs +7 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +3049 -0
- package/dist/placeholder.svg +1 -0
- package/dist/robots.txt +2 -0
- package/dist/styles.css +1 -0
- package/package.json +119 -8
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,3049 @@
|
|
|
1
|
+
import { jsx as r, jsxs as d, Fragment as U } from "react/jsx-runtime";
|
|
2
|
+
import * as n from "react";
|
|
3
|
+
import { useState as ut } from "react";
|
|
4
|
+
import * as O from "@radix-ui/react-accordion";
|
|
5
|
+
import { ChevronDown as ee, ChevronRight as G, MoreHorizontal as De, ChevronLeft as _e, ArrowLeft as ft, ArrowRight as pt, Check as X, X as xe, Search as gt, Circle as te, Dot as bt, GripVertical as ht, ChevronUp as xt, PanelLeft as vt } from "lucide-react";
|
|
6
|
+
import { clsx as Nt } from "clsx";
|
|
7
|
+
import { twMerge as yt } from "tailwind-merge";
|
|
8
|
+
import { cva as z } from "class-variance-authority";
|
|
9
|
+
import * as w from "@radix-ui/react-alert-dialog";
|
|
10
|
+
import { Slot as j } from "@radix-ui/react-slot";
|
|
11
|
+
import * as wt from "@radix-ui/react-aspect-ratio";
|
|
12
|
+
import * as V from "@radix-ui/react-avatar";
|
|
13
|
+
import { DayPicker as Ct } from "react-day-picker";
|
|
14
|
+
import Rt from "embla-carousel-react";
|
|
15
|
+
import * as ve from "recharts";
|
|
16
|
+
import * as me from "@radix-ui/react-checkbox";
|
|
17
|
+
import * as Ne from "@radix-ui/react-collapsible";
|
|
18
|
+
import { Command as R } from "cmdk";
|
|
19
|
+
import * as p from "@radix-ui/react-dialog";
|
|
20
|
+
import * as b from "@radix-ui/react-context-menu";
|
|
21
|
+
import { Drawer as D } from "vaul";
|
|
22
|
+
import * as h from "@radix-ui/react-dropdown-menu";
|
|
23
|
+
import { FormProvider as St, Controller as kt, useFormContext as Tt } from "react-hook-form";
|
|
24
|
+
import * as ze from "@radix-ui/react-label";
|
|
25
|
+
import * as ae from "@radix-ui/react-hover-card";
|
|
26
|
+
import { OTPInput as It, OTPInputContext as Pt } from "input-otp";
|
|
27
|
+
import * as f from "@radix-ui/react-menubar";
|
|
28
|
+
import * as S from "@radix-ui/react-navigation-menu";
|
|
29
|
+
import * as W from "@radix-ui/react-popover";
|
|
30
|
+
import * as ue from "@radix-ui/react-progress";
|
|
31
|
+
import * as q from "@radix-ui/react-radio-group";
|
|
32
|
+
import * as ye from "react-resizable-panels";
|
|
33
|
+
import * as F from "@radix-ui/react-scroll-area";
|
|
34
|
+
import * as N from "@radix-ui/react-select";
|
|
35
|
+
import * as Ae from "@radix-ui/react-separator";
|
|
36
|
+
import * as Y from "@radix-ui/react-tooltip";
|
|
37
|
+
import * as $ from "@radix-ui/react-slider";
|
|
38
|
+
import { useTheme as Mt } from "next-themes";
|
|
39
|
+
import { Toaster as Dt } from "sonner";
|
|
40
|
+
import { toast as Qn } from "sonner";
|
|
41
|
+
import * as fe from "@radix-ui/react-switch";
|
|
42
|
+
import * as E from "@radix-ui/react-tabs";
|
|
43
|
+
import * as k from "@radix-ui/react-toast";
|
|
44
|
+
import * as je from "@radix-ui/react-toggle";
|
|
45
|
+
import * as re from "@radix-ui/react-toggle-group";
|
|
46
|
+
import { UserIcon as _t, CalendarIcon as zt, ClockIcon as Le, TargetIcon as At, UsersFourIcon as jt, CheckCircleIcon as we, CheckIcon as Lt, CopyIcon as Ft, ArrowUpRightIcon as Z, FileTextIcon as Ot, BookOpenIcon as Et, CodeIcon as Bt, LightningIcon as Gt, ArrowRightIcon as Fe, RocketIcon as Re, TerminalIcon as Vt, GithubLogoIcon as Ht, LightbulbIcon as $t, WarningIcon as Kt, YoutubeLogoIcon as Se } from "@phosphor-icons/react";
|
|
47
|
+
import { Link as Ut } from "react-router-dom";
|
|
48
|
+
function s(...t) {
|
|
49
|
+
return yt(Nt(t));
|
|
50
|
+
}
|
|
51
|
+
const Vs = O.Root, Wt = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(O.Item, { ref: a, className: s("border-b", t), ...e }));
|
|
52
|
+
Wt.displayName = "AccordionItem";
|
|
53
|
+
const qt = n.forwardRef(({ className: t, children: e, ...a }, o) => /* @__PURE__ */ r(O.Header, { className: "flex", children: /* @__PURE__ */ d(
|
|
54
|
+
O.Trigger,
|
|
55
|
+
{
|
|
56
|
+
ref: o,
|
|
57
|
+
className: s(
|
|
58
|
+
"flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
|
|
59
|
+
t
|
|
60
|
+
),
|
|
61
|
+
...a,
|
|
62
|
+
children: [
|
|
63
|
+
e,
|
|
64
|
+
/* @__PURE__ */ r(ee, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
) }));
|
|
68
|
+
qt.displayName = O.Trigger.displayName;
|
|
69
|
+
const Xt = n.forwardRef(({ className: t, children: e, ...a }, o) => /* @__PURE__ */ r(
|
|
70
|
+
O.Content,
|
|
71
|
+
{
|
|
72
|
+
ref: o,
|
|
73
|
+
className: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
|
|
74
|
+
...a,
|
|
75
|
+
children: /* @__PURE__ */ r("div", { className: s("pb-4 pt-0", t), children: e })
|
|
76
|
+
}
|
|
77
|
+
));
|
|
78
|
+
Xt.displayName = O.Content.displayName;
|
|
79
|
+
const Yt = z(
|
|
80
|
+
"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",
|
|
81
|
+
{
|
|
82
|
+
variants: {
|
|
83
|
+
variant: {
|
|
84
|
+
default: "bg-background text-foreground",
|
|
85
|
+
destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
defaultVariants: {
|
|
89
|
+
variant: "default"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
), Jt = n.forwardRef(({ className: t, variant: e, ...a }, o) => /* @__PURE__ */ r("div", { ref: o, role: "alert", className: s(Yt({ variant: e }), t), ...a }));
|
|
93
|
+
Jt.displayName = "Alert";
|
|
94
|
+
const Qt = n.forwardRef(
|
|
95
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("h5", { ref: a, className: s("mb-1 font-medium leading-none tracking-tight", t), ...e })
|
|
96
|
+
);
|
|
97
|
+
Qt.displayName = "AlertTitle";
|
|
98
|
+
const Zt = n.forwardRef(
|
|
99
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("div", { ref: a, className: s("text-sm [&_p]:leading-relaxed", t), ...e })
|
|
100
|
+
);
|
|
101
|
+
Zt.displayName = "AlertDescription";
|
|
102
|
+
const B = z(
|
|
103
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
104
|
+
{
|
|
105
|
+
variants: {
|
|
106
|
+
variant: {
|
|
107
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
108
|
+
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
109
|
+
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
|
110
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
111
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
112
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
113
|
+
},
|
|
114
|
+
size: {
|
|
115
|
+
default: "h-10 px-4 py-2",
|
|
116
|
+
sm: "h-9 rounded-md px-3",
|
|
117
|
+
lg: "h-11 rounded-md px-8",
|
|
118
|
+
icon: "h-10 w-10"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
defaultVariants: {
|
|
122
|
+
variant: "default",
|
|
123
|
+
size: "default"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
), oe = n.forwardRef(
|
|
127
|
+
({ className: t, variant: e, size: a, asChild: o = !1, ...i }, l) => /* @__PURE__ */ r(o ? j : "button", { className: s(B({ variant: e, size: a, className: t })), ref: l, ...i })
|
|
128
|
+
);
|
|
129
|
+
oe.displayName = "Button";
|
|
130
|
+
const Hs = w.Root, $s = w.Trigger, ea = w.Portal, Oe = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
131
|
+
w.Overlay,
|
|
132
|
+
{
|
|
133
|
+
className: s(
|
|
134
|
+
"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",
|
|
135
|
+
t
|
|
136
|
+
),
|
|
137
|
+
...e,
|
|
138
|
+
ref: a
|
|
139
|
+
}
|
|
140
|
+
));
|
|
141
|
+
Oe.displayName = w.Overlay.displayName;
|
|
142
|
+
const ta = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ d(ea, { children: [
|
|
143
|
+
/* @__PURE__ */ r(Oe, {}),
|
|
144
|
+
/* @__PURE__ */ r(
|
|
145
|
+
w.Content,
|
|
146
|
+
{
|
|
147
|
+
ref: a,
|
|
148
|
+
className: s(
|
|
149
|
+
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
|
|
150
|
+
t
|
|
151
|
+
),
|
|
152
|
+
...e
|
|
153
|
+
}
|
|
154
|
+
)
|
|
155
|
+
] }));
|
|
156
|
+
ta.displayName = w.Content.displayName;
|
|
157
|
+
const aa = ({ className: t, ...e }) => /* @__PURE__ */ r("div", { className: s("flex flex-col space-y-2 text-center sm:text-left", t), ...e });
|
|
158
|
+
aa.displayName = "AlertDialogHeader";
|
|
159
|
+
const ra = ({ className: t, ...e }) => /* @__PURE__ */ r("div", { className: s("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", t), ...e });
|
|
160
|
+
ra.displayName = "AlertDialogFooter";
|
|
161
|
+
const oa = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(w.Title, { ref: a, className: s("text-lg font-semibold", t), ...e }));
|
|
162
|
+
oa.displayName = w.Title.displayName;
|
|
163
|
+
const sa = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(w.Description, { ref: a, className: s("text-sm text-muted-foreground", t), ...e }));
|
|
164
|
+
sa.displayName = w.Description.displayName;
|
|
165
|
+
const na = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(w.Action, { ref: a, className: s(B(), t), ...e }));
|
|
166
|
+
na.displayName = w.Action.displayName;
|
|
167
|
+
const ia = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
168
|
+
w.Cancel,
|
|
169
|
+
{
|
|
170
|
+
ref: a,
|
|
171
|
+
className: s(B({ variant: "outline" }), "mt-2 sm:mt-0", t),
|
|
172
|
+
...e
|
|
173
|
+
}
|
|
174
|
+
));
|
|
175
|
+
ia.displayName = w.Cancel.displayName;
|
|
176
|
+
const Ks = wt.Root, da = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
177
|
+
V.Root,
|
|
178
|
+
{
|
|
179
|
+
ref: a,
|
|
180
|
+
className: s("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full", t),
|
|
181
|
+
...e
|
|
182
|
+
}
|
|
183
|
+
));
|
|
184
|
+
da.displayName = V.Root.displayName;
|
|
185
|
+
const la = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(V.Image, { ref: a, className: s("aspect-square h-full w-full", t), ...e }));
|
|
186
|
+
la.displayName = V.Image.displayName;
|
|
187
|
+
const ca = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
188
|
+
V.Fallback,
|
|
189
|
+
{
|
|
190
|
+
ref: a,
|
|
191
|
+
className: s("flex h-full w-full items-center justify-center rounded-full bg-muted", t),
|
|
192
|
+
...e
|
|
193
|
+
}
|
|
194
|
+
));
|
|
195
|
+
ca.displayName = V.Fallback.displayName;
|
|
196
|
+
const ma = z(
|
|
197
|
+
"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
198
|
+
{
|
|
199
|
+
variants: {
|
|
200
|
+
variant: {
|
|
201
|
+
default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
|
|
202
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
203
|
+
destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
|
|
204
|
+
outline: "text-foreground"
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
defaultVariants: {
|
|
208
|
+
variant: "default"
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
);
|
|
212
|
+
function Us({ className: t, variant: e, ...a }) {
|
|
213
|
+
return /* @__PURE__ */ r("div", { className: s(ma({ variant: e }), t), ...a });
|
|
214
|
+
}
|
|
215
|
+
const ua = n.forwardRef(({ ...t }, e) => /* @__PURE__ */ r("nav", { ref: e, "aria-label": "breadcrumb", ...t }));
|
|
216
|
+
ua.displayName = "Breadcrumb";
|
|
217
|
+
const fa = n.forwardRef(
|
|
218
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
219
|
+
"ol",
|
|
220
|
+
{
|
|
221
|
+
ref: a,
|
|
222
|
+
className: s(
|
|
223
|
+
"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",
|
|
224
|
+
t
|
|
225
|
+
),
|
|
226
|
+
...e
|
|
227
|
+
}
|
|
228
|
+
)
|
|
229
|
+
);
|
|
230
|
+
fa.displayName = "BreadcrumbList";
|
|
231
|
+
const pa = n.forwardRef(
|
|
232
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("li", { ref: a, className: s("inline-flex items-center gap-1.5", t), ...e })
|
|
233
|
+
);
|
|
234
|
+
pa.displayName = "BreadcrumbItem";
|
|
235
|
+
const ga = n.forwardRef(({ asChild: t, className: e, ...a }, o) => /* @__PURE__ */ r(t ? j : "a", { ref: o, className: s("transition-colors hover:text-foreground", e), ...a }));
|
|
236
|
+
ga.displayName = "BreadcrumbLink";
|
|
237
|
+
const ba = n.forwardRef(
|
|
238
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
239
|
+
"span",
|
|
240
|
+
{
|
|
241
|
+
ref: a,
|
|
242
|
+
role: "link",
|
|
243
|
+
"aria-disabled": "true",
|
|
244
|
+
"aria-current": "page",
|
|
245
|
+
className: s("font-normal text-foreground", t),
|
|
246
|
+
...e
|
|
247
|
+
}
|
|
248
|
+
)
|
|
249
|
+
);
|
|
250
|
+
ba.displayName = "BreadcrumbPage";
|
|
251
|
+
const ha = ({ children: t, className: e, ...a }) => /* @__PURE__ */ r("li", { role: "presentation", "aria-hidden": "true", className: s("[&>svg]:size-3.5", e), ...a, children: t ?? /* @__PURE__ */ r(G, {}) });
|
|
252
|
+
ha.displayName = "BreadcrumbSeparator";
|
|
253
|
+
const xa = ({ className: t, ...e }) => /* @__PURE__ */ d(
|
|
254
|
+
"span",
|
|
255
|
+
{
|
|
256
|
+
role: "presentation",
|
|
257
|
+
"aria-hidden": "true",
|
|
258
|
+
className: s("flex h-9 w-9 items-center justify-center", t),
|
|
259
|
+
...e,
|
|
260
|
+
children: [
|
|
261
|
+
/* @__PURE__ */ r(De, { className: "h-4 w-4" }),
|
|
262
|
+
/* @__PURE__ */ r("span", { className: "sr-only", children: "More" })
|
|
263
|
+
]
|
|
264
|
+
}
|
|
265
|
+
);
|
|
266
|
+
xa.displayName = "BreadcrumbElipssis";
|
|
267
|
+
function va({ className: t, classNames: e, showOutsideDays: a = !0, ...o }) {
|
|
268
|
+
return /* @__PURE__ */ r(
|
|
269
|
+
Ct,
|
|
270
|
+
{
|
|
271
|
+
showOutsideDays: a,
|
|
272
|
+
className: s("p-3", t),
|
|
273
|
+
classNames: {
|
|
274
|
+
months: "flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",
|
|
275
|
+
month: "space-y-4",
|
|
276
|
+
caption: "flex justify-center pt-1 relative items-center",
|
|
277
|
+
caption_label: "text-sm font-medium",
|
|
278
|
+
nav: "space-x-1 flex items-center",
|
|
279
|
+
nav_button: s(
|
|
280
|
+
B({ variant: "outline" }),
|
|
281
|
+
"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
|
|
282
|
+
),
|
|
283
|
+
nav_button_previous: "absolute left-1",
|
|
284
|
+
nav_button_next: "absolute right-1",
|
|
285
|
+
table: "w-full border-collapse space-y-1",
|
|
286
|
+
head_row: "flex",
|
|
287
|
+
head_cell: "text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",
|
|
288
|
+
row: "flex w-full mt-2",
|
|
289
|
+
cell: "h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",
|
|
290
|
+
day: s(B({ variant: "ghost" }), "h-9 w-9 p-0 font-normal aria-selected:opacity-100"),
|
|
291
|
+
day_range_end: "day-range-end",
|
|
292
|
+
day_selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",
|
|
293
|
+
day_today: "bg-accent text-accent-foreground",
|
|
294
|
+
day_outside: "day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",
|
|
295
|
+
day_disabled: "text-muted-foreground opacity-50",
|
|
296
|
+
day_range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
|
|
297
|
+
day_hidden: "invisible",
|
|
298
|
+
...e
|
|
299
|
+
},
|
|
300
|
+
components: {
|
|
301
|
+
IconLeft: ({ ...i }) => /* @__PURE__ */ r(_e, { className: "h-4 w-4" }),
|
|
302
|
+
IconRight: ({ ...i }) => /* @__PURE__ */ r(G, { className: "h-4 w-4" })
|
|
303
|
+
},
|
|
304
|
+
...o
|
|
305
|
+
}
|
|
306
|
+
);
|
|
307
|
+
}
|
|
308
|
+
va.displayName = "Calendar";
|
|
309
|
+
const Na = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r("div", { ref: a, className: s("rounded-lg border bg-card text-card-foreground shadow-sm", t), ...e }));
|
|
310
|
+
Na.displayName = "Card";
|
|
311
|
+
const ya = n.forwardRef(
|
|
312
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("div", { ref: a, className: s("flex flex-col space-y-1.5 p-6", t), ...e })
|
|
313
|
+
);
|
|
314
|
+
ya.displayName = "CardHeader";
|
|
315
|
+
const wa = n.forwardRef(
|
|
316
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("h3", { ref: a, className: s("text-2xl font-semibold leading-none tracking-tight", t), ...e })
|
|
317
|
+
);
|
|
318
|
+
wa.displayName = "CardTitle";
|
|
319
|
+
const Ca = n.forwardRef(
|
|
320
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("p", { ref: a, className: s("text-sm text-muted-foreground", t), ...e })
|
|
321
|
+
);
|
|
322
|
+
Ca.displayName = "CardDescription";
|
|
323
|
+
const Ra = n.forwardRef(
|
|
324
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("div", { ref: a, className: s("p-6 pt-0", t), ...e })
|
|
325
|
+
);
|
|
326
|
+
Ra.displayName = "CardContent";
|
|
327
|
+
const Sa = n.forwardRef(
|
|
328
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("div", { ref: a, className: s("flex items-center p-6 pt-0", t), ...e })
|
|
329
|
+
);
|
|
330
|
+
Sa.displayName = "CardFooter";
|
|
331
|
+
const Ee = n.createContext(null);
|
|
332
|
+
function se() {
|
|
333
|
+
const t = n.useContext(Ee);
|
|
334
|
+
if (!t)
|
|
335
|
+
throw new Error("useCarousel must be used within a <Carousel />");
|
|
336
|
+
return t;
|
|
337
|
+
}
|
|
338
|
+
const ka = n.forwardRef(
|
|
339
|
+
({ orientation: t = "horizontal", opts: e, setApi: a, plugins: o, className: i, children: l, ...c }, u) => {
|
|
340
|
+
const [x, m] = Rt(
|
|
341
|
+
{
|
|
342
|
+
...e,
|
|
343
|
+
axis: t === "horizontal" ? "x" : "y"
|
|
344
|
+
},
|
|
345
|
+
o
|
|
346
|
+
), [T, A] = n.useState(!1), [L, _] = n.useState(!1), y = n.useCallback((v) => {
|
|
347
|
+
v && (A(v.canScrollPrev()), _(v.canScrollNext()));
|
|
348
|
+
}, []), I = n.useCallback(() => {
|
|
349
|
+
m == null || m.scrollPrev();
|
|
350
|
+
}, [m]), P = n.useCallback(() => {
|
|
351
|
+
m == null || m.scrollNext();
|
|
352
|
+
}, [m]), g = n.useCallback(
|
|
353
|
+
(v) => {
|
|
354
|
+
v.key === "ArrowLeft" ? (v.preventDefault(), I()) : v.key === "ArrowRight" && (v.preventDefault(), P());
|
|
355
|
+
},
|
|
356
|
+
[I, P]
|
|
357
|
+
);
|
|
358
|
+
return n.useEffect(() => {
|
|
359
|
+
!m || !a || a(m);
|
|
360
|
+
}, [m, a]), n.useEffect(() => {
|
|
361
|
+
if (m)
|
|
362
|
+
return y(m), m.on("reInit", y), m.on("select", y), () => {
|
|
363
|
+
m == null || m.off("select", y);
|
|
364
|
+
};
|
|
365
|
+
}, [m, y]), /* @__PURE__ */ r(
|
|
366
|
+
Ee.Provider,
|
|
367
|
+
{
|
|
368
|
+
value: {
|
|
369
|
+
carouselRef: x,
|
|
370
|
+
api: m,
|
|
371
|
+
opts: e,
|
|
372
|
+
orientation: t || ((e == null ? void 0 : e.axis) === "y" ? "vertical" : "horizontal"),
|
|
373
|
+
scrollPrev: I,
|
|
374
|
+
scrollNext: P,
|
|
375
|
+
canScrollPrev: T,
|
|
376
|
+
canScrollNext: L
|
|
377
|
+
},
|
|
378
|
+
children: /* @__PURE__ */ r(
|
|
379
|
+
"div",
|
|
380
|
+
{
|
|
381
|
+
ref: u,
|
|
382
|
+
onKeyDownCapture: g,
|
|
383
|
+
className: s("relative", i),
|
|
384
|
+
role: "region",
|
|
385
|
+
"aria-roledescription": "carousel",
|
|
386
|
+
...c,
|
|
387
|
+
children: l
|
|
388
|
+
}
|
|
389
|
+
)
|
|
390
|
+
}
|
|
391
|
+
);
|
|
392
|
+
}
|
|
393
|
+
);
|
|
394
|
+
ka.displayName = "Carousel";
|
|
395
|
+
const Ta = n.forwardRef(
|
|
396
|
+
({ className: t, ...e }, a) => {
|
|
397
|
+
const { carouselRef: o, orientation: i } = se();
|
|
398
|
+
return /* @__PURE__ */ r("div", { ref: o, className: "overflow-hidden", children: /* @__PURE__ */ r(
|
|
399
|
+
"div",
|
|
400
|
+
{
|
|
401
|
+
ref: a,
|
|
402
|
+
className: s("flex", i === "horizontal" ? "-ml-4" : "-mt-4 flex-col", t),
|
|
403
|
+
...e
|
|
404
|
+
}
|
|
405
|
+
) });
|
|
406
|
+
}
|
|
407
|
+
);
|
|
408
|
+
Ta.displayName = "CarouselContent";
|
|
409
|
+
const Ia = n.forwardRef(
|
|
410
|
+
({ className: t, ...e }, a) => {
|
|
411
|
+
const { orientation: o } = se();
|
|
412
|
+
return /* @__PURE__ */ r(
|
|
413
|
+
"div",
|
|
414
|
+
{
|
|
415
|
+
ref: a,
|
|
416
|
+
role: "group",
|
|
417
|
+
"aria-roledescription": "slide",
|
|
418
|
+
className: s("min-w-0 shrink-0 grow-0 basis-full", o === "horizontal" ? "pl-4" : "pt-4", t),
|
|
419
|
+
...e
|
|
420
|
+
}
|
|
421
|
+
);
|
|
422
|
+
}
|
|
423
|
+
);
|
|
424
|
+
Ia.displayName = "CarouselItem";
|
|
425
|
+
const Pa = n.forwardRef(
|
|
426
|
+
({ className: t, variant: e = "outline", size: a = "icon", ...o }, i) => {
|
|
427
|
+
const { orientation: l, scrollPrev: c, canScrollPrev: u } = se();
|
|
428
|
+
return /* @__PURE__ */ d(
|
|
429
|
+
oe,
|
|
430
|
+
{
|
|
431
|
+
ref: i,
|
|
432
|
+
variant: e,
|
|
433
|
+
size: a,
|
|
434
|
+
className: s(
|
|
435
|
+
"absolute h-8 w-8 rounded-full",
|
|
436
|
+
l === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
|
|
437
|
+
t
|
|
438
|
+
),
|
|
439
|
+
disabled: !u,
|
|
440
|
+
onClick: c,
|
|
441
|
+
...o,
|
|
442
|
+
children: [
|
|
443
|
+
/* @__PURE__ */ r(ft, { className: "h-4 w-4" }),
|
|
444
|
+
/* @__PURE__ */ r("span", { className: "sr-only", children: "Previous slide" })
|
|
445
|
+
]
|
|
446
|
+
}
|
|
447
|
+
);
|
|
448
|
+
}
|
|
449
|
+
);
|
|
450
|
+
Pa.displayName = "CarouselPrevious";
|
|
451
|
+
const Ma = n.forwardRef(
|
|
452
|
+
({ className: t, variant: e = "outline", size: a = "icon", ...o }, i) => {
|
|
453
|
+
const { orientation: l, scrollNext: c, canScrollNext: u } = se();
|
|
454
|
+
return /* @__PURE__ */ d(
|
|
455
|
+
oe,
|
|
456
|
+
{
|
|
457
|
+
ref: i,
|
|
458
|
+
variant: e,
|
|
459
|
+
size: a,
|
|
460
|
+
className: s(
|
|
461
|
+
"absolute h-8 w-8 rounded-full",
|
|
462
|
+
l === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
|
|
463
|
+
t
|
|
464
|
+
),
|
|
465
|
+
disabled: !u,
|
|
466
|
+
onClick: c,
|
|
467
|
+
...o,
|
|
468
|
+
children: [
|
|
469
|
+
/* @__PURE__ */ r(pt, { className: "h-4 w-4" }),
|
|
470
|
+
/* @__PURE__ */ r("span", { className: "sr-only", children: "Next slide" })
|
|
471
|
+
]
|
|
472
|
+
}
|
|
473
|
+
);
|
|
474
|
+
}
|
|
475
|
+
);
|
|
476
|
+
Ma.displayName = "CarouselNext";
|
|
477
|
+
const Da = { light: "", dark: ".dark" }, Be = n.createContext(null);
|
|
478
|
+
function Ge() {
|
|
479
|
+
const t = n.useContext(Be);
|
|
480
|
+
if (!t)
|
|
481
|
+
throw new Error("useChart must be used within a <ChartContainer />");
|
|
482
|
+
return t;
|
|
483
|
+
}
|
|
484
|
+
const _a = n.forwardRef(({ id: t, className: e, children: a, config: o, ...i }, l) => {
|
|
485
|
+
const c = n.useId(), u = `chart-${t || c.replace(/:/g, "")}`;
|
|
486
|
+
return /* @__PURE__ */ r(Be.Provider, { value: { config: o }, children: /* @__PURE__ */ d(
|
|
487
|
+
"div",
|
|
488
|
+
{
|
|
489
|
+
"data-chart": u,
|
|
490
|
+
ref: l,
|
|
491
|
+
className: s(
|
|
492
|
+
"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",
|
|
493
|
+
e
|
|
494
|
+
),
|
|
495
|
+
...i,
|
|
496
|
+
children: [
|
|
497
|
+
/* @__PURE__ */ r(za, { id: u, config: o }),
|
|
498
|
+
/* @__PURE__ */ r(ve.ResponsiveContainer, { children: a })
|
|
499
|
+
]
|
|
500
|
+
}
|
|
501
|
+
) });
|
|
502
|
+
});
|
|
503
|
+
_a.displayName = "Chart";
|
|
504
|
+
const za = ({ id: t, config: e }) => {
|
|
505
|
+
const a = Object.entries(e).filter(([o, i]) => i.theme || i.color);
|
|
506
|
+
return a.length ? /* @__PURE__ */ r(
|
|
507
|
+
"style",
|
|
508
|
+
{
|
|
509
|
+
dangerouslySetInnerHTML: {
|
|
510
|
+
__html: Object.entries(Da).map(
|
|
511
|
+
([o, i]) => `
|
|
512
|
+
${i} [data-chart=${t}] {
|
|
513
|
+
${a.map(([l, c]) => {
|
|
514
|
+
var x;
|
|
515
|
+
const u = ((x = c.theme) == null ? void 0 : x[o]) || c.color;
|
|
516
|
+
return u ? ` --color-${l}: ${u};` : null;
|
|
517
|
+
}).join(`
|
|
518
|
+
`)}
|
|
519
|
+
}
|
|
520
|
+
`
|
|
521
|
+
).join(`
|
|
522
|
+
`)
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
) : null;
|
|
526
|
+
}, Ws = ve.Tooltip, Aa = n.forwardRef(
|
|
527
|
+
({
|
|
528
|
+
active: t,
|
|
529
|
+
payload: e,
|
|
530
|
+
className: a,
|
|
531
|
+
indicator: o = "dot",
|
|
532
|
+
hideLabel: i = !1,
|
|
533
|
+
hideIndicator: l = !1,
|
|
534
|
+
label: c,
|
|
535
|
+
labelFormatter: u,
|
|
536
|
+
labelClassName: x,
|
|
537
|
+
formatter: m,
|
|
538
|
+
color: T,
|
|
539
|
+
nameKey: A,
|
|
540
|
+
labelKey: L
|
|
541
|
+
}, _) => {
|
|
542
|
+
const { config: y } = Ge(), I = n.useMemo(() => {
|
|
543
|
+
var H;
|
|
544
|
+
if (i || !(e != null && e.length))
|
|
545
|
+
return null;
|
|
546
|
+
const [g] = e, v = `${L || g.dataKey || g.name || "value"}`, C = pe(y, g, v), M = !L && typeof c == "string" ? ((H = y[c]) == null ? void 0 : H.label) || c : C == null ? void 0 : C.label;
|
|
547
|
+
return u ? /* @__PURE__ */ r("div", { className: s("font-medium", x), children: u(M, e) }) : M ? /* @__PURE__ */ r("div", { className: s("font-medium", x), children: M }) : null;
|
|
548
|
+
}, [c, u, e, i, x, y, L]);
|
|
549
|
+
if (!t || !(e != null && e.length))
|
|
550
|
+
return null;
|
|
551
|
+
const P = e.length === 1 && o !== "dot";
|
|
552
|
+
return /* @__PURE__ */ d(
|
|
553
|
+
"div",
|
|
554
|
+
{
|
|
555
|
+
ref: _,
|
|
556
|
+
className: s(
|
|
557
|
+
"grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
|
|
558
|
+
a
|
|
559
|
+
),
|
|
560
|
+
children: [
|
|
561
|
+
P ? null : I,
|
|
562
|
+
/* @__PURE__ */ r("div", { className: "grid gap-1.5", children: e.map((g, v) => {
|
|
563
|
+
const C = `${A || g.name || g.dataKey || "value"}`, M = pe(y, g, C), H = T || g.payload.fill || g.color;
|
|
564
|
+
return /* @__PURE__ */ r(
|
|
565
|
+
"div",
|
|
566
|
+
{
|
|
567
|
+
className: s(
|
|
568
|
+
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
|
|
569
|
+
o === "dot" && "items-center"
|
|
570
|
+
),
|
|
571
|
+
children: m && (g == null ? void 0 : g.value) !== void 0 && g.name ? m(g.value, g.name, g, v, g.payload) : /* @__PURE__ */ d(U, { children: [
|
|
572
|
+
M != null && M.icon ? /* @__PURE__ */ r(M.icon, {}) : !l && /* @__PURE__ */ r(
|
|
573
|
+
"div",
|
|
574
|
+
{
|
|
575
|
+
className: s("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]", {
|
|
576
|
+
"h-2.5 w-2.5": o === "dot",
|
|
577
|
+
"w-1": o === "line",
|
|
578
|
+
"w-0 border-[1.5px] border-dashed bg-transparent": o === "dashed",
|
|
579
|
+
"my-0.5": P && o === "dashed"
|
|
580
|
+
}),
|
|
581
|
+
style: {
|
|
582
|
+
"--color-bg": H,
|
|
583
|
+
"--color-border": H
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
),
|
|
587
|
+
/* @__PURE__ */ d(
|
|
588
|
+
"div",
|
|
589
|
+
{
|
|
590
|
+
className: s(
|
|
591
|
+
"flex flex-1 justify-between leading-none",
|
|
592
|
+
P ? "items-end" : "items-center"
|
|
593
|
+
),
|
|
594
|
+
children: [
|
|
595
|
+
/* @__PURE__ */ d("div", { className: "grid gap-1.5", children: [
|
|
596
|
+
P ? I : null,
|
|
597
|
+
/* @__PURE__ */ r("span", { className: "text-muted-foreground", children: (M == null ? void 0 : M.label) || g.name })
|
|
598
|
+
] }),
|
|
599
|
+
g.value && /* @__PURE__ */ r("span", { className: "font-mono font-medium tabular-nums text-foreground", children: g.value.toLocaleString() })
|
|
600
|
+
]
|
|
601
|
+
}
|
|
602
|
+
)
|
|
603
|
+
] })
|
|
604
|
+
},
|
|
605
|
+
g.dataKey
|
|
606
|
+
);
|
|
607
|
+
}) })
|
|
608
|
+
]
|
|
609
|
+
}
|
|
610
|
+
);
|
|
611
|
+
}
|
|
612
|
+
);
|
|
613
|
+
Aa.displayName = "ChartTooltip";
|
|
614
|
+
const qs = ve.Legend, ja = n.forwardRef(({ className: t, hideIcon: e = !1, payload: a, verticalAlign: o = "bottom", nameKey: i }, l) => {
|
|
615
|
+
const { config: c } = Ge();
|
|
616
|
+
return a != null && a.length ? /* @__PURE__ */ r(
|
|
617
|
+
"div",
|
|
618
|
+
{
|
|
619
|
+
ref: l,
|
|
620
|
+
className: s("flex items-center justify-center gap-4", o === "top" ? "pb-3" : "pt-3", t),
|
|
621
|
+
children: a.map((u) => {
|
|
622
|
+
const x = `${i || u.dataKey || "value"}`, m = pe(c, u, x);
|
|
623
|
+
return /* @__PURE__ */ d(
|
|
624
|
+
"div",
|
|
625
|
+
{
|
|
626
|
+
className: s("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),
|
|
627
|
+
children: [
|
|
628
|
+
m != null && m.icon && !e ? /* @__PURE__ */ r(m.icon, {}) : /* @__PURE__ */ r(
|
|
629
|
+
"div",
|
|
630
|
+
{
|
|
631
|
+
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
632
|
+
style: {
|
|
633
|
+
backgroundColor: u.color
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
),
|
|
637
|
+
m == null ? void 0 : m.label
|
|
638
|
+
]
|
|
639
|
+
},
|
|
640
|
+
u.value
|
|
641
|
+
);
|
|
642
|
+
})
|
|
643
|
+
}
|
|
644
|
+
) : null;
|
|
645
|
+
});
|
|
646
|
+
ja.displayName = "ChartLegend";
|
|
647
|
+
function pe(t, e, a) {
|
|
648
|
+
if (typeof e != "object" || e === null)
|
|
649
|
+
return;
|
|
650
|
+
const o = "payload" in e && typeof e.payload == "object" && e.payload !== null ? e.payload : void 0;
|
|
651
|
+
let i = a;
|
|
652
|
+
return a in e && typeof e[a] == "string" ? i = e[a] : o && a in o && typeof o[a] == "string" && (i = o[a]), i in t ? t[i] : t[a];
|
|
653
|
+
}
|
|
654
|
+
const La = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
655
|
+
me.Root,
|
|
656
|
+
{
|
|
657
|
+
ref: a,
|
|
658
|
+
className: s(
|
|
659
|
+
"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
660
|
+
t
|
|
661
|
+
),
|
|
662
|
+
...e,
|
|
663
|
+
children: /* @__PURE__ */ r(me.Indicator, { className: s("flex items-center justify-center text-current"), children: /* @__PURE__ */ r(X, { className: "h-4 w-4" }) })
|
|
664
|
+
}
|
|
665
|
+
));
|
|
666
|
+
La.displayName = me.Root.displayName;
|
|
667
|
+
const Xs = Ne.Root, Ys = Ne.CollapsibleTrigger, Js = Ne.CollapsibleContent, Fa = p.Root, Qs = p.Trigger, Oa = p.Portal, Zs = p.Close, Ve = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
668
|
+
p.Overlay,
|
|
669
|
+
{
|
|
670
|
+
ref: a,
|
|
671
|
+
className: s(
|
|
672
|
+
"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",
|
|
673
|
+
t
|
|
674
|
+
),
|
|
675
|
+
...e
|
|
676
|
+
}
|
|
677
|
+
));
|
|
678
|
+
Ve.displayName = p.Overlay.displayName;
|
|
679
|
+
const He = n.forwardRef(({ className: t, children: e, ...a }, o) => /* @__PURE__ */ d(Oa, { children: [
|
|
680
|
+
/* @__PURE__ */ r(Ve, {}),
|
|
681
|
+
/* @__PURE__ */ d(
|
|
682
|
+
p.Content,
|
|
683
|
+
{
|
|
684
|
+
ref: o,
|
|
685
|
+
className: s(
|
|
686
|
+
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
|
|
687
|
+
t
|
|
688
|
+
),
|
|
689
|
+
...a,
|
|
690
|
+
children: [
|
|
691
|
+
e,
|
|
692
|
+
/* @__PURE__ */ d(p.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-accent data-[state=open]:text-muted-foreground hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none", children: [
|
|
693
|
+
/* @__PURE__ */ r(xe, { className: "h-4 w-4" }),
|
|
694
|
+
/* @__PURE__ */ r("span", { className: "sr-only", children: "Close" })
|
|
695
|
+
] })
|
|
696
|
+
]
|
|
697
|
+
}
|
|
698
|
+
)
|
|
699
|
+
] }));
|
|
700
|
+
He.displayName = p.Content.displayName;
|
|
701
|
+
const Ea = ({ className: t, ...e }) => /* @__PURE__ */ r("div", { className: s("flex flex-col space-y-1.5 text-center sm:text-left", t), ...e });
|
|
702
|
+
Ea.displayName = "DialogHeader";
|
|
703
|
+
const Ba = ({ className: t, ...e }) => /* @__PURE__ */ r("div", { className: s("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", t), ...e });
|
|
704
|
+
Ba.displayName = "DialogFooter";
|
|
705
|
+
const Ga = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
706
|
+
p.Title,
|
|
707
|
+
{
|
|
708
|
+
ref: a,
|
|
709
|
+
className: s("text-lg font-semibold leading-none tracking-tight", t),
|
|
710
|
+
...e
|
|
711
|
+
}
|
|
712
|
+
));
|
|
713
|
+
Ga.displayName = p.Title.displayName;
|
|
714
|
+
const Va = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(p.Description, { ref: a, className: s("text-sm text-muted-foreground", t), ...e }));
|
|
715
|
+
Va.displayName = p.Description.displayName;
|
|
716
|
+
const $e = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
717
|
+
R,
|
|
718
|
+
{
|
|
719
|
+
ref: a,
|
|
720
|
+
className: s(
|
|
721
|
+
"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
|
|
722
|
+
t
|
|
723
|
+
),
|
|
724
|
+
...e
|
|
725
|
+
}
|
|
726
|
+
));
|
|
727
|
+
$e.displayName = R.displayName;
|
|
728
|
+
const en = ({ children: t, ...e }) => /* @__PURE__ */ r(Fa, { ...e, children: /* @__PURE__ */ r(He, { className: "overflow-hidden p-0 shadow-lg", children: /* @__PURE__ */ r($e, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children: t }) }) }), Ha = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ d("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
729
|
+
/* @__PURE__ */ r(gt, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
730
|
+
/* @__PURE__ */ r(
|
|
731
|
+
R.Input,
|
|
732
|
+
{
|
|
733
|
+
ref: a,
|
|
734
|
+
className: s(
|
|
735
|
+
"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
|
|
736
|
+
t
|
|
737
|
+
),
|
|
738
|
+
...e
|
|
739
|
+
}
|
|
740
|
+
)
|
|
741
|
+
] }));
|
|
742
|
+
Ha.displayName = R.Input.displayName;
|
|
743
|
+
const $a = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
744
|
+
R.List,
|
|
745
|
+
{
|
|
746
|
+
ref: a,
|
|
747
|
+
className: s("max-h-[300px] overflow-y-auto overflow-x-hidden", t),
|
|
748
|
+
...e
|
|
749
|
+
}
|
|
750
|
+
));
|
|
751
|
+
$a.displayName = R.List.displayName;
|
|
752
|
+
const Ka = n.forwardRef((t, e) => /* @__PURE__ */ r(R.Empty, { ref: e, className: "py-6 text-center text-sm", ...t }));
|
|
753
|
+
Ka.displayName = R.Empty.displayName;
|
|
754
|
+
const Ua = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
755
|
+
R.Group,
|
|
756
|
+
{
|
|
757
|
+
ref: a,
|
|
758
|
+
className: s(
|
|
759
|
+
"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
|
|
760
|
+
t
|
|
761
|
+
),
|
|
762
|
+
...e
|
|
763
|
+
}
|
|
764
|
+
));
|
|
765
|
+
Ua.displayName = R.Group.displayName;
|
|
766
|
+
const Wa = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(R.Separator, { ref: a, className: s("-mx-1 h-px bg-border", t), ...e }));
|
|
767
|
+
Wa.displayName = R.Separator.displayName;
|
|
768
|
+
const qa = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
769
|
+
R.Item,
|
|
770
|
+
{
|
|
771
|
+
ref: a,
|
|
772
|
+
className: s(
|
|
773
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50",
|
|
774
|
+
t
|
|
775
|
+
),
|
|
776
|
+
...e
|
|
777
|
+
}
|
|
778
|
+
));
|
|
779
|
+
qa.displayName = R.Item.displayName;
|
|
780
|
+
const Xa = ({ className: t, ...e }) => /* @__PURE__ */ r("span", { className: s("ml-auto text-xs tracking-widest text-muted-foreground", t), ...e });
|
|
781
|
+
Xa.displayName = "CommandShortcut";
|
|
782
|
+
const tn = b.Root, an = b.Trigger, rn = b.Group, on = b.Portal, sn = b.Sub, nn = b.RadioGroup, Ya = n.forwardRef(({ className: t, inset: e, children: a, ...o }, i) => /* @__PURE__ */ d(
|
|
783
|
+
b.SubTrigger,
|
|
784
|
+
{
|
|
785
|
+
ref: i,
|
|
786
|
+
className: s(
|
|
787
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[state=open]:bg-accent data-[state=open]:text-accent-foreground focus:bg-accent focus:text-accent-foreground",
|
|
788
|
+
e && "pl-8",
|
|
789
|
+
t
|
|
790
|
+
),
|
|
791
|
+
...o,
|
|
792
|
+
children: [
|
|
793
|
+
a,
|
|
794
|
+
/* @__PURE__ */ r(G, { className: "ml-auto h-4 w-4" })
|
|
795
|
+
]
|
|
796
|
+
}
|
|
797
|
+
));
|
|
798
|
+
Ya.displayName = b.SubTrigger.displayName;
|
|
799
|
+
const Ja = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
800
|
+
b.SubContent,
|
|
801
|
+
{
|
|
802
|
+
ref: a,
|
|
803
|
+
className: s(
|
|
804
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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",
|
|
805
|
+
t
|
|
806
|
+
),
|
|
807
|
+
...e
|
|
808
|
+
}
|
|
809
|
+
));
|
|
810
|
+
Ja.displayName = b.SubContent.displayName;
|
|
811
|
+
const Qa = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(b.Portal, { children: /* @__PURE__ */ r(
|
|
812
|
+
b.Content,
|
|
813
|
+
{
|
|
814
|
+
ref: a,
|
|
815
|
+
className: s(
|
|
816
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 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",
|
|
817
|
+
t
|
|
818
|
+
),
|
|
819
|
+
...e
|
|
820
|
+
}
|
|
821
|
+
) }));
|
|
822
|
+
Qa.displayName = b.Content.displayName;
|
|
823
|
+
const Za = n.forwardRef(({ className: t, inset: e, ...a }, o) => /* @__PURE__ */ r(
|
|
824
|
+
b.Item,
|
|
825
|
+
{
|
|
826
|
+
ref: o,
|
|
827
|
+
className: s(
|
|
828
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
|
|
829
|
+
e && "pl-8",
|
|
830
|
+
t
|
|
831
|
+
),
|
|
832
|
+
...a
|
|
833
|
+
}
|
|
834
|
+
));
|
|
835
|
+
Za.displayName = b.Item.displayName;
|
|
836
|
+
const er = n.forwardRef(({ className: t, children: e, checked: a, ...o }, i) => /* @__PURE__ */ d(
|
|
837
|
+
b.CheckboxItem,
|
|
838
|
+
{
|
|
839
|
+
ref: i,
|
|
840
|
+
className: s(
|
|
841
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
|
|
842
|
+
t
|
|
843
|
+
),
|
|
844
|
+
checked: a,
|
|
845
|
+
...o,
|
|
846
|
+
children: [
|
|
847
|
+
/* @__PURE__ */ r("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ r(b.ItemIndicator, { children: /* @__PURE__ */ r(X, { className: "h-4 w-4" }) }) }),
|
|
848
|
+
e
|
|
849
|
+
]
|
|
850
|
+
}
|
|
851
|
+
));
|
|
852
|
+
er.displayName = b.CheckboxItem.displayName;
|
|
853
|
+
const tr = n.forwardRef(({ className: t, children: e, ...a }, o) => /* @__PURE__ */ d(
|
|
854
|
+
b.RadioItem,
|
|
855
|
+
{
|
|
856
|
+
ref: o,
|
|
857
|
+
className: s(
|
|
858
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
|
|
859
|
+
t
|
|
860
|
+
),
|
|
861
|
+
...a,
|
|
862
|
+
children: [
|
|
863
|
+
/* @__PURE__ */ r("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ r(b.ItemIndicator, { children: /* @__PURE__ */ r(te, { className: "h-2 w-2 fill-current" }) }) }),
|
|
864
|
+
e
|
|
865
|
+
]
|
|
866
|
+
}
|
|
867
|
+
));
|
|
868
|
+
tr.displayName = b.RadioItem.displayName;
|
|
869
|
+
const ar = n.forwardRef(({ className: t, inset: e, ...a }, o) => /* @__PURE__ */ r(
|
|
870
|
+
b.Label,
|
|
871
|
+
{
|
|
872
|
+
ref: o,
|
|
873
|
+
className: s("px-2 py-1.5 text-sm font-semibold text-foreground", e && "pl-8", t),
|
|
874
|
+
...a
|
|
875
|
+
}
|
|
876
|
+
));
|
|
877
|
+
ar.displayName = b.Label.displayName;
|
|
878
|
+
const rr = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(b.Separator, { ref: a, className: s("-mx-1 my-1 h-px bg-border", t), ...e }));
|
|
879
|
+
rr.displayName = b.Separator.displayName;
|
|
880
|
+
const or = ({ className: t, ...e }) => /* @__PURE__ */ r("span", { className: s("ml-auto text-xs tracking-widest text-muted-foreground", t), ...e });
|
|
881
|
+
or.displayName = "ContextMenuShortcut";
|
|
882
|
+
const sr = ({ shouldScaleBackground: t = !0, ...e }) => /* @__PURE__ */ r(D.Root, { shouldScaleBackground: t, ...e });
|
|
883
|
+
sr.displayName = "Drawer";
|
|
884
|
+
const dn = D.Trigger, nr = D.Portal, ln = D.Close, Ke = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(D.Overlay, { ref: a, className: s("fixed inset-0 z-50 bg-black/80", t), ...e }));
|
|
885
|
+
Ke.displayName = D.Overlay.displayName;
|
|
886
|
+
const ir = n.forwardRef(({ className: t, children: e, ...a }, o) => /* @__PURE__ */ d(nr, { children: [
|
|
887
|
+
/* @__PURE__ */ r(Ke, {}),
|
|
888
|
+
/* @__PURE__ */ d(
|
|
889
|
+
D.Content,
|
|
890
|
+
{
|
|
891
|
+
ref: o,
|
|
892
|
+
className: s(
|
|
893
|
+
"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background",
|
|
894
|
+
t
|
|
895
|
+
),
|
|
896
|
+
...a,
|
|
897
|
+
children: [
|
|
898
|
+
/* @__PURE__ */ r("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }),
|
|
899
|
+
e
|
|
900
|
+
]
|
|
901
|
+
}
|
|
902
|
+
)
|
|
903
|
+
] }));
|
|
904
|
+
ir.displayName = "DrawerContent";
|
|
905
|
+
const dr = ({ className: t, ...e }) => /* @__PURE__ */ r("div", { className: s("grid gap-1.5 p-4 text-center sm:text-left", t), ...e });
|
|
906
|
+
dr.displayName = "DrawerHeader";
|
|
907
|
+
const lr = ({ className: t, ...e }) => /* @__PURE__ */ r("div", { className: s("mt-auto flex flex-col gap-2 p-4", t), ...e });
|
|
908
|
+
lr.displayName = "DrawerFooter";
|
|
909
|
+
const cr = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
910
|
+
D.Title,
|
|
911
|
+
{
|
|
912
|
+
ref: a,
|
|
913
|
+
className: s("text-lg font-semibold leading-none tracking-tight", t),
|
|
914
|
+
...e
|
|
915
|
+
}
|
|
916
|
+
));
|
|
917
|
+
cr.displayName = D.Title.displayName;
|
|
918
|
+
const mr = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(D.Description, { ref: a, className: s("text-sm text-muted-foreground", t), ...e }));
|
|
919
|
+
mr.displayName = D.Description.displayName;
|
|
920
|
+
const cn = h.Root, mn = h.Trigger, un = h.Group, fn = h.Portal, pn = h.Sub, gn = h.RadioGroup, ur = n.forwardRef(({ className: t, inset: e, children: a, ...o }, i) => /* @__PURE__ */ d(
|
|
921
|
+
h.SubTrigger,
|
|
922
|
+
{
|
|
923
|
+
ref: i,
|
|
924
|
+
className: s(
|
|
925
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[state=open]:bg-accent focus:bg-accent",
|
|
926
|
+
e && "pl-8",
|
|
927
|
+
t
|
|
928
|
+
),
|
|
929
|
+
...o,
|
|
930
|
+
children: [
|
|
931
|
+
a,
|
|
932
|
+
/* @__PURE__ */ r(G, { className: "ml-auto h-4 w-4" })
|
|
933
|
+
]
|
|
934
|
+
}
|
|
935
|
+
));
|
|
936
|
+
ur.displayName = h.SubTrigger.displayName;
|
|
937
|
+
const fr = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
938
|
+
h.SubContent,
|
|
939
|
+
{
|
|
940
|
+
ref: a,
|
|
941
|
+
className: s(
|
|
942
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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",
|
|
943
|
+
t
|
|
944
|
+
),
|
|
945
|
+
...e
|
|
946
|
+
}
|
|
947
|
+
));
|
|
948
|
+
fr.displayName = h.SubContent.displayName;
|
|
949
|
+
const pr = n.forwardRef(({ className: t, sideOffset: e = 4, ...a }, o) => /* @__PURE__ */ r(h.Portal, { children: /* @__PURE__ */ r(
|
|
950
|
+
h.Content,
|
|
951
|
+
{
|
|
952
|
+
ref: o,
|
|
953
|
+
sideOffset: e,
|
|
954
|
+
className: s(
|
|
955
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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",
|
|
956
|
+
t
|
|
957
|
+
),
|
|
958
|
+
...a
|
|
959
|
+
}
|
|
960
|
+
) }));
|
|
961
|
+
pr.displayName = h.Content.displayName;
|
|
962
|
+
const gr = n.forwardRef(({ className: t, inset: e, ...a }, o) => /* @__PURE__ */ r(
|
|
963
|
+
h.Item,
|
|
964
|
+
{
|
|
965
|
+
ref: o,
|
|
966
|
+
className: s(
|
|
967
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
|
|
968
|
+
e && "pl-8",
|
|
969
|
+
t
|
|
970
|
+
),
|
|
971
|
+
...a
|
|
972
|
+
}
|
|
973
|
+
));
|
|
974
|
+
gr.displayName = h.Item.displayName;
|
|
975
|
+
const br = n.forwardRef(({ className: t, children: e, checked: a, ...o }, i) => /* @__PURE__ */ d(
|
|
976
|
+
h.CheckboxItem,
|
|
977
|
+
{
|
|
978
|
+
ref: i,
|
|
979
|
+
className: s(
|
|
980
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
|
|
981
|
+
t
|
|
982
|
+
),
|
|
983
|
+
checked: a,
|
|
984
|
+
...o,
|
|
985
|
+
children: [
|
|
986
|
+
/* @__PURE__ */ r("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ r(h.ItemIndicator, { children: /* @__PURE__ */ r(X, { className: "h-4 w-4" }) }) }),
|
|
987
|
+
e
|
|
988
|
+
]
|
|
989
|
+
}
|
|
990
|
+
));
|
|
991
|
+
br.displayName = h.CheckboxItem.displayName;
|
|
992
|
+
const hr = n.forwardRef(({ className: t, children: e, ...a }, o) => /* @__PURE__ */ d(
|
|
993
|
+
h.RadioItem,
|
|
994
|
+
{
|
|
995
|
+
ref: o,
|
|
996
|
+
className: s(
|
|
997
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
|
|
998
|
+
t
|
|
999
|
+
),
|
|
1000
|
+
...a,
|
|
1001
|
+
children: [
|
|
1002
|
+
/* @__PURE__ */ r("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ r(h.ItemIndicator, { children: /* @__PURE__ */ r(te, { className: "h-2 w-2 fill-current" }) }) }),
|
|
1003
|
+
e
|
|
1004
|
+
]
|
|
1005
|
+
}
|
|
1006
|
+
));
|
|
1007
|
+
hr.displayName = h.RadioItem.displayName;
|
|
1008
|
+
const xr = n.forwardRef(({ className: t, inset: e, ...a }, o) => /* @__PURE__ */ r(
|
|
1009
|
+
h.Label,
|
|
1010
|
+
{
|
|
1011
|
+
ref: o,
|
|
1012
|
+
className: s("px-2 py-1.5 text-sm font-semibold", e && "pl-8", t),
|
|
1013
|
+
...a
|
|
1014
|
+
}
|
|
1015
|
+
));
|
|
1016
|
+
xr.displayName = h.Label.displayName;
|
|
1017
|
+
const vr = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(h.Separator, { ref: a, className: s("-mx-1 my-1 h-px bg-muted", t), ...e }));
|
|
1018
|
+
vr.displayName = h.Separator.displayName;
|
|
1019
|
+
const Nr = ({ className: t, ...e }) => /* @__PURE__ */ r("span", { className: s("ml-auto text-xs tracking-widest opacity-60", t), ...e });
|
|
1020
|
+
Nr.displayName = "DropdownMenuShortcut";
|
|
1021
|
+
const yr = z("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"), Ue = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(ze.Root, { ref: a, className: s(yr(), t), ...e }));
|
|
1022
|
+
Ue.displayName = ze.Root.displayName;
|
|
1023
|
+
const bn = St, We = n.createContext({}), hn = ({
|
|
1024
|
+
...t
|
|
1025
|
+
}) => /* @__PURE__ */ r(We.Provider, { value: { name: t.name }, children: /* @__PURE__ */ r(kt, { ...t }) }), ne = () => {
|
|
1026
|
+
const t = n.useContext(We), e = n.useContext(qe), { getFieldState: a, formState: o } = Tt(), i = a(t.name, o);
|
|
1027
|
+
if (!t)
|
|
1028
|
+
throw new Error("useFormField should be used within <FormField>");
|
|
1029
|
+
const { id: l } = e;
|
|
1030
|
+
return {
|
|
1031
|
+
id: l,
|
|
1032
|
+
name: t.name,
|
|
1033
|
+
formItemId: `${l}-form-item`,
|
|
1034
|
+
formDescriptionId: `${l}-form-item-description`,
|
|
1035
|
+
formMessageId: `${l}-form-item-message`,
|
|
1036
|
+
...i
|
|
1037
|
+
};
|
|
1038
|
+
}, qe = n.createContext({}), wr = n.forwardRef(
|
|
1039
|
+
({ className: t, ...e }, a) => {
|
|
1040
|
+
const o = n.useId();
|
|
1041
|
+
return /* @__PURE__ */ r(qe.Provider, { value: { id: o }, children: /* @__PURE__ */ r("div", { ref: a, className: s("space-y-2", t), ...e }) });
|
|
1042
|
+
}
|
|
1043
|
+
);
|
|
1044
|
+
wr.displayName = "FormItem";
|
|
1045
|
+
const Cr = n.forwardRef(({ className: t, ...e }, a) => {
|
|
1046
|
+
const { error: o, formItemId: i } = ne();
|
|
1047
|
+
return /* @__PURE__ */ r(Ue, { ref: a, className: s(o && "text-destructive", t), htmlFor: i, ...e });
|
|
1048
|
+
});
|
|
1049
|
+
Cr.displayName = "FormLabel";
|
|
1050
|
+
const Rr = n.forwardRef(
|
|
1051
|
+
({ ...t }, e) => {
|
|
1052
|
+
const { error: a, formItemId: o, formDescriptionId: i, formMessageId: l } = ne();
|
|
1053
|
+
return /* @__PURE__ */ r(
|
|
1054
|
+
j,
|
|
1055
|
+
{
|
|
1056
|
+
ref: e,
|
|
1057
|
+
id: o,
|
|
1058
|
+
"aria-describedby": a ? `${i} ${l}` : `${i}`,
|
|
1059
|
+
"aria-invalid": !!a,
|
|
1060
|
+
...t
|
|
1061
|
+
}
|
|
1062
|
+
);
|
|
1063
|
+
}
|
|
1064
|
+
);
|
|
1065
|
+
Rr.displayName = "FormControl";
|
|
1066
|
+
const Sr = n.forwardRef(
|
|
1067
|
+
({ className: t, ...e }, a) => {
|
|
1068
|
+
const { formDescriptionId: o } = ne();
|
|
1069
|
+
return /* @__PURE__ */ r("p", { ref: a, id: o, className: s("text-sm text-muted-foreground", t), ...e });
|
|
1070
|
+
}
|
|
1071
|
+
);
|
|
1072
|
+
Sr.displayName = "FormDescription";
|
|
1073
|
+
const kr = n.forwardRef(
|
|
1074
|
+
({ className: t, children: e, ...a }, o) => {
|
|
1075
|
+
const { error: i, formMessageId: l } = ne(), c = i ? String(i == null ? void 0 : i.message) : e;
|
|
1076
|
+
return c ? /* @__PURE__ */ r("p", { ref: o, id: l, className: s("text-sm font-medium text-destructive", t), ...a, children: c }) : null;
|
|
1077
|
+
}
|
|
1078
|
+
);
|
|
1079
|
+
kr.displayName = "FormMessage";
|
|
1080
|
+
const xn = ae.Root, vn = ae.Trigger, Tr = n.forwardRef(({ className: t, align: e = "center", sideOffset: a = 4, ...o }, i) => /* @__PURE__ */ r(
|
|
1081
|
+
ae.Content,
|
|
1082
|
+
{
|
|
1083
|
+
ref: i,
|
|
1084
|
+
align: e,
|
|
1085
|
+
sideOffset: a,
|
|
1086
|
+
className: s(
|
|
1087
|
+
"z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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",
|
|
1088
|
+
t
|
|
1089
|
+
),
|
|
1090
|
+
...o
|
|
1091
|
+
}
|
|
1092
|
+
));
|
|
1093
|
+
Tr.displayName = ae.Content.displayName;
|
|
1094
|
+
const Xe = n.forwardRef(
|
|
1095
|
+
({ className: t, type: e, ...a }, o) => /* @__PURE__ */ r(
|
|
1096
|
+
"input",
|
|
1097
|
+
{
|
|
1098
|
+
type: e,
|
|
1099
|
+
className: s(
|
|
1100
|
+
"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background 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-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
1101
|
+
t
|
|
1102
|
+
),
|
|
1103
|
+
ref: o,
|
|
1104
|
+
...a
|
|
1105
|
+
}
|
|
1106
|
+
)
|
|
1107
|
+
);
|
|
1108
|
+
Xe.displayName = "Input";
|
|
1109
|
+
const Ir = n.forwardRef(
|
|
1110
|
+
({ className: t, containerClassName: e, ...a }, o) => /* @__PURE__ */ r(
|
|
1111
|
+
It,
|
|
1112
|
+
{
|
|
1113
|
+
ref: o,
|
|
1114
|
+
containerClassName: s("flex items-center gap-2 has-[:disabled]:opacity-50", e),
|
|
1115
|
+
className: s("disabled:cursor-not-allowed", t),
|
|
1116
|
+
...a
|
|
1117
|
+
}
|
|
1118
|
+
)
|
|
1119
|
+
);
|
|
1120
|
+
Ir.displayName = "InputOTP";
|
|
1121
|
+
const Pr = n.forwardRef(
|
|
1122
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("div", { ref: a, className: s("flex items-center", t), ...e })
|
|
1123
|
+
);
|
|
1124
|
+
Pr.displayName = "InputOTPGroup";
|
|
1125
|
+
const Mr = n.forwardRef(({ index: t, className: e, ...a }, o) => {
|
|
1126
|
+
const i = n.useContext(Pt), { char: l, hasFakeCaret: c, isActive: u } = i.slots[t];
|
|
1127
|
+
return /* @__PURE__ */ d(
|
|
1128
|
+
"div",
|
|
1129
|
+
{
|
|
1130
|
+
ref: o,
|
|
1131
|
+
className: s(
|
|
1132
|
+
"relative flex h-10 w-10 items-center justify-center border-y border-r border-input text-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md",
|
|
1133
|
+
u && "z-10 ring-2 ring-ring ring-offset-background",
|
|
1134
|
+
e
|
|
1135
|
+
),
|
|
1136
|
+
...a,
|
|
1137
|
+
children: [
|
|
1138
|
+
l,
|
|
1139
|
+
c && /* @__PURE__ */ r("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ r("div", { className: "animate-caret-blink h-4 w-px bg-foreground duration-1000" }) })
|
|
1140
|
+
]
|
|
1141
|
+
}
|
|
1142
|
+
);
|
|
1143
|
+
});
|
|
1144
|
+
Mr.displayName = "InputOTPSlot";
|
|
1145
|
+
const Dr = n.forwardRef(
|
|
1146
|
+
({ ...t }, e) => /* @__PURE__ */ r("div", { ref: e, role: "separator", ...t, children: /* @__PURE__ */ r(bt, {}) })
|
|
1147
|
+
);
|
|
1148
|
+
Dr.displayName = "InputOTPSeparator";
|
|
1149
|
+
const Nn = f.Menu, yn = f.Group, wn = f.Portal, Cn = f.Sub, Rn = f.RadioGroup, _r = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
1150
|
+
f.Root,
|
|
1151
|
+
{
|
|
1152
|
+
ref: a,
|
|
1153
|
+
className: s("flex h-10 items-center space-x-1 rounded-md border bg-background p-1", t),
|
|
1154
|
+
...e
|
|
1155
|
+
}
|
|
1156
|
+
));
|
|
1157
|
+
_r.displayName = f.Root.displayName;
|
|
1158
|
+
const zr = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
1159
|
+
f.Trigger,
|
|
1160
|
+
{
|
|
1161
|
+
ref: a,
|
|
1162
|
+
className: s(
|
|
1163
|
+
"flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none data-[state=open]:bg-accent data-[state=open]:text-accent-foreground focus:bg-accent focus:text-accent-foreground",
|
|
1164
|
+
t
|
|
1165
|
+
),
|
|
1166
|
+
...e
|
|
1167
|
+
}
|
|
1168
|
+
));
|
|
1169
|
+
zr.displayName = f.Trigger.displayName;
|
|
1170
|
+
const Ar = n.forwardRef(({ className: t, inset: e, children: a, ...o }, i) => /* @__PURE__ */ d(
|
|
1171
|
+
f.SubTrigger,
|
|
1172
|
+
{
|
|
1173
|
+
ref: i,
|
|
1174
|
+
className: s(
|
|
1175
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[state=open]:bg-accent data-[state=open]:text-accent-foreground focus:bg-accent focus:text-accent-foreground",
|
|
1176
|
+
e && "pl-8",
|
|
1177
|
+
t
|
|
1178
|
+
),
|
|
1179
|
+
...o,
|
|
1180
|
+
children: [
|
|
1181
|
+
a,
|
|
1182
|
+
/* @__PURE__ */ r(G, { className: "ml-auto h-4 w-4" })
|
|
1183
|
+
]
|
|
1184
|
+
}
|
|
1185
|
+
));
|
|
1186
|
+
Ar.displayName = f.SubTrigger.displayName;
|
|
1187
|
+
const jr = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
1188
|
+
f.SubContent,
|
|
1189
|
+
{
|
|
1190
|
+
ref: a,
|
|
1191
|
+
className: s(
|
|
1192
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground 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",
|
|
1193
|
+
t
|
|
1194
|
+
),
|
|
1195
|
+
...e
|
|
1196
|
+
}
|
|
1197
|
+
));
|
|
1198
|
+
jr.displayName = f.SubContent.displayName;
|
|
1199
|
+
const Lr = n.forwardRef(({ className: t, align: e = "start", alignOffset: a = -4, sideOffset: o = 8, ...i }, l) => /* @__PURE__ */ r(f.Portal, { children: /* @__PURE__ */ r(
|
|
1200
|
+
f.Content,
|
|
1201
|
+
{
|
|
1202
|
+
ref: l,
|
|
1203
|
+
align: e,
|
|
1204
|
+
alignOffset: a,
|
|
1205
|
+
sideOffset: o,
|
|
1206
|
+
className: s(
|
|
1207
|
+
"z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in 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",
|
|
1208
|
+
t
|
|
1209
|
+
),
|
|
1210
|
+
...i
|
|
1211
|
+
}
|
|
1212
|
+
) }));
|
|
1213
|
+
Lr.displayName = f.Content.displayName;
|
|
1214
|
+
const Fr = n.forwardRef(({ className: t, inset: e, ...a }, o) => /* @__PURE__ */ r(
|
|
1215
|
+
f.Item,
|
|
1216
|
+
{
|
|
1217
|
+
ref: o,
|
|
1218
|
+
className: s(
|
|
1219
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
|
|
1220
|
+
e && "pl-8",
|
|
1221
|
+
t
|
|
1222
|
+
),
|
|
1223
|
+
...a
|
|
1224
|
+
}
|
|
1225
|
+
));
|
|
1226
|
+
Fr.displayName = f.Item.displayName;
|
|
1227
|
+
const Or = n.forwardRef(({ className: t, children: e, checked: a, ...o }, i) => /* @__PURE__ */ d(
|
|
1228
|
+
f.CheckboxItem,
|
|
1229
|
+
{
|
|
1230
|
+
ref: i,
|
|
1231
|
+
className: s(
|
|
1232
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
|
|
1233
|
+
t
|
|
1234
|
+
),
|
|
1235
|
+
checked: a,
|
|
1236
|
+
...o,
|
|
1237
|
+
children: [
|
|
1238
|
+
/* @__PURE__ */ r("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ r(f.ItemIndicator, { children: /* @__PURE__ */ r(X, { className: "h-4 w-4" }) }) }),
|
|
1239
|
+
e
|
|
1240
|
+
]
|
|
1241
|
+
}
|
|
1242
|
+
));
|
|
1243
|
+
Or.displayName = f.CheckboxItem.displayName;
|
|
1244
|
+
const Er = n.forwardRef(({ className: t, children: e, ...a }, o) => /* @__PURE__ */ d(
|
|
1245
|
+
f.RadioItem,
|
|
1246
|
+
{
|
|
1247
|
+
ref: o,
|
|
1248
|
+
className: s(
|
|
1249
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
|
|
1250
|
+
t
|
|
1251
|
+
),
|
|
1252
|
+
...a,
|
|
1253
|
+
children: [
|
|
1254
|
+
/* @__PURE__ */ r("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ r(f.ItemIndicator, { children: /* @__PURE__ */ r(te, { className: "h-2 w-2 fill-current" }) }) }),
|
|
1255
|
+
e
|
|
1256
|
+
]
|
|
1257
|
+
}
|
|
1258
|
+
));
|
|
1259
|
+
Er.displayName = f.RadioItem.displayName;
|
|
1260
|
+
const Br = n.forwardRef(({ className: t, inset: e, ...a }, o) => /* @__PURE__ */ r(
|
|
1261
|
+
f.Label,
|
|
1262
|
+
{
|
|
1263
|
+
ref: o,
|
|
1264
|
+
className: s("px-2 py-1.5 text-sm font-semibold", e && "pl-8", t),
|
|
1265
|
+
...a
|
|
1266
|
+
}
|
|
1267
|
+
));
|
|
1268
|
+
Br.displayName = f.Label.displayName;
|
|
1269
|
+
const Gr = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(f.Separator, { ref: a, className: s("-mx-1 my-1 h-px bg-muted", t), ...e }));
|
|
1270
|
+
Gr.displayName = f.Separator.displayName;
|
|
1271
|
+
const Vr = ({ className: t, ...e }) => /* @__PURE__ */ r("span", { className: s("ml-auto text-xs tracking-widest text-muted-foreground", t), ...e });
|
|
1272
|
+
Vr.displayname = "MenubarShortcut";
|
|
1273
|
+
const Hr = n.forwardRef(({ className: t, children: e, ...a }, o) => /* @__PURE__ */ d(
|
|
1274
|
+
S.Root,
|
|
1275
|
+
{
|
|
1276
|
+
ref: o,
|
|
1277
|
+
className: s("relative z-10 flex max-w-max flex-1 items-center justify-center", t),
|
|
1278
|
+
...a,
|
|
1279
|
+
children: [
|
|
1280
|
+
e,
|
|
1281
|
+
/* @__PURE__ */ r(Ye, {})
|
|
1282
|
+
]
|
|
1283
|
+
}
|
|
1284
|
+
));
|
|
1285
|
+
Hr.displayName = S.Root.displayName;
|
|
1286
|
+
const $r = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
1287
|
+
S.List,
|
|
1288
|
+
{
|
|
1289
|
+
ref: a,
|
|
1290
|
+
className: s("group flex flex-1 list-none items-center justify-center space-x-1", t),
|
|
1291
|
+
...e
|
|
1292
|
+
}
|
|
1293
|
+
));
|
|
1294
|
+
$r.displayName = S.List.displayName;
|
|
1295
|
+
const Sn = S.Item, Kr = z(
|
|
1296
|
+
"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50"
|
|
1297
|
+
), Ur = n.forwardRef(({ className: t, children: e, ...a }, o) => /* @__PURE__ */ d(
|
|
1298
|
+
S.Trigger,
|
|
1299
|
+
{
|
|
1300
|
+
ref: o,
|
|
1301
|
+
className: s(Kr(), "group", t),
|
|
1302
|
+
...a,
|
|
1303
|
+
children: [
|
|
1304
|
+
e,
|
|
1305
|
+
" ",
|
|
1306
|
+
/* @__PURE__ */ r(
|
|
1307
|
+
ee,
|
|
1308
|
+
{
|
|
1309
|
+
className: "relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180",
|
|
1310
|
+
"aria-hidden": "true"
|
|
1311
|
+
}
|
|
1312
|
+
)
|
|
1313
|
+
]
|
|
1314
|
+
}
|
|
1315
|
+
));
|
|
1316
|
+
Ur.displayName = S.Trigger.displayName;
|
|
1317
|
+
const Wr = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
1318
|
+
S.Content,
|
|
1319
|
+
{
|
|
1320
|
+
ref: a,
|
|
1321
|
+
className: s(
|
|
1322
|
+
"left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto",
|
|
1323
|
+
t
|
|
1324
|
+
),
|
|
1325
|
+
...e
|
|
1326
|
+
}
|
|
1327
|
+
));
|
|
1328
|
+
Wr.displayName = S.Content.displayName;
|
|
1329
|
+
const kn = S.Link, Ye = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r("div", { className: s("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ r(
|
|
1330
|
+
S.Viewport,
|
|
1331
|
+
{
|
|
1332
|
+
className: s(
|
|
1333
|
+
"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",
|
|
1334
|
+
t
|
|
1335
|
+
),
|
|
1336
|
+
ref: a,
|
|
1337
|
+
...e
|
|
1338
|
+
}
|
|
1339
|
+
) }));
|
|
1340
|
+
Ye.displayName = S.Viewport.displayName;
|
|
1341
|
+
const qr = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
1342
|
+
S.Indicator,
|
|
1343
|
+
{
|
|
1344
|
+
ref: a,
|
|
1345
|
+
className: s(
|
|
1346
|
+
"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
|
|
1347
|
+
t
|
|
1348
|
+
),
|
|
1349
|
+
...e,
|
|
1350
|
+
children: /* @__PURE__ */ r("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
|
|
1351
|
+
}
|
|
1352
|
+
));
|
|
1353
|
+
qr.displayName = S.Indicator.displayName;
|
|
1354
|
+
const Xr = ({ className: t, ...e }) => /* @__PURE__ */ r(
|
|
1355
|
+
"nav",
|
|
1356
|
+
{
|
|
1357
|
+
role: "navigation",
|
|
1358
|
+
"aria-label": "pagination",
|
|
1359
|
+
className: s("mx-auto flex w-full justify-center", t),
|
|
1360
|
+
...e
|
|
1361
|
+
}
|
|
1362
|
+
);
|
|
1363
|
+
Xr.displayName = "Pagination";
|
|
1364
|
+
const Yr = n.forwardRef(
|
|
1365
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("ul", { ref: a, className: s("flex flex-row items-center gap-1", t), ...e })
|
|
1366
|
+
);
|
|
1367
|
+
Yr.displayName = "PaginationContent";
|
|
1368
|
+
const Jr = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r("li", { ref: a, className: s("", t), ...e }));
|
|
1369
|
+
Jr.displayName = "PaginationItem";
|
|
1370
|
+
const Ce = ({ className: t, isActive: e, size: a = "icon", ...o }) => /* @__PURE__ */ r(
|
|
1371
|
+
"a",
|
|
1372
|
+
{
|
|
1373
|
+
"aria-current": e ? "page" : void 0,
|
|
1374
|
+
className: s(
|
|
1375
|
+
B({
|
|
1376
|
+
variant: e ? "outline" : "ghost",
|
|
1377
|
+
size: a
|
|
1378
|
+
}),
|
|
1379
|
+
t
|
|
1380
|
+
),
|
|
1381
|
+
...o
|
|
1382
|
+
}
|
|
1383
|
+
);
|
|
1384
|
+
Ce.displayName = "PaginationLink";
|
|
1385
|
+
const Qr = ({ className: t, ...e }) => /* @__PURE__ */ d(Ce, { "aria-label": "Go to previous page", size: "default", className: s("gap-1 pl-2.5", t), ...e, children: [
|
|
1386
|
+
/* @__PURE__ */ r(_e, { className: "h-4 w-4" }),
|
|
1387
|
+
/* @__PURE__ */ r("span", { children: "Previous" })
|
|
1388
|
+
] });
|
|
1389
|
+
Qr.displayName = "PaginationPrevious";
|
|
1390
|
+
const Zr = ({ className: t, ...e }) => /* @__PURE__ */ d(Ce, { "aria-label": "Go to next page", size: "default", className: s("gap-1 pr-2.5", t), ...e, children: [
|
|
1391
|
+
/* @__PURE__ */ r("span", { children: "Next" }),
|
|
1392
|
+
/* @__PURE__ */ r(G, { className: "h-4 w-4" })
|
|
1393
|
+
] });
|
|
1394
|
+
Zr.displayName = "PaginationNext";
|
|
1395
|
+
const eo = ({ className: t, ...e }) => /* @__PURE__ */ d("span", { "aria-hidden": !0, className: s("flex h-9 w-9 items-center justify-center", t), ...e, children: [
|
|
1396
|
+
/* @__PURE__ */ r(De, { className: "h-4 w-4" }),
|
|
1397
|
+
/* @__PURE__ */ r("span", { className: "sr-only", children: "More pages" })
|
|
1398
|
+
] });
|
|
1399
|
+
eo.displayName = "PaginationEllipsis";
|
|
1400
|
+
const Tn = W.Root, In = W.Trigger, to = n.forwardRef(({ className: t, align: e = "center", sideOffset: a = 4, ...o }, i) => /* @__PURE__ */ r(W.Portal, { children: /* @__PURE__ */ r(
|
|
1401
|
+
W.Content,
|
|
1402
|
+
{
|
|
1403
|
+
ref: i,
|
|
1404
|
+
align: e,
|
|
1405
|
+
sideOffset: a,
|
|
1406
|
+
className: s(
|
|
1407
|
+
"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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",
|
|
1408
|
+
t
|
|
1409
|
+
),
|
|
1410
|
+
...o
|
|
1411
|
+
}
|
|
1412
|
+
) }));
|
|
1413
|
+
to.displayName = W.Content.displayName;
|
|
1414
|
+
const ao = n.forwardRef(({ className: t, value: e, ...a }, o) => /* @__PURE__ */ r(
|
|
1415
|
+
ue.Root,
|
|
1416
|
+
{
|
|
1417
|
+
ref: o,
|
|
1418
|
+
className: s("relative h-4 w-full overflow-hidden rounded-full bg-secondary", t),
|
|
1419
|
+
...a,
|
|
1420
|
+
children: /* @__PURE__ */ r(
|
|
1421
|
+
ue.Indicator,
|
|
1422
|
+
{
|
|
1423
|
+
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
1424
|
+
style: { transform: `translateX(-${100 - (e || 0)}%)` }
|
|
1425
|
+
}
|
|
1426
|
+
)
|
|
1427
|
+
}
|
|
1428
|
+
));
|
|
1429
|
+
ao.displayName = ue.Root.displayName;
|
|
1430
|
+
const ro = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(q.Root, { className: s("grid gap-2", t), ...e, ref: a }));
|
|
1431
|
+
ro.displayName = q.Root.displayName;
|
|
1432
|
+
const oo = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
1433
|
+
q.Item,
|
|
1434
|
+
{
|
|
1435
|
+
ref: a,
|
|
1436
|
+
className: s(
|
|
1437
|
+
"aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
1438
|
+
t
|
|
1439
|
+
),
|
|
1440
|
+
...e,
|
|
1441
|
+
children: /* @__PURE__ */ r(q.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ r(te, { className: "h-2.5 w-2.5 fill-current text-current" }) })
|
|
1442
|
+
}
|
|
1443
|
+
));
|
|
1444
|
+
oo.displayName = q.Item.displayName;
|
|
1445
|
+
const Pn = ({ className: t, ...e }) => /* @__PURE__ */ r(
|
|
1446
|
+
ye.PanelGroup,
|
|
1447
|
+
{
|
|
1448
|
+
className: s("flex h-full w-full data-[panel-group-direction=vertical]:flex-col", t),
|
|
1449
|
+
...e
|
|
1450
|
+
}
|
|
1451
|
+
), Mn = ye.Panel, Dn = ({
|
|
1452
|
+
withHandle: t,
|
|
1453
|
+
className: e,
|
|
1454
|
+
...a
|
|
1455
|
+
}) => /* @__PURE__ */ r(
|
|
1456
|
+
ye.PanelResizeHandle,
|
|
1457
|
+
{
|
|
1458
|
+
className: s(
|
|
1459
|
+
"relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-panel-group-direction=vertical]>div]:rotate-90",
|
|
1460
|
+
e
|
|
1461
|
+
),
|
|
1462
|
+
...a,
|
|
1463
|
+
children: t && /* @__PURE__ */ r("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ r(ht, { className: "h-2.5 w-2.5" }) })
|
|
1464
|
+
}
|
|
1465
|
+
), so = n.forwardRef(({ className: t, children: e, ...a }, o) => /* @__PURE__ */ d(F.Root, { ref: o, className: s("relative overflow-hidden", t), ...a, children: [
|
|
1466
|
+
/* @__PURE__ */ r(F.Viewport, { className: "h-full w-full rounded-[inherit]", children: e }),
|
|
1467
|
+
/* @__PURE__ */ r(Je, {}),
|
|
1468
|
+
/* @__PURE__ */ r(F.Corner, {})
|
|
1469
|
+
] }));
|
|
1470
|
+
so.displayName = F.Root.displayName;
|
|
1471
|
+
const Je = n.forwardRef(({ className: t, orientation: e = "vertical", ...a }, o) => /* @__PURE__ */ r(
|
|
1472
|
+
F.ScrollAreaScrollbar,
|
|
1473
|
+
{
|
|
1474
|
+
ref: o,
|
|
1475
|
+
orientation: e,
|
|
1476
|
+
className: s(
|
|
1477
|
+
"flex touch-none select-none transition-colors",
|
|
1478
|
+
e === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]",
|
|
1479
|
+
e === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]",
|
|
1480
|
+
t
|
|
1481
|
+
),
|
|
1482
|
+
...a,
|
|
1483
|
+
children: /* @__PURE__ */ r(F.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
|
|
1484
|
+
}
|
|
1485
|
+
));
|
|
1486
|
+
Je.displayName = F.ScrollAreaScrollbar.displayName;
|
|
1487
|
+
const ke = N.Root, _n = N.Group, Te = N.Value, ge = n.forwardRef(({ className: t, children: e, ...a }, o) => /* @__PURE__ */ d(
|
|
1488
|
+
N.Trigger,
|
|
1489
|
+
{
|
|
1490
|
+
ref: o,
|
|
1491
|
+
className: s(
|
|
1492
|
+
"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
|
|
1493
|
+
t
|
|
1494
|
+
),
|
|
1495
|
+
...a,
|
|
1496
|
+
children: [
|
|
1497
|
+
e,
|
|
1498
|
+
/* @__PURE__ */ r(N.Icon, { asChild: !0, children: /* @__PURE__ */ r(ee, { className: "h-4 w-4 opacity-50" }) })
|
|
1499
|
+
]
|
|
1500
|
+
}
|
|
1501
|
+
));
|
|
1502
|
+
ge.displayName = N.Trigger.displayName;
|
|
1503
|
+
const Qe = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
1504
|
+
N.ScrollUpButton,
|
|
1505
|
+
{
|
|
1506
|
+
ref: a,
|
|
1507
|
+
className: s("flex cursor-default items-center justify-center py-1", t),
|
|
1508
|
+
...e,
|
|
1509
|
+
children: /* @__PURE__ */ r(xt, { className: "h-4 w-4" })
|
|
1510
|
+
}
|
|
1511
|
+
));
|
|
1512
|
+
Qe.displayName = N.ScrollUpButton.displayName;
|
|
1513
|
+
const Ze = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
1514
|
+
N.ScrollDownButton,
|
|
1515
|
+
{
|
|
1516
|
+
ref: a,
|
|
1517
|
+
className: s("flex cursor-default items-center justify-center py-1", t),
|
|
1518
|
+
...e,
|
|
1519
|
+
children: /* @__PURE__ */ r(ee, { className: "h-4 w-4" })
|
|
1520
|
+
}
|
|
1521
|
+
));
|
|
1522
|
+
Ze.displayName = N.ScrollDownButton.displayName;
|
|
1523
|
+
const be = n.forwardRef(({ className: t, children: e, position: a = "popper", ...o }, i) => /* @__PURE__ */ r(N.Portal, { children: /* @__PURE__ */ d(
|
|
1524
|
+
N.Content,
|
|
1525
|
+
{
|
|
1526
|
+
ref: i,
|
|
1527
|
+
className: s(
|
|
1528
|
+
"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md 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",
|
|
1529
|
+
a === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
1530
|
+
t
|
|
1531
|
+
),
|
|
1532
|
+
position: a,
|
|
1533
|
+
...o,
|
|
1534
|
+
children: [
|
|
1535
|
+
/* @__PURE__ */ r(Qe, {}),
|
|
1536
|
+
/* @__PURE__ */ r(
|
|
1537
|
+
N.Viewport,
|
|
1538
|
+
{
|
|
1539
|
+
className: s(
|
|
1540
|
+
"p-1",
|
|
1541
|
+
a === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
|
|
1542
|
+
),
|
|
1543
|
+
children: e
|
|
1544
|
+
}
|
|
1545
|
+
),
|
|
1546
|
+
/* @__PURE__ */ r(Ze, {})
|
|
1547
|
+
]
|
|
1548
|
+
}
|
|
1549
|
+
) }));
|
|
1550
|
+
be.displayName = N.Content.displayName;
|
|
1551
|
+
const no = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(N.Label, { ref: a, className: s("py-1.5 pl-8 pr-2 text-sm font-semibold", t), ...e }));
|
|
1552
|
+
no.displayName = N.Label.displayName;
|
|
1553
|
+
const he = n.forwardRef(({ className: t, children: e, ...a }, o) => /* @__PURE__ */ d(
|
|
1554
|
+
N.Item,
|
|
1555
|
+
{
|
|
1556
|
+
ref: o,
|
|
1557
|
+
className: s(
|
|
1558
|
+
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
|
|
1559
|
+
t
|
|
1560
|
+
),
|
|
1561
|
+
...a,
|
|
1562
|
+
children: [
|
|
1563
|
+
/* @__PURE__ */ r("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ r(N.ItemIndicator, { children: /* @__PURE__ */ r(X, { className: "h-4 w-4" }) }) }),
|
|
1564
|
+
/* @__PURE__ */ r(N.ItemText, { children: e })
|
|
1565
|
+
]
|
|
1566
|
+
}
|
|
1567
|
+
));
|
|
1568
|
+
he.displayName = N.Item.displayName;
|
|
1569
|
+
const io = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(N.Separator, { ref: a, className: s("-mx-1 my-1 h-px bg-muted", t), ...e }));
|
|
1570
|
+
io.displayName = N.Separator.displayName;
|
|
1571
|
+
const et = n.forwardRef(({
|
|
1572
|
+
className: t,
|
|
1573
|
+
orientation: e = "horizontal",
|
|
1574
|
+
decorative: a = !0,
|
|
1575
|
+
...o
|
|
1576
|
+
}, i) => /* @__PURE__ */ r(
|
|
1577
|
+
Ae.Root,
|
|
1578
|
+
{
|
|
1579
|
+
ref: i,
|
|
1580
|
+
decorative: a,
|
|
1581
|
+
orientation: e,
|
|
1582
|
+
className: s(
|
|
1583
|
+
"shrink-0 bg-border",
|
|
1584
|
+
e === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
|
|
1585
|
+
t
|
|
1586
|
+
),
|
|
1587
|
+
...o
|
|
1588
|
+
}
|
|
1589
|
+
));
|
|
1590
|
+
et.displayName = Ae.Root.displayName;
|
|
1591
|
+
const lo = p.Root, zn = p.Trigger, An = p.Close, co = p.Portal, tt = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
1592
|
+
p.Overlay,
|
|
1593
|
+
{
|
|
1594
|
+
className: s(
|
|
1595
|
+
"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",
|
|
1596
|
+
t
|
|
1597
|
+
),
|
|
1598
|
+
...e,
|
|
1599
|
+
ref: a
|
|
1600
|
+
}
|
|
1601
|
+
));
|
|
1602
|
+
tt.displayName = p.Overlay.displayName;
|
|
1603
|
+
const mo = z(
|
|
1604
|
+
"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
|
|
1605
|
+
{
|
|
1606
|
+
variants: {
|
|
1607
|
+
side: {
|
|
1608
|
+
top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
|
|
1609
|
+
bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
|
|
1610
|
+
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",
|
|
1611
|
+
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"
|
|
1612
|
+
}
|
|
1613
|
+
},
|
|
1614
|
+
defaultVariants: {
|
|
1615
|
+
side: "right"
|
|
1616
|
+
}
|
|
1617
|
+
}
|
|
1618
|
+
), at = n.forwardRef(
|
|
1619
|
+
({ side: t = "right", className: e, children: a, ...o }, i) => /* @__PURE__ */ d(co, { children: [
|
|
1620
|
+
/* @__PURE__ */ r(tt, {}),
|
|
1621
|
+
/* @__PURE__ */ d(p.Content, { ref: i, className: s(mo({ side: t }), e), ...o, children: [
|
|
1622
|
+
a,
|
|
1623
|
+
/* @__PURE__ */ d(p.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-secondary hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none", children: [
|
|
1624
|
+
/* @__PURE__ */ r(xe, { className: "h-4 w-4" }),
|
|
1625
|
+
/* @__PURE__ */ r("span", { className: "sr-only", children: "Close" })
|
|
1626
|
+
] })
|
|
1627
|
+
] })
|
|
1628
|
+
] })
|
|
1629
|
+
);
|
|
1630
|
+
at.displayName = p.Content.displayName;
|
|
1631
|
+
const uo = ({ className: t, ...e }) => /* @__PURE__ */ r("div", { className: s("flex flex-col space-y-2 text-center sm:text-left", t), ...e });
|
|
1632
|
+
uo.displayName = "SheetHeader";
|
|
1633
|
+
const fo = ({ className: t, ...e }) => /* @__PURE__ */ r("div", { className: s("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", t), ...e });
|
|
1634
|
+
fo.displayName = "SheetFooter";
|
|
1635
|
+
const po = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(p.Title, { ref: a, className: s("text-lg font-semibold text-foreground", t), ...e }));
|
|
1636
|
+
po.displayName = p.Title.displayName;
|
|
1637
|
+
const go = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(p.Description, { ref: a, className: s("text-sm text-muted-foreground", t), ...e }));
|
|
1638
|
+
go.displayName = p.Description.displayName;
|
|
1639
|
+
const de = 768;
|
|
1640
|
+
function bo() {
|
|
1641
|
+
const [t, e] = n.useState(void 0);
|
|
1642
|
+
return n.useEffect(() => {
|
|
1643
|
+
const a = window.matchMedia(`(max-width: ${de - 1}px)`), o = () => {
|
|
1644
|
+
e(window.innerWidth < de);
|
|
1645
|
+
};
|
|
1646
|
+
return a.addEventListener("change", o), e(window.innerWidth < de), () => a.removeEventListener("change", o);
|
|
1647
|
+
}, []), !!t;
|
|
1648
|
+
}
|
|
1649
|
+
function Ie({ className: t, ...e }) {
|
|
1650
|
+
return /* @__PURE__ */ r("div", { className: s("animate-pulse rounded-md bg-muted", t), ...e });
|
|
1651
|
+
}
|
|
1652
|
+
const ho = Y.Provider, xo = Y.Root, vo = Y.Trigger, rt = n.forwardRef(({ className: t, sideOffset: e = 4, ...a }, o) => /* @__PURE__ */ r(
|
|
1653
|
+
Y.Content,
|
|
1654
|
+
{
|
|
1655
|
+
ref: o,
|
|
1656
|
+
sideOffset: e,
|
|
1657
|
+
className: s(
|
|
1658
|
+
"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md 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",
|
|
1659
|
+
t
|
|
1660
|
+
),
|
|
1661
|
+
...a
|
|
1662
|
+
}
|
|
1663
|
+
));
|
|
1664
|
+
rt.displayName = Y.Content.displayName;
|
|
1665
|
+
const No = "sidebar:state", yo = 60 * 60 * 24 * 7, wo = "16rem", Co = "18rem", Ro = "3rem", So = "b", ot = n.createContext(null);
|
|
1666
|
+
function ie() {
|
|
1667
|
+
const t = n.useContext(ot);
|
|
1668
|
+
if (!t)
|
|
1669
|
+
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
1670
|
+
return t;
|
|
1671
|
+
}
|
|
1672
|
+
const ko = n.forwardRef(({ defaultOpen: t = !0, open: e, onOpenChange: a, className: o, style: i, children: l, ...c }, u) => {
|
|
1673
|
+
const x = bo(), [m, T] = n.useState(!1), [A, L] = n.useState(t), _ = e ?? A, y = n.useCallback(
|
|
1674
|
+
(v) => {
|
|
1675
|
+
const C = typeof v == "function" ? v(_) : v;
|
|
1676
|
+
a ? a(C) : L(C), document.cookie = `${No}=${C}; path=/; max-age=${yo}`;
|
|
1677
|
+
},
|
|
1678
|
+
[a, _]
|
|
1679
|
+
), I = n.useCallback(() => x ? T((v) => !v) : y((v) => !v), [x, y, T]);
|
|
1680
|
+
n.useEffect(() => {
|
|
1681
|
+
const v = (C) => {
|
|
1682
|
+
C.key === So && (C.metaKey || C.ctrlKey) && (C.preventDefault(), I());
|
|
1683
|
+
};
|
|
1684
|
+
return window.addEventListener("keydown", v), () => window.removeEventListener("keydown", v);
|
|
1685
|
+
}, [I]);
|
|
1686
|
+
const P = _ ? "expanded" : "collapsed", g = n.useMemo(
|
|
1687
|
+
() => ({
|
|
1688
|
+
state: P,
|
|
1689
|
+
open: _,
|
|
1690
|
+
setOpen: y,
|
|
1691
|
+
isMobile: x,
|
|
1692
|
+
openMobile: m,
|
|
1693
|
+
setOpenMobile: T,
|
|
1694
|
+
toggleSidebar: I
|
|
1695
|
+
}),
|
|
1696
|
+
[P, _, y, x, m, T, I]
|
|
1697
|
+
);
|
|
1698
|
+
return /* @__PURE__ */ r(ot.Provider, { value: g, children: /* @__PURE__ */ r(ho, { delayDuration: 0, children: /* @__PURE__ */ r(
|
|
1699
|
+
"div",
|
|
1700
|
+
{
|
|
1701
|
+
style: {
|
|
1702
|
+
"--sidebar-width": wo,
|
|
1703
|
+
"--sidebar-width-icon": Ro,
|
|
1704
|
+
...i
|
|
1705
|
+
},
|
|
1706
|
+
className: s("group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar", o),
|
|
1707
|
+
ref: u,
|
|
1708
|
+
...c,
|
|
1709
|
+
children: l
|
|
1710
|
+
}
|
|
1711
|
+
) }) });
|
|
1712
|
+
});
|
|
1713
|
+
ko.displayName = "SidebarProvider";
|
|
1714
|
+
const To = n.forwardRef(({ side: t = "left", variant: e = "sidebar", collapsible: a = "offcanvas", className: o, children: i, ...l }, c) => {
|
|
1715
|
+
const { isMobile: u, state: x, openMobile: m, setOpenMobile: T } = ie();
|
|
1716
|
+
return a === "none" ? /* @__PURE__ */ r(
|
|
1717
|
+
"div",
|
|
1718
|
+
{
|
|
1719
|
+
className: s("flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground", o),
|
|
1720
|
+
ref: c,
|
|
1721
|
+
...l,
|
|
1722
|
+
children: i
|
|
1723
|
+
}
|
|
1724
|
+
) : u ? /* @__PURE__ */ r(lo, { open: m, onOpenChange: T, ...l, children: /* @__PURE__ */ r(
|
|
1725
|
+
at,
|
|
1726
|
+
{
|
|
1727
|
+
"data-sidebar": "sidebar",
|
|
1728
|
+
"data-mobile": "true",
|
|
1729
|
+
className: "w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",
|
|
1730
|
+
style: {
|
|
1731
|
+
"--sidebar-width": Co
|
|
1732
|
+
},
|
|
1733
|
+
side: t,
|
|
1734
|
+
children: /* @__PURE__ */ r("div", { className: "flex h-full w-full flex-col", children: i })
|
|
1735
|
+
}
|
|
1736
|
+
) }) : /* @__PURE__ */ d(
|
|
1737
|
+
"div",
|
|
1738
|
+
{
|
|
1739
|
+
ref: c,
|
|
1740
|
+
className: "group peer hidden text-sidebar-foreground md:block",
|
|
1741
|
+
"data-state": x,
|
|
1742
|
+
"data-collapsible": x === "collapsed" ? a : "",
|
|
1743
|
+
"data-variant": e,
|
|
1744
|
+
"data-side": t,
|
|
1745
|
+
children: [
|
|
1746
|
+
/* @__PURE__ */ r(
|
|
1747
|
+
"div",
|
|
1748
|
+
{
|
|
1749
|
+
className: s(
|
|
1750
|
+
"relative h-svh w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear",
|
|
1751
|
+
"group-data-[collapsible=offcanvas]:w-0",
|
|
1752
|
+
"group-data-[side=right]:rotate-180",
|
|
1753
|
+
e === "floating" || e === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]" : "group-data-[collapsible=icon]:w-[--sidebar-width-icon]"
|
|
1754
|
+
)
|
|
1755
|
+
}
|
|
1756
|
+
),
|
|
1757
|
+
/* @__PURE__ */ r(
|
|
1758
|
+
"div",
|
|
1759
|
+
{
|
|
1760
|
+
className: s(
|
|
1761
|
+
"fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex",
|
|
1762
|
+
t === "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)]",
|
|
1763
|
+
// Adjust the padding for floating and inset variants.
|
|
1764
|
+
e === "floating" || e === "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",
|
|
1765
|
+
o
|
|
1766
|
+
),
|
|
1767
|
+
...l,
|
|
1768
|
+
children: /* @__PURE__ */ r(
|
|
1769
|
+
"div",
|
|
1770
|
+
{
|
|
1771
|
+
"data-sidebar": "sidebar",
|
|
1772
|
+
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",
|
|
1773
|
+
children: i
|
|
1774
|
+
}
|
|
1775
|
+
)
|
|
1776
|
+
}
|
|
1777
|
+
)
|
|
1778
|
+
]
|
|
1779
|
+
}
|
|
1780
|
+
);
|
|
1781
|
+
});
|
|
1782
|
+
To.displayName = "Sidebar";
|
|
1783
|
+
const Io = n.forwardRef(
|
|
1784
|
+
({ className: t, onClick: e, ...a }, o) => {
|
|
1785
|
+
const { toggleSidebar: i } = ie();
|
|
1786
|
+
return /* @__PURE__ */ d(
|
|
1787
|
+
oe,
|
|
1788
|
+
{
|
|
1789
|
+
ref: o,
|
|
1790
|
+
"data-sidebar": "trigger",
|
|
1791
|
+
variant: "ghost",
|
|
1792
|
+
size: "icon",
|
|
1793
|
+
className: s("h-7 w-7", t),
|
|
1794
|
+
onClick: (l) => {
|
|
1795
|
+
e == null || e(l), i();
|
|
1796
|
+
},
|
|
1797
|
+
...a,
|
|
1798
|
+
children: [
|
|
1799
|
+
/* @__PURE__ */ r(vt, {}),
|
|
1800
|
+
/* @__PURE__ */ r("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
1801
|
+
]
|
|
1802
|
+
}
|
|
1803
|
+
);
|
|
1804
|
+
}
|
|
1805
|
+
);
|
|
1806
|
+
Io.displayName = "SidebarTrigger";
|
|
1807
|
+
const Po = n.forwardRef(
|
|
1808
|
+
({ className: t, ...e }, a) => {
|
|
1809
|
+
const { toggleSidebar: o } = ie();
|
|
1810
|
+
return /* @__PURE__ */ r(
|
|
1811
|
+
"button",
|
|
1812
|
+
{
|
|
1813
|
+
ref: a,
|
|
1814
|
+
"data-sidebar": "rail",
|
|
1815
|
+
"aria-label": "Toggle Sidebar",
|
|
1816
|
+
tabIndex: -1,
|
|
1817
|
+
onClick: o,
|
|
1818
|
+
title: "Toggle Sidebar",
|
|
1819
|
+
className: s(
|
|
1820
|
+
"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] group-data-[side=left]:-right-4 group-data-[side=right]:left-0 hover:after:bg-sidebar-border sm:flex",
|
|
1821
|
+
"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize",
|
|
1822
|
+
"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
|
|
1823
|
+
"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar",
|
|
1824
|
+
"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
|
|
1825
|
+
"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
|
|
1826
|
+
t
|
|
1827
|
+
),
|
|
1828
|
+
...e
|
|
1829
|
+
}
|
|
1830
|
+
);
|
|
1831
|
+
}
|
|
1832
|
+
);
|
|
1833
|
+
Po.displayName = "SidebarRail";
|
|
1834
|
+
const Mo = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
1835
|
+
"main",
|
|
1836
|
+
{
|
|
1837
|
+
ref: a,
|
|
1838
|
+
className: s(
|
|
1839
|
+
"relative flex min-h-svh flex-1 flex-col bg-background",
|
|
1840
|
+
"peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] 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",
|
|
1841
|
+
t
|
|
1842
|
+
),
|
|
1843
|
+
...e
|
|
1844
|
+
}
|
|
1845
|
+
));
|
|
1846
|
+
Mo.displayName = "SidebarInset";
|
|
1847
|
+
const Do = n.forwardRef(
|
|
1848
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
1849
|
+
Xe,
|
|
1850
|
+
{
|
|
1851
|
+
ref: a,
|
|
1852
|
+
"data-sidebar": "input",
|
|
1853
|
+
className: s(
|
|
1854
|
+
"h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",
|
|
1855
|
+
t
|
|
1856
|
+
),
|
|
1857
|
+
...e
|
|
1858
|
+
}
|
|
1859
|
+
)
|
|
1860
|
+
);
|
|
1861
|
+
Do.displayName = "SidebarInput";
|
|
1862
|
+
const _o = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r("div", { ref: a, "data-sidebar": "header", className: s("flex flex-col gap-2 p-2", t), ...e }));
|
|
1863
|
+
_o.displayName = "SidebarHeader";
|
|
1864
|
+
const zo = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r("div", { ref: a, "data-sidebar": "footer", className: s("flex flex-col gap-2 p-2", t), ...e }));
|
|
1865
|
+
zo.displayName = "SidebarFooter";
|
|
1866
|
+
const Ao = n.forwardRef(
|
|
1867
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
1868
|
+
et,
|
|
1869
|
+
{
|
|
1870
|
+
ref: a,
|
|
1871
|
+
"data-sidebar": "separator",
|
|
1872
|
+
className: s("mx-2 w-auto bg-sidebar-border", t),
|
|
1873
|
+
...e
|
|
1874
|
+
}
|
|
1875
|
+
)
|
|
1876
|
+
);
|
|
1877
|
+
Ao.displayName = "SidebarSeparator";
|
|
1878
|
+
const jo = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
1879
|
+
"div",
|
|
1880
|
+
{
|
|
1881
|
+
ref: a,
|
|
1882
|
+
"data-sidebar": "content",
|
|
1883
|
+
className: s(
|
|
1884
|
+
"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
|
|
1885
|
+
t
|
|
1886
|
+
),
|
|
1887
|
+
...e
|
|
1888
|
+
}
|
|
1889
|
+
));
|
|
1890
|
+
jo.displayName = "SidebarContent";
|
|
1891
|
+
const Lo = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
1892
|
+
"div",
|
|
1893
|
+
{
|
|
1894
|
+
ref: a,
|
|
1895
|
+
"data-sidebar": "group",
|
|
1896
|
+
className: s("relative flex w-full min-w-0 flex-col p-2", t),
|
|
1897
|
+
...e
|
|
1898
|
+
}
|
|
1899
|
+
));
|
|
1900
|
+
Lo.displayName = "SidebarGroup";
|
|
1901
|
+
const Fo = n.forwardRef(
|
|
1902
|
+
({ className: t, asChild: e = !1, ...a }, o) => /* @__PURE__ */ r(
|
|
1903
|
+
e ? j : "div",
|
|
1904
|
+
{
|
|
1905
|
+
ref: o,
|
|
1906
|
+
"data-sidebar": "group-label",
|
|
1907
|
+
className: s(
|
|
1908
|
+
"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,opa] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
1909
|
+
"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
|
|
1910
|
+
t
|
|
1911
|
+
),
|
|
1912
|
+
...a
|
|
1913
|
+
}
|
|
1914
|
+
)
|
|
1915
|
+
);
|
|
1916
|
+
Fo.displayName = "SidebarGroupLabel";
|
|
1917
|
+
const Oo = n.forwardRef(
|
|
1918
|
+
({ className: t, asChild: e = !1, ...a }, o) => /* @__PURE__ */ r(
|
|
1919
|
+
e ? j : "button",
|
|
1920
|
+
{
|
|
1921
|
+
ref: o,
|
|
1922
|
+
"data-sidebar": "group-action",
|
|
1923
|
+
className: s(
|
|
1924
|
+
"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",
|
|
1925
|
+
// Increases the hit area of the button on mobile.
|
|
1926
|
+
"after:absolute after:-inset-2 after:md:hidden",
|
|
1927
|
+
"group-data-[collapsible=icon]:hidden",
|
|
1928
|
+
t
|
|
1929
|
+
),
|
|
1930
|
+
...a
|
|
1931
|
+
}
|
|
1932
|
+
)
|
|
1933
|
+
);
|
|
1934
|
+
Oo.displayName = "SidebarGroupAction";
|
|
1935
|
+
const Eo = n.forwardRef(
|
|
1936
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("div", { ref: a, "data-sidebar": "group-content", className: s("w-full text-sm", t), ...e })
|
|
1937
|
+
);
|
|
1938
|
+
Eo.displayName = "SidebarGroupContent";
|
|
1939
|
+
const Bo = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r("ul", { ref: a, "data-sidebar": "menu", className: s("flex w-full min-w-0 flex-col gap-1", t), ...e }));
|
|
1940
|
+
Bo.displayName = "SidebarMenu";
|
|
1941
|
+
const Go = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r("li", { ref: a, "data-sidebar": "menu-item", className: s("group/menu-item relative", t), ...e }));
|
|
1942
|
+
Go.displayName = "SidebarMenuItem";
|
|
1943
|
+
const Vo = z(
|
|
1944
|
+
"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]:font-medium 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",
|
|
1945
|
+
{
|
|
1946
|
+
variants: {
|
|
1947
|
+
variant: {
|
|
1948
|
+
default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
1949
|
+
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))]"
|
|
1950
|
+
},
|
|
1951
|
+
size: {
|
|
1952
|
+
default: "h-8 text-sm",
|
|
1953
|
+
sm: "h-7 text-xs",
|
|
1954
|
+
lg: "h-12 text-sm group-data-[collapsible=icon]:!p-0"
|
|
1955
|
+
}
|
|
1956
|
+
},
|
|
1957
|
+
defaultVariants: {
|
|
1958
|
+
variant: "default",
|
|
1959
|
+
size: "default"
|
|
1960
|
+
}
|
|
1961
|
+
}
|
|
1962
|
+
), Ho = n.forwardRef(({ asChild: t = !1, isActive: e = !1, variant: a = "default", size: o = "default", tooltip: i, className: l, ...c }, u) => {
|
|
1963
|
+
const x = t ? j : "button", { isMobile: m, state: T } = ie(), A = /* @__PURE__ */ r(
|
|
1964
|
+
x,
|
|
1965
|
+
{
|
|
1966
|
+
ref: u,
|
|
1967
|
+
"data-sidebar": "menu-button",
|
|
1968
|
+
"data-size": o,
|
|
1969
|
+
"data-active": e,
|
|
1970
|
+
className: s(Vo({ variant: a, size: o }), l),
|
|
1971
|
+
...c
|
|
1972
|
+
}
|
|
1973
|
+
);
|
|
1974
|
+
return i ? (typeof i == "string" && (i = {
|
|
1975
|
+
children: i
|
|
1976
|
+
}), /* @__PURE__ */ d(xo, { children: [
|
|
1977
|
+
/* @__PURE__ */ r(vo, { asChild: !0, children: A }),
|
|
1978
|
+
/* @__PURE__ */ r(rt, { side: "right", align: "center", hidden: T !== "collapsed" || m, ...i })
|
|
1979
|
+
] })) : A;
|
|
1980
|
+
});
|
|
1981
|
+
Ho.displayName = "SidebarMenuButton";
|
|
1982
|
+
const $o = n.forwardRef(({ className: t, asChild: e = !1, showOnHover: a = !1, ...o }, i) => /* @__PURE__ */ r(
|
|
1983
|
+
e ? j : "button",
|
|
1984
|
+
{
|
|
1985
|
+
ref: i,
|
|
1986
|
+
"data-sidebar": "menu-action",
|
|
1987
|
+
className: s(
|
|
1988
|
+
"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 peer-hover/menu-button:text-sidebar-accent-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
1989
|
+
// Increases the hit area of the button on mobile.
|
|
1990
|
+
"after:absolute after:-inset-2 after:md:hidden",
|
|
1991
|
+
"peer-data-[size=sm]/menu-button:top-1",
|
|
1992
|
+
"peer-data-[size=default]/menu-button:top-1.5",
|
|
1993
|
+
"peer-data-[size=lg]/menu-button:top-2.5",
|
|
1994
|
+
"group-data-[collapsible=icon]:hidden",
|
|
1995
|
+
a && "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",
|
|
1996
|
+
t
|
|
1997
|
+
),
|
|
1998
|
+
...o
|
|
1999
|
+
}
|
|
2000
|
+
));
|
|
2001
|
+
$o.displayName = "SidebarMenuAction";
|
|
2002
|
+
const Ko = n.forwardRef(
|
|
2003
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
2004
|
+
"div",
|
|
2005
|
+
{
|
|
2006
|
+
ref: a,
|
|
2007
|
+
"data-sidebar": "menu-badge",
|
|
2008
|
+
className: s(
|
|
2009
|
+
"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",
|
|
2010
|
+
"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
|
|
2011
|
+
"peer-data-[size=sm]/menu-button:top-1",
|
|
2012
|
+
"peer-data-[size=default]/menu-button:top-1.5",
|
|
2013
|
+
"peer-data-[size=lg]/menu-button:top-2.5",
|
|
2014
|
+
"group-data-[collapsible=icon]:hidden",
|
|
2015
|
+
t
|
|
2016
|
+
),
|
|
2017
|
+
...e
|
|
2018
|
+
}
|
|
2019
|
+
)
|
|
2020
|
+
);
|
|
2021
|
+
Ko.displayName = "SidebarMenuBadge";
|
|
2022
|
+
const Uo = n.forwardRef(({ className: t, showIcon: e = !1, ...a }, o) => {
|
|
2023
|
+
const i = n.useMemo(() => `${Math.floor(Math.random() * 40) + 50}%`, []);
|
|
2024
|
+
return /* @__PURE__ */ d(
|
|
2025
|
+
"div",
|
|
2026
|
+
{
|
|
2027
|
+
ref: o,
|
|
2028
|
+
"data-sidebar": "menu-skeleton",
|
|
2029
|
+
className: s("flex h-8 items-center gap-2 rounded-md px-2", t),
|
|
2030
|
+
...a,
|
|
2031
|
+
children: [
|
|
2032
|
+
e && /* @__PURE__ */ r(Ie, { className: "size-4 rounded-md", "data-sidebar": "menu-skeleton-icon" }),
|
|
2033
|
+
/* @__PURE__ */ r(
|
|
2034
|
+
Ie,
|
|
2035
|
+
{
|
|
2036
|
+
className: "h-4 max-w-[--skeleton-width] flex-1",
|
|
2037
|
+
"data-sidebar": "menu-skeleton-text",
|
|
2038
|
+
style: {
|
|
2039
|
+
"--skeleton-width": i
|
|
2040
|
+
}
|
|
2041
|
+
}
|
|
2042
|
+
)
|
|
2043
|
+
]
|
|
2044
|
+
}
|
|
2045
|
+
);
|
|
2046
|
+
});
|
|
2047
|
+
Uo.displayName = "SidebarMenuSkeleton";
|
|
2048
|
+
const Wo = n.forwardRef(
|
|
2049
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
2050
|
+
"ul",
|
|
2051
|
+
{
|
|
2052
|
+
ref: a,
|
|
2053
|
+
"data-sidebar": "menu-sub",
|
|
2054
|
+
className: s(
|
|
2055
|
+
"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",
|
|
2056
|
+
"group-data-[collapsible=icon]:hidden",
|
|
2057
|
+
t
|
|
2058
|
+
),
|
|
2059
|
+
...e
|
|
2060
|
+
}
|
|
2061
|
+
)
|
|
2062
|
+
);
|
|
2063
|
+
Wo.displayName = "SidebarMenuSub";
|
|
2064
|
+
const qo = n.forwardRef(({ ...t }, e) => /* @__PURE__ */ r("li", { ref: e, ...t }));
|
|
2065
|
+
qo.displayName = "SidebarMenuSubItem";
|
|
2066
|
+
const Xo = n.forwardRef(({ asChild: t = !1, size: e = "md", isActive: a, className: o, ...i }, l) => /* @__PURE__ */ r(
|
|
2067
|
+
t ? j : "a",
|
|
2068
|
+
{
|
|
2069
|
+
ref: l,
|
|
2070
|
+
"data-sidebar": "menu-sub-button",
|
|
2071
|
+
"data-size": e,
|
|
2072
|
+
"data-active": a,
|
|
2073
|
+
className: s(
|
|
2074
|
+
"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 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 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
|
|
2075
|
+
"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
|
|
2076
|
+
e === "sm" && "text-xs",
|
|
2077
|
+
e === "md" && "text-sm",
|
|
2078
|
+
"group-data-[collapsible=icon]:hidden",
|
|
2079
|
+
o
|
|
2080
|
+
),
|
|
2081
|
+
...i
|
|
2082
|
+
}
|
|
2083
|
+
));
|
|
2084
|
+
Xo.displayName = "SidebarMenuSubButton";
|
|
2085
|
+
const Yo = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ d(
|
|
2086
|
+
$.Root,
|
|
2087
|
+
{
|
|
2088
|
+
ref: a,
|
|
2089
|
+
className: s("relative flex w-full touch-none select-none items-center", t),
|
|
2090
|
+
...e,
|
|
2091
|
+
children: [
|
|
2092
|
+
/* @__PURE__ */ r($.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-secondary", children: /* @__PURE__ */ r($.Range, { className: "absolute h-full bg-primary" }) }),
|
|
2093
|
+
/* @__PURE__ */ r($.Thumb, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" })
|
|
2094
|
+
]
|
|
2095
|
+
}
|
|
2096
|
+
));
|
|
2097
|
+
Yo.displayName = $.Root.displayName;
|
|
2098
|
+
const jn = ({ ...t }) => {
|
|
2099
|
+
const { theme: e = "system" } = Mt();
|
|
2100
|
+
return /* @__PURE__ */ r(
|
|
2101
|
+
Dt,
|
|
2102
|
+
{
|
|
2103
|
+
theme: e,
|
|
2104
|
+
className: "toaster group",
|
|
2105
|
+
toastOptions: {
|
|
2106
|
+
classNames: {
|
|
2107
|
+
toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
|
|
2108
|
+
description: "group-[.toast]:text-muted-foreground",
|
|
2109
|
+
actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
|
|
2110
|
+
cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
|
|
2111
|
+
}
|
|
2112
|
+
},
|
|
2113
|
+
...t
|
|
2114
|
+
}
|
|
2115
|
+
);
|
|
2116
|
+
}, Jo = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
2117
|
+
fe.Root,
|
|
2118
|
+
{
|
|
2119
|
+
className: s(
|
|
2120
|
+
"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50",
|
|
2121
|
+
t
|
|
2122
|
+
),
|
|
2123
|
+
...e,
|
|
2124
|
+
ref: a,
|
|
2125
|
+
children: /* @__PURE__ */ r(
|
|
2126
|
+
fe.Thumb,
|
|
2127
|
+
{
|
|
2128
|
+
className: s(
|
|
2129
|
+
"pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0"
|
|
2130
|
+
)
|
|
2131
|
+
}
|
|
2132
|
+
)
|
|
2133
|
+
}
|
|
2134
|
+
));
|
|
2135
|
+
Jo.displayName = fe.Root.displayName;
|
|
2136
|
+
const Qo = n.forwardRef(
|
|
2137
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ r("table", { ref: a, className: s("w-full caption-bottom text-sm", t), ...e }) })
|
|
2138
|
+
);
|
|
2139
|
+
Qo.displayName = "Table";
|
|
2140
|
+
const Zo = n.forwardRef(
|
|
2141
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("thead", { ref: a, className: s("[&_tr]:border-b", t), ...e })
|
|
2142
|
+
);
|
|
2143
|
+
Zo.displayName = "TableHeader";
|
|
2144
|
+
const es = n.forwardRef(
|
|
2145
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("tbody", { ref: a, className: s("[&_tr:last-child]:border-0", t), ...e })
|
|
2146
|
+
);
|
|
2147
|
+
es.displayName = "TableBody";
|
|
2148
|
+
const ts = n.forwardRef(
|
|
2149
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("tfoot", { ref: a, className: s("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", t), ...e })
|
|
2150
|
+
);
|
|
2151
|
+
ts.displayName = "TableFooter";
|
|
2152
|
+
const as = n.forwardRef(
|
|
2153
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
2154
|
+
"tr",
|
|
2155
|
+
{
|
|
2156
|
+
ref: a,
|
|
2157
|
+
className: s("border-b transition-colors data-[state=selected]:bg-muted hover:bg-muted/50", t),
|
|
2158
|
+
...e
|
|
2159
|
+
}
|
|
2160
|
+
)
|
|
2161
|
+
);
|
|
2162
|
+
as.displayName = "TableRow";
|
|
2163
|
+
const rs = n.forwardRef(
|
|
2164
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
2165
|
+
"th",
|
|
2166
|
+
{
|
|
2167
|
+
ref: a,
|
|
2168
|
+
className: s(
|
|
2169
|
+
"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",
|
|
2170
|
+
t
|
|
2171
|
+
),
|
|
2172
|
+
...e
|
|
2173
|
+
}
|
|
2174
|
+
)
|
|
2175
|
+
);
|
|
2176
|
+
rs.displayName = "TableHead";
|
|
2177
|
+
const os = n.forwardRef(
|
|
2178
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("td", { ref: a, className: s("p-4 align-middle [&:has([role=checkbox])]:pr-0", t), ...e })
|
|
2179
|
+
);
|
|
2180
|
+
os.displayName = "TableCell";
|
|
2181
|
+
const ss = n.forwardRef(
|
|
2182
|
+
({ className: t, ...e }, a) => /* @__PURE__ */ r("caption", { ref: a, className: s("mt-4 text-sm text-muted-foreground", t), ...e })
|
|
2183
|
+
);
|
|
2184
|
+
ss.displayName = "TableCaption";
|
|
2185
|
+
const Ln = E.Root, ns = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
2186
|
+
E.List,
|
|
2187
|
+
{
|
|
2188
|
+
ref: a,
|
|
2189
|
+
className: s(
|
|
2190
|
+
"inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",
|
|
2191
|
+
t
|
|
2192
|
+
),
|
|
2193
|
+
...e
|
|
2194
|
+
}
|
|
2195
|
+
));
|
|
2196
|
+
ns.displayName = E.List.displayName;
|
|
2197
|
+
const is = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
2198
|
+
E.Trigger,
|
|
2199
|
+
{
|
|
2200
|
+
ref: a,
|
|
2201
|
+
className: s(
|
|
2202
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
2203
|
+
t
|
|
2204
|
+
),
|
|
2205
|
+
...e
|
|
2206
|
+
}
|
|
2207
|
+
));
|
|
2208
|
+
is.displayName = E.Trigger.displayName;
|
|
2209
|
+
const ds = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
2210
|
+
E.Content,
|
|
2211
|
+
{
|
|
2212
|
+
ref: a,
|
|
2213
|
+
className: s(
|
|
2214
|
+
"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
2215
|
+
t
|
|
2216
|
+
),
|
|
2217
|
+
...e
|
|
2218
|
+
}
|
|
2219
|
+
));
|
|
2220
|
+
ds.displayName = E.Content.displayName;
|
|
2221
|
+
const ls = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
2222
|
+
"textarea",
|
|
2223
|
+
{
|
|
2224
|
+
className: s(
|
|
2225
|
+
"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
2226
|
+
t
|
|
2227
|
+
),
|
|
2228
|
+
ref: a,
|
|
2229
|
+
...e
|
|
2230
|
+
}
|
|
2231
|
+
));
|
|
2232
|
+
ls.displayName = "Textarea";
|
|
2233
|
+
const cs = k.Provider, st = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
2234
|
+
k.Viewport,
|
|
2235
|
+
{
|
|
2236
|
+
ref: a,
|
|
2237
|
+
className: s(
|
|
2238
|
+
"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",
|
|
2239
|
+
t
|
|
2240
|
+
),
|
|
2241
|
+
...e
|
|
2242
|
+
}
|
|
2243
|
+
));
|
|
2244
|
+
st.displayName = k.Viewport.displayName;
|
|
2245
|
+
const ms = z(
|
|
2246
|
+
"group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",
|
|
2247
|
+
{
|
|
2248
|
+
variants: {
|
|
2249
|
+
variant: {
|
|
2250
|
+
default: "border bg-background text-foreground",
|
|
2251
|
+
destructive: "destructive group border-destructive bg-destructive text-destructive-foreground"
|
|
2252
|
+
}
|
|
2253
|
+
},
|
|
2254
|
+
defaultVariants: {
|
|
2255
|
+
variant: "default"
|
|
2256
|
+
}
|
|
2257
|
+
}
|
|
2258
|
+
), nt = n.forwardRef(({ className: t, variant: e, ...a }, o) => /* @__PURE__ */ r(k.Root, { ref: o, className: s(ms({ variant: e }), t), ...a }));
|
|
2259
|
+
nt.displayName = k.Root.displayName;
|
|
2260
|
+
const us = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
2261
|
+
k.Action,
|
|
2262
|
+
{
|
|
2263
|
+
ref: a,
|
|
2264
|
+
className: s(
|
|
2265
|
+
"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors group-[.destructive]:border-muted/40 hover:bg-secondary group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 group-[.destructive]:focus:ring-destructive disabled:pointer-events-none disabled:opacity-50",
|
|
2266
|
+
t
|
|
2267
|
+
),
|
|
2268
|
+
...e
|
|
2269
|
+
}
|
|
2270
|
+
));
|
|
2271
|
+
us.displayName = k.Action.displayName;
|
|
2272
|
+
const it = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(
|
|
2273
|
+
k.Close,
|
|
2274
|
+
{
|
|
2275
|
+
ref: a,
|
|
2276
|
+
className: s(
|
|
2277
|
+
"absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 hover:text-foreground group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:outline-none focus:ring-2 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",
|
|
2278
|
+
t
|
|
2279
|
+
),
|
|
2280
|
+
"toast-close": "",
|
|
2281
|
+
...e,
|
|
2282
|
+
children: /* @__PURE__ */ r(xe, { className: "h-4 w-4" })
|
|
2283
|
+
}
|
|
2284
|
+
));
|
|
2285
|
+
it.displayName = k.Close.displayName;
|
|
2286
|
+
const dt = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(k.Title, { ref: a, className: s("text-sm font-semibold", t), ...e }));
|
|
2287
|
+
dt.displayName = k.Title.displayName;
|
|
2288
|
+
const lt = n.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ r(k.Description, { ref: a, className: s("text-sm opacity-90", t), ...e }));
|
|
2289
|
+
lt.displayName = k.Description.displayName;
|
|
2290
|
+
const fs = 1, ps = 1e6;
|
|
2291
|
+
let le = 0;
|
|
2292
|
+
function gs() {
|
|
2293
|
+
return le = (le + 1) % Number.MAX_SAFE_INTEGER, le.toString();
|
|
2294
|
+
}
|
|
2295
|
+
const ce = /* @__PURE__ */ new Map(), Pe = (t) => {
|
|
2296
|
+
if (ce.has(t))
|
|
2297
|
+
return;
|
|
2298
|
+
const e = setTimeout(() => {
|
|
2299
|
+
ce.delete(t), K({
|
|
2300
|
+
type: "REMOVE_TOAST",
|
|
2301
|
+
toastId: t
|
|
2302
|
+
});
|
|
2303
|
+
}, ps);
|
|
2304
|
+
ce.set(t, e);
|
|
2305
|
+
}, bs = (t, e) => {
|
|
2306
|
+
switch (e.type) {
|
|
2307
|
+
case "ADD_TOAST":
|
|
2308
|
+
return {
|
|
2309
|
+
...t,
|
|
2310
|
+
toasts: [e.toast, ...t.toasts].slice(0, fs)
|
|
2311
|
+
};
|
|
2312
|
+
case "UPDATE_TOAST":
|
|
2313
|
+
return {
|
|
2314
|
+
...t,
|
|
2315
|
+
toasts: t.toasts.map((a) => a.id === e.toast.id ? { ...a, ...e.toast } : a)
|
|
2316
|
+
};
|
|
2317
|
+
case "DISMISS_TOAST": {
|
|
2318
|
+
const { toastId: a } = e;
|
|
2319
|
+
return a ? Pe(a) : t.toasts.forEach((o) => {
|
|
2320
|
+
Pe(o.id);
|
|
2321
|
+
}), {
|
|
2322
|
+
...t,
|
|
2323
|
+
toasts: t.toasts.map(
|
|
2324
|
+
(o) => o.id === a || a === void 0 ? {
|
|
2325
|
+
...o,
|
|
2326
|
+
open: !1
|
|
2327
|
+
} : o
|
|
2328
|
+
)
|
|
2329
|
+
};
|
|
2330
|
+
}
|
|
2331
|
+
case "REMOVE_TOAST":
|
|
2332
|
+
return e.toastId === void 0 ? {
|
|
2333
|
+
...t,
|
|
2334
|
+
toasts: []
|
|
2335
|
+
} : {
|
|
2336
|
+
...t,
|
|
2337
|
+
toasts: t.toasts.filter((a) => a.id !== e.toastId)
|
|
2338
|
+
};
|
|
2339
|
+
}
|
|
2340
|
+
}, J = [];
|
|
2341
|
+
let Q = { toasts: [] };
|
|
2342
|
+
function K(t) {
|
|
2343
|
+
Q = bs(Q, t), J.forEach((e) => {
|
|
2344
|
+
e(Q);
|
|
2345
|
+
});
|
|
2346
|
+
}
|
|
2347
|
+
function hs({ ...t }) {
|
|
2348
|
+
const e = gs(), a = (i) => K({
|
|
2349
|
+
type: "UPDATE_TOAST",
|
|
2350
|
+
toast: { ...i, id: e }
|
|
2351
|
+
}), o = () => K({ type: "DISMISS_TOAST", toastId: e });
|
|
2352
|
+
return K({
|
|
2353
|
+
type: "ADD_TOAST",
|
|
2354
|
+
toast: {
|
|
2355
|
+
...t,
|
|
2356
|
+
id: e,
|
|
2357
|
+
open: !0,
|
|
2358
|
+
onOpenChange: (i) => {
|
|
2359
|
+
i || o();
|
|
2360
|
+
}
|
|
2361
|
+
}
|
|
2362
|
+
}), {
|
|
2363
|
+
id: e,
|
|
2364
|
+
dismiss: o,
|
|
2365
|
+
update: a
|
|
2366
|
+
};
|
|
2367
|
+
}
|
|
2368
|
+
function xs() {
|
|
2369
|
+
const [t, e] = n.useState(Q);
|
|
2370
|
+
return n.useEffect(() => (J.push(e), () => {
|
|
2371
|
+
const a = J.indexOf(e);
|
|
2372
|
+
a > -1 && J.splice(a, 1);
|
|
2373
|
+
}), [t]), {
|
|
2374
|
+
...t,
|
|
2375
|
+
toast: hs,
|
|
2376
|
+
dismiss: (a) => K({ type: "DISMISS_TOAST", toastId: a })
|
|
2377
|
+
};
|
|
2378
|
+
}
|
|
2379
|
+
function Fn() {
|
|
2380
|
+
const { toasts: t } = xs();
|
|
2381
|
+
return /* @__PURE__ */ d(cs, { children: [
|
|
2382
|
+
t.map(function({ id: e, title: a, description: o, action: i, ...l }) {
|
|
2383
|
+
return /* @__PURE__ */ d(nt, { ...l, children: [
|
|
2384
|
+
/* @__PURE__ */ d("div", { className: "grid gap-1", children: [
|
|
2385
|
+
a && /* @__PURE__ */ r(dt, { children: a }),
|
|
2386
|
+
o && /* @__PURE__ */ r(lt, { children: o })
|
|
2387
|
+
] }),
|
|
2388
|
+
i,
|
|
2389
|
+
/* @__PURE__ */ r(it, {})
|
|
2390
|
+
] }, e);
|
|
2391
|
+
}),
|
|
2392
|
+
/* @__PURE__ */ r(st, {})
|
|
2393
|
+
] });
|
|
2394
|
+
}
|
|
2395
|
+
const ct = z(
|
|
2396
|
+
"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground",
|
|
2397
|
+
{
|
|
2398
|
+
variants: {
|
|
2399
|
+
variant: {
|
|
2400
|
+
default: "bg-transparent",
|
|
2401
|
+
outline: "border border-input bg-transparent hover:bg-accent hover:text-accent-foreground"
|
|
2402
|
+
},
|
|
2403
|
+
size: {
|
|
2404
|
+
default: "h-10 px-3",
|
|
2405
|
+
sm: "h-9 px-2.5",
|
|
2406
|
+
lg: "h-11 px-5"
|
|
2407
|
+
}
|
|
2408
|
+
},
|
|
2409
|
+
defaultVariants: {
|
|
2410
|
+
variant: "default",
|
|
2411
|
+
size: "default"
|
|
2412
|
+
}
|
|
2413
|
+
}
|
|
2414
|
+
), vs = n.forwardRef(({ className: t, variant: e, size: a, ...o }, i) => /* @__PURE__ */ r(je.Root, { ref: i, className: s(ct({ variant: e, size: a, className: t })), ...o }));
|
|
2415
|
+
vs.displayName = je.Root.displayName;
|
|
2416
|
+
const mt = n.createContext({
|
|
2417
|
+
size: "default",
|
|
2418
|
+
variant: "default"
|
|
2419
|
+
}), Ns = n.forwardRef(({ className: t, variant: e, size: a, children: o, ...i }, l) => /* @__PURE__ */ r(re.Root, { ref: l, className: s("flex items-center justify-center gap-1", t), ...i, children: /* @__PURE__ */ r(mt.Provider, { value: { variant: e, size: a }, children: o }) }));
|
|
2420
|
+
Ns.displayName = re.Root.displayName;
|
|
2421
|
+
const ys = n.forwardRef(({ className: t, children: e, variant: a, size: o, ...i }, l) => {
|
|
2422
|
+
const c = n.useContext(mt);
|
|
2423
|
+
return /* @__PURE__ */ r(
|
|
2424
|
+
re.Item,
|
|
2425
|
+
{
|
|
2426
|
+
ref: l,
|
|
2427
|
+
className: s(
|
|
2428
|
+
ct({
|
|
2429
|
+
variant: c.variant || a,
|
|
2430
|
+
size: c.size || o
|
|
2431
|
+
}),
|
|
2432
|
+
t
|
|
2433
|
+
),
|
|
2434
|
+
...i,
|
|
2435
|
+
children: e
|
|
2436
|
+
}
|
|
2437
|
+
);
|
|
2438
|
+
});
|
|
2439
|
+
ys.displayName = re.Item.displayName;
|
|
2440
|
+
function On({ title: t, subtitle: e, author: a, date: o, readTime: i, category: l }) {
|
|
2441
|
+
return /* @__PURE__ */ d("header", { className: "space-y-6 text-center", children: [
|
|
2442
|
+
/* @__PURE__ */ r("div", { className: "inline-flex items-center rounded-full bg-accent px-4 py-1.5 text-sm font-medium text-primary", children: l }),
|
|
2443
|
+
/* @__PURE__ */ r("h1", { className: "font-display text-4xl font-bold leading-tight tracking-tight text-foreground sm:text-5xl lg:text-6xl", children: t }),
|
|
2444
|
+
e && /* @__PURE__ */ r("p", { className: "mx-auto max-w-2xl text-lg leading-relaxed text-muted-foreground sm:text-xl", children: e }),
|
|
2445
|
+
/* @__PURE__ */ d("div", { className: "flex flex-wrap items-center justify-center gap-4 text-sm text-muted-foreground", children: [
|
|
2446
|
+
/* @__PURE__ */ d("div", { className: "flex items-center gap-2", children: [
|
|
2447
|
+
/* @__PURE__ */ r(_t, { className: "h-4 w-4" }),
|
|
2448
|
+
/* @__PURE__ */ r("span", { children: a })
|
|
2449
|
+
] }),
|
|
2450
|
+
/* @__PURE__ */ r("span", { className: "hidden sm:inline", children: "·" }),
|
|
2451
|
+
/* @__PURE__ */ d("div", { className: "flex items-center gap-2", children: [
|
|
2452
|
+
/* @__PURE__ */ r(zt, { className: "h-4 w-4" }),
|
|
2453
|
+
/* @__PURE__ */ r("span", { children: o })
|
|
2454
|
+
] }),
|
|
2455
|
+
/* @__PURE__ */ r("span", { className: "hidden sm:inline", children: "·" }),
|
|
2456
|
+
/* @__PURE__ */ d("div", { className: "flex items-center gap-2", children: [
|
|
2457
|
+
/* @__PURE__ */ r(Le, { className: "h-4 w-4" }),
|
|
2458
|
+
/* @__PURE__ */ r("span", { children: i })
|
|
2459
|
+
] })
|
|
2460
|
+
] })
|
|
2461
|
+
] });
|
|
2462
|
+
}
|
|
2463
|
+
const ws = [
|
|
2464
|
+
{ value: "api-design", label: "API Design" },
|
|
2465
|
+
{ value: "authentication", label: "Authentication" },
|
|
2466
|
+
{ value: "rate-limiting", label: "Rate Limiting" },
|
|
2467
|
+
{ value: "monetization", label: "Monetization" }
|
|
2468
|
+
], Me = [
|
|
2469
|
+
// API Design
|
|
2470
|
+
{ value: "getting-started", label: "Getting Started with API Gateways", topic: "api-design" },
|
|
2471
|
+
{ value: "api-versioning", label: "API Versioning Strategies", topic: "api-design" },
|
|
2472
|
+
{ value: "rest-best-practices", label: "REST API Best Practices", topic: "api-design" },
|
|
2473
|
+
// Authentication
|
|
2474
|
+
{ value: "auth-best-practices", label: "Authentication Best Practices", topic: "authentication" },
|
|
2475
|
+
{ value: "jwt-guide", label: "JWT Token Guide", topic: "authentication" },
|
|
2476
|
+
{ value: "oauth-flows", label: "OAuth 2.0 Flows Explained", topic: "authentication" },
|
|
2477
|
+
// Rate Limiting
|
|
2478
|
+
{ value: "rate-limit-patterns", label: "Rate Limiting Patterns", topic: "rate-limiting" },
|
|
2479
|
+
{ value: "rate-limit-reference", label: "Rate Limiting Policy Reference", topic: "rate-limiting" },
|
|
2480
|
+
{ value: "rate-limit-sample", label: "Rate Limiting Sample", topic: "rate-limiting" },
|
|
2481
|
+
// Monetization
|
|
2482
|
+
{ value: "api-monetization", label: "How to Monetize Your API", topic: "monetization" },
|
|
2483
|
+
{ value: "pricing-models", label: "API Pricing Models", topic: "monetization" },
|
|
2484
|
+
{ value: "usage-billing", label: "Usage-Based Billing Setup", topic: "monetization" }
|
|
2485
|
+
];
|
|
2486
|
+
function En({
|
|
2487
|
+
currentTopic: t = "api-design",
|
|
2488
|
+
currentPost: e = "getting-started",
|
|
2489
|
+
onTopicChange: a,
|
|
2490
|
+
onPostChange: o,
|
|
2491
|
+
hideFilters: i = !1
|
|
2492
|
+
}) {
|
|
2493
|
+
const l = t ? Me.filter((c) => c.topic === t) : Me;
|
|
2494
|
+
return /* @__PURE__ */ r("nav", { className: "sticky top-0 z-50 w-full bg-background border-b border-border/40", children: /* @__PURE__ */ d("div", { className: "max-w-4xl mx-auto px-6 py-3 flex items-center gap-4", children: [
|
|
2495
|
+
/* @__PURE__ */ r("a", { href: "/", className: "font-display font-semibold text-foreground hover:text-primary transition-colors", children: "Blog" }),
|
|
2496
|
+
!i && /* @__PURE__ */ d("div", { className: "flex items-center gap-3 ml-auto", children: [
|
|
2497
|
+
/* @__PURE__ */ d("div", { className: "flex items-center gap-2", children: [
|
|
2498
|
+
/* @__PURE__ */ r("span", { className: "text-sm text-muted-foreground hidden sm:inline", children: "Topic:" }),
|
|
2499
|
+
/* @__PURE__ */ d(ke, { value: t, onValueChange: a, children: [
|
|
2500
|
+
/* @__PURE__ */ r(ge, { className: "w-[160px] h-9 rounded-full border-border-light bg-background text-sm", children: /* @__PURE__ */ r(Te, { placeholder: "Select topic" }) }),
|
|
2501
|
+
/* @__PURE__ */ r(be, { className: "bg-background border-border", children: ws.map((c) => /* @__PURE__ */ r(he, { value: c.value, children: c.label }, c.value)) })
|
|
2502
|
+
] })
|
|
2503
|
+
] }),
|
|
2504
|
+
/* @__PURE__ */ d("div", { className: "flex items-center gap-2", children: [
|
|
2505
|
+
/* @__PURE__ */ r("span", { className: "text-sm text-muted-foreground hidden sm:inline", children: "Post:" }),
|
|
2506
|
+
/* @__PURE__ */ d(ke, { value: e, onValueChange: o, children: [
|
|
2507
|
+
/* @__PURE__ */ r(ge, { className: "w-[220px] h-9 rounded-full border-border-light bg-background text-sm", children: /* @__PURE__ */ r(Te, { placeholder: "Select post" }) }),
|
|
2508
|
+
/* @__PURE__ */ r(be, { className: "bg-background border-border", children: l.map((c) => /* @__PURE__ */ r(he, { value: c.value, children: c.label }, c.value)) })
|
|
2509
|
+
] })
|
|
2510
|
+
] })
|
|
2511
|
+
] })
|
|
2512
|
+
] }) });
|
|
2513
|
+
}
|
|
2514
|
+
function Bn({ variant: t = "bestFor", items: e }) {
|
|
2515
|
+
const a = t === "bestFor";
|
|
2516
|
+
return /* @__PURE__ */ d("div", { className: "rounded-lg border border-border-light bg-muted/30 p-5", children: [
|
|
2517
|
+
/* @__PURE__ */ d("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
2518
|
+
a ? /* @__PURE__ */ r(At, { weight: "fill", className: "h-4 w-4 text-primary" }) : /* @__PURE__ */ r(jt, { weight: "fill", className: "h-4 w-4 text-primary" }),
|
|
2519
|
+
/* @__PURE__ */ r("span", { className: "font-display text-sm font-semibold text-foreground", children: a ? "Best for:" : "Use this approach if you're:" })
|
|
2520
|
+
] }),
|
|
2521
|
+
/* @__PURE__ */ r("ul", { className: "space-y-2", children: e.map((o, i) => /* @__PURE__ */ d("li", { className: "flex items-start gap-2 text-sm text-muted-foreground", children: [
|
|
2522
|
+
/* @__PURE__ */ r(we, { weight: "fill", className: "h-4 w-4 text-primary/70 mt-0.5 shrink-0" }),
|
|
2523
|
+
/* @__PURE__ */ r("span", { children: o })
|
|
2524
|
+
] }, i)) })
|
|
2525
|
+
] });
|
|
2526
|
+
}
|
|
2527
|
+
function Gn({ title: t, description: e, code: a, language: o = "typescript" }) {
|
|
2528
|
+
const [i, l] = ut(!1);
|
|
2529
|
+
return /* @__PURE__ */ d("div", { className: "overflow-hidden rounded-lg", children: [
|
|
2530
|
+
/* @__PURE__ */ d("div", { className: "p-5 pb-3", style: { backgroundColor: "#20222E" }, children: [
|
|
2531
|
+
/* @__PURE__ */ r("h3", { className: "font-mono text-sm font-normal text-white", children: t }),
|
|
2532
|
+
e && /* @__PURE__ */ r("p", { className: "mt-1 text-sm text-white/60", children: e })
|
|
2533
|
+
] }),
|
|
2534
|
+
/* @__PURE__ */ r("div", { className: "h-px bg-gray-600" }),
|
|
2535
|
+
/* @__PURE__ */ d("div", { className: "relative px-5 py-4", style: { backgroundColor: "#20222E" }, children: [
|
|
2536
|
+
/* @__PURE__ */ d("div", { className: "flex items-center justify-between mb-2", children: [
|
|
2537
|
+
/* @__PURE__ */ r("span", { className: "text-xs font-mono text-white/40 uppercase tracking-wider", children: o }),
|
|
2538
|
+
/* @__PURE__ */ r(
|
|
2539
|
+
"button",
|
|
2540
|
+
{
|
|
2541
|
+
onClick: () => {
|
|
2542
|
+
navigator.clipboard.writeText(a), l(!0), setTimeout(() => l(!1), 2e3);
|
|
2543
|
+
},
|
|
2544
|
+
className: "flex items-center gap-1.5 text-xs text-white/40 hover:text-white/70 transition-colors",
|
|
2545
|
+
children: i ? /* @__PURE__ */ d(U, { children: [
|
|
2546
|
+
/* @__PURE__ */ r(Lt, { className: "h-3.5 w-3.5 text-green-500" }),
|
|
2547
|
+
/* @__PURE__ */ r("span", { children: "Copied!" })
|
|
2548
|
+
] }) : /* @__PURE__ */ d(U, { children: [
|
|
2549
|
+
/* @__PURE__ */ r(Ft, { className: "h-3.5 w-3.5" }),
|
|
2550
|
+
/* @__PURE__ */ r("span", { children: "Copy" })
|
|
2551
|
+
] })
|
|
2552
|
+
}
|
|
2553
|
+
)
|
|
2554
|
+
] }),
|
|
2555
|
+
/* @__PURE__ */ r("pre", { className: "overflow-x-auto text-sm !bg-transparent", children: /* @__PURE__ */ r("code", { className: "font-mono text-white !bg-transparent", children: a }) })
|
|
2556
|
+
] })
|
|
2557
|
+
] });
|
|
2558
|
+
}
|
|
2559
|
+
function Cs({ features: t, className: e }) {
|
|
2560
|
+
return !t || t.length === 0 ? null : /* @__PURE__ */ r("div", { className: `flex items-center justify-center px-6 py-3 bg-[#fafafa] ${e || ""}`, children: t.map((a, o) => /* @__PURE__ */ d("span", { className: "flex items-center justify-center gap-1.5 text-sm text-foreground flex-1", children: [
|
|
2561
|
+
/* @__PURE__ */ r(we, { className: "w-4 h-4 text-primary flex-shrink-0", weight: "fill" }),
|
|
2562
|
+
a
|
|
2563
|
+
] }, o)) });
|
|
2564
|
+
}
|
|
2565
|
+
const Rs = {
|
|
2566
|
+
file: Ot,
|
|
2567
|
+
book: Et,
|
|
2568
|
+
code: Bt,
|
|
2569
|
+
lightning: Gt
|
|
2570
|
+
};
|
|
2571
|
+
function Vn({
|
|
2572
|
+
title: t,
|
|
2573
|
+
description: e,
|
|
2574
|
+
href: a,
|
|
2575
|
+
icon: o = "file",
|
|
2576
|
+
badge: i,
|
|
2577
|
+
features: l,
|
|
2578
|
+
tip: c
|
|
2579
|
+
}) {
|
|
2580
|
+
const u = Rs[o], x = /* @__PURE__ */ d("div", { className: s("my-8 rounded-lg border border-border/40 bg-card overflow-hidden", a && "group transition-all hover:border-primary/30 hover:shadow-lg"), children: [
|
|
2581
|
+
/* @__PURE__ */ r("div", { className: "p-6 pb-[16px]", children: /* @__PURE__ */ d("div", { className: "flex items-start gap-4", children: [
|
|
2582
|
+
/* @__PURE__ */ r("div", { className: "flex-shrink-0 w-10 h-10 rounded-lg bg-[#FCF3F8] flex items-center justify-center", children: /* @__PURE__ */ r(u, { className: "w-5 h-5 text-primary", weight: "duotone" }) }),
|
|
2583
|
+
/* @__PURE__ */ d("div", { className: "flex-1 min-w-0", children: [
|
|
2584
|
+
/* @__PURE__ */ d("div", { className: "flex items-center gap-2 mb-1", children: [
|
|
2585
|
+
/* @__PURE__ */ d("h4", { className: s("font-display font-semibold text-foreground flex items-center gap-1", a && "group-hover:text-primary transition-colors"), children: [
|
|
2586
|
+
t,
|
|
2587
|
+
a && /* @__PURE__ */ r(Z, { className: "h-4 w-4 opacity-0 -translate-y-0.5 translate-x-0.5 transition-all group-hover:opacity-100 group-hover:translate-y-0 group-hover:translate-x-0" })
|
|
2588
|
+
] }),
|
|
2589
|
+
i && /* @__PURE__ */ r("span", { className: "px-2 py-0.5 text-xs font-medium rounded-full bg-muted text-muted-foreground", children: i })
|
|
2590
|
+
] }),
|
|
2591
|
+
/* @__PURE__ */ r("p", { className: "text-sm text-muted-foreground", children: e }),
|
|
2592
|
+
c && /* @__PURE__ */ d("div", { className: "mt-3 p-3 rounded-md bg-muted/50 border-l-2 border-primary", children: [
|
|
2593
|
+
/* @__PURE__ */ r("p", { className: "text-xs font-medium text-muted-foreground mb-1", children: "Pro tip:" }),
|
|
2594
|
+
/* @__PURE__ */ r("p", { className: "text-sm text-foreground", children: c })
|
|
2595
|
+
] })
|
|
2596
|
+
] })
|
|
2597
|
+
] }) }),
|
|
2598
|
+
l && l.length > 0 && /* @__PURE__ */ r(Cs, { features: l })
|
|
2599
|
+
] });
|
|
2600
|
+
return a ? /* @__PURE__ */ r("a", { href: a, target: "_blank", rel: "noopener noreferrer", className: "block", children: x }) : x;
|
|
2601
|
+
}
|
|
2602
|
+
function Hn({
|
|
2603
|
+
label: t = "Next step",
|
|
2604
|
+
title: e,
|
|
2605
|
+
href: a,
|
|
2606
|
+
external: o = !1
|
|
2607
|
+
}) {
|
|
2608
|
+
return /* @__PURE__ */ d(
|
|
2609
|
+
"a",
|
|
2610
|
+
{
|
|
2611
|
+
href: a,
|
|
2612
|
+
target: o ? "_blank" : void 0,
|
|
2613
|
+
rel: o ? "noopener noreferrer" : void 0,
|
|
2614
|
+
className: "group inline-flex items-center gap-2 text-sm transition-colors hover:text-primary",
|
|
2615
|
+
children: [
|
|
2616
|
+
/* @__PURE__ */ d("span", { className: "font-medium text-[#20222E]", children: [
|
|
2617
|
+
t,
|
|
2618
|
+
":"
|
|
2619
|
+
] }),
|
|
2620
|
+
/* @__PURE__ */ r("span", { className: "text-muted-foreground group-hover:underline underline-offset-2 group-hover:text-primary", children: e }),
|
|
2621
|
+
/* @__PURE__ */ r(Fe, { className: "h-4 w-4 transition-transform group-hover:translate-x-0.5" })
|
|
2622
|
+
]
|
|
2623
|
+
}
|
|
2624
|
+
);
|
|
2625
|
+
}
|
|
2626
|
+
function $n({
|
|
2627
|
+
title: t,
|
|
2628
|
+
description: e,
|
|
2629
|
+
deployUrl: a,
|
|
2630
|
+
repoUrl: o,
|
|
2631
|
+
localCommand: i = "npx create-zuplo-app"
|
|
2632
|
+
}) {
|
|
2633
|
+
return /* @__PURE__ */ d("div", { className: "relative overflow-hidden rounded-lg", children: [
|
|
2634
|
+
/* @__PURE__ */ r("div", { className: "absolute inset-0 rounded-lg p-[1px] bg-gradient-to-br from-primary via-primary/50 to-border-light", children: /* @__PURE__ */ r("div", { className: "h-full w-full rounded-lg bg-background" }) }),
|
|
2635
|
+
/* @__PURE__ */ d("div", { className: "relative z-10 p-6 sm:p-8", children: [
|
|
2636
|
+
/* @__PURE__ */ r("div", { className: "flex items-start justify-between gap-4 mb-4", children: /* @__PURE__ */ r("div", { className: "flex items-center gap-3", children: /* @__PURE__ */ d("div", { children: [
|
|
2637
|
+
/* @__PURE__ */ d("span", { className: "inline-flex items-center gap-1 rounded-full bg-primary/10 px-2.5 py-0.5 text-xs font-medium text-primary mb-[16px]", children: [
|
|
2638
|
+
/* @__PURE__ */ r(Re, { weight: "fill", className: "h-3 w-3" }),
|
|
2639
|
+
"Try it yourself"
|
|
2640
|
+
] }),
|
|
2641
|
+
/* @__PURE__ */ r("h3", { className: "font-display text-xl font-semibold text-foreground", children: t })
|
|
2642
|
+
] }) }) }),
|
|
2643
|
+
/* @__PURE__ */ r("p", { className: "text-muted-foreground mb-6", children: e }),
|
|
2644
|
+
/* @__PURE__ */ d("div", { className: "flex flex-col sm:flex-row gap-2 sm:gap-3", children: [
|
|
2645
|
+
/* @__PURE__ */ d("a", { href: a, target: "_blank", rel: "noopener noreferrer", className: "group inline-flex items-center justify-center gap-1.5 rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-all hover:bg-primary/90 hover:shadow-lg hover:shadow-primary/20 whitespace-nowrap", children: [
|
|
2646
|
+
/* @__PURE__ */ r(Re, { weight: "bold", className: "h-3.5 w-3.5" }),
|
|
2647
|
+
"Deploy to Zuplo",
|
|
2648
|
+
/* @__PURE__ */ r(Fe, { className: "h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5" })
|
|
2649
|
+
] }),
|
|
2650
|
+
/* @__PURE__ */ d("button", { onClick: () => {
|
|
2651
|
+
navigator.clipboard.writeText(i);
|
|
2652
|
+
}, className: "group inline-flex items-center justify-center gap-1.5 rounded-full border border-border bg-background px-4 py-2 text-sm font-medium text-foreground transition-all hover:border-primary/30 hover:bg-muted/50 whitespace-nowrap", children: [
|
|
2653
|
+
/* @__PURE__ */ r(Vt, { weight: "bold", className: "h-3.5 w-3.5" }),
|
|
2654
|
+
/* @__PURE__ */ r("span", { className: "font-mono text-xs", children: i })
|
|
2655
|
+
] }),
|
|
2656
|
+
/* @__PURE__ */ d("a", { href: o, target: "_blank", rel: "noopener noreferrer", className: "group inline-flex items-center justify-center gap-1.5 rounded-full border-border bg-secondary px-4 py-2 text-sm font-medium text-secondary-foreground transition-all hover:bg-secondary/80 whitespace-nowrap border-0", children: [
|
|
2657
|
+
/* @__PURE__ */ r(Ht, { weight: "fill", className: "h-3.5 w-3.5" }),
|
|
2658
|
+
"GitHub"
|
|
2659
|
+
] })
|
|
2660
|
+
] }),
|
|
2661
|
+
/* @__PURE__ */ r("div", { className: "absolute -right-8 -top-8 h-32 w-32 rounded-full bg-primary/5 blur-2xl" }),
|
|
2662
|
+
/* @__PURE__ */ r("div", { className: "absolute -bottom-4 -left-4 h-24 w-24 rounded-full bg-primary/5 blur-xl" })
|
|
2663
|
+
] })
|
|
2664
|
+
] });
|
|
2665
|
+
}
|
|
2666
|
+
function Kn({ variant: t = "tip", children: e }) {
|
|
2667
|
+
const a = t === "tip";
|
|
2668
|
+
return /* @__PURE__ */ r("div", { className: `rounded-lg p-4 ${a ? "bg-muted/50 border border-border" : "bg-blue-50 border border-blue-200"}`, children: /* @__PURE__ */ d("p", { className: `text-sm ${a ? "text-[#20222E]" : "text-blue-800"}`, children: [
|
|
2669
|
+
a ? /* @__PURE__ */ d(U, { children: [
|
|
2670
|
+
/* @__PURE__ */ r($t, { weight: "fill", className: "inline h-4 w-4 mr-1.5 text-[#64748B]" }),
|
|
2671
|
+
/* @__PURE__ */ r("span", { className: "font-semibold", children: "Pro tip:" })
|
|
2672
|
+
] }) : /* @__PURE__ */ d(U, { children: [
|
|
2673
|
+
/* @__PURE__ */ r(Kt, { weight: "fill", className: "inline h-4 w-4 mr-1.5 text-blue-600" }),
|
|
2674
|
+
/* @__PURE__ */ r("span", { className: "font-semibold", children: "Common mistake:" })
|
|
2675
|
+
] }),
|
|
2676
|
+
" ",
|
|
2677
|
+
e
|
|
2678
|
+
] }) });
|
|
2679
|
+
}
|
|
2680
|
+
function Un({
|
|
2681
|
+
title: t,
|
|
2682
|
+
description: e,
|
|
2683
|
+
videoUrl: a,
|
|
2684
|
+
thumbnailUrl: o,
|
|
2685
|
+
duration: i,
|
|
2686
|
+
variant: l = "card"
|
|
2687
|
+
}) {
|
|
2688
|
+
if (l !== "button")
|
|
2689
|
+
return l === "inline" ? /* @__PURE__ */ d("a", { href: a, target: "_blank", rel: "noopener noreferrer", className: "group flex items-center gap-3 rounded-lg border border-border/40 bg-background p-3 transition-all hover:border-primary/30 hover:bg-muted/30", children: [
|
|
2690
|
+
/* @__PURE__ */ r("div", { className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-[#FF0000]/10", children: /* @__PURE__ */ r(Se, { weight: "fill", className: "h-5 w-5 text-[#FF0000]" }) }),
|
|
2691
|
+
/* @__PURE__ */ d("div", { className: "flex-1 min-w-0", children: [
|
|
2692
|
+
/* @__PURE__ */ d("div", { className: "flex items-center gap-2", children: [
|
|
2693
|
+
/* @__PURE__ */ r("span", { className: "font-medium text-sm text-foreground group-hover:text-primary transition-colors truncate", children: t }),
|
|
2694
|
+
i && /* @__PURE__ */ r("span", { className: "shrink-0 rounded bg-muted px-1.5 py-0.5 font-mono text-xs text-muted-foreground", children: i })
|
|
2695
|
+
] }),
|
|
2696
|
+
e && /* @__PURE__ */ r("p", { className: "text-xs text-muted-foreground truncate mt-0.5", children: e })
|
|
2697
|
+
] }),
|
|
2698
|
+
/* @__PURE__ */ r(Z, { className: "h-4 w-4 shrink-0 text-muted-foreground opacity-0 transition-all group-hover:opacity-100" })
|
|
2699
|
+
] }) : /* @__PURE__ */ r("a", { href: a, target: "_blank", rel: "noopener noreferrer", className: "group block overflow-hidden rounded-lg border border-border/40 bg-background transition-all hover:border-primary/30 hover:shadow-lg", children: /* @__PURE__ */ d("div", { className: "flex flex-col sm:flex-row", children: [
|
|
2700
|
+
/* @__PURE__ */ d("div", { className: "relative aspect-video sm:aspect-auto sm:w-48 shrink-0 bg-muted overflow-hidden", children: [
|
|
2701
|
+
o ? /* @__PURE__ */ r("img", { src: o, alt: t, className: "h-full w-full object-cover transition-transform group-hover:scale-105" }) : /* @__PURE__ */ r("div", { className: "flex h-full w-full items-center justify-center bg-gradient-to-br from-primary/10 to-primary/5", children: /* @__PURE__ */ r(Se, { weight: "fill", className: "h-12 w-12 text-primary/60" }) }),
|
|
2702
|
+
/* @__PURE__ */ r("div", { className: "absolute inset-0 flex items-center justify-center bg-foreground/10 opacity-0 transition-opacity group-hover:opacity-100" }),
|
|
2703
|
+
i && /* @__PURE__ */ r("span", { className: "absolute bottom-2 right-2 rounded bg-foreground/80 px-1.5 py-0.5 font-mono text-xs text-background", children: i })
|
|
2704
|
+
] }),
|
|
2705
|
+
/* @__PURE__ */ d("div", { className: "flex flex-1 flex-col justify-center p-4 py-3", children: [
|
|
2706
|
+
/* @__PURE__ */ r("span", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2", children: "Video Tutorial" }),
|
|
2707
|
+
/* @__PURE__ */ d("h4", { className: "font-display font-semibold text-foreground group-hover:text-primary transition-colors flex items-center gap-1", children: [
|
|
2708
|
+
t,
|
|
2709
|
+
/* @__PURE__ */ r(Z, { className: "h-4 w-4 opacity-0 -translate-y-0.5 translate-x-0.5 transition-all group-hover:opacity-100 group-hover:translate-y-0 group-hover:translate-x-0" })
|
|
2710
|
+
] }),
|
|
2711
|
+
e && /* @__PURE__ */ r("p", { className: "mt-1.5 text-sm text-muted-foreground line-clamp-2", children: e })
|
|
2712
|
+
] })
|
|
2713
|
+
] }) });
|
|
2714
|
+
}
|
|
2715
|
+
function Wn({
|
|
2716
|
+
articles: t,
|
|
2717
|
+
title: e = "Related Articles",
|
|
2718
|
+
subtitle: a
|
|
2719
|
+
}) {
|
|
2720
|
+
return /* @__PURE__ */ d("section", { className: "space-y-6", children: [
|
|
2721
|
+
(e || a) && /* @__PURE__ */ d("div", { className: "mb-2", children: [
|
|
2722
|
+
e && /* @__PURE__ */ r("h2", { className: "font-display text-2xl font-semibold text-foreground mb-2", children: e }),
|
|
2723
|
+
a && /* @__PURE__ */ r("p", { className: "text-base text-muted-foreground", children: a })
|
|
2724
|
+
] }),
|
|
2725
|
+
/* @__PURE__ */ r("div", { className: "grid gap-6 sm:grid-cols-2", children: t.map((o, i) => /* @__PURE__ */ d(
|
|
2726
|
+
Ut,
|
|
2727
|
+
{
|
|
2728
|
+
to: o.href,
|
|
2729
|
+
className: "group relative flex flex-col overflow-hidden rounded-lg border border-border/40 bg-card p-5 shadow-card transition-all duration-300 hover:-translate-y-1 hover:shadow-card-hover",
|
|
2730
|
+
style: { animationDelay: `${i * 100}ms` },
|
|
2731
|
+
children: [
|
|
2732
|
+
/* @__PURE__ */ d("div", { className: "mb-3 flex items-center justify-between", children: [
|
|
2733
|
+
/* @__PURE__ */ r("span", { className: "rounded-full bg-accent px-3 py-1 text-xs font-medium text-primary", children: o.category }),
|
|
2734
|
+
/* @__PURE__ */ r(Z, { className: "h-4 w-4 text-muted-foreground transition-all duration-300 group-hover:-translate-y-0.5 group-hover:translate-x-0.5 group-hover:text-primary" })
|
|
2735
|
+
] }),
|
|
2736
|
+
/* @__PURE__ */ r("h3", { className: "mb-2 font-display text-lg font-semibold leading-snug text-foreground transition-colors group-hover:text-primary", children: o.title }),
|
|
2737
|
+
/* @__PURE__ */ r("p", { className: "mb-4 flex-1 text-sm leading-relaxed text-muted-foreground", children: o.excerpt }),
|
|
2738
|
+
/* @__PURE__ */ d("div", { className: "flex items-center gap-2 text-xs text-muted-foreground", children: [
|
|
2739
|
+
/* @__PURE__ */ r(Le, { className: "h-3.5 w-3.5" }),
|
|
2740
|
+
/* @__PURE__ */ r("span", { children: o.readTime })
|
|
2741
|
+
] })
|
|
2742
|
+
]
|
|
2743
|
+
},
|
|
2744
|
+
o.id
|
|
2745
|
+
)) })
|
|
2746
|
+
] });
|
|
2747
|
+
}
|
|
2748
|
+
function qn({
|
|
2749
|
+
items: t,
|
|
2750
|
+
title: e = "On this page",
|
|
2751
|
+
className: a,
|
|
2752
|
+
activeSection: o,
|
|
2753
|
+
onSectionClick: i
|
|
2754
|
+
}) {
|
|
2755
|
+
return !t || t.length === 0 ? null : /* @__PURE__ */ d("div", { className: `border border-border/40 rounded-lg p-4 bg-background max-w-xs ${a || ""}`, children: [
|
|
2756
|
+
/* @__PURE__ */ r("p", { className: "font-display text-sm font-medium text-foreground mb-3", children: e }),
|
|
2757
|
+
/* @__PURE__ */ r("nav", { className: "space-y-1", children: t.map((l) => /* @__PURE__ */ r(
|
|
2758
|
+
"a",
|
|
2759
|
+
{
|
|
2760
|
+
href: `#${l.id}`,
|
|
2761
|
+
onClick: () => i == null ? void 0 : i(l.id),
|
|
2762
|
+
className: `block text-sm py-1.5 px-2 -mx-2 rounded-md transition-colors ${o === l.id ? "text-primary font-medium bg-[#FCF3F8]" : "text-muted-foreground hover:text-foreground"}`,
|
|
2763
|
+
children: l.label
|
|
2764
|
+
},
|
|
2765
|
+
l.id
|
|
2766
|
+
)) })
|
|
2767
|
+
] });
|
|
2768
|
+
}
|
|
2769
|
+
function Xn({ features: t, title: e = "What's included", className: a }) {
|
|
2770
|
+
return !t || t.length === 0 ? null : /* @__PURE__ */ d("div", { className: a, children: [
|
|
2771
|
+
/* @__PURE__ */ r("h2", { className: "font-display text-xl font-semibold text-foreground mb-6", children: e }),
|
|
2772
|
+
/* @__PURE__ */ r("div", { className: "grid gap-4 sm:grid-cols-2", children: t.map((o) => /* @__PURE__ */ d("div", { className: "flex items-center gap-3 p-3 rounded-lg border border-border/40 bg-background", children: [
|
|
2773
|
+
/* @__PURE__ */ r(we, { weight: "fill", className: "h-5 w-5 text-primary shrink-0" }),
|
|
2774
|
+
/* @__PURE__ */ r("span", { className: "text-sm text-foreground", children: o })
|
|
2775
|
+
] }, o)) })
|
|
2776
|
+
] });
|
|
2777
|
+
}
|
|
2778
|
+
export {
|
|
2779
|
+
Vs as Accordion,
|
|
2780
|
+
Xt as AccordionContent,
|
|
2781
|
+
Wt as AccordionItem,
|
|
2782
|
+
qt as AccordionTrigger,
|
|
2783
|
+
Jt as Alert,
|
|
2784
|
+
Zt as AlertDescription,
|
|
2785
|
+
Hs as AlertDialog,
|
|
2786
|
+
na as AlertDialogAction,
|
|
2787
|
+
ia as AlertDialogCancel,
|
|
2788
|
+
ta as AlertDialogContent,
|
|
2789
|
+
sa as AlertDialogDescription,
|
|
2790
|
+
ra as AlertDialogFooter,
|
|
2791
|
+
aa as AlertDialogHeader,
|
|
2792
|
+
Oe as AlertDialogOverlay,
|
|
2793
|
+
ea as AlertDialogPortal,
|
|
2794
|
+
oa as AlertDialogTitle,
|
|
2795
|
+
$s as AlertDialogTrigger,
|
|
2796
|
+
Qt as AlertTitle,
|
|
2797
|
+
Ks as AspectRatio,
|
|
2798
|
+
da as Avatar,
|
|
2799
|
+
ca as AvatarFallback,
|
|
2800
|
+
la as AvatarImage,
|
|
2801
|
+
Us as Badge,
|
|
2802
|
+
On as BlogHeader,
|
|
2803
|
+
En as BlogNav,
|
|
2804
|
+
ua as Breadcrumb,
|
|
2805
|
+
xa as BreadcrumbEllipsis,
|
|
2806
|
+
pa as BreadcrumbItem,
|
|
2807
|
+
ga as BreadcrumbLink,
|
|
2808
|
+
fa as BreadcrumbList,
|
|
2809
|
+
ba as BreadcrumbPage,
|
|
2810
|
+
ha as BreadcrumbSeparator,
|
|
2811
|
+
oe as Button,
|
|
2812
|
+
va as Calendar,
|
|
2813
|
+
Bn as CalloutAudience,
|
|
2814
|
+
Gn as CalloutCode,
|
|
2815
|
+
Vn as CalloutDoc,
|
|
2816
|
+
Hn as CalloutNextStep,
|
|
2817
|
+
$n as CalloutSample,
|
|
2818
|
+
Kn as CalloutTip,
|
|
2819
|
+
Un as CalloutVideo,
|
|
2820
|
+
Na as Card,
|
|
2821
|
+
Ra as CardContent,
|
|
2822
|
+
Ca as CardDescription,
|
|
2823
|
+
Sa as CardFooter,
|
|
2824
|
+
ya as CardHeader,
|
|
2825
|
+
wa as CardTitle,
|
|
2826
|
+
ka as Carousel,
|
|
2827
|
+
Ta as CarouselContent,
|
|
2828
|
+
Ia as CarouselItem,
|
|
2829
|
+
Ma as CarouselNext,
|
|
2830
|
+
Pa as CarouselPrevious,
|
|
2831
|
+
_a as ChartContainer,
|
|
2832
|
+
qs as ChartLegend,
|
|
2833
|
+
ja as ChartLegendContent,
|
|
2834
|
+
za as ChartStyle,
|
|
2835
|
+
Ws as ChartTooltip,
|
|
2836
|
+
Aa as ChartTooltipContent,
|
|
2837
|
+
La as Checkbox,
|
|
2838
|
+
Xs as Collapsible,
|
|
2839
|
+
Js as CollapsibleContent,
|
|
2840
|
+
Ys as CollapsibleTrigger,
|
|
2841
|
+
$e as Command,
|
|
2842
|
+
en as CommandDialog,
|
|
2843
|
+
Ka as CommandEmpty,
|
|
2844
|
+
Ua as CommandGroup,
|
|
2845
|
+
Ha as CommandInput,
|
|
2846
|
+
qa as CommandItem,
|
|
2847
|
+
$a as CommandList,
|
|
2848
|
+
Wa as CommandSeparator,
|
|
2849
|
+
Xa as CommandShortcut,
|
|
2850
|
+
tn as ContextMenu,
|
|
2851
|
+
er as ContextMenuCheckboxItem,
|
|
2852
|
+
Qa as ContextMenuContent,
|
|
2853
|
+
rn as ContextMenuGroup,
|
|
2854
|
+
Za as ContextMenuItem,
|
|
2855
|
+
ar as ContextMenuLabel,
|
|
2856
|
+
on as ContextMenuPortal,
|
|
2857
|
+
nn as ContextMenuRadioGroup,
|
|
2858
|
+
tr as ContextMenuRadioItem,
|
|
2859
|
+
rr as ContextMenuSeparator,
|
|
2860
|
+
or as ContextMenuShortcut,
|
|
2861
|
+
sn as ContextMenuSub,
|
|
2862
|
+
Ja as ContextMenuSubContent,
|
|
2863
|
+
Ya as ContextMenuSubTrigger,
|
|
2864
|
+
an as ContextMenuTrigger,
|
|
2865
|
+
Fa as Dialog,
|
|
2866
|
+
Zs as DialogClose,
|
|
2867
|
+
He as DialogContent,
|
|
2868
|
+
Va as DialogDescription,
|
|
2869
|
+
Ba as DialogFooter,
|
|
2870
|
+
Ea as DialogHeader,
|
|
2871
|
+
Ve as DialogOverlay,
|
|
2872
|
+
Oa as DialogPortal,
|
|
2873
|
+
Ga as DialogTitle,
|
|
2874
|
+
Qs as DialogTrigger,
|
|
2875
|
+
sr as Drawer,
|
|
2876
|
+
ln as DrawerClose,
|
|
2877
|
+
ir as DrawerContent,
|
|
2878
|
+
mr as DrawerDescription,
|
|
2879
|
+
lr as DrawerFooter,
|
|
2880
|
+
dr as DrawerHeader,
|
|
2881
|
+
Ke as DrawerOverlay,
|
|
2882
|
+
nr as DrawerPortal,
|
|
2883
|
+
cr as DrawerTitle,
|
|
2884
|
+
dn as DrawerTrigger,
|
|
2885
|
+
cn as DropdownMenu,
|
|
2886
|
+
br as DropdownMenuCheckboxItem,
|
|
2887
|
+
pr as DropdownMenuContent,
|
|
2888
|
+
un as DropdownMenuGroup,
|
|
2889
|
+
gr as DropdownMenuItem,
|
|
2890
|
+
xr as DropdownMenuLabel,
|
|
2891
|
+
fn as DropdownMenuPortal,
|
|
2892
|
+
gn as DropdownMenuRadioGroup,
|
|
2893
|
+
hr as DropdownMenuRadioItem,
|
|
2894
|
+
vr as DropdownMenuSeparator,
|
|
2895
|
+
Nr as DropdownMenuShortcut,
|
|
2896
|
+
pn as DropdownMenuSub,
|
|
2897
|
+
fr as DropdownMenuSubContent,
|
|
2898
|
+
ur as DropdownMenuSubTrigger,
|
|
2899
|
+
mn as DropdownMenuTrigger,
|
|
2900
|
+
Cs as FeatureList,
|
|
2901
|
+
bn as Form,
|
|
2902
|
+
Rr as FormControl,
|
|
2903
|
+
Sr as FormDescription,
|
|
2904
|
+
hn as FormField,
|
|
2905
|
+
wr as FormItem,
|
|
2906
|
+
Cr as FormLabel,
|
|
2907
|
+
kr as FormMessage,
|
|
2908
|
+
xn as HoverCard,
|
|
2909
|
+
Tr as HoverCardContent,
|
|
2910
|
+
vn as HoverCardTrigger,
|
|
2911
|
+
Xe as Input,
|
|
2912
|
+
Ir as InputOTP,
|
|
2913
|
+
Pr as InputOTPGroup,
|
|
2914
|
+
Dr as InputOTPSeparator,
|
|
2915
|
+
Mr as InputOTPSlot,
|
|
2916
|
+
Ue as Label,
|
|
2917
|
+
_r as Menubar,
|
|
2918
|
+
Or as MenubarCheckboxItem,
|
|
2919
|
+
Lr as MenubarContent,
|
|
2920
|
+
yn as MenubarGroup,
|
|
2921
|
+
Fr as MenubarItem,
|
|
2922
|
+
Br as MenubarLabel,
|
|
2923
|
+
Nn as MenubarMenu,
|
|
2924
|
+
wn as MenubarPortal,
|
|
2925
|
+
Rn as MenubarRadioGroup,
|
|
2926
|
+
Er as MenubarRadioItem,
|
|
2927
|
+
Gr as MenubarSeparator,
|
|
2928
|
+
Vr as MenubarShortcut,
|
|
2929
|
+
Cn as MenubarSub,
|
|
2930
|
+
jr as MenubarSubContent,
|
|
2931
|
+
Ar as MenubarSubTrigger,
|
|
2932
|
+
zr as MenubarTrigger,
|
|
2933
|
+
Hr as NavigationMenu,
|
|
2934
|
+
Wr as NavigationMenuContent,
|
|
2935
|
+
qr as NavigationMenuIndicator,
|
|
2936
|
+
Sn as NavigationMenuItem,
|
|
2937
|
+
kn as NavigationMenuLink,
|
|
2938
|
+
$r as NavigationMenuList,
|
|
2939
|
+
Ur as NavigationMenuTrigger,
|
|
2940
|
+
Ye as NavigationMenuViewport,
|
|
2941
|
+
Xr as Pagination,
|
|
2942
|
+
Yr as PaginationContent,
|
|
2943
|
+
eo as PaginationEllipsis,
|
|
2944
|
+
Jr as PaginationItem,
|
|
2945
|
+
Ce as PaginationLink,
|
|
2946
|
+
Zr as PaginationNext,
|
|
2947
|
+
Qr as PaginationPrevious,
|
|
2948
|
+
Tn as Popover,
|
|
2949
|
+
to as PopoverContent,
|
|
2950
|
+
In as PopoverTrigger,
|
|
2951
|
+
ao as Progress,
|
|
2952
|
+
ro as RadioGroup,
|
|
2953
|
+
oo as RadioGroupItem,
|
|
2954
|
+
Wn as RelatedArticles,
|
|
2955
|
+
Dn as ResizableHandle,
|
|
2956
|
+
Mn as ResizablePanel,
|
|
2957
|
+
Pn as ResizablePanelGroup,
|
|
2958
|
+
so as ScrollArea,
|
|
2959
|
+
Je as ScrollBar,
|
|
2960
|
+
ke as Select,
|
|
2961
|
+
be as SelectContent,
|
|
2962
|
+
_n as SelectGroup,
|
|
2963
|
+
he as SelectItem,
|
|
2964
|
+
no as SelectLabel,
|
|
2965
|
+
Ze as SelectScrollDownButton,
|
|
2966
|
+
Qe as SelectScrollUpButton,
|
|
2967
|
+
io as SelectSeparator,
|
|
2968
|
+
ge as SelectTrigger,
|
|
2969
|
+
Te as SelectValue,
|
|
2970
|
+
et as Separator,
|
|
2971
|
+
lo as Sheet,
|
|
2972
|
+
An as SheetClose,
|
|
2973
|
+
at as SheetContent,
|
|
2974
|
+
go as SheetDescription,
|
|
2975
|
+
fo as SheetFooter,
|
|
2976
|
+
uo as SheetHeader,
|
|
2977
|
+
tt as SheetOverlay,
|
|
2978
|
+
co as SheetPortal,
|
|
2979
|
+
po as SheetTitle,
|
|
2980
|
+
zn as SheetTrigger,
|
|
2981
|
+
To as Sidebar,
|
|
2982
|
+
jo as SidebarContent,
|
|
2983
|
+
zo as SidebarFooter,
|
|
2984
|
+
Lo as SidebarGroup,
|
|
2985
|
+
Oo as SidebarGroupAction,
|
|
2986
|
+
Eo as SidebarGroupContent,
|
|
2987
|
+
Fo as SidebarGroupLabel,
|
|
2988
|
+
_o as SidebarHeader,
|
|
2989
|
+
Do as SidebarInput,
|
|
2990
|
+
Mo as SidebarInset,
|
|
2991
|
+
Bo as SidebarMenu,
|
|
2992
|
+
$o as SidebarMenuAction,
|
|
2993
|
+
Ko as SidebarMenuBadge,
|
|
2994
|
+
Ho as SidebarMenuButton,
|
|
2995
|
+
Go as SidebarMenuItem,
|
|
2996
|
+
Uo as SidebarMenuSkeleton,
|
|
2997
|
+
Wo as SidebarMenuSub,
|
|
2998
|
+
Xo as SidebarMenuSubButton,
|
|
2999
|
+
qo as SidebarMenuSubItem,
|
|
3000
|
+
ko as SidebarProvider,
|
|
3001
|
+
Po as SidebarRail,
|
|
3002
|
+
Ao as SidebarSeparator,
|
|
3003
|
+
Io as SidebarTrigger,
|
|
3004
|
+
Ie as Skeleton,
|
|
3005
|
+
Yo as Slider,
|
|
3006
|
+
jn as SonnerToaster,
|
|
3007
|
+
Jo as Switch,
|
|
3008
|
+
Qo as Table,
|
|
3009
|
+
es as TableBody,
|
|
3010
|
+
ss as TableCaption,
|
|
3011
|
+
os as TableCell,
|
|
3012
|
+
ts as TableFooter,
|
|
3013
|
+
rs as TableHead,
|
|
3014
|
+
Zo as TableHeader,
|
|
3015
|
+
qn as TableOfContents,
|
|
3016
|
+
as as TableRow,
|
|
3017
|
+
Ln as Tabs,
|
|
3018
|
+
ds as TabsContent,
|
|
3019
|
+
ns as TabsList,
|
|
3020
|
+
is as TabsTrigger,
|
|
3021
|
+
ls as Textarea,
|
|
3022
|
+
nt as Toast,
|
|
3023
|
+
us as ToastAction,
|
|
3024
|
+
it as ToastClose,
|
|
3025
|
+
lt as ToastDescription,
|
|
3026
|
+
cs as ToastProvider,
|
|
3027
|
+
dt as ToastTitle,
|
|
3028
|
+
st as ToastViewport,
|
|
3029
|
+
Fn as Toaster,
|
|
3030
|
+
vs as Toggle,
|
|
3031
|
+
Ns as ToggleGroup,
|
|
3032
|
+
ys as ToggleGroupItem,
|
|
3033
|
+
xo as Tooltip,
|
|
3034
|
+
rt as TooltipContent,
|
|
3035
|
+
ho as TooltipProvider,
|
|
3036
|
+
vo as TooltipTrigger,
|
|
3037
|
+
Xn as WhatsIncluded,
|
|
3038
|
+
ma as badgeVariants,
|
|
3039
|
+
B as buttonVariants,
|
|
3040
|
+
s as cn,
|
|
3041
|
+
Kr as navigationMenuTriggerStyle,
|
|
3042
|
+
Qn as sonnerToast,
|
|
3043
|
+
hs as toast,
|
|
3044
|
+
ct as toggleVariants,
|
|
3045
|
+
ne as useFormField,
|
|
3046
|
+
bo as useIsMobile,
|
|
3047
|
+
ie as useSidebar,
|
|
3048
|
+
xs as useToast
|
|
3049
|
+
};
|