@thebuoyant-tsdev/mui-ts-library 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.de.md CHANGED
@@ -4,8 +4,6 @@
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/)** — interaktive Demos für jede Komponente und jedes Feature, immer aktuell mit `main`.
8
-
9
7
  ---
10
8
 
11
9
  ## Komponenten
@@ -16,7 +14,7 @@ Eine typsichere React-Komponentenbibliothek auf Basis von **TypeScript** und **M
16
14
  | [`GanttChart`](#ganttchart) | Projekt-Timeline mit hierarchischen Aufgaben, Meilensteinen, Drag & Drop, Ctrl+Scroll-Zoom, Heute-Chip und integrierten CRUD-Dialogen | [Vollständiges Manual →](user-manuals/GanttChart.de.md) |
17
15
  | [`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
16
  | [`PasswordStrengthMeter`](#passwordstrengthmeter) | Passwort-Eingabe mit animiertem Stärke-Meter, segmentierter Balkenanzeige, eigenen Anforderungen und Anforderungsliste | [Vollständiges Manual →](user-manuals/PasswordStrengthMeter.de.md) |
19
- | [`RichTextEditor`](#richtexteditor) | WYSIWYG-Editor (TipTap v3) mit Toolbar, Link-Dialog, Textfarbe, Hervorhebung, Wörter-Zähler, Vollbild-Modus und Markdown-Einfügen | [Vollständiges Manual →](user-manuals/RichTextEditor.de.md) |
17
+ | [`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
18
  | [`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
19
  | [`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
20
 
package/README.md CHANGED
@@ -4,8 +4,6 @@
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/)** — interactive demos for every component and feature, always up to date with `main`.
8
-
9
7
  ---
10
8
 
11
9
  ## Components
@@ -16,7 +14,7 @@ A type-safe React component library built on **TypeScript** and **MUI (Material
16
14
  | [`GanttChart`](#ganttchart) | Project timeline with hierarchical tasks, milestones, drag & drop, Ctrl+Scroll zoom, today chip, and built-in CRUD dialogs | [Full Manual →](user-manuals/GanttChart.md) |
17
15
  | [`TagSelection`](#tagselection) | Multi-tag selector with autocomplete, free tag creation, overflow chips, and MUI theme colors | [Full Manual →](user-manuals/TagSelection.md) |
18
16
  | [`PasswordStrengthMeter`](#passwordstrengthmeter) | Password input with animated strength meter, segmented bar, custom requirements, and requirements checklist | [Full Manual →](user-manuals/PasswordStrengthMeter.md) |
19
- | [`RichTextEditor`](#richtexteditor) | WYSIWYG editor (TipTap v3) with toolbar, link dialog, text color, highlight, word count, fullscreen mode, and Markdown paste | [Full Manual →](user-manuals/RichTextEditor.md) |
17
+ | [`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
18
  | [`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
19
  | [`JsonEditor`](#jsoneditor) | JSON code editor (CodeMirror 6) with real-time validation, Format, Compact buttons, and optional minimap | [Full Manual →](user-manuals/JsonEditor.md) |
22
20
 
@@ -1,11 +1,11 @@
1
1
  import type { EditorView } from "@codemirror/view";
2
2
  import type { JsonEditorToolbarConfig, JsonEditorTranslation } from "./JsonEditor.types";
3
3
  type JsonEditorToolbarProps = {
4
- viewRef: React.MutableRefObject<EditorView | null>;
4
+ editorView: EditorView | null;
5
5
  toolbarConfig: Required<JsonEditorToolbarConfig>;
6
6
  translation: JsonEditorTranslation;
7
7
  indent: number;
8
8
  disabled?: boolean;
9
9
  };
10
- export declare function JsonEditorToolbar({ viewRef, toolbarConfig: tc, translation: t, indent, disabled, }: JsonEditorToolbarProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function JsonEditorToolbar({ editorView, toolbarConfig: tc, translation: t, indent, disabled, }: JsonEditorToolbarProps): import("react/jsx-runtime").JSX.Element;
11
11
  export {};
@@ -18,6 +18,12 @@ export type RichTextEditorToolbarConfig = {
18
18
  showClearFormat?: boolean;
19
19
  /** Fullscreen-Button in der Toolbar — standardmäßig deaktiviert (opt-in) */
20
20
  showFullscreenButton?: boolean;
21
+ /** Tabellen einfügen + Zeilen/Spalten verwalten — standardmäßig deaktiviert (opt-in) */
22
+ showTableButton?: boolean;
23
+ /** Bilder per URL einfügen — standardmäßig deaktiviert (opt-in) */
24
+ showImageButton?: boolean;
25
+ /** Emoji-Picker — standardmäßig deaktiviert (opt-in) */
26
+ showEmojiButton?: boolean;
21
27
  };
22
28
  export declare const DEFAULT_RICH_TEXT_EDITOR_TOOLBAR_CONFIG: Required<RichTextEditorToolbarConfig>;
23
29
  export type RichTextEditorTranslation = {
@@ -54,6 +60,23 @@ export type RichTextEditorTranslation = {
54
60
  fullscreen: string;
55
61
  /** Tooltip für den Exit-Fullscreen-Button */
56
62
  exitFullscreen: string;
63
+ table: string;
64
+ insertTable: string;
65
+ addRowBefore: string;
66
+ addRowAfter: string;
67
+ deleteRow: string;
68
+ addColumnBefore: string;
69
+ addColumnAfter: string;
70
+ deleteColumn: string;
71
+ deleteTable: string;
72
+ image: string;
73
+ imageDialogTitle: string;
74
+ imageDialogUrlLabel: string;
75
+ imageDialogAltLabel: string;
76
+ imageDialogSave: string;
77
+ imageDialogCancel: string;
78
+ emoji: string;
79
+ emojiSearchPlaceholder: string;
57
80
  };
58
81
  export declare const DEFAULT_RICH_TEXT_EDITOR_TRANSLATION: RichTextEditorTranslation;
59
82
  export type RichTextEditorProps = {
@@ -0,0 +1,10 @@
1
+ import { type RichTextEditorTranslation } from "./RichTextEditor.types";
2
+ type RichTextEditorEmojiPickerProps = {
3
+ anchorEl: HTMLElement | null;
4
+ open: boolean;
5
+ onClose: () => void;
6
+ onSelect: (emoji: string) => void;
7
+ translation: RichTextEditorTranslation;
8
+ };
9
+ export declare function RichTextEditorEmojiPicker({ anchorEl, open, onClose, onSelect, translation: t, }: RichTextEditorEmojiPickerProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,10 @@
1
+ import { type Editor } from "@tiptap/react";
2
+ import { type RichTextEditorTranslation } from "./RichTextEditor.types";
3
+ type RichTextEditorImageDialogProps = {
4
+ open: boolean;
5
+ onClose: () => void;
6
+ editor: Editor;
7
+ translation: RichTextEditorTranslation;
8
+ };
9
+ export declare function RichTextEditorImageDialog({ open, onClose, editor, translation: t, }: RichTextEditorImageDialogProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,9 @@
1
+ import { type Editor } from "@tiptap/react";
2
+ import { type RichTextEditorTranslation } from "./RichTextEditor.types";
3
+ type RichTextEditorTableMenuProps = {
4
+ editor: Editor | null;
5
+ translation: RichTextEditorTranslation;
6
+ disabled?: boolean;
7
+ };
8
+ export declare function RichTextEditorTableMenu({ editor, translation: t, disabled, }: RichTextEditorTableMenuProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,9 @@
1
+ export type EmojiEntry = {
2
+ emoji: string;
3
+ name: string;
4
+ };
5
+ export type EmojiCategory = {
6
+ label: string;
7
+ emojis: EmojiEntry[];
8
+ };
9
+ export declare const EMOJI_CATEGORIES: EmojiCategory[];
@@ -1,12 +1,12 @@
1
1
  import type { EditorView } from "@codemirror/view";
2
2
  import type { SqlEditorDialect, SqlEditorToolbarConfig, SqlEditorTranslation } from "./SqlEditor.types";
3
3
  type SqlEditorToolbarProps = {
4
- viewRef: React.MutableRefObject<EditorView | null>;
4
+ editorView: EditorView | null;
5
5
  toolbarConfig: Required<SqlEditorToolbarConfig>;
6
6
  translation: SqlEditorTranslation;
7
7
  dialect: SqlEditorDialect;
8
8
  disabled?: boolean;
9
9
  onExecute?: (sql: string) => void;
10
10
  };
11
- export declare function SqlEditorToolbar({ viewRef, toolbarConfig: tc, translation: t, dialect, disabled, onExecute, }: SqlEditorToolbarProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function SqlEditorToolbar({ editorView, toolbarConfig: tc, translation: t, dialect, disabled, onExecute, }: SqlEditorToolbarProps): import("react/jsx-runtime").JSX.Element;
12
12
  export {};