@snksergio/design-system 0.35.0 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +58 -12
  2. package/dist-lib/chunks/avatar-CIHTveDJ.mjs +1177 -0
  3. package/dist-lib/chunks/avatar-CIHTveDJ.mjs.map +1 -0
  4. package/dist-lib/chunks/avatar-YpqQgJnh.cjs +1196 -0
  5. package/dist-lib/chunks/avatar-YpqQgJnh.cjs.map +1 -0
  6. package/dist-lib/chunks/{input-CizzMZ20.cjs → input-CJnonz-G.cjs} +3 -3
  7. package/dist-lib/chunks/{input-CizzMZ20.cjs.map → input-CJnonz-G.cjs.map} +1 -1
  8. package/dist-lib/chunks/{input-Cym0k4ZI.mjs → input-jLoO8t0I.mjs} +2 -2
  9. package/dist-lib/chunks/{input-Cym0k4ZI.mjs.map → input-jLoO8t0I.mjs.map} +1 -1
  10. package/dist-lib/chunks/{kpi-delta-FhfuIg27.mjs → kpi-delta-D0g2YzDy.mjs} +3 -2
  11. package/dist-lib/chunks/{kpi-delta-FhfuIg27.mjs.map → kpi-delta-D0g2YzDy.mjs.map} +1 -1
  12. package/dist-lib/chunks/{kpi-delta-DrSJPMCY.cjs → kpi-delta-D6cLnCqW.cjs} +8 -7
  13. package/dist-lib/chunks/{kpi-delta-DrSJPMCY.cjs.map → kpi-delta-D6cLnCqW.cjs.map} +1 -1
  14. package/dist-lib/chunks/{page-header-BMzUloFi.cjs → page-header-DSTprenz.cjs} +4 -4
  15. package/dist-lib/chunks/{page-header-BMzUloFi.cjs.map → page-header-DSTprenz.cjs.map} +1 -1
  16. package/dist-lib/chunks/{page-header-Buh6YlQM.mjs → page-header-Deb1excS.mjs} +2 -2
  17. package/dist-lib/chunks/{page-header-Buh6YlQM.mjs.map → page-header-Deb1excS.mjs.map} +1 -1
  18. package/dist-lib/chunks/{panel-Cdl0GPVE.mjs → panel-Cid3m9zb.mjs} +370 -9823
  19. package/dist-lib/chunks/panel-Cid3m9zb.mjs.map +1 -0
  20. package/dist-lib/chunks/{panel-DlyaLunw.cjs → panel-DLcD8LhW.cjs} +595 -10052
  21. package/dist-lib/chunks/panel-DLcD8LhW.cjs.map +1 -0
  22. package/dist-lib/chunks/textarea-BDJRaL5h.mjs +781 -0
  23. package/dist-lib/chunks/textarea-BDJRaL5h.mjs.map +1 -0
  24. package/dist-lib/chunks/textarea-Bxl9Voe8.cjs +802 -0
  25. package/dist-lib/chunks/textarea-Bxl9Voe8.cjs.map +1 -0
  26. package/dist-lib/chunks/tooltip-DGI3hDFM.mjs +1452 -0
  27. package/dist-lib/chunks/tooltip-DGI3hDFM.mjs.map +1 -0
  28. package/dist-lib/chunks/tooltip-vLUyJ0h5.cjs +1484 -0
  29. package/dist-lib/chunks/tooltip-vLUyJ0h5.cjs.map +1 -0
  30. package/dist-lib/chunks/{useTheme-D4alxxGV.cjs → useTheme-DQ7FaHdv.cjs} +170 -1282
  31. package/dist-lib/chunks/useTheme-DQ7FaHdv.cjs.map +1 -0
  32. package/dist-lib/chunks/{useTheme-DF2xbSdI.mjs → useTheme-UrerJ3i-.mjs} +26 -1134
  33. package/dist-lib/chunks/useTheme-UrerJ3i-.mjs.map +1 -0
  34. package/dist-lib/index.cjs +1258 -311
  35. package/dist-lib/index.cjs.map +1 -1
  36. package/dist-lib/index.mjs +1631 -679
  37. package/dist-lib/index.mjs.map +1 -1
  38. package/dist-lib/preview/chat.cjs +45 -44
  39. package/dist-lib/preview/chat.cjs.map +1 -1
  40. package/dist-lib/preview/chat.mjs +3 -2
  41. package/dist-lib/preview/chat.mjs.map +1 -1
  42. package/dist-lib/preview/clientes.cjs +22 -20
  43. package/dist-lib/preview/clientes.cjs.map +1 -1
  44. package/dist-lib/preview/clientes.mjs +6 -4
  45. package/dist-lib/preview/clientes.mjs.map +1 -1
  46. package/dist-lib/preview/dashboard.cjs +40 -39
  47. package/dist-lib/preview/dashboard.cjs.map +1 -1
  48. package/dist-lib/preview/dashboard.mjs +4 -3
  49. package/dist-lib/preview/dashboard.mjs.map +1 -1
  50. package/dist-lib/shadcn.cjs +293 -0
  51. package/dist-lib/shadcn.cjs.map +1 -0
  52. package/dist-lib/shadcn.d.ts +2 -0
  53. package/dist-lib/shadcn.mjs +276 -0
  54. package/dist-lib/shadcn.mjs.map +1 -0
  55. package/dist-lib/src/components/index.d.ts +10 -0
  56. package/dist-lib/src/components/index.d.ts.map +1 -1
  57. package/dist-lib/src/components/shadcn/command.d.ts.map +1 -1
  58. package/dist-lib/src/components/shadcn/index.d.ts +60 -6
  59. package/dist-lib/src/components/shadcn/index.d.ts.map +1 -1
  60. package/dist-lib/src/hooks/useBrand.d.ts +1 -1
  61. package/dist-lib/theme/brand-blue.css +110 -110
  62. package/dist-lib/theme/brand-green.css +110 -110
  63. package/dist-lib/theme/brand-pay.css +189 -189
  64. package/dist-lib/theme/brand-vibrant.css +148 -148
  65. package/dist-lib/theme.css +10 -6
  66. package/dist-lib/tokens/brands/blue/semantic/color-dark.d.ts +4 -0
  67. package/dist-lib/tokens/brands/blue/semantic/color-dark.d.ts.map +1 -1
  68. package/dist-lib/tokens/brands/blue/semantic/color-light.d.ts +4 -0
  69. package/dist-lib/tokens/brands/blue/semantic/color-light.d.ts.map +1 -1
  70. package/dist-lib/tokens/brands/default/semantic/color-dark.d.ts +4 -0
  71. package/dist-lib/tokens/brands/default/semantic/color-dark.d.ts.map +1 -1
  72. package/dist-lib/tokens/brands/default/semantic/color-light.d.ts +4 -0
  73. package/dist-lib/tokens/brands/default/semantic/color-light.d.ts.map +1 -1
  74. package/dist-lib/tokens/brands/green/semantic/color-dark.d.ts +4 -0
  75. package/dist-lib/tokens/brands/green/semantic/color-dark.d.ts.map +1 -1
  76. package/dist-lib/tokens/brands/green/semantic/color-light.d.ts +4 -0
  77. package/dist-lib/tokens/brands/green/semantic/color-light.d.ts.map +1 -1
  78. package/dist-lib/tokens/brands/pay/semantic/color-dark.d.ts +4 -0
  79. package/dist-lib/tokens/brands/pay/semantic/color-dark.d.ts.map +1 -1
  80. package/dist-lib/tokens/brands/pay/semantic/color-light.d.ts +4 -0
  81. package/dist-lib/tokens/brands/pay/semantic/color-light.d.ts.map +1 -1
  82. package/dist-lib/tokens/brands/vibrant/semantic/color-dark.d.ts +4 -0
  83. package/dist-lib/tokens/brands/vibrant/semantic/color-dark.d.ts.map +1 -1
  84. package/dist-lib/tokens/brands/vibrant/semantic/color-light.d.ts +4 -0
  85. package/dist-lib/tokens/brands/vibrant/semantic/color-light.d.ts.map +1 -1
  86. package/dist-lib/tokens.cjs +12 -0
  87. package/dist-lib/tokens.cjs.map +1 -1
  88. package/dist-lib/tokens.mjs +12 -0
  89. package/dist-lib/tokens.mjs.map +1 -1
  90. package/package.json +11 -3
  91. package/dist-lib/chunks/panel-Cdl0GPVE.mjs.map +0 -1
  92. package/dist-lib/chunks/panel-DlyaLunw.cjs.map +0 -1
  93. package/dist-lib/chunks/useTheme-D4alxxGV.cjs.map +0 -1
  94. package/dist-lib/chunks/useTheme-DF2xbSdI.mjs.map +0 -1
