@wakastellar/ui 0.2.0 → 0.4.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/blocks/activity-timeline/index.d.ts +73 -0
- package/dist/blocks/calendar-view/index.d.ts +56 -0
- package/dist/blocks/chat/index.d.ts +87 -0
- package/dist/blocks/dashboard/index.d.ts +92 -0
- package/dist/blocks/empty-states/index.d.ts +44 -0
- package/dist/blocks/error-pages/index.d.ts +52 -0
- package/dist/blocks/faq/index.d.ts +54 -0
- package/dist/blocks/file-manager/index.d.ts +81 -0
- package/dist/blocks/header/index.d.ts +86 -0
- package/dist/blocks/i18n-editor/index.d.ts +63 -0
- package/dist/blocks/index.d.ts +36 -0
- package/dist/blocks/kanban-board/index.d.ts +77 -0
- package/dist/blocks/landing/index.d.ts +101 -0
- package/dist/blocks/pricing/index.d.ts +60 -0
- package/dist/blocks/profile/index.d.ts +98 -0
- package/dist/blocks/settings/index.d.ts +62 -0
- package/dist/blocks/theme-creator-block/index.d.ts +86 -0
- package/dist/blocks/user-management/index.d.ts +95 -0
- package/dist/blocks/wizard/index.d.ts +88 -0
- package/dist/charts.cjs.js +1 -0
- package/dist/charts.d.ts +17 -0
- package/dist/charts.es.js +16 -0
- package/dist/cn-CAc3sAGM.js +21 -0
- package/dist/cn-zrNBeCrC.js +1 -0
- package/dist/components/DataTable/DataTableBody.d.ts +3 -1
- package/dist/components/DataTable/DataTableHeader.d.ts +3 -1
- package/dist/components/command/index.d.ts +5 -1
- package/dist/components/index.d.ts +19 -0
- package/dist/components/language-selector/index.d.ts +19 -1
- package/dist/components/theme-selector/index.d.ts +10 -0
- package/dist/components/waka-barcode/index.d.ts +27 -0
- package/dist/components/waka-breadcrumb/index.d.ts +43 -0
- package/dist/components/waka-combobox/index.d.ts +81 -0
- package/dist/components/waka-date-range-picker/index.d.ts +68 -0
- package/dist/components/waka-drawer/index.d.ts +59 -0
- package/dist/components/waka-image/index.d.ts +57 -0
- package/dist/components/waka-kanban/index.d.ts +68 -0
- package/dist/components/waka-modal/index.d.ts +82 -0
- package/dist/components/waka-number-input/index.d.ts +60 -0
- package/dist/components/waka-pagination/index.d.ts +67 -0
- package/dist/components/waka-qrcode/index.d.ts +32 -0
- package/dist/components/waka-segmented-control/index.d.ts +42 -0
- package/dist/components/waka-spinner/index.d.ts +57 -21
- package/dist/components/waka-stat/index.d.ts +57 -0
- package/dist/components/waka-stepper/index.d.ts +76 -0
- package/dist/components/waka-theme-creator/index.d.ts +73 -22
- package/dist/components/waka-time-picker/index.d.ts +51 -0
- package/dist/components/waka-timeline/index.d.ts +46 -0
- package/dist/components/waka-tree/index.d.ts +67 -0
- package/dist/components/waka-video/index.d.ts +66 -0
- package/dist/components/waka-virtual-list/index.d.ts +54 -0
- package/dist/export.cjs.js +1 -0
- package/dist/export.d.ts +28 -0
- package/dist/export.es.js +5 -0
- package/dist/index-CENPre_9.js +466 -0
- package/dist/index-CHLjUBPo.js +1 -0
- package/dist/index.cjs.js +54 -155
- package/dist/index.es.js +21942 -12131
- package/dist/rich-text.cjs.js +1 -0
- package/dist/rich-text.d.ts +21 -0
- package/dist/rich-text.es.js +4 -0
- package/dist/types-Bjy1Hy76.js +1111 -0
- package/dist/types-CHv7a1SP.js +1 -0
- package/dist/useDataTableImport-DqeEL4GC.js +124 -0
- package/dist/useDataTableImport-sQwBFAJ_.js +775 -0
- package/package.json +54 -5
|
@@ -5,6 +5,40 @@ export interface ThemeVersion {
|
|
|
5
5
|
changelog?: string;
|
|
6
6
|
css: string;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Ressource personnalisée pour le thème
|
|
10
|
+
*/
|
|
11
|
+
export interface ThemeCustomResource {
|
|
12
|
+
/** Clé unique de la ressource */
|
|
13
|
+
key: string;
|
|
14
|
+
/** URL de la ressource (après upload S3) */
|
|
15
|
+
url: string;
|
|
16
|
+
/** Type de fichier */
|
|
17
|
+
type: "image" | "icon" | "font" | "other";
|
|
18
|
+
/** Nom du fichier original */
|
|
19
|
+
filename: string;
|
|
20
|
+
/** Taille en octets */
|
|
21
|
+
size?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Configuration des assets du thème (login, etc.)
|
|
25
|
+
*/
|
|
26
|
+
export interface ThemeAssets {
|
|
27
|
+
/** Logo pour le mode clair */
|
|
28
|
+
logo_light?: string;
|
|
29
|
+
/** Logo pour le mode sombre */
|
|
30
|
+
logo_dark?: string;
|
|
31
|
+
/** Image de fond pour le mode clair */
|
|
32
|
+
background_light?: string;
|
|
33
|
+
/** Image de fond pour le mode sombre */
|
|
34
|
+
background_dark?: string;
|
|
35
|
+
/** Favicon */
|
|
36
|
+
favicon?: string;
|
|
37
|
+
/** Image de sponsor (mode clair) */
|
|
38
|
+
sponsor_light?: string;
|
|
39
|
+
/** Image de sponsor (mode sombre) */
|
|
40
|
+
sponsor_dark?: string;
|
|
41
|
+
}
|
|
8
42
|
export interface ThemeMetadata {
|
|
9
43
|
id: string;
|
|
10
44
|
label: string;
|
|
@@ -13,47 +47,64 @@ export interface ThemeMetadata {
|
|
|
13
47
|
author?: string;
|
|
14
48
|
versions: ThemeVersion[];
|
|
15
49
|
currentVersion: string;
|
|
50
|
+
/** Assets du thème (logos, backgrounds) */
|
|
51
|
+
assets?: ThemeAssets;
|
|
52
|
+
/** Ressources personnalisées */
|
|
53
|
+
customResources?: ThemeCustomResource[];
|
|
16
54
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
extension?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Réponse de l'API d'upload de fichier
|
|
57
|
+
*/
|
|
58
|
+
export interface FileUploadResponse {
|
|
59
|
+
/** URL du fichier uploadé */
|
|
60
|
+
url: string;
|
|
61
|
+
/** Nom du fichier */
|
|
62
|
+
filename?: string;
|
|
63
|
+
/** Taille du fichier en octets */
|
|
64
|
+
size?: number;
|
|
28
65
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
66
|
+
/**
|
|
67
|
+
* Configuration de l'API pour le ThemeCreator
|
|
68
|
+
*/
|
|
69
|
+
export interface ThemeCreatorApiConfig {
|
|
70
|
+
/** Callback pour uploader un fichier (logo, background, etc.) */
|
|
71
|
+
onUploadFile: (file: File, themeId: string, assetType: string) => Promise<FileUploadResponse>;
|
|
72
|
+
/** Callback pour sauvegarder le thème complet */
|
|
73
|
+
onSaveTheme: (theme: ThemeMetadata) => Promise<void>;
|
|
74
|
+
/** Callback pour supprimer un thème */
|
|
75
|
+
onDeleteTheme?: (themeId: string) => Promise<void>;
|
|
76
|
+
/** Callback pour charger les détails d'un thème */
|
|
37
77
|
onLoadTheme?: (themeId: string) => Promise<ThemeMetadata | null>;
|
|
78
|
+
/** Callback pour supprimer un asset */
|
|
79
|
+
onDeleteAsset?: (themeId: string, assetType: string) => Promise<void>;
|
|
80
|
+
}
|
|
81
|
+
export interface WakaThemeCreatorProps {
|
|
82
|
+
/** Configuration de l'API */
|
|
83
|
+
apiConfig: ThemeCreatorApiConfig;
|
|
38
84
|
/** Thèmes existants à charger */
|
|
39
85
|
existingThemes?: ThemeMetadata[];
|
|
86
|
+
/** Callback après sauvegarde réussie */
|
|
87
|
+
onSaveSuccess?: (theme: ThemeMetadata) => void;
|
|
88
|
+
/** Callback après suppression */
|
|
89
|
+
onDeleteSuccess?: (themeId: string) => void;
|
|
40
90
|
/** Classe CSS personnalisée */
|
|
41
91
|
className?: string;
|
|
42
92
|
}
|
|
43
93
|
/**
|
|
44
94
|
* WakaThemeCreator
|
|
45
95
|
*
|
|
46
|
-
* Composant d'administration pour créer, prévisualiser et publier des thèmes TweakCN
|
|
96
|
+
* Composant d'administration pour créer, prévisualiser et publier des thèmes TweakCN.
|
|
47
97
|
*
|
|
48
98
|
* Features:
|
|
49
99
|
* - Création de thèmes avec CSS TweakCN
|
|
50
100
|
* - Prévisualisation en temps réel
|
|
51
101
|
* - Gestion des versions
|
|
52
|
-
* - Upload
|
|
102
|
+
* - Upload via API (POST)
|
|
103
|
+
* - Gestion des ressources (logos, backgrounds, custom)
|
|
53
104
|
* - Historique des modifications
|
|
54
105
|
* - Validation du CSS
|
|
55
106
|
*/
|
|
56
|
-
export declare function WakaThemeCreator({
|
|
107
|
+
export declare function WakaThemeCreator({ apiConfig, existingThemes, onSaveSuccess, onDeleteSuccess, className, }: WakaThemeCreatorProps): import("react/jsx-runtime").JSX.Element;
|
|
57
108
|
export declare namespace WakaThemeCreator {
|
|
58
109
|
var displayName: string;
|
|
59
110
|
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface WakaTimePickerProps {
|
|
3
|
+
/** Valeur sélectionnée (format HH:mm ou HH:mm:ss) */
|
|
4
|
+
value?: string;
|
|
5
|
+
/** Callback lors du changement */
|
|
6
|
+
onChange?: (value: string) => void;
|
|
7
|
+
/** Placeholder */
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
/** Format d'affichage */
|
|
10
|
+
format?: "12h" | "24h";
|
|
11
|
+
/** Afficher les secondes */
|
|
12
|
+
showSeconds?: boolean;
|
|
13
|
+
/** Intervalle des minutes (5, 10, 15, 30) */
|
|
14
|
+
minuteStep?: number;
|
|
15
|
+
/** Intervalle des secondes */
|
|
16
|
+
secondStep?: number;
|
|
17
|
+
/** Heure minimum */
|
|
18
|
+
minTime?: string;
|
|
19
|
+
/** Heure maximum */
|
|
20
|
+
maxTime?: string;
|
|
21
|
+
/** Désactivé */
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
/** Erreur */
|
|
24
|
+
error?: boolean;
|
|
25
|
+
/** Taille */
|
|
26
|
+
size?: "sm" | "md" | "lg";
|
|
27
|
+
/** Classes CSS additionnelles */
|
|
28
|
+
className?: string;
|
|
29
|
+
/** ID pour l'accessibilité */
|
|
30
|
+
id?: string;
|
|
31
|
+
/** Nom du champ */
|
|
32
|
+
name?: string;
|
|
33
|
+
}
|
|
34
|
+
export declare function WakaTimePicker({ value, onChange, placeholder, format, showSeconds, minuteStep, secondStep, minTime, maxTime, disabled, error, size, className, id, name, }: WakaTimePickerProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export interface UseTimePickerOptions {
|
|
36
|
+
/** Valeur initiale */
|
|
37
|
+
initialValue?: string;
|
|
38
|
+
/** Format */
|
|
39
|
+
format?: "12h" | "24h";
|
|
40
|
+
/** Afficher les secondes */
|
|
41
|
+
showSeconds?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export declare function useTimePicker(options?: UseTimePickerOptions): {
|
|
44
|
+
value: string;
|
|
45
|
+
onChange: React.Dispatch<React.SetStateAction<string>>;
|
|
46
|
+
clear: () => void;
|
|
47
|
+
setNow: () => void;
|
|
48
|
+
format: "12h" | "24h";
|
|
49
|
+
showSeconds: boolean;
|
|
50
|
+
};
|
|
51
|
+
export default WakaTimePicker;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type TimelineItemStatus = "completed" | "current" | "pending" | "error";
|
|
3
|
+
export interface TimelineItem {
|
|
4
|
+
/** Identifiant unique */
|
|
5
|
+
id: string;
|
|
6
|
+
/** Titre de l'élément */
|
|
7
|
+
title: string;
|
|
8
|
+
/** Description */
|
|
9
|
+
description?: string;
|
|
10
|
+
/** Date/heure */
|
|
11
|
+
date?: Date | string;
|
|
12
|
+
/** Statut */
|
|
13
|
+
status?: TimelineItemStatus;
|
|
14
|
+
/** Icône personnalisée */
|
|
15
|
+
icon?: React.ReactNode;
|
|
16
|
+
/** Couleur personnalisée */
|
|
17
|
+
color?: string;
|
|
18
|
+
/** Contenu supplémentaire (collapsible) */
|
|
19
|
+
content?: React.ReactNode;
|
|
20
|
+
/** Données additionnelles */
|
|
21
|
+
data?: Record<string, unknown>;
|
|
22
|
+
}
|
|
23
|
+
export interface WakaTimelineProps {
|
|
24
|
+
/** Éléments de la timeline */
|
|
25
|
+
items: TimelineItem[];
|
|
26
|
+
/** Orientation */
|
|
27
|
+
orientation?: "vertical" | "horizontal";
|
|
28
|
+
/** Position de la ligne (vertical seulement) */
|
|
29
|
+
linePosition?: "left" | "center" | "right";
|
|
30
|
+
/** Taille */
|
|
31
|
+
size?: "sm" | "md" | "lg";
|
|
32
|
+
/** Afficher les dates */
|
|
33
|
+
showDates?: boolean;
|
|
34
|
+
/** Format de date */
|
|
35
|
+
dateFormat?: Intl.DateTimeFormatOptions;
|
|
36
|
+
/** Éléments collapsibles */
|
|
37
|
+
collapsible?: boolean;
|
|
38
|
+
/** Alterner les côtés (linePosition=center) */
|
|
39
|
+
alternate?: boolean;
|
|
40
|
+
/** Callback lors du clic sur un élément */
|
|
41
|
+
onItemClick?: (item: TimelineItem) => void;
|
|
42
|
+
/** Classes CSS additionnelles */
|
|
43
|
+
className?: string;
|
|
44
|
+
}
|
|
45
|
+
export declare function WakaTimeline({ items, orientation, linePosition, size, showDates, dateFormat, collapsible, alternate, onItemClick, className, }: WakaTimelineProps): import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
export default WakaTimeline;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface TreeNode {
|
|
3
|
+
/** Identifiant unique du noeud */
|
|
4
|
+
id: string;
|
|
5
|
+
/** Libellé du noeud */
|
|
6
|
+
label: string;
|
|
7
|
+
/** Icône personnalisée */
|
|
8
|
+
icon?: React.ReactNode;
|
|
9
|
+
/** Enfants du noeud */
|
|
10
|
+
children?: TreeNode[];
|
|
11
|
+
/** Données additionnelles */
|
|
12
|
+
data?: Record<string, unknown>;
|
|
13
|
+
/** Désactiver le noeud */
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
/** Noeud sélectionnable */
|
|
16
|
+
selectable?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface WakaTreeProps {
|
|
19
|
+
/** Données de l'arbre */
|
|
20
|
+
data: TreeNode[];
|
|
21
|
+
/** IDs des noeuds sélectionnés */
|
|
22
|
+
selectedIds?: string[];
|
|
23
|
+
/** Callback lors de la sélection */
|
|
24
|
+
onSelect?: (ids: string[]) => void;
|
|
25
|
+
/** IDs des noeuds développés */
|
|
26
|
+
expandedIds?: string[];
|
|
27
|
+
/** Callback lors du développement */
|
|
28
|
+
onExpand?: (ids: string[]) => void;
|
|
29
|
+
/** Mode de sélection */
|
|
30
|
+
selectionMode?: "none" | "single" | "multiple";
|
|
31
|
+
/** Afficher les checkboxes */
|
|
32
|
+
showCheckboxes?: boolean;
|
|
33
|
+
/** Afficher les icônes de fichier/dossier */
|
|
34
|
+
showIcons?: boolean;
|
|
35
|
+
/** Activer le drag & drop */
|
|
36
|
+
draggable?: boolean;
|
|
37
|
+
/** Callback lors du drop */
|
|
38
|
+
onDrop?: (draggedId: string, targetId: string, position: "before" | "after" | "inside") => void;
|
|
39
|
+
/** Taille */
|
|
40
|
+
size?: "sm" | "md" | "lg";
|
|
41
|
+
/** Classes CSS additionnelles */
|
|
42
|
+
className?: string;
|
|
43
|
+
/** Développer tout par défaut */
|
|
44
|
+
defaultExpandAll?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export declare function WakaTree({ data, selectedIds: controlledSelectedIds, onSelect, expandedIds: controlledExpandedIds, onExpand, selectionMode, showCheckboxes, showIcons, draggable, onDrop: onDropProp, size, className, defaultExpandAll, }: WakaTreeProps): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
/**
|
|
48
|
+
* Trouve un noeud par son ID dans l'arbre
|
|
49
|
+
*/
|
|
50
|
+
export declare function findNodeById(nodes: TreeNode[], id: string): TreeNode | null;
|
|
51
|
+
/**
|
|
52
|
+
* Met à jour un noeud dans l'arbre (retourne un nouvel arbre)
|
|
53
|
+
*/
|
|
54
|
+
export declare function updateNode(nodes: TreeNode[], id: string, updates: Partial<TreeNode>): TreeNode[];
|
|
55
|
+
/**
|
|
56
|
+
* Supprime un noeud de l'arbre (retourne un nouvel arbre)
|
|
57
|
+
*/
|
|
58
|
+
export declare function removeNode(nodes: TreeNode[], id: string): TreeNode[];
|
|
59
|
+
/**
|
|
60
|
+
* Ajoute un noeud enfant à un parent
|
|
61
|
+
*/
|
|
62
|
+
export declare function addChildNode(nodes: TreeNode[], parentId: string, newNode: TreeNode): TreeNode[];
|
|
63
|
+
/**
|
|
64
|
+
* Déplace un noeud dans l'arbre
|
|
65
|
+
*/
|
|
66
|
+
export declare function moveNode(nodes: TreeNode[], draggedId: string, targetId: string, position: "before" | "after" | "inside"): TreeNode[];
|
|
67
|
+
export default WakaTree;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface VideoSource {
|
|
3
|
+
src: string;
|
|
4
|
+
type?: string;
|
|
5
|
+
quality?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface WakaVideoProps {
|
|
8
|
+
/** Source(s) de la vidéo */
|
|
9
|
+
src: string | VideoSource[];
|
|
10
|
+
/** URL du poster */
|
|
11
|
+
poster?: string;
|
|
12
|
+
/** Lecture automatique */
|
|
13
|
+
autoPlay?: boolean;
|
|
14
|
+
/** Boucle */
|
|
15
|
+
loop?: boolean;
|
|
16
|
+
/** Muet */
|
|
17
|
+
muted?: boolean;
|
|
18
|
+
/** Afficher les contrôles */
|
|
19
|
+
controls?: boolean;
|
|
20
|
+
/** Précharger la vidéo */
|
|
21
|
+
preload?: "none" | "metadata" | "auto";
|
|
22
|
+
/** Largeur */
|
|
23
|
+
width?: number | string;
|
|
24
|
+
/** Hauteur */
|
|
25
|
+
height?: number | string;
|
|
26
|
+
/** Aspect ratio */
|
|
27
|
+
aspectRatio?: string;
|
|
28
|
+
/** Afficher le bouton plein écran */
|
|
29
|
+
showFullscreen?: boolean;
|
|
30
|
+
/** Afficher le sélecteur de vitesse */
|
|
31
|
+
showPlaybackSpeed?: boolean;
|
|
32
|
+
/** Afficher le sélecteur de qualité */
|
|
33
|
+
showQualitySelector?: boolean;
|
|
34
|
+
/** Vitesses de lecture disponibles */
|
|
35
|
+
playbackSpeeds?: number[];
|
|
36
|
+
/** Callback quand la vidéo est prête */
|
|
37
|
+
onReady?: () => void;
|
|
38
|
+
/** Callback lors de la lecture */
|
|
39
|
+
onPlay?: () => void;
|
|
40
|
+
/** Callback lors de la pause */
|
|
41
|
+
onPause?: () => void;
|
|
42
|
+
/** Callback quand la vidéo se termine */
|
|
43
|
+
onEnded?: () => void;
|
|
44
|
+
/** Callback lors du changement de temps */
|
|
45
|
+
onTimeUpdate?: (currentTime: number) => void;
|
|
46
|
+
/** Callback en cas d'erreur */
|
|
47
|
+
onError?: (error: Error) => void;
|
|
48
|
+
/** Classes CSS additionnelles */
|
|
49
|
+
className?: string;
|
|
50
|
+
}
|
|
51
|
+
export declare function WakaVideo({ src, poster, autoPlay, loop, muted, controls, preload, width, height, aspectRatio, showFullscreen, showPlaybackSpeed, showQualitySelector, playbackSpeeds, onReady, onPlay, onPause, onEnded, onTimeUpdate, onError, className, }: WakaVideoProps): import("react/jsx-runtime").JSX.Element;
|
|
52
|
+
export interface UseVideoOptions {
|
|
53
|
+
autoPlay?: boolean;
|
|
54
|
+
muted?: boolean;
|
|
55
|
+
}
|
|
56
|
+
export declare function useVideo(options?: UseVideoOptions): {
|
|
57
|
+
isPlaying: boolean;
|
|
58
|
+
isMuted: boolean;
|
|
59
|
+
currentTime: number;
|
|
60
|
+
duration: number;
|
|
61
|
+
onPlay: () => void;
|
|
62
|
+
onPause: () => void;
|
|
63
|
+
onTimeUpdate: React.Dispatch<React.SetStateAction<number>>;
|
|
64
|
+
onReady: () => void;
|
|
65
|
+
};
|
|
66
|
+
export default WakaVideo;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface WakaVirtualListProps<T> {
|
|
3
|
+
/** Données à afficher */
|
|
4
|
+
items: T[];
|
|
5
|
+
/** Hauteur de chaque élément (ou fonction pour hauteur variable) */
|
|
6
|
+
itemHeight: number | ((item: T, index: number) => number);
|
|
7
|
+
/** Hauteur du conteneur */
|
|
8
|
+
height: number;
|
|
9
|
+
/** Largeur du conteneur */
|
|
10
|
+
width?: number | string;
|
|
11
|
+
/** Nombre d'éléments à pré-rendre au-dessus/en-dessous */
|
|
12
|
+
overscan?: number;
|
|
13
|
+
/** Fonction de rendu d'un élément */
|
|
14
|
+
renderItem: (item: T, index: number, style: React.CSSProperties) => React.ReactNode;
|
|
15
|
+
/** Callback lors du scroll */
|
|
16
|
+
onScroll?: (scrollTop: number) => void;
|
|
17
|
+
/** Callback quand on atteint la fin */
|
|
18
|
+
onEndReached?: () => void;
|
|
19
|
+
/** Seuil pour déclencher onEndReached (en pixels) */
|
|
20
|
+
endReachedThreshold?: number;
|
|
21
|
+
/** Afficher un indicateur de chargement à la fin */
|
|
22
|
+
isLoading?: boolean;
|
|
23
|
+
/** Élément à afficher pendant le chargement */
|
|
24
|
+
loadingElement?: React.ReactNode;
|
|
25
|
+
/** Élément à afficher si la liste est vide */
|
|
26
|
+
emptyElement?: React.ReactNode;
|
|
27
|
+
/** Classes CSS additionnelles */
|
|
28
|
+
className?: string;
|
|
29
|
+
/** Classes CSS pour le conteneur interne */
|
|
30
|
+
innerClassName?: string;
|
|
31
|
+
/** Référence au conteneur de scroll */
|
|
32
|
+
scrollRef?: React.RefObject<HTMLDivElement>;
|
|
33
|
+
}
|
|
34
|
+
export declare function WakaVirtualList<T>({ items, itemHeight, height, width, overscan, renderItem, onScroll, onEndReached, endReachedThreshold, isLoading, loadingElement, emptyElement, className, innerClassName, scrollRef: externalScrollRef, }: WakaVirtualListProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export interface UseVirtualListOptions {
|
|
36
|
+
itemCount: number;
|
|
37
|
+
itemHeight: number;
|
|
38
|
+
containerHeight: number;
|
|
39
|
+
overscan?: number;
|
|
40
|
+
}
|
|
41
|
+
export declare function useVirtualList(options: UseVirtualListOptions): {
|
|
42
|
+
totalHeight: number;
|
|
43
|
+
virtualItems: {
|
|
44
|
+
index: number;
|
|
45
|
+
start: number;
|
|
46
|
+
size: number;
|
|
47
|
+
}[];
|
|
48
|
+
startIndex: number;
|
|
49
|
+
endIndex: number;
|
|
50
|
+
handleScroll: (e: React.UIEvent<HTMLElement>) => void;
|
|
51
|
+
scrollToIndex: (index: number) => void;
|
|
52
|
+
scrollTop: number;
|
|
53
|
+
};
|
|
54
|
+
export default WakaVirtualList;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./useDataTableImport-DqeEL4GC.js");exports.useDataTableExport=e.useDataTableExport;exports.useDataTableImport=e.useDataTableImport;
|
package/dist/export.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entry point pour les fonctionnalités d'export du DataTable
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* ```ts
|
|
6
|
+
* import { useDataTableExport } from "@wakastellar/ui/export"
|
|
7
|
+
* ```
|
|
8
|
+
*
|
|
9
|
+
* Dépendances optionnelles selon le format:
|
|
10
|
+
*
|
|
11
|
+
* Pour l'export Excel (.xlsx):
|
|
12
|
+
* - xlsx (>=0.18.0)
|
|
13
|
+
* ```bash
|
|
14
|
+
* pnpm add xlsx
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* Pour l'export PDF:
|
|
18
|
+
* - jspdf (>=2.5.0)
|
|
19
|
+
* - jspdf-autotable (>=3.5.0)
|
|
20
|
+
* ```bash
|
|
21
|
+
* pnpm add jspdf jspdf-autotable
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* Note: Les formats CSV, JSON et XML fonctionnent sans dépendances supplémentaires.
|
|
25
|
+
*/
|
|
26
|
+
export { useDataTableExport } from './components/DataTable/hooks/useDataTableExport';
|
|
27
|
+
export { useDataTableImport } from './components/DataTable/hooks/useDataTableImport';
|
|
28
|
+
export type { ExportConfig, ImportConfig, ExportableCellValue, ImportedRowData, } from './components/DataTable/types';
|