@jameskabz/nextcraft-ui 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React$1 from 'react';
3
+ import { FieldValues, UseFormReturn, Path, RegisterOptions } from 'react-hook-form';
3
4
 
4
5
  type ThemeName = "aurora" | "ember" | "ocean" | "midnight" | "cosmic";
5
6
  type ThemeMode = "light" | "dark" | "system";
@@ -208,6 +209,227 @@ declare const CraftCurrencyInput: React$1.ForwardRefExoticComponent<Omit<React$1
208
209
  currencySymbol?: string;
209
210
  } & React$1.RefAttributes<HTMLInputElement>>;
210
211
 
212
+ type CraftFormProps<TValues extends FieldValues> = {
213
+ form: UseFormReturn<TValues>;
214
+ onSubmit: (values: TValues) => void | Promise<void>;
215
+ open?: boolean;
216
+ defaultOpen?: boolean;
217
+ onOpenChange?: (open: boolean) => void;
218
+ trigger?: React$1.ReactNode;
219
+ title?: React$1.ReactNode;
220
+ description?: React$1.ReactNode;
221
+ submitLabel?: React$1.ReactNode;
222
+ cancelLabel?: React$1.ReactNode;
223
+ tone?: ThemeName;
224
+ className?: string;
225
+ children?: React$1.ReactNode;
226
+ footer?: React$1.ReactNode;
227
+ disableSubmitWhenInvalid?: boolean;
228
+ closeOnSubmit?: boolean;
229
+ formClassName?: string;
230
+ };
231
+ declare function CraftForm<TValues extends FieldValues>({ form, onSubmit, open, defaultOpen, onOpenChange, trigger, title, description, submitLabel, cancelLabel, tone, className, children, footer, disableSubmitWhenInvalid, closeOnSubmit, formClassName, }: CraftFormProps<TValues>): react_jsx_runtime.JSX.Element;
232
+
233
+ type CraftFormFieldOption = {
234
+ label: React$1.ReactNode;
235
+ value: string;
236
+ disabled?: boolean;
237
+ };
238
+ type CraftFormFieldType = "text" | "number" | "password" | "textarea" | "select" | "checkbox" | "slider" | "date" | "color" | "email" | "tel" | "url" | "time" | "datetime-local" | "month" | "week" | "file" | "multifile" | "radio" | "switch" | "range" | "search" | "hidden" | "multiselect" | "currency";
239
+ type CraftFormFieldProps<TValues extends FieldValues = FieldValues> = {
240
+ name: Path<TValues>;
241
+ label?: React$1.ReactNode;
242
+ description?: React$1.ReactNode;
243
+ type?: CraftFormFieldType;
244
+ options?: CraftFormFieldOption[];
245
+ placeholder?: string;
246
+ tone?: ThemeName;
247
+ className?: string;
248
+ inputClassName?: string;
249
+ labelClassName?: string;
250
+ descriptionClassName?: string;
251
+ rules?: RegisterOptions<TValues>;
252
+ disabled?: boolean;
253
+ fieldProps?: Record<string, unknown>;
254
+ };
255
+ declare function CraftFormField<TValues extends FieldValues = FieldValues>({ name, label, description, type, options, placeholder, tone, className, inputClassName, labelClassName, descriptionClassName, rules, disabled, fieldProps, }: CraftFormFieldProps<TValues>): react_jsx_runtime.JSX.Element;
256
+
257
+ type CraftFormBuilderField<TValues extends FieldValues> = {
258
+ name: Path<TValues>;
259
+ label?: React$1.ReactNode;
260
+ description?: React$1.ReactNode;
261
+ type: CraftFormFieldType;
262
+ placeholder?: string;
263
+ options?: CraftFormFieldOption[];
264
+ required?: boolean;
265
+ disabled?: boolean;
266
+ rules?: RegisterOptions<TValues>;
267
+ defaultValue?: unknown;
268
+ min?: number;
269
+ max?: number;
270
+ step?: number;
271
+ rows?: number;
272
+ accept?: string;
273
+ minFiles?: number;
274
+ maxFiles?: number;
275
+ helpText?: React$1.ReactNode;
276
+ fieldProps?: Record<string, unknown>;
277
+ validate?: (value: unknown, values: TValues) => string | boolean | undefined;
278
+ };
279
+ type CraftFormBuilderProps<TValues extends FieldValues> = {
280
+ title?: React$1.ReactNode;
281
+ description?: React$1.ReactNode;
282
+ fields: Array<CraftFormBuilderField<TValues>>;
283
+ initialData?: Partial<TValues> | null;
284
+ open?: boolean;
285
+ defaultOpen?: boolean;
286
+ onOpenChange?: (open: boolean) => void;
287
+ trigger?: React$1.ReactNode;
288
+ submitLabel?: React$1.ReactNode;
289
+ cancelLabel?: React$1.ReactNode;
290
+ resetLabel?: React$1.ReactNode;
291
+ showReset?: boolean;
292
+ showCancel?: boolean;
293
+ tone?: ThemeName;
294
+ className?: string;
295
+ formClassName?: string;
296
+ loading?: boolean;
297
+ disableSubmitWhenInvalid?: boolean;
298
+ closeOnSubmit?: boolean;
299
+ closeOnCancel?: boolean;
300
+ onSubmit: (values: TValues) => void | Promise<void>;
301
+ onReset?: () => void;
302
+ onCancel?: () => void;
303
+ customValidation?: (values: TValues) => Partial<Record<Path<TValues>, string>>;
304
+ };
305
+ declare function CraftFormBuilder<TValues extends FieldValues>({ title, description, fields, initialData, open, defaultOpen, onOpenChange, trigger, submitLabel, cancelLabel, resetLabel, showReset, showCancel, tone, className, formClassName, loading, disableSubmitWhenInvalid, closeOnSubmit, closeOnCancel, onSubmit, onReset, onCancel, customValidation, }: CraftFormBuilderProps<TValues>): react_jsx_runtime.JSX.Element;
306
+
307
+ type CraftSubmitButtonProps = React$1.ButtonHTMLAttributes<HTMLButtonElement> & {
308
+ tone?: ThemeName;
309
+ loading?: boolean;
310
+ loadingLabel?: React$1.ReactNode;
311
+ disableWhenInvalid?: boolean;
312
+ };
313
+ declare function CraftSubmitButton({ className, tone, loading, loadingLabel, disableWhenInvalid, disabled, children, ...props }: CraftSubmitButtonProps): react_jsx_runtime.JSX.Element;
314
+
315
+ type CraftConfirmDialogProps = {
316
+ open?: boolean;
317
+ defaultOpen?: boolean;
318
+ onOpenChange?: (open: boolean) => void;
319
+ tone?: ThemeName;
320
+ title?: React$1.ReactNode;
321
+ description?: React$1.ReactNode;
322
+ confirmLabel?: React$1.ReactNode;
323
+ cancelLabel?: React$1.ReactNode;
324
+ onConfirm?: () => void | Promise<void>;
325
+ trigger?: React$1.ReactNode;
326
+ className?: string;
327
+ confirmVariant?: "solid" | "gradient" | "outline";
328
+ };
329
+ declare function CraftConfirmDialog({ open, defaultOpen, onOpenChange, tone, title, description, confirmLabel, cancelLabel, onConfirm, trigger, className, confirmVariant, }: CraftConfirmDialogProps): react_jsx_runtime.JSX.Element;
330
+
331
+ type CraftCreateEditDrawerProps<TValues extends FieldValues> = {
332
+ mode?: "create" | "edit";
333
+ form: UseFormReturn<TValues>;
334
+ onSubmit: (values: TValues) => void | Promise<void>;
335
+ open?: boolean;
336
+ defaultOpen?: boolean;
337
+ onOpenChange?: (open: boolean) => void;
338
+ trigger?: React$1.ReactNode;
339
+ title?: React$1.ReactNode;
340
+ description?: React$1.ReactNode;
341
+ submitLabel?: React$1.ReactNode;
342
+ cancelLabel?: React$1.ReactNode;
343
+ tone?: ThemeName;
344
+ className?: string;
345
+ children?: React$1.ReactNode;
346
+ footer?: React$1.ReactNode;
347
+ disableSubmitWhenInvalid?: boolean;
348
+ closeOnSubmit?: boolean;
349
+ side?: "left" | "right";
350
+ };
351
+ declare function CraftCreateEditDrawer<TValues extends FieldValues>({ mode, form, onSubmit, open, defaultOpen, onOpenChange, trigger, title, description, submitLabel, cancelLabel, tone, className, children, footer, disableSubmitWhenInvalid, closeOnSubmit, side, }: CraftCreateEditDrawerProps<TValues>): react_jsx_runtime.JSX.Element;
352
+
353
+ type CraftFilterBarProps = {
354
+ title?: React$1.ReactNode;
355
+ description?: React$1.ReactNode;
356
+ searchValue?: string;
357
+ onSearchChange?: (value: string) => void;
358
+ searchPlaceholder?: string;
359
+ actions?: React$1.ReactNode;
360
+ filters?: React$1.ReactNode;
361
+ tone?: ThemeName;
362
+ className?: string;
363
+ };
364
+ declare function CraftFilterBar({ title, description, searchValue, onSearchChange, searchPlaceholder, actions, filters, tone, className, }: CraftFilterBarProps): react_jsx_runtime.JSX.Element;
365
+
366
+ type CraftDataTableColumn<T> = {
367
+ id: string;
368
+ header: React$1.ReactNode;
369
+ accessor?: keyof T | ((row: T) => unknown);
370
+ cell?: (row: T) => React$1.ReactNode;
371
+ sortable?: boolean;
372
+ filterable?: boolean;
373
+ width?: string | number;
374
+ align?: "left" | "center" | "right";
375
+ hidden?: boolean;
376
+ headerClassName?: string;
377
+ cellClassName?: string;
378
+ };
379
+ type CraftDataTableSort = {
380
+ id: string;
381
+ desc?: boolean;
382
+ };
383
+ type CraftDataTableProps<T> = {
384
+ data: T[];
385
+ columns: CraftDataTableColumn<T>[];
386
+ tone?: ThemeName;
387
+ className?: string;
388
+ loading?: boolean;
389
+ emptyState?: React$1.ReactNode;
390
+ toolbar?: React$1.ReactNode;
391
+ enableSorting?: boolean;
392
+ enableFiltering?: boolean;
393
+ enableColumnVisibility?: boolean;
394
+ enableRowSelection?: boolean;
395
+ enablePagination?: boolean;
396
+ showGlobalFilter?: boolean;
397
+ manualSorting?: boolean;
398
+ manualFiltering?: boolean;
399
+ manualPagination?: boolean;
400
+ sortBy?: CraftDataTableSort | null;
401
+ onSortChange?: (sort: CraftDataTableSort | null) => void;
402
+ filters?: Record<string, string>;
403
+ onFiltersChange?: (filters: Record<string, string>) => void;
404
+ globalFilter?: string;
405
+ onGlobalFilterChange?: (value: string) => void;
406
+ columnVisibility?: Record<string, boolean>;
407
+ onColumnVisibilityChange?: (visibility: Record<string, boolean>) => void;
408
+ selectedRowIds?: Record<string, boolean>;
409
+ onRowSelectionChange?: (selection: Record<string, boolean>) => void;
410
+ getRowId?: (row: T, index: number) => string;
411
+ pageIndex?: number;
412
+ pageSize?: number;
413
+ pageCount?: number;
414
+ onPageChange?: (pageIndex: number) => void;
415
+ onPageSizeChange?: (size: number) => void;
416
+ };
417
+ declare function CraftDataTable<T>({ data, columns, tone, className, loading, emptyState, toolbar, enableSorting, enableFiltering, enableColumnVisibility, enableRowSelection, enablePagination, showGlobalFilter, manualSorting, manualFiltering, manualPagination, sortBy, onSortChange, filters, onFiltersChange, globalFilter, onGlobalFilterChange, columnVisibility, onColumnVisibilityChange, selectedRowIds, onRowSelectionChange, getRowId, pageIndex, pageSize, pageCount, onPageChange, onPageSizeChange, }: CraftDataTableProps<T>): react_jsx_runtime.JSX.Element;
418
+
419
+ type CraftPaginationProps = {
420
+ pageIndex: number;
421
+ pageCount: number;
422
+ onPageChange: (page: number) => void;
423
+ canPrevious?: boolean;
424
+ canNext?: boolean;
425
+ pageSize?: number;
426
+ pageSizeOptions?: number[];
427
+ onPageSizeChange?: (size: number) => void;
428
+ tone?: ThemeName;
429
+ className?: string;
430
+ };
431
+ declare function CraftPagination({ pageIndex, pageCount, onPageChange, canPrevious, canNext, pageSize, pageSizeOptions, onPageSizeChange, tone, className, }: CraftPaginationProps): react_jsx_runtime.JSX.Element;
432
+
211
433
  type AppShellProps = React$1.HTMLAttributes<HTMLDivElement> & {
212
434
  sidebar?: React$1.ReactNode;
213
435
  topNav?: React$1.ReactNode;
@@ -274,4 +496,4 @@ type ThemeSwitcherProps = React$1.HTMLAttributes<HTMLDivElement> & {
274
496
  };
275
497
  declare function ThemeSwitcher({ className, showLabels, ...props }: ThemeSwitcherProps): react_jsx_runtime.JSX.Element;
276
498
 
277
- export { AppShell, type AppShellProps, AuthLayout, type AuthLayoutProps, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, Container, type ContainerProps, CraftBadge, type CraftBadgeProps, CraftButton, type CraftButtonProps, CraftCard, type CraftCardProps, CraftCheckbox, type CraftCheckboxProps, CraftCurrencyInput, type CraftCurrencyInputProps, CraftDatePicker, type CraftDatePickerProps, CraftDrawer, type CraftDrawerProps, CraftEmptyState, type CraftEmptyStateProps, CraftInput, type CraftInputProps, CraftModal, type CraftModalProps, CraftNumberInput, type CraftNumberInputProps, CraftSelect, type CraftSelectProps, CraftSkeleton, type CraftSkeletonProps, CraftSwitch, type CraftSwitchProps, CraftTabs, type CraftTabsProps, CraftTextarea, type CraftTextareaProps, type CraftToast, CraftToastHost, type CraftToastHostProps, CraftTooltip, type CraftTooltipProps, GlassCard, type GlassCardProps, Grid, type GridProps, PageHeader, type PageHeaderProps, Sidebar, type SidebarItem, type SidebarProps, type ThemeMode, type ThemeName, ThemeProvider, ThemeSwitcher, type ThemeSwitcherProps, TopNav, type TopNavProps, useCraftToast, useTheme };
499
+ export { AppShell, type AppShellProps, AuthLayout, type AuthLayoutProps, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, Container, type ContainerProps, CraftBadge, type CraftBadgeProps, CraftButton, type CraftButtonProps, CraftCard, type CraftCardProps, CraftCheckbox, type CraftCheckboxProps, CraftConfirmDialog, type CraftConfirmDialogProps, CraftCreateEditDrawer, type CraftCreateEditDrawerProps, CraftCurrencyInput, type CraftCurrencyInputProps, CraftDataTable, type CraftDataTableColumn, type CraftDataTableProps, type CraftDataTableSort, CraftDatePicker, type CraftDatePickerProps, CraftDrawer, type CraftDrawerProps, CraftEmptyState, type CraftEmptyStateProps, CraftFilterBar, type CraftFilterBarProps, CraftForm, CraftFormBuilder, type CraftFormBuilderField, type CraftFormBuilderProps, CraftFormField, type CraftFormFieldOption, type CraftFormFieldProps, type CraftFormFieldType, type CraftFormProps, CraftInput, type CraftInputProps, CraftModal, type CraftModalProps, CraftNumberInput, type CraftNumberInputProps, CraftPagination, type CraftPaginationProps, CraftSelect, type CraftSelectProps, CraftSkeleton, type CraftSkeletonProps, CraftSubmitButton, type CraftSubmitButtonProps, CraftSwitch, type CraftSwitchProps, CraftTabs, type CraftTabsProps, CraftTextarea, type CraftTextareaProps, type CraftToast, CraftToastHost, type CraftToastHostProps, CraftTooltip, type CraftTooltipProps, GlassCard, type GlassCardProps, Grid, type GridProps, PageHeader, type PageHeaderProps, Sidebar, type SidebarItem, type SidebarProps, type ThemeMode, type ThemeName, ThemeProvider, ThemeSwitcher, type ThemeSwitcherProps, TopNav, type TopNavProps, useCraftToast, useTheme };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React$1 from 'react';
3
+ import { FieldValues, UseFormReturn, Path, RegisterOptions } from 'react-hook-form';
3
4
 
4
5
  type ThemeName = "aurora" | "ember" | "ocean" | "midnight" | "cosmic";
5
6
  type ThemeMode = "light" | "dark" | "system";
@@ -208,6 +209,227 @@ declare const CraftCurrencyInput: React$1.ForwardRefExoticComponent<Omit<React$1
208
209
  currencySymbol?: string;
209
210
  } & React$1.RefAttributes<HTMLInputElement>>;
210
211
 
212
+ type CraftFormProps<TValues extends FieldValues> = {
213
+ form: UseFormReturn<TValues>;
214
+ onSubmit: (values: TValues) => void | Promise<void>;
215
+ open?: boolean;
216
+ defaultOpen?: boolean;
217
+ onOpenChange?: (open: boolean) => void;
218
+ trigger?: React$1.ReactNode;
219
+ title?: React$1.ReactNode;
220
+ description?: React$1.ReactNode;
221
+ submitLabel?: React$1.ReactNode;
222
+ cancelLabel?: React$1.ReactNode;
223
+ tone?: ThemeName;
224
+ className?: string;
225
+ children?: React$1.ReactNode;
226
+ footer?: React$1.ReactNode;
227
+ disableSubmitWhenInvalid?: boolean;
228
+ closeOnSubmit?: boolean;
229
+ formClassName?: string;
230
+ };
231
+ declare function CraftForm<TValues extends FieldValues>({ form, onSubmit, open, defaultOpen, onOpenChange, trigger, title, description, submitLabel, cancelLabel, tone, className, children, footer, disableSubmitWhenInvalid, closeOnSubmit, formClassName, }: CraftFormProps<TValues>): react_jsx_runtime.JSX.Element;
232
+
233
+ type CraftFormFieldOption = {
234
+ label: React$1.ReactNode;
235
+ value: string;
236
+ disabled?: boolean;
237
+ };
238
+ type CraftFormFieldType = "text" | "number" | "password" | "textarea" | "select" | "checkbox" | "slider" | "date" | "color" | "email" | "tel" | "url" | "time" | "datetime-local" | "month" | "week" | "file" | "multifile" | "radio" | "switch" | "range" | "search" | "hidden" | "multiselect" | "currency";
239
+ type CraftFormFieldProps<TValues extends FieldValues = FieldValues> = {
240
+ name: Path<TValues>;
241
+ label?: React$1.ReactNode;
242
+ description?: React$1.ReactNode;
243
+ type?: CraftFormFieldType;
244
+ options?: CraftFormFieldOption[];
245
+ placeholder?: string;
246
+ tone?: ThemeName;
247
+ className?: string;
248
+ inputClassName?: string;
249
+ labelClassName?: string;
250
+ descriptionClassName?: string;
251
+ rules?: RegisterOptions<TValues>;
252
+ disabled?: boolean;
253
+ fieldProps?: Record<string, unknown>;
254
+ };
255
+ declare function CraftFormField<TValues extends FieldValues = FieldValues>({ name, label, description, type, options, placeholder, tone, className, inputClassName, labelClassName, descriptionClassName, rules, disabled, fieldProps, }: CraftFormFieldProps<TValues>): react_jsx_runtime.JSX.Element;
256
+
257
+ type CraftFormBuilderField<TValues extends FieldValues> = {
258
+ name: Path<TValues>;
259
+ label?: React$1.ReactNode;
260
+ description?: React$1.ReactNode;
261
+ type: CraftFormFieldType;
262
+ placeholder?: string;
263
+ options?: CraftFormFieldOption[];
264
+ required?: boolean;
265
+ disabled?: boolean;
266
+ rules?: RegisterOptions<TValues>;
267
+ defaultValue?: unknown;
268
+ min?: number;
269
+ max?: number;
270
+ step?: number;
271
+ rows?: number;
272
+ accept?: string;
273
+ minFiles?: number;
274
+ maxFiles?: number;
275
+ helpText?: React$1.ReactNode;
276
+ fieldProps?: Record<string, unknown>;
277
+ validate?: (value: unknown, values: TValues) => string | boolean | undefined;
278
+ };
279
+ type CraftFormBuilderProps<TValues extends FieldValues> = {
280
+ title?: React$1.ReactNode;
281
+ description?: React$1.ReactNode;
282
+ fields: Array<CraftFormBuilderField<TValues>>;
283
+ initialData?: Partial<TValues> | null;
284
+ open?: boolean;
285
+ defaultOpen?: boolean;
286
+ onOpenChange?: (open: boolean) => void;
287
+ trigger?: React$1.ReactNode;
288
+ submitLabel?: React$1.ReactNode;
289
+ cancelLabel?: React$1.ReactNode;
290
+ resetLabel?: React$1.ReactNode;
291
+ showReset?: boolean;
292
+ showCancel?: boolean;
293
+ tone?: ThemeName;
294
+ className?: string;
295
+ formClassName?: string;
296
+ loading?: boolean;
297
+ disableSubmitWhenInvalid?: boolean;
298
+ closeOnSubmit?: boolean;
299
+ closeOnCancel?: boolean;
300
+ onSubmit: (values: TValues) => void | Promise<void>;
301
+ onReset?: () => void;
302
+ onCancel?: () => void;
303
+ customValidation?: (values: TValues) => Partial<Record<Path<TValues>, string>>;
304
+ };
305
+ declare function CraftFormBuilder<TValues extends FieldValues>({ title, description, fields, initialData, open, defaultOpen, onOpenChange, trigger, submitLabel, cancelLabel, resetLabel, showReset, showCancel, tone, className, formClassName, loading, disableSubmitWhenInvalid, closeOnSubmit, closeOnCancel, onSubmit, onReset, onCancel, customValidation, }: CraftFormBuilderProps<TValues>): react_jsx_runtime.JSX.Element;
306
+
307
+ type CraftSubmitButtonProps = React$1.ButtonHTMLAttributes<HTMLButtonElement> & {
308
+ tone?: ThemeName;
309
+ loading?: boolean;
310
+ loadingLabel?: React$1.ReactNode;
311
+ disableWhenInvalid?: boolean;
312
+ };
313
+ declare function CraftSubmitButton({ className, tone, loading, loadingLabel, disableWhenInvalid, disabled, children, ...props }: CraftSubmitButtonProps): react_jsx_runtime.JSX.Element;
314
+
315
+ type CraftConfirmDialogProps = {
316
+ open?: boolean;
317
+ defaultOpen?: boolean;
318
+ onOpenChange?: (open: boolean) => void;
319
+ tone?: ThemeName;
320
+ title?: React$1.ReactNode;
321
+ description?: React$1.ReactNode;
322
+ confirmLabel?: React$1.ReactNode;
323
+ cancelLabel?: React$1.ReactNode;
324
+ onConfirm?: () => void | Promise<void>;
325
+ trigger?: React$1.ReactNode;
326
+ className?: string;
327
+ confirmVariant?: "solid" | "gradient" | "outline";
328
+ };
329
+ declare function CraftConfirmDialog({ open, defaultOpen, onOpenChange, tone, title, description, confirmLabel, cancelLabel, onConfirm, trigger, className, confirmVariant, }: CraftConfirmDialogProps): react_jsx_runtime.JSX.Element;
330
+
331
+ type CraftCreateEditDrawerProps<TValues extends FieldValues> = {
332
+ mode?: "create" | "edit";
333
+ form: UseFormReturn<TValues>;
334
+ onSubmit: (values: TValues) => void | Promise<void>;
335
+ open?: boolean;
336
+ defaultOpen?: boolean;
337
+ onOpenChange?: (open: boolean) => void;
338
+ trigger?: React$1.ReactNode;
339
+ title?: React$1.ReactNode;
340
+ description?: React$1.ReactNode;
341
+ submitLabel?: React$1.ReactNode;
342
+ cancelLabel?: React$1.ReactNode;
343
+ tone?: ThemeName;
344
+ className?: string;
345
+ children?: React$1.ReactNode;
346
+ footer?: React$1.ReactNode;
347
+ disableSubmitWhenInvalid?: boolean;
348
+ closeOnSubmit?: boolean;
349
+ side?: "left" | "right";
350
+ };
351
+ declare function CraftCreateEditDrawer<TValues extends FieldValues>({ mode, form, onSubmit, open, defaultOpen, onOpenChange, trigger, title, description, submitLabel, cancelLabel, tone, className, children, footer, disableSubmitWhenInvalid, closeOnSubmit, side, }: CraftCreateEditDrawerProps<TValues>): react_jsx_runtime.JSX.Element;
352
+
353
+ type CraftFilterBarProps = {
354
+ title?: React$1.ReactNode;
355
+ description?: React$1.ReactNode;
356
+ searchValue?: string;
357
+ onSearchChange?: (value: string) => void;
358
+ searchPlaceholder?: string;
359
+ actions?: React$1.ReactNode;
360
+ filters?: React$1.ReactNode;
361
+ tone?: ThemeName;
362
+ className?: string;
363
+ };
364
+ declare function CraftFilterBar({ title, description, searchValue, onSearchChange, searchPlaceholder, actions, filters, tone, className, }: CraftFilterBarProps): react_jsx_runtime.JSX.Element;
365
+
366
+ type CraftDataTableColumn<T> = {
367
+ id: string;
368
+ header: React$1.ReactNode;
369
+ accessor?: keyof T | ((row: T) => unknown);
370
+ cell?: (row: T) => React$1.ReactNode;
371
+ sortable?: boolean;
372
+ filterable?: boolean;
373
+ width?: string | number;
374
+ align?: "left" | "center" | "right";
375
+ hidden?: boolean;
376
+ headerClassName?: string;
377
+ cellClassName?: string;
378
+ };
379
+ type CraftDataTableSort = {
380
+ id: string;
381
+ desc?: boolean;
382
+ };
383
+ type CraftDataTableProps<T> = {
384
+ data: T[];
385
+ columns: CraftDataTableColumn<T>[];
386
+ tone?: ThemeName;
387
+ className?: string;
388
+ loading?: boolean;
389
+ emptyState?: React$1.ReactNode;
390
+ toolbar?: React$1.ReactNode;
391
+ enableSorting?: boolean;
392
+ enableFiltering?: boolean;
393
+ enableColumnVisibility?: boolean;
394
+ enableRowSelection?: boolean;
395
+ enablePagination?: boolean;
396
+ showGlobalFilter?: boolean;
397
+ manualSorting?: boolean;
398
+ manualFiltering?: boolean;
399
+ manualPagination?: boolean;
400
+ sortBy?: CraftDataTableSort | null;
401
+ onSortChange?: (sort: CraftDataTableSort | null) => void;
402
+ filters?: Record<string, string>;
403
+ onFiltersChange?: (filters: Record<string, string>) => void;
404
+ globalFilter?: string;
405
+ onGlobalFilterChange?: (value: string) => void;
406
+ columnVisibility?: Record<string, boolean>;
407
+ onColumnVisibilityChange?: (visibility: Record<string, boolean>) => void;
408
+ selectedRowIds?: Record<string, boolean>;
409
+ onRowSelectionChange?: (selection: Record<string, boolean>) => void;
410
+ getRowId?: (row: T, index: number) => string;
411
+ pageIndex?: number;
412
+ pageSize?: number;
413
+ pageCount?: number;
414
+ onPageChange?: (pageIndex: number) => void;
415
+ onPageSizeChange?: (size: number) => void;
416
+ };
417
+ declare function CraftDataTable<T>({ data, columns, tone, className, loading, emptyState, toolbar, enableSorting, enableFiltering, enableColumnVisibility, enableRowSelection, enablePagination, showGlobalFilter, manualSorting, manualFiltering, manualPagination, sortBy, onSortChange, filters, onFiltersChange, globalFilter, onGlobalFilterChange, columnVisibility, onColumnVisibilityChange, selectedRowIds, onRowSelectionChange, getRowId, pageIndex, pageSize, pageCount, onPageChange, onPageSizeChange, }: CraftDataTableProps<T>): react_jsx_runtime.JSX.Element;
418
+
419
+ type CraftPaginationProps = {
420
+ pageIndex: number;
421
+ pageCount: number;
422
+ onPageChange: (page: number) => void;
423
+ canPrevious?: boolean;
424
+ canNext?: boolean;
425
+ pageSize?: number;
426
+ pageSizeOptions?: number[];
427
+ onPageSizeChange?: (size: number) => void;
428
+ tone?: ThemeName;
429
+ className?: string;
430
+ };
431
+ declare function CraftPagination({ pageIndex, pageCount, onPageChange, canPrevious, canNext, pageSize, pageSizeOptions, onPageSizeChange, tone, className, }: CraftPaginationProps): react_jsx_runtime.JSX.Element;
432
+
211
433
  type AppShellProps = React$1.HTMLAttributes<HTMLDivElement> & {
212
434
  sidebar?: React$1.ReactNode;
213
435
  topNav?: React$1.ReactNode;
@@ -274,4 +496,4 @@ type ThemeSwitcherProps = React$1.HTMLAttributes<HTMLDivElement> & {
274
496
  };
275
497
  declare function ThemeSwitcher({ className, showLabels, ...props }: ThemeSwitcherProps): react_jsx_runtime.JSX.Element;
276
498
 
277
- export { AppShell, type AppShellProps, AuthLayout, type AuthLayoutProps, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, Container, type ContainerProps, CraftBadge, type CraftBadgeProps, CraftButton, type CraftButtonProps, CraftCard, type CraftCardProps, CraftCheckbox, type CraftCheckboxProps, CraftCurrencyInput, type CraftCurrencyInputProps, CraftDatePicker, type CraftDatePickerProps, CraftDrawer, type CraftDrawerProps, CraftEmptyState, type CraftEmptyStateProps, CraftInput, type CraftInputProps, CraftModal, type CraftModalProps, CraftNumberInput, type CraftNumberInputProps, CraftSelect, type CraftSelectProps, CraftSkeleton, type CraftSkeletonProps, CraftSwitch, type CraftSwitchProps, CraftTabs, type CraftTabsProps, CraftTextarea, type CraftTextareaProps, type CraftToast, CraftToastHost, type CraftToastHostProps, CraftTooltip, type CraftTooltipProps, GlassCard, type GlassCardProps, Grid, type GridProps, PageHeader, type PageHeaderProps, Sidebar, type SidebarItem, type SidebarProps, type ThemeMode, type ThemeName, ThemeProvider, ThemeSwitcher, type ThemeSwitcherProps, TopNav, type TopNavProps, useCraftToast, useTheme };
499
+ export { AppShell, type AppShellProps, AuthLayout, type AuthLayoutProps, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, Container, type ContainerProps, CraftBadge, type CraftBadgeProps, CraftButton, type CraftButtonProps, CraftCard, type CraftCardProps, CraftCheckbox, type CraftCheckboxProps, CraftConfirmDialog, type CraftConfirmDialogProps, CraftCreateEditDrawer, type CraftCreateEditDrawerProps, CraftCurrencyInput, type CraftCurrencyInputProps, CraftDataTable, type CraftDataTableColumn, type CraftDataTableProps, type CraftDataTableSort, CraftDatePicker, type CraftDatePickerProps, CraftDrawer, type CraftDrawerProps, CraftEmptyState, type CraftEmptyStateProps, CraftFilterBar, type CraftFilterBarProps, CraftForm, CraftFormBuilder, type CraftFormBuilderField, type CraftFormBuilderProps, CraftFormField, type CraftFormFieldOption, type CraftFormFieldProps, type CraftFormFieldType, type CraftFormProps, CraftInput, type CraftInputProps, CraftModal, type CraftModalProps, CraftNumberInput, type CraftNumberInputProps, CraftPagination, type CraftPaginationProps, CraftSelect, type CraftSelectProps, CraftSkeleton, type CraftSkeletonProps, CraftSubmitButton, type CraftSubmitButtonProps, CraftSwitch, type CraftSwitchProps, CraftTabs, type CraftTabsProps, CraftTextarea, type CraftTextareaProps, type CraftToast, CraftToastHost, type CraftToastHostProps, CraftTooltip, type CraftTooltipProps, GlassCard, type GlassCardProps, Grid, type GridProps, PageHeader, type PageHeaderProps, Sidebar, type SidebarItem, type SidebarProps, type ThemeMode, type ThemeName, ThemeProvider, ThemeSwitcher, type ThemeSwitcherProps, TopNav, type TopNavProps, useCraftToast, useTheme };