@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.
Files changed (66) hide show
  1. package/dist/blocks/activity-timeline/index.d.ts +73 -0
  2. package/dist/blocks/calendar-view/index.d.ts +56 -0
  3. package/dist/blocks/chat/index.d.ts +87 -0
  4. package/dist/blocks/dashboard/index.d.ts +92 -0
  5. package/dist/blocks/empty-states/index.d.ts +44 -0
  6. package/dist/blocks/error-pages/index.d.ts +52 -0
  7. package/dist/blocks/faq/index.d.ts +54 -0
  8. package/dist/blocks/file-manager/index.d.ts +81 -0
  9. package/dist/blocks/header/index.d.ts +86 -0
  10. package/dist/blocks/i18n-editor/index.d.ts +63 -0
  11. package/dist/blocks/index.d.ts +36 -0
  12. package/dist/blocks/kanban-board/index.d.ts +77 -0
  13. package/dist/blocks/landing/index.d.ts +101 -0
  14. package/dist/blocks/pricing/index.d.ts +60 -0
  15. package/dist/blocks/profile/index.d.ts +98 -0
  16. package/dist/blocks/settings/index.d.ts +62 -0
  17. package/dist/blocks/theme-creator-block/index.d.ts +86 -0
  18. package/dist/blocks/user-management/index.d.ts +95 -0
  19. package/dist/blocks/wizard/index.d.ts +88 -0
  20. package/dist/charts.cjs.js +1 -0
  21. package/dist/charts.d.ts +17 -0
  22. package/dist/charts.es.js +16 -0
  23. package/dist/cn-CAc3sAGM.js +21 -0
  24. package/dist/cn-zrNBeCrC.js +1 -0
  25. package/dist/components/DataTable/DataTableBody.d.ts +3 -1
  26. package/dist/components/DataTable/DataTableHeader.d.ts +3 -1
  27. package/dist/components/command/index.d.ts +5 -1
  28. package/dist/components/index.d.ts +19 -0
  29. package/dist/components/language-selector/index.d.ts +19 -1
  30. package/dist/components/theme-selector/index.d.ts +10 -0
  31. package/dist/components/waka-barcode/index.d.ts +27 -0
  32. package/dist/components/waka-breadcrumb/index.d.ts +43 -0
  33. package/dist/components/waka-combobox/index.d.ts +81 -0
  34. package/dist/components/waka-date-range-picker/index.d.ts +68 -0
  35. package/dist/components/waka-drawer/index.d.ts +59 -0
  36. package/dist/components/waka-image/index.d.ts +57 -0
  37. package/dist/components/waka-kanban/index.d.ts +68 -0
  38. package/dist/components/waka-modal/index.d.ts +82 -0
  39. package/dist/components/waka-number-input/index.d.ts +60 -0
  40. package/dist/components/waka-pagination/index.d.ts +67 -0
  41. package/dist/components/waka-qrcode/index.d.ts +32 -0
  42. package/dist/components/waka-segmented-control/index.d.ts +42 -0
  43. package/dist/components/waka-spinner/index.d.ts +57 -21
  44. package/dist/components/waka-stat/index.d.ts +57 -0
  45. package/dist/components/waka-stepper/index.d.ts +76 -0
  46. package/dist/components/waka-theme-creator/index.d.ts +73 -22
  47. package/dist/components/waka-time-picker/index.d.ts +51 -0
  48. package/dist/components/waka-timeline/index.d.ts +46 -0
  49. package/dist/components/waka-tree/index.d.ts +67 -0
  50. package/dist/components/waka-video/index.d.ts +66 -0
  51. package/dist/components/waka-virtual-list/index.d.ts +54 -0
  52. package/dist/export.cjs.js +1 -0
  53. package/dist/export.d.ts +28 -0
  54. package/dist/export.es.js +5 -0
  55. package/dist/index-CENPre_9.js +466 -0
  56. package/dist/index-CHLjUBPo.js +1 -0
  57. package/dist/index.cjs.js +54 -155
  58. package/dist/index.es.js +21942 -12131
  59. package/dist/rich-text.cjs.js +1 -0
  60. package/dist/rich-text.d.ts +21 -0
  61. package/dist/rich-text.es.js +4 -0
  62. package/dist/types-Bjy1Hy76.js +1111 -0
  63. package/dist/types-CHv7a1SP.js +1 -0
  64. package/dist/useDataTableImport-DqeEL4GC.js +124 -0
  65. package/dist/useDataTableImport-sQwBFAJ_.js +775 -0
  66. package/package.json +54 -5
