@webdevarif/dashui 1.2.6 → 1.2.8

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/index.d.mts DELETED
@@ -1,836 +0,0 @@
1
- import * as class_variance_authority_types from 'class-variance-authority/types';
2
- import * as React$1 from 'react';
3
- import { HTMLAttributes, ComponentProps } from 'react';
4
- import { VariantProps } from 'class-variance-authority';
5
- import * as react_jsx_runtime from 'react/jsx-runtime';
6
- import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
7
- import * as DialogPrimitive from '@radix-ui/react-dialog';
8
- import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
9
- import * as LabelPrimitive from '@radix-ui/react-label';
10
- import * as PopoverPrimitive from '@radix-ui/react-popover';
11
- import * as SelectPrimitive from '@radix-ui/react-select';
12
- import * as SeparatorPrimitive from '@radix-ui/react-separator';
13
- import * as SwitchPrimitives from '@radix-ui/react-switch';
14
- import * as TabsPrimitive from '@radix-ui/react-tabs';
15
- import * as TooltipPrimitive from '@radix-ui/react-tooltip';
16
- import * as Slider from '@radix-ui/react-slider';
17
- import { ClassValue } from 'clsx';
18
- export { ThemeProvider, useTheme } from 'next-themes';
19
-
20
- declare const buttonVariants: (props?: ({
21
- variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
22
- size?: "default" | "sm" | "lg" | "icon" | null | undefined;
23
- } & class_variance_authority_types.ClassProp) | undefined) => string;
24
- interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
25
- asChild?: boolean;
26
- }
27
- declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
28
-
29
- declare const badgeVariants: (props?: ({
30
- variant?: "default" | "destructive" | "outline" | "secondary" | "success" | "warning" | null | undefined;
31
- } & class_variance_authority_types.ClassProp) | undefined) => string;
32
- interface BadgeProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
33
- }
34
- declare function Badge({ className, variant, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
35
-
36
- declare const Card: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
37
- declare const CardHeader: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
38
- declare const CardTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLHeadingElement> & React$1.RefAttributes<HTMLParagraphElement>>;
39
- declare const CardDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLParagraphElement> & React$1.RefAttributes<HTMLParagraphElement>>;
40
- declare const CardContent: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
41
- declare const CardFooter: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
42
-
43
- declare const Checkbox: React$1.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
44
-
45
- declare const Dialog: React$1.FC<DialogPrimitive.DialogProps>;
46
- declare const DialogTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
47
- declare const DialogClose: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
48
- declare const DialogPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
49
- declare const DialogOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
50
- declare const DialogContent: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
51
- declare const DialogHeader: {
52
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
53
- displayName: string;
54
- };
55
- declare const DialogFooter: {
56
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
57
- displayName: string;
58
- };
59
- declare const DialogTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
60
- declare const DialogDescription: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
61
-
62
- declare const DropdownMenu: React$1.FC<DropdownMenuPrimitive.DropdownMenuProps>;
63
- declare const DropdownMenuTrigger: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
64
- declare const DropdownMenuGroup: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React$1.RefAttributes<HTMLDivElement>>;
65
- declare const DropdownMenuPortal: React$1.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
66
- declare const DropdownMenuSub: React$1.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
67
- declare const DropdownMenuRadioGroup: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React$1.RefAttributes<HTMLDivElement>>;
68
- declare const DropdownMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
69
- inset?: boolean;
70
- } & React$1.RefAttributes<HTMLDivElement>>;
71
- declare const DropdownMenuSubContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
72
- declare const DropdownMenuContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
73
- declare const DropdownMenuItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
74
- inset?: boolean;
75
- } & React$1.RefAttributes<HTMLDivElement>>;
76
- declare const DropdownMenuCheckboxItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
77
- declare const DropdownMenuRadioItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
78
- declare const DropdownMenuLabel: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
79
- inset?: boolean;
80
- } & React$1.RefAttributes<HTMLDivElement>>;
81
- declare const DropdownMenuSeparator: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
82
- declare const DropdownMenuShortcut: {
83
- ({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): react_jsx_runtime.JSX.Element;
84
- displayName: string;
85
- };
86
-
87
- interface InputProps extends React$1.InputHTMLAttributes<HTMLInputElement> {
88
- error?: boolean;
89
- }
90
- declare const Input: React$1.ForwardRefExoticComponent<InputProps & React$1.RefAttributes<HTMLInputElement>>;
91
-
92
- declare const Label: React$1.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React$1.RefAttributes<HTMLLabelElement>, "ref"> & React$1.RefAttributes<HTMLLabelElement>>;
93
-
94
- declare const Popover: React$1.FC<PopoverPrimitive.PopoverProps>;
95
- declare const PopoverTrigger: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
96
- declare const PopoverContent: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
97
-
98
- declare const Select: React$1.FC<SelectPrimitive.SelectProps>;
99
- declare const SelectGroup: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React$1.RefAttributes<HTMLDivElement>>;
100
- declare const SelectValue: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React$1.RefAttributes<HTMLSpanElement>>;
101
- declare const SelectTrigger: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
102
- declare const SelectScrollUpButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
103
- declare const SelectScrollDownButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
104
- declare const SelectContent: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
105
- declare const SelectLabel: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
106
- declare const SelectItem: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
107
- declare const SelectSeparator: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
108
-
109
- declare const Separator: React$1.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
110
-
111
- declare const Switch: React$1.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
112
-
113
- declare const Tabs: React$1.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React$1.RefAttributes<HTMLDivElement>>;
114
- declare const TabsList: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
115
- declare const TabsTrigger: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
116
- declare const TabsContent: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
117
-
118
- interface TextareaProps extends React$1.TextareaHTMLAttributes<HTMLTextAreaElement> {
119
- error?: boolean;
120
- }
121
- declare const Textarea: React$1.ForwardRefExoticComponent<TextareaProps & React$1.RefAttributes<HTMLTextAreaElement>>;
122
-
123
- declare const TooltipProvider: React$1.FC<TooltipPrimitive.TooltipProviderProps>;
124
- declare const Tooltip: React$1.FC<TooltipPrimitive.TooltipProps>;
125
- declare const TooltipTrigger: React$1.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
126
- declare const TooltipContent: React$1.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
127
-
128
- interface AppShellProps {
129
- sidebar: React$1.ReactNode;
130
- children: React$1.ReactNode;
131
- collapsed?: boolean;
132
- }
133
- declare function AppShell({ sidebar, children, collapsed }: AppShellProps): react_jsx_runtime.JSX.Element;
134
-
135
- interface SidebarItem {
136
- label: string;
137
- href: string;
138
- icon?: React$1.ComponentType<{
139
- className?: string;
140
- }>;
141
- badge?: string | number;
142
- children?: SidebarItem[];
143
- active?: boolean;
144
- }
145
- interface SidebarProps {
146
- logo?: React$1.ReactNode;
147
- items: SidebarItem[];
148
- footer?: React$1.ReactNode;
149
- collapsed?: boolean;
150
- onCollapse?: (collapsed: boolean) => void;
151
- }
152
- declare function Sidebar({ logo, items, footer, collapsed, onCollapse, }: SidebarProps): react_jsx_runtime.JSX.Element;
153
-
154
- interface TopBarProps {
155
- storeName?: string;
156
- user?: {
157
- name: string;
158
- email: string;
159
- avatar?: string;
160
- };
161
- onMenuToggle?: () => void;
162
- actions?: React$1.ReactNode;
163
- className?: string;
164
- }
165
- declare function TopBar({ storeName, user, onMenuToggle, actions, className, }: TopBarProps): react_jsx_runtime.JSX.Element;
166
-
167
- interface Breadcrumb {
168
- label: string;
169
- href?: string;
170
- }
171
- interface PageProps {
172
- title: string;
173
- subtitle?: string;
174
- actions?: React$1.ReactNode;
175
- breadcrumbs?: Breadcrumb[];
176
- children: React$1.ReactNode;
177
- fullWidth?: boolean;
178
- }
179
- declare function Page({ title, subtitle, actions, breadcrumbs, children, fullWidth, }: PageProps): react_jsx_runtime.JSX.Element;
180
-
181
- interface PageSectionProps {
182
- title?: string;
183
- description?: string;
184
- children: React$1.ReactNode;
185
- actions?: React$1.ReactNode;
186
- className?: string;
187
- }
188
- declare function PageSection({ title, description, children, actions, className, }: PageSectionProps): react_jsx_runtime.JSX.Element;
189
-
190
- interface SearchBarProps {
191
- value?: string;
192
- onChange?: (value: string) => void;
193
- placeholder?: string;
194
- shortcut?: string;
195
- className?: string;
196
- width?: string;
197
- }
198
- declare function SearchBar({ value, onChange, placeholder, shortcut, className, width, }: SearchBarProps): react_jsx_runtime.JSX.Element;
199
-
200
- interface NotificationBellProps {
201
- count?: number;
202
- onClick?: () => void;
203
- className?: string;
204
- }
205
- declare function NotificationBell({ count, onClick, className, }: NotificationBellProps): react_jsx_runtime.JSX.Element;
206
-
207
- interface ThemeToggleProps {
208
- className?: string;
209
- /** External controlled theme value. When provided, next-themes is not used. */
210
- theme?: string;
211
- /** External toggle handler. When provided, next-themes setTheme is not called. */
212
- onToggle?: () => void;
213
- }
214
- declare function ThemeToggle({ className, theme: externalTheme, onToggle }: ThemeToggleProps): react_jsx_runtime.JSX.Element;
215
-
216
- interface NavItem {
217
- href: string;
218
- label: string;
219
- icon?: React$1.ReactNode;
220
- badge?: string | number;
221
- children?: NavItem[];
222
- }
223
- interface DashboardLayoutProps {
224
- logo?: React$1.ReactNode;
225
- appName?: string;
226
- navItems: NavItem[];
227
- bottomNavItems?: NavItem[];
228
- activeHref?: string;
229
- onNavigate?: (href: string) => void;
230
- searchPlaceholder?: string;
231
- searchShortcut?: string;
232
- notificationCount?: number;
233
- onNotificationClick?: () => void;
234
- user?: {
235
- name: string;
236
- email: string;
237
- avatar?: string;
238
- };
239
- onSignOut?: () => void;
240
- children: React$1.ReactNode;
241
- defaultCollapsed?: boolean;
242
- footerContent?: React$1.ReactNode;
243
- }
244
- declare function DashboardLayout({ logo, appName, navItems, bottomNavItems, activeHref, onNavigate, searchPlaceholder, searchShortcut, notificationCount, onNotificationClick, user, onSignOut, children, defaultCollapsed, footerContent, }: DashboardLayoutProps): react_jsx_runtime.JSX.Element;
245
-
246
- interface Column<T> {
247
- key: keyof T | string;
248
- header: string;
249
- cell?: (row: T) => React$1.ReactNode;
250
- sortable?: boolean;
251
- width?: string;
252
- }
253
- interface DataTableProps<T> {
254
- columns: Column<T>[];
255
- data: T[];
256
- loading?: boolean;
257
- pagination?: {
258
- page: number;
259
- pageSize: number;
260
- total: number;
261
- onPageChange: (page: number) => void;
262
- onPageSizeChange?: (size: number) => void;
263
- };
264
- selection?: {
265
- selected: string[];
266
- onSelect: (ids: string[]) => void;
267
- idKey?: keyof T;
268
- };
269
- onRowClick?: (row: T) => void;
270
- emptyState?: React$1.ReactNode;
271
- actions?: React$1.ReactNode;
272
- }
273
- declare function DataTable<T extends Record<string, unknown>>({ columns, data, loading, pagination, selection, onRowClick, emptyState, actions, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
274
-
275
- interface EmptyStateProps {
276
- icon?: React$1.ComponentType<{
277
- className?: string;
278
- }>;
279
- title: string;
280
- description?: string;
281
- action?: React$1.ReactNode;
282
- className?: string;
283
- }
284
- declare function EmptyState({ icon: Icon, title, description, action, className, }: EmptyStateProps): react_jsx_runtime.JSX.Element;
285
-
286
- interface PaginationProps {
287
- page: number;
288
- totalPages: number;
289
- onPageChange: (page: number) => void;
290
- className?: string;
291
- }
292
- declare function Pagination({ page, totalPages, onPageChange, className, }: PaginationProps): react_jsx_runtime.JSX.Element | null;
293
-
294
- interface Stat {
295
- label: string;
296
- value: string | number;
297
- change?: {
298
- value: number;
299
- type: "increase" | "decrease";
300
- };
301
- icon?: React$1.ComponentType<{
302
- className?: string;
303
- }>;
304
- }
305
- interface StatsProps {
306
- stats: Stat[];
307
- columns?: 2 | 3 | 4;
308
- className?: string;
309
- }
310
- declare function Stats({ stats, columns, className }: StatsProps): react_jsx_runtime.JSX.Element;
311
-
312
- type PlanId = "BASIC" | "GROW" | "ADVANCED" | string;
313
- interface PlanBadgeProps {
314
- plan: PlanId;
315
- size?: "sm" | "md";
316
- className?: string;
317
- }
318
- declare function PlanBadge({ plan, size, className }: PlanBadgeProps): react_jsx_runtime.JSX.Element;
319
-
320
- interface StorageBarProps {
321
- used: number;
322
- limit: number | null;
323
- plan?: string;
324
- collapsed?: boolean;
325
- className?: string;
326
- }
327
- declare function StorageBar({ used, limit, plan, collapsed, className, }: StorageBarProps): react_jsx_runtime.JSX.Element;
328
-
329
- /**
330
- * UploadZone — Drag & drop file input
331
- *
332
- * Presentation-only. Calls your callback with selected files.
333
- * You handle: validation, upload, progress, error handling.
334
- *
335
- * Props:
336
- * - onFiles: (files: File[]) => void — called when user selects/drops files
337
- * - accept?: string — MIME types (e.g., "image/*")
338
- * - multiple?: boolean
339
- * - disabled?: boolean
340
- */
341
- declare function UploadZone({ onFiles, accept, multiple, disabled, }: {
342
- onFiles: (files: File[]) => void;
343
- accept?: string;
344
- multiple?: boolean;
345
- disabled?: boolean;
346
- }): react_jsx_runtime.JSX.Element;
347
-
348
- /**
349
- * UploadProgressPanel — Display upload progress for multiple files
350
- *
351
- * Presentation-only. Shows status, progress, and allows retry/cancel.
352
- * You handle: actual upload logic.
353
- *
354
- * Props:
355
- * - items: UploadItem[] — files being uploaded
356
- * - onRetry?: (id: string) => void
357
- * - onCancel?: (id: string) => void
358
- * - onCancelAll?: () => void
359
- */
360
- type UploadProgressItem = {
361
- id: string;
362
- name: string;
363
- mimeType: string;
364
- status: 'pending' | 'uploading' | 'done' | 'failed';
365
- progress: number;
366
- error?: string;
367
- };
368
- declare function UploadProgressPanel({ items, onRetry, onCancel, onCancelAll, }: {
369
- items: UploadProgressItem[];
370
- onRetry?: (id: string) => void;
371
- onCancel?: (id: string) => void;
372
- onCancelAll?: () => void;
373
- }): react_jsx_runtime.JSX.Element | null;
374
-
375
- interface ImagePickerFieldProps {
376
- value?: string;
377
- filename?: string;
378
- onPickerOpen?: () => void;
379
- onRemove?: () => void;
380
- size?: "sm" | "md" | "lg";
381
- emptyLabel?: string;
382
- className?: string;
383
- }
384
- declare function ImagePickerField({ value, filename, onPickerOpen, onRemove, size, emptyLabel, className, }: ImagePickerFieldProps): react_jsx_runtime.JSX.Element;
385
-
386
- interface MediaCardFile {
387
- id: string;
388
- name: string;
389
- url: string;
390
- mimeType: string;
391
- size: number;
392
- width?: number | null;
393
- height?: number | null;
394
- }
395
- interface MediaCardProps {
396
- file: MediaCardFile;
397
- selected?: boolean;
398
- onClick?: () => void;
399
- className?: string;
400
- }
401
- declare function MediaCard({ file, selected, onClick, className }: MediaCardProps): react_jsx_runtime.JSX.Element;
402
-
403
- interface FormFieldProps {
404
- label: string;
405
- error?: string;
406
- hint?: string;
407
- required?: boolean;
408
- children: React$1.ReactNode;
409
- className?: string;
410
- }
411
- declare function FormField({ label, error, hint, required, children, className, }: FormFieldProps): react_jsx_runtime.JSX.Element;
412
-
413
- interface FormLayoutProps {
414
- title?: string;
415
- description?: string;
416
- children: React$1.ReactNode;
417
- actions?: React$1.ReactNode;
418
- className?: string;
419
- }
420
- declare function FormLayout({ title, description, children, actions, className, }: FormLayoutProps): react_jsx_runtime.JSX.Element;
421
-
422
- interface FormSectionProps {
423
- title: string;
424
- description?: string;
425
- children: React$1.ReactNode;
426
- className?: string;
427
- }
428
- declare function FormSection({ title, description, children, className, }: FormSectionProps): react_jsx_runtime.JSX.Element;
429
-
430
- /**
431
- * LocalInput — Prevents cursor jumping in form-heavy UIs
432
- *
433
- * Problem: When parent component re-renders, native input loses focus.
434
- * Solution: Maintains local state + syncs from parent only when not focused.
435
- *
436
- * Props:
437
- * - value: number | string (from parent)
438
- * - onChange: (val: string) => void (called on every keystroke OR on blur)
439
- * - commitOnBlur?: boolean (if true, only commits to parent on blur; if false, commits immediately)
440
- * - ...rest: HTML input attributes
441
- */
442
- declare function LocalInput({ value, onChange, commitOnBlur, ...rest }: Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange'> & {
443
- value: number | string;
444
- onChange: (val: string) => void;
445
- commitOnBlur?: boolean;
446
- }): react_jsx_runtime.JSX.Element;
447
-
448
- /**
449
- * Responsive input device types and constants
450
- */
451
- type DeviceKey = 'desktop' | 'laptop' | 'tablet' | 'mobile';
452
- interface DeviceOption {
453
- key: DeviceKey;
454
- label: string;
455
- width: string;
456
- }
457
- declare const DEVICES: DeviceOption[];
458
- declare const DEVICE_ICONS: Record<DeviceKey, React.ReactNode>;
459
-
460
- /**
461
- * ResponsiveSizeDeviceIcon
462
- *
463
- * Device picker icon + dropdown menu.
464
- * Typically sits next to a "Size" label in forms.
465
- *
466
- * Props:
467
- * - activeDevice: Currently selected device
468
- * - setActiveDevice: Callback to change device
469
- */
470
- declare function ResponsiveSizeDeviceIcon({ activeDevice, setActiveDevice, }: {
471
- activeDevice: DeviceKey;
472
- setActiveDevice: (d: DeviceKey) => void;
473
- }): react_jsx_runtime.JSX.Element;
474
-
475
- /**
476
- * ResponsiveSizeField
477
- *
478
- * Bordered input field with device-aware number/text input + unit selector.
479
- * Supports responsive sizes by device (desktop, laptop, tablet, mobile).
480
- * Supports custom CSS values (calc, clamp, etc.) when unit is 'custom'.
481
- *
482
- * Props:
483
- * - value: Size values by device
484
- * - unit: Current unit (px, rem, em, vh, vw, custom)
485
- * - customUnit?: Custom CSS value (e.g., "calc(100% - 20px)")
486
- * - activeDevice: Currently selected device
487
- * - onSizeChange: Callback when size changes
488
- * - onUnitChange: Callback when unit changes
489
- * - onCustomChange?: Callback when custom value changes
490
- */
491
- declare function ResponsiveSizeField({ value, unit, customUnit, activeDevice, onSizeChange, onUnitChange, onCustomChange, }: {
492
- value: Partial<Record<DeviceKey, number>>;
493
- unit: string;
494
- customUnit?: string;
495
- activeDevice: DeviceKey;
496
- onSizeChange: (dev: DeviceKey, val: number) => void;
497
- onUnitChange: (unit: string) => void;
498
- onCustomChange?: (val: string) => void;
499
- }): react_jsx_runtime.JSX.Element;
500
-
501
- interface AlertProps {
502
- variant?: "info" | "success" | "warning" | "error";
503
- title?: string;
504
- children: React$1.ReactNode;
505
- dismissible?: boolean;
506
- onDismiss?: () => void;
507
- className?: string;
508
- }
509
- declare function Alert({ variant, title, children, dismissible, onDismiss, className, }: AlertProps): react_jsx_runtime.JSX.Element;
510
-
511
- interface ConfirmDialogProps {
512
- open: boolean;
513
- onOpenChange: (open: boolean) => void;
514
- title: string;
515
- description?: string;
516
- confirmLabel?: string;
517
- cancelLabel?: string;
518
- onConfirm: () => void;
519
- loading?: boolean;
520
- variant?: "default" | "destructive";
521
- }
522
- declare function ConfirmDialog({ open, onOpenChange, title, description, confirmLabel, cancelLabel, onConfirm, loading, variant, }: ConfirmDialogProps): react_jsx_runtime.JSX.Element;
523
-
524
- interface LoadingSpinnerProps {
525
- size?: "sm" | "md" | "lg";
526
- className?: string;
527
- }
528
- declare function LoadingSpinner({ size, className }: LoadingSpinnerProps): react_jsx_runtime.JSX.Element;
529
-
530
- type PostStatus = "DRAFT" | "PUBLISHED" | "SCHEDULED" | "ARCHIVED";
531
- interface PostStatusBadgeProps {
532
- status: PostStatus;
533
- size?: "sm" | "md";
534
- className?: string;
535
- }
536
- declare function PostStatusBadge({ status, size, className, }: PostStatusBadgeProps): react_jsx_runtime.JSX.Element;
537
-
538
- interface PostListItem {
539
- id: string;
540
- title: string;
541
- slug: string;
542
- status: PostStatus;
543
- author?: string | null;
544
- publishedAt?: Date | string | null;
545
- createdAt: Date | string;
546
- featuredImageUrl?: string | null;
547
- excerpt?: string | null;
548
- }
549
- interface PostListTableProps {
550
- posts: PostListItem[];
551
- loading?: boolean;
552
- singularLabel?: string;
553
- onEdit?: (id: string) => void;
554
- onDelete?: (id: string) => void;
555
- onDuplicate?: (id: string) => void;
556
- onStatusChange?: (id: string, status: PostStatus) => void;
557
- emptyMessage?: string;
558
- emptyIcon?: React$1.ReactNode;
559
- onNewPost?: () => void;
560
- newPostLabel?: string;
561
- className?: string;
562
- }
563
- declare function PostListTable({ posts, loading, singularLabel, onEdit, onDelete, onDuplicate, onStatusChange, emptyMessage, emptyIcon, onNewPost, newPostLabel, className, }: PostListTableProps): react_jsx_runtime.JSX.Element;
564
-
565
- interface PostFiltersBarProps {
566
- search: string;
567
- onSearch: (v: string) => void;
568
- status: string;
569
- onStatusChange: (v: string) => void;
570
- onNew?: () => void;
571
- newLabel?: string;
572
- total?: number;
573
- typeLabel?: string;
574
- className?: string;
575
- }
576
- declare function PostFiltersBar({ search, onSearch, status, onStatusChange, onNew, newLabel, total, typeLabel, className, }: PostFiltersBarProps): react_jsx_runtime.JSX.Element;
577
-
578
- interface PostEditorShellProps {
579
- title?: string;
580
- backLabel?: string;
581
- onBack?: () => void;
582
- onSave?: () => void;
583
- onPublish?: () => void;
584
- saving?: boolean;
585
- publishing?: boolean;
586
- status?: PostStatus;
587
- children: React$1.ReactNode;
588
- sidebar: React$1.ReactNode;
589
- className?: string;
590
- }
591
- declare function PostEditorShell({ title, backLabel, onBack, onSave, onPublish, saving, publishing, status, children, sidebar, className, }: PostEditorShellProps): react_jsx_runtime.JSX.Element;
592
-
593
- interface SlugInputProps {
594
- value: string;
595
- onChange: (value: string) => void;
596
- onGenerate?: () => void;
597
- prefix?: string;
598
- disabled?: boolean;
599
- className?: string;
600
- }
601
- declare function SlugInput({ value, onChange, onGenerate, prefix, disabled, className, }: SlugInputProps): react_jsx_runtime.JSX.Element;
602
-
603
- interface PostSidebarSectionProps {
604
- title: string;
605
- children: React$1.ReactNode;
606
- defaultOpen?: boolean;
607
- className?: string;
608
- }
609
- declare function PostSidebarSection({ title, children, defaultOpen, className, }: PostSidebarSectionProps): react_jsx_runtime.JSX.Element;
610
-
611
- interface HslColorInputProps {
612
- value: string;
613
- onChange: (v: string) => void;
614
- className?: string;
615
- inputClassName?: string;
616
- disabled?: boolean;
617
- }
618
- declare function HslColorInput({ value, onChange, className, inputClassName, disabled }: HslColorInputProps): react_jsx_runtime.JSX.Element;
619
-
620
- interface ColorPickerContextValue {
621
- hue: number;
622
- saturation: number;
623
- lightness: number;
624
- alpha: number;
625
- mode: string;
626
- setHue: (h: number) => void;
627
- setSaturation: (s: number) => void;
628
- setLightness: (l: number) => void;
629
- setAlpha: (a: number) => void;
630
- setMode: (mode: string) => void;
631
- }
632
- declare const useColorPicker: () => ColorPickerContextValue;
633
- type ColorPickerProps = HTMLAttributes<HTMLDivElement> & {
634
- defaultValue?: string;
635
- onChange?: (hex: string) => void;
636
- };
637
- declare const ColorPicker: ({ defaultValue, onChange, className, children, ...props }: ColorPickerProps) => react_jsx_runtime.JSX.Element;
638
- declare const ColorPickerSelection: React$1.MemoExoticComponent<({ className, ...props }: HTMLAttributes<HTMLDivElement>) => react_jsx_runtime.JSX.Element>;
639
- declare const ColorPickerHue: ({ className, ...props }: Omit<ComponentProps<typeof Slider.Root>, "value" | "onValueChange" | "max" | "step">) => react_jsx_runtime.JSX.Element;
640
- declare const ColorPickerAlpha: ({ className, ...props }: Omit<ComponentProps<typeof Slider.Root>, "value" | "onValueChange" | "max" | "step">) => react_jsx_runtime.JSX.Element;
641
- declare const ColorPickerEyeDropper: ({ className, ...props }: HTMLAttributes<HTMLButtonElement>) => react_jsx_runtime.JSX.Element;
642
- type ColorPickerOutputProps = HTMLAttributes<HTMLDivElement>;
643
- declare const ColorPickerOutput: ({ className, ...props }: ColorPickerOutputProps) => react_jsx_runtime.JSX.Element;
644
- type ColorPickerFormatProps = HTMLAttributes<HTMLInputElement>;
645
- declare const ColorPickerFormat: ({ className, ...props }: ColorPickerFormatProps) => react_jsx_runtime.JSX.Element;
646
- declare const ColorPickerHexOutput: ({ className, ...props }: HTMLAttributes<HTMLDivElement>) => react_jsx_runtime.JSX.Element;
647
-
648
- /**
649
- * TiptapEditor — Rich text editor with live editing
650
- *
651
- * Presentation-only. Consumer handles:
652
- * - Saving (getJSON() when ready)
653
- * - Upload handling
654
- * - Validation
655
- *
656
- * Props:
657
- * - value: Record<string, any> | string | null — JSON content from editor.getJSON()
658
- * - onChange: (json: Record<string, any>) => void — called on every change
659
- * - placeholder?: string — placeholder text
660
- * - disabled?: boolean
661
- * - className?: string — wrapper classes
662
- */
663
- declare function TiptapEditor({ value, onChange, placeholder, disabled, className, }: {
664
- value: Record<string, any> | string | null;
665
- onChange: (json: Record<string, any>) => void;
666
- placeholder?: string;
667
- disabled?: boolean;
668
- className?: string;
669
- }): react_jsx_runtime.JSX.Element | null;
670
-
671
- /**
672
- * ThemeBuilder — Visual theme editor shell
673
- *
674
- * Consumer provides:
675
- * - initialTheme: Current theme data
676
- * - onSave: (themeData) => void
677
- * - onPreview: (html) => void
678
- *
679
- * Includes:
680
- * - Icon strip sidebar (AI, Variables, Styles)
681
- * - Variables panel (Color Schema + Typography + Page Layout)
682
- * - Preview iframe
683
- *
684
- * This is the shell. Consumer handles:
685
- * - API persistence
686
- * - Preview rendering (Tailwind + Alpine)
687
- * - Theme data structure
688
- */
689
- interface Theme {
690
- id: string;
691
- name: string;
692
- variables?: Record<string, any>;
693
- colorSchemas?: Array<any>;
694
- typography?: Record<string, any>;
695
- [key: string]: any;
696
- }
697
- interface ThemeBuilderProps {
698
- theme: Theme;
699
- onSave: (theme: Theme) => void;
700
- onPreviewUpdate?: (previewHtml: string) => void;
701
- previewUrl?: string;
702
- }
703
- declare function ThemeBuilder({ theme, onSave, onPreviewUpdate, previewUrl }: ThemeBuilderProps): react_jsx_runtime.JSX.Element;
704
-
705
- /**
706
- * ColorSchemaPanel — Color token editor with light/dark support
707
- *
708
- * Consumer provides:
709
- * - schemas: Array of color schemas
710
- * - onSave: (schemas) => void
711
- * - onSchemaSelect: (schemaId) => void
712
- */
713
- interface ColorSchema {
714
- id: string;
715
- name: string;
716
- light: Record<string, string>;
717
- dark: Record<string, string>;
718
- }
719
- declare function ColorSchemaPanel({ schemas, activeSchemaId, onSchemaSelect, onSchemaSave, onSchemaCreate, }: {
720
- schemas: ColorSchema[];
721
- activeSchemaId?: string;
722
- onSchemaSelect: (id: string) => void;
723
- onSchemaSave: (schema: ColorSchema) => void;
724
- onSchemaCreate: (name: string) => void;
725
- }): react_jsx_runtime.JSX.Element;
726
-
727
- /**
728
- * TypographyPanel — Font & text settings editor
729
- *
730
- * Consumer provides:
731
- * - typography: Typography settings object
732
- * - onSave: (typography) => void
733
- */
734
- interface TextPreset {
735
- size: Record<string, number>;
736
- sizeUnit: string;
737
- lineHeight: string;
738
- fontRole: string;
739
- weight: number;
740
- letterSpacing: string;
741
- }
742
- interface TypographySettings {
743
- fonts: Record<string, string>;
744
- body: TextPreset;
745
- headings: Record<string, TextPreset>;
746
- }
747
- declare function TypographyPanel({ typography, onSave, }: {
748
- typography: TypographySettings;
749
- onSave: (settings: TypographySettings) => void;
750
- }): react_jsx_runtime.JSX.Element;
751
-
752
- declare function useDisclosure(initial?: boolean): {
753
- isOpen: boolean;
754
- open: () => void;
755
- close: () => void;
756
- toggle: () => void;
757
- onOpenChange: React$1.Dispatch<React$1.SetStateAction<boolean>>;
758
- };
759
- declare function usePagination(total: number, pageSize?: number): {
760
- page: number;
761
- setPage: React$1.Dispatch<React$1.SetStateAction<number>>;
762
- pageSize: number;
763
- total: number;
764
- totalPages: number;
765
- };
766
-
767
- declare function cn(...inputs: ClassValue[]): string;
768
-
769
- interface AuthShellProps {
770
- children: React$1.ReactNode;
771
- /** Optional background pattern — 'dots' | 'grid' | 'none' */
772
- pattern?: 'dots' | 'grid' | 'none';
773
- maxWidth?: string;
774
- }
775
- declare function AuthShell({ children, pattern, maxWidth }: AuthShellProps): react_jsx_runtime.JSX.Element;
776
-
777
- interface AuthCardProps {
778
- children: React$1.ReactNode;
779
- padding?: string;
780
- }
781
- declare function AuthCard({ children, padding }: AuthCardProps): react_jsx_runtime.JSX.Element;
782
-
783
- interface AuthLogoProps {
784
- /** App name shown next to the logo mark */
785
- appName?: string;
786
- /** Single letter shown inside the logo box (fallback when no imageUrl) */
787
- letter?: string;
788
- /** Image URL — when provided, shows image instead of letter box */
789
- imageUrl?: string;
790
- /** Image/logo size in px */
791
- size?: number;
792
- }
793
- declare function AuthLogo({ appName, letter, imageUrl, size }: AuthLogoProps): react_jsx_runtime.JSX.Element;
794
-
795
- interface AuthHeaderProps {
796
- title: string;
797
- description?: string;
798
- }
799
- declare function AuthHeader({ title, description }: AuthHeaderProps): react_jsx_runtime.JSX.Element;
800
-
801
- interface AuthFieldProps extends React$1.InputHTMLAttributes<HTMLInputElement> {
802
- label: string;
803
- error?: string;
804
- hint?: string;
805
- rightLabel?: React$1.ReactNode;
806
- }
807
- declare function AuthField({ label, error, hint, rightLabel, id, ...props }: AuthFieldProps): react_jsx_runtime.JSX.Element;
808
-
809
- interface AuthButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement> {
810
- loading?: boolean;
811
- variant?: 'primary' | 'outline' | 'ghost';
812
- fullWidth?: boolean;
813
- }
814
- declare function AuthButton({ loading, variant, fullWidth, children, disabled, style, ...props }: AuthButtonProps): react_jsx_runtime.JSX.Element;
815
-
816
- declare function AuthDivider({ label }: {
817
- label?: string;
818
- }): react_jsx_runtime.JSX.Element;
819
-
820
- interface AuthFootnoteProps {
821
- text: string;
822
- linkText: string;
823
- linkHref: string;
824
- }
825
- declare function AuthFootnote({ text, linkText, linkHref }: AuthFootnoteProps): react_jsx_runtime.JSX.Element;
826
-
827
- interface SkeletonProps {
828
- width?: string | number;
829
- height?: string | number;
830
- rounded?: string;
831
- className?: string;
832
- style?: React$1.CSSProperties;
833
- }
834
- declare function Skeleton({ width, height, rounded, style }: SkeletonProps): react_jsx_runtime.JSX.Element;
835
-
836
- export { Alert, type AlertProps, AppShell, type AppShellProps, AuthButton, AuthCard, AuthDivider, AuthField, AuthFootnote, AuthHeader, AuthLogo, AuthShell, Badge, type BadgeProps, type Breadcrumb, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, ColorPicker, ColorPickerAlpha, ColorPickerEyeDropper, ColorPickerFormat, ColorPickerHexOutput, ColorPickerHue, ColorPickerOutput, ColorPickerSelection, type ColorSchema, ColorSchemaPanel, type Column, ConfirmDialog, type ConfirmDialogProps, DEVICES, DEVICE_ICONS, DashboardLayout, type DashboardLayoutProps, DataTable, type DataTableProps, type DeviceKey, 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, HslColorInput, ImagePickerField, Input, type InputProps, Label, LoadingSpinner, type LoadingSpinnerProps, LocalInput, MediaCard, type NavItem, NotificationBell, type NotificationBellProps, Page, type PageProps, PageSection, type PageSectionProps, Pagination, type PaginationProps, PlanBadge, type PlanBadgeProps, type PlanId, Popover, PopoverContent, PopoverTrigger, PostEditorShell, type PostEditorShellProps, PostFiltersBar, type PostFiltersBarProps, type PostListItem, PostListTable, type PostListTableProps, PostSidebarSection, type PostSidebarSectionProps, type PostStatus, PostStatusBadge, type PostStatusBadgeProps, ResponsiveSizeDeviceIcon, ResponsiveSizeField, SearchBar, type SearchBarProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sidebar, type SidebarItem, type SidebarProps, Skeleton, SlugInput, type SlugInputProps, type Stat, Stats, type StatsProps, StorageBar, type StorageBarProps, Switch, Tabs, TabsContent, TabsList, TabsTrigger, type TextPreset, Textarea, type TextareaProps, type Theme, ThemeBuilder, type ThemeBuilderProps, ThemeToggle, type ThemeToggleProps, TiptapEditor, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopBar, type TopBarProps, TypographyPanel, type TypographySettings, type UploadProgressItem, UploadProgressPanel, UploadZone, badgeVariants, buttonVariants, cn, useColorPicker, useDisclosure, usePagination };