@@ -0,0 +1,1452 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
4
+ import { c as cn, t as tv, B as Button } from "./avatar-CIHTveDJ.mjs";
5
+ import * as AccordionPrimitive from "@radix-ui/react-accordion";
6
+ import { ChevronDown, MoreHorizontal, ChevronRight, ArrowLeft, ArrowRight, Check, Circle, Dot } from "lucide-react";
7
+ import { cva } from "class-variance-authority";
8
+ import { Slot } from "@radix-ui/react-slot";
9
+ import useEmblaCarousel from "embla-carousel-react";
10
+ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
11
+ import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
12
+ import { Drawer as Drawer$1 } from "vaul";
13
+ import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
14
+ import { OTPInput, OTPInputContext } from "input-otp";
15
+ import * as LabelPrimitive from "@radix-ui/react-label";
16
+ import * as MenubarPrimitive from "@radix-ui/react-menubar";
17
+ import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
18
+ import * as ProgressPrimitive from "@radix-ui/react-progress";
19
+ import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
20
+ import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
21
+ import * as SliderPrimitive from "@radix-ui/react-slider";
22
+ import * as TabsPrimitive from "@radix-ui/react-tabs";
23
+ import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
24
+ import * as TogglePrimitive from "@radix-ui/react-toggle";
25
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
26
+ const Separator = React.forwardRef(
27
+ ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
28
+ SeparatorPrimitive.Root,
29
+ {
30
+ ref,
31
+ decorative,
32
+ orientation,
33
+ className: cn(
34
+ "shrink-0 bg-border",
35
+ orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
36
+ className
37
+ ),
38
+ ...props
39
+ }
40
+ )
41
+ );
42
+ Separator.displayName = SeparatorPrimitive.Root.displayName;
43
+ const Accordion = AccordionPrimitive.Root;
44
+ const AccordionItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
45
+ AccordionPrimitive.Item,
46
+ {
47
+ ref,
48
+ className: cn("border-b border-border-subtle", className),
49
+ ...props
50
+ }
51
+ ));
52
+ AccordionItem.displayName = "AccordionItem";
53
+ const AccordionTrigger = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
54
+ AccordionPrimitive.Trigger,
55
+ {
56
+ ref,
57
+ className: cn(
58
+ "flex flex-1 items-center justify-between py-pad-2xl text-body-md font-medium text-fg-default transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
59
+ className
60
+ ),
61
+ ...props,
62
+ children: [
63
+ children,
64
+ /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4 shrink-0 text-fg-muted transition-transform duration-200" })
65
+ ]
66
+ }
67
+ ) }));
68
+ AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
69
+ const AccordionContent = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
70
+ AccordionPrimitive.Content,
71
+ {
72
+ ref,
73
+ className: "overflow-hidden text-body-md text-fg-muted transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
74
+ ...props,
75
+ children: /* @__PURE__ */ jsx("div", { className: cn("pb-pad-2xl pt-0", className), children })
76
+ }
77
+ ));
78
+ AccordionContent.displayName = AccordionPrimitive.Content.displayName;
79
+ const alertVariants = cva(
80
+ "relative w-full rounded-radius-2xl border px-pad-2xl py-pad-xl text-body-md [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-fg-default",
81
+ {
82
+ variants: {
83
+ variant: {
84
+ default: "bg-bg-surface text-fg-default border-border-subtle",
85
+ destructive: "border-border-danger-muted/50 text-fg-danger [&>svg]:text-fg-danger"
86
+ }
87
+ },
88
+ defaultVariants: {
89
+ variant: "default"
90
+ }
91
+ }
92
+ );
93
+ const Alert = React.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
94
+ "div",
95
+ {
96
+ ref,
97
+ role: "alert",
98
+ className: cn(alertVariants({ variant }), className),
99
+ ...props
100
+ }
101
+ ));
102
+ Alert.displayName = "Alert";
103
+ const AlertTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
104
+ "h5",
105
+ {
106
+ ref,
107
+ className: cn("text-body-md font-medium text-fg-default mb-sp-xs leading-none tracking-tight", className),
108
+ ...props
109
+ }
110
+ ));
111
+ AlertTitle.displayName = "AlertTitle";
112
+ const AlertDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
113
+ "div",
114
+ {
115
+ ref,
116
+ className: cn("text-body-md text-fg-muted [&_p]:leading-relaxed", className),
117
+ ...props
118
+ }
119
+ ));
120
+ AlertDescription.displayName = "AlertDescription";
121
+ const badgeVariants = tv({
122
+ base: [
123
+ "inline-flex items-center justify-center",
124
+ "border border-transparent",
125
+ "font-semibold leading-none whitespace-nowrap",
126
+ "transition-colors",
127
+ "focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary",
128
+ "[&_svg]:pointer-events-none [&_svg]:shrink-0"
129
+ ],
130
+ variants: {
131
+ color: {
132
+ primary: "",
133
+ secondary: "",
134
+ critical: "",
135
+ success: "",
136
+ warning: "",
137
+ info: ""
138
+ },
139
+ variant: {
140
+ solid: "",
141
+ soft: "",
142
+ outline: "bg-transparent",
143
+ ghost: "bg-transparent border-transparent"
144
+ },
145
+ size: {
146
+ sm: "h-comp-2xs px-pad-sm text-caption-xs gap-gp-2xs [&_svg]:size-3",
147
+ // 20px / 6 / 10
148
+ md: "h-comp-xs px-pad-md text-body-xs gap-gp-xs [&_svg]:size-3.5",
149
+ // 24px / 8 / 12 (default)
150
+ lg: "h-comp-sm px-pad-lg text-body-sm font-normal gap-gp-sm [&_svg]:size-4"
151
+ // 28px / 10 / 13
152
+ },
153
+ shape: {
154
+ default: "rounded-radius-sm",
155
+ // 6px — counter, value tags
156
+ pill: "rounded-radius-full"
157
+ // pill — status chips
158
+ }
159
+ },
160
+ compoundVariants: [
161
+ /* ── Primary (brand) ─────────────────────────────────────────────── */
162
+ { color: "primary", variant: "solid", class: "bg-bg-brand text-fg-on-brand" },
163
+ { color: "primary", variant: "soft", class: "bg-bg-brand-subtle text-fg-brand" },
164
+ { color: "primary", variant: "outline", class: "border-border-brand text-fg-brand" },
165
+ { color: "primary", variant: "ghost", class: "text-fg-brand" },
166
+ /* ── Secondary (neutral) ─────────────────────────────────────────── */
167
+ { color: "secondary", variant: "solid", class: "bg-bg-emphasis text-fg-default" },
168
+ { color: "secondary", variant: "soft", class: "bg-bg-muted text-fg-muted" },
169
+ { color: "secondary", variant: "outline", class: "border-border-default text-fg-default" },
170
+ { color: "secondary", variant: "ghost", class: "text-fg-muted" },
171
+ /* ── Critical (danger) ───────────────────────────────────────────── */
172
+ { color: "critical", variant: "solid", class: "bg-bg-danger text-fg-on-danger" },
173
+ { color: "critical", variant: "soft", class: "bg-bg-danger-muted text-fg-danger" },
174
+ { color: "critical", variant: "outline", class: "border-border-danger-muted text-fg-danger" },
175
+ { color: "critical", variant: "ghost", class: "text-fg-danger" },
176
+ /* ── Success ─────────────────────────────────────────────────────── */
177
+ { color: "success", variant: "solid", class: "bg-bg-success text-fg-on-success" },
178
+ { color: "success", variant: "soft", class: "bg-bg-success-muted text-fg-success" },
179
+ { color: "success", variant: "outline", class: "border-border-success-muted text-fg-success" },
180
+ { color: "success", variant: "ghost", class: "text-fg-success" },
181
+ /* ── Warning ─────────────────────────────────────────────────────── */
182
+ { color: "warning", variant: "solid", class: "bg-bg-warning text-fg-on-warning" },
183
+ { color: "warning", variant: "soft", class: "bg-bg-warning-muted text-fg-warning" },
184
+ { color: "warning", variant: "outline", class: "border-border-warning-muted text-fg-warning" },
185
+ { color: "warning", variant: "ghost", class: "text-fg-warning" },
186
+ /* ── Info ────────────────────────────────────────────────────────── */
187
+ { color: "info", variant: "solid", class: "bg-bg-info text-fg-on-info" },
188
+ { color: "info", variant: "soft", class: "bg-bg-info-muted text-fg-info" },
189
+ { color: "info", variant: "outline", class: "border-border-info-muted text-fg-info" },
190
+ { color: "info", variant: "ghost", class: "text-fg-info" }
191
+ ],
192
+ defaultVariants: {
193
+ color: "secondary",
194
+ variant: "soft",
195
+ size: "md",
196
+ shape: "default"
197
+ }
198
+ });
199
+ function Badge({ className, color, variant, size, shape, ...props }) {
200
+ return /* @__PURE__ */ jsx(
201
+ "span",
202
+ {
203
+ className: badgeVariants({ color, variant, size, shape, className }),
204
+ ...props
205
+ }
206
+ );
207
+ }
208
+ const Breadcrumb = React.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("nav", { ref, "aria-label": "breadcrumb", ...props }));
209
+ Breadcrumb.displayName = "Breadcrumb";
210
+ const BreadcrumbList = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
211
+ "ol",
212
+ {
213
+ ref,
214
+ className: cn(
215
+ "flex flex-wrap items-center gap-gp-sm break-words text-body-md text-fg-muted sm:gap-gp-lg",
216
+ className
217
+ ),
218
+ ...props
219
+ }
220
+ ));
221
+ BreadcrumbList.displayName = "BreadcrumbList";
222
+ const BreadcrumbItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
223
+ "li",
224
+ {
225
+ ref,
226
+ className: cn("inline-flex items-center gap-gp-sm", className),
227
+ ...props
228
+ }
229
+ ));
230
+ BreadcrumbItem.displayName = "BreadcrumbItem";
231
+ const BreadcrumbLink = React.forwardRef(({ asChild, className, ...props }, ref) => {
232
+ const Comp = asChild ? Slot : "a";
233
+ return /* @__PURE__ */ jsx(
234
+ Comp,
235
+ {
236
+ ref,
237
+ className: cn("transition-colors hover:text-fg-default", className),
238
+ ...props
239
+ }
240
+ );
241
+ });
242
+ BreadcrumbLink.displayName = "BreadcrumbLink";
243
+ const BreadcrumbPage = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
244
+ "span",
245
+ {
246
+ ref,
247
+ role: "link",
248
+ "aria-disabled": "true",
249
+ "aria-current": "page",
250
+ className: cn("font-normal text-fg-default", className),
251
+ ...props
252
+ }
253
+ ));
254
+ BreadcrumbPage.displayName = "BreadcrumbPage";
255
+ const BreadcrumbSeparator = ({
256
+ children,
257
+ className,
258
+ ...props
259
+ }) => /* @__PURE__ */ jsx(
260
+ "li",
261
+ {
262
+ role: "presentation",
263
+ "aria-hidden": "true",
264
+ className: cn("[&>svg]:w-3.5 [&>svg]:h-3.5 text-fg-subtle", className),
265
+ ...props,
266
+ children: children ?? /* @__PURE__ */ jsx(ChevronRight, {})
267
+ }
268
+ );
269
+ BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
270
+ const BreadcrumbEllipsis = ({
271
+ className,
272
+ ...props
273
+ }) => /* @__PURE__ */ jsxs(
274
+ "span",
275
+ {
276
+ role: "presentation",
277
+ "aria-hidden": "true",
278
+ className: cn("flex h-9 w-9 items-center justify-center text-fg-subtle", className),
279
+ ...props,
280
+ children: [
281
+ /* @__PURE__ */ jsx(MoreHorizontal, { className: "h-4 w-4" }),
282
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More" })
283
+ ]
284
+ }
285
+ );
286
+ BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
287
+ const Card = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
288
+ "div",
289
+ {
290
+ ref,
291
+ className: cn(
292
+ "flex flex-col gap-gp-4xl rounded-radius-base bg-bg-surface py-pad-4xl text-body-md text-fg-default shadow-sh-lg ring-1 ring-foreground/5 dark:ring-foreground/10",
293
+ className
294
+ ),
295
+ ...props
296
+ }
297
+ ));
298
+ Card.displayName = "Card";
299
+ const CardHeader = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
300
+ "div",
301
+ {
302
+ ref,
303
+ className: cn(
304
+ "grid auto-rows-min items-start gap-gp-sm px-pad-4xl",
305
+ className
306
+ ),
307
+ ...props
308
+ }
309
+ ));
310
+ CardHeader.displayName = "CardHeader";
311
+ const CardTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
312
+ "div",
313
+ {
314
+ ref,
315
+ className: cn("text-title-md font-medium text-fg-default", className),
316
+ ...props
317
+ }
318
+ ));
319
+ CardTitle.displayName = "CardTitle";
320
+ const CardDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
321
+ "div",
322
+ {
323
+ ref,
324
+ className: cn("text-body-md text-fg-muted", className),
325
+ ...props
326
+ }
327
+ ));
328
+ CardDescription.displayName = "CardDescription";
329
+ const CardContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("px-pad-4xl", className), ...props }));
330
+ CardContent.displayName = "CardContent";
331
+ const CardFooter = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
332
+ "div",
333
+ {
334
+ ref,
335
+ className: cn("flex items-center px-pad-4xl", className),
336
+ ...props
337
+ }
338
+ ));
339
+ CardFooter.displayName = "CardFooter";
340
+ const CarouselContext = React.createContext(null);
341
+ function useCarousel() {
342
+ const context = React.useContext(CarouselContext);
343
+ if (!context) {
344
+ throw new Error("useCarousel must be used within a <Carousel />");
345
+ }
346
+ return context;
347
+ }
348
+ const Carousel = React.forwardRef(
349
+ ({
350
+ orientation = "horizontal",
351
+ opts,
352
+ setApi,
353
+ plugins,
354
+ className,
355
+ children,
356
+ ...props
357
+ }, ref) => {
358
+ const [carouselRef, api] = useEmblaCarousel(
359
+ {
360
+ ...opts,
361
+ axis: orientation === "horizontal" ? "x" : "y"
362
+ },
363
+ plugins
364
+ );
365
+ const [canScrollPrev, setCanScrollPrev] = React.useState(false);
366
+ const [canScrollNext, setCanScrollNext] = React.useState(false);
367
+ const onSelect = React.useCallback((api2) => {
368
+ if (!api2) {
369
+ return;
370
+ }
371
+ setCanScrollPrev(api2.canScrollPrev());
372
+ setCanScrollNext(api2.canScrollNext());
373
+ }, []);
374
+ const scrollPrev = React.useCallback(() => {
375
+ api?.scrollPrev();
376
+ }, [api]);
377
+ const scrollNext = React.useCallback(() => {
378
+ api?.scrollNext();
379
+ }, [api]);
380
+ const handleKeyDown = React.useCallback(
381
+ (event) => {
382
+ if (event.key === "ArrowLeft") {
383
+ event.preventDefault();
384
+ scrollPrev();
385
+ } else if (event.key === "ArrowRight") {
386
+ event.preventDefault();
387
+ scrollNext();
388
+ }
389
+ },
390
+ [scrollPrev, scrollNext]
391
+ );
392
+ React.useEffect(() => {
393
+ if (!api || !setApi) {
394
+ return;
395
+ }
396
+ setApi(api);
397
+ }, [api, setApi]);
398
+ React.useEffect(() => {
399
+ if (!api) {
400
+ return;
401
+ }
402
+ onSelect(api);
403
+ api.on("reInit", onSelect);
404
+ api.on("select", onSelect);
405
+ return () => {
406
+ api?.off("select", onSelect);
407
+ };
408
+ }, [api, onSelect]);
409
+ return /* @__PURE__ */ jsx(
410
+ CarouselContext.Provider,
411
+ {
412
+ value: {
413
+ carouselRef,
414
+ api,
415
+ opts,
416
+ orientation: orientation || (opts?.axis === "y" ? "vertical" : "horizontal"),
417
+ scrollPrev,
418
+ scrollNext,
419
+ canScrollPrev,
420
+ canScrollNext
421
+ },
422
+ children: /* @__PURE__ */ jsx(
423
+ "div",
424
+ {
425
+ ref,
426
+ onKeyDownCapture: handleKeyDown,
427
+ className: cn("relative", className),
428
+ role: "region",
429
+ "aria-roledescription": "carousel",
430
+ ...props,
431
+ children
432
+ }
433
+ )
434
+ }
435
+ );
436
+ }
437
+ );
438
+ Carousel.displayName = "Carousel";
439
+ const CarouselContent = React.forwardRef(({ className, ...props }, ref) => {
440
+ const { carouselRef, orientation } = useCarousel();
441
+ return /* @__PURE__ */ jsx("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx(
442
+ "div",
443
+ {
444
+ ref,
445
+ className: cn(
446
+ "flex",
447
+ orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
448
+ className
449
+ ),
450
+ ...props
451
+ }
452
+ ) });
453
+ });
454
+ CarouselContent.displayName = "CarouselContent";
455
+ const CarouselItem = React.forwardRef(({ className, ...props }, ref) => {
456
+ const { orientation } = useCarousel();
457
+ return /* @__PURE__ */ jsx(
458
+ "div",
459
+ {
460
+ ref,
461
+ role: "group",
462
+ "aria-roledescription": "slide",
463
+ className: cn(
464
+ "min-w-0 shrink-0 grow-0 basis-full",
465
+ orientation === "horizontal" ? "pl-4" : "pt-4",
466
+ className
467
+ ),
468
+ ...props
469
+ }
470
+ );
471
+ });
472
+ CarouselItem.displayName = "CarouselItem";
473
+ const CarouselPrevious = React.forwardRef(({ className, ...props }, ref) => {
474
+ const { orientation, scrollPrev, canScrollPrev } = useCarousel();
475
+ return /* @__PURE__ */ jsxs(
476
+ Button,
477
+ {
478
+ ref,
479
+ color: "secondary",
480
+ variant: "outline",
481
+ size: "icon-xs",
482
+ className: cn(
483
+ "absolute rounded-radius-full",
484
+ orientation === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
485
+ className
486
+ ),
487
+ disabled: !canScrollPrev,
488
+ onClick: scrollPrev,
489
+ ...props,
490
+ children: [
491
+ /* @__PURE__ */ jsx(ArrowLeft, {}),
492
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Previous slide" })
493
+ ]
494
+ }
495
+ );
496
+ });
497
+ CarouselPrevious.displayName = "CarouselPrevious";
498
+ const CarouselNext = React.forwardRef(({ className, ...props }, ref) => {
499
+ const { orientation, scrollNext, canScrollNext } = useCarousel();
500
+ return /* @__PURE__ */ jsxs(
501
+ Button,
502
+ {
503
+ ref,
504
+ color: "secondary",
505
+ variant: "outline",
506
+ size: "icon-xs",
507
+ className: cn(
508
+ "absolute rounded-radius-full",
509
+ orientation === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
510
+ className
511
+ ),
512
+ disabled: !canScrollNext,
513
+ onClick: scrollNext,
514
+ ...props,
515
+ children: [
516
+ /* @__PURE__ */ jsx(ArrowRight, {}),
517
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Next slide" })
518
+ ]
519
+ }
520
+ );
521
+ });
522
+ CarouselNext.displayName = "CarouselNext";
523
+ const Collapsible = CollapsiblePrimitive.Root;
524
+ const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;
525
+ const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;
526
+ const ContextMenu = ContextMenuPrimitive.Root;
527
+ const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
528
+ const ContextMenuGroup = ContextMenuPrimitive.Group;
529
+ const ContextMenuPortal = ContextMenuPrimitive.Portal;
530
+ const ContextMenuSub = ContextMenuPrimitive.Sub;
531
+ const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
532
+ const ContextMenuSubTrigger = React.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
533
+ ContextMenuPrimitive.SubTrigger,
534
+ {
535
+ ref,
536
+ className: cn(
537
+ "flex cursor-default select-none items-center rounded-radius-sm px-pad-lg py-pad-md text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[state=open]:bg-bg-muted data-[state=open]:text-fg-default",
538
+ inset && "pl-8",
539
+ className
540
+ ),
541
+ ...props,
542
+ children: [
543
+ children,
544
+ /* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
545
+ ]
546
+ }
547
+ ));
548
+ ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
549
+ const ContextMenuSubContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
550
+ ContextMenuPrimitive.SubContent,
551
+ {
552
+ ref,
553
+ className: cn(
554
+ "z-50 min-w-[8rem] overflow-hidden relative rounded-[12px] border border-border-default bg-bg-dropdown p-pad-sm text-fg-muted shadow-sh-lg outline-float before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 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 origin-[--radix-context-menu-content-transform-origin]",
555
+ className
556
+ ),
557
+ ...props
558
+ }
559
+ ));
560
+ ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
561
+ const ContextMenuContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
562
+ ContextMenuPrimitive.Content,
563
+ {
564
+ ref,
565
+ className: cn(
566
+ "z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden relative rounded-[12px] border border-border-default bg-bg-dropdown p-pad-sm text-fg-muted shadow-sh-lg outline-float before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 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 origin-[--radix-context-menu-content-transform-origin]",
567
+ className
568
+ ),
569
+ ...props
570
+ }
571
+ ) }));
572
+ ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
573
+ const ContextMenuItem = React.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
574
+ ContextMenuPrimitive.Item,
575
+ {
576
+ ref,
577
+ className: cn(
578
+ "relative flex cursor-default select-none items-center rounded-radius-sm px-pad-lg py-pad-md text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
579
+ inset && "pl-8",
580
+ className
581
+ ),
582
+ ...props
583
+ }
584
+ ));
585
+ ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
586
+ const ContextMenuCheckboxItem = React.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
587
+ ContextMenuPrimitive.CheckboxItem,
588
+ {
589
+ ref,
590
+ className: cn(
591
+ "relative flex cursor-default select-none items-center rounded-radius-sm py-pad-md pl-8 pr-2 text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
592
+ className
593
+ ),
594
+ checked,
595
+ ...props,
596
+ children: [
597
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
598
+ children
599
+ ]
600
+ }
601
+ ));
602
+ ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
603
+ const ContextMenuRadioItem = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
604
+ ContextMenuPrimitive.RadioItem,
605
+ {
606
+ ref,
607
+ className: cn(
608
+ "relative flex cursor-default select-none items-center rounded-radius-sm py-pad-md pl-8 pr-2 text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
609
+ className
610
+ ),
611
+ ...props,
612
+ children: [
613
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }),
614
+ children
615
+ ]
616
+ }
617
+ ));
618
+ ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
619
+ const ContextMenuLabel = React.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
620
+ ContextMenuPrimitive.Label,
621
+ {
622
+ ref,
623
+ className: cn(
624
+ "px-pad-lg py-pad-sm text-caption-sm font-semibold uppercase tracking-wider text-fg-subtle",
625
+ inset && "pl-8",
626
+ className
627
+ ),
628
+ ...props
629
+ }
630
+ ));
631
+ ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
632
+ const ContextMenuSeparator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
633
+ ContextMenuPrimitive.Separator,
634
+ {
635
+ ref,
636
+ className: cn("mx-pad-xs my-pad-xs h-px bg-border-default", className),
637
+ ...props
638
+ }
639
+ ));
640
+ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
641
+ const ContextMenuShortcut = ({
642
+ className,
643
+ ...props
644
+ }) => {
645
+ return /* @__PURE__ */ jsx(
646
+ "span",
647
+ {
648
+ className: cn(
649
+ "ml-auto text-caption-sm tracking-wider text-fg-subtle",
650
+ className
651
+ ),
652
+ ...props
653
+ }
654
+ );
655
+ };
656
+ ContextMenuShortcut.displayName = "ContextMenuShortcut";
657
+ const Drawer = ({
658
+ shouldScaleBackground = true,
659
+ ...props
660
+ }) => /* @__PURE__ */ jsx(
661
+ Drawer$1.Root,
662
+ {
663
+ shouldScaleBackground,
664
+ ...props
665
+ }
666
+ );
667
+ Drawer.displayName = "Drawer";
668
+ const DrawerTrigger = Drawer$1.Trigger;
669
+ const DrawerPortal = Drawer$1.Portal;
670
+ const DrawerClose = Drawer$1.Close;
671
+ const DrawerOverlay = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
672
+ Drawer$1.Overlay,
673
+ {
674
+ ref,
675
+ className: cn("fixed inset-0 z-50 bg-black/80", className),
676
+ ...props
677
+ }
678
+ ));
679
+ DrawerOverlay.displayName = Drawer$1.Overlay.displayName;
680
+ const DrawerContent = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DrawerPortal, { children: [
681
+ /* @__PURE__ */ jsx(DrawerOverlay, {}),
682
+ /* @__PURE__ */ jsxs(
683
+ Drawer$1.Content,
684
+ {
685
+ ref,
686
+ className: cn(
687
+ "fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border border-border-default bg-background",
688
+ className
689
+ ),
690
+ ...props,
691
+ children: [
692
+ /* @__PURE__ */ jsx("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }),
693
+ children
694
+ ]
695
+ }
696
+ )
697
+ ] }));
698
+ DrawerContent.displayName = "DrawerContent";
699
+ const DrawerHeader = ({
700
+ className,
701
+ ...props
702
+ }) => /* @__PURE__ */ jsx(
703
+ "div",
704
+ {
705
+ className: cn("grid gap-1.5 p-4 text-center sm:text-left", className),
706
+ ...props
707
+ }
708
+ );
709
+ DrawerHeader.displayName = "DrawerHeader";
710
+ const DrawerFooter = ({
711
+ className,
712
+ ...props
713
+ }) => /* @__PURE__ */ jsx(
714
+ "div",
715
+ {
716
+ className: cn("mt-auto flex flex-col gap-2 p-4", className),
717
+ ...props
718
+ }
719
+ );
720
+ DrawerFooter.displayName = "DrawerFooter";
721
+ const DrawerTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
722
+ Drawer$1.Title,
723
+ {
724
+ ref,
725
+ className: cn(
726
+ "text-lg font-semibold leading-none tracking-tight",
727
+ className
728
+ ),
729
+ ...props
730
+ }
731
+ ));
732
+ DrawerTitle.displayName = Drawer$1.Title.displayName;
733
+ const DrawerDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
734
+ Drawer$1.Description,
735
+ {
736
+ ref,
737
+ className: cn("text-sm text-muted-foreground", className),
738
+ ...props
739
+ }
740
+ ));
741
+ DrawerDescription.displayName = Drawer$1.Description.displayName;
742
+ const HoverCard = ({
743
+ openDelay = 200,
744
+ closeDelay = 100,
745
+ ...props
746
+ }) => /* @__PURE__ */ jsx(HoverCardPrimitive.Root, { openDelay, closeDelay, ...props });
747
+ const HoverCardTrigger = HoverCardPrimitive.Trigger;
748
+ const HoverCardContent = React.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
749
+ HoverCardPrimitive.Content,
750
+ {
751
+ ref,
752
+ align,
753
+ sideOffset,
754
+ className: cn(
755
+ "z-50 w-64 relative rounded-[12px] border border-border-default bg-bg-dropdown p-pad-card-base text-fg-default shadow-sh-lg outline-float outline-none before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 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 origin-[--radix-hover-card-content-transform-origin]",
756
+ className
757
+ ),
758
+ ...props
759
+ }
760
+ ));
761
+ HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
762
+ const InputOTP = React.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx(
763
+ OTPInput,
764
+ {
765
+ ref,
766
+ containerClassName: cn(
767
+ "flex items-center gap-gp-xs has-[:disabled]:opacity-50",
768
+ containerClassName
769
+ ),
770
+ className: cn("disabled:cursor-not-allowed", className),
771
+ ...props
772
+ }
773
+ ));
774
+ InputOTP.displayName = "InputOTP";
775
+ const InputOTPGroup = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center", className), ...props }));
776
+ InputOTPGroup.displayName = "InputOTPGroup";
777
+ const InputOTPSlot = React.forwardRef(({ index, className, ...props }, ref) => {
778
+ const inputOTPContext = React.useContext(OTPInputContext);
779
+ const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
780
+ return /* @__PURE__ */ jsxs(
781
+ "div",
782
+ {
783
+ ref,
784
+ className: cn(
785
+ "relative flex size-form-lg items-center justify-center border-y border-r border-border-default text-body-md text-fg-default transition-all first:rounded-l-radius-md first:border-l last:rounded-r-radius-md",
786
+ isActive && "z-10 ring-4 ring-ring-brand",
787
+ className
788
+ ),
789
+ ...props,
790
+ children: [
791
+ char,
792
+ hasFakeCaret && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "h-4 w-px animate-caret-blink bg-fg-default duration-1000" }) })
793
+ ]
794
+ }
795
+ );
796
+ });
797
+ InputOTPSlot.displayName = "InputOTPSlot";
798
+ const InputOTPSeparator = React.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, role: "separator", className: "text-fg-muted", ...props, children: /* @__PURE__ */ jsx(Dot, {}) }));
799
+ InputOTPSeparator.displayName = "InputOTPSeparator";
800
+ const labelVariants = cva(
801
+ "text-body-sm font-semibold tracking-[0.01em] text-fg-default dark:text-fg-muted leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
802
+ );
803
+ const Label = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
804
+ LabelPrimitive.Root,
805
+ {
806
+ ref,
807
+ className: cn(labelVariants(), className),
808
+ ...props
809
+ }
810
+ ));
811
+ Label.displayName = LabelPrimitive.Root.displayName;
812
+ function MenubarMenu({
813
+ ...props
814
+ }) {
815
+ return /* @__PURE__ */ jsx(MenubarPrimitive.Menu, { ...props });
816
+ }
817
+ function MenubarGroup({
818
+ ...props
819
+ }) {
820
+ return /* @__PURE__ */ jsx(MenubarPrimitive.Group, { ...props });
821
+ }
822
+ function MenubarPortal({
823
+ ...props
824
+ }) {
825
+ return /* @__PURE__ */ jsx(MenubarPrimitive.Portal, { ...props });
826
+ }
827
+ function MenubarRadioGroup({
828
+ ...props
829
+ }) {
830
+ return /* @__PURE__ */ jsx(MenubarPrimitive.RadioGroup, { ...props });
831
+ }
832
+ function MenubarSub({
833
+ ...props
834
+ }) {
835
+ return /* @__PURE__ */ jsx(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
836
+ }
837
+ const Menubar = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
838
+ MenubarPrimitive.Root,
839
+ {
840
+ ref,
841
+ className: cn(
842
+ "flex h-10 items-center space-x-1 rounded-radius-lg border border-border-default bg-bg-surface p-pad-xs",
843
+ className
844
+ ),
845
+ ...props
846
+ }
847
+ ));
848
+ Menubar.displayName = MenubarPrimitive.Root.displayName;
849
+ const MenubarTrigger = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
850
+ MenubarPrimitive.Trigger,
851
+ {
852
+ ref,
853
+ className: cn(
854
+ "flex cursor-default select-none items-center rounded-radius-sm px-pad-lg py-pad-md text-body-sm font-semibold outline-none focus:bg-bg-muted focus:text-fg-default data-[state=open]:bg-bg-muted data-[state=open]:text-fg-default",
855
+ className
856
+ ),
857
+ ...props
858
+ }
859
+ ));
860
+ MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
861
+ const MenubarSubTrigger = React.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
862
+ MenubarPrimitive.SubTrigger,
863
+ {
864
+ ref,
865
+ className: cn(
866
+ "flex cursor-default select-none items-center rounded-radius-sm px-pad-lg py-pad-md text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[state=open]:bg-bg-muted data-[state=open]:text-fg-default",
867
+ inset && "pl-8",
868
+ className
869
+ ),
870
+ ...props,
871
+ children: [
872
+ children,
873
+ /* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
874
+ ]
875
+ }
876
+ ));
877
+ MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
878
+ const MenubarSubContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
879
+ MenubarPrimitive.SubContent,
880
+ {
881
+ ref,
882
+ className: cn(
883
+ "z-50 min-w-[8rem] overflow-hidden relative rounded-[12px] border border-border-default bg-bg-dropdown p-pad-sm text-fg-muted shadow-sh-lg outline-float before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 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 origin-[--radix-menubar-content-transform-origin]",
884
+ className
885
+ ),
886
+ ...props
887
+ }
888
+ ));
889
+ MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
890
+ const MenubarContent = React.forwardRef(
891
+ ({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx(
892
+ MenubarPrimitive.Content,
893
+ {
894
+ ref,
895
+ align,
896
+ alignOffset,
897
+ sideOffset,
898
+ className: cn(
899
+ "z-50 min-w-[12rem] overflow-hidden relative rounded-[12px] border border-border-default bg-bg-dropdown p-pad-sm text-fg-muted shadow-sh-lg outline-float before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 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 origin-[--radix-menubar-content-transform-origin]",
900
+ className
901
+ ),
902
+ ...props
903
+ }
904
+ ) })
905
+ );
906
+ MenubarContent.displayName = MenubarPrimitive.Content.displayName;
907
+ const MenubarItem = React.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
908
+ MenubarPrimitive.Item,
909
+ {
910
+ ref,
911
+ className: cn(
912
+ "relative flex cursor-default select-none items-center rounded-radius-sm px-pad-lg py-pad-md text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
913
+ inset && "pl-8",
914
+ className
915
+ ),
916
+ ...props
917
+ }
918
+ ));
919
+ MenubarItem.displayName = MenubarPrimitive.Item.displayName;
920
+ const MenubarCheckboxItem = React.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
921
+ MenubarPrimitive.CheckboxItem,
922
+ {
923
+ ref,
924
+ className: cn(
925
+ "relative flex cursor-default select-none items-center rounded-radius-sm py-pad-md pl-8 pr-2 text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
926
+ className
927
+ ),
928
+ checked,
929
+ ...props,
930
+ children: [
931
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
932
+ children
933
+ ]
934
+ }
935
+ ));
936
+ MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
937
+ const MenubarRadioItem = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
938
+ MenubarPrimitive.RadioItem,
939
+ {
940
+ ref,
941
+ className: cn(
942
+ "relative flex cursor-default select-none items-center rounded-radius-sm py-pad-md pl-8 pr-2 text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
943
+ className
944
+ ),
945
+ ...props,
946
+ children: [
947
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }),
948
+ children
949
+ ]
950
+ }
951
+ ));
952
+ MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
953
+ const MenubarLabel = React.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
954
+ MenubarPrimitive.Label,
955
+ {
956
+ ref,
957
+ className: cn(
958
+ "px-pad-lg py-pad-md text-sm font-semibold",
959
+ inset && "pl-8",
960
+ className
961
+ ),
962
+ ...props
963
+ }
964
+ ));
965
+ MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
966
+ const MenubarSeparator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
967
+ MenubarPrimitive.Separator,
968
+ {
969
+ ref,
970
+ className: cn("-mx-1 my-1 h-px bg-muted", className),
971
+ ...props
972
+ }
973
+ ));
974
+ MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
975
+ const MenubarShortcut = ({
976
+ className,
977
+ ...props
978
+ }) => {
979
+ return /* @__PURE__ */ jsx(
980
+ "span",
981
+ {
982
+ className: cn(
983
+ "ml-auto text-caption-sm tracking-wider text-fg-subtle",
984
+ className
985
+ ),
986
+ ...props
987
+ }
988
+ );
989
+ };
990
+ MenubarShortcut.displayname = "MenubarShortcut";
991
+ const NavigationMenu = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
992
+ NavigationMenuPrimitive.Root,
993
+ {
994
+ ref,
995
+ className: cn(
996
+ "relative z-10 flex max-w-max flex-1 items-center justify-center",
997
+ className
998
+ ),
999
+ ...props,
1000
+ children: [
1001
+ children,
1002
+ /* @__PURE__ */ jsx(NavigationMenuViewport, {})
1003
+ ]
1004
+ }
1005
+ ));
1006
+ NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
1007
+ const NavigationMenuList = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1008
+ NavigationMenuPrimitive.List,
1009
+ {
1010
+ ref,
1011
+ className: cn(
1012
+ "group flex flex-1 list-none items-center justify-center space-x-1",
1013
+ className
1014
+ ),
1015
+ ...props
1016
+ }
1017
+ ));
1018
+ NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
1019
+ const NavigationMenuItem = NavigationMenuPrimitive.Item;
1020
+ const navigationMenuTriggerStyle = cva(
1021
+ "group inline-flex min-h-form-lg w-max items-center justify-center rounded-radius-md bg-transparent px-pad-lg py-pad-md text-body-sm font-semibold text-fg-muted transition-colors hover:bg-bg-muted hover:text-fg-default focus:bg-bg-muted focus:text-fg-default focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-bg-muted data-[state=open]:text-fg-default"
1022
+ );
1023
+ const NavigationMenuTrigger = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1024
+ NavigationMenuPrimitive.Trigger,
1025
+ {
1026
+ ref,
1027
+ className: cn(navigationMenuTriggerStyle(), "group", className),
1028
+ ...props,
1029
+ children: [
1030
+ children,
1031
+ " ",
1032
+ /* @__PURE__ */ jsx(
1033
+ ChevronDown,
1034
+ {
1035
+ className: "relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180",
1036
+ "aria-hidden": "true"
1037
+ }
1038
+ )
1039
+ ]
1040
+ }
1041
+ ));
1042
+ NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
1043
+ const NavigationMenuContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1044
+ NavigationMenuPrimitive.Content,
1045
+ {
1046
+ ref,
1047
+ className: cn(
1048
+ "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 ",
1049
+ className
1050
+ ),
1051
+ ...props
1052
+ }
1053
+ ));
1054
+ NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
1055
+ const NavigationMenuLink = NavigationMenuPrimitive.Link;
1056
+ const NavigationMenuViewport = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx(
1057
+ NavigationMenuPrimitive.Viewport,
1058
+ {
1059
+ className: cn(
1060
+ "origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden relative rounded-[12px] border border-border-default bg-bg-dropdown text-fg-default shadow-sh-lg outline-float before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 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)]",
1061
+ className
1062
+ ),
1063
+ ref,
1064
+ ...props
1065
+ }
1066
+ ) }));
1067
+ NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
1068
+ const NavigationMenuIndicator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1069
+ NavigationMenuPrimitive.Indicator,
1070
+ {
1071
+ ref,
1072
+ className: cn(
1073
+ "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",
1074
+ className
1075
+ ),
1076
+ ...props,
1077
+ children: /* @__PURE__ */ jsx("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-bg-surface border border-border-default shadow-sh-md" })
1078
+ }
1079
+ ));
1080
+ NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
1081
+ const Progress = React.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx(
1082
+ ProgressPrimitive.Root,
1083
+ {
1084
+ ref,
1085
+ className: cn(
1086
+ "relative flex h-3 w-full items-center overflow-hidden rounded-radius-full",
1087
+ "bg-bg-emphasis dark:bg-bg-accent",
1088
+ className
1089
+ ),
1090
+ ...props,
1091
+ children: /* @__PURE__ */ jsx(
1092
+ ProgressPrimitive.Indicator,
1093
+ {
1094
+ className: "size-full flex-1 bg-bg-brand transition-all",
1095
+ style: { transform: `translateX(-${100 - (value || 0)}%)` }
1096
+ }
1097
+ )
1098
+ }
1099
+ ));
1100
+ Progress.displayName = ProgressPrimitive.Root.displayName;
1101
+ const RadioGroup = React.forwardRef(({ className, ...props }, ref) => {
1102
+ return /* @__PURE__ */ jsx(
1103
+ RadioGroupPrimitive.Root,
1104
+ {
1105
+ className: cn("grid w-full gap-gp-xl", className),
1106
+ ...props,
1107
+ ref
1108
+ }
1109
+ );
1110
+ });
1111
+ RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
1112
+ const RadioGroupItem = React.forwardRef(({ className, ...props }, ref) => {
1113
+ return /* @__PURE__ */ jsx(
1114
+ RadioGroupPrimitive.Item,
1115
+ {
1116
+ ref,
1117
+ className: cn(
1118
+ "peer relative flex aspect-square size-4 shrink-0 cursor-pointer",
1119
+ "rounded-radius-full",
1120
+ "bg-bg-input dark:bg-bg-muted",
1121
+ "border-[1.5px] border-border-input",
1122
+ "transition-[background-color,border-color,box-shadow] outline-none",
1123
+ "hover:border-border-default",
1124
+ "focus-visible:shadow-sh-ring",
1125
+ "disabled:cursor-not-allowed disabled:opacity-50",
1126
+ "data-[state=checked]:bg-bg-brand data-[state=checked]:border-border-brand",
1127
+ className
1128
+ ),
1129
+ ...props,
1130
+ children: /* @__PURE__ */ jsx(RadioGroupPrimitive.Indicator, { className: "flex size-full items-center justify-center", children: /* @__PURE__ */ jsx("span", { className: "size-[6px] rounded-radius-full bg-fg-on-brand" }) })
1131
+ }
1132
+ );
1133
+ });
1134
+ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
1135
+ const ScrollArea = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1136
+ ScrollAreaPrimitive.Root,
1137
+ {
1138
+ ref,
1139
+ className: cn("relative overflow-hidden", className),
1140
+ ...props,
1141
+ children: [
1142
+ /* @__PURE__ */ jsx(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
1143
+ /* @__PURE__ */ jsx(ScrollBar, {}),
1144
+ /* @__PURE__ */ jsx(ScrollAreaPrimitive.Corner, {})
1145
+ ]
1146
+ }
1147
+ ));
1148
+ ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
1149
+ const ScrollBar = React.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx(
1150
+ ScrollAreaPrimitive.ScrollAreaScrollbar,
1151
+ {
1152
+ ref,
1153
+ orientation,
1154
+ className: cn(
1155
+ "flex touch-none select-none transition-colors",
1156
+ orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]",
1157
+ orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]",
1158
+ className
1159
+ ),
1160
+ ...props,
1161
+ children: /* @__PURE__ */ jsx(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border-default" })
1162
+ }
1163
+ ));
1164
+ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
1165
+ const THUMB_CLASS = cn(
1166
+ "block h-4 w-6 shrink-0 rounded-radius-full bg-white",
1167
+ "shadow-sh-md",
1168
+ "transition-[box-shadow] select-none outline-none",
1169
+ "hover:shadow-sh-ring",
1170
+ "focus-visible:shadow-sh-ring",
1171
+ "disabled:pointer-events-none disabled:opacity-50"
1172
+ );
1173
+ const Slider = React.forwardRef(({ className, defaultValue, value, ...props }, ref) => {
1174
+ const thumbCount = (value ?? defaultValue ?? [0]).length;
1175
+ return /* @__PURE__ */ jsxs(
1176
+ SliderPrimitive.Root,
1177
+ {
1178
+ ref,
1179
+ defaultValue,
1180
+ value,
1181
+ className: cn(
1182
+ "relative flex w-full touch-none select-none items-center",
1183
+ className
1184
+ ),
1185
+ ...props,
1186
+ children: [
1187
+ /* @__PURE__ */ jsx(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-radius-full bg-bg-emphasis dark:bg-bg-accent", children: /* @__PURE__ */ jsx(SliderPrimitive.Range, { className: "absolute h-full bg-bg-brand" }) }),
1188
+ Array.from({ length: thumbCount }, (_, i) => /* @__PURE__ */ jsx(SliderPrimitive.Thumb, { className: THUMB_CLASS }, i))
1189
+ ]
1190
+ }
1191
+ );
1192
+ });
1193
+ Slider.displayName = SliderPrimitive.Root.displayName;
1194
+ const TabsVariantContext = React.createContext("segmented");
1195
+ const Tabs = React.forwardRef(({ variant = "segmented", ...props }, ref) => /* @__PURE__ */ jsx(TabsVariantContext.Provider, { value: variant, children: /* @__PURE__ */ jsx(TabsPrimitive.Root, { ref, ...props }) }));
1196
+ Tabs.displayName = "Tabs";
1197
+ const TabsList = React.forwardRef(({ className, ...props }, ref) => {
1198
+ const variant = React.useContext(TabsVariantContext);
1199
+ return /* @__PURE__ */ jsx(
1200
+ TabsPrimitive.List,
1201
+ {
1202
+ ref,
1203
+ className: cn(
1204
+ variant === "line" ? "inline-flex w-fit items-center gap-gp-xl border-b border-border-subtle" : "inline-flex h-form-lg w-fit items-center bg-bg-muted p-[3px] gap-gp-2xs rounded-radius-lg",
1205
+ className
1206
+ ),
1207
+ ...props
1208
+ }
1209
+ );
1210
+ });
1211
+ TabsList.displayName = TabsPrimitive.List.displayName;
1212
+ const TabsTrigger = React.forwardRef(({ className, ...props }, ref) => {
1213
+ const variant = React.useContext(TabsVariantContext);
1214
+ return /* @__PURE__ */ jsx(
1215
+ TabsPrimitive.Trigger,
1216
+ {
1217
+ ref,
1218
+ className: cn(
1219
+ "inline-flex items-center justify-center gap-gp-sm whitespace-nowrap text-body-sm font-medium text-fg-muted transition-colors",
1220
+ "focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary",
1221
+ "hover:text-fg-default",
1222
+ "disabled:pointer-events-none disabled:opacity-50",
1223
+ variant === "line" ? "-mb-px h-[38px] px-[2px] pb-[8px] border-b-2 border-transparent data-[state=active]:border-border-brand data-[state=active]:text-fg-default data-[state=active]:font-semibold" : "h-[34px] px-[14px] rounded-radius-md data-[state=active]:bg-bg-accent data-[state=active]:text-fg-default data-[state=active]:font-semibold data-[state=active]:shadow-sh-sm",
1224
+ className
1225
+ ),
1226
+ ...props
1227
+ }
1228
+ );
1229
+ });
1230
+ TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
1231
+ const TabsContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1232
+ TabsPrimitive.Content,
1233
+ {
1234
+ ref,
1235
+ className: cn(
1236
+ "mt-sp-md flex-1 text-body-md outline-none",
1237
+ className
1238
+ ),
1239
+ ...props
1240
+ }
1241
+ ));
1242
+ TabsContent.displayName = TabsPrimitive.Content.displayName;
1243
+ const toggleVariants = cva(
1244
+ "inline-flex items-center justify-center gap-gp-xs rounded-radius-md border border-transparent text-body-sm font-semibold transition-colors hover:bg-bg-muted hover:text-fg-muted focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-brand disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-bg-brand-subtle data-[state=on]:text-fg-brand [&_svg]:pointer-events-none [&_svg]:size-icon-sm [&_svg]:shrink-0",
1245
+ {
1246
+ variants: {
1247
+ variant: {
1248
+ default: "bg-transparent",
1249
+ outline: "border-border-default bg-transparent hover:bg-bg-muted hover:text-fg-default"
1250
+ },
1251
+ size: {
1252
+ default: "min-h-form-lg px-pad-lg min-w-form-lg",
1253
+ sm: "min-h-form-md px-pad-md min-w-form-md",
1254
+ lg: "min-h-form-xl px-pad-xl min-w-form-xl"
1255
+ }
1256
+ },
1257
+ defaultVariants: {
1258
+ variant: "default",
1259
+ size: "default"
1260
+ }
1261
+ }
1262
+ );
1263
+ const Toggle = React.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx(
1264
+ TogglePrimitive.Root,
1265
+ {
1266
+ ref,
1267
+ className: cn(toggleVariants({ variant, size, className })),
1268
+ ...props
1269
+ }
1270
+ ));
1271
+ Toggle.displayName = TogglePrimitive.Root.displayName;
1272
+ const ToggleGroupContext = React.createContext({
1273
+ size: "default",
1274
+ variant: "default"
1275
+ });
1276
+ const ToggleGroup = React.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx(
1277
+ ToggleGroupPrimitive.Root,
1278
+ {
1279
+ ref,
1280
+ className: cn("flex items-center justify-center gap-gp-xs", className),
1281
+ ...props,
1282
+ children: /* @__PURE__ */ jsx(ToggleGroupContext.Provider, { value: { variant, size }, children })
1283
+ }
1284
+ ));
1285
+ ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
1286
+ const ToggleGroupItem = React.forwardRef(({ className, children, variant, size, ...props }, ref) => {
1287
+ const context = React.useContext(ToggleGroupContext);
1288
+ return /* @__PURE__ */ jsx(
1289
+ ToggleGroupPrimitive.Item,
1290
+ {
1291
+ ref,
1292
+ className: cn(
1293
+ toggleVariants({
1294
+ variant: context.variant || variant,
1295
+ size: context.size || size
1296
+ }),
1297
+ className
1298
+ ),
1299
+ ...props,
1300
+ children
1301
+ }
1302
+ );
1303
+ });
1304
+ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
1305
+ const TooltipProvider = TooltipPrimitive.Provider;
1306
+ const TooltipTrigger = TooltipPrimitive.Trigger;
1307
+ const Tooltip = ({ children, ...props }) => /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, { ...props, children }) });
1308
+ Tooltip.displayName = "Tooltip";
1309
+ const TooltipContent = React.forwardRef(({ className, sideOffset = 6, showArrow = true, children, ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
1310
+ TooltipPrimitive.Content,
1311
+ {
1312
+ ref,
1313
+ sideOffset,
1314
+ className: cn(
1315
+ "z-50 max-w-[16rem] select-none",
1316
+ "bg-bg-emphasis text-fg-default",
1317
+ "rounded-radius-md px-pad-lg py-pad-xs",
1318
+ "text-caption-sm",
1319
+ "shadow-sh-md",
1320
+ "origin-[--radix-tooltip-content-transform-origin]",
1321
+ "data-[state=delayed-open]:animate-in data-[state=instant-open]:animate-in data-[state=closed]:animate-out",
1322
+ "data-[state=closed]:fade-out-0 data-[state=delayed-open]:fade-in-0 data-[state=instant-open]:fade-in-0",
1323
+ "data-[state=closed]:zoom-out-95 data-[state=delayed-open]:zoom-in-95 data-[state=instant-open]:zoom-in-95",
1324
+ "data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
1325
+ "data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
1326
+ className
1327
+ ),
1328
+ ...props,
1329
+ children: [
1330
+ children,
1331
+ showArrow && /* @__PURE__ */ jsx(
1332
+ TooltipPrimitive.Arrow,
1333
+ {
1334
+ width: 11,
1335
+ height: 5,
1336
+ className: "fill-bg-emphasis"
1337
+ }
1338
+ )
1339
+ ]
1340
+ }
1341
+ ) }));
1342
+ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
1343
+ export {
1344
+ DrawerTrigger as $,
1345
+ Accordion as A,
1346
+ Badge as B,
1347
+ Card as C,
1348
+ ContextMenu as D,
1349
+ ContextMenuCheckboxItem as E,
1350
+ ContextMenuContent as F,
1351
+ ContextMenuGroup as G,
1352
+ ContextMenuItem as H,
1353
+ ContextMenuLabel as I,
1354
+ ContextMenuPortal as J,
1355
+ ContextMenuRadioGroup as K,
1356
+ ContextMenuRadioItem as L,
1357
+ ContextMenuSeparator as M,
1358
+ ContextMenuShortcut as N,
1359
+ ContextMenuSub as O,
1360
+ ContextMenuSubContent as P,
1361
+ ContextMenuSubTrigger as Q,
1362
+ ContextMenuTrigger as R,
1363
+ Drawer as S,
1364
+ DrawerClose as T,
1365
+ DrawerContent as U,
1366
+ DrawerDescription as V,
1367
+ DrawerFooter as W,
1368
+ DrawerHeader as X,
1369
+ DrawerOverlay as Y,
1370
+ DrawerPortal as Z,
1371
+ DrawerTitle as _,
1372
+ AccordionContent as a,
1373
+ HoverCard as a0,
1374
+ HoverCardContent as a1,
1375
+ HoverCardTrigger as a2,
1376
+ InputOTP as a3,
1377
+ InputOTPGroup as a4,
1378
+ InputOTPSeparator as a5,
1379
+ InputOTPSlot as a6,
1380
+ Label as a7,
1381
+ Menubar as a8,
1382
+ MenubarCheckboxItem as a9,
1383
+ ScrollBar as aA,
1384
+ Separator as aB,
1385
+ Slider as aC,
1386
+ Tabs as aD,
1387
+ TabsContent as aE,
1388
+ TabsList as aF,
1389
+ TabsTrigger as aG,
1390
+ Toggle as aH,
1391
+ ToggleGroup as aI,
1392
+ ToggleGroupItem as aJ,
1393
+ Tooltip as aK,
1394
+ TooltipContent as aL,
1395
+ TooltipProvider as aM,
1396
+ TooltipTrigger as aN,
1397
+ badgeVariants as aO,
1398
+ navigationMenuTriggerStyle as aP,
1399
+ toggleVariants as aQ,
1400
+ MenubarContent as aa,
1401
+ MenubarGroup as ab,
1402
+ MenubarItem as ac,
1403
+ MenubarLabel as ad,
1404
+ MenubarMenu as ae,
1405
+ MenubarPortal as af,
1406
+ MenubarRadioGroup as ag,
1407
+ MenubarRadioItem as ah,
1408
+ MenubarSeparator as ai,
1409
+ MenubarShortcut as aj,
1410
+ MenubarSub as ak,
1411
+ MenubarSubContent as al,
1412
+ MenubarSubTrigger as am,
1413
+ MenubarTrigger as an,
1414
+ NavigationMenu as ao,
1415
+ NavigationMenuContent as ap,
1416
+ NavigationMenuIndicator as aq,
1417
+ NavigationMenuItem as ar,
1418
+ NavigationMenuLink as as,
1419
+ NavigationMenuList as at,
1420
+ NavigationMenuTrigger as au,
1421
+ NavigationMenuViewport as av,
1422
+ Progress as aw,
1423
+ RadioGroup as ax,
1424
+ RadioGroupItem as ay,
1425
+ ScrollArea as az,
1426
+ AccordionItem as b,
1427
+ AccordionTrigger as c,
1428
+ Alert as d,
1429
+ AlertDescription as e,
1430
+ AlertTitle as f,
1431
+ Breadcrumb as g,
1432
+ BreadcrumbEllipsis as h,
1433
+ BreadcrumbItem as i,
1434
+ BreadcrumbLink as j,
1435
+ BreadcrumbList as k,
1436
+ BreadcrumbPage as l,
1437
+ BreadcrumbSeparator as m,
1438
+ CardContent as n,
1439
+ CardDescription as o,
1440
+ CardFooter as p,
1441
+ CardHeader as q,
1442
+ CardTitle as r,
1443
+ Carousel as s,
1444
+ CarouselContent as t,
1445
+ CarouselItem as u,
1446
+ CarouselNext as v,
1447
+ CarouselPrevious as w,
1448
+ Collapsible as x,
1449
+ CollapsibleContent as y,
1450
+ CollapsibleTrigger as z
1451
+ };
1452
+ //# sourceMappingURL=tooltip-DGI3hDFM.mjs.map