@prototyperco/ui 0.5.0-alpha.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/accordion.cjs +154 -0
- package/dist/components/accordion.cjs.map +1 -0
- package/dist/components/accordion.d.cts +14 -0
- package/dist/components/accordion.d.ts +14 -0
- package/dist/components/accordion.js +127 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert-dialog.cjs +324 -0
- package/dist/components/alert-dialog.cjs.map +1 -0
- package/dist/components/alert-dialog.d.cts +30 -0
- package/dist/components/alert-dialog.d.ts +30 -0
- package/dist/components/alert-dialog.js +289 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/alert.cjs +105 -0
- package/dist/components/alert.cjs.map +1 -0
- package/dist/components/alert.d.cts +17 -0
- package/dist/components/alert.d.ts +17 -0
- package/dist/components/alert.js +78 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/autocomplete.cjs +512 -0
- package/dist/components/autocomplete.cjs.map +1 -0
- package/dist/components/autocomplete.d.cts +31 -0
- package/dist/components/autocomplete.d.ts +31 -0
- package/dist/components/autocomplete.js +472 -0
- package/dist/components/autocomplete.js.map +1 -0
- package/dist/components/avatar.cjs +144 -0
- package/dist/components/avatar.cjs.map +1 -0
- package/dist/components/avatar.d.cts +18 -0
- package/dist/components/avatar.d.ts +18 -0
- package/dist/components/avatar.js +115 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.cjs +81 -0
- package/dist/components/badge.cjs.map +1 -0
- package/dist/components/badge.d.cts +13 -0
- package/dist/components/badge.d.ts +13 -0
- package/dist/components/badge.js +56 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/breadcrumb.cjs +142 -0
- package/dist/components/breadcrumb.cjs.map +1 -0
- package/dist/components/breadcrumb.d.cts +20 -0
- package/dist/components/breadcrumb.d.ts +20 -0
- package/dist/components/breadcrumb.js +112 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/button.cjs +145 -0
- package/dist/components/button.cjs.map +1 -0
- package/dist/components/button.d.cts +16 -0
- package/dist/components/button.d.ts +16 -0
- package/dist/components/button.js +120 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/card.cjs +141 -0
- package/dist/components/card.cjs.map +1 -0
- package/dist/components/card.d.cts +23 -0
- package/dist/components/card.d.ts +23 -0
- package/dist/components/card.js +111 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/checkbox-group.cjs +56 -0
- package/dist/components/checkbox-group.cjs.map +1 -0
- package/dist/components/checkbox-group.d.cts +8 -0
- package/dist/components/checkbox-group.d.ts +8 -0
- package/dist/components/checkbox-group.js +32 -0
- package/dist/components/checkbox-group.js.map +1 -0
- package/dist/components/checkbox.cjs +152 -0
- package/dist/components/checkbox.cjs.map +1 -0
- package/dist/components/checkbox.d.cts +12 -0
- package/dist/components/checkbox.d.ts +12 -0
- package/dist/components/checkbox.js +126 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/collapsible.cjs +89 -0
- package/dist/components/collapsible.cjs.map +1 -0
- package/dist/components/collapsible.d.cts +12 -0
- package/dist/components/collapsible.d.ts +12 -0
- package/dist/components/collapsible.js +63 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/color-picker.cjs +983 -0
- package/dist/components/color-picker.cjs.map +1 -0
- package/dist/components/color-picker.d.cts +41 -0
- package/dist/components/color-picker.d.ts +41 -0
- package/dist/components/color-picker.js +939 -0
- package/dist/components/color-picker.js.map +1 -0
- package/dist/components/columns.cjs +163 -0
- package/dist/components/columns.cjs.map +1 -0
- package/dist/components/columns.d.cts +16 -0
- package/dist/components/columns.d.ts +16 -0
- package/dist/components/columns.js +136 -0
- package/dist/components/columns.js.map +1 -0
- package/dist/components/combobox.cjs +633 -0
- package/dist/components/combobox.cjs.map +1 -0
- package/dist/components/combobox.d.cts +40 -0
- package/dist/components/combobox.d.ts +40 -0
- package/dist/components/combobox.js +576 -0
- package/dist/components/combobox.js.map +1 -0
- package/dist/components/command-palette.cjs +370 -0
- package/dist/components/command-palette.cjs.map +1 -0
- package/dist/components/command-palette.d.cts +42 -0
- package/dist/components/command-palette.d.ts +42 -0
- package/dist/components/command-palette.js +329 -0
- package/dist/components/command-palette.js.map +1 -0
- package/dist/components/container.cjs +80 -0
- package/dist/components/container.cjs.map +1 -0
- package/dist/components/container.d.cts +27 -0
- package/dist/components/container.d.ts +27 -0
- package/dist/components/container.js +54 -0
- package/dist/components/container.js.map +1 -0
- package/dist/components/context-menu.cjs +309 -0
- package/dist/components/context-menu.cjs.map +1 -0
- package/dist/components/context-menu.d.cts +37 -0
- package/dist/components/context-menu.d.ts +37 -0
- package/dist/components/context-menu.js +271 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/dialog.cjs +319 -0
- package/dist/components/dialog.cjs.map +1 -0
- package/dist/components/dialog.d.cts +32 -0
- package/dist/components/dialog.d.ts +32 -0
- package/dist/components/dialog.js +285 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/drawer.cjs +185 -0
- package/dist/components/drawer.cjs.map +1 -0
- package/dist/components/drawer.d.cts +32 -0
- package/dist/components/drawer.d.ts +32 -0
- package/dist/components/drawer.js +151 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/field.cjs +334 -0
- package/dist/components/field.cjs.map +1 -0
- package/dist/components/field.d.cts +39 -0
- package/dist/components/field.d.ts +39 -0
- package/dist/components/field.js +299 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/fieldset.cjs +75 -0
- package/dist/components/fieldset.cjs.map +1 -0
- package/dist/components/fieldset.d.cts +12 -0
- package/dist/components/fieldset.d.ts +12 -0
- package/dist/components/fieldset.js +50 -0
- package/dist/components/fieldset.js.map +1 -0
- package/dist/components/form.cjs +52 -0
- package/dist/components/form.cjs.map +1 -0
- package/dist/components/form.d.cts +8 -0
- package/dist/components/form.d.ts +8 -0
- package/dist/components/form.js +28 -0
- package/dist/components/form.js.map +1 -0
- package/dist/components/input-group.cjs +338 -0
- package/dist/components/input-group.cjs.map +1 -0
- package/dist/components/input-group.d.cts +27 -0
- package/dist/components/input-group.d.ts +27 -0
- package/dist/components/input-group.js +307 -0
- package/dist/components/input-group.js.map +1 -0
- package/dist/components/input.cjs +63 -0
- package/dist/components/input.cjs.map +1 -0
- package/dist/components/input.d.cts +8 -0
- package/dist/components/input.d.ts +8 -0
- package/dist/components/input.js +39 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.cjs +54 -0
- package/dist/components/label.cjs.map +1 -0
- package/dist/components/label.d.cts +8 -0
- package/dist/components/label.d.ts +8 -0
- package/dist/components/label.js +28 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/menu.cjs +305 -0
- package/dist/components/menu.cjs.map +1 -0
- package/dist/components/menu.d.cts +37 -0
- package/dist/components/menu.d.ts +37 -0
- package/dist/components/menu.js +267 -0
- package/dist/components/menu.js.map +1 -0
- package/dist/components/menubar.cjs +503 -0
- package/dist/components/menubar.cjs.map +1 -0
- package/dist/components/menubar.d.cts +37 -0
- package/dist/components/menubar.d.ts +37 -0
- package/dist/components/menubar.js +464 -0
- package/dist/components/menubar.js.map +1 -0
- package/dist/components/meter.cjs +152 -0
- package/dist/components/meter.cjs.map +1 -0
- package/dist/components/meter.d.cts +23 -0
- package/dist/components/meter.d.ts +23 -0
- package/dist/components/meter.js +122 -0
- package/dist/components/meter.js.map +1 -0
- package/dist/components/navigation-menu.cjs +315 -0
- package/dist/components/navigation-menu.cjs.map +1 -0
- package/dist/components/navigation-menu.d.cts +22 -0
- package/dist/components/navigation-menu.d.ts +22 -0
- package/dist/components/navigation-menu.js +283 -0
- package/dist/components/navigation-menu.js.map +1 -0
- package/dist/components/number-field.cjs +217 -0
- package/dist/components/number-field.cjs.map +1 -0
- package/dist/components/number-field.d.cts +23 -0
- package/dist/components/number-field.d.ts +23 -0
- package/dist/components/number-field.js +185 -0
- package/dist/components/number-field.js.map +1 -0
- package/dist/components/popover.cjs +125 -0
- package/dist/components/popover.cjs.map +1 -0
- package/dist/components/popover.d.cts +16 -0
- package/dist/components/popover.d.ts +16 -0
- package/dist/components/popover.js +96 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/preview-card.cjs +86 -0
- package/dist/components/preview-card.cjs.map +1 -0
- package/dist/components/preview-card.d.cts +12 -0
- package/dist/components/preview-card.d.ts +12 -0
- package/dist/components/preview-card.js +60 -0
- package/dist/components/preview-card.js.map +1 -0
- package/dist/components/progress.cjs +167 -0
- package/dist/components/progress.cjs.map +1 -0
- package/dist/components/progress.d.cts +23 -0
- package/dist/components/progress.d.ts +23 -0
- package/dist/components/progress.js +137 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/radio-group.cjs +98 -0
- package/dist/components/radio-group.cjs.map +1 -0
- package/dist/components/radio-group.d.cts +11 -0
- package/dist/components/radio-group.d.ts +11 -0
- package/dist/components/radio-group.js +73 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/resizable-panel.cjs +91 -0
- package/dist/components/resizable-panel.cjs.map +1 -0
- package/dist/components/resizable-panel.d.cts +14 -0
- package/dist/components/resizable-panel.d.ts +14 -0
- package/dist/components/resizable-panel.js +69 -0
- package/dist/components/resizable-panel.js.map +1 -0
- package/dist/components/row.cjs +94 -0
- package/dist/components/row.cjs.map +1 -0
- package/dist/components/row.d.cts +27 -0
- package/dist/components/row.d.ts +27 -0
- package/dist/components/row.js +68 -0
- package/dist/components/row.js.map +1 -0
- package/dist/components/scroll-area.cjs +96 -0
- package/dist/components/scroll-area.cjs.map +1 -0
- package/dist/components/scroll-area.d.cts +10 -0
- package/dist/components/scroll-area.d.ts +10 -0
- package/dist/components/scroll-area.js +71 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/section.cjs +104 -0
- package/dist/components/section.cjs.map +1 -0
- package/dist/components/section.d.cts +26 -0
- package/dist/components/section.d.ts +26 -0
- package/dist/components/section.js +79 -0
- package/dist/components/section.js.map +1 -0
- package/dist/components/segmented-control.cjs +117 -0
- package/dist/components/segmented-control.cjs.map +1 -0
- package/dist/components/segmented-control.d.cts +16 -0
- package/dist/components/segmented-control.d.ts +16 -0
- package/dist/components/segmented-control.js +91 -0
- package/dist/components/segmented-control.js.map +1 -0
- package/dist/components/select.cjs +273 -0
- package/dist/components/select.cjs.map +1 -0
- package/dist/components/select.d.cts +26 -0
- package/dist/components/select.d.ts +26 -0
- package/dist/components/select.js +239 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.cjs +60 -0
- package/dist/components/separator.cjs.map +1 -0
- package/dist/components/separator.d.cts +8 -0
- package/dist/components/separator.d.ts +8 -0
- package/dist/components/separator.js +36 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/skeleton.cjs +54 -0
- package/dist/components/skeleton.cjs.map +1 -0
- package/dist/components/skeleton.d.cts +8 -0
- package/dist/components/skeleton.d.ts +8 -0
- package/dist/components/skeleton.js +28 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.cjs +221 -0
- package/dist/components/slider.cjs.map +1 -0
- package/dist/components/slider.d.cts +16 -0
- package/dist/components/slider.d.ts +16 -0
- package/dist/components/slider.js +182 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/spinner.cjs +97 -0
- package/dist/components/spinner.cjs.map +1 -0
- package/dist/components/spinner.d.cts +13 -0
- package/dist/components/spinner.d.ts +13 -0
- package/dist/components/spinner.js +72 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/switch.cjs +177 -0
- package/dist/components/switch.cjs.map +1 -0
- package/dist/components/switch.d.cts +22 -0
- package/dist/components/switch.d.ts +22 -0
- package/dist/components/switch.js +139 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/tabs.cjs +123 -0
- package/dist/components/tabs.cjs.map +1 -0
- package/dist/components/tabs.d.cts +19 -0
- package/dist/components/tabs.d.ts +19 -0
- package/dist/components/tabs.js +95 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/text-field.cjs +290 -0
- package/dist/components/text-field.cjs.map +1 -0
- package/dist/components/text-field.d.cts +27 -0
- package/dist/components/text-field.d.ts +27 -0
- package/dist/components/text-field.js +262 -0
- package/dist/components/text-field.js.map +1 -0
- package/dist/components/textarea.cjs +60 -0
- package/dist/components/textarea.cjs.map +1 -0
- package/dist/components/textarea.d.cts +8 -0
- package/dist/components/textarea.d.ts +8 -0
- package/dist/components/textarea.js +34 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/toast.cjs +167 -0
- package/dist/components/toast.cjs.map +1 -0
- package/dist/components/toast.d.cts +28 -0
- package/dist/components/toast.d.ts +28 -0
- package/dist/components/toast.js +147 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/toggle-group.cjs +171 -0
- package/dist/components/toggle-group.cjs.map +1 -0
- package/dist/components/toggle-group.d.cts +18 -0
- package/dist/components/toggle-group.d.ts +18 -0
- package/dist/components/toggle-group.js +136 -0
- package/dist/components/toggle-group.js.map +1 -0
- package/dist/components/toggle.cjs +92 -0
- package/dist/components/toggle.cjs.map +1 -0
- package/dist/components/toggle.d.cts +14 -0
- package/dist/components/toggle.d.ts +14 -0
- package/dist/components/toggle.js +67 -0
- package/dist/components/toggle.js.map +1 -0
- package/dist/components/toolbar.cjs +160 -0
- package/dist/components/toolbar.cjs.map +1 -0
- package/dist/components/toolbar.d.cts +14 -0
- package/dist/components/toolbar.d.ts +14 -0
- package/dist/components/toolbar.js +131 -0
- package/dist/components/toolbar.js.map +1 -0
- package/dist/components/tooltip.cjs +116 -0
- package/dist/components/tooltip.cjs.map +1 -0
- package/dist/components/tooltip.d.cts +13 -0
- package/dist/components/tooltip.d.ts +13 -0
- package/dist/components/tooltip.js +89 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/tree-view.cjs +472 -0
- package/dist/components/tree-view.cjs.map +1 -0
- package/dist/components/tree-view.d.cts +33 -0
- package/dist/components/tree-view.d.ts +33 -0
- package/dist/components/tree-view.js +435 -0
- package/dist/components/tree-view.js.map +1 -0
- package/dist/index.cjs +11 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +101 -903
- package/dist/index.d.ts +101 -903
- package/dist/index.js +4 -6
- package/dist/index.js.map +1 -1
- package/dist/lib/color-utils.cjs +315 -0
- package/dist/lib/color-utils.cjs.map +1 -0
- package/dist/lib/color-utils.d.cts +24 -0
- package/dist/lib/color-utils.d.ts +24 -0
- package/dist/lib/color-utils.js +280 -0
- package/dist/lib/color-utils.js.map +1 -0
- package/dist/lib/utils.cjs +35 -0
- package/dist/lib/utils.cjs.map +1 -0
- package/dist/lib/utils.d.cts +5 -0
- package/dist/lib/utils.d.ts +5 -0
- package/dist/lib/utils.js +10 -0
- package/dist/lib/utils.js.map +1 -0
- package/package.json +24 -5
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/components/alert.tsx
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
|
+
|
|
6
|
+
// src/lib/utils.ts
|
|
7
|
+
import { clsx } from "clsx";
|
|
8
|
+
import { twMerge } from "tailwind-merge";
|
|
9
|
+
function cn(...inputs) {
|
|
10
|
+
return twMerge(clsx(inputs));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// src/components/alert.tsx
|
|
14
|
+
import { jsx } from "react/jsx-runtime";
|
|
15
|
+
var alertVariants = cva(
|
|
16
|
+
[
|
|
17
|
+
"relative flex w-full gap-3 rounded-lg border p-4 text-sm",
|
|
18
|
+
"[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:translate-y-0.5"
|
|
19
|
+
],
|
|
20
|
+
{
|
|
21
|
+
variants: {
|
|
22
|
+
variant: {
|
|
23
|
+
default: "bg-background text-foreground border-border",
|
|
24
|
+
destructive: "bg-destructive/5 text-destructive border-destructive/20 [&>svg]:text-destructive",
|
|
25
|
+
success: "bg-success/5 text-success border-success/20 [&>svg]:text-success",
|
|
26
|
+
warning: "bg-warning/5 text-warning border-warning/20 [&>svg]:text-warning"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
defaultVariants: {
|
|
30
|
+
variant: "default"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
function Alert({
|
|
35
|
+
className,
|
|
36
|
+
variant,
|
|
37
|
+
...props
|
|
38
|
+
}) {
|
|
39
|
+
return /* @__PURE__ */ jsx(
|
|
40
|
+
"div",
|
|
41
|
+
{
|
|
42
|
+
"data-slot": "alert",
|
|
43
|
+
role: "alert",
|
|
44
|
+
className: cn(alertVariants({ variant }), className),
|
|
45
|
+
...props
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
function AlertTitle({ className, ...props }) {
|
|
50
|
+
return /* @__PURE__ */ jsx(
|
|
51
|
+
"h5",
|
|
52
|
+
{
|
|
53
|
+
"data-slot": "alert-title",
|
|
54
|
+
className: cn("font-medium leading-none tracking-tight", className),
|
|
55
|
+
...props
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
function AlertDescription({
|
|
60
|
+
className,
|
|
61
|
+
...props
|
|
62
|
+
}) {
|
|
63
|
+
return /* @__PURE__ */ jsx(
|
|
64
|
+
"div",
|
|
65
|
+
{
|
|
66
|
+
"data-slot": "alert-description",
|
|
67
|
+
className: cn("text-sm [&_p]:leading-relaxed", className),
|
|
68
|
+
...props
|
|
69
|
+
}
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
export {
|
|
73
|
+
Alert,
|
|
74
|
+
AlertDescription,
|
|
75
|
+
AlertTitle,
|
|
76
|
+
alertVariants
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=alert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/alert.tsx","../../src/lib/utils.ts"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst alertVariants = cva(\n [\n \"relative flex w-full gap-3 rounded-lg border p-4 text-sm\",\n \"[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:translate-y-0.5\",\n ],\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground border-border\",\n destructive:\n \"bg-destructive/5 text-destructive border-destructive/20 [&>svg]:text-destructive\",\n success:\n \"bg-success/5 text-success border-success/20 [&>svg]:text-success\",\n warning:\n \"bg-warning/5 text-warning border-warning/20 [&>svg]:text-warning\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"h5\">) {\n return (\n <h5\n data-slot=\"alert-title\"\n className={cn(\"font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertTitle, AlertDescription, alertVariants };\n\nexport type AlertProps = React.ComponentProps<typeof Alert>;\nexport type AlertTitleProps = React.ComponentProps<typeof AlertTitle>;\nexport type AlertDescriptionProps = React.ComponentProps<\n typeof AlertDescription\n>;\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";;;AAGA,SAAS,WAA8B;;;ACHvC,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;AD+BI;AA7BJ,IAAM,gBAAgB;AAAA,EACpB;AAAA,IACE;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aACE;AAAA,QACF,SACE;AAAA,QACF,SACE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEA,SAAS,MAAM;AAAA,EACb;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAqE;AACnE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,MAAK;AAAA,MACL,WAAW,GAAG,cAAc,EAAE,QAAQ,CAAC,GAAG,SAAS;AAAA,MAClD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAA+B;AACvE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,2CAA2C,SAAS;AAAA,MACjE,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA,GAAG;AACL,GAAgC;AAC9B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,iCAAiC,SAAS;AAAA,MACvD,GAAG;AAAA;AAAA,EACN;AAEJ;","names":[]}
|
|
@@ -0,0 +1,512 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
|
|
21
|
+
// src/components/autocomplete.tsx
|
|
22
|
+
var autocomplete_exports = {};
|
|
23
|
+
__export(autocomplete_exports, {
|
|
24
|
+
Autocomplete: () => Autocomplete,
|
|
25
|
+
AutocompleteArrow: () => AutocompleteArrow,
|
|
26
|
+
AutocompleteBackdrop: () => AutocompleteBackdrop,
|
|
27
|
+
AutocompleteCollection: () => AutocompleteCollection,
|
|
28
|
+
AutocompleteContent: () => AutocompleteContent,
|
|
29
|
+
AutocompleteEmpty: () => AutocompleteEmpty,
|
|
30
|
+
AutocompleteGroup: () => AutocompleteGroup,
|
|
31
|
+
AutocompleteGroupLabel: () => AutocompleteGroupLabel,
|
|
32
|
+
AutocompleteIcon: () => AutocompleteIcon,
|
|
33
|
+
AutocompleteInput: () => AutocompleteInput,
|
|
34
|
+
AutocompleteItem: () => AutocompleteItem,
|
|
35
|
+
AutocompleteList: () => AutocompleteList,
|
|
36
|
+
AutocompleteSeparator: () => AutocompleteSeparator,
|
|
37
|
+
AutocompleteStatus: () => AutocompleteStatus,
|
|
38
|
+
AutocompleteTrigger: () => AutocompleteTrigger,
|
|
39
|
+
AutocompleteValue: () => AutocompleteValue,
|
|
40
|
+
useAutocompleteFilter: () => useAutocompleteFilter
|
|
41
|
+
});
|
|
42
|
+
module.exports = __toCommonJS(autocomplete_exports);
|
|
43
|
+
var import_autocomplete = require("@base-ui/react/autocomplete");
|
|
44
|
+
var import_lucide_react = require("lucide-react");
|
|
45
|
+
|
|
46
|
+
// src/lib/utils.ts
|
|
47
|
+
var import_clsx = require("clsx");
|
|
48
|
+
var import_tailwind_merge = require("tailwind-merge");
|
|
49
|
+
function cn(...inputs) {
|
|
50
|
+
return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// src/components/input-group.tsx
|
|
54
|
+
var import_class_variance_authority2 = require("class-variance-authority");
|
|
55
|
+
|
|
56
|
+
// src/components/button.tsx
|
|
57
|
+
var import_button = require("@base-ui/react/button");
|
|
58
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
59
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
60
|
+
var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
61
|
+
[
|
|
62
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium",
|
|
63
|
+
"transform-gpu transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-150 ease-smooth",
|
|
64
|
+
"motion-reduce:transition-none",
|
|
65
|
+
"disabled:status-disabled",
|
|
66
|
+
"focus-visible:focus-ring",
|
|
67
|
+
"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
68
|
+
"shrink-0 group/button select-none no-highlight"
|
|
69
|
+
],
|
|
70
|
+
{
|
|
71
|
+
variants: {
|
|
72
|
+
variant: {
|
|
73
|
+
default: [
|
|
74
|
+
// Base styles
|
|
75
|
+
"relative rounded-lg overflow-visible shadow-surface border border-primary dark:border-primary-dark",
|
|
76
|
+
"isolate text-primary-foreground [text-shadow:_0_1px_2px_oklch(0%_0_0_/_30%)]",
|
|
77
|
+
"[&>*]:relative [&>*]:z-[2]",
|
|
78
|
+
// Combined gradient layer with primary colors
|
|
79
|
+
"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]",
|
|
80
|
+
"before:bg-gradient-to-br before:from-primary-light before:via-primary-middle before:to-primary-dark",
|
|
81
|
+
"before:dark:from-primary-light before:dark:via-primary-middle before:dark:to-primary-dark",
|
|
82
|
+
"before:z-[-1]",
|
|
83
|
+
// Additional outer border
|
|
84
|
+
"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]",
|
|
85
|
+
"after:bg-gradient-to-br after:from-primary after:to-primary-dark",
|
|
86
|
+
"after:z-[-1] after:transition-opacity after:duration-200 after:opacity-40 after:motion-reduce:transition-none",
|
|
87
|
+
// Hover state
|
|
88
|
+
"hover-only:after:opacity-100 hover-only:transition-opacity hover-only:duration-200"
|
|
89
|
+
].join(" "),
|
|
90
|
+
destructive: "bg-destructive text-destructive-foreground hover-only:hover:bg-destructive-hover",
|
|
91
|
+
outline: [
|
|
92
|
+
// Base styles
|
|
93
|
+
"relative rounded-lg overflow-visible shadow-field border",
|
|
94
|
+
"isolate text-foreground",
|
|
95
|
+
"[&>*]:relative [&>*]:z-[2]",
|
|
96
|
+
// Background layer
|
|
97
|
+
"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]",
|
|
98
|
+
"before:bg-gradient-to-br before:from-border-light before:via-border before:to-border-dark/50",
|
|
99
|
+
"before:dark:from-border-light before:dark:to-border-dark",
|
|
100
|
+
"before:z-[-1]",
|
|
101
|
+
// Inner background layer
|
|
102
|
+
"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]",
|
|
103
|
+
"after:bg-background",
|
|
104
|
+
"after:z-[-1]",
|
|
105
|
+
"after:transition-colors after:duration-200 after:ease-out after:motion-reduce:transition-none",
|
|
106
|
+
// Hover state
|
|
107
|
+
"hover-only:after:bg-muted"
|
|
108
|
+
].join(" "),
|
|
109
|
+
secondary: "bg-secondary text-secondary-foreground hover-only:hover:bg-accent",
|
|
110
|
+
ghost: "hover-only:bg-accent hover-only:text-accent-foreground motion-safe:active:scale-100",
|
|
111
|
+
"primary-soft": "bg-primary-soft text-primary hover-only:hover:bg-primary-soft-hover",
|
|
112
|
+
"destructive-soft": "bg-destructive-soft text-destructive hover-only:hover:bg-destructive-soft-hover",
|
|
113
|
+
success: "bg-success text-success-foreground hover-only:hover:bg-success-hover",
|
|
114
|
+
warning: "bg-warning text-warning-foreground hover-only:hover:bg-warning-hover",
|
|
115
|
+
link: "dark:text-primary-light text-primary-dark underline-offset-4 hover-only:underline motion-safe:active:scale-100"
|
|
116
|
+
},
|
|
117
|
+
size: {
|
|
118
|
+
default: "h-9 gap-2 px-4 py-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 motion-safe:active:scale-[0.97]",
|
|
119
|
+
xs: "h-6 gap-1 rounded-lg px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3 motion-safe:active:scale-[0.985]",
|
|
120
|
+
sm: "h-8 gap-1.5 rounded-lg px-3 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 motion-safe:active:scale-[0.98]",
|
|
121
|
+
lg: "h-10 gap-2 rounded-lg px-8 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 motion-safe:active:scale-[0.96]",
|
|
122
|
+
icon: "size-9 motion-safe:active:scale-[0.97]",
|
|
123
|
+
"icon-xs": "size-6 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.985]",
|
|
124
|
+
"icon-sm": "size-8 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.98]",
|
|
125
|
+
"icon-lg": "size-10 motion-safe:active:scale-[0.96]"
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
defaultVariants: {
|
|
129
|
+
variant: "default",
|
|
130
|
+
size: "default"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
);
|
|
134
|
+
function Button({
|
|
135
|
+
className,
|
|
136
|
+
variant = "default",
|
|
137
|
+
size = "default",
|
|
138
|
+
isPending,
|
|
139
|
+
nativeButton,
|
|
140
|
+
render,
|
|
141
|
+
...props
|
|
142
|
+
}) {
|
|
143
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
144
|
+
import_button.Button,
|
|
145
|
+
{
|
|
146
|
+
"data-slot": "button",
|
|
147
|
+
"data-pending": isPending || void 0,
|
|
148
|
+
"aria-disabled": isPending || void 0,
|
|
149
|
+
nativeButton: nativeButton ?? (render ? false : void 0),
|
|
150
|
+
render,
|
|
151
|
+
className: cn(
|
|
152
|
+
buttonVariants({ variant, size }),
|
|
153
|
+
isPending && "status-pending",
|
|
154
|
+
className
|
|
155
|
+
),
|
|
156
|
+
...props
|
|
157
|
+
}
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// src/components/input-group.tsx
|
|
162
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
163
|
+
function InputGroup({ className, ...props }) {
|
|
164
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
165
|
+
"div",
|
|
166
|
+
{
|
|
167
|
+
"data-slot": "input-group",
|
|
168
|
+
role: "group",
|
|
169
|
+
className: cn(
|
|
170
|
+
"border-field-border bg-field-background hover-only:hover:border-field-border-hover has-[[data-slot=input-group-control]:focus-visible]:focus-field-ring has-[[data-slot][aria-invalid=true]]:border-field-border-invalid has-[[data-slot][aria-invalid=true]]:has-[[data-slot=input-group-control]:focus-visible]:invalid-field-ring h-9 rounded-md border shadow-field transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto",
|
|
171
|
+
className
|
|
172
|
+
),
|
|
173
|
+
...props
|
|
174
|
+
}
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
var inputGroupAddonVariants = (0, import_class_variance_authority2.cva)(
|
|
178
|
+
"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none",
|
|
179
|
+
{
|
|
180
|
+
variants: {
|
|
181
|
+
align: {
|
|
182
|
+
"inline-start": "pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem] order-first",
|
|
183
|
+
"inline-end": "pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem] order-last",
|
|
184
|
+
"block-start": "px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start",
|
|
185
|
+
"block-end": "px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start"
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
defaultVariants: {
|
|
189
|
+
align: "inline-start"
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
);
|
|
193
|
+
function InputGroupAddon({
|
|
194
|
+
className,
|
|
195
|
+
align = "inline-start",
|
|
196
|
+
...props
|
|
197
|
+
}) {
|
|
198
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
199
|
+
"div",
|
|
200
|
+
{
|
|
201
|
+
role: "group",
|
|
202
|
+
"data-slot": "input-group-addon",
|
|
203
|
+
"data-align": align,
|
|
204
|
+
className: cn(inputGroupAddonVariants({ align }), className),
|
|
205
|
+
onClick: (e) => {
|
|
206
|
+
if (e.target.closest("button")) {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
e.currentTarget.parentElement?.querySelector("input")?.focus();
|
|
210
|
+
},
|
|
211
|
+
...props
|
|
212
|
+
}
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
var inputGroupButtonVariants = (0, import_class_variance_authority2.cva)(
|
|
216
|
+
"gap-2 text-sm shadow-none flex items-center",
|
|
217
|
+
{
|
|
218
|
+
variants: {
|
|
219
|
+
size: {
|
|
220
|
+
xs: "h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
|
|
221
|
+
sm: "",
|
|
222
|
+
"icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
|
|
223
|
+
"icon-sm": "size-8 p-0 has-[>svg]:p-0"
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
defaultVariants: {
|
|
227
|
+
size: "xs"
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
);
|
|
231
|
+
function InputGroupButton({
|
|
232
|
+
className,
|
|
233
|
+
type = "button",
|
|
234
|
+
variant = "ghost",
|
|
235
|
+
size = "xs",
|
|
236
|
+
...props
|
|
237
|
+
}) {
|
|
238
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
239
|
+
Button,
|
|
240
|
+
{
|
|
241
|
+
type,
|
|
242
|
+
"data-size": size,
|
|
243
|
+
variant,
|
|
244
|
+
className: cn(inputGroupButtonVariants({ size }), className),
|
|
245
|
+
...props
|
|
246
|
+
}
|
|
247
|
+
);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// src/components/autocomplete.tsx
|
|
251
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
252
|
+
function Autocomplete({ ...props }) {
|
|
253
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_autocomplete.Autocomplete.Root, { ...props });
|
|
254
|
+
}
|
|
255
|
+
function AutocompleteInput({
|
|
256
|
+
className,
|
|
257
|
+
showTrigger = false,
|
|
258
|
+
children,
|
|
259
|
+
...props
|
|
260
|
+
}) {
|
|
261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(InputGroup, { className: "no-highlight transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none hover-only:border-field-border-hover data-[invalid]:border-field-border-invalid", children: [
|
|
262
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
263
|
+
import_autocomplete.Autocomplete.Input,
|
|
264
|
+
{
|
|
265
|
+
"data-slot": "input-group-control",
|
|
266
|
+
className: cn(
|
|
267
|
+
"flex-1 rounded-none border-0 bg-transparent px-3 py-2 text-sm shadow-none outline-none",
|
|
268
|
+
"placeholder:text-muted-foreground",
|
|
269
|
+
"focus-visible:ring-0",
|
|
270
|
+
"data-disabled:status-disabled",
|
|
271
|
+
className
|
|
272
|
+
),
|
|
273
|
+
...props
|
|
274
|
+
}
|
|
275
|
+
),
|
|
276
|
+
showTrigger && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(InputGroupAddon, { align: "inline-end", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(AutocompleteTrigger, {}) }),
|
|
277
|
+
children
|
|
278
|
+
] });
|
|
279
|
+
}
|
|
280
|
+
function AutocompleteTrigger({
|
|
281
|
+
className,
|
|
282
|
+
children,
|
|
283
|
+
...props
|
|
284
|
+
}) {
|
|
285
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
286
|
+
import_autocomplete.Autocomplete.Trigger,
|
|
287
|
+
{
|
|
288
|
+
"data-slot": "autocomplete-trigger",
|
|
289
|
+
"aria-label": "Toggle options",
|
|
290
|
+
...props,
|
|
291
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
292
|
+
InputGroupButton,
|
|
293
|
+
{
|
|
294
|
+
variant: "ghost",
|
|
295
|
+
size: "icon-xs",
|
|
296
|
+
className: cn("group", className)
|
|
297
|
+
}
|
|
298
|
+
),
|
|
299
|
+
children: children ?? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react.ChevronDownIcon, { className: "size-3.5 transition-transform duration-150 ease-smooth group-data-[open]:rotate-180 motion-reduce:transition-none" })
|
|
300
|
+
}
|
|
301
|
+
);
|
|
302
|
+
}
|
|
303
|
+
function AutocompleteValue({ ...props }) {
|
|
304
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_autocomplete.Autocomplete.Value, { "data-slot": "autocomplete-value", ...props });
|
|
305
|
+
}
|
|
306
|
+
function AutocompleteContent({
|
|
307
|
+
className,
|
|
308
|
+
side = "bottom",
|
|
309
|
+
sideOffset = 4,
|
|
310
|
+
align = "start",
|
|
311
|
+
alignOffset = 0,
|
|
312
|
+
anchor,
|
|
313
|
+
...props
|
|
314
|
+
}) {
|
|
315
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_autocomplete.Autocomplete.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
316
|
+
import_autocomplete.Autocomplete.Positioner,
|
|
317
|
+
{
|
|
318
|
+
side,
|
|
319
|
+
sideOffset,
|
|
320
|
+
align,
|
|
321
|
+
alignOffset,
|
|
322
|
+
anchor,
|
|
323
|
+
className: "isolate z-50",
|
|
324
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
325
|
+
import_autocomplete.Autocomplete.Popup,
|
|
326
|
+
{
|
|
327
|
+
"data-slot": "autocomplete-content",
|
|
328
|
+
className: cn(
|
|
329
|
+
"group/autocomplete-content",
|
|
330
|
+
"min-w-[8rem] overflow-hidden rounded-xl border border-border-light bg-overlay text-overlay-foreground shadow-overlay outline-none",
|
|
331
|
+
"data-open:animate-in data-open:duration-200 data-open:[animation-timing-function:var(--ease-out-fluid)] data-closed:animate-out data-closed:duration-100 data-closed:[animation-timing-function:var(--ease-in-quart)] data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95",
|
|
332
|
+
"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]",
|
|
333
|
+
"data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1",
|
|
334
|
+
"max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-y-auto overscroll-contain",
|
|
335
|
+
"motion-reduce:animate-none motion-reduce:transition-none",
|
|
336
|
+
className
|
|
337
|
+
),
|
|
338
|
+
...props
|
|
339
|
+
}
|
|
340
|
+
)
|
|
341
|
+
}
|
|
342
|
+
) });
|
|
343
|
+
}
|
|
344
|
+
function AutocompleteList({
|
|
345
|
+
className,
|
|
346
|
+
...props
|
|
347
|
+
}) {
|
|
348
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
349
|
+
import_autocomplete.Autocomplete.List,
|
|
350
|
+
{
|
|
351
|
+
"data-slot": "autocomplete-list",
|
|
352
|
+
className: cn(
|
|
353
|
+
"scroll-py-1 overflow-y-auto overscroll-contain p-1",
|
|
354
|
+
className
|
|
355
|
+
),
|
|
356
|
+
...props
|
|
357
|
+
}
|
|
358
|
+
);
|
|
359
|
+
}
|
|
360
|
+
function AutocompleteItem({
|
|
361
|
+
className,
|
|
362
|
+
children,
|
|
363
|
+
...props
|
|
364
|
+
}) {
|
|
365
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
366
|
+
import_autocomplete.Autocomplete.Item,
|
|
367
|
+
{
|
|
368
|
+
"data-slot": "autocomplete-item",
|
|
369
|
+
className: cn(
|
|
370
|
+
"no-highlight relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 px-2 text-sm outline-none transition-colors duration-150 ease-smooth motion-reduce:transition-none",
|
|
371
|
+
"data-highlighted:bg-primary-soft data-highlighted:text-foreground",
|
|
372
|
+
"data-disabled:status-disabled",
|
|
373
|
+
className
|
|
374
|
+
),
|
|
375
|
+
...props,
|
|
376
|
+
children
|
|
377
|
+
}
|
|
378
|
+
);
|
|
379
|
+
}
|
|
380
|
+
function AutocompleteEmpty({
|
|
381
|
+
className,
|
|
382
|
+
...props
|
|
383
|
+
}) {
|
|
384
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
385
|
+
import_autocomplete.Autocomplete.Empty,
|
|
386
|
+
{
|
|
387
|
+
"data-slot": "autocomplete-empty",
|
|
388
|
+
className: cn(
|
|
389
|
+
"empty:hidden py-6 text-center text-sm text-muted-foreground",
|
|
390
|
+
className
|
|
391
|
+
),
|
|
392
|
+
...props
|
|
393
|
+
}
|
|
394
|
+
);
|
|
395
|
+
}
|
|
396
|
+
function AutocompleteGroup({
|
|
397
|
+
className,
|
|
398
|
+
...props
|
|
399
|
+
}) {
|
|
400
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
401
|
+
import_autocomplete.Autocomplete.Group,
|
|
402
|
+
{
|
|
403
|
+
"data-slot": "autocomplete-group",
|
|
404
|
+
className: cn("p-1", className),
|
|
405
|
+
...props
|
|
406
|
+
}
|
|
407
|
+
);
|
|
408
|
+
}
|
|
409
|
+
function AutocompleteGroupLabel({
|
|
410
|
+
className,
|
|
411
|
+
...props
|
|
412
|
+
}) {
|
|
413
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
414
|
+
import_autocomplete.Autocomplete.GroupLabel,
|
|
415
|
+
{
|
|
416
|
+
"data-slot": "autocomplete-group-label",
|
|
417
|
+
className: cn(
|
|
418
|
+
"px-2 py-1.5 text-xs font-medium text-muted-foreground",
|
|
419
|
+
className
|
|
420
|
+
),
|
|
421
|
+
...props
|
|
422
|
+
}
|
|
423
|
+
);
|
|
424
|
+
}
|
|
425
|
+
function AutocompleteSeparator({
|
|
426
|
+
className,
|
|
427
|
+
...props
|
|
428
|
+
}) {
|
|
429
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
430
|
+
import_autocomplete.Autocomplete.Separator,
|
|
431
|
+
{
|
|
432
|
+
"data-slot": "autocomplete-separator",
|
|
433
|
+
className: cn("-mx-1 my-1 h-px bg-border-light", className),
|
|
434
|
+
...props
|
|
435
|
+
}
|
|
436
|
+
);
|
|
437
|
+
}
|
|
438
|
+
function AutocompleteIcon({
|
|
439
|
+
className,
|
|
440
|
+
...props
|
|
441
|
+
}) {
|
|
442
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
443
|
+
import_autocomplete.Autocomplete.Icon,
|
|
444
|
+
{
|
|
445
|
+
"data-slot": "autocomplete-icon",
|
|
446
|
+
className: cn("", className),
|
|
447
|
+
...props
|
|
448
|
+
}
|
|
449
|
+
);
|
|
450
|
+
}
|
|
451
|
+
function AutocompleteStatus({
|
|
452
|
+
className,
|
|
453
|
+
...props
|
|
454
|
+
}) {
|
|
455
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
456
|
+
import_autocomplete.Autocomplete.Status,
|
|
457
|
+
{
|
|
458
|
+
"data-slot": "autocomplete-status",
|
|
459
|
+
className: cn("sr-only", className),
|
|
460
|
+
...props
|
|
461
|
+
}
|
|
462
|
+
);
|
|
463
|
+
}
|
|
464
|
+
function AutocompleteArrow({
|
|
465
|
+
className,
|
|
466
|
+
...props
|
|
467
|
+
}) {
|
|
468
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
469
|
+
import_autocomplete.Autocomplete.Arrow,
|
|
470
|
+
{
|
|
471
|
+
"data-slot": "autocomplete-arrow",
|
|
472
|
+
className: cn("fill-overlay stroke-border", className),
|
|
473
|
+
...props
|
|
474
|
+
}
|
|
475
|
+
);
|
|
476
|
+
}
|
|
477
|
+
function AutocompleteBackdrop({
|
|
478
|
+
className,
|
|
479
|
+
...props
|
|
480
|
+
}) {
|
|
481
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
482
|
+
import_autocomplete.Autocomplete.Backdrop,
|
|
483
|
+
{
|
|
484
|
+
"data-slot": "autocomplete-backdrop",
|
|
485
|
+
className: cn("fixed inset-0 z-50", className),
|
|
486
|
+
...props
|
|
487
|
+
}
|
|
488
|
+
);
|
|
489
|
+
}
|
|
490
|
+
var AutocompleteCollection = import_autocomplete.Autocomplete.Collection;
|
|
491
|
+
var useAutocompleteFilter = import_autocomplete.Autocomplete.useFilter;
|
|
492
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
493
|
+
0 && (module.exports = {
|
|
494
|
+
Autocomplete,
|
|
495
|
+
AutocompleteArrow,
|
|
496
|
+
AutocompleteBackdrop,
|
|
497
|
+
AutocompleteCollection,
|
|
498
|
+
AutocompleteContent,
|
|
499
|
+
AutocompleteEmpty,
|
|
500
|
+
AutocompleteGroup,
|
|
501
|
+
AutocompleteGroupLabel,
|
|
502
|
+
AutocompleteIcon,
|
|
503
|
+
AutocompleteInput,
|
|
504
|
+
AutocompleteItem,
|
|
505
|
+
AutocompleteList,
|
|
506
|
+
AutocompleteSeparator,
|
|
507
|
+
AutocompleteStatus,
|
|
508
|
+
AutocompleteTrigger,
|
|
509
|
+
AutocompleteValue,
|
|
510
|
+
useAutocompleteFilter
|
|
511
|
+
});
|
|
512
|
+
//# sourceMappingURL=autocomplete.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/autocomplete.tsx","../../src/lib/utils.ts","../../src/components/input-group.tsx","../../src/components/button.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Autocomplete as AutocompletePrimitive } from \"@base-ui/react/autocomplete\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { InputGroup, InputGroupAddon, InputGroupButton } from \"./input-group\";\n\nfunction Autocomplete({ ...props }: AutocompletePrimitive.Root.Props<any>) {\n return <AutocompletePrimitive.Root {...props} />;\n}\n\nfunction AutocompleteInput({\n className,\n showTrigger = false,\n children,\n ...props\n}: AutocompletePrimitive.Input.Props & {\n showTrigger?: boolean;\n}) {\n return (\n <InputGroup className=\"no-highlight transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none hover-only:border-field-border-hover data-[invalid]:border-field-border-invalid\">\n <AutocompletePrimitive.Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent px-3 py-2 text-sm shadow-none outline-none\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:ring-0\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n />\n {showTrigger && (\n <InputGroupAddon align=\"inline-end\">\n <AutocompleteTrigger />\n </InputGroupAddon>\n )}\n {children}\n </InputGroup>\n );\n}\n\nfunction AutocompleteTrigger({\n className,\n children,\n ...props\n}: AutocompletePrimitive.Trigger.Props) {\n return (\n <AutocompletePrimitive.Trigger\n data-slot=\"autocomplete-trigger\"\n aria-label=\"Toggle options\"\n {...props}\n render={\n <InputGroupButton\n variant=\"ghost\"\n size=\"icon-xs\"\n className={cn(\"group\", className)}\n />\n }\n >\n {children ?? (\n <ChevronDownIcon className=\"size-3.5 transition-transform duration-150 ease-smooth group-data-[open]:rotate-180 motion-reduce:transition-none\" />\n )}\n </AutocompletePrimitive.Trigger>\n );\n}\n\nfunction AutocompleteValue({ ...props }: AutocompletePrimitive.Value.Props) {\n return (\n <AutocompletePrimitive.Value data-slot=\"autocomplete-value\" {...props} />\n );\n}\n\nfunction AutocompleteContent({\n className,\n side = \"bottom\",\n sideOffset = 4,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: AutocompletePrimitive.Popup.Props &\n Pick<\n AutocompletePrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n return (\n <AutocompletePrimitive.Portal>\n <AutocompletePrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"isolate z-50\"\n >\n <AutocompletePrimitive.Popup\n data-slot=\"autocomplete-content\"\n className={cn(\n \"group/autocomplete-content\",\n \"min-w-[8rem] overflow-hidden rounded-xl border border-border-light bg-overlay text-overlay-foreground shadow-overlay outline-none\",\n \"data-open:animate-in data-open:duration-200 data-open:[animation-timing-function:var(--ease-out-fluid)] data-closed:animate-out data-closed:duration-100 data-closed:[animation-timing-function:var(--ease-in-quart)] data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95\",\n \"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]\",\n \"data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1\",\n \"max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-y-auto overscroll-contain\",\n \"motion-reduce:animate-none motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n </AutocompletePrimitive.Positioner>\n </AutocompletePrimitive.Portal>\n );\n}\n\nfunction AutocompleteList({\n className,\n ...props\n}: AutocompletePrimitive.List.Props) {\n return (\n <AutocompletePrimitive.List\n data-slot=\"autocomplete-list\"\n className={cn(\n \"scroll-py-1 overflow-y-auto overscroll-contain p-1\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AutocompleteItem({\n className,\n children,\n ...props\n}: AutocompletePrimitive.Item.Props) {\n return (\n <AutocompletePrimitive.Item\n data-slot=\"autocomplete-item\"\n className={cn(\n \"no-highlight relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 px-2 text-sm outline-none transition-colors duration-150 ease-smooth motion-reduce:transition-none\",\n \"data-highlighted:bg-primary-soft data-highlighted:text-foreground\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n >\n {children}\n </AutocompletePrimitive.Item>\n );\n}\n\nfunction AutocompleteEmpty({\n className,\n ...props\n}: AutocompletePrimitive.Empty.Props) {\n return (\n <AutocompletePrimitive.Empty\n data-slot=\"autocomplete-empty\"\n className={cn(\n \"empty:hidden py-6 text-center text-sm text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AutocompleteGroup({\n className,\n ...props\n}: AutocompletePrimitive.Group.Props) {\n return (\n <AutocompletePrimitive.Group\n data-slot=\"autocomplete-group\"\n className={cn(\"p-1\", className)}\n {...props}\n />\n );\n}\n\nfunction AutocompleteGroupLabel({\n className,\n ...props\n}: AutocompletePrimitive.GroupLabel.Props) {\n return (\n <AutocompletePrimitive.GroupLabel\n data-slot=\"autocomplete-group-label\"\n className={cn(\n \"px-2 py-1.5 text-xs font-medium text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AutocompleteSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof AutocompletePrimitive.Separator>) {\n return (\n <AutocompletePrimitive.Separator\n data-slot=\"autocomplete-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border-light\", className)}\n {...props}\n />\n );\n}\n\nfunction AutocompleteIcon({\n className,\n ...props\n}: AutocompletePrimitive.Icon.Props) {\n return (\n <AutocompletePrimitive.Icon\n data-slot=\"autocomplete-icon\"\n className={cn(\"\", className)}\n {...props}\n />\n );\n}\n\nfunction AutocompleteStatus({\n className,\n ...props\n}: AutocompletePrimitive.Status.Props) {\n return (\n <AutocompletePrimitive.Status\n data-slot=\"autocomplete-status\"\n className={cn(\"sr-only\", className)}\n {...props}\n />\n );\n}\n\nfunction AutocompleteArrow({\n className,\n ...props\n}: AutocompletePrimitive.Arrow.Props) {\n return (\n <AutocompletePrimitive.Arrow\n data-slot=\"autocomplete-arrow\"\n className={cn(\"fill-overlay stroke-border\", className)}\n {...props}\n />\n );\n}\n\nfunction AutocompleteBackdrop({\n className,\n ...props\n}: AutocompletePrimitive.Backdrop.Props) {\n return (\n <AutocompletePrimitive.Backdrop\n data-slot=\"autocomplete-backdrop\"\n className={cn(\"fixed inset-0 z-50\", className)}\n {...props}\n />\n );\n}\n\nconst AutocompleteCollection = AutocompletePrimitive.Collection;\n\nconst useAutocompleteFilter = AutocompletePrimitive.useFilter;\n\nexport {\n Autocomplete,\n AutocompleteCollection,\n AutocompleteInput,\n AutocompleteContent,\n AutocompleteList,\n AutocompleteItem,\n AutocompleteEmpty,\n AutocompleteGroup,\n AutocompleteGroupLabel,\n AutocompleteSeparator,\n AutocompleteTrigger,\n AutocompleteValue,\n AutocompleteIcon,\n AutocompleteStatus,\n AutocompleteArrow,\n AutocompleteBackdrop,\n useAutocompleteFilter,\n};\n\nexport type AutocompleteProps = React.ComponentProps<typeof Autocomplete>;\nexport type AutocompleteInputProps = React.ComponentProps<\n typeof AutocompleteInput\n>;\nexport type AutocompleteContentProps = React.ComponentProps<\n typeof AutocompleteContent\n>;\nexport type AutocompleteItemProps = React.ComponentProps<\n typeof AutocompleteItem\n>;\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { Textarea } from \"./textarea\";\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"border-field-border bg-field-background hover-only:hover:border-field-border-hover has-[[data-slot=input-group-control]:focus-visible]:focus-field-ring has-[[data-slot][aria-invalid=true]]:border-field-border-invalid has-[[data-slot][aria-invalid=true]]:has-[[data-slot=input-group-control]:focus-visible]:invalid-field-ring h-9 rounded-md border shadow-field transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem] order-first\",\n \"inline-end\":\n \"pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem] order-last\",\n \"block-start\":\n \"px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start\",\n \"block-end\":\n \"px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\n \"gap-2 text-sm shadow-none flex items-center\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n },\n);\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\" | \"type\"> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: \"button\" | \"submit\" | \"reset\";\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 flex items-center [&_svg]:pointer-events-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 flex-1\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 flex-1 resize-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n inputGroupAddonVariants,\n inputGroupButtonVariants,\n};\n\nexport type InputGroupProps = React.ComponentProps<typeof InputGroup>;\nexport type InputGroupAddonProps = React.ComponentProps<typeof InputGroupAddon>;\nexport type InputGroupButtonProps = React.ComponentProps<\n typeof InputGroupButton\n>;\n","\"use client\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n [\n \"inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium\",\n \"transform-gpu transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n \"disabled:status-disabled\",\n \"focus-visible:focus-ring\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"shrink-0 group/button select-none no-highlight\",\n ],\n {\n variants: {\n variant: {\n default: [\n // Base styles\n \"relative rounded-lg overflow-visible shadow-surface border border-primary dark:border-primary-dark\",\n \"isolate text-primary-foreground [text-shadow:_0_1px_2px_oklch(0%_0_0_/_30%)]\",\n \"[&>*]:relative [&>*]:z-[2]\",\n // Combined gradient layer with primary colors\n \"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]\",\n \"before:bg-gradient-to-br before:from-primary-light before:via-primary-middle before:to-primary-dark\",\n \"before:dark:from-primary-light before:dark:via-primary-middle before:dark:to-primary-dark\",\n \"before:z-[-1]\",\n // Additional outer border\n \"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]\",\n \"after:bg-gradient-to-br after:from-primary after:to-primary-dark\",\n \"after:z-[-1] after:transition-opacity after:duration-200 after:opacity-40 after:motion-reduce:transition-none\",\n // Hover state\n \"hover-only:after:opacity-100 hover-only:transition-opacity hover-only:duration-200\",\n ].join(\" \"),\n destructive:\n \"bg-destructive text-destructive-foreground hover-only:hover:bg-destructive-hover\",\n outline: [\n // Base styles\n \"relative rounded-lg overflow-visible shadow-field border\",\n \"isolate text-foreground\",\n \"[&>*]:relative [&>*]:z-[2]\",\n // Background layer\n \"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]\",\n \"before:bg-gradient-to-br before:from-border-light before:via-border before:to-border-dark/50\",\n \"before:dark:from-border-light before:dark:to-border-dark\",\n \"before:z-[-1]\",\n // Inner background layer\n \"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]\",\n \"after:bg-background\",\n \"after:z-[-1]\",\n \"after:transition-colors after:duration-200 after:ease-out after:motion-reduce:transition-none\",\n // Hover state\n \"hover-only:after:bg-muted\",\n ].join(\" \"),\n secondary:\n \"bg-secondary text-secondary-foreground hover-only:hover:bg-accent\",\n ghost:\n \"hover-only:bg-accent hover-only:text-accent-foreground motion-safe:active:scale-100\",\n \"primary-soft\":\n \"bg-primary-soft text-primary hover-only:hover:bg-primary-soft-hover\",\n \"destructive-soft\":\n \"bg-destructive-soft text-destructive hover-only:hover:bg-destructive-soft-hover\",\n success:\n \"bg-success text-success-foreground hover-only:hover:bg-success-hover\",\n warning:\n \"bg-warning text-warning-foreground hover-only:hover:bg-warning-hover\",\n link: \"dark:text-primary-light text-primary-dark underline-offset-4 hover-only:underline motion-safe:active:scale-100\",\n },\n size: {\n default:\n \"h-9 gap-2 px-4 py-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 motion-safe:active:scale-[0.97]\",\n xs: \"h-6 gap-1 rounded-lg px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3 motion-safe:active:scale-[0.985]\",\n sm: \"h-8 gap-1.5 rounded-lg px-3 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 motion-safe:active:scale-[0.98]\",\n lg: \"h-10 gap-2 rounded-lg px-8 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 motion-safe:active:scale-[0.96]\",\n icon: \"size-9 motion-safe:active:scale-[0.97]\",\n \"icon-xs\":\n \"size-6 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.985]\",\n \"icon-sm\":\n \"size-8 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.98]\",\n \"icon-lg\": \"size-10 motion-safe:active:scale-[0.96]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n isPending,\n nativeButton,\n render,\n ...props\n}: ButtonPrimitive.Props &\n VariantProps<typeof buttonVariants> & { isPending?: boolean }) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n data-pending={isPending || undefined}\n aria-disabled={isPending || undefined}\n nativeButton={nativeButton ?? (render ? false : undefined)}\n render={render}\n className={cn(\n buttonVariants({ variant, size }),\n isPending && \"status-pending\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n\nexport type ButtonProps = React.ComponentProps<typeof Button>;\n"],"mappings":"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","names":["import_class_variance_authority","ButtonPrimitive","import_jsx_runtime","import_jsx_runtime","AutocompletePrimitive"]}
|