@webdevarif/dashui 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 ADDED
@@ -0,0 +1,82 @@
1
+ # @webdevarif/dashui
2
+
3
+ > Universal dashboard UI component library with a 3-layer CSS token system.
4
+ > Used across all [webdevarif](https://webdevarif.com) projects.
5
+
6
+ ## Install
7
+
8
+ ```bash
9
+ npm install @webdevarif/dashui
10
+ ```
11
+
12
+ ## Setup
13
+
14
+ ```tsx
15
+ // 1. Import tokens (in your root layout)
16
+ import '@webdevarif/dashui/tokens'
17
+
18
+ // 2. Set theme on <html>
19
+ <html data-dashui-theme="light"> {/* or "dark" */}
20
+
21
+ // 3. Use components
22
+ import { Button, Card, DataTable, AppShell } from '@webdevarif/dashui'
23
+ ```
24
+
25
+ ## Token System (3 Layers)
26
+
27
+ | Layer | File | Purpose |
28
+ |---|---|---|
29
+ | 1 — Primitives | `tokens/primitives.css` | Raw values (colors, spacing, radii) |
30
+ | 2 — Semantic | `tokens/semantic-light/dark.css` | Meaningful aliases for components |
31
+ | 3 — Storefront | `tokens/storefront-schemes.css` | Per-section color schemes |
32
+
33
+ ## Dashboard Theming
34
+
35
+ ```html
36
+ <!-- Light mode (default) -->
37
+ <html data-dashui-theme="light">
38
+
39
+ <!-- Dark mode -->
40
+ <html data-dashui-theme="dark">
41
+ ```
42
+
43
+ ## Storefront Color Schemes
44
+
45
+ ```html
46
+ <!-- Each section uses a scheme -->
47
+ <section class="color-scheme-1">Light section</section>
48
+ <section class="color-scheme-2">Dark section</section>
49
+ <section class="color-scheme-3">Brand/accent section</section>
50
+ ```
51
+
52
+ Dynamic schemes (user-defined) are generated server-side via:
53
+ ```
54
+ GET /api/theme/{storeId}/styles.css
55
+ ```
56
+
57
+ ## Components
58
+
59
+ ### Primitives
60
+ `Button` `Badge` `Card` `Input` `Select` `Textarea` `Checkbox` `Switch` `Dialog` `Tabs` `Tooltip` `Skeleton` `Separator` `Label` `Popover` `DropdownMenu`
61
+
62
+ ### Layout
63
+ `AppShell` `Sidebar` `TopBar` `Page` `PageSection`
64
+
65
+ ### Data
66
+ `DataTable` `Stats` `Pagination` `EmptyState`
67
+
68
+ ### Form
69
+ `FormField` `FormLayout` `FormSection`
70
+
71
+ ### Feedback
72
+ `Alert` `ConfirmDialog` `LoadingSpinner`
73
+
74
+ ## Used In
75
+
76
+ - [Builify CMS](https://bulifycms.com) — dashboard + storefront
77
+ - [webdevarif portfolio](https://webdevarif.com) — admin panel
78
+ - [SeoHub](https://seo.webdevarif.com) — (planned)
79
+
80
+ ## License
81
+
82
+ MIT © [webdevarif](https://webdevarif.com)
@@ -0,0 +1,328 @@
1
+ import * as class_variance_authority_types from 'class-variance-authority/types';
2
+ import * as React$1 from 'react';
3
+ import { VariantProps } from 'class-variance-authority';
4
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
6
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
7
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
8
+ import * as LabelPrimitive from '@radix-ui/react-label';
9
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
10
+ import * as SelectPrimitive from '@radix-ui/react-select';
11
+ import * as SeparatorPrimitive from '@radix-ui/react-separator';
12
+ import * as SwitchPrimitives from '@radix-ui/react-switch';
13
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
14
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
15
+ import { ClassValue } from 'clsx';
16
+
17
+ declare const buttonVariants: (props?: ({
18
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
19
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
20
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
21
+ interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
22
+ asChild?: boolean;
23
+ }
24
+ declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
25
+
26
+ declare const badgeVariants: (props?: ({
27
+ variant?: "default" | "destructive" | "outline" | "secondary" | "success" | "warning" | null | undefined;
28
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
29
+ interface BadgeProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
30
+ }
31
+ declare function Badge({ className, variant, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
32
+
33
+ declare const Card: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
34
+ declare const CardHeader: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
35
+ declare const CardTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLHeadingElement> & React$1.RefAttributes<HTMLParagraphElement>>;
36
+ declare const CardDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLParagraphElement> & React$1.RefAttributes<HTMLParagraphElement>>;
37
+ declare const CardContent: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
38
+ declare const CardFooter: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
39
+
40
+ declare const Checkbox: React$1.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
41
+
42
+ declare const Dialog: React$1.FC<DialogPrimitive.DialogProps>;
43
+ declare const DialogTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
44
+ declare const DialogClose: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
45
+ declare const DialogPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
46
+ declare const DialogOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
47
+ declare const DialogContent: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
48
+ declare const DialogHeader: {
49
+ ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
50
+ displayName: string;
51
+ };
52
+ declare const DialogFooter: {
53
+ ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
54
+ displayName: string;
55
+ };
56
+ declare const DialogTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
57
+ declare const DialogDescription: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
58
+
59
+ declare const DropdownMenu: React$1.FC<DropdownMenuPrimitive.DropdownMenuProps>;
60
+ declare const DropdownMenuTrigger: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
61
+ declare const DropdownMenuGroup: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React$1.RefAttributes<HTMLDivElement>>;
62
+ declare const DropdownMenuPortal: React$1.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
63
+ declare const DropdownMenuSub: React$1.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
64
+ declare const DropdownMenuRadioGroup: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React$1.RefAttributes<HTMLDivElement>>;
65
+ declare const DropdownMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
66
+ inset?: boolean;
67
+ } & React$1.RefAttributes<HTMLDivElement>>;
68
+ declare const DropdownMenuSubContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
69
+ declare const DropdownMenuContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
70
+ declare const DropdownMenuItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
71
+ inset?: boolean;
72
+ } & React$1.RefAttributes<HTMLDivElement>>;
73
+ declare const DropdownMenuCheckboxItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
74
+ declare const DropdownMenuRadioItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
75
+ declare const DropdownMenuLabel: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
76
+ inset?: boolean;
77
+ } & React$1.RefAttributes<HTMLDivElement>>;
78
+ declare const DropdownMenuSeparator: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
79
+ declare const DropdownMenuShortcut: {
80
+ ({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): react_jsx_runtime.JSX.Element;
81
+ displayName: string;
82
+ };
83
+
84
+ interface InputProps extends React$1.InputHTMLAttributes<HTMLInputElement> {
85
+ error?: boolean;
86
+ }
87
+ declare const Input: React$1.ForwardRefExoticComponent<InputProps & React$1.RefAttributes<HTMLInputElement>>;
88
+
89
+ declare const Label: React$1.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React$1.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: class_variance_authority_types.ClassProp | undefined) => string> & React$1.RefAttributes<HTMLLabelElement>>;
90
+
91
+ declare const Popover: React$1.FC<PopoverPrimitive.PopoverProps>;
92
+ declare const PopoverTrigger: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
93
+ declare const PopoverContent: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
94
+
95
+ declare const Select: React$1.FC<SelectPrimitive.SelectProps>;
96
+ declare const SelectGroup: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React$1.RefAttributes<HTMLDivElement>>;
97
+ declare const SelectValue: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React$1.RefAttributes<HTMLSpanElement>>;
98
+ declare const SelectTrigger: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
99
+ declare const SelectScrollUpButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
100
+ declare const SelectScrollDownButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
101
+ declare const SelectContent: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
102
+ declare const SelectLabel: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
103
+ declare const SelectItem: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
104
+ declare const SelectSeparator: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
105
+
106
+ declare const Separator: React$1.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
107
+
108
+ declare function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
109
+
110
+ declare const Switch: React$1.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
111
+
112
+ declare const Tabs: React$1.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React$1.RefAttributes<HTMLDivElement>>;
113
+ declare const TabsList: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
114
+ declare const TabsTrigger: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
115
+ declare const TabsContent: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
116
+
117
+ interface TextareaProps extends React$1.TextareaHTMLAttributes<HTMLTextAreaElement> {
118
+ error?: boolean;
119
+ }
120
+ declare const Textarea: React$1.ForwardRefExoticComponent<TextareaProps & React$1.RefAttributes<HTMLTextAreaElement>>;
121
+
122
+ declare const TooltipProvider: React$1.FC<TooltipPrimitive.TooltipProviderProps>;
123
+ declare const Tooltip: React$1.FC<TooltipPrimitive.TooltipProps>;
124
+ declare const TooltipTrigger: React$1.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
125
+ declare const TooltipContent: React$1.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
126
+
127
+ interface AppShellProps {
128
+ sidebar: React$1.ReactNode;
129
+ children: React$1.ReactNode;
130
+ collapsed?: boolean;
131
+ }
132
+ declare function AppShell({ sidebar, children, collapsed }: AppShellProps): react_jsx_runtime.JSX.Element;
133
+
134
+ interface SidebarItem {
135
+ label: string;
136
+ href: string;
137
+ icon?: React$1.ComponentType<{
138
+ className?: string;
139
+ }>;
140
+ badge?: string | number;
141
+ children?: SidebarItem[];
142
+ active?: boolean;
143
+ }
144
+ interface SidebarProps {
145
+ logo?: React$1.ReactNode;
146
+ items: SidebarItem[];
147
+ footer?: React$1.ReactNode;
148
+ collapsed?: boolean;
149
+ onCollapse?: (collapsed: boolean) => void;
150
+ }
151
+ declare function Sidebar({ logo, items, footer, collapsed, onCollapse, }: SidebarProps): react_jsx_runtime.JSX.Element;
152
+
153
+ interface TopBarProps {
154
+ storeName?: string;
155
+ user?: {
156
+ name: string;
157
+ email: string;
158
+ avatar?: string;
159
+ };
160
+ onMenuToggle?: () => void;
161
+ actions?: React$1.ReactNode;
162
+ className?: string;
163
+ }
164
+ declare function TopBar({ storeName, user, onMenuToggle, actions, className, }: TopBarProps): react_jsx_runtime.JSX.Element;
165
+
166
+ interface Breadcrumb {
167
+ label: string;
168
+ href?: string;
169
+ }
170
+ interface PageProps {
171
+ title: string;
172
+ subtitle?: string;
173
+ actions?: React$1.ReactNode;
174
+ breadcrumbs?: Breadcrumb[];
175
+ children: React$1.ReactNode;
176
+ fullWidth?: boolean;
177
+ }
178
+ declare function Page({ title, subtitle, actions, breadcrumbs, children, fullWidth, }: PageProps): react_jsx_runtime.JSX.Element;
179
+
180
+ interface PageSectionProps {
181
+ title?: string;
182
+ description?: string;
183
+ children: React$1.ReactNode;
184
+ actions?: React$1.ReactNode;
185
+ className?: string;
186
+ }
187
+ declare function PageSection({ title, description, children, actions, className, }: PageSectionProps): react_jsx_runtime.JSX.Element;
188
+
189
+ interface Column<T> {
190
+ key: keyof T | string;
191
+ header: string;
192
+ cell?: (row: T) => React$1.ReactNode;
193
+ sortable?: boolean;
194
+ width?: string;
195
+ }
196
+ interface DataTableProps<T> {
197
+ columns: Column<T>[];
198
+ data: T[];
199
+ loading?: boolean;
200
+ pagination?: {
201
+ page: number;
202
+ pageSize: number;
203
+ total: number;
204
+ onPageChange: (page: number) => void;
205
+ onPageSizeChange?: (size: number) => void;
206
+ };
207
+ selection?: {
208
+ selected: string[];
209
+ onSelect: (ids: string[]) => void;
210
+ idKey?: keyof T;
211
+ };
212
+ onRowClick?: (row: T) => void;
213
+ emptyState?: React$1.ReactNode;
214
+ actions?: React$1.ReactNode;
215
+ }
216
+ declare function DataTable<T extends Record<string, unknown>>({ columns, data, loading, pagination, selection, onRowClick, emptyState, actions, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
217
+
218
+ interface EmptyStateProps {
219
+ icon?: React$1.ComponentType<{
220
+ className?: string;
221
+ }>;
222
+ title: string;
223
+ description?: string;
224
+ action?: React$1.ReactNode;
225
+ className?: string;
226
+ }
227
+ declare function EmptyState({ icon: Icon, title, description, action, className, }: EmptyStateProps): react_jsx_runtime.JSX.Element;
228
+
229
+ interface PaginationProps {
230
+ page: number;
231
+ totalPages: number;
232
+ onPageChange: (page: number) => void;
233
+ className?: string;
234
+ }
235
+ declare function Pagination({ page, totalPages, onPageChange, className, }: PaginationProps): react_jsx_runtime.JSX.Element | null;
236
+
237
+ interface Stat {
238
+ label: string;
239
+ value: string | number;
240
+ change?: {
241
+ value: number;
242
+ type: "increase" | "decrease";
243
+ };
244
+ icon?: React$1.ComponentType<{
245
+ className?: string;
246
+ }>;
247
+ }
248
+ interface StatsProps {
249
+ stats: Stat[];
250
+ columns?: 2 | 3 | 4;
251
+ className?: string;
252
+ }
253
+ declare function Stats({ stats, columns, className }: StatsProps): react_jsx_runtime.JSX.Element;
254
+
255
+ interface FormFieldProps {
256
+ label: string;
257
+ error?: string;
258
+ hint?: string;
259
+ required?: boolean;
260
+ children: React$1.ReactNode;
261
+ className?: string;
262
+ }
263
+ declare function FormField({ label, error, hint, required, children, className, }: FormFieldProps): react_jsx_runtime.JSX.Element;
264
+
265
+ interface FormLayoutProps {
266
+ title?: string;
267
+ description?: string;
268
+ children: React$1.ReactNode;
269
+ actions?: React$1.ReactNode;
270
+ className?: string;
271
+ }
272
+ declare function FormLayout({ title, description, children, actions, className, }: FormLayoutProps): react_jsx_runtime.JSX.Element;
273
+
274
+ interface FormSectionProps {
275
+ title: string;
276
+ description?: string;
277
+ children: React$1.ReactNode;
278
+ className?: string;
279
+ }
280
+ declare function FormSection({ title, description, children, className, }: FormSectionProps): react_jsx_runtime.JSX.Element;
281
+
282
+ interface AlertProps {
283
+ variant?: "info" | "success" | "warning" | "error";
284
+ title?: string;
285
+ children: React$1.ReactNode;
286
+ dismissible?: boolean;
287
+ onDismiss?: () => void;
288
+ className?: string;
289
+ }
290
+ declare function Alert({ variant, title, children, dismissible, onDismiss, className, }: AlertProps): react_jsx_runtime.JSX.Element;
291
+
292
+ interface ConfirmDialogProps {
293
+ open: boolean;
294
+ onOpenChange: (open: boolean) => void;
295
+ title: string;
296
+ description?: string;
297
+ confirmLabel?: string;
298
+ cancelLabel?: string;
299
+ onConfirm: () => void;
300
+ loading?: boolean;
301
+ variant?: "default" | "destructive";
302
+ }
303
+ declare function ConfirmDialog({ open, onOpenChange, title, description, confirmLabel, cancelLabel, onConfirm, loading, variant, }: ConfirmDialogProps): react_jsx_runtime.JSX.Element;
304
+
305
+ interface LoadingSpinnerProps {
306
+ size?: "sm" | "md" | "lg";
307
+ className?: string;
308
+ }
309
+ declare function LoadingSpinner({ size, className }: LoadingSpinnerProps): react_jsx_runtime.JSX.Element;
310
+
311
+ declare function useDisclosure(initial?: boolean): {
312
+ isOpen: boolean;
313
+ open: () => void;
314
+ close: () => void;
315
+ toggle: () => void;
316
+ onOpenChange: React$1.Dispatch<React$1.SetStateAction<boolean>>;
317
+ };
318
+ declare function usePagination(total: number, pageSize?: number): {
319
+ page: number;
320
+ setPage: React$1.Dispatch<React$1.SetStateAction<number>>;
321
+ pageSize: number;
322
+ total: number;
323
+ totalPages: number;
324
+ };
325
+
326
+ declare function cn(...inputs: ClassValue[]): string;
327
+
328
+ export { Alert, type AlertProps, AppShell, type AppShellProps, Badge, type BadgeProps, type Breadcrumb, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, type Column, ConfirmDialog, type ConfirmDialogProps, DataTable, type DataTableProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, FormField, type FormFieldProps, FormLayout, type FormLayoutProps, FormSection, type FormSectionProps, Input, type InputProps, Label, LoadingSpinner, type LoadingSpinnerProps, Page, type PageProps, PageSection, type PageSectionProps, Pagination, type PaginationProps, Popover, PopoverContent, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sidebar, type SidebarItem, type SidebarProps, Skeleton, type Stat, Stats, type StatsProps, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type TextareaProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopBar, type TopBarProps, badgeVariants, buttonVariants, cn, useDisclosure, usePagination };