@esprydi/ui 0.0.0-stage → 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/README.md CHANGED
@@ -1,3 +1,82 @@
1
- # Temporary Holding Version
1
+ # @esprydi/ui
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ > Clean Minimalist & Dark Modern UI Component Library based on Radix Primitives and Tailwind CSS for React.
4
+
5
+ Didesain khusus untuk menghindari tampilan generik bawaan AI dengan menghadirkan:
6
+ - **Obsidian Deep Space Palette**: Kontras tinggi, warna latar belakang gelap berlapis (*surface depths*).
7
+ - **Subtle Glow & Glassmorphism**: Hover borders halus, efek neon pill, glass backdrop filters.
8
+ - **Enhanced Primitives**: Varian `glow`, `glass`, `subtle` pada Button, Card, Badge, dan Input.
9
+ - **Ready-to-use Layout Shells**: `AppShell` dan `PageHeader` untuk dashboard SaaS modern.
10
+
11
+ ---
12
+
13
+ ## 📦 Instalasi
14
+
15
+ ```bash
16
+ npm install @esprydi/ui lucide-react
17
+ # atau
18
+ yarn add @esprydi/ui lucide-react
19
+ ```
20
+
21
+ ### 1. Konfigurasi Tailwind CSS
22
+ Di file `tailwind.config.ts` aplikasi Anda:
23
+
24
+ ```ts
25
+ import type { Config } from "tailwindcss";
26
+ import esprydiPreset from "@esprydi/ui/tailwind";
27
+
28
+ const config: Config = {
29
+ content: [
30
+ "./index.html",
31
+ "./src/**/*.{ts,tsx}",
32
+ "./node_modules/@esprydi/ui/dist/**/*.{js,mjs}",
33
+ ],
34
+ presets: [esprydiPreset],
35
+ };
36
+
37
+ export default config;
38
+ ```
39
+
40
+ ### 2. Import Styles
41
+ Di root entry aplikasi Anda (`main.tsx` atau `App.tsx`):
42
+
43
+ ```tsx
44
+ import "@esprydi/ui/styles.css";
45
+ ```
46
+
47
+ ---
48
+
49
+ ## 🚀 Penggunaan Dasar
50
+
51
+ ```tsx
52
+ import { Button, Card, CardHeader, CardTitle, CardContent, Badge, AppShell } from "@esprydi/ui";
53
+ import { Sparkles } from "lucide-react";
54
+
55
+ export function Dashboard() {
56
+ return (
57
+ <Card variant="glass">
58
+ <CardHeader>
59
+ <div className="flex items-center justify-between">
60
+ <CardTitle>Dark Modern Card</CardTitle>
61
+ <Badge variant="neon" dot>Online</Badge>
62
+ </div>
63
+ </CardHeader>
64
+ <CardContent>
65
+ <Button variant="glow">
66
+ <Sparkles className="w-4 h-4 mr-2" />
67
+ Action Glow
68
+ </Button>
69
+ </CardContent>
70
+ </Card>
71
+ );
72
+ }
73
+ ```
74
+
75
+ ---
76
+
77
+ ## 🤖 Panduan untuk AI Assistant (`AGENTS.md`)
78
+ Jika Anda menggunakan asisten AI (seperti Antigravity, Cursor, Copilot) pada project yang mengonsumsi package ini, sertakan instruksi berikut agar AI menghasilkan UI signature:
79
+
80
+ 1. Selalu prioritaskan komponen dari `@esprydi/ui` (misalnya `<Button variant="glow">`, `<Card variant="glass">`).
81
+ 2. Jangan pernah menggunakan arbitrary classes seperti `bg-blue-600` atau `border-gray-800`.
82
+ 3. Gunakan token `bg-surface-1`, `bg-surface-2`, `border-border/60`.
@@ -0,0 +1,85 @@
1
+ // src/tailwind/preset.ts
2
+ var esprydiPreset = {
3
+ darkMode: ["class"],
4
+ content: [],
5
+ theme: {
6
+ extend: {
7
+ colors: {
8
+ border: "hsl(var(--border))",
9
+ input: "hsl(var(--input))",
10
+ ring: "hsl(var(--ring))",
11
+ background: "hsl(var(--background))",
12
+ foreground: "hsl(var(--foreground))",
13
+ primary: {
14
+ DEFAULT: "hsl(var(--primary))",
15
+ foreground: "hsl(var(--primary-foreground))"
16
+ },
17
+ secondary: {
18
+ DEFAULT: "hsl(var(--secondary))",
19
+ foreground: "hsl(var(--secondary-foreground))"
20
+ },
21
+ destructive: {
22
+ DEFAULT: "hsl(var(--destructive))",
23
+ foreground: "hsl(var(--destructive-foreground))"
24
+ },
25
+ muted: {
26
+ DEFAULT: "hsl(var(--muted))",
27
+ foreground: "hsl(var(--muted-foreground))"
28
+ },
29
+ accent: {
30
+ DEFAULT: "hsl(var(--accent))",
31
+ foreground: "hsl(var(--accent-foreground))"
32
+ },
33
+ popover: {
34
+ DEFAULT: "hsl(var(--popover))",
35
+ foreground: "hsl(var(--popover-foreground))"
36
+ },
37
+ card: {
38
+ DEFAULT: "hsl(var(--card))",
39
+ foreground: "hsl(var(--card-foreground))"
40
+ },
41
+ surface: {
42
+ 1: "hsl(var(--surface-depth-1))",
43
+ 2: "hsl(var(--surface-depth-2))"
44
+ },
45
+ ocean: {
46
+ deep: "#086288",
47
+ coastal: "#4D8DBA",
48
+ ice: "#97D7FF",
49
+ light: "#FFFEFC"
50
+ }
51
+ },
52
+ borderRadius: {
53
+ lg: "var(--radius)",
54
+ md: "calc(var(--radius) - 2px)",
55
+ sm: "calc(var(--radius) - 4px)"
56
+ },
57
+ keyframes: {
58
+ "accordion-down": {
59
+ from: { height: "0" },
60
+ to: { height: "var(--radix-accordion-content-height)" }
61
+ },
62
+ "accordion-up": {
63
+ from: { height: "var(--radix-accordion-content-height)" },
64
+ to: { height: "0" }
65
+ },
66
+ "pulse-glow": {
67
+ "0%, 100%": { opacity: "0.4", transform: "scale(1)" },
68
+ "50%": { opacity: "0.8", transform: "scale(1.05)" }
69
+ }
70
+ },
71
+ animation: {
72
+ "accordion-down": "accordion-down 0.2s ease-out",
73
+ "accordion-up": "accordion-up 0.2s ease-out",
74
+ "pulse-glow": "pulse-glow 4s ease-in-out infinite"
75
+ }
76
+ }
77
+ }
78
+ };
79
+ var preset_default = esprydiPreset;
80
+
81
+ export {
82
+ esprydiPreset,
83
+ preset_default
84
+ };
85
+ //# sourceMappingURL=chunk-3GSLHHK2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tailwind/preset.ts"],"sourcesContent":["import type { Config } from \"tailwindcss\";\n\nexport const esprydiPreset = {\n darkMode: [\"class\"],\n content: [],\n theme: {\n extend: {\n colors: {\n border: \"hsl(var(--border))\",\n input: \"hsl(var(--input))\",\n ring: \"hsl(var(--ring))\",\n background: \"hsl(var(--background))\",\n foreground: \"hsl(var(--foreground))\",\n primary: {\n DEFAULT: \"hsl(var(--primary))\",\n foreground: \"hsl(var(--primary-foreground))\",\n },\n secondary: {\n DEFAULT: \"hsl(var(--secondary))\",\n foreground: \"hsl(var(--secondary-foreground))\",\n },\n destructive: {\n DEFAULT: \"hsl(var(--destructive))\",\n foreground: \"hsl(var(--destructive-foreground))\",\n },\n muted: {\n DEFAULT: \"hsl(var(--muted))\",\n foreground: \"hsl(var(--muted-foreground))\",\n },\n accent: {\n DEFAULT: \"hsl(var(--accent))\",\n foreground: \"hsl(var(--accent-foreground))\",\n },\n popover: {\n DEFAULT: \"hsl(var(--popover))\",\n foreground: \"hsl(var(--popover-foreground))\",\n },\n card: {\n DEFAULT: \"hsl(var(--card))\",\n foreground: \"hsl(var(--card-foreground))\",\n },\n surface: {\n 1: \"hsl(var(--surface-depth-1))\",\n 2: \"hsl(var(--surface-depth-2))\",\n },\n ocean: {\n deep: \"#086288\",\n coastal: \"#4D8DBA\",\n ice: \"#97D7FF\",\n light: \"#FFFEFC\",\n },\n },\n borderRadius: {\n lg: \"var(--radius)\",\n md: \"calc(var(--radius) - 2px)\",\n sm: \"calc(var(--radius) - 4px)\",\n },\n keyframes: {\n \"accordion-down\": {\n from: { height: \"0\" },\n to: { height: \"var(--radix-accordion-content-height)\" },\n },\n \"accordion-up\": {\n from: { height: \"var(--radix-accordion-content-height)\" },\n to: { height: \"0\" },\n },\n \"pulse-glow\": {\n \"0%, 100%\": { opacity: \"0.4\", transform: \"scale(1)\" },\n \"50%\": { opacity: \"0.8\", transform: \"scale(1.05)\" },\n },\n },\n animation: {\n \"accordion-down\": \"accordion-down 0.2s ease-out\",\n \"accordion-up\": \"accordion-up 0.2s ease-out\",\n \"pulse-glow\": \"pulse-glow 4s ease-in-out infinite\",\n },\n },\n },\n} satisfies Partial<Config>;\n\nexport default esprydiPreset;\n"],"mappings":";AAEO,IAAM,gBAAgB;AAAA,EAC3B,UAAU,CAAC,OAAO;AAAA,EAClB,SAAS,CAAC;AAAA,EACV,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,QAAQ;AAAA,QACN,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,SAAS;AAAA,UACP,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,WAAW;AAAA,UACT,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,aAAa;AAAA,UACX,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,OAAO;AAAA,UACL,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,QAAQ;AAAA,UACN,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,SAAS;AAAA,UACP,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,MAAM;AAAA,UACJ,SAAS;AAAA,UACT,YAAY;AAAA,QACd;AAAA,QACA,SAAS;AAAA,UACP,GAAG;AAAA,UACH,GAAG;AAAA,QACL;AAAA,QACA,OAAO;AAAA,UACL,MAAM;AAAA,UACN,SAAS;AAAA,UACT,KAAK;AAAA,UACL,OAAO;AAAA,QACT;AAAA,MACF;AAAA,MACA,cAAc;AAAA,QACZ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,WAAW;AAAA,QACT,kBAAkB;AAAA,UAChB,MAAM,EAAE,QAAQ,IAAI;AAAA,UACpB,IAAI,EAAE,QAAQ,wCAAwC;AAAA,QACxD;AAAA,QACA,gBAAgB;AAAA,UACd,MAAM,EAAE,QAAQ,wCAAwC;AAAA,UACxD,IAAI,EAAE,QAAQ,IAAI;AAAA,QACpB;AAAA,QACA,cAAc;AAAA,UACZ,YAAY,EAAE,SAAS,OAAO,WAAW,WAAW;AAAA,UACpD,OAAO,EAAE,SAAS,OAAO,WAAW,cAAc;AAAA,QACpD;AAAA,MACF;AAAA,MACA,WAAW;AAAA,QACT,kBAAkB;AAAA,QAClB,gBAAgB;AAAA,QAChB,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,iBAAQ;","names":[]}
@@ -0,0 +1,126 @@
1
+ import { ClassValue } from 'clsx';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import * as React from 'react';
4
+ import { VariantProps } from 'class-variance-authority';
5
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
6
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
7
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
8
+ export { default as esprydiPreset } from './tailwind/preset.mjs';
9
+
10
+ declare function cn(...inputs: ClassValue[]): string;
11
+
12
+ declare const buttonVariants: (props?: ({
13
+ variant?: "link" | "secondary" | "destructive" | "coastal" | "ice" | "default" | "outline" | "ghost" | "glow" | "glass" | "subtle" | null | undefined;
14
+ size?: "lg" | "sm" | "default" | "icon" | null | undefined;
15
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
16
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
17
+ asChild?: boolean;
18
+ }
19
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
20
+
21
+ declare const cardVariants: (props?: ({
22
+ variant?: "coastal" | "ice" | "default" | "glow" | "glass" | "elevated" | null | undefined;
23
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
24
+ interface CardProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
25
+ }
26
+ declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
27
+ declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
28
+ declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
29
+ declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
30
+ declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
31
+ declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
32
+
33
+ declare const badgeVariants: (props?: ({
34
+ variant?: "secondary" | "destructive" | "ocean" | "coastal" | "ice" | "default" | "outline" | "subtle" | null | undefined;
35
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
36
+ interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
37
+ dot?: boolean;
38
+ }
39
+ declare function Badge({ className, variant, dot, children, ...props }: BadgeProps): React.JSX.Element;
40
+
41
+ interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
42
+ glow?: boolean;
43
+ }
44
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
45
+
46
+ interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
47
+ glow?: boolean;
48
+ }
49
+ declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
50
+
51
+ declare const Dialog: React.FC<DialogPrimitive.DialogProps>;
52
+ declare const DialogTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
53
+ declare const DialogPortal: React.FC<DialogPrimitive.DialogPortalProps>;
54
+ declare const DialogClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
55
+ declare const DialogOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
56
+ declare const DialogContent: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
57
+ declare const DialogHeader: {
58
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
59
+ displayName: string;
60
+ };
61
+ declare const DialogFooter: {
62
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
63
+ displayName: string;
64
+ };
65
+ declare const DialogTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
66
+ declare const DialogDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
67
+
68
+ declare const DropdownMenu: React.FC<DropdownMenuPrimitive.DropdownMenuProps>;
69
+ declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
70
+ declare const DropdownMenuGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
71
+ declare const DropdownMenuPortal: React.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
72
+ declare const DropdownMenuSub: React.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
73
+ declare const DropdownMenuRadioGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
74
+ declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
75
+ inset?: boolean;
76
+ } & React.RefAttributes<HTMLDivElement>>;
77
+ declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
78
+ declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
79
+ declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
80
+ inset?: boolean;
81
+ } & React.RefAttributes<HTMLDivElement>>;
82
+ declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
83
+ declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
84
+ declare const DropdownMenuLabel: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
85
+ inset?: boolean;
86
+ } & React.RefAttributes<HTMLDivElement>>;
87
+ declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
88
+
89
+ declare const TooltipProvider: React.FC<TooltipPrimitive.TooltipProviderProps>;
90
+ declare const Tooltip: React.FC<TooltipPrimitive.TooltipProps>;
91
+ declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
92
+ declare const TooltipContent: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
93
+
94
+ declare const Table: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableElement> & React.RefAttributes<HTMLTableElement>>;
95
+ declare const TableHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
96
+ declare const TableBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
97
+ declare const TableFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
98
+ declare const TableRow: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableRowElement> & React.RefAttributes<HTMLTableRowElement>>;
99
+ declare const TableHead: React.ForwardRefExoticComponent<React.ThHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
100
+ declare const TableCell: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
101
+ declare const TableCaption: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableCaptionElement> & React.RefAttributes<HTMLTableCaptionElement>>;
102
+
103
+ interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
104
+ src?: string;
105
+ alt?: string;
106
+ fallback?: string;
107
+ glow?: boolean;
108
+ }
109
+ declare function Avatar({ src, alt, fallback, glow, className, ...props }: AvatarProps): React.JSX.Element;
110
+
111
+ declare function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
112
+
113
+ interface AppShellProps extends React.HTMLAttributes<HTMLDivElement> {
114
+ sidebar?: React.ReactNode;
115
+ header?: React.ReactNode;
116
+ children: React.ReactNode;
117
+ }
118
+ declare function AppShell({ sidebar, header, children, className, ...props }: AppShellProps): React.JSX.Element;
119
+ interface PageHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
120
+ title: string;
121
+ description?: string;
122
+ actions?: React.ReactNode;
123
+ }
124
+ declare function PageHeader({ title, description, actions, className, ...props }: PageHeaderProps): React.JSX.Element;
125
+
126
+ export { AppShell, type AppShellProps, Avatar, type AvatarProps, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Input, type InputProps, PageHeader, type PageHeaderProps, Skeleton, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, type TextareaProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn };
@@ -0,0 +1,126 @@
1
+ import { ClassValue } from 'clsx';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import * as React from 'react';
4
+ import { VariantProps } from 'class-variance-authority';
5
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
6
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
7
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
8
+ export { default as esprydiPreset } from './tailwind/preset.js';
9
+
10
+ declare function cn(...inputs: ClassValue[]): string;
11
+
12
+ declare const buttonVariants: (props?: ({
13
+ variant?: "link" | "secondary" | "destructive" | "coastal" | "ice" | "default" | "outline" | "ghost" | "glow" | "glass" | "subtle" | null | undefined;
14
+ size?: "lg" | "sm" | "default" | "icon" | null | undefined;
15
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
16
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
17
+ asChild?: boolean;
18
+ }
19
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
20
+
21
+ declare const cardVariants: (props?: ({
22
+ variant?: "coastal" | "ice" | "default" | "glow" | "glass" | "elevated" | null | undefined;
23
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
24
+ interface CardProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
25
+ }
26
+ declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
27
+ declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
28
+ declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
29
+ declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
30
+ declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
31
+ declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
32
+
33
+ declare const badgeVariants: (props?: ({
34
+ variant?: "secondary" | "destructive" | "ocean" | "coastal" | "ice" | "default" | "outline" | "subtle" | null | undefined;
35
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
36
+ interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
37
+ dot?: boolean;
38
+ }
39
+ declare function Badge({ className, variant, dot, children, ...props }: BadgeProps): React.JSX.Element;
40
+
41
+ interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
42
+ glow?: boolean;
43
+ }
44
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
45
+
46
+ interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
47
+ glow?: boolean;
48
+ }
49
+ declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
50
+
51
+ declare const Dialog: React.FC<DialogPrimitive.DialogProps>;
52
+ declare const DialogTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
53
+ declare const DialogPortal: React.FC<DialogPrimitive.DialogPortalProps>;
54
+ declare const DialogClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
55
+ declare const DialogOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
56
+ declare const DialogContent: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
57
+ declare const DialogHeader: {
58
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
59
+ displayName: string;
60
+ };
61
+ declare const DialogFooter: {
62
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
63
+ displayName: string;
64
+ };
65
+ declare const DialogTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
66
+ declare const DialogDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
67
+
68
+ declare const DropdownMenu: React.FC<DropdownMenuPrimitive.DropdownMenuProps>;
69
+ declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
70
+ declare const DropdownMenuGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
71
+ declare const DropdownMenuPortal: React.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
72
+ declare const DropdownMenuSub: React.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
73
+ declare const DropdownMenuRadioGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
74
+ declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
75
+ inset?: boolean;
76
+ } & React.RefAttributes<HTMLDivElement>>;
77
+ declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
78
+ declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
79
+ declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
80
+ inset?: boolean;
81
+ } & React.RefAttributes<HTMLDivElement>>;
82
+ declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
83
+ declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
84
+ declare const DropdownMenuLabel: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
85
+ inset?: boolean;
86
+ } & React.RefAttributes<HTMLDivElement>>;
87
+ declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
88
+
89
+ declare const TooltipProvider: React.FC<TooltipPrimitive.TooltipProviderProps>;
90
+ declare const Tooltip: React.FC<TooltipPrimitive.TooltipProps>;
91
+ declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
92
+ declare const TooltipContent: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
93
+
94
+ declare const Table: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableElement> & React.RefAttributes<HTMLTableElement>>;
95
+ declare const TableHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
96
+ declare const TableBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
97
+ declare const TableFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
98
+ declare const TableRow: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableRowElement> & React.RefAttributes<HTMLTableRowElement>>;
99
+ declare const TableHead: React.ForwardRefExoticComponent<React.ThHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
100
+ declare const TableCell: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
101
+ declare const TableCaption: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableCaptionElement> & React.RefAttributes<HTMLTableCaptionElement>>;
102
+
103
+ interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
104
+ src?: string;
105
+ alt?: string;
106
+ fallback?: string;
107
+ glow?: boolean;
108
+ }
109
+ declare function Avatar({ src, alt, fallback, glow, className, ...props }: AvatarProps): React.JSX.Element;
110
+
111
+ declare function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
112
+
113
+ interface AppShellProps extends React.HTMLAttributes<HTMLDivElement> {
114
+ sidebar?: React.ReactNode;
115
+ header?: React.ReactNode;
116
+ children: React.ReactNode;
117
+ }
118
+ declare function AppShell({ sidebar, header, children, className, ...props }: AppShellProps): React.JSX.Element;
119
+ interface PageHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
120
+ title: string;
121
+ description?: string;
122
+ actions?: React.ReactNode;
123
+ }
124
+ declare function PageHeader({ title, description, actions, className, ...props }: PageHeaderProps): React.JSX.Element;
125
+
126
+ export { AppShell, type AppShellProps, Avatar, type AvatarProps, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Input, type InputProps, PageHeader, type PageHeaderProps, Skeleton, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, type TextareaProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn };