@wakastellar/ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/blocks/footer/index.d.ts +19 -0
  2. package/dist/blocks/headtab/index.d.ts +27 -0
  3. package/dist/blocks/index.d.ts +5 -0
  4. package/dist/blocks/language-selector/index.d.ts +6 -0
  5. package/dist/blocks/layout/index.d.ts +28 -0
  6. package/dist/blocks/login/index.d.ts +13 -0
  7. package/dist/components/DataTable/DataTable.d.ts +17 -0
  8. package/dist/components/DataTable/DataTableAdvanced.d.ts +27 -0
  9. package/dist/components/DataTable/DataTableColumnResizer.d.ts +8 -0
  10. package/dist/components/DataTable/DataTableContextMenu.d.ts +47 -0
  11. package/dist/components/DataTable/DataTableEditCell.d.ts +29 -0
  12. package/dist/components/DataTable/DataTableFilters.d.ts +14 -0
  13. package/dist/components/DataTable/DataTableGrouping.d.ts +25 -0
  14. package/dist/components/DataTable/DataTablePagination.d.ts +8 -0
  15. package/dist/components/DataTable/DataTableSelection.d.ts +46 -0
  16. package/dist/components/DataTable/DataTableToolbar.d.ts +14 -0
  17. package/dist/components/DataTable/examples/EditExample.d.ts +2 -0
  18. package/dist/components/DataTable/hooks/useDataTable.d.ts +24 -0
  19. package/dist/components/DataTable/hooks/useDataTableAdvanced.d.ts +38 -0
  20. package/dist/components/DataTable/hooks/useDataTableEdit.d.ts +22 -0
  21. package/dist/components/DataTable/hooks/useDataTableExport.d.ts +15 -0
  22. package/dist/components/DataTable/hooks/useDataTableImport.d.ts +12 -0
  23. package/dist/components/DataTable/hooks/useDataTableTheme.d.ts +16 -0
  24. package/dist/components/DataTable/hooks/useDataTableVirtualization.d.ts +19 -0
  25. package/dist/components/DataTable/hooks/useTableLayout.d.ts +26 -0
  26. package/dist/components/DataTable/index.d.ts +37 -0
  27. package/dist/components/DataTable/types.d.ts +461 -0
  28. package/dist/components/DataTable/utils.d.ts +37 -0
  29. package/dist/components/accordion/index.d.ts +7 -0
  30. package/dist/components/alert/index.d.ts +8 -0
  31. package/dist/components/alert-dialog/index.d.ts +20 -0
  32. package/dist/components/aspect-ratio/index.d.ts +3 -0
  33. package/dist/components/avatar/index.d.ts +6 -0
  34. package/dist/components/badge/index.d.ts +9 -0
  35. package/dist/components/button/index.d.ts +11 -0
  36. package/dist/components/calendar/index.d.ts +8 -0
  37. package/dist/components/card/index.d.ts +8 -0
  38. package/dist/components/checkbox/index.d.ts +4 -0
  39. package/dist/components/code/index.d.ts +29 -0
  40. package/dist/components/collapsible/index.d.ts +5 -0
  41. package/dist/components/command/index.d.ts +51 -0
  42. package/dist/components/context-menu/index.d.ts +27 -0
  43. package/dist/components/dialog/index.d.ts +19 -0
  44. package/dist/components/dropdown-menu/index.d.ts +27 -0
  45. package/dist/components/form/index.d.ts +23 -0
  46. package/dist/components/hover-card/index.d.ts +6 -0
  47. package/dist/components/index.d.ts +52 -0
  48. package/dist/components/input/index.d.ts +5 -0
  49. package/dist/components/input-otp/index.d.ts +51 -0
  50. package/dist/components/label/index.d.ts +5 -0
  51. package/dist/components/language-selector/index.d.ts +40 -0
  52. package/dist/components/menubar/index.d.ts +28 -0
  53. package/dist/components/navigation-menu/index.d.ts +12 -0
  54. package/dist/components/popover/index.d.ts +6 -0
  55. package/dist/components/progress/index.d.ts +4 -0
  56. package/dist/components/radio-group/index.d.ts +5 -0
  57. package/dist/components/scroll-area/index.d.ts +5 -0
  58. package/dist/components/select/index.d.ts +13 -0
  59. package/dist/components/separator/index.d.ts +4 -0
  60. package/dist/components/sheet/index.d.ts +27 -0
  61. package/dist/components/skeleton/index.d.ts +2 -0
  62. package/dist/components/slider/index.d.ts +4 -0
  63. package/dist/components/switch/index.d.ts +4 -0
  64. package/dist/components/table/index.d.ts +10 -0
  65. package/dist/components/tabs/index.d.ts +7 -0
  66. package/dist/components/textarea/index.d.ts +5 -0
  67. package/dist/components/theme-selector/index.d.ts +8 -0
  68. package/dist/components/toast/index.d.ts +15 -0
  69. package/dist/components/toaster/index.d.ts +1 -0
  70. package/dist/components/toggle/index.d.ts +12 -0
  71. package/dist/components/tooltip/index.d.ts +7 -0
  72. package/dist/components/typography/index.d.ts +85 -0
  73. package/dist/components/waka-admincrumb/index.d.ts +41 -0
  74. package/dist/components/waka-carousel/index.d.ts +105 -0
  75. package/dist/components/waka-datetime-picker/index.d.ts +135 -0
  76. package/dist/components/waka-datetime-picker.form-integration/index.d.ts +69 -0
  77. package/dist/components/waka-notifications/index.d.ts +40 -0
  78. package/dist/components/waka-spinner/index.d.ts +46 -0
  79. package/dist/components/waka-theme-creator/index.d.ts +59 -0
  80. package/dist/components/waka-theme-manager/index.d.ts +62 -0
  81. package/dist/context/admincrumb-context.d.ts +34 -0
  82. package/dist/context/index.d.ts +8 -0
  83. package/dist/context/language-context.d.ts +57 -0
  84. package/dist/context/theme-context.d.ts +39 -0
  85. package/dist/context/theme-provider.d.ts +74 -0
  86. package/dist/context/waka-provider.d.ts +50 -0
  87. package/dist/hooks/index.d.ts +1 -0
  88. package/dist/hooks/use-toast.d.ts +44 -0
  89. package/dist/hooks/use-translation.d.ts +15 -0
  90. package/dist/hooks/useToast.d.ts +44 -0
  91. package/dist/index.cjs.js +70 -0
  92. package/dist/index.d.ts +20 -0
  93. package/dist/index.es.js +16379 -0
  94. package/dist/lib/i18n.d.ts +4 -0
  95. package/dist/types/provider.d.ts +108 -0
  96. package/dist/ui.css +1 -0
  97. package/dist/utils/cn.d.ts +1 -0
  98. package/dist/utils/datetime-helpers.d.ts +137 -0
  99. package/dist/utils/index.d.ts +5 -0
  100. package/dist/utils/theme-loader.d.ts +101 -0
  101. package/dist/utils/tweak.d.ts +18 -0
  102. package/package.json +118 -0
  103. package/src/styles/carousel.css +687 -0
  104. package/src/styles/code-highlight.css +232 -0
  105. package/src/styles/datepicker.css +420 -0
  106. package/src/styles/globals.css +84 -0
  107. package/src/styles/prism.css +261 -0
  108. package/src/styles/themes/forest.css +55 -0
  109. package/src/styles/themes/index.css +7 -0
  110. package/src/styles/themes/monochrome.css +55 -0
  111. package/src/styles/themes/perpetuity.css +55 -0
  112. package/src/styles/themes/sunset.css +55 -0
  113. package/src/styles/themes/twilight.css +55 -0
@@ -0,0 +1,19 @@
1
+ export interface FooterLink {
2
+ label: string;
3
+ href: string;
4
+ }
5
+ export interface FooterColumn {
6
+ title: string;
7
+ links: FooterLink[];
8
+ }
9
+ export interface SocialLink {
10
+ platform: "github" | "twitter" | "linkedin" | "email";
11
+ url: string;
12
+ }
13
+ export interface FooterProps {
14
+ columns?: FooterColumn[];
15
+ socialLinks?: SocialLink[];
16
+ copyright?: string;
17
+ className?: string;
18
+ }
19
+ export declare function Footer({ columns, socialLinks, copyright, className, }: FooterProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,27 @@
1
+ import * as React from "react";
2
+ export interface HeadtabItem {
3
+ id: string;
4
+ label: string;
5
+ href?: string;
6
+ content?: React.ReactNode;
7
+ disabled?: boolean;
8
+ }
9
+ export interface HeadtabProps {
10
+ items: HeadtabItem[];
11
+ defaultActiveId?: string;
12
+ variant?: "default" | "pills" | "underline";
13
+ size?: "sm" | "md" | "lg";
14
+ className?: string;
15
+ onTabChange?: (activeId: string) => void;
16
+ }
17
+ export declare function Headtab({ items, defaultActiveId, variant, size, className, onTabChange, }: HeadtabProps): import("react/jsx-runtime").JSX.Element;
18
+ export interface BreadcrumbItem {
19
+ label: string;
20
+ href?: string;
21
+ }
22
+ export interface BreadcrumbProps {
23
+ items: BreadcrumbItem[];
24
+ separator?: React.ReactNode;
25
+ className?: string;
26
+ }
27
+ export declare function Breadcrumb({ items, separator, className, }: BreadcrumbProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ export { Footer } from './footer';
2
+ export { Headtab } from './headtab';
3
+ export { LanguageSelector as BlockLanguageSelector } from './language-selector';
4
+ export { Layout } from './layout';
5
+ export { Login } from './login';
@@ -0,0 +1,6 @@
1
+ export interface LanguageSelectorProps {
2
+ variant?: "dropdown" | "select";
3
+ showFlags?: boolean;
4
+ className?: string;
5
+ }
6
+ export declare function LanguageSelector({ variant, showFlags, className, }: LanguageSelectorProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,28 @@
1
+ import * as React from "react";
2
+ export interface LayoutProps {
3
+ children: React.ReactNode;
4
+ header?: React.ReactNode;
5
+ sidebar?: React.ReactNode;
6
+ footer?: React.ReactNode;
7
+ collapsible?: boolean;
8
+ className?: string;
9
+ }
10
+ export declare function Layout({ children, header, sidebar, footer, collapsible, className, }: LayoutProps): import("react/jsx-runtime").JSX.Element;
11
+ export interface SidebarProps {
12
+ children: React.ReactNode;
13
+ className?: string;
14
+ }
15
+ export declare function Sidebar({ children, className }: SidebarProps): import("react/jsx-runtime").JSX.Element;
16
+ export interface SidebarItemProps {
17
+ children: React.ReactNode;
18
+ href?: string;
19
+ active?: boolean;
20
+ className?: string;
21
+ onClick?: () => void;
22
+ }
23
+ export declare function SidebarItem({ children, href, active, className, onClick, }: SidebarItemProps): import("react/jsx-runtime").JSX.Element;
24
+ export interface HeaderProps {
25
+ children: React.ReactNode;
26
+ className?: string;
27
+ }
28
+ export declare function Header({ children, className }: HeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ export interface LoginProps {
2
+ onSubmit?: (data: LoginFormData) => void;
3
+ onForgotPassword?: () => void;
4
+ onSignUp?: () => void;
5
+ showSocialLogin?: boolean;
6
+ className?: string;
7
+ }
8
+ export interface LoginFormData {
9
+ email: string;
10
+ password: string;
11
+ rememberMe?: boolean;
12
+ }
13
+ export declare function Login({ onSubmit, onForgotPassword, onSignUp, showSocialLogin, className, }: LoginProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { DataTableProps } from './types';
2
+ /**
3
+ * Composant DataTable ultra-complet basé sur TanStack Table v8
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * <DataTable
8
+ * data={users}
9
+ * columns={userColumns}
10
+ * layout="standard"
11
+ * pagination={{ mode: "client", pageSize: 10 }}
12
+ * selection
13
+ * enableExport
14
+ * />
15
+ * ```
16
+ */
17
+ export declare function DataTable<TData>({ data, columns: initialColumns, layout: layoutProp, variant, density: densityProp, filters, filterPosition, toolbar, pagination: paginationConfig, selection, actions, i18nNamespace, loading, error, emptyState, headerSticky, columnVisibilityToggle, columnResize, enableExport, enableImport, enableReorder, enableContextMenu, onRowClick, onRowDoubleClick, onSortingChange, onFiltersChange, onSelectionChange, className, tableId, virtualization, edit, }: DataTableProps<TData>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,27 @@
1
+ import { DataTableProps } from './types';
2
+ /**
3
+ * Composant DataTable ultra-complet avec toutes les fonctionnalités avancées
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * <DataTableAdvanced
8
+ * data={users}
9
+ * columns={userColumns}
10
+ * layout="standard"
11
+ * variant="bordered"
12
+ * density="comfortable"
13
+ * selection="multiple"
14
+ * grouping={{ columns: ["department"], showTotals: true }}
15
+ * rowExpansion={{ enabled: true, renderExpanded: (row) => <UserDetails user={row} /> }}
16
+ * virtualization={{ type: "dynamic", estimatedItemHeight: 60 }}
17
+ * columnResize={{ enabled: true, mode: "onChange" }}
18
+ * enableExport={{ formats: ["csv", "xlsx", "json"] }}
19
+ * enableImport={{ accept: ".csv,.xlsx,.json" }}
20
+ * theme={{
21
+ * colors: { primary: "#3b82f6", secondary: "#64748b" },
22
+ * spacing: { md: "1.5rem" }
23
+ * }}
24
+ * />
25
+ * ```
26
+ */
27
+ export declare function DataTableAdvanced<TData>({ data, columns: initialColumns, layout: layoutProp, variant, density: densityProp, filters, filterPosition, toolbar, pagination: paginationConfig, selection, actions, i18nNamespace, loading, error, emptyState, headerSticky, columnVisibilityToggle, columnResize, columnOrder: columnOrderConfig, grouping, rowExpansion, virtualization, sortMode, enableExport, enableImport, enableReorder, enableContextMenu, onRowClick, onRowDoubleClick, onSortingChange, onFiltersChange, onSelectionChange, onColumnOrderChange, onExpandedChange, onGroupingChange, className, tableId, edit, theme, performance, }: DataTableProps<TData>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Composant pour le redimensionnement des colonnes
3
+ */
4
+ export declare function DataTableColumnResizer<TData>({ header, column, className, }: {
5
+ header: any;
6
+ column: any;
7
+ className?: string;
8
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,47 @@
1
+ import * as React from "react";
2
+ /**
3
+ * Props pour le menu contextuel du DataTable
4
+ */
5
+ export interface DataTableContextMenuProps<TData> {
6
+ /** Données de la ligne */
7
+ row: TData;
8
+ /** Index de la ligne */
9
+ rowIndex: number;
10
+ /** Actions disponibles */
11
+ actions?: Array<{
12
+ id: string;
13
+ label: string;
14
+ icon?: React.ReactNode;
15
+ onClick: (row: TData) => void;
16
+ disabled?: boolean;
17
+ destructive?: boolean;
18
+ }>;
19
+ /** Actions de colonnes */
20
+ columnActions?: Array<{
21
+ id: string;
22
+ label: string;
23
+ icon?: React.ReactNode;
24
+ onClick: (columnId: string) => void;
25
+ disabled?: boolean;
26
+ }>;
27
+ /** Callback de copie */
28
+ onCopy?: (row: TData) => void;
29
+ /** Callback d'export */
30
+ onExport?: (row: TData) => void;
31
+ /** Callback d'édition */
32
+ onEdit?: (row: TData) => void;
33
+ /** Callback de suppression */
34
+ onDelete?: (row: TData) => void;
35
+ /** Callback de visibilité des colonnes */
36
+ onToggleColumnVisibility?: (columnId: string) => void;
37
+ /** Colonnes visibles */
38
+ visibleColumns?: string[];
39
+ /** Classe CSS personnalisée */
40
+ className?: string;
41
+ /** Enfants à wrapper */
42
+ children: React.ReactNode;
43
+ }
44
+ /**
45
+ * Composant de menu contextuel pour le DataTable
46
+ */
47
+ export declare function DataTableContextMenu<TData>({ row, rowIndex, actions, columnActions, onCopy, onExport, onEdit, onDelete, onToggleColumnVisibility, visibleColumns, className, children, }: DataTableContextMenuProps<TData>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,29 @@
1
+ export interface EditCellConfig {
2
+ type: "text" | "number" | "email" | "url" | "textarea" | "select" | "checkbox" | "switch" | "date" | "datetime";
3
+ options?: Array<{
4
+ value: string;
5
+ label: string;
6
+ }>;
7
+ placeholder?: string;
8
+ min?: number;
9
+ max?: number;
10
+ step?: number;
11
+ rows?: number;
12
+ disabled?: boolean;
13
+ required?: boolean;
14
+ pattern?: string;
15
+ title?: string;
16
+ }
17
+ export interface DataTableEditCellProps<TData> {
18
+ value: any;
19
+ field: keyof TData;
20
+ config: EditCellConfig;
21
+ isEditing: boolean;
22
+ error?: string;
23
+ onChange: (value: any) => void;
24
+ onStartEdit: () => void;
25
+ onSave: () => void;
26
+ onCancel: () => void;
27
+ className?: string;
28
+ }
29
+ export declare function DataTableEditCell<TData>({ value, field, config, isEditing, error, onChange, onStartEdit, onSave, onCancel, className, }: DataTableEditCellProps<TData>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { Table } from '@tanstack/react-table';
2
+ import { FilterConfig, FilterPosition } from './types';
3
+ interface DataTableFiltersProps<TData> {
4
+ table: Table<TData>;
5
+ filters?: FilterConfig[];
6
+ position?: FilterPosition;
7
+ onFiltersChange?: (filters: any[]) => void;
8
+ }
9
+ /**
10
+ * Composant de filtrage avancé pour DataTable
11
+ * Supporte autocomplete, multi-select, date ranges, etc.
12
+ */
13
+ export declare function DataTableFilters<TData>({ table, filters, position, onFiltersChange, }: DataTableFiltersProps<TData>): import("react/jsx-runtime").JSX.Element | null;
14
+ export {};
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Composant pour l'affichage des groupes dans le DataTable
3
+ */
4
+ export declare function DataTableGrouping<TData>({ row, table, className, }: {
5
+ row: any;
6
+ table: any;
7
+ className?: string;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ /**
10
+ * Composant pour les totaux de groupe
11
+ */
12
+ export declare function DataTableGroupTotals<TData>({ row, table, className, }: {
13
+ row: any;
14
+ table: any;
15
+ className?: string;
16
+ }): import("react/jsx-runtime").JSX.Element | null;
17
+ /**
18
+ * Composant pour les contrôles de groupement
19
+ */
20
+ export declare function DataTableGroupingControls<TData>({ table, groupingColumns, onGroupingChange, className, }: {
21
+ table: any;
22
+ groupingColumns: string[];
23
+ onGroupingChange: (columns: string[]) => void;
24
+ className?: string;
25
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { Table } from '@tanstack/react-table';
2
+ interface DataTablePaginationProps<TData> {
3
+ table: Table<TData>;
4
+ pageSizeOptions?: number[];
5
+ showInfo?: boolean;
6
+ }
7
+ export declare function DataTablePagination<TData>({ table, pageSizeOptions, showInfo, }: DataTablePaginationProps<TData>): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,46 @@
1
+ import * as React from "react";
2
+ /**
3
+ * Props pour la sélection avancée du DataTable
4
+ */
5
+ export interface DataTableSelectionProps<TData> {
6
+ /** Table instance */
7
+ table: any;
8
+ /** Mode de sélection */
9
+ selectionMode?: "single" | "multiple" | "range";
10
+ /** Données sélectionnées */
11
+ selectedRows: TData[];
12
+ /** Callback de changement de sélection */
13
+ onSelectionChange?: (selectedRows: TData[]) => void;
14
+ /** Actions sur la sélection */
15
+ selectionActions?: Array<{
16
+ id: string;
17
+ label: string;
18
+ icon?: React.ReactNode;
19
+ onClick: (selectedRows: TData[]) => void;
20
+ disabled?: boolean;
21
+ destructive?: boolean;
22
+ }>;
23
+ /** Classe CSS personnalisée */
24
+ className?: string;
25
+ }
26
+ /**
27
+ * Composant pour la sélection avancée du DataTable
28
+ */
29
+ export declare function DataTableSelection<TData>({ table, selectionMode, selectedRows, onSelectionChange, selectionActions, className, }: DataTableSelectionProps<TData>): import("react/jsx-runtime").JSX.Element;
30
+ /**
31
+ * Hook pour la sélection avancée
32
+ */
33
+ export declare function useDataTableSelection<TData>({ table, selectionMode, onSelectionChange, }: {
34
+ table: any;
35
+ selectionMode?: "single" | "multiple" | "range";
36
+ onSelectionChange?: (selectedRows: TData[]) => void;
37
+ }): {
38
+ selectedRows: TData[];
39
+ selectRow: (rowIndex: number, selected?: boolean) => void;
40
+ selectAll: (selected?: boolean) => void;
41
+ selectRange: (start: number, end: number, selected?: boolean) => void;
42
+ selectByCriteria: (criteria: (row: TData) => boolean) => void;
43
+ clearSelection: () => void;
44
+ isAllSelected: any;
45
+ isSomeSelected: any;
46
+ };
@@ -0,0 +1,14 @@
1
+ import { Table } from '@tanstack/react-table';
2
+ import { ToolbarConfig, DataTableDensity } from './types';
3
+ interface DataTableToolbarProps<TData> {
4
+ table: Table<TData>;
5
+ config?: ToolbarConfig;
6
+ globalFilter: string;
7
+ onGlobalFilterChange: (value: string) => void;
8
+ density?: DataTableDensity;
9
+ onDensityChange?: (density: DataTableDensity) => void;
10
+ onExport?: (format: string) => void;
11
+ onImport?: (file: File) => void;
12
+ }
13
+ export declare function DataTableToolbar<TData>({ table, config, globalFilter, onGlobalFilterChange, density, onDensityChange, onExport, onImport, }: DataTableToolbarProps<TData>): import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1,2 @@
1
+ export declare function EditExample(): import("react/jsx-runtime").JSX.Element;
2
+ export default EditExample;
@@ -0,0 +1,24 @@
1
+ import { PaginationState, SortingState, ColumnFiltersState, VisibilityState } from '@tanstack/react-table';
2
+ import { DataTableProps } from '../types';
3
+ /**
4
+ * Hook principal pour gérer l'état et la logique du DataTable
5
+ */
6
+ export declare function useDataTable<TData>({ data, columns, pagination: paginationConfig, tableId, onSortingChange, onFiltersChange, onSelectionChange, }: Pick<DataTableProps<TData>, "data" | "columns" | "pagination" | "tableId" | "onSortingChange" | "onFiltersChange" | "onSelectionChange">): {
7
+ table: import('@tanstack/react-table').Table<TData>;
8
+ sorting: SortingState;
9
+ setSorting: import('react').Dispatch<import('react').SetStateAction<SortingState>>;
10
+ columnFilters: ColumnFiltersState;
11
+ setColumnFilters: import('react').Dispatch<import('react').SetStateAction<ColumnFiltersState>>;
12
+ columnVisibility: VisibilityState;
13
+ setColumnVisibility: import('react').Dispatch<import('react').SetStateAction<VisibilityState>>;
14
+ rowSelection: {};
15
+ setRowSelection: import('react').Dispatch<import('react').SetStateAction<{}>>;
16
+ globalFilter: any;
17
+ setGlobalFilter: import('react').Dispatch<any>;
18
+ pagination: PaginationState;
19
+ setPagination: import('react').Dispatch<import('react').SetStateAction<PaginationState>>;
20
+ selectedRows: TData[];
21
+ resetFilters: () => void;
22
+ resetSelection: () => void;
23
+ exportData: () => TData[];
24
+ };
@@ -0,0 +1,38 @@
1
+ import { PaginationState, SortingState, ColumnFiltersState, VisibilityState, ColumnOrderState, ExpandedState, GroupingState, RowSelectionState } from '@tanstack/react-table';
2
+ import { DataTableProps } from '../types';
3
+ /**
4
+ * Hook avancé pour gérer toutes les fonctionnalités du DataTable
5
+ */
6
+ export declare function useDataTableAdvanced<TData>({ data, columns, pagination: paginationConfig, tableId, onSortingChange, onFiltersChange, onSelectionChange, onColumnOrderChange, onExpandedChange, onGroupingChange, grouping, virtualization, sortMode, performance, }: Pick<DataTableProps<TData>, "data" | "columns" | "pagination" | "tableId" | "onSortingChange" | "onFiltersChange" | "onSelectionChange" | "onColumnOrderChange" | "onExpandedChange" | "onGroupingChange" | "grouping" | "virtualization" | "sortMode" | "performance">): {
7
+ table: import('@tanstack/react-table').Table<TData>;
8
+ sorting: SortingState;
9
+ setSorting: import('react').Dispatch<import('react').SetStateAction<SortingState>>;
10
+ columnFilters: ColumnFiltersState;
11
+ setColumnFilters: import('react').Dispatch<import('react').SetStateAction<ColumnFiltersState>>;
12
+ columnVisibility: VisibilityState;
13
+ setColumnVisibility: import('react').Dispatch<import('react').SetStateAction<VisibilityState>>;
14
+ columnOrder: ColumnOrderState;
15
+ setColumnOrder: import('react').Dispatch<import('react').SetStateAction<ColumnOrderState>>;
16
+ expanded: ExpandedState;
17
+ setExpanded: import('react').Dispatch<import('react').SetStateAction<ExpandedState>>;
18
+ grouping: GroupingState;
19
+ setGrouping: import('react').Dispatch<import('react').SetStateAction<GroupingState>>;
20
+ rowSelection: RowSelectionState;
21
+ setRowSelection: import('react').Dispatch<import('react').SetStateAction<RowSelectionState>>;
22
+ globalFilter: string;
23
+ setGlobalFilter: import('react').Dispatch<import('react').SetStateAction<string>>;
24
+ pagination: PaginationState;
25
+ setPagination: import('react').Dispatch<import('react').SetStateAction<PaginationState>>;
26
+ selectedRows: TData[];
27
+ resetFilters: () => void;
28
+ resetSelection: () => void;
29
+ resetAll: () => void;
30
+ exportData: () => TData[];
31
+ getGroupedData: () => TData[];
32
+ getExpandedData: () => TData[];
33
+ toggleGrouping: (columnId: string) => void;
34
+ clearGrouping: () => void;
35
+ toggleRowExpansion: (rowId: string) => void;
36
+ expandAll: () => void;
37
+ collapseAll: () => void;
38
+ };
@@ -0,0 +1,22 @@
1
+ import { Table } from '@tanstack/react-table';
2
+ export interface EditState<TData> {
3
+ editingRowId: string | null;
4
+ editedData: Partial<TData>;
5
+ hasChanges: boolean;
6
+ isDirty: boolean;
7
+ }
8
+ export interface EditActions<TData> {
9
+ startEdit: (rowId: string, initialData: TData) => void;
10
+ cancelEdit: () => void;
11
+ saveEdit: () => Promise<void>;
12
+ updateField: (field: keyof TData, value: any) => void;
13
+ resetEdit: () => void;
14
+ }
15
+ export interface UseDataTableEditOptions<TData> {
16
+ onSave?: (rowId: string, data: Partial<TData>) => Promise<void>;
17
+ onCancel?: (rowId: string, originalData: TData) => void;
18
+ validateField?: (field: keyof TData, value: any) => string | null;
19
+ autoSave?: boolean;
20
+ autoSaveDelay?: number;
21
+ }
22
+ export declare function useDataTableEdit<TData>(table: Table<TData>, options?: UseDataTableEditOptions<TData>): [EditState<TData>, EditActions<TData>];
@@ -0,0 +1,15 @@
1
+ import { ExportConfig } from '../types';
2
+ /**
3
+ * Hook pour gérer l'export des données du DataTable
4
+ */
5
+ export declare function useDataTableExport<TData>({ data, columns, exportConfig, }: {
6
+ data: TData[];
7
+ columns: any[];
8
+ exportConfig?: ExportConfig;
9
+ }): {
10
+ exportData: (format: string, customData?: TData[], customFilename?: string) => Promise<void>;
11
+ exportAll: (format: string) => Promise<void>;
12
+ exportSelected: (format: string, selectedData: TData[]) => Promise<void>;
13
+ supportedFormats: ("csv" | "xlsx" | "json" | "pdf" | "xml")[] | readonly ["csv", "xlsx", "json"];
14
+ isExportSupported: (format: string) => boolean;
15
+ };
@@ -0,0 +1,12 @@
1
+ import { ImportConfig } from '../types';
2
+ /**
3
+ * Hook pour gérer l'import des données dans le DataTable
4
+ */
5
+ export declare function useDataTableImport<TData>({ importConfig, }: {
6
+ importConfig?: ImportConfig;
7
+ }): {
8
+ importData: (file: File) => Promise<TData[]>;
9
+ importWithUI: () => Promise<TData[]>;
10
+ supportedFormats: string[];
11
+ isFormatSupported: (filename: string) => boolean;
12
+ };
@@ -0,0 +1,16 @@
1
+ import { DataTableTheme } from '../types';
2
+ /**
3
+ * Hook pour gérer les thèmes personnalisés du DataTable
4
+ */
5
+ export declare function useDataTableTheme({ theme, variant, density, }: {
6
+ theme?: DataTableTheme;
7
+ variant?: "bordered" | "minimal" | "striped" | "glass";
8
+ density?: "comfortable" | "compact" | "spacious";
9
+ }): {
10
+ theme: DataTableTheme;
11
+ variantClasses: string;
12
+ densityClasses: Record<string, string>;
13
+ customStyles: Record<string, string>;
14
+ getThemedClass: (baseClass: string, themeKey?: string) => string;
15
+ getThemedStyles: (baseStyles?: React.CSSProperties) => React.CSSProperties;
16
+ };
@@ -0,0 +1,19 @@
1
+ import { VirtualizationConfig } from '../types';
2
+ /**
3
+ * Hook pour gérer la virtualisation du DataTable
4
+ */
5
+ export declare function useDataTableVirtualization<TData>({ data, virtualization, containerRef, }: {
6
+ data: TData[];
7
+ virtualization?: VirtualizationConfig;
8
+ containerRef: React.RefObject<HTMLElement>;
9
+ }): {
10
+ virtualizer: import('@tanstack/react-virtual').Virtualizer<HTMLElement, Element> | null;
11
+ isVirtualized: boolean;
12
+ containerHeight: number;
13
+ scrollToIndex: (index: number, align?: "start" | "center" | "end") => void;
14
+ scrollToOffset: (offset: number) => void;
15
+ getVirtualItems: () => import('@tanstack/react-virtual').VirtualItem[];
16
+ getTotalSize: () => number;
17
+ virtualItems: import('@tanstack/react-virtual').VirtualItem[];
18
+ totalSize: number;
19
+ };
@@ -0,0 +1,26 @@
1
+ import { DataTableLayout, DataTableDensity } from '../types';
2
+ /**
3
+ * Hook pour gérer le layout et la densité du DataTable
4
+ */
5
+ export declare function useTableLayout(initialLayout?: DataTableLayout, initialDensity?: DataTableDensity): {
6
+ layout: DataTableLayout;
7
+ setLayout: import('react').Dispatch<import('react').SetStateAction<DataTableLayout>>;
8
+ density: DataTableDensity;
9
+ setDensity: import('react').Dispatch<import('react').SetStateAction<DataTableDensity>>;
10
+ toggleLayout: () => void;
11
+ toggleDensity: () => void;
12
+ isMobile: boolean;
13
+ densityClasses: {
14
+ table: string;
15
+ cell: string;
16
+ header: string;
17
+ } | {
18
+ table: string;
19
+ cell: string;
20
+ header: string;
21
+ } | {
22
+ table: string;
23
+ cell: string;
24
+ header: string;
25
+ };
26
+ };
@@ -0,0 +1,37 @@
1
+ /**
2
+ * DataTable - Composant ultra-complet basé sur TanStack Table v8
3
+ *
4
+ * @module DataTable
5
+ * @description
6
+ * Composant de table de données hautement configurable avec support de :
7
+ * - Tri, filtrage, pagination
8
+ * - Sélection multiple
9
+ * - Export/Import (CSV, JSON)
10
+ * - Layouts multiples (standard, card, compact, split, infinite)
11
+ * - Thème clair/sombre via TweakCN
12
+ * - i18n complet
13
+ * - Virtualisation pour grandes données
14
+ * - Toolbar customisable
15
+ * - Actions par ligne et groupées
16
+ */
17
+ export { DataTable } from './DataTable';
18
+ export { DataTableAdvanced } from './DataTableAdvanced';
19
+ export { DataTableToolbar } from './DataTableToolbar';
20
+ export { DataTablePagination } from './DataTablePagination';
21
+ export { DataTableFilters } from './DataTableFilters';
22
+ export { DataTableEditCell } from './DataTableEditCell';
23
+ export { DataTableColumnResizer } from './DataTableColumnResizer';
24
+ export { DataTableGrouping, DataTableGroupTotals, DataTableGroupingControls } from './DataTableGrouping';
25
+ export { DataTableContextMenu } from './DataTableContextMenu';
26
+ export { DataTableSelection, useDataTableSelection } from './DataTableSelection';
27
+ export { useDataTable } from './hooks/useDataTable';
28
+ export { useDataTableAdvanced } from './hooks/useDataTableAdvanced';
29
+ export { useDataTableVirtualization } from './hooks/useDataTableVirtualization';
30
+ export { useDataTableExport } from './hooks/useDataTableExport';
31
+ export { useDataTableImport } from './hooks/useDataTableImport';
32
+ export { useDataTableTheme } from './hooks/useDataTableTheme';
33
+ export { useTableLayout } from './hooks/useTableLayout';
34
+ export { useDataTableEdit } from './hooks/useDataTableEdit';
35
+ export type { DataTableProps, DataTableLayout, DataTableVariant, DataTableDensity, DataTableState, FilterConfig, FilterPosition, PaginationConfig, ToolbarConfig, TableAction, ExportConfig, ImportConfig, SelectionState, EditConfig, ColumnEditConfig, SelectionMode, SortMode, VirtualizationType, GroupingConfig, VirtualizationConfig, ColumnResizeConfig, ColumnOrderConfig, RowExpansionConfig, DataTableTheme, } from './types';
36
+ export type { EditCellConfig } from './DataTableEditCell';
37
+ export { exportToCSV, exportToJSON, parseCSV, saveTableState, loadTableState, } from './utils';