@@ -0,0 +1,63 @@
1
+ export interface TranslationValue {
2
+ value: string;
3
+ updatedAt?: Date;
4
+ comment?: string;
5
+ }
6
+ export interface TranslationEntry {
7
+ key: string;
8
+ translations: Record<string, TranslationValue>;
9
+ }
10
+ export interface LanguageConfig {
11
+ code: string;
12
+ label: string;
13
+ flag?: string;
14
+ isSource?: boolean;
15
+ }
16
+ export interface I18nEditorConfig {
17
+ /** Langues disponibles */
18
+ languages: LanguageConfig[];
19
+ /** Code de la langue source */
20
+ sourceLanguage: string;
21
+ /** Séparateur pour les clés (ex: ".") */
22
+ keyPathSeparator?: string;
23
+ /** Activer l'auto-save */
24
+ autoSave?: boolean;
25
+ /** Délai de debounce pour l'auto-save en ms */
26
+ saveDebounceMs?: number;
27
+ /** Patterns de placeholders à valider */
28
+ placeholderPatterns?: string[];
29
+ /** Ratio max de longueur */
30
+ maxLengthRatio?: number;
31
+ }
32
+ export interface I18nEditorProps {
33
+ /** Configuration de l'éditeur */
34
+ config: I18nEditorConfig;
35
+ /** Données de traduction initiales */
36
+ translations: TranslationEntry[];
37
+ /** Callback quand une traduction change */
38
+ onChange?: (key: string, language: string, value: string) => void;
39
+ /** Callback pour sauvegarder */
40
+ onSave?: (translations: TranslationEntry[]) => Promise<void>;
41
+ /** Callback pour ajouter une clé */
42
+ onAddKey?: (key: string) => Promise<void>;
43
+ /** Callback pour supprimer une clé */
44
+ onDeleteKey?: (key: string) => Promise<void>;
45
+ /** Callback pour ajouter une langue */
46
+ onAddLanguage?: (language: LanguageConfig) => Promise<void>;
47
+ /** Callback pour exporter */
48
+ onExport?: (language?: string) => Promise<void>;
49
+ /** Callback pour importer */
50
+ onImport?: (file: File, language: string, strategy: "overwrite" | "merge") => Promise<void>;
51
+ /** État de chargement */
52
+ isLoading?: boolean;
53
+ /** État de sauvegarde */
54
+ isSaving?: boolean;
55
+ /** Classe CSS */
56
+ className?: string;
57
+ /** Titre */
58
+ title?: string;
59
+ /** Description */
60
+ description?: string;
61
+ }
62
+ export declare function WakaI18nEditor({ config, translations: initialTranslations, onChange, onSave, onAddKey, onDeleteKey, onAddLanguage, onExport, onImport, isLoading, isSaving, className, title, description, }: I18nEditorProps): import("react/jsx-runtime").JSX.Element;
63
+ export default WakaI18nEditor;
@@ -6,3 +6,39 @@ export { Login } from './login';
6
6
  export type { LoginConfig, LoginColorConfig, LoginThemeConfig, LoginAssetsConfig, LoginSignupOptions, LoginFormData } from './login';
7
7
  export { WakaSidebar, SidebarLayout, useSidebar } from './sidebar';
8
8
  export type { WakaSidebarProps, SidebarLayoutProps, SidebarMenuItem, SidebarUserConfig, SidebarLogoConfig, } from './sidebar';
