@glinui/ui 0.1.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.d.ts +42 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/accordion.js +85 -0
- package/dist/components/alert-dialog.d.ts +30 -0
- package/dist/components/alert-dialog.d.ts.map +1 -0
- package/dist/components/alert-dialog.js +53 -0
- package/dist/components/alert.d.ts +15 -0
- package/dist/components/alert.d.ts.map +1 -0
- package/dist/components/alert.js +39 -0
- package/dist/components/animated-gradient.d.ts +11 -0
- package/dist/components/animated-gradient.d.ts.map +1 -0
- package/dist/components/animated-gradient.js +23 -0
- package/dist/components/aurora-background.d.ts +15 -0
- package/dist/components/aurora-background.d.ts.map +1 -0
- package/dist/components/aurora-background.js +26 -0
- package/dist/components/avatar.d.ts +54 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/avatar.js +92 -0
- package/dist/components/badge.d.ts +13 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +32 -0
- package/dist/components/blur-fade.d.ts +17 -0
- package/dist/components/blur-fade.d.ts.map +1 -0
- package/dist/components/blur-fade.js +48 -0
- package/dist/components/blur-spotlight.d.ts +13 -0
- package/dist/components/blur-spotlight.d.ts.map +1 -0
- package/dist/components/blur-spotlight.js +58 -0
- package/dist/components/border-beam.d.ts +11 -0
- package/dist/components/border-beam.d.ts.map +1 -0
- package/dist/components/border-beam.js +14 -0
- package/dist/components/button.d.ts +17 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +33 -0
- package/dist/components/card.d.ts +39 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +81 -0
- package/dist/components/checkbox.d.ts +14 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +58 -0
- package/dist/components/chip.d.ts +15 -0
- package/dist/components/chip.d.ts.map +1 -0
- package/dist/components/chip.js +35 -0
- package/dist/components/chromatic-text.d.ts +11 -0
- package/dist/components/chromatic-text.d.ts.map +1 -0
- package/dist/components/chromatic-text.js +22 -0
- package/dist/components/code.d.ts +13 -0
- package/dist/components/code.d.ts.map +1 -0
- package/dist/components/code.js +27 -0
- package/dist/components/command.d.ts +89 -0
- package/dist/components/command.d.ts.map +1 -0
- package/dist/components/command.js +123 -0
- package/dist/components/counter.d.ts +19 -0
- package/dist/components/counter.d.ts.map +1 -0
- package/dist/components/counter.js +28 -0
- package/dist/components/data-table.d.ts +38 -0
- package/dist/components/data-table.d.ts.map +1 -0
- package/dist/components/data-table.js +183 -0
- package/dist/components/depth-card.d.ts +15 -0
- package/dist/components/depth-card.d.ts.map +1 -0
- package/dist/components/depth-card.js +52 -0
- package/dist/components/dot-pattern.d.ts +10 -0
- package/dist/components/dot-pattern.d.ts.map +1 -0
- package/dist/components/dot-pattern.js +10 -0
- package/dist/components/dropdown-menu.d.ts +74 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu.js +90 -0
- package/dist/components/floating-panel.d.ts +17 -0
- package/dist/components/floating-panel.d.ts.map +1 -0
- package/dist/components/floating-panel.js +57 -0
- package/dist/components/glass-breadcrumb.d.ts +17 -0
- package/dist/components/glass-breadcrumb.d.ts.map +1 -0
- package/dist/components/glass-breadcrumb.js +14 -0
- package/dist/components/glass-card.d.ts +20 -0
- package/dist/components/glass-card.d.ts.map +1 -0
- package/dist/components/glass-card.js +36 -0
- package/dist/components/glass-dock.d.ts +21 -0
- package/dist/components/glass-dock.d.ts.map +1 -0
- package/dist/components/glass-dock.js +54 -0
- package/dist/components/glass-navbar.d.ts +21 -0
- package/dist/components/glass-navbar.d.ts.map +1 -0
- package/dist/components/glass-navbar.js +43 -0
- package/dist/components/glass-toggle.d.ts +15 -0
- package/dist/components/glass-toggle.d.ts.map +1 -0
- package/dist/components/glass-toggle.js +32 -0
- package/dist/components/glow-border.d.ts +13 -0
- package/dist/components/glow-border.d.ts.map +1 -0
- package/dist/components/glow-border.js +10 -0
- package/dist/components/gradient-mesh.d.ts +13 -0
- package/dist/components/gradient-mesh.d.ts.map +1 -0
- package/dist/components/gradient-mesh.js +25 -0
- package/dist/components/heading.d.ts +18 -0
- package/dist/components/heading.d.ts.map +1 -0
- package/dist/components/heading.js +28 -0
- package/dist/components/hover-card.d.ts +32 -0
- package/dist/components/hover-card.d.ts.map +1 -0
- package/dist/components/hover-card.js +28 -0
- package/dist/components/icon-frame.d.ts +13 -0
- package/dist/components/icon-frame.d.ts.map +1 -0
- package/dist/components/icon-frame.js +27 -0
- package/dist/components/input.d.ts +13 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.js +38 -0
- package/dist/components/kbd.d.ts +13 -0
- package/dist/components/kbd.d.ts.map +1 -0
- package/dist/components/kbd.js +27 -0
- package/dist/components/label.d.ts +13 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/label.js +27 -0
- package/dist/components/light-leak.d.ts +15 -0
- package/dist/components/light-leak.d.ts.map +1 -0
- package/dist/components/light-leak.js +29 -0
- package/dist/components/link.d.ts +15 -0
- package/dist/components/link.d.ts.map +1 -0
- package/dist/components/link.js +32 -0
- package/dist/components/liquid-button.d.ts +17 -0
- package/dist/components/liquid-button.d.ts.map +1 -0
- package/dist/components/liquid-button.js +18 -0
- package/dist/components/magnetic-cta.d.ts +18 -0
- package/dist/components/magnetic-cta.d.ts.map +1 -0
- package/dist/components/magnetic-cta.js +46 -0
- package/dist/components/marquee.d.ts +10 -0
- package/dist/components/marquee.d.ts.map +1 -0
- package/dist/components/marquee.js +16 -0
- package/dist/components/meteor-shower.d.ts +11 -0
- package/dist/components/meteor-shower.d.ts.map +1 -0
- package/dist/components/meteor-shower.js +39 -0
- package/dist/components/modal.d.ts +30 -0
- package/dist/components/modal.d.ts.map +1 -0
- package/dist/components/modal.js +39 -0
- package/dist/components/morphing-tabs.d.ts +22 -0
- package/dist/components/morphing-tabs.d.ts.map +1 -0
- package/dist/components/morphing-tabs.js +72 -0
- package/dist/components/number-ticker.d.ts +11 -0
- package/dist/components/number-ticker.d.ts.map +1 -0
- package/dist/components/number-ticker.js +66 -0
- package/dist/components/orbiting-circles.d.ts +21 -0
- package/dist/components/orbiting-circles.d.ts.map +1 -0
- package/dist/components/orbiting-circles.js +24 -0
- package/dist/components/particle-field.d.ts +19 -0
- package/dist/components/particle-field.d.ts.map +1 -0
- package/dist/components/particle-field.js +41 -0
- package/dist/components/popover.d.ts +27 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/popover.js +52 -0
- package/dist/components/prism-border.d.ts +13 -0
- package/dist/components/prism-border.d.ts.map +1 -0
- package/dist/components/prism-border.js +16 -0
- package/dist/components/progress.d.ts +58 -0
- package/dist/components/progress.d.ts.map +1 -0
- package/dist/components/progress.js +108 -0
- package/dist/components/pulsating-button.d.ts +13 -0
- package/dist/components/pulsating-button.d.ts.map +1 -0
- package/dist/components/pulsating-button.js +40 -0
- package/dist/components/radio-group.d.ts +27 -0
- package/dist/components/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group.js +58 -0
- package/dist/components/retro-grid.d.ts +13 -0
- package/dist/components/retro-grid.d.ts.map +1 -0
- package/dist/components/retro-grid.js +17 -0
- package/dist/components/reveal-text.d.ts +17 -0
- package/dist/components/reveal-text.d.ts.map +1 -0
- package/dist/components/reveal-text.js +61 -0
- package/dist/components/ripple-button.d.ts +11 -0
- package/dist/components/ripple-button.d.ts.map +1 -0
- package/dist/components/ripple-button.js +47 -0
- package/dist/components/ripple.d.ts +13 -0
- package/dist/components/ripple.d.ts.map +1 -0
- package/dist/components/ripple.js +24 -0
- package/dist/components/select.d.ts +24 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +30 -0
- package/dist/components/separator.d.ts +29 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/separator.js +84 -0
- package/dist/components/sheet.d.ts +41 -0
- package/dist/components/sheet.d.ts.map +1 -0
- package/dist/components/sheet.js +85 -0
- package/dist/components/shimmer-button.d.ts +13 -0
- package/dist/components/shimmer-button.d.ts.map +1 -0
- package/dist/components/shimmer-button.js +32 -0
- package/dist/components/skeleton.d.ts +17 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +42 -0
- package/dist/components/slider.d.ts +14 -0
- package/dist/components/slider.d.ts.map +1 -0
- package/dist/components/slider.js +89 -0
- package/dist/components/sonner.d.ts +14 -0
- package/dist/components/sonner.d.ts.map +1 -0
- package/dist/components/sonner.js +70 -0
- package/dist/components/spotlight-card.d.ts +11 -0
- package/dist/components/spotlight-card.d.ts.map +1 -0
- package/dist/components/spotlight-card.js +39 -0
- package/dist/components/spotlight.d.ts +19 -0
- package/dist/components/spotlight.d.ts.map +1 -0
- package/dist/components/spotlight.js +23 -0
- package/dist/components/status-dot.d.ts +24 -0
- package/dist/components/status-dot.d.ts.map +1 -0
- package/dist/components/status-dot.js +46 -0
- package/dist/components/switch.d.ts +42 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +77 -0
- package/dist/components/table.d.ts +69 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/table.js +176 -0
- package/dist/components/tabs.d.ts +34 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +75 -0
- package/dist/components/text-reveal.d.ts +6 -0
- package/dist/components/text-reveal.d.ts.map +1 -0
- package/dist/components/text-reveal.js +56 -0
- package/dist/components/text.d.ts +13 -0
- package/dist/components/text.d.ts.map +1 -0
- package/dist/components/text.js +27 -0
- package/dist/components/textarea.d.ts +13 -0
- package/dist/components/textarea.d.ts.map +1 -0
- package/dist/components/textarea.js +37 -0
- package/dist/components/toast.d.ts +23 -0
- package/dist/components/toast.d.ts.map +1 -0
- package/dist/components/toast.js +36 -0
- package/dist/components/tooltip.d.ts +35 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.js +34 -0
- package/dist/components/tree.d.ts +50 -0
- package/dist/components/tree.d.ts.map +1 -0
- package/dist/components/tree.js +77 -0
- package/dist/components/typewriter.d.ts +25 -0
- package/dist/components/typewriter.d.ts.map +1 -0
- package/dist/components/typewriter.js +109 -0
- package/dist/components/word-rotate.d.ts +11 -0
- package/dist/components/word-rotate.d.ts.map +1 -0
- package/dist/components/word-rotate.js +29 -0
- package/dist/index.d.ts +80 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +79 -0
- package/dist/lib/cn.d.ts +3 -0
- package/dist/lib/cn.d.ts.map +1 -0
- package/dist/lib/cn.js +5 -0
- package/dist/lib/use-liquid-glass.d.ts +46 -0
- package/dist/lib/use-liquid-glass.d.ts.map +1 -0
- package/dist/lib/use-liquid-glass.js +144 -0
- package/dist/lib/use-prefers-reduced-motion.d.ts +2 -0
- package/dist/lib/use-prefers-reduced-motion.d.ts.map +1 -0
- package/dist/lib/use-prefers-reduced-motion.js +23 -0
- package/package.json +72 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
declare const lineVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "glass" | "outline" | "ghost" | "dashed" | "dotted" | "gradient" | null | undefined;
|
|
5
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
6
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
export type SeparatorProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof lineVariants> & {
|
|
9
|
+
/** When true the element is purely visual (default). When false, role="separator" is applied. */
|
|
10
|
+
decorative?: boolean;
|
|
11
|
+
/** Text label rendered centred on the separator line. */
|
|
12
|
+
label?: string;
|
|
13
|
+
/** Icon node rendered centred on the separator line. Overrides label when both are provided. */
|
|
14
|
+
icon?: React.ReactNode;
|
|
15
|
+
};
|
|
16
|
+
export declare const Separator: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
|
|
17
|
+
variant?: "default" | "glass" | "outline" | "ghost" | "dashed" | "dotted" | "gradient" | null | undefined;
|
|
18
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
19
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
20
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string> & {
|
|
21
|
+
/** When true the element is purely visual (default). When false, role="separator" is applied. */
|
|
22
|
+
decorative?: boolean;
|
|
23
|
+
/** Text label rendered centred on the separator line. */
|
|
24
|
+
label?: string;
|
|
25
|
+
/** Icon node rendered centred on the separator line. Overrides label when both are provided. */
|
|
26
|
+
icon?: React.ReactNode;
|
|
27
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=separator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../src/components/separator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAOjE,QAAA,MAAM,YAAY;;;;8EAsDhB,CAAA;AAKF,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAC/D,YAAY,CAAC,OAAO,YAAY,CAAC,GAAG;IAClC,iGAAiG;IACjG,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gGAAgG;IAChG,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACvB,CAAA;AAKH,eAAO,MAAM,SAAS;;;;;IAXlB,iGAAiG;iBACpF,OAAO;IACpB,yDAAyD;YACjD,MAAM;IACd,gGAAgG;WACzF,KAAK,CAAC,SAAS;wCA2FzB,CAAA"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { cn } from "../lib/cn";
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Line variants — applied to the individual line element(s), not the wrapper
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
const lineVariants = cva("shrink-0", {
|
|
9
|
+
variants: {
|
|
10
|
+
variant: {
|
|
11
|
+
default: "bg-[var(--color-border)]",
|
|
12
|
+
glass: [
|
|
13
|
+
"bg-[var(--glass-refraction-top)]",
|
|
14
|
+
"[background-image:linear-gradient(90deg,var(--glass-refraction-top),var(--glass-refraction-top))]",
|
|
15
|
+
"opacity-60",
|
|
16
|
+
].join(" "),
|
|
17
|
+
gradient: "bg-gradient-to-r from-transparent via-[var(--color-border)] to-transparent",
|
|
18
|
+
dashed: "border-dashed border-[var(--color-border)] bg-transparent",
|
|
19
|
+
dotted: "border-dotted border-[var(--color-border)] bg-transparent",
|
|
20
|
+
outline: "border border-[var(--color-border)] bg-transparent",
|
|
21
|
+
ghost: "bg-[var(--color-border)]/40",
|
|
22
|
+
},
|
|
23
|
+
orientation: {
|
|
24
|
+
horizontal: "w-full",
|
|
25
|
+
vertical: "h-full",
|
|
26
|
+
},
|
|
27
|
+
size: {
|
|
28
|
+
sm: "",
|
|
29
|
+
md: "",
|
|
30
|
+
lg: "",
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
defaultVariants: {
|
|
34
|
+
variant: "default",
|
|
35
|
+
orientation: "horizontal",
|
|
36
|
+
size: "md",
|
|
37
|
+
},
|
|
38
|
+
compoundVariants: [
|
|
39
|
+
// horizontal thickness
|
|
40
|
+
{ orientation: "horizontal", size: "sm", class: "h-px" },
|
|
41
|
+
{ orientation: "horizontal", size: "md", class: "h-0.5" },
|
|
42
|
+
{ orientation: "horizontal", size: "lg", class: "h-1" },
|
|
43
|
+
// vertical thickness
|
|
44
|
+
{ orientation: "vertical", size: "sm", class: "w-px" },
|
|
45
|
+
{ orientation: "vertical", size: "md", class: "w-0.5" },
|
|
46
|
+
{ orientation: "vertical", size: "lg", class: "w-1" },
|
|
47
|
+
// dashed/dotted — use border thickness instead of background height/width
|
|
48
|
+
{ orientation: "horizontal", variant: "dashed", size: "sm", class: "h-0 border-t" },
|
|
49
|
+
{ orientation: "horizontal", variant: "dashed", size: "md", class: "h-0 border-t-2" },
|
|
50
|
+
{ orientation: "horizontal", variant: "dashed", size: "lg", class: "h-0 border-t-4" },
|
|
51
|
+
{ orientation: "vertical", variant: "dashed", size: "sm", class: "w-0 border-l" },
|
|
52
|
+
{ orientation: "vertical", variant: "dashed", size: "md", class: "w-0 border-l-2" },
|
|
53
|
+
{ orientation: "vertical", variant: "dashed", size: "lg", class: "w-0 border-l-4" },
|
|
54
|
+
{ orientation: "horizontal", variant: "dotted", size: "sm", class: "h-0 border-t" },
|
|
55
|
+
{ orientation: "horizontal", variant: "dotted", size: "md", class: "h-0 border-t-2" },
|
|
56
|
+
{ orientation: "horizontal", variant: "dotted", size: "lg", class: "h-0 border-t-4" },
|
|
57
|
+
{ orientation: "vertical", variant: "dotted", size: "sm", class: "w-0 border-l" },
|
|
58
|
+
{ orientation: "vertical", variant: "dotted", size: "md", class: "w-0 border-l-2" },
|
|
59
|
+
{ orientation: "vertical", variant: "dotted", size: "lg", class: "w-0 border-l-4" },
|
|
60
|
+
],
|
|
61
|
+
});
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
// Component
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
export const Separator = React.forwardRef(({ className, variant = "default", orientation = "horizontal", size = "md", decorative = true, label, icon, ...props }, ref) => {
|
|
66
|
+
const hasContent = icon !== undefined || label !== undefined;
|
|
67
|
+
const content = icon ?? label;
|
|
68
|
+
// Shared ARIA attributes
|
|
69
|
+
const ariaProps = {
|
|
70
|
+
role: decorative ? undefined : "separator",
|
|
71
|
+
"aria-hidden": decorative ? true : undefined,
|
|
72
|
+
"aria-orientation": decorative
|
|
73
|
+
? undefined
|
|
74
|
+
: (orientation ?? "horizontal"),
|
|
75
|
+
};
|
|
76
|
+
// Simple line — no label/icon
|
|
77
|
+
if (!hasContent) {
|
|
78
|
+
return (_jsx("div", { ref: ref, ...ariaProps, className: cn(lineVariants({ variant, orientation, size }), className), ...props }));
|
|
79
|
+
}
|
|
80
|
+
// Label / icon centred layout
|
|
81
|
+
const isHorizontal = (orientation ?? "horizontal") === "horizontal";
|
|
82
|
+
return (_jsxs("div", { ref: ref, ...ariaProps, className: cn("flex items-center", isHorizontal ? "flex-row gap-3 w-full" : "flex-col gap-3 h-full", className), ...props, children: [_jsx("div", { className: cn(lineVariants({ variant, orientation, size }), isHorizontal ? "flex-1 w-auto" : "flex-1 h-auto"), "aria-hidden": true }), _jsx("span", { className: cn("shrink-0 select-none text-xs font-medium text-[var(--color-foreground)]/50", isHorizontal ? "px-1" : "py-1"), children: content }), _jsx("div", { className: cn(lineVariants({ variant, orientation, size }), isHorizontal ? "flex-1 w-auto" : "flex-1 h-auto"), "aria-hidden": true })] }));
|
|
83
|
+
});
|
|
84
|
+
Separator.displayName = "Separator";
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
3
|
+
import { type VariantProps } from "class-variance-authority";
|
|
4
|
+
declare const sheetTriggerVariants: (props?: ({
|
|
5
|
+
variant?: "default" | "glass" | "frosted" | "outline" | "ghost" | null | undefined;
|
|
6
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
declare const sheetContentVariants: (props?: ({
|
|
9
|
+
variant?: "default" | "glass" | "frosted" | "outline" | "ghost" | null | undefined;
|
|
10
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
11
|
+
side?: "left" | "right" | "bottom" | "top" | null | undefined;
|
|
12
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
13
|
+
export type SheetProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Root>;
|
|
14
|
+
export declare const Sheet: React.FC<DialogPrimitive.DialogProps>;
|
|
15
|
+
export declare const Drawer: React.FC<DialogPrimitive.DialogProps>;
|
|
16
|
+
export type SheetTriggerProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Trigger> & VariantProps<typeof sheetTriggerVariants>;
|
|
17
|
+
export declare const SheetTrigger: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & VariantProps<(props?: ({
|
|
18
|
+
variant?: "default" | "glass" | "frosted" | "outline" | "ghost" | null | undefined;
|
|
19
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
20
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLButtonElement>>;
|
|
21
|
+
export declare const SheetClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
|
|
22
|
+
export type SheetPortalProps = DialogPrimitive.DialogPortalProps;
|
|
23
|
+
export declare const SheetPortal: (props: SheetPortalProps) => import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export type SheetOverlayProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>;
|
|
25
|
+
export declare const SheetOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
26
|
+
export type SheetContentProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & VariantProps<typeof sheetContentVariants>;
|
|
27
|
+
export declare const SheetContent: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & VariantProps<(props?: ({
|
|
28
|
+
variant?: "default" | "glass" | "frosted" | "outline" | "ghost" | null | undefined;
|
|
29
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
30
|
+
side?: "left" | "right" | "bottom" | "top" | null | undefined;
|
|
31
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
|
|
32
|
+
export type SheetHeaderProps = React.HTMLAttributes<HTMLDivElement>;
|
|
33
|
+
export declare const SheetHeader: React.ForwardRefExoticComponent<SheetHeaderProps & React.RefAttributes<HTMLDivElement>>;
|
|
34
|
+
export type SheetFooterProps = React.HTMLAttributes<HTMLDivElement>;
|
|
35
|
+
export declare const SheetFooter: React.ForwardRefExoticComponent<SheetFooterProps & React.RefAttributes<HTMLDivElement>>;
|
|
36
|
+
export type SheetTitleProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>;
|
|
37
|
+
export declare const SheetTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
|
|
38
|
+
export type SheetDescriptionProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>;
|
|
39
|
+
export declare const SheetDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=sheet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../src/components/sheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,oBAAoB;;;8EAsBzB,CAAA;AAED,QAAA,MAAM,oBAAoB;;;;8EA6CzB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;AAEpF,eAAO,MAAM,KAAK,uCAAuB,CAAA;AACzC,eAAO,MAAM,MAAM,uCAAQ,CAAA;AAE3B,MAAM,MAAM,iBAAiB,GAC3B,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAC9D,YAAY,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE3C,eAAO,MAAM,YAAY;;;yHASvB,CAAA;AAIF,eAAO,MAAM,UAAU,4GAAwB,CAAA;AAE/C,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC,iBAAiB,CAAA;AAEhE,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,4CAA0C,CAAA;AAE7F,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAA;AAE9F,eAAO,MAAM,YAAY,8JAYvB,CAAA;AAIF,MAAM,MAAM,iBAAiB,GAC3B,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAC9D,YAAY,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE3C,eAAO,MAAM,YAAY;;;;sHAkBvB,CAAA;AAIF,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AAEnE,eAAO,MAAM,WAAW,yFAEvB,CAAA;AAID,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AAEnE,eAAO,MAAM,WAAW,yFAIvB,CAAA;AAID,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAA;AAE1F,eAAO,MAAM,UAAU,oKAKrB,CAAA;AAIF,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,WAAW,CAAC,CAAA;AAEtG,eAAO,MAAM,gBAAgB,8KAK3B,CAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
4
|
+
import { X } from "lucide-react";
|
|
5
|
+
import { cva } from "class-variance-authority";
|
|
6
|
+
import { cn } from "../lib/cn";
|
|
7
|
+
const sheetTriggerVariants = cva("inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-accent)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", {
|
|
8
|
+
variants: {
|
|
9
|
+
variant: {
|
|
10
|
+
default: "bg-[var(--color-surface)] text-[var(--color-foreground)] border border-[var(--color-border)]",
|
|
11
|
+
glass: "backdrop-blur-xl backdrop-saturate-[180%] bg-[var(--glass-3-surface)] border border-white/20 [border-top-color:var(--glass-refraction-top)] shadow-[0_0_0_1px_rgb(255_255_255_/_0.1)_inset,var(--shadow-glass-sm)] dark:border-white/[0.1] dark:shadow-[0_0_0_1px_rgb(255_255_255_/_0.05)_inset,0_8px_24px_rgb(0_0_0_/_0.35)] text-[var(--color-foreground)]",
|
|
12
|
+
frosted: "backdrop-blur-[40px] backdrop-saturate-[200%] bg-[var(--glass-4-surface)] border border-white/30 [border-top-color:var(--glass-refraction-top)] shadow-[0_0_0_1px_rgb(255_255_255_/_0.15)_inset,0_0_16px_rgb(255_255_255_/_0.1)_inset,var(--shadow-glass-md)] dark:border-white/[0.14] dark:shadow-[0_0_0_1px_rgb(255_255_255_/_0.07)_inset,0_0_16px_rgb(255_255_255_/_0.03)_inset,0_8px_24px_rgb(0_0_0_/_0.4)] text-[var(--color-foreground)]",
|
|
13
|
+
outline: "bg-transparent border border-[var(--color-border)] text-[var(--color-foreground)]",
|
|
14
|
+
ghost: "bg-transparent border border-transparent text-[var(--color-foreground)]"
|
|
15
|
+
},
|
|
16
|
+
size: {
|
|
17
|
+
sm: "h-8 px-3",
|
|
18
|
+
md: "h-10 px-4",
|
|
19
|
+
lg: "h-11 px-5"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
defaultVariants: {
|
|
23
|
+
variant: "default",
|
|
24
|
+
size: "md"
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
const sheetContentVariants = cva("fixed z-50 border p-6 shadow-[var(--shadow-glass-md)] transition-transform duration-200 ease-out data-[state=closed]:opacity-0 data-[state=open]:opacity-100", {
|
|
28
|
+
variants: {
|
|
29
|
+
variant: {
|
|
30
|
+
default: "bg-[var(--color-surface)] border-[var(--color-border)] text-[var(--color-foreground)]",
|
|
31
|
+
glass: "backdrop-blur-xl backdrop-saturate-[180%] bg-[var(--glass-3-surface)] border border-white/20 [border-top-color:var(--glass-refraction-top)] shadow-[0_0_0_1px_rgb(255_255_255_/_0.1)_inset,var(--shadow-glass-sm)] dark:border-white/[0.1] dark:shadow-[0_0_0_1px_rgb(255_255_255_/_0.05)_inset,0_8px_24px_rgb(0_0_0_/_0.35)] text-[var(--color-foreground)]",
|
|
32
|
+
frosted: "backdrop-blur-[40px] backdrop-saturate-[200%] bg-[var(--glass-4-surface)] border border-white/30 [border-top-color:var(--glass-refraction-top)] shadow-[0_0_0_1px_rgb(255_255_255_/_0.15)_inset,0_0_20px_rgb(255_255_255_/_0.12)_inset,var(--shadow-glass-md)] dark:border-white/[0.14] dark:shadow-[0_0_0_1px_rgb(255_255_255_/_0.07)_inset,0_0_20px_rgb(255_255_255_/_0.04)_inset,0_8px_24px_rgb(0_0_0_/_0.4)] text-[var(--color-foreground)]",
|
|
33
|
+
outline: "bg-transparent border-[var(--color-border)] text-[var(--color-foreground)]",
|
|
34
|
+
ghost: "bg-transparent border-transparent text-[var(--color-foreground)]"
|
|
35
|
+
},
|
|
36
|
+
size: {
|
|
37
|
+
sm: "",
|
|
38
|
+
md: "",
|
|
39
|
+
lg: ""
|
|
40
|
+
},
|
|
41
|
+
side: {
|
|
42
|
+
top: "inset-x-0 top-0 border-b rounded-b-xl data-[state=closed]:-translate-y-full data-[state=open]:translate-y-0",
|
|
43
|
+
bottom: "inset-x-0 bottom-0 border-t rounded-t-xl data-[state=closed]:translate-y-full data-[state=open]:translate-y-0",
|
|
44
|
+
left: "inset-y-0 left-0 h-full border-r rounded-r-xl data-[state=closed]:-translate-x-full data-[state=open]:translate-x-0",
|
|
45
|
+
right: "inset-y-0 right-0 h-full border-l rounded-l-xl data-[state=closed]:translate-x-full data-[state=open]:translate-x-0"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
compoundVariants: [
|
|
49
|
+
{ side: "left", size: "sm", className: "w-72" },
|
|
50
|
+
{ side: "left", size: "md", className: "w-96" },
|
|
51
|
+
{ side: "left", size: "lg", className: "w-[32rem]" },
|
|
52
|
+
{ side: "right", size: "sm", className: "w-72" },
|
|
53
|
+
{ side: "right", size: "md", className: "w-96" },
|
|
54
|
+
{ side: "right", size: "lg", className: "w-[32rem]" },
|
|
55
|
+
{ side: "top", size: "sm", className: "h-56" },
|
|
56
|
+
{ side: "top", size: "md", className: "h-72" },
|
|
57
|
+
{ side: "top", size: "lg", className: "h-80" },
|
|
58
|
+
{ side: "bottom", size: "sm", className: "h-56" },
|
|
59
|
+
{ side: "bottom", size: "md", className: "h-72" },
|
|
60
|
+
{ side: "bottom", size: "lg", className: "h-80" }
|
|
61
|
+
],
|
|
62
|
+
defaultVariants: {
|
|
63
|
+
variant: "default",
|
|
64
|
+
size: "md",
|
|
65
|
+
side: "right"
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
export const Sheet = DialogPrimitive.Root;
|
|
69
|
+
export const Drawer = Sheet;
|
|
70
|
+
export const SheetTrigger = React.forwardRef(({ className, variant, size, ...props }, ref) => (_jsx(DialogPrimitive.Trigger, { ref: ref, className: cn(sheetTriggerVariants({ variant, size }), className), ...props })));
|
|
71
|
+
SheetTrigger.displayName = DialogPrimitive.Trigger.displayName;
|
|
72
|
+
export const SheetClose = DialogPrimitive.Close;
|
|
73
|
+
export const SheetPortal = (props) => _jsx(DialogPrimitive.Portal, { ...props });
|
|
74
|
+
export const SheetOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Overlay, { ref: ref, className: cn("fixed inset-0 z-40 bg-black/40 backdrop-blur-sm transition-opacity duration-200 data-[state=closed]:opacity-0 data-[state=open]:opacity-100", className), ...props })));
|
|
75
|
+
SheetOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
76
|
+
export const SheetContent = React.forwardRef(({ className, children, variant, size, side, ...props }, ref) => (_jsxs(SheetPortal, { children: [_jsx(SheetOverlay, {}), _jsxs(DialogPrimitive.Content, { ref: ref, className: cn(sheetContentVariants({ variant, size, side }), className), ...props, children: [children, _jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-accent)] focus-visible:ring-offset-2", children: [_jsx(X, { className: "h-4 w-4" }), _jsx("span", { className: "sr-only", children: "Close" })] })] })] })));
|
|
77
|
+
SheetContent.displayName = DialogPrimitive.Content.displayName;
|
|
78
|
+
export const SheetHeader = React.forwardRef(({ className, ...props }, ref) => _jsx("div", { ref: ref, className: cn("flex flex-col space-y-1.5 text-left", className), ...props }));
|
|
79
|
+
SheetHeader.displayName = "SheetHeader";
|
|
80
|
+
export const SheetFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("mt-4 flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className), ...props })));
|
|
81
|
+
SheetFooter.displayName = "SheetFooter";
|
|
82
|
+
export const SheetTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Title, { ref: ref, className: cn("text-lg font-semibold", className), ...props })));
|
|
83
|
+
SheetTitle.displayName = DialogPrimitive.Title.displayName;
|
|
84
|
+
export const SheetDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Description, { ref: ref, className: cn("text-sm text-neutral-600", className), ...props })));
|
|
85
|
+
SheetDescription.displayName = DialogPrimitive.Description.displayName;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
declare const shimmerButtonVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "glass" | "accent" | null | undefined;
|
|
5
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
export interface ShimmerButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof shimmerButtonVariants> {
|
|
8
|
+
shimmerColor?: string;
|
|
9
|
+
shimmerDuration?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare const ShimmerButton: React.ForwardRefExoticComponent<ShimmerButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=shimmer-button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shimmer-button.d.ts","sourceRoot":"","sources":["../../src/components/shimmer-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,QAAA,MAAM,qBAAqB;;;8EA4B1B,CAAA;AAED,MAAM,WAAW,kBACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,qBAAqB,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,aAAa,8FAoCzB,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { cn } from "../lib/cn";
|
|
5
|
+
const shimmerButtonVariants = cva([
|
|
6
|
+
"group relative inline-flex items-center justify-center overflow-hidden rounded-xl",
|
|
7
|
+
"px-6 py-2.5 text-sm font-medium transition-all",
|
|
8
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-accent)] focus-visible:ring-offset-2",
|
|
9
|
+
"disabled:pointer-events-none disabled:opacity-50"
|
|
10
|
+
], {
|
|
11
|
+
variants: {
|
|
12
|
+
variant: {
|
|
13
|
+
default: "bg-neutral-900 text-white hover:bg-neutral-800 dark:bg-white dark:text-neutral-900 dark:hover:bg-neutral-100",
|
|
14
|
+
glass: "border border-white/20 [border-top-color:var(--glass-refraction-top)] bg-white/10 text-[var(--color-foreground)] backdrop-blur-md hover:bg-white/20 dark:border-white/10 dark:bg-white/[0.06]",
|
|
15
|
+
accent: "bg-[var(--color-accent)] text-[var(--color-accent-foreground)] hover:opacity-90"
|
|
16
|
+
},
|
|
17
|
+
size: {
|
|
18
|
+
sm: "h-8 px-4 text-xs",
|
|
19
|
+
md: "h-10 px-6 text-sm",
|
|
20
|
+
lg: "h-12 px-8 text-base"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
defaultVariants: {
|
|
24
|
+
variant: "default",
|
|
25
|
+
size: "md"
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
export const ShimmerButton = React.forwardRef(({ className, children, variant, size, shimmerColor = "rgba(255,255,255,0.3)", shimmerDuration = 2, style, ...props }, ref) => (_jsxs("button", { ref: ref, className: cn(shimmerButtonVariants({ variant, size }), className), style: style, ...props, children: [_jsx("span", { className: cn("pointer-events-none absolute inset-0", "motion-safe:animate-[skeleton-shimmer_var(--shimmer-duration,2s)_ease-in-out_infinite]", "motion-reduce:hidden"), style: {
|
|
29
|
+
"--shimmer-duration": `${shimmerDuration}s`,
|
|
30
|
+
background: `linear-gradient(90deg, transparent, ${shimmerColor}, transparent)`,
|
|
31
|
+
} }), _jsx("span", { className: "relative z-10", children: children })] })));
|
|
32
|
+
ShimmerButton.displayName = "ShimmerButton";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
declare const skeletonVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "glass" | "outline" | "ghost" | "matte" | "liquid" | null | undefined;
|
|
5
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
export type SkeletonProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof skeletonVariants> & {
|
|
8
|
+
decorative?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare const Skeleton: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
|
|
11
|
+
variant?: "default" | "glass" | "outline" | "ghost" | "matte" | "liquid" | null | undefined;
|
|
12
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
13
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string> & {
|
|
14
|
+
decorative?: boolean;
|
|
15
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=skeleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../src/components/skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,gBAAgB;;;8EA2BrB,CAAA;AA2BD,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAC9D,YAAY,CAAC,OAAO,gBAAgB,CAAC,GAAG;IACtC,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAEH,eAAO,MAAM,QAAQ;;;;iBAHJ,OAAO;wCAcvB,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { cn } from "../lib/cn";
|
|
5
|
+
const skeletonVariants = cva("relative isolate overflow-hidden rounded-xl", {
|
|
6
|
+
variants: {
|
|
7
|
+
variant: {
|
|
8
|
+
default: "bg-neutral-200/80 dark:bg-neutral-800/80",
|
|
9
|
+
glass: "border border-white/20 [border-top-color:var(--glass-refraction-top)] bg-[var(--glass-2-surface)] backdrop-blur-md backdrop-saturate-[180%] shadow-[0_0_0_1px_rgb(255_255_255_/_0.06)_inset] dark:border-white/[0.1]",
|
|
10
|
+
liquid: "border border-neutral-300/50 [border-top-color:var(--glass-refraction-top)] bg-[radial-gradient(circle_at_16%_12%,rgb(255_255_255_/_0.7),transparent_44%),linear-gradient(168deg,rgb(245_245_248),rgb(232_232_236))] dark:border-white/[0.12] dark:[border-top-color:rgb(255_255_255_/_0.2)] dark:bg-[linear-gradient(168deg,rgb(38_40_46),rgb(28_30_34))]",
|
|
11
|
+
matte: "border border-black/[0.06] bg-[linear-gradient(180deg,rgb(244_244_246),rgb(232_232_236))] dark:border-white/[0.1] dark:bg-[linear-gradient(180deg,rgb(40_42_48),rgb(30_32_36))]",
|
|
12
|
+
outline: "border border-neutral-300 bg-transparent dark:border-neutral-700",
|
|
13
|
+
ghost: "bg-neutral-100 dark:bg-neutral-800/50"
|
|
14
|
+
},
|
|
15
|
+
size: {
|
|
16
|
+
sm: "h-4",
|
|
17
|
+
md: "h-6",
|
|
18
|
+
lg: "h-10"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
defaultVariants: {
|
|
22
|
+
variant: "default",
|
|
23
|
+
size: "md"
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
const shimmerVariants = cva("pointer-events-none absolute inset-0 motion-safe:animate-skeleton-shimmer motion-reduce:hidden", {
|
|
27
|
+
variants: {
|
|
28
|
+
variant: {
|
|
29
|
+
default: "bg-gradient-to-r from-transparent via-white/60 to-transparent dark:via-white/[0.08]",
|
|
30
|
+
glass: "bg-gradient-to-r from-transparent via-white/50 to-transparent dark:via-white/[0.06]",
|
|
31
|
+
liquid: "bg-gradient-to-r from-transparent via-white/70 to-transparent dark:via-white/[0.1]",
|
|
32
|
+
matte: "bg-gradient-to-r from-transparent via-white/50 to-transparent dark:via-white/[0.06]",
|
|
33
|
+
outline: "bg-gradient-to-r from-transparent via-neutral-200/60 to-transparent dark:via-white/[0.06]",
|
|
34
|
+
ghost: "bg-gradient-to-r from-transparent via-white/70 to-transparent dark:via-white/[0.06]"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
defaultVariants: {
|
|
38
|
+
variant: "default"
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
export const Skeleton = React.forwardRef(({ className, variant, size, decorative = true, ...props }, ref) => (_jsx("div", { ref: ref, "aria-hidden": decorative ? true : undefined, className: cn(skeletonVariants({ variant, size }), className), ...props, children: _jsx("div", { className: shimmerVariants({ variant }) }) })));
|
|
42
|
+
Skeleton.displayName = "Skeleton";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
3
|
+
import { type VariantProps } from "class-variance-authority";
|
|
4
|
+
declare const sliderVariants: (props?: ({
|
|
5
|
+
variant?: "default" | "glass" | "outline" | "ghost" | "liquid" | null | undefined;
|
|
6
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
export type SliderProps = React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root> & VariantProps<typeof sliderVariants>;
|
|
9
|
+
export declare const Slider: React.ForwardRefExoticComponent<Omit<SliderPrimitive.SliderProps & React.RefAttributes<HTMLSpanElement>, "ref"> & VariantProps<(props?: ({
|
|
10
|
+
variant?: "default" | "glass" | "outline" | "ghost" | "liquid" | null | undefined;
|
|
11
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
12
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLSpanElement>>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=slider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../src/components/slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,cAAc;;;8EAmBlB,CAAA;AAwEF,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GACnF,YAAY,CAAC,OAAO,cAAc,CAAC,CAAA;AAErC,eAAO,MAAM,MAAM;;;uHAyBjB,CAAA"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
|
+
import { cn } from "../lib/cn";
|
|
6
|
+
const sliderVariants = cva("relative flex w-full touch-none select-none items-center", {
|
|
7
|
+
variants: {
|
|
8
|
+
variant: {
|
|
9
|
+
default: "",
|
|
10
|
+
glass: "",
|
|
11
|
+
outline: "",
|
|
12
|
+
ghost: "",
|
|
13
|
+
liquid: ""
|
|
14
|
+
},
|
|
15
|
+
size: {
|
|
16
|
+
sm: "",
|
|
17
|
+
md: "",
|
|
18
|
+
lg: ""
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
defaultVariants: {
|
|
22
|
+
variant: "default",
|
|
23
|
+
size: "md"
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
const trackVariants = cva("relative w-full grow overflow-hidden rounded-full transition-colors duration-fast ease-standard motion-reduce:transition-none", {
|
|
27
|
+
variants: {
|
|
28
|
+
variant: {
|
|
29
|
+
default: "bg-[var(--color-border)]/45 dark:bg-white/[0.12]",
|
|
30
|
+
glass: "bg-[var(--glass-1-surface)] backdrop-blur-md backdrop-saturate-[180%] border border-white/15 [border-top-color:var(--glass-refraction-top)] shadow-[0_0_0_1px_rgb(255_255_255_/_0.06)_inset] dark:border-white/[0.1]",
|
|
31
|
+
outline: "border border-[var(--color-border)] bg-transparent dark:border-white/20",
|
|
32
|
+
ghost: "bg-[var(--color-foreground)]/[0.12] dark:bg-white/[0.14]",
|
|
33
|
+
liquid: "border border-white/25 [border-top-color:var(--glass-refraction-top)] bg-[linear-gradient(180deg,rgb(255_255_255_/_0.52),rgb(242_242_242_/_0.32))] shadow-[0_0_0_1px_rgb(255_255_255_/_0.22)_inset] dark:border-white/[0.16] dark:[border-top-color:rgb(255_255_255_/_0.34)] dark:bg-[linear-gradient(180deg,rgb(255_255_255_/_0.12),rgb(255_255_255_/_0.06))]"
|
|
34
|
+
},
|
|
35
|
+
size: {
|
|
36
|
+
sm: "h-1.5",
|
|
37
|
+
md: "h-2",
|
|
38
|
+
lg: "h-3"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
defaultVariants: {
|
|
42
|
+
variant: "default",
|
|
43
|
+
size: "md"
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
const rangeVariants = cva("absolute h-full rounded-full", {
|
|
47
|
+
variants: {
|
|
48
|
+
variant: {
|
|
49
|
+
default: "bg-[var(--color-accent)]",
|
|
50
|
+
glass: "bg-[var(--color-accent)]/85 shadow-[0_0_0_1px_rgb(255_255_255_/_0.16)_inset,0_0_16px_var(--color-accent)/30]",
|
|
51
|
+
outline: "bg-[var(--color-accent)]/90",
|
|
52
|
+
ghost: "bg-[var(--color-foreground)]/80 dark:bg-white/85",
|
|
53
|
+
liquid: "bg-[var(--color-accent)] shadow-[0_0_18px_var(--color-accent)/35]"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
defaultVariants: {
|
|
57
|
+
variant: "default"
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
const thumbVariants = cva("block rounded-full border-2 shadow transition-[transform,background-color,border-color,box-shadow] duration-fast ease-standard focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-accent)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 motion-reduce:transition-none", {
|
|
61
|
+
variants: {
|
|
62
|
+
variant: {
|
|
63
|
+
default: "border-[var(--color-accent)] bg-[var(--color-surface)] hover:scale-105 active:scale-100 dark:bg-[var(--color-background)]",
|
|
64
|
+
glass: "bg-[var(--glass-3-surface)] backdrop-blur-md backdrop-saturate-[180%] border-white/30 [border-top-color:var(--glass-refraction-top)] shadow-[0_0_0_1px_rgb(255_255_255_/_0.12)_inset,var(--shadow-glass-sm)] dark:border-white/[0.15] hover:scale-105 active:scale-100",
|
|
65
|
+
outline: "border-[var(--color-border)] bg-[var(--color-surface)] hover:scale-105 hover:border-[var(--color-accent)]/70 dark:border-white/20 dark:bg-[var(--color-background)]",
|
|
66
|
+
ghost: "border-transparent bg-[var(--color-foreground)] text-[var(--color-background)] hover:scale-105 active:scale-100 dark:bg-white dark:text-[var(--color-background)]",
|
|
67
|
+
liquid: "border-[var(--color-accent)] bg-[var(--color-surface)] shadow-[0_0_0_2px_var(--color-accent)/20,0_6px_18px_var(--color-accent)/25] hover:scale-110 active:scale-100 dark:bg-[var(--color-background)]"
|
|
68
|
+
},
|
|
69
|
+
size: {
|
|
70
|
+
sm: "h-4 w-4",
|
|
71
|
+
md: "h-5 w-5",
|
|
72
|
+
lg: "h-6 w-6"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
defaultVariants: {
|
|
76
|
+
variant: "default",
|
|
77
|
+
size: "md"
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
export const Slider = React.forwardRef(({ className, variant, size, ...props }, ref) => {
|
|
81
|
+
const values = Array.isArray(props.value)
|
|
82
|
+
? props.value
|
|
83
|
+
: Array.isArray(props.defaultValue)
|
|
84
|
+
? props.defaultValue
|
|
85
|
+
: [0];
|
|
86
|
+
const thumbCount = Math.max(values.length, 1);
|
|
87
|
+
return (_jsxs(SliderPrimitive.Root, { ref: ref, className: cn(sliderVariants({ variant, size }), className), ...props, children: [_jsx(SliderPrimitive.Track, { className: cn(trackVariants({ variant, size })), children: _jsx(SliderPrimitive.Range, { className: cn(rangeVariants({ variant })) }) }), Array.from({ length: thumbCount }).map((_, index) => (_jsx(SliderPrimitive.Thumb, { className: cn(thumbVariants({ variant, size })) }, index)))] }));
|
|
88
|
+
});
|
|
89
|
+
Slider.displayName = "Slider";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Toaster as SonnerToaster, toast } from "sonner";
|
|
3
|
+
type ToasterVariant = "default" | "glass" | "matte";
|
|
4
|
+
type GlinToasterProps = Omit<React.ComponentPropsWithoutRef<typeof SonnerToaster>, "icons"> & {
|
|
5
|
+
/** Visual surface treatment for all toasts */
|
|
6
|
+
variant?: ToasterVariant;
|
|
7
|
+
};
|
|
8
|
+
declare const Toaster: React.ForwardRefExoticComponent<Omit<Omit<import("sonner").ToasterProps & React.RefAttributes<HTMLElement>, "ref">, "icons"> & {
|
|
9
|
+
/** Visual surface treatment for all toasts */
|
|
10
|
+
variant?: ToasterVariant;
|
|
11
|
+
} & React.RefAttributes<HTMLElement>>;
|
|
12
|
+
export { Toaster, toast };
|
|
13
|
+
export type { GlinToasterProps as ToasterProps };
|
|
14
|
+
//# sourceMappingURL=sonner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sonner.d.ts","sourceRoot":"","sources":["../../src/components/sonner.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAcxD,KAAK,cAAc,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAA;AAEnD,KAAK,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,aAAa,CAAC,EAAE,OAAO,CAAC,GAAG;IAC5F,8CAA8C;IAC9C,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB,CAAA;AAkED,QAAA,MAAM,OAAO;IApEX,8CAA8C;cACpC,cAAc;qCA2GzB,CAAA;AAID,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AACzB,YAAY,EAAE,gBAAgB,IAAI,YAAY,EAAE,CAAA"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Toaster as SonnerToaster, toast } from "sonner";
|
|
5
|
+
import { CheckCircle2, AlertTriangle, AlertCircle, Info, Loader2, X } from "lucide-react";
|
|
6
|
+
import { cn } from "../lib/cn";
|
|
7
|
+
const variantClassMap = {
|
|
8
|
+
default: {
|
|
9
|
+
toast: "group relative isolate overflow-hidden border-black/10 bg-[linear-gradient(180deg,rgb(255_255_255),rgb(244_244_246))] text-[var(--color-foreground)] shadow-[0_1px_0_rgb(255_255_255_/_0.9)_inset,0_14px_30px_-18px_rgb(15_23_42_/_0.3)] before:pointer-events-none before:absolute before:inset-x-0 before:top-0 before:h-px before:bg-gradient-to-r before:from-transparent before:via-white/80 before:to-transparent dark:border-white/[0.14] dark:bg-[linear-gradient(180deg,rgb(55_61_71_/_0.94),rgb(36_40_48_/_0.94))] dark:shadow-[0_1px_0_rgb(255_255_255_/_0.09)_inset,0_16px_34px_-18px_rgb(0_0_0_/_0.66)] dark:before:via-white/20",
|
|
10
|
+
title: "font-medium tracking-tight text-[var(--color-foreground)]",
|
|
11
|
+
description: "text-neutral-600 dark:text-neutral-300",
|
|
12
|
+
actionButton: "bg-neutral-900 text-white hover:bg-neutral-800 dark:bg-neutral-100 dark:text-neutral-950 dark:hover:bg-white",
|
|
13
|
+
cancelButton: "bg-black/[0.05] text-neutral-700 hover:bg-black/[0.09] dark:bg-white/[0.1] dark:text-neutral-200 dark:hover:bg-white/[0.15]",
|
|
14
|
+
closeButton: "text-neutral-500 hover:text-neutral-800 dark:text-neutral-300 dark:hover:text-white"
|
|
15
|
+
},
|
|
16
|
+
glass: {
|
|
17
|
+
toast: "group relative isolate overflow-hidden border-white/20 [border-top-color:var(--glass-refraction-top)] bg-[linear-gradient(155deg,rgb(255_255_255_/_0.66),rgb(246_246_246_/_0.36))] text-[var(--color-foreground)] backdrop-blur-xl backdrop-saturate-[180%] shadow-[0_0_0_1px_rgb(255_255_255_/_0.2)_inset,0_14px_30px_-18px_rgb(15_23_42_/_0.28)] before:pointer-events-none before:absolute before:inset-x-0 before:top-0 before:h-px before:bg-gradient-to-r before:from-transparent before:via-white/70 before:to-transparent dark:border-white/[0.12] dark:bg-[linear-gradient(155deg,rgb(255_255_255_/_0.15),rgb(255_255_255_/_0.05))] dark:shadow-[0_0_0_1px_rgb(255_255_255_/_0.1)_inset,0_16px_34px_-18px_rgb(0_0_0_/_0.64)] dark:before:via-white/22",
|
|
18
|
+
title: "font-medium tracking-tight text-[var(--color-foreground)]",
|
|
19
|
+
description: "text-neutral-600 dark:text-neutral-300",
|
|
20
|
+
actionButton: "bg-neutral-900 text-white hover:bg-neutral-800 dark:bg-neutral-100 dark:text-neutral-950 dark:hover:bg-white",
|
|
21
|
+
cancelButton: "bg-black/[0.05] text-neutral-700 hover:bg-black/[0.09] dark:bg-white/[0.1] dark:text-neutral-200 dark:hover:bg-white/[0.15]",
|
|
22
|
+
closeButton: "text-neutral-500 hover:text-neutral-800 dark:text-neutral-300 dark:hover:text-white"
|
|
23
|
+
},
|
|
24
|
+
matte: {
|
|
25
|
+
toast: "group relative isolate overflow-hidden border-black/12 bg-[linear-gradient(180deg,rgb(248_248_249),rgb(232_232_235))] text-[var(--color-foreground)] shadow-[0_1px_0_rgb(255_255_255_/_0.88)_inset,0_12px_28px_-18px_rgb(15_23_42_/_0.28)] before:pointer-events-none before:absolute before:inset-0 before:bg-[linear-gradient(180deg,rgb(255_255_255_/_0.52),transparent)] dark:border-white/[0.16] dark:bg-[linear-gradient(180deg,rgb(50_55_63_/_0.96),rgb(33_37_44_/_0.96))] dark:shadow-[0_1px_0_rgb(255_255_255_/_0.1)_inset,0_14px_30px_-18px_rgb(0_0_0_/_0.68)] dark:before:bg-[linear-gradient(180deg,rgb(255_255_255_/_0.1),transparent)]",
|
|
26
|
+
title: "font-medium tracking-tight text-[var(--color-foreground)]",
|
|
27
|
+
description: "text-neutral-600 dark:text-neutral-300",
|
|
28
|
+
actionButton: "bg-neutral-900 text-white hover:bg-neutral-800 dark:bg-neutral-100 dark:text-neutral-950 dark:hover:bg-white",
|
|
29
|
+
cancelButton: "bg-black/[0.05] text-neutral-700 hover:bg-black/[0.09] dark:bg-white/[0.1] dark:text-neutral-200 dark:hover:bg-white/[0.15]",
|
|
30
|
+
closeButton: "text-neutral-500 hover:text-neutral-800 dark:text-neutral-300 dark:hover:text-white"
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
/* ── Semantic type overrides (success/error/warning/info) ────────────────── */
|
|
34
|
+
const typeClassMap = {
|
|
35
|
+
success: "border-emerald-200/70 bg-emerald-50/95 text-emerald-900 shadow-[0_10px_22px_-18px_rgb(16_185_129_/_0.5)] [&_[data-title]]:text-emerald-900 [&_[data-description]]:text-emerald-800/80 dark:border-emerald-800/45 dark:bg-emerald-950/80 dark:text-emerald-200 dark:[&_[data-title]]:text-emerald-200 dark:[&_[data-description]]:text-emerald-300/80",
|
|
36
|
+
error: "border-red-200/70 bg-red-50/95 text-red-900 shadow-[0_10px_22px_-18px_rgb(239_68_68_/_0.5)] [&_[data-title]]:text-red-900 [&_[data-description]]:text-red-800/80 dark:border-red-800/45 dark:bg-red-950/80 dark:text-red-200 dark:[&_[data-title]]:text-red-200 dark:[&_[data-description]]:text-red-300/80",
|
|
37
|
+
warning: "border-amber-200/70 bg-amber-50/95 text-amber-900 shadow-[0_10px_22px_-18px_rgb(245_158_11_/_0.5)] [&_[data-title]]:text-amber-900 [&_[data-description]]:text-amber-800/80 dark:border-amber-800/45 dark:bg-amber-950/80 dark:text-amber-200 dark:[&_[data-title]]:text-amber-200 dark:[&_[data-description]]:text-amber-300/80",
|
|
38
|
+
info: "border-blue-200/70 bg-blue-50/95 text-blue-900 shadow-[0_10px_22px_-18px_rgb(59_130_246_/_0.5)] [&_[data-title]]:text-blue-900 [&_[data-description]]:text-blue-800/80 dark:border-blue-800/45 dark:bg-blue-950/80 dark:text-blue-200 dark:[&_[data-title]]:text-blue-200 dark:[&_[data-description]]:text-blue-300/80"
|
|
39
|
+
};
|
|
40
|
+
/* ── Custom icons ─────────────────────────────────────────────────────────── */
|
|
41
|
+
const iconClass = "size-[18px] shrink-0";
|
|
42
|
+
const customIcons = {
|
|
43
|
+
success: _jsx(CheckCircle2, { className: cn(iconClass, "text-emerald-600 dark:text-emerald-400") }),
|
|
44
|
+
info: _jsx(Info, { className: cn(iconClass, "text-blue-600 dark:text-blue-400") }),
|
|
45
|
+
warning: _jsx(AlertTriangle, { className: cn(iconClass, "text-amber-600 dark:text-amber-400") }),
|
|
46
|
+
error: _jsx(AlertCircle, { className: cn(iconClass, "text-red-600 dark:text-red-400") }),
|
|
47
|
+
loading: _jsx(Loader2, { className: cn(iconClass, "animate-spin text-neutral-500 dark:text-neutral-400") }),
|
|
48
|
+
close: _jsx(X, { className: "size-3.5" })
|
|
49
|
+
};
|
|
50
|
+
/* ── Toaster Component ────────────────────────────────────────────────────── */
|
|
51
|
+
const Toaster = React.forwardRef(({ variant = "default", className, ...props }, ref) => {
|
|
52
|
+
const classes = variantClassMap[variant];
|
|
53
|
+
return (_jsx(SonnerToaster, { ref: ref, className: cn("toaster group", className), icons: customIcons, toastOptions: {
|
|
54
|
+
unstyled: true,
|
|
55
|
+
classNames: {
|
|
56
|
+
toast: cn("flex w-full items-start gap-3 rounded-2xl border p-4 pr-3 transition-[transform,opacity,box-shadow,border-color,background-color] duration-normal ease-standard data-[mounted=true]:animate-in data-[removed=true]:animate-out data-[swipe=move]:translate-x-[var(--swipe-move-x)] data-[swipe=end]:translate-x-[var(--swipe-end-x)] data-[swipe=cancel]:translate-x-0 motion-reduce:transition-none", classes.toast),
|
|
57
|
+
title: cn("text-sm leading-tight", classes.title),
|
|
58
|
+
description: cn("text-sm leading-relaxed", classes.description),
|
|
59
|
+
actionButton: cn("inline-flex items-center justify-center rounded-lg border border-transparent px-3 py-1.5 text-xs font-medium transition-[background-color,color,border-color] duration-fast ease-standard", classes.actionButton),
|
|
60
|
+
cancelButton: cn("inline-flex items-center justify-center rounded-lg border border-transparent px-3 py-1.5 text-xs font-medium transition-[background-color,color,border-color] duration-fast ease-standard", classes.cancelButton),
|
|
61
|
+
closeButton: cn("rounded-md border border-transparent bg-black/[0.04] p-0.5 transition-[background-color,color,border-color] duration-fast dark:bg-white/[0.06]", classes.closeButton),
|
|
62
|
+
success: typeClassMap.success,
|
|
63
|
+
error: typeClassMap.error,
|
|
64
|
+
warning: typeClassMap.warning,
|
|
65
|
+
info: typeClassMap.info
|
|
66
|
+
}
|
|
67
|
+
}, ...props }));
|
|
68
|
+
});
|
|
69
|
+
Toaster.displayName = "Toaster";
|
|
70
|
+
export { Toaster, toast };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type GlassCardProps } from "./glass-card";
|
|
3
|
+
export type SpotlightCardProps = GlassCardProps & {
|
|
4
|
+
spotlightClassName?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const SpotlightCard: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & import("class-variance-authority").VariantProps<(props?: ({
|
|
7
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
8
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string> & {
|
|
9
|
+
spotlightClassName?: string;
|
|
10
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
//# sourceMappingURL=spotlight-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spotlight-card.d.ts","sourceRoot":"","sources":["../../src/components/spotlight-card.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7D,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG;IAChD,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,aAAa;;;yBAHH,MAAM;wCAyE5B,CAAA"}
|