@thebuoyant-tsdev/mui-ts-library 2.4.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 +21 -32
- package/README.md +21 -32
- package/dist/components/chord-chart/ChordChart.d.ts +1 -1
- package/dist/components/chord-chart/ChordChart.types.d.ts +15 -0
- package/dist/components/circle-packing-chart/CirclePackingChart.d.ts +5 -0
- package/dist/components/circle-packing-chart/CirclePackingChart.types.d.ts +104 -0
- package/dist/components/gantt-chart/GanttChart.constants.d.ts +1 -0
- package/dist/components/gantt-chart/GanttChart.d.ts +1 -1
- package/dist/components/gantt-chart/GanttChart.types.d.ts +16 -0
- package/dist/components/gantt-chart/GanttTaskPanel.d.ts +2 -1
- package/dist/components/gantt-chart/GanttToolbar.d.ts +2 -1
- package/dist/components/horizontal-tree-chart/HorizontalTreeChart.d.ts +5 -0
- package/dist/components/horizontal-tree-chart/HorizontalTreeChart.types.d.ts +95 -0
- package/dist/components/password-strength-meter/PasswordStrengthMeter.d.ts +1 -1
- package/dist/components/password-strength-meter/PasswordStrengthMeter.types.d.ts +36 -0
- package/dist/components/radial-tree-chart/RadialTreeChart.types.d.ts +6 -0
- package/dist/components/sunburst-chart/SunburstChart.types.d.ts +6 -0
- package/dist/components/tag-selection/TagSelection.types.d.ts +5 -1
- package/dist/components/tag-selection/TagSelectionAutocomplete.d.ts +2 -2
- package/dist/index.cjs +2 -1
- package/dist/index.d.cts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +2610 -1419
- package/package.json +61 -29
- package/dist/components/confirm-dialog/ConfirmDialog.types.d.ts +0 -23
- package/dist/components/confirm-dialog/ConfirmDialogProvider.d.ts +0 -5
package/README.de.md
CHANGED
|
@@ -4,22 +4,25 @@
|
|
|
4
4
|
|
|
5
5
|
Eine typsichere React-Komponentenbibliothek auf Basis von **TypeScript** und **MUI (Material UI v9)**. Die Komponenten folgen MUI's Design-Sprache, unterstützen Dark Mode und Theming von Haus aus und werden mit vollständigen TypeScript-Typen, Storybook-Stories und Unit-Tests ausgeliefert.
|
|
6
6
|
|
|
7
|
+
**[→ Live-Storybook](https://thebuoyant.github.io/mui-ts-library/)** — alle Komponenten interaktiv erkunden, ohne Installation.
|
|
8
|
+
|
|
7
9
|
---
|
|
8
10
|
|
|
9
11
|
## Komponenten
|
|
10
12
|
|
|
11
13
|
| Komponente | Beschreibung | Docs |
|
|
12
14
|
|---|---|---|
|
|
13
|
-
| [`
|
|
14
|
-
| [`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) |
|
|
15
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) |
|
|
16
|
-
| [`PasswordStrengthMeter`](#passwordstrengthmeter) | Passwort-Eingabe mit animiertem Stärke-Meter,
|
|
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) |
|
|
17
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) |
|
|
18
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) |
|
|
19
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) |
|
|
20
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) |
|
|
21
|
-
| [`ChordChart`](#chordchart) | D3 v7 Fluss-Chart — Arc-Gruppen
|
|
22
|
-
| [`RadialTreeChart`](#
|
|
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) |
|
|
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) |
|
|
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) |
|
|
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) |
|
|
23
26
|
|
|
24
27
|
---
|
|
25
28
|
|
|
@@ -51,29 +54,7 @@ import { GanttChart, JsonEditor, useConfirm } from '@thebuoyant-tsdev/mui-ts-lib
|
|
|
51
54
|
|
|
52
55
|
## Schnellstart
|
|
53
56
|
|
|
54
|
-
Die App wie gewohnt in MUI's `ThemeProvider` einschließen
|
|
55
|
-
|
|
56
|
-
### ConfirmDialog
|
|
57
|
-
|
|
58
|
-
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.
|
|
59
|
-
|
|
60
|
-
```tsx
|
|
61
|
-
import { ConfirmDialogProvider, useConfirm } from '@thebuoyant-tsdev/mui-ts-library';
|
|
62
|
-
|
|
63
|
-
// App-Wurzel — einmalig
|
|
64
|
-
<ConfirmDialogProvider>
|
|
65
|
-
<App />
|
|
66
|
-
</ConfirmDialogProvider>
|
|
67
|
-
|
|
68
|
-
// Überall innerhalb der App
|
|
69
|
-
const confirm = useConfirm();
|
|
70
|
-
const ok = await confirm({ title: 'Eintrag löschen?', severity: 'error', confirmLabel: 'Löschen', countdown: 10 });
|
|
71
|
-
if (ok) handleDelete();
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
→ [Vollständige Dokumentation](user-manuals/ConfirmDialog.de.md)
|
|
75
|
-
|
|
76
|
-
---
|
|
57
|
+
Die App wie gewohnt in MUI's `ThemeProvider` einschließen — alle Komponenten funktionieren ohne zusätzlichen Provider.
|
|
77
58
|
|
|
78
59
|
### GanttChart
|
|
79
60
|
|
|
@@ -117,7 +98,7 @@ const tags: TagSelectionItem[] = [
|
|
|
117
98
|
|
|
118
99
|
### PasswordStrengthMeter
|
|
119
100
|
|
|
120
|
-
Passwort-Eingabe mit Echtzeit-Stärke-Feedback. Konzipiert für Registrierungs- und Passwort-Änderungs-Flows
|
|
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.
|
|
121
102
|
|
|
122
103
|
```tsx
|
|
123
104
|
import { PasswordStrengthMeter } from '@thebuoyant-tsdev/mui-ts-library';
|
|
@@ -125,7 +106,12 @@ import { PasswordStrengthMeter } from '@thebuoyant-tsdev/mui-ts-library';
|
|
|
125
106
|
<PasswordStrengthMeter
|
|
126
107
|
passwordMinLength={10}
|
|
127
108
|
showSegmentedBar
|
|
109
|
+
showConfirmField // zweites Feld mit ✓/✗ Match-Validierung
|
|
110
|
+
showPasswordGenerator // generiert ein kryptographisch sicheres Passwort
|
|
111
|
+
generatorOptions={{ length: 20 }}
|
|
128
112
|
onPasswordChange={(password, result) => console.log(result.score)}
|
|
113
|
+
onConfirmChange={(value, matches) => console.log('Übereinstimmung:', matches)}
|
|
114
|
+
onPasswordGenerated={(pw) => console.log('Generiert:', pw)}
|
|
129
115
|
/>
|
|
130
116
|
```
|
|
131
117
|
|
|
@@ -286,9 +272,6 @@ Alle Typen und Defaults werden direkt exportiert — kein separates `@types/...`
|
|
|
286
272
|
|
|
287
273
|
```tsx
|
|
288
274
|
import type {
|
|
289
|
-
// ConfirmDialog
|
|
290
|
-
ConfirmDialogOptions, ConfirmDialogSeverity,
|
|
291
|
-
|
|
292
275
|
// GanttChart
|
|
293
276
|
GanttTask, GanttTranslations, GanttTheme, GanttToolbarConfig,
|
|
294
277
|
|
|
@@ -315,6 +298,12 @@ import type {
|
|
|
315
298
|
|
|
316
299
|
// RadialTreeChart
|
|
317
300
|
RadialTreeChartData, RadialTreeNodeInfo, RadialTreeNodeIconSpec, RadialTreeSortBy,
|
|
301
|
+
|
|
302
|
+
// CirclePackingChart
|
|
303
|
+
CirclePackingData, CirclePackingNodeInfo, CirclePackingZoomInfo, CirclePackingSortBy,
|
|
304
|
+
|
|
305
|
+
// HorizontalTreeChart
|
|
306
|
+
HorizontalTreeData, HorizontalTreeNodeInfo, HorizontalTreeOrientation,
|
|
318
307
|
} from '@thebuoyant-tsdev/mui-ts-library';
|
|
319
308
|
```
|
|
320
309
|
|
package/README.md
CHANGED
|
@@ -4,22 +4,25 @@
|
|
|
4
4
|
|
|
5
5
|
A type-safe React component library built on **TypeScript** and **MUI (Material UI v9)**. Components follow MUI's design language, support dark mode and theming out of the box, and ship with complete TypeScript types, Storybook stories, and unit tests.
|
|
6
6
|
|
|
7
|
+
**[→ Live Storybook](https://thebuoyant.github.io/mui-ts-library/)** — explore all components interactively, no installation needed.
|
|
8
|
+
|
|
7
9
|
---
|
|
8
10
|
|
|
9
11
|
## Components
|
|
10
12
|
|
|
11
13
|
| Component | Description | Docs |
|
|
12
14
|
|---|---|---|
|
|
13
|
-
| [`
|
|
14
|
-
| [`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) |
|
|
15
16
|
| [`TagSelection`](#tagselection) | Multi-tag selector with autocomplete, free tag creation, overflow chips, and MUI theme colors | [Full Manual →](user-manuals/TagSelection.md) |
|
|
16
|
-
| [`PasswordStrengthMeter`](#passwordstrengthmeter) | Password input with animated strength meter, segmented bar, custom requirements, and
|
|
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) |
|
|
17
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) |
|
|
18
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) |
|
|
19
20
|
| [`JsonEditor`](#jsoneditor) | JSON code editor (CodeMirror 6) with real-time validation, Format, Compact buttons, and optional minimap | [Full Manual →](user-manuals/JsonEditor.md) |
|
|
20
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) |
|
|
21
|
-
| [`ChordChart`](#chordchart) | D3 v7 flow chart — arc groups
|
|
22
|
-
| [`RadialTreeChart`](#
|
|
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) |
|
|
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) |
|
|
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) |
|
|
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) |
|
|
23
26
|
|
|
24
27
|
---
|
|
25
28
|
|
|
@@ -51,29 +54,7 @@ import { GanttChart, JsonEditor, useConfirm } from '@thebuoyant-tsdev/mui-ts-lib
|
|
|
51
54
|
|
|
52
55
|
## Quick Start
|
|
53
56
|
|
|
54
|
-
Wrap your app in MUI's `ThemeProvider` as usual
|
|
55
|
-
|
|
56
|
-
### ConfirmDialog
|
|
57
|
-
|
|
58
|
-
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.
|
|
59
|
-
|
|
60
|
-
```tsx
|
|
61
|
-
import { ConfirmDialogProvider, useConfirm } from '@thebuoyant-tsdev/mui-ts-library';
|
|
62
|
-
|
|
63
|
-
// App root — once
|
|
64
|
-
<ConfirmDialogProvider>
|
|
65
|
-
<App />
|
|
66
|
-
</ConfirmDialogProvider>
|
|
67
|
-
|
|
68
|
-
// Anywhere inside
|
|
69
|
-
const confirm = useConfirm();
|
|
70
|
-
const ok = await confirm({ title: 'Delete entry?', severity: 'error', confirmLabel: 'Delete', countdown: 10 });
|
|
71
|
-
if (ok) handleDelete();
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
→ [Full documentation](user-manuals/ConfirmDialog.md)
|
|
75
|
-
|
|
76
|
-
---
|
|
57
|
+
Wrap your app in MUI's `ThemeProvider` as usual — all components work without an additional provider.
|
|
77
58
|
|
|
78
59
|
### GanttChart
|
|
79
60
|
|
|
@@ -117,7 +98,7 @@ const tags: TagSelectionItem[] = [
|
|
|
117
98
|
|
|
118
99
|
### PasswordStrengthMeter
|
|
119
100
|
|
|
120
|
-
Password input with real-time strength feedback
|
|
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.
|
|
121
102
|
|
|
122
103
|
```tsx
|
|
123
104
|
import { PasswordStrengthMeter } from '@thebuoyant-tsdev/mui-ts-library';
|
|
@@ -125,7 +106,12 @@ import { PasswordStrengthMeter } from '@thebuoyant-tsdev/mui-ts-library';
|
|
|
125
106
|
<PasswordStrengthMeter
|
|
126
107
|
passwordMinLength={10}
|
|
127
108
|
showSegmentedBar
|
|
109
|
+
showConfirmField // second input with ✓/✗ match validation
|
|
110
|
+
showPasswordGenerator // generates a cryptographically secure password
|
|
111
|
+
generatorOptions={{ length: 20 }}
|
|
128
112
|
onPasswordChange={(password, result) => console.log(result.score)}
|
|
113
|
+
onConfirmChange={(value, matches) => console.log('Matches:', matches)}
|
|
114
|
+
onPasswordGenerated={(pw) => console.log('Generated:', pw)}
|
|
129
115
|
/>
|
|
130
116
|
```
|
|
131
117
|
|
|
@@ -286,9 +272,6 @@ All types and defaults are exported directly — no separate `@types/...` packag
|
|
|
286
272
|
|
|
287
273
|
```tsx
|
|
288
274
|
import type {
|
|
289
|
-
// ConfirmDialog
|
|
290
|
-
ConfirmDialogOptions, ConfirmDialogSeverity,
|
|
291
|
-
|
|
292
275
|
// GanttChart
|
|
293
276
|
GanttTask, GanttTranslations, GanttTheme, GanttToolbarConfig,
|
|
294
277
|
|
|
@@ -315,6 +298,12 @@ import type {
|
|
|
315
298
|
|
|
316
299
|
// RadialTreeChart
|
|
317
300
|
RadialTreeChartData, RadialTreeNodeInfo, RadialTreeNodeIconSpec, RadialTreeSortBy,
|
|
301
|
+
|
|
302
|
+
// CirclePackingChart
|
|
303
|
+
CirclePackingData, CirclePackingNodeInfo, CirclePackingZoomInfo, CirclePackingSortBy,
|
|
304
|
+
|
|
305
|
+
// HorizontalTreeChart
|
|
306
|
+
HorizontalTreeData, HorizontalTreeNodeInfo, HorizontalTreeOrientation,
|
|
318
307
|
} from '@thebuoyant-tsdev/mui-ts-library';
|
|
319
308
|
```
|
|
320
309
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ChordChartProps } from "./ChordChart.types";
|
|
2
|
-
export declare function ChordChart({ data, size, innerRadius, ringThickness, padAngle, ribbonPadAngle, sortSubgroups, sortChords, chartColors, showGroupLabels, labelOffset, ribbonOpacity, ribbonBlendMode, directed, valueDecimalCount, valueDecimalSeparator, valueThousandsSeparator, onGroupClick, onChordClick, disabled, }: ChordChartProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function ChordChart({ data, size, innerRadius, ringThickness, padAngle, ribbonPadAngle, sortSubgroups, sortChords, chartColors, groupColorConfigs, showGroupLabels, labelOffset, ribbonOpacity, ribbonBlendMode, directed, valueDecimalCount, valueDecimalSeparator, valueThousandsSeparator, onGroupClick, onChordClick, zoomable, disabled, }: ChordChartProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export declare namespace ChordChart {
|
|
4
4
|
var displayName: string;
|
|
5
5
|
}
|
|
@@ -5,6 +5,17 @@ export type ChordChartData = {
|
|
|
5
5
|
target: string;
|
|
6
6
|
value: number;
|
|
7
7
|
};
|
|
8
|
+
/**
|
|
9
|
+
* Per-group color overrides for ChordChart.
|
|
10
|
+
* Key = group name (same as `source` / `target` in the data).
|
|
11
|
+
* Value = color config — null / omit keys = use chart default palette.
|
|
12
|
+
* Example: `{ Engineering: { fill: '#1565C0' }, Sales: { fill: '#6A1B9A' } }`
|
|
13
|
+
*/
|
|
14
|
+
export type ChordGroupColorConfigs = Record<string, {
|
|
15
|
+
fill?: string;
|
|
16
|
+
textColor?: string;
|
|
17
|
+
stroke?: string;
|
|
18
|
+
} | null>;
|
|
8
19
|
/** Callback payload for a click on a group arc */
|
|
9
20
|
export type ChordGroupInfo = {
|
|
10
21
|
/** Group name */
|
|
@@ -53,6 +64,8 @@ export type ChordChartProps = {
|
|
|
53
64
|
sortChords?: ChordSortBy;
|
|
54
65
|
/** Custom color palette — falls back to MUI theme palette when omitted */
|
|
55
66
|
chartColors?: string[];
|
|
67
|
+
/** Per-group color overrides keyed by group name — overrides `chartColors` for specific groups */
|
|
68
|
+
groupColorConfigs?: ChordGroupColorConfigs;
|
|
56
69
|
/** Show group name labels outside the arc ring (default: true) */
|
|
57
70
|
showGroupLabels?: boolean;
|
|
58
71
|
/** Gap between arc outer edge and label text in px (default: 6) */
|
|
@@ -73,6 +86,8 @@ export type ChordChartProps = {
|
|
|
73
86
|
onGroupClick?: (info: ChordGroupInfo, event: React.MouseEvent<SVGGElement>) => void;
|
|
74
87
|
/** Fired on click of a ribbon */
|
|
75
88
|
onChordClick?: (info: ChordInfo, event: React.MouseEvent<SVGPathElement>) => void;
|
|
89
|
+
/** Enable Ctrl / Cmd ⌘ + Scroll visual zoom — clips content at `size` boundary (default: false) */
|
|
90
|
+
zoomable?: boolean;
|
|
76
91
|
/** Disables all interactions (default: false) */
|
|
77
92
|
disabled?: boolean;
|
|
78
93
|
/** Override translation strings */
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type CirclePackingChartProps } from "./CirclePackingChart.types";
|
|
2
|
+
export declare function CirclePackingChart({ data, size, padding, sortBy, showLabels, showAllLabels, labelFontSize, innerLabelFontSize, labelColor, chartColors, depthColorStart, depthColorEnd, background, duration, zoomable, disabled, onCircleClick, onZoomChange, }: CirclePackingChartProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare namespace CirclePackingChart {
|
|
4
|
+
var displayName: string;
|
|
5
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-node color overrides — takes priority over the chart's depth palette.
|
|
3
|
+
* Set any key to override; omit or set to null to fall back to chart defaults.
|
|
4
|
+
* Shared across all D3 charts (SunburstChart, ChordChart, RadialTreeChart, CirclePackingChart).
|
|
5
|
+
*/
|
|
6
|
+
export type NodeColorConfig = {
|
|
7
|
+
/** Fill / background color of the circle or arc segment */
|
|
8
|
+
fill?: string;
|
|
9
|
+
/** Label text color (overrides chart-level `labelColor`) */
|
|
10
|
+
textColor?: string;
|
|
11
|
+
/** Stroke / border color */
|
|
12
|
+
stroke?: string;
|
|
13
|
+
};
|
|
14
|
+
export type CirclePackingData = {
|
|
15
|
+
/** Optional ID for backend linking */
|
|
16
|
+
id?: string;
|
|
17
|
+
name: string;
|
|
18
|
+
value?: number;
|
|
19
|
+
/** Per-node color overrides — null / omit = use chart default palette */
|
|
20
|
+
colorConfig?: NodeColorConfig | null;
|
|
21
|
+
children?: CirclePackingData[];
|
|
22
|
+
};
|
|
23
|
+
export type CirclePackingSortBy = 'value' | 'name';
|
|
24
|
+
/** Clean callback payload — no D3 types exposed */
|
|
25
|
+
export type CirclePackingNodeInfo = {
|
|
26
|
+
/** Node id — same as data.id when provided */
|
|
27
|
+
id: string | null;
|
|
28
|
+
name: string;
|
|
29
|
+
/** D3 aggregate value — sum of all descendant leaf values */
|
|
30
|
+
value: number | null;
|
|
31
|
+
/** Percentage of root total — (value / root.value) * 100 */
|
|
32
|
+
percentage: number;
|
|
33
|
+
depth: number;
|
|
34
|
+
/** Breadcrumb from root to this node — array of names */
|
|
35
|
+
path: string[];
|
|
36
|
+
childrenCount: number;
|
|
37
|
+
data: CirclePackingData;
|
|
38
|
+
};
|
|
39
|
+
export type CirclePackingZoomInfo = {
|
|
40
|
+
previousName: string;
|
|
41
|
+
currentName: string;
|
|
42
|
+
currentDepth: number;
|
|
43
|
+
/** true when zoomed back to root */
|
|
44
|
+
isRoot: boolean;
|
|
45
|
+
};
|
|
46
|
+
export type CirclePackingTranslation = {
|
|
47
|
+
noData: string;
|
|
48
|
+
};
|
|
49
|
+
export declare const DEFAULT_CIRCLE_PACKING_TRANSLATION: CirclePackingTranslation;
|
|
50
|
+
export type CirclePackingChartProps = {
|
|
51
|
+
/** Root node of the hierarchy */
|
|
52
|
+
data: CirclePackingData;
|
|
53
|
+
/** Width and height of the SVG in pixels — always square (default: 600) */
|
|
54
|
+
size?: number;
|
|
55
|
+
/** Padding between nested circles in px (default: 3) */
|
|
56
|
+
padding?: number;
|
|
57
|
+
/** Sort children by value or alphabetically (default: 'value') */
|
|
58
|
+
sortBy?: CirclePackingSortBy;
|
|
59
|
+
/** Show name labels on the outer (focused) ring circles (default: true) */
|
|
60
|
+
showLabels?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Show labels on ALL visible inner circles too — truncated with "…" when the
|
|
63
|
+
* text doesn't fit inside the circle. Outer-ring labels stay bold; inner labels
|
|
64
|
+
* use a smaller font. (default: false)
|
|
65
|
+
*/
|
|
66
|
+
showAllLabels?: boolean;
|
|
67
|
+
/** Outer-ring label font size in px (default: 13, bold) */
|
|
68
|
+
labelFontSize?: number;
|
|
69
|
+
/** Inner circle label font size in px — used when `showAllLabels` is true (default: 9) */
|
|
70
|
+
innerLabelFontSize?: number;
|
|
71
|
+
/** Label text color — defaults to `theme.palette.text.primary` */
|
|
72
|
+
labelColor?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Custom depth-based color palette — overrides the default MUI theme palette.
|
|
75
|
+
* colors[depth % length] per node. Falls back to MUI palette when not set.
|
|
76
|
+
*/
|
|
77
|
+
chartColors?: string[];
|
|
78
|
+
/**
|
|
79
|
+
* HCL gradient start color — when set together with `depthColorEnd`,
|
|
80
|
+
* overrides `chartColors` and the MUI palette with a smooth gradient.
|
|
81
|
+
*/
|
|
82
|
+
depthColorStart?: string;
|
|
83
|
+
/**
|
|
84
|
+
* HCL gradient end color — see `depthColorStart`.
|
|
85
|
+
*/
|
|
86
|
+
depthColorEnd?: string;
|
|
87
|
+
/** SVG background fill. Default: `theme.palette.background.default` */
|
|
88
|
+
background?: string;
|
|
89
|
+
/**
|
|
90
|
+
* Zoom animation duration in ms (default: 750).
|
|
91
|
+
* Alt+Ctrl / Alt+Cmd+Click uses 10× for slow-motion demos.
|
|
92
|
+
*/
|
|
93
|
+
duration?: number;
|
|
94
|
+
/** Enable Ctrl / Cmd ⌘ + Scroll visual zoom — clips content at `size` boundary (default: false) */
|
|
95
|
+
zoomable?: boolean;
|
|
96
|
+
/** Disables all interactions (default: false) */
|
|
97
|
+
disabled?: boolean;
|
|
98
|
+
/** Fires on regular click — immediately, no delay */
|
|
99
|
+
onCircleClick?: (info: CirclePackingNodeInfo, event: React.MouseEvent<SVGCircleElement>) => void;
|
|
100
|
+
/** Fires when the zoom focus changes */
|
|
101
|
+
onZoomChange?: (zoom: CirclePackingZoomInfo) => void;
|
|
102
|
+
/** Override translation strings */
|
|
103
|
+
translation?: Partial<CirclePackingTranslation>;
|
|
104
|
+
};
|
|
@@ -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 {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type HorizontalTreeChartProps } from "./HorizontalTreeChart.types";
|
|
2
|
+
export declare function HorizontalTreeChart({ data, orientation, width, height, levelSpacing, nodeRadius, sortBy, showLabels, labelFontSize, labelColor, showIcons, chartColors, linkStrokeOpacity, linkStrokeWidth, linkColor, zoomable, drillable, onFocusChange, showNodePopover, renderNodePopoverContent, onNodeClick, disabled, translation, }: HorizontalTreeChartProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare namespace HorizontalTreeChart {
|
|
4
|
+
var displayName: string;
|
|
5
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/** Tree orientation — defines the direction the tree grows */
|
|
2
|
+
export type HorizontalTreeOrientation = 'LR' | 'RL' | 'TB' | 'BT';
|
|
3
|
+
export type HorizontalTreeData = {
|
|
4
|
+
id?: string;
|
|
5
|
+
name: string;
|
|
6
|
+
subname?: string;
|
|
7
|
+
value?: number;
|
|
8
|
+
specialValueA?: string | number;
|
|
9
|
+
specialValueB?: string | number;
|
|
10
|
+
/** Per-node color overrides */
|
|
11
|
+
colorConfig?: {
|
|
12
|
+
fill?: string;
|
|
13
|
+
textColor?: string;
|
|
14
|
+
stroke?: string;
|
|
15
|
+
} | null;
|
|
16
|
+
children?: HorizontalTreeData[];
|
|
17
|
+
};
|
|
18
|
+
/** Clean callback payload — no D3 types exposed */
|
|
19
|
+
export type HorizontalTreeNodeInfo = {
|
|
20
|
+
id: string | null;
|
|
21
|
+
name: string;
|
|
22
|
+
subname: string | null;
|
|
23
|
+
value: number | null;
|
|
24
|
+
specialValueA: string | number | null;
|
|
25
|
+
specialValueB: string | number | null;
|
|
26
|
+
depth: number;
|
|
27
|
+
/** Breadcrumb from root */
|
|
28
|
+
path: string[];
|
|
29
|
+
childrenCount: number;
|
|
30
|
+
data: HorizontalTreeData;
|
|
31
|
+
};
|
|
32
|
+
export type HorizontalTreeZoomInfo = {
|
|
33
|
+
focusedNode: HorizontalTreeNodeInfo;
|
|
34
|
+
isRoot: boolean;
|
|
35
|
+
};
|
|
36
|
+
export type HorizontalTreeTranslation = {
|
|
37
|
+
noData: string;
|
|
38
|
+
specialValueA?: string;
|
|
39
|
+
specialValueB?: string;
|
|
40
|
+
};
|
|
41
|
+
export declare const DEFAULT_HORIZONTAL_TREE_TRANSLATION: HorizontalTreeTranslation;
|
|
42
|
+
export type HorizontalTreeChartProps = {
|
|
43
|
+
/** Root node of the hierarchy */
|
|
44
|
+
data: HorizontalTreeData;
|
|
45
|
+
/**
|
|
46
|
+
* Tree growth direction (default: 'LR')
|
|
47
|
+
* - 'LR' left → right
|
|
48
|
+
* - 'RL' right → left
|
|
49
|
+
* - 'TB' top → bottom
|
|
50
|
+
* - 'BT' bottom → top
|
|
51
|
+
*/
|
|
52
|
+
orientation?: HorizontalTreeOrientation;
|
|
53
|
+
/** Chart width in px (default: 800) */
|
|
54
|
+
width?: number;
|
|
55
|
+
/** Chart height in px (default: 500) */
|
|
56
|
+
height?: number;
|
|
57
|
+
/** Horizontal distance between depth levels in px (default: 200) */
|
|
58
|
+
levelSpacing?: number;
|
|
59
|
+
/** Node circle radius in px (default: 10) */
|
|
60
|
+
nodeRadius?: number;
|
|
61
|
+
/** Sort children alphabetically or by value (default: 'name') */
|
|
62
|
+
sortBy?: 'name' | 'value';
|
|
63
|
+
/** Show name labels on nodes (default: true) */
|
|
64
|
+
showLabels?: boolean;
|
|
65
|
+
/** Label font size in px (default: 12) */
|
|
66
|
+
labelFontSize?: number;
|
|
67
|
+
/** Label color — defaults to theme.palette.text.primary */
|
|
68
|
+
labelColor?: string;
|
|
69
|
+
/** Show icons inside node circles (default: true) */
|
|
70
|
+
showIcons?: boolean;
|
|
71
|
+
/** Per-depth color palette — falls back to MUI theme palette */
|
|
72
|
+
chartColors?: string[];
|
|
73
|
+
/** Link stroke opacity (default: 0.4) */
|
|
74
|
+
linkStrokeOpacity?: number;
|
|
75
|
+
/** Link stroke width in px (default: 1.5) */
|
|
76
|
+
linkStrokeWidth?: number;
|
|
77
|
+
/** Link color — defaults to theme.palette.text.secondary */
|
|
78
|
+
linkColor?: string;
|
|
79
|
+
/** Enable Ctrl / Cmd ⌘ + Scroll visual zoom (default: false) */
|
|
80
|
+
zoomable?: boolean;
|
|
81
|
+
/** Enable Ctrl / Cmd ⌘ + Click drill-down into subtrees (default: false) */
|
|
82
|
+
drillable?: boolean;
|
|
83
|
+
/** Fires when drill-down focus changes */
|
|
84
|
+
onFocusChange?: (info: HorizontalTreeZoomInfo) => void;
|
|
85
|
+
/** Show built-in MUI Popover on node click (default: false) */
|
|
86
|
+
showNodePopover?: boolean;
|
|
87
|
+
/** Custom popover content */
|
|
88
|
+
renderNodePopoverContent?: (info: HorizontalTreeNodeInfo) => React.ReactNode;
|
|
89
|
+
/** Fires on every node click */
|
|
90
|
+
onNodeClick?: (info: HorizontalTreeNodeInfo, event: React.MouseEvent<SVGGElement>) => void;
|
|
91
|
+
/** Disables all interactions (default: false) */
|
|
92
|
+
disabled?: boolean;
|
|
93
|
+
/** Override translation strings */
|
|
94
|
+
translation?: Partial<HorizontalTreeTranslation>;
|
|
95
|
+
};
|
|
@@ -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
|
};
|
|
@@ -9,6 +9,12 @@ export type RadialTreeChartData = {
|
|
|
9
9
|
specialValueA?: string | number;
|
|
10
10
|
/** Custom field B — shown in the built-in node popover */
|
|
11
11
|
specialValueB?: string | number;
|
|
12
|
+
/** Per-node color overrides — null / omit = use chart default palette */
|
|
13
|
+
colorConfig?: {
|
|
14
|
+
fill?: string;
|
|
15
|
+
textColor?: string;
|
|
16
|
+
stroke?: string;
|
|
17
|
+
} | null;
|
|
12
18
|
children?: RadialTreeChartData[];
|
|
13
19
|
};
|
|
14
20
|
/** Clean payload passed to `onNodeClick` — no D3 or Fluent UI types exposed */
|