9
+ export { WakaHeader } from './header';
10
+ export type { WakaHeaderProps, HeaderAction, HeaderFilter, HeaderNotification, HeaderUserMenu, } from './header';
11
+ export { WakaDashboard, defaultDashboardStats } from './dashboard';
12
+ export type { WakaDashboardProps, DashboardStatConfig, DashboardChartConfig, DashboardTableConfig, DashboardActivityItem, DashboardQuickAction, } from './dashboard';
13
+ export { WakaSettings, defaultSettingsTabs } from './settings';
14
+ export type { WakaSettingsProps, SettingsFieldConfig, SettingsSectionConfig, SettingsTabConfig, } from './settings';
15
+ export { WakaProfile, defaultProfileData } from './profile';
16
+ export type { WakaProfileProps, ProfileData, ProfileField, ProfileSection, ProfileSocialLink, } from './profile';
17
+ export { WakaUserManagement, defaultUsers, defaultPermissions } from './user-management';
18
+ export type { WakaUserManagementProps, UserData, UserFormData, UserRole, UserStatus, UserPermission, } from './user-management';
19
+ export { WakaErrorPage, Error404Page, Error500Page, Error403Page, MaintenancePage, OfflinePage, } from './error-pages';
20
+ export type { WakaErrorPageProps, ErrorType, ErrorAction, } from './error-pages';
21
+ export { WakaLanding, defaultLandingNavItems, defaultLandingFeatures, defaultLandingTestimonials, defaultLandingHero, defaultLandingCTA, } from './landing';
22
+ export type { WakaLandingProps, LandingNavItem, LandingHeroProps, LandingFeature, LandingTestimonial, LandingCTA, } from './landing';
23
+ export { WakaPricing, defaultPricingPlans, defaultPricingFAQ, } from './pricing';
24
+ export type { WakaPricingProps, PricingPlan, PricingFeature, PricingFAQ, } from './pricing';
25
+ export { WakaEmptyState, NoDataState, NoResultsState, NoMessagesState, NoFilesState, EmptyCartState, NoNotificationsState, ErrorState, } from './empty-states';
26
+ export type { WakaEmptyStateProps, EmptyStateType, EmptyStateAction, } from './empty-states';
27
+ export { WakaWizard, useWizard, defaultWizardSteps, } from './wizard';
28
+ export type { WakaWizardProps, WizardStep, WizardStepStatus, WizardSubmitData, } from './wizard';
29
+ export { WakaFAQ, defaultFAQCategories, defaultFAQItems, } from './faq';
30
+ export type { WakaFAQProps, FAQItem, FAQCategory, } from './faq';
31
+ export { WakaActivityTimeline, defaultActivityFilters, defaultActivities, } from './activity-timeline';
32
+ export type { WakaActivityTimelineProps, ActivityItem, ActivityUser, ActivityFilter, ActivityType, } from './activity-timeline';
33
+ export { WakaKanbanBoard, defaultKanbanColumns, defaultKanbanLabels, } from './kanban-board';
34
+ export type { WakaKanbanBoardProps, KanbanCard as KanbanBoardCard, KanbanColumn as KanbanBoardColumn, KanbanCardLabel, KanbanCardPriority, } from './kanban-board';
35
+ export { WakaChat, defaultChatUser, defaultChatConversations, defaultChatMessages, } from './chat';
36
+ export type { WakaChatProps, ChatUser, ChatMessage, ChatConversation, MessageStatus, } from './chat';
37
+ export { WakaCalendarView, defaultCalendarEvents, } from './calendar-view';
38
+ export type { WakaCalendarViewProps, CalendarEvent, CalendarViewMode, EventColor, } from './calendar-view';
39
+ export { WakaFileManager, defaultFiles, defaultBreadcrumbs, } from './file-manager';
40
+ export type { WakaFileManagerProps, FileItem, FileType, BreadcrumbItem as FileManagerBreadcrumb, } from './file-manager';
41
+ export { WakaThemeCreatorBlock, defaultThemes, } from './theme-creator-block';
42
+ export type { WakaThemeCreatorBlockProps, ThemeCreatorBlockTheme, ThemeBlockColors, ThemeBlockAssets, ThemeColorGroup, } from './theme-creator-block';
43
+ export { WakaI18nEditor } from './i18n-editor';
44
+ export type { I18nEditorProps, I18nEditorConfig, TranslationEntry, TranslationValue, LanguageConfig, } from './i18n-editor';
@@ -0,0 +1,77 @@
1
+ export type KanbanCardPriority = "low" | "medium" | "high" | "urgent";
2
+ export interface KanbanCardLabel {
3
+ id: string;
4
+ name: string;
5
+ color: string;
6
+ }
7
+ export interface KanbanCardAssignee {
8
+ id: string;
9
+ name: string;
10
+ avatar?: string;
11
+ }
12
+ export interface KanbanCard {
13
+ id: string;
14
+ title: string;
15
+ description?: string;
16
+ priority?: KanbanCardPriority;
17
+ labels?: KanbanCardLabel[];
18
+ assignees?: KanbanCardAssignee[];
19
+ dueDate?: Date | string;
20
+ createdAt?: Date | string;
21
+ metadata?: Record<string, unknown>;
22
+ }
23
+ export interface KanbanColumn {
24
+ id: string;
25
+ title: string;
26
+ cards: KanbanCard[];
27
+ color?: string;
28
+ limit?: number;
29
+ }
30
+ export interface WakaKanbanBoardProps {
31
+ /** Colonnes du tableau */
32
+ columns: KanbanColumn[];
33
+ /** Callback lors du changement des colonnes */
34
+ onColumnsChange?: (columns: KanbanColumn[]) => void;
35
+ /** Callback lors du clic sur une carte */
36
+ onCardClick?: (card: KanbanCard, columnId: string) => void;
37
+ /** Callback lors de l'ajout d'une carte */
38
+ onCardAdd?: (columnId: string, card: Partial<KanbanCard>) => void;
39
+ /** Callback lors de la modification d'une carte */
40
+ onCardEdit?: (cardId: string, columnId: string, data: Partial<KanbanCard>) => void;
41
+ /** Callback lors de la suppression d'une carte */
42
+ onCardDelete?: (cardId: string, columnId: string) => void;
43
+ /** Callback lors du déplacement d'une carte */
44
+ onCardMove?: (cardId: string, fromColumnId: string, toColumnId: string, index: number) => void;
45
+ /** Callback lors de l'ajout d'une colonne */
46
+ onColumnAdd?: (column: Partial<KanbanColumn>) => void;
47
+ /** Callback lors de la modification d'une colonne */
48
+ onColumnEdit?: (columnId: string, data: Partial<KanbanColumn>) => void;
49
+ /** Callback lors de la suppression d'une colonne */
50
+ onColumnDelete?: (columnId: string) => void;
51
+ /** Afficher le bouton d'ajout de carte */
52
+ showAddCard?: boolean;
53
+ /** Afficher le bouton d'ajout de colonne */
54
+ showAddColumn?: boolean;
55
+ /** Afficher le nombre de cartes */
56
+ showCardCount?: boolean;
57
+ /** Afficher les assignés */
58
+ showAssignees?: boolean;
59
+ /** Afficher les labels */
60
+ showLabels?: boolean;
61
+ /** Afficher la priorité */
62
+ showPriority?: boolean;
63
+ /** Afficher la date d'échéance */
64
+ showDueDate?: boolean;
65
+ /** Autoriser le drag & drop */
66
+ draggable?: boolean;
67
+ /** Labels disponibles */
68
+ availableLabels?: KanbanCardLabel[];
69
+ /** Assignés disponibles */
70
+ availableAssignees?: KanbanCardAssignee[];
71
+ /** Classes CSS additionnelles */
72
+ className?: string;
73
+ }
74
+ export declare function WakaKanbanBoard({ columns: externalColumns, onColumnsChange, onCardClick, onCardAdd, onCardEdit, onCardDelete, onCardMove, onColumnAdd, onColumnEdit, onColumnDelete, showAddCard, showAddColumn, showCardCount, showAssignees, showLabels, showPriority, showDueDate, draggable, availableLabels, availableAssignees, className, }: WakaKanbanBoardProps): import("react/jsx-runtime").JSX.Element;
75
+ export declare const defaultKanbanColumns: KanbanColumn[];
76
+ export declare const defaultKanbanLabels: KanbanCardLabel[];
77
+ export default WakaKanbanBoard;
@@ -0,0 +1,101 @@
1
+ import * as React from "react";
2
+ export interface LandingNavItem {
3
+ label: string;
4
+ href: string;
5
+ isActive?: boolean;
6
+ }
7
+ export interface LandingHeroProps {
8
+ /** Badge texte */
9
+ badge?: string;
10
+ /** Titre principal */
11
+ title: string;
12
+ /** Titre mis en évidence */
13
+ highlightedTitle?: string;
14
+ /** Description */
15
+ description: string;
16
+ /** Texte du bouton principal */
17
+ primaryButtonText?: string;
18
+ /** Action du bouton principal */
19
+ primaryButtonAction?: () => void;
20
+ /** Lien du bouton principal */
21
+ primaryButtonHref?: string;
22
+ /** Texte du bouton secondaire */
23
+ secondaryButtonText?: string;
24
+ /** Action du bouton secondaire */
25
+ secondaryButtonAction?: () => void;
26
+ /** Lien du bouton secondaire */
27
+ secondaryButtonHref?: string;
28
+ /** Image/illustration */
29
+ image?: React.ReactNode;
30
+ /** Statistiques */
31
+ stats?: {
32
+ value: string;
33
+ label: string;
34
+ }[];
35
+ }
36
+ export interface LandingFeature {
37
+ id: string;
38
+ icon: React.ReactNode;
39
+ title: string;
40
+ description: string;
41
+ }
42
+ export interface LandingTestimonial {
43
+ id: string;
44
+ content: string;
45
+ author: string;
46
+ role: string;
47
+ company?: string;
48
+ avatar?: string;
49
+ rating?: number;
50
+ }
51
+ export interface LandingCTA {
52
+ title: string;
53
+ description?: string;
54
+ buttonText: string;
55
+ buttonAction?: () => void;
56
+ buttonHref?: string;
57
+ secondaryButtonText?: string;
58
+ secondaryButtonAction?: () => void;
59
+ variant?: "default" | "gradient" | "dark";
60
+ }
61
+ export interface WakaLandingProps {
62
+ /** Logo */
63
+ logo?: React.ReactNode;
64
+ /** Nom de la marque */
65
+ brandName?: string;
66
+ /** Items de navigation */
67
+ navItems?: LandingNavItem[];
68
+ /** Afficher le bouton de connexion */
69
+ showLoginButton?: boolean;
70
+ /** Texte du bouton de connexion */
71
+ loginButtonText?: string;
72
+ /** Action du bouton de connexion */
73
+ onLogin?: () => void;
74
+ /** URL de connexion */
75
+ loginHref?: string;
76
+ /** Configuration du Hero */
77
+ hero?: LandingHeroProps;
78
+ /** Features */
79
+ features?: LandingFeature[];
80
+ /** Titre de la section features */
81
+ featuresTitle?: string;
82
+ /** Description de la section features */
83
+ featuresDescription?: string;
84
+ /** Témoignages */
85
+ testimonials?: LandingTestimonial[];
86
+ /** Titre de la section témoignages */
87
+ testimonialsTitle?: string;
88
+ /** CTA */
89
+ cta?: LandingCTA;
90
+ /** Footer content */
91
+ footer?: React.ReactNode;
92
+ /** Classes CSS additionnelles */
93
+ className?: string;
94
+ }
95
+ export declare function WakaLanding({ logo, brandName, navItems, showLoginButton, loginButtonText, onLogin, loginHref, hero, features, featuresTitle, featuresDescription, testimonials, testimonialsTitle, cta, footer, className, }: WakaLandingProps): import("react/jsx-runtime").JSX.Element;
96
+ export declare const defaultLandingNavItems: LandingNavItem[];
97
+ export declare const defaultLandingFeatures: LandingFeature[];
98
+ export declare const defaultLandingTestimonials: LandingTestimonial[];
99
+ export declare const defaultLandingHero: LandingHeroProps;
100
+ export declare const defaultLandingCTA: LandingCTA;
101
+ export default WakaLanding;
@@ -0,0 +1,60 @@
1
+ export interface PricingFeature {
2
+ name: string;
3
+ included: boolean | "partial" | "limited";
4
+ tooltip?: string;
5
+ value?: string;
6
+ }
7
+ export interface PricingPlan {
8
+ id: string;
9
+ name: string;
10
+ description?: string;
11
+ price: number | string;
12
+ priceYearly?: number | string;
13
+ currency?: string;
14
+ period?: string;
15
+ periodYearly?: string;
16
+ features: PricingFeature[];
17
+ buttonText?: string;
18
+ buttonVariant?: "default" | "outline" | "secondary";
19
+ onSelect?: () => void;
20
+ href?: string;
21
+ popular?: boolean;
22
+ badge?: string;
23
+ disabled?: boolean;
24
+ }
25
+ export interface PricingFAQ {
26
+ question: string;
27
+ answer: string;
28
+ }
29
+ export interface WakaPricingProps {
30
+ /** Titre */
31
+ title?: string;
32
+ /** Description */
33
+ description?: string;
34
+ /** Plans de tarification */
35
+ plans: PricingPlan[];
36
+ /** Afficher le toggle mensuel/annuel */
37
+ showBillingToggle?: boolean;
38
+ /** Période de facturation */
39
+ billingPeriod?: "monthly" | "yearly";
40
+ /** Callback changement de période */
41
+ onBillingPeriodChange?: (period: "monthly" | "yearly") => void;
42
+ /** Réduction annuelle (ex: "20%") */
43
+ yearlyDiscount?: string;
44
+ /** FAQ */
45
+ faq?: PricingFAQ[];
46
+ /** Titre de la FAQ */
47
+ faqTitle?: string;
48
+ /** Layout */
49
+ layout?: "cards" | "table";
50
+ /** Nombre de colonnes */
51
+ columns?: 2 | 3 | 4;
52
+ /** Afficher la comparaison de features */
53
+ showComparison?: boolean;
54
+ /** Classes CSS additionnelles */
55
+ className?: string;
56
+ }
57
+ export declare function WakaPricing({ title, description, plans, showBillingToggle, billingPeriod: externalBillingPeriod, onBillingPeriodChange, yearlyDiscount, faq, faqTitle, layout, columns, showComparison, className, }: WakaPricingProps): import("react/jsx-runtime").JSX.Element;
58
+ export declare const defaultPricingPlans: PricingPlan[];
59
+ export declare const defaultPricingFAQ: PricingFAQ[];
60
+ export default WakaPricing;
@@ -0,0 +1,98 @@
1
+ import * as React from "react";
2
+ export interface ProfileSocialLink {
3
+ id: string;
4
+ type: "website" | "twitter" | "github" | "linkedin" | "other";
5
+ url: string;
6
+ label?: string;
7
+ }
8
+ export interface ProfileField {
9
+ id: string;
10
+ label: string;
11
+ value: string;
12
+ type?: "text" | "email" | "tel" | "url" | "textarea" | "date" | "select";
13
+ placeholder?: string;
14
+ options?: {
15
+ value: string;
16
+ label: string;
17
+ }[];
18
+ required?: boolean;
19
+ disabled?: boolean;
20
+ icon?: React.ReactNode;
21
+ }
22
+ export interface ProfileSection {
23
+ id: string;
24
+ title: string;
25
+ description?: string;
26
+ icon?: React.ReactNode;
27
+ fields: ProfileField[];
28
+ }
29
+ export interface ProfileData {
30
+ /** Nom d'affichage */
31
+ displayName: string;
32
+ /** Prénom */
33
+ firstName?: string;
34
+ /** Nom */
35
+ lastName?: string;
36
+ /** Email */
37
+ email: string;
38
+ /** Téléphone */
39
+ phone?: string;
40
+ /** Bio */
41
+ bio?: string;
42
+ /** Avatar URL */
43
+ avatarUrl?: string;
44
+ /** Rôle/Titre */
45
+ role?: string;
46
+ /** Département */
47
+ department?: string;
48
+ /** Entreprise */
49
+ company?: string;
50
+ /** Localisation */
51
+ location?: string;
52
+ /** Site web */
53
+ website?: string;
54
+ /** Date d'inscription */
55
+ joinedAt?: Date | string;
56
+ /** Liens sociaux */
57
+ socialLinks?: ProfileSocialLink[];
58
+ /** Champs personnalisés */
59
+ customFields?: Record<string, string>;
60
+ }
61
+ export interface WakaProfileProps {
62
+ /** Données du profil */
63
+ profile: ProfileData;
64
+ /** Mode édition */
65
+ editable?: boolean;
66
+ /** En mode édition actuellement */
67
+ isEditing?: boolean;
68
+ /** Callback pour activer/désactiver l'édition */
69
+ onEditToggle?: (editing: boolean) => void;
70
+ /** Callback lors d'un changement */
71
+ onChange?: (field: string, value: string) => void;
72
+ /** Callback de sauvegarde */
73
+ onSave?: (profile: ProfileData) => void | Promise<void>;
74
+ /** En cours de sauvegarde */
75
+ saving?: boolean;
76
+ /** Callback changement d'avatar */
77
+ onAvatarChange?: (file: File) => void | Promise<void>;
78
+ /** Sections personnalisées */
79
+ customSections?: ProfileSection[];
80
+ /** Afficher les liens sociaux */
81
+ showSocialLinks?: boolean;
82
+ /** Afficher les statistiques */
83
+ showStats?: boolean;
84
+ /** Statistiques */
85
+ stats?: {
86
+ label: string;
87
+ value: string | number;
88
+ }[];
89
+ /** Layout */
90
+ layout?: "card" | "page" | "compact";
91
+ /** Tabs pour page layout */
92
+ useTabs?: boolean;
93
+ /** Classes CSS additionnelles */
94
+ className?: string;
95
+ }
96
+ export declare function WakaProfile({ profile, editable, isEditing: externalIsEditing, onEditToggle, onChange, onSave, saving, onAvatarChange, customSections, showSocialLinks, showStats, stats, layout, useTabs, className, }: WakaProfileProps): import("react/jsx-runtime").JSX.Element;
97
+ export declare const defaultProfileData: ProfileData;
98
+ export default WakaProfile;
@@ -0,0 +1,62 @@
1
+ import * as React from "react";
2
+ export interface SettingsSectionConfig {
3
+ id: string;
4
+ title: string;
5
+ description?: string;
6
+ icon?: React.ReactNode;
7
+ fields: SettingsFieldConfig[];
8
+ }
9
+ export interface SettingsFieldConfig {
10
+ id: string;
11
+ label: string;
12
+ description?: string;
13
+ type: "text" | "email" | "password" | "textarea" | "switch" | "select" | "custom";
14
+ value?: string | boolean;
15
+ placeholder?: string;
16
+ options?: {
17
+ value: string;
18
+ label: string;
19
+ }[];
20
+ disabled?: boolean;
21
+ required?: boolean;
22
+ customComponent?: React.ReactNode;
23
+ }
24
+ export interface SettingsTabConfig {
25
+ id: string;
26
+ label: string;
27
+ icon?: React.ReactNode;
28
+ sections: SettingsSectionConfig[];
29
+ }
30
+ export interface WakaSettingsProps {
31
+ /** Titre de la page */
32
+ title?: string;
33
+ /** Description */
34
+ description?: string;
35
+ /** Tabs de paramètres */
36
+ tabs?: SettingsTabConfig[];
37
+ /** Sections sans tabs */
38
+ sections?: SettingsSectionConfig[];
39
+ /** Utiliser les tabs */
40
+ useTabs?: boolean;
41
+ /** Tab actif par défaut */
42
+ defaultTab?: string;
43
+ /** Valeurs des champs */
44
+ values?: Record<string, string | boolean>;
45
+ /** Callback lors d'un changement */
46
+ onChange?: (fieldId: string, value: string | boolean) => void;
47
+ /** Callback de sauvegarde */
48
+ onSave?: (values: Record<string, string | boolean>) => void | Promise<void>;
49
+ /** En cours de sauvegarde */
50
+ saving?: boolean;
51
+ /** Afficher le bouton sauvegarder */
52
+ showSaveButton?: boolean;
53
+ /** Afficher le bouton supprimer le compte */
54
+ showDeleteAccount?: boolean;
55
+ /** Callback suppression compte */
56
+ onDeleteAccount?: () => void;
57
+ /** Classes CSS additionnelles */
58
+ className?: string;
59
+ }
60
+ export declare function WakaSettings({ title, description, tabs, sections, useTabs, defaultTab, values, onChange, onSave, saving, showSaveButton, showDeleteAccount, onDeleteAccount, className, }: WakaSettingsProps): import("react/jsx-runtime").JSX.Element;
61
+ export declare const defaultSettingsTabs: SettingsTabConfig[];
62
+ export default WakaSettings;
@@ -0,0 +1,86 @@
1
+ import * as React from "react";
2
+ export interface ThemeBlockColors {
3
+ background: string;
4
+ foreground: string;
5
+ card: string;
6
+ cardForeground: string;
7
+ popover: string;
8
+ popoverForeground: string;
9
+ primary: string;
10
+ primaryForeground: string;
11
+ secondary: string;
12
+ secondaryForeground: string;
13
+ muted: string;
14
+ mutedForeground: string;
15
+ accent: string;
16
+ accentForeground: string;
17
+ destructive: string;
18
+ destructiveForeground: string;
19
+ border: string;
20
+ input: string;
21
+ ring: string;
22
+ chart1: string;
23
+ chart2: string;
24
+ chart3: string;
25
+ chart4: string;
26
+ chart5: string;
27
+ sidebarBackground?: string;
28
+ sidebarForeground?: string;
29
+ sidebarPrimary?: string;
30
+ sidebarPrimaryForeground?: string;
31
+ sidebarAccent?: string;
32
+ sidebarAccentForeground?: string;
33
+ sidebarBorder?: string;
34
+ sidebarRing?: string;
35
+ }
36
+ export interface ThemeBlockAssets {
37
+ logoLight?: string;
38
+ logoDark?: string;
39
+ backgroundLight?: string;
40
+ backgroundDark?: string;
41
+ favicon?: string;
42
+ sponsorLight?: string;
43
+ sponsorDark?: string;
44
+ }
45
+ export interface ThemeCreatorBlockTheme {
46
+ id: string;
47
+ name: string;
48
+ description?: string;
49
+ author?: string;
50
+ lightColors: ThemeBlockColors;
51
+ darkColors: ThemeBlockColors;
52
+ assets?: ThemeBlockAssets;
53
+ radius?: string;
54
+ fonts?: {
55
+ sans?: string;
56
+ mono?: string;
57
+ };
58
+ }
59
+ export interface ThemeColorGroup {
60
+ id: string;
61
+ label: string;
62
+ icon?: React.ReactNode;
63
+ colors: {
64
+ key: keyof ThemeBlockColors;
65
+ label: string;
66
+ description?: string;
67
+ }[];
68
+ }
69
+ export interface WakaThemeCreatorBlockProps {
70
+ themes?: ThemeCreatorBlockTheme[];
71
+ initialTheme?: ThemeCreatorBlockTheme;
72
+ onThemeChange?: (theme: ThemeCreatorBlockTheme) => void;
73
+ onSave?: (theme: ThemeCreatorBlockTheme) => Promise<void>;
74
+ onUploadAsset?: (file: File, assetType: keyof ThemeBlockAssets) => Promise<string>;
75
+ onExport?: (theme: ThemeCreatorBlockTheme, format: 'json' | 'css') => void;
76
+ showTypography?: boolean;
77
+ showSidebarColors?: boolean;
78
+ previewTabs?: ('login' | 'dashboard' | 'chat')[];
79
+ customPreview?: React.ReactNode;
80
+ className?: string;
81
+ }
82
+ export declare const defaultThemes: ThemeCreatorBlockTheme[];
83
+ export declare function WakaThemeCreatorBlock({ themes, initialTheme, onThemeChange, onSave, onUploadAsset, showSidebarColors, previewTabs, className, }: WakaThemeCreatorBlockProps): import("react/jsx-runtime").JSX.Element;
84
+ export declare namespace WakaThemeCreatorBlock {
85
+ var displayName: string;
86
+ }
@@ -0,0 +1,95 @@
1
+ export type UserRole = "admin" | "moderator" | "user" | "guest";
2
+ export type UserStatus = "active" | "inactive" | "pending" | "banned";
3
+ export interface UserPermission {
4
+ id: string;
5
+ name: string;
6
+ description?: string;
7
+ category?: string;
8
+ }
9
+ export interface UserData {
10
+ id: string;
11
+ email: string;
12
+ displayName: string;
13
+ firstName?: string;
14
+ lastName?: string;
15
+ avatarUrl?: string;
16
+ role: UserRole;
17
+ status: UserStatus;
18
+ permissions?: string[];
19
+ createdAt: Date | string;
20
+ lastLogin?: Date | string;
21
+ metadata?: Record<string, unknown>;
22
+ }
23
+ export interface UserFormData {
24
+ email: string;
25
+ displayName: string;
26
+ firstName?: string;
27
+ lastName?: string;
28
+ role: UserRole;
29
+ status: UserStatus;
30
+ permissions?: string[];
31
+ }
32
+ export interface WakaUserManagementProps {
33
+ /** Liste des utilisateurs */
34
+ users: UserData[];
35
+ /** Rôles disponibles */
36
+ roles?: {
37
+ value: UserRole;
38
+ label: string;
39
+ color?: string;
40
+ }[];
41
+ /** Permissions disponibles */
42
+ permissions?: UserPermission[];
43
+ /** Utilisateurs sélectionnés */
44
+ selectedUsers?: string[];
45
+ /** Callback sélection */
46
+ onSelectionChange?: (userIds: string[]) => void;
47
+ /** Callback création */
48
+ onCreate?: (user: UserFormData) => void | Promise<void>;
49
+ /** Callback modification */
50
+ onEdit?: (userId: string, data: Partial<UserFormData>) => void | Promise<void>;
51
+ /** Callback suppression */
52
+ onDelete?: (userId: string) => void | Promise<void>;
53
+ /** Callback suppression multiple */
54
+ onBulkDelete?: (userIds: string[]) => void | Promise<void>;
55
+ /** Callback changement de rôle */
56
+ onRoleChange?: (userId: string, role: UserRole) => void | Promise<void>;
57
+ /** Callback changement de statut */
58
+ onStatusChange?: (userId: string, status: UserStatus) => void | Promise<void>;
59
+ /** Callback réinitialisation mot de passe */
60
+ onResetPassword?: (userId: string) => void | Promise<void>;
61
+ /** Callback export */
62
+ onExport?: () => void;
63
+ /** Callback rafraîchissement */
64
+ onRefresh?: () => void;
65
+ /** En cours de chargement */
66
+ loading?: boolean;
67
+ /** En cours d'action */
68
+ actionLoading?: boolean;
69
+ /** Recherche */
70
+ searchQuery?: string;
71
+ /** Callback recherche */
72
+ onSearchChange?: (query: string) => void;
73
+ /** Filtre par rôle */
74
+ roleFilter?: UserRole | "all";
75
+ /** Callback filtre rôle */
76
+ onRoleFilterChange?: (role: UserRole | "all") => void;
77
+ /** Filtre par statut */
78
+ statusFilter?: UserStatus | "all";
79
+ /** Callback filtre statut */
80
+ onStatusFilterChange?: (status: UserStatus | "all") => void;
81
+ /** Afficher les actions en masse */
82
+ showBulkActions?: boolean;
83
+ /** Afficher le bouton création */
84
+ showCreateButton?: boolean;
85
+ /** Titre */
86
+ title?: string;
87
+ /** Description */
88
+ description?: string;
89
+ /** Classes CSS additionnelles */
90
+ className?: string;
91
+ }
92
+ export declare function WakaUserManagement({ users, roles, permissions, selectedUsers, onSelectionChange, onCreate, onEdit, onDelete, onBulkDelete, onRoleChange, onStatusChange, onResetPassword, onExport, onRefresh, loading, actionLoading, searchQuery, onSearchChange, roleFilter, onRoleFilterChange, statusFilter, onStatusFilterChange, showBulkActions, showCreateButton, title, description, className, }: WakaUserManagementProps): import("react/jsx-runtime").JSX.Element;
93
+ export declare const defaultUsers: UserData[];
94
+ export declare const defaultPermissions: UserPermission[];
95
+ export default WakaUserManagement;