@thebuoyant-tsdev/mui-ts-library 2.6.0 → 3.0.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/README.de.md CHANGED
@@ -12,16 +12,15 @@ Eine typsichere React-Komponentenbibliothek auf Basis von **TypeScript** und **M
12
12
 
13
13
  | Komponente | Beschreibung | Docs |
14
14
  |---|---|---|
15
- | [`ConfirmDialog`](#confirmdialog) | Deklarativer Async-Bestätigungs-Dialog `await confirm({ title, severity })` von überall in der App. Unterstützt Countdown-Auto-Confirm und `Enter` = Bestätigen. | [Vollständiges Manual →](user-manuals/ConfirmDialog.de.md) |
16
- | [`GanttChart`](#ganttchart) | Projekt-Timeline mit hierarchischen Aufgaben, Meilensteinen, Drag & Drop, Ctrl / Cmd ⌘+Scroll-Zoom, Heute-Chip und integrierten CRUD-Dialogen | [Vollständiges Manual →](user-manuals/GanttChart.de.md) |
15
+ | [`GanttChart`](#ganttchart) | Projekt-Timeline mit hierarchischen Aufgaben, Meilensteinen, Drag & Drop, Ctrl / Cmd ⌘+Scroll-Zoom, Heute-Chip, Assignee-Spalte, CSV-Export und integrierten CRUD-Dialogen | [Vollständiges Manual →](user-manuals/GanttChart.de.md) |
17
16
  | [`TagSelection`](#tagselection) | Multi-Tag-Auswahlfeld mit Autocomplete, freier Tag-Erstellung, Overflow-Chips und MUI-Theme-Farben | [Vollständiges Manual →](user-manuals/TagSelection.de.md) |
18
- | [`PasswordStrengthMeter`](#passwordstrengthmeter) | Passwort-Eingabe mit animiertem Stärke-Meter, segmentierter Balkenanzeige, eigenen Anforderungen und Anforderungsliste | [Vollständiges Manual →](user-manuals/PasswordStrengthMeter.de.md) |
17
+ | [`PasswordStrengthMeter`](#passwordstrengthmeter) | Passwort-Eingabe mit animiertem Stärke-Meter, Confirm-Feld mit Match-Validierung, eigenen Anforderungen und eingebautem sicheren Passwort-Generator | [Vollständiges Manual →](user-manuals/PasswordStrengthMeter.de.md) |
19
18
  | [`RichTextEditor`](#richtexteditor) | WYSIWYG-Editor (TipTap v3) mit Toolbar, Link-Dialog, Textfarbe, Hervorhebung, Wörter-Zähler, Vollbild-Modus, Markdown-Einfügen, Tabellen-Bearbeitung, Bild-Embed und Emoji-Picker | [Vollständiges Manual →](user-manuals/RichTextEditor.de.md) |
20
19
  | [`SqlEditor`](#sqleditor) | SQL-Code-Editor (CodeMirror 6) mit Syntax-Highlighting, Multi-Dialekt, Autocomplete, Linting und `Cmd+Enter`-Ausführen-Shortcut | [Vollständiges Manual →](user-manuals/SqlEditor.de.md) |
21
20
  | [`JsonEditor`](#jsoneditor) | JSON-Code-Editor (CodeMirror 6) mit Echtzeit-Validierung, Format- und Komprimieren-Schaltfläche sowie optionaler Minimap | [Vollständiges Manual →](user-manuals/JsonEditor.de.md) |
22
21
  | [`SunburstChart`](#sunburstchart) | D3 v7 hierarchisches Chart — konzentrische Ringe, Ctrl / Cmd ⌘+Click Drill-Down, Ctrl / Cmd ⌘+Scroll Zoom, Donut-Modus, eigene Farben, MUI-Theme-Integration. Erste der D3-Chart-Familie. | [Vollständiges Manual →](user-manuals/SunburstChart.de.md) |
23
22
  | [`ChordChart`](#chordchart) | D3 v7 Fluss-Chart — Arc-Gruppen, Bänder, Hover-Highlight, Ctrl / Cmd ⌘+Scroll-Zoom, gerichtet/ungerichtet, MUI-Theme-Integration | [Vollständiges Manual →](user-manuals/ChordChart.de.md) |
24
- | [`RadialTreeChart`](#radialtreedchart) | D3 v7 radialer Baum — Knoten auf konzentrischen Ringen, MUI-Icons, Ctrl / Cmd ⌘+Click Drill-Down, Ctrl / Cmd ⌘+Scroll Zoom, MUI-Theme-Integration | [Vollständiges Manual →](user-manuals/RadialTreeChart.de.md) |
23
+ | [`RadialTreeChart`](#radialtreechart) | D3 v7 radialer Baum — Knoten auf konzentrischen Ringen, MUI-Icons, Ctrl / Cmd ⌘+Click Drill-Down, Ctrl / Cmd ⌘+Scroll Zoom, MUI-Theme-Integration | [Vollständiges Manual →](user-manuals/RadialTreeChart.de.md) |
25
24
  | [`CirclePackingChart`](#circlepackingchart) | D3 v7 Circle Packing — verschachtelte Kreise, animierter D3-Zoom, Ctrl / Cmd ⌘+Scroll-Zoom, Tiefen-Gradient oder Palette, MUI-Theme-Integration | [Vollständiges Manual →](user-manuals/CirclePackingChart.de.md) |
26
25
  | [`HorizontalTreeChart`](#horizontaltreechart) | D3 v7 Baum-Chart — 4 Orientierungen (LR/RL/TB/BT), geschwungene Links, Drill-Down, Ctrl / Cmd ⌘+Scroll-Zoom, MUI-Icons und Theme-Integration | [Vollständiges Manual →](user-manuals/HorizontalTreeChart.de.md) |
27
26
 
@@ -55,29 +54,7 @@ import { GanttChart, JsonEditor, useConfirm } from '@thebuoyant-tsdev/mui-ts-lib
55
54
 
56
55
  ## Schnellstart
57
56
 
58
- Die App wie gewohnt in MUI's `ThemeProvider` einschließen. `ConfirmDialog` benötigt zusätzlich einen `ConfirmDialogProvider` nahe der App-Wurzel — alle anderen Komponenten funktionieren ohne Provider.
59
-
60
- ### ConfirmDialog
61
-
62
- Ersetzt jedes manuelle `open/setOpen`-State-Muster durch einen einzigen `await confirm(...)`-Aufruf. Eliminiert Boilerplate bei Lösch-Bestätigungen, destruktiven Aktionen und allen Flows, die vor dem Fortfahren eine Nutzerzustimmung benötigen — mit optionalem Countdown-Auto-Confirm und Enter = Bestätigen.
63
-
64
- ```tsx
65
- import { ConfirmDialogProvider, useConfirm } from '@thebuoyant-tsdev/mui-ts-library';
66
-
67
- // App-Wurzel — einmalig
68
- <ConfirmDialogProvider>
69
- <App />
70
- </ConfirmDialogProvider>
71
-
72
- // Überall innerhalb der App
73
- const confirm = useConfirm();
74
- const ok = await confirm({ title: 'Eintrag löschen?', severity: 'error', confirmLabel: 'Löschen', countdown: 10 });
75
- if (ok) handleDelete();
76
- ```
77
-
78
- → [Vollständige Dokumentation](user-manuals/ConfirmDialog.de.md)
79
-
80
- ---
57
+ Die App wie gewohnt in MUI's `ThemeProvider` einschließen — alle Komponenten funktionieren ohne zusätzlichen Provider.
81
58
 
82
59
  ### GanttChart
83
60
 
@@ -121,7 +98,7 @@ const tags: TagSelectionItem[] = [
121
98
 
122
99
  ### PasswordStrengthMeter
123
100
 
124
- Passwort-Eingabe mit Echtzeit-Stärke-Feedback. Konzipiert für Registrierungs- und Passwort-Änderungs-Flows, bei denen Nutzer zu sicheren Passwörtern geführt werden sollen mit animiertem Stärke-Meter, segmentierten Balken und einer Live-Anforderungs-Checkliste.
101
+ Passwort-Eingabe mit Echtzeit-Stärke-Feedback und eingebautem sicheren Passwort-Generator. Konzipiert für Registrierungs- und Passwort-Änderungs-Flows Nutzer zu starken Passwörtern führen oder per Klick eines generieren lassen.
125
102
 
126
103
  ```tsx
127
104
  import { PasswordStrengthMeter } from '@thebuoyant-tsdev/mui-ts-library';
@@ -129,7 +106,12 @@ import { PasswordStrengthMeter } from '@thebuoyant-tsdev/mui-ts-library';
129
106
  <PasswordStrengthMeter
130
107
  passwordMinLength={10}
131
108
  showSegmentedBar
109
+ showConfirmField // zweites Feld mit ✓/✗ Match-Validierung
110
+ showPasswordGenerator // generiert ein kryptographisch sicheres Passwort
111
+ generatorOptions={{ length: 20 }}
132
112
  onPasswordChange={(password, result) => console.log(result.score)}
113
+ onConfirmChange={(value, matches) => console.log('Übereinstimmung:', matches)}
114
+ onPasswordGenerated={(pw) => console.log('Generiert:', pw)}
133
115
  />
134
116
  ```
135
117
 
@@ -290,9 +272,6 @@ Alle Typen und Defaults werden direkt exportiert — kein separates `@types/...`
290
272
 
291
273
  ```tsx
292
274
  import type {
293
- // ConfirmDialog
294
- ConfirmDialogOptions, ConfirmDialogSeverity,
295
-
296
275
  // GanttChart
297
276
  GanttTask, GanttTranslations, GanttTheme, GanttToolbarConfig,
298
277
 
package/README.md CHANGED
@@ -12,16 +12,15 @@ A type-safe React component library built on **TypeScript** and **MUI (Material
12
12
 
13
13
  | Component | Description | Docs |
14
14
  |---|---|---|
15
- | [`ConfirmDialog`](#confirmdialog) | Declarative async confirmation dialog `await confirm({ title, severity })` from anywhere in the app. Supports countdown auto-confirm and `Enter` = confirm shortcut. | [Full Manual →](user-manuals/ConfirmDialog.md) |
16
- | [`GanttChart`](#ganttchart) | Project timeline with hierarchical tasks, milestones, drag & drop, Ctrl / Cmd ⌘+Scroll zoom, today chip, and built-in CRUD dialogs | [Full Manual →](user-manuals/GanttChart.md) |
15
+ | [`GanttChart`](#ganttchart) | Project timeline with hierarchical tasks, milestones, drag & drop, Ctrl / Cmd ⌘+Scroll zoom, today chip, assignee column, CSV export, and built-in CRUD dialogs | [Full Manual →](user-manuals/GanttChart.md) |
17
16
  | [`TagSelection`](#tagselection) | Multi-tag selector with autocomplete, free tag creation, overflow chips, and MUI theme colors | [Full Manual →](user-manuals/TagSelection.md) |
18
- | [`PasswordStrengthMeter`](#passwordstrengthmeter) | Password input with animated strength meter, segmented bar, custom requirements, and requirements checklist | [Full Manual →](user-manuals/PasswordStrengthMeter.md) |
17
+ | [`PasswordStrengthMeter`](#passwordstrengthmeter) | Password input with animated strength meter, segmented bar, custom requirements, confirm field with match validation, and built-in secure password generator | [Full Manual →](user-manuals/PasswordStrengthMeter.md) |
19
18
  | [`RichTextEditor`](#richtexteditor) | WYSIWYG editor (TipTap v3) with toolbar, link dialog, text color, highlight, word count, fullscreen mode, Markdown paste, table editing, image embed, and emoji picker | [Full Manual →](user-manuals/RichTextEditor.md) |
20
19
  | [`SqlEditor`](#sqleditor) | SQL code editor (CodeMirror 6) with syntax highlighting, multi-dialect, autocomplete, linting, and `Cmd+Enter` execute shortcut | [Full Manual →](user-manuals/SqlEditor.md) |
21
20
  | [`JsonEditor`](#jsoneditor) | JSON code editor (CodeMirror 6) with real-time validation, Format, Compact buttons, and optional minimap | [Full Manual →](user-manuals/JsonEditor.md) |
22
21
  | [`SunburstChart`](#sunburstchart) | D3 v7 hierarchical chart — concentric rings, Ctrl / Cmd ⌘+Click drill-down, Ctrl / Cmd ⌘+Scroll zoom, donut mode, MUI theme integration | [Full Manual →](user-manuals/SunburstChart.md) |
23
22
  | [`ChordChart`](#chordchart) | D3 v7 flow chart — arc groups, ribbons, hover highlight, Ctrl / Cmd ⌘+Scroll zoom, directed/undirected, MUI theme integration | [Full Manual →](user-manuals/ChordChart.md) |
24
- | [`RadialTreeChart`](#radialtreedchart) | D3 v7 radial tree — hierarchical nodes on concentric rings, MUI icons, Ctrl / Cmd ⌘+Click drill-down, Ctrl / Cmd ⌘+Scroll zoom, MUI theme integration | [Full Manual →](user-manuals/RadialTreeChart.md) |
23
+ | [`RadialTreeChart`](#radialtreechart) | D3 v7 radial tree — hierarchical nodes on concentric rings, MUI icons, Ctrl / Cmd ⌘+Click drill-down, Ctrl / Cmd ⌘+Scroll zoom, MUI theme integration | [Full Manual →](user-manuals/RadialTreeChart.md) |
25
24
  | [`CirclePackingChart`](#circlepackingchart) | D3 v7 circle packing — nested circles, animated D3 zoom, Ctrl / Cmd ⌘+Scroll zoom, depth gradient or palette, MUI theme integration | [Full Manual →](user-manuals/CirclePackingChart.md) |
26
25
  | [`HorizontalTreeChart`](#horizontaltreechart) | D3 v7 tree chart — 4 orientations (LR/RL/TB/BT), curved links, drill-down, Ctrl / Cmd ⌘+Scroll zoom, MUI icons and theme integration | [Full Manual →](user-manuals/HorizontalTreeChart.md) |
27
26
 
@@ -55,29 +54,7 @@ import { GanttChart, JsonEditor, useConfirm } from '@thebuoyant-tsdev/mui-ts-lib
55
54
 
56
55
  ## Quick Start
57
56
 
58
- Wrap your app in MUI's `ThemeProvider` as usual. `ConfirmDialog` additionally requires a `ConfirmDialogProvider` near the app root — all other components work without a provider.
59
-
60
- ### ConfirmDialog
61
-
62
- Replace every manual `open/setOpen` state pattern with a single `await confirm(...)` call. Eliminates boilerplate from delete confirmations, destructive actions, and any flow that needs user approval before proceeding — with optional countdown auto-confirm and `Enter` = confirm shortcut.
63
-
64
- ```tsx
65
- import { ConfirmDialogProvider, useConfirm } from '@thebuoyant-tsdev/mui-ts-library';
66
-
67
- // App root — once
68
- <ConfirmDialogProvider>
69
- <App />
70
- </ConfirmDialogProvider>
71
-
72
- // Anywhere inside
73
- const confirm = useConfirm();
74
- const ok = await confirm({ title: 'Delete entry?', severity: 'error', confirmLabel: 'Delete', countdown: 10 });
75
- if (ok) handleDelete();
76
- ```
77
-
78
- → [Full documentation](user-manuals/ConfirmDialog.md)
79
-
80
- ---
57
+ Wrap your app in MUI's `ThemeProvider` as usual — all components work without an additional provider.
81
58
 
82
59
  ### GanttChart
83
60
 
@@ -121,7 +98,7 @@ const tags: TagSelectionItem[] = [
121
98
 
122
99
  ### PasswordStrengthMeter
123
100
 
124
- Password input with real-time strength feedback. Designed for registration flows and password-change screens where you want to guide users toward secure passwords with an animated strength bar, segmented segments, and a live requirements checklist.
101
+ Password input with real-time strength feedback, a confirm field with match validation, and a built-in secure password generator. Designed for registration flows and password-change screens.
125
102
 
126
103
  ```tsx
127
104
  import { PasswordStrengthMeter } from '@thebuoyant-tsdev/mui-ts-library';
@@ -129,7 +106,12 @@ import { PasswordStrengthMeter } from '@thebuoyant-tsdev/mui-ts-library';
129
106
  <PasswordStrengthMeter
130
107
  passwordMinLength={10}
131
108
  showSegmentedBar
109
+ showConfirmField // second input with ✓/✗ match validation
110
+ showPasswordGenerator // generates a cryptographically secure password
111
+ generatorOptions={{ length: 20 }}
132
112
  onPasswordChange={(password, result) => console.log(result.score)}
113
+ onConfirmChange={(value, matches) => console.log('Matches:', matches)}
114
+ onPasswordGenerated={(pw) => console.log('Generated:', pw)}
133
115
  />
134
116
  ```
135
117
 
@@ -290,9 +272,6 @@ All types and defaults are exported directly — no separate `@types/...` packag
290
272
 
291
273
  ```tsx
292
274
  import type {
293
- // ConfirmDialog
294
- ConfirmDialogOptions, ConfirmDialogSeverity,
295
-
296
275
  // GanttChart
297
276
  GanttTask, GanttTranslations, GanttTheme, GanttToolbarConfig,
298
277
 
@@ -8,6 +8,7 @@ export declare const COLUMN_WIDTH_QUARTER = 360;
8
8
  export declare const BAR_HEIGHT = 16;
9
9
  export declare const STATUS_COL_WIDTH = 90;
10
10
  export declare const ACTIONS_COL_WIDTH = 96;
11
+ export declare const ASSIGNEE_COL_WIDTH = 110;
11
12
  export declare const DIVIDER_WIDTH = 4;
12
13
  /** MUI-Farb-Token für Balken und Status-Punkte (bgcolor-kompatibel) */
13
14
  export declare const STATUS_BAR_COLOR: Record<string, string>;
@@ -4,4 +4,4 @@ export declare function useGanttChartStore<T>(selector: (state: ReturnType<Gantt
4
4
  export declare function useRawGanttChartStore(): GanttChartStore;
5
5
  export declare function useGanttTranslations(): GanttTranslations;
6
6
  export declare function useGanttTheme(): GanttTheme;
7
- export declare function GanttChart({ tasks, timeScale, initialExpandAll, showToolbar, defaultRangeStart, defaultRangeEnd, translations, enableBuiltinDialogs, toolbarConfig, zoomable, draggable, resizable, inlineEdit, progressDraggable, showCriticalPath, virtualizeRows, cascadeDependencies, statusColors, ganttTheme, onTaskClick, onMilestoneClick, onAddTask, onEditTask, onDeleteTask, onStatusChange, onTasksChange, onTaskMoved, onTaskResized, onTaskCreated, onTaskUpdated, onTaskDeleted, height, width, minPanelWidth, maxPanelWidth, }: GanttChartProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function GanttChart({ tasks, timeScale, initialExpandAll, showToolbar, defaultRangeStart, defaultRangeEnd, translations, enableBuiltinDialogs, toolbarConfig, zoomable, draggable, resizable, inlineEdit, progressDraggable, showCriticalPath, virtualizeRows, showAssigneeColumn, cascadeDependencies, statusColors, ganttTheme, onExportCSV, onTaskClick, onMilestoneClick, onAddTask, onEditTask, onDeleteTask, onStatusChange, onTasksChange, onTaskMoved, onTaskResized, onTaskCreated, onTaskUpdated, onTaskDeleted, height, width, minPanelWidth, maxPanelWidth, }: GanttChartProps): import("react/jsx-runtime").JSX.Element;
@@ -11,6 +11,8 @@ export type GanttTask = {
11
11
  isMilestone?: boolean;
12
12
  progress?: number;
13
13
  color?: string;
14
+ /** Person or team responsible for this task — shown in the Assignee column */
15
+ assignee?: string;
14
16
  };
15
17
  export type GanttTaskNode = GanttTask & {
16
18
  children: GanttTaskNode[];
@@ -50,6 +52,8 @@ export type GanttTranslations = {
50
52
  dialogFieldDependencies: string;
51
53
  dialogFieldDependenciesNone: string;
52
54
  columnActions: string;
55
+ /** Header label for the Assignee column — shown when showAssigneeColumn=true */
56
+ columnAssignee: string;
53
57
  addTaskTooltip: string;
54
58
  editTaskTooltip: string;
55
59
  deleteTaskTooltip: string;
@@ -57,6 +61,8 @@ export type GanttTranslations = {
57
61
  expandAllTooltip: string;
58
62
  collapseAllTooltip: string;
59
63
  resetViewTooltip: string;
64
+ /** Toolbar tooltip for the CSV export button */
65
+ exportCsvTooltip: string;
60
66
  };
61
67
  export declare const DEFAULT_GANTT_TRANSLATIONS: GanttTranslations;
62
68
  export type GanttStatusColors = Partial<Record<GanttTaskStatus, string>>;
@@ -78,6 +84,8 @@ export type GanttToolbarConfig = {
78
84
  showDateRange?: boolean;
79
85
  showRangeReset?: boolean;
80
86
  showResetView?: boolean;
87
+ /** Show CSV export button in the toolbar (default: false) */
88
+ showExportCSV?: boolean;
81
89
  };
82
90
  export type GanttChartProps = {
83
91
  cascadeDependencies?: boolean;
@@ -102,6 +110,8 @@ export type GanttChartProps = {
102
110
  toolbarConfig?: GanttToolbarConfig;
103
111
  translations?: Partial<GanttTranslations>;
104
112
  virtualizeRows?: boolean;
113
+ /** Show the Assignee column in the task panel (default: false) */
114
+ showAssigneeColumn?: boolean;
105
115
  /** Breite des Charts. "auto" = 100 % des Eltern-Containers. Standard: "100%". */
106
116
  width?: number | string;
107
117
  zoomable?: boolean;
@@ -116,5 +126,11 @@ export type GanttChartProps = {
116
126
  onTaskMoved?: (task: GanttTask, newStart: Date, newEnd: Date) => void;
117
127
  onTaskResized?: (task: GanttTask, newEnd: Date) => void;
118
128
  onTasksChange?: (tasks: GanttTask[]) => void;
129
+ /**
130
+ * Fired when the user clicks the CSV export button.
131
+ * The first argument is the ready-to-download CSV string.
132
+ * When not provided, the chart triggers a browser download automatically.
133
+ */
134
+ onExportCSV?: (csv: string, tasks: GanttTask[]) => void;
119
135
  onTaskUpdated?: (task: GanttTask) => void;
120
136
  };
@@ -16,6 +16,7 @@ type GanttTaskPanelProps = {
16
16
  onTaskDeleted?: (taskId: string) => void;
17
17
  inlineEdit?: boolean;
18
18
  virtualizeRows?: boolean;
19
+ showAssigneeColumn?: boolean;
19
20
  };
20
- export declare function GanttTaskPanel({ scrollRef, onScroll, panelWidth, onTaskClick, onAddTask, onEditTask, onDeleteTask, onStatusChange, onTasksChange, enableBuiltinDialogs, onTaskCreated, onTaskUpdated, onTaskDeleted, inlineEdit, virtualizeRows, }: GanttTaskPanelProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare function GanttTaskPanel({ scrollRef, onScroll, panelWidth, onTaskClick, onAddTask, onEditTask, onDeleteTask, onStatusChange, onTasksChange, enableBuiltinDialogs, onTaskCreated, onTaskUpdated, onTaskDeleted, inlineEdit, virtualizeRows, showAssigneeColumn, }: GanttTaskPanelProps): import("react/jsx-runtime").JSX.Element;
21
22
  export {};
@@ -2,6 +2,7 @@ import type { GanttToolbarConfig } from "./GanttChart.types";
2
2
  type GanttToolbarProps = {
3
3
  onScrollToToday?: () => void;
4
4
  config: Required<GanttToolbarConfig>;
5
+ onExportCSV?: () => void;
5
6
  };
6
- export declare function GanttToolbar({ onScrollToToday, config }: GanttToolbarProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function GanttToolbar({ onScrollToToday, config, onExportCSV }: GanttToolbarProps): import("react/jsx-runtime").JSX.Element;
7
8
  export {};
@@ -1,2 +1,2 @@
1
1
  import type { PasswordStrengthMeterProps } from "./PasswordStrengthMeter.types";
2
- export declare function PasswordStrengthMeter({ value, name, inputRef, disabled, error, helperText, autoComplete, customRequirements, showPasswordAdornment, showMeter, showSegmentedBar, showSummary, inputSize, translation, meterColors, passwordMinLength, checkColors, onPasswordChange, }: PasswordStrengthMeterProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function PasswordStrengthMeter({ value, confirmValue, name, inputRef, disabled, error, helperText, autoComplete, customRequirements, generatorOptions, showConfirmField, showPasswordAdornment, showMeter, showPasswordGenerator, showSegmentedBar, showSummary, inputSize, translation, meterColors, passwordMinLength, checkColors, onPasswordChange, onConfirmChange, onPasswordGenerated, }: PasswordStrengthMeterProps): import("react/jsx-runtime").JSX.Element;
@@ -32,6 +32,30 @@ export type PasswordStrengthMeterTranslation = {
32
32
  showPasswordLabel: string;
33
33
  hidePasswordLabel: string;
34
34
  meterAriaLabel: string;
35
+ /** Tooltip for the password generator button */
36
+ generatePasswordLabel: string;
37
+ /** Label for the confirm password input */
38
+ confirmLabel: string;
39
+ /** Shown when passwords match */
40
+ confirmMatchLabel: string;
41
+ /** Shown when passwords do not match */
42
+ confirmMismatchLabel: string;
43
+ };
44
+ /**
45
+ * Options for the built-in password generator.
46
+ * All character classes are included by default.
47
+ */
48
+ export type PasswordGeneratorOptions = {
49
+ /** Total password length (default: 16) */
50
+ length?: number;
51
+ /** Include uppercase letters A–Z (default: true) */
52
+ upper?: boolean;
53
+ /** Include lowercase letters a–z (default: true) */
54
+ lower?: boolean;
55
+ /** Include digits 0–9 (default: true) */
56
+ numbers?: boolean;
57
+ /** Include symbols !@#$%^&*... (default: true) */
58
+ symbols?: boolean;
35
59
  };
36
60
  export declare const DEFAULT_PASSWORD_TRANSLATIONS: PasswordStrengthMeterTranslation;
37
61
  export declare const DEFAULT_METER_COLORS: MeterColors;
@@ -51,6 +75,10 @@ export type PasswordStrengthMeterProps = {
51
75
  customRequirements?: CustomRequirement[];
52
76
  disabled?: boolean;
53
77
  error?: boolean;
78
+ /** Value of the confirm input in controlled mode. */
79
+ confirmValue?: string;
80
+ /** Options for the built-in password generator (used when showPasswordGenerator=true). */
81
+ generatorOptions?: PasswordGeneratorOptions;
54
82
  helperText?: string;
55
83
  inputRef?: React.Ref<HTMLInputElement>;
56
84
  inputSize?: "small" | "medium";
@@ -59,10 +87,18 @@ export type PasswordStrengthMeterProps = {
59
87
  passwordMinLength?: number;
60
88
  showMeter?: boolean;
61
89
  showPasswordAdornment?: boolean;
90
+ /** Show a second "Confirm password" input with match validation indicator. */
91
+ showConfirmField?: boolean;
92
+ /** Show a "Generate secure password" button — generates and fills a strong password on click. */
93
+ showPasswordGenerator?: boolean;
62
94
  showSummary?: boolean;
63
95
  /** Render the strength bar as 4 animated segments instead of a single growing bar. */
64
96
  showSegmentedBar?: boolean;
65
97
  translation?: Partial<PasswordStrengthMeterTranslation>;
66
98
  value?: string;
67
99
  onPasswordChange?: (password: string, strengthResult: StrengthResult) => void;
100
+ /** Fired when the confirm field value changes — includes whether the passwords match. */
101
+ onConfirmChange?: (confirmValue: string, matches: boolean) => void;
102
+ /** Fired when a password was generated — receives the generated password. */
103
+ onPasswordGenerated?: (password: string) => void;
68
104
  };
@@ -16,6 +16,10 @@ export type TagSelectionTranslation = {
16
16
  placeholder: string;
17
17
  loadingText: string;
18
18
  maxTagsReachedText: string;
19
+ colorPickerLabel: string;
20
+ backgroundColorLabel: string;
21
+ textColorLabel: string;
22
+ autoTextColorLabel: string;
19
23
  };
20
24
  export declare const DEFAULT_TAG_SELECTION_TRANSLATION: TagSelectionTranslation;
21
25
  export type TagSelectionProps = {
@@ -34,7 +38,7 @@ export type TagSelectionProps = {
34
38
  tags: TagSelectionItem[];
35
39
  translation?: Partial<TagSelectionTranslation>;
36
40
  onSearchChange?: (searchValue: string) => void;
37
- onTagCreate?: (label: string, color: TagColor) => void;
41
+ onTagCreate?: (tag: TagSelectionItem) => void;
38
42
  onTagDelete?: (tag: TagSelectionItem, selectedTags: TagSelectionItem[], allTags: TagSelectionItem[]) => void;
39
43
  onTagSelect?: (tag: TagSelectionItem, selectedTags: TagSelectionItem[], allTags: TagSelectionItem[]) => void;
40
44
  onTagsChange?: (selectedTags: TagSelectionItem[], allTags: TagSelectionItem[]) => void;
@@ -1,4 +1,4 @@
1
- import type { TagColor, TagSelectionItem, TagSelectionTranslation } from "./TagSelection.types";
1
+ import type { TagSelectionItem, TagSelectionTranslation } from "./TagSelection.types";
2
2
  type TagSelectionAutocompleteProps = {
3
3
  inputSize: "medium" | "small";
4
4
  chipSize: "medium" | "small";
@@ -7,7 +7,7 @@ type TagSelectionAutocompleteProps = {
7
7
  translation: TagSelectionTranslation;
8
8
  onSearchChange: (value: string) => void;
9
9
  onTagSelect: (tag: TagSelectionItem) => void;
10
- onTagCreate?: (label: string, color: TagColor) => void;
10
+ onTagCreate?: (tag: TagSelectionItem) => void;
11
11
  disabled?: boolean;
12
12
  loading?: boolean;
13
13
  isMaxReached?: boolean;