@public-ui/mcp 4.1.1 → 4.1.2-rc.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/package.json +2 -2
- package/shared/sample-index.json +5 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@public-ui/mcp",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.2-rc.0",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"homepage": "https://public-ui.github.io",
|
|
6
6
|
"repository": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"express": "5.2.1",
|
|
47
47
|
"fuse.js": "7.1.0",
|
|
48
48
|
"zod": "4.3.6",
|
|
49
|
-
"@public-ui/components": "4.1.
|
|
49
|
+
"@public-ui/components": "4.1.2-rc.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@eslint/js": "9.39.4",
|
package/shared/sample-index.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"metadata": {
|
|
3
|
-
"generatedAt": "2026-03-
|
|
3
|
+
"generatedAt": "2026-03-09T14:07:39.846Z",
|
|
4
4
|
"buildMode": "ci",
|
|
5
5
|
"counts": {
|
|
6
6
|
"total": 276,
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"totalScenarios": 18
|
|
11
11
|
},
|
|
12
12
|
"repo": {
|
|
13
|
-
"commit": "
|
|
13
|
+
"commit": "8ca4ccfdc8c1e6477b44b4c1ac01232ea39ba43c",
|
|
14
14
|
"branch": "develop",
|
|
15
15
|
"repoUrl": "https://github.com/public-ui/kolibri"
|
|
16
16
|
}
|
|
@@ -1797,7 +1797,7 @@
|
|
|
1797
1797
|
"group": "spec",
|
|
1798
1798
|
"name": "_skeleton",
|
|
1799
1799
|
"path": "packages/tools/mcp/node_modules/@public-ui/components/doc/_skeleton.md",
|
|
1800
|
-
"code": "# Refactoring-Auftrag: Komponente auf Skeleton/Internals-Architektur migrieren\n\n## Rolle\n\nDu bist ein **Senior Software Architect und Developer** mit über 15 Jahren Erfahrung in komponentenbasierter Frontend-Architektur. Du legst höchsten Wert auf:\n\n- **Clean Architecture** — klare Schichtentrennung, Single Responsibility, Dependency Inversion.\n- **Wartbarkeit** — Code, der in 2 Jahren von einem neuen Teammitglied ohne Rückfragen verstanden wird.\n- **Lesbarkeit** — selbstdokumentierende Strukturen, konsistente Namensgebung, minimaler kognitiver Aufwand beim Lesen.\n- **Nachvollziehbarkeit** — jede Entscheidung folgt einem erkennbaren Pattern, keine Sonderfälle ohne Begründung.\n- **Reduktion** — du schreibst nicht mehr Code als nötig. Du löschst mutig, was nicht gebraucht wird.\n\nDu arbeitest methodisch: erst analysieren, dann planen, dann umsetzen, dann validieren. Du hinterlässt keinen toten Code, keine verwaisten Typen, keine Dateien ohne Referenz.\n\n---\n\n## Auftrag\n\nRefaktoriere die angegebene Komponente so, dass sie vollständig der Referenzimplementierung im Skeleton-Blueprint und der Internals-Schicht entspricht. Welche Komponente zu refaktorieren ist, wird dir zusammen mit diesem Prompt mitgeteilt.\n\n---\n\n## ⚠️ Arbeitsverzeichnis\n\n- **Skeleton** (`_skeleton/`) = **nur lesen**. Dient ausschließlich als Referenz und Vorlage.\n- **Komponentenverzeichnis** = **Arbeitsort**. Alle Änderungen finden in-place im bestehenden Ordner der Komponente statt.\n\n---\n\n## Verbindliche Spezifikation\n\nDie [ARC42.md](./ARC42.md) ist die **führende Architektur-Spezifikation**. Lies sie vollständig, bevor du mit dem Refactoring beginnst. Alle dort beschriebenen Patterns, Konventionen und Schichten sind einzuhalten — ohne Ausnahme.\n\nErgänzend gelten:\n\n- `AGENTS.md` (Repository-Root)\n- `.github/copilot-instructions.md`\n\nBei Widersprüchen hat die ARC42.md Vorrang.\n\n---\n\n## Vorgehen\n\n### 1. Analyse\n\n- Lies **alle** Dateien im Komponentenverzeichnis.\n- Lies die Skeleton-Referenzimplementierung (`_skeleton/web-components/`) und die Internals-Schicht (`src/internal/`).\n- Erstelle eine **Gap-Analyse**: Was weicht von der Skeleton-Architektur ab?\n\n### 2. Props-First: Struktur aufbauen (KRITISCH — ZUERST!)\n\n**Bevor du die Komponente implementierst, musst du alle Props migrieren:**\n\n1. **Props-Inventar**: Sammle alle vorhandenen `@Prop()` Deklarationen aus der aktuellen Komponente\n2. **Pro Prop eine Datei** unter `src/internal/props/`:\n - Dateiname: `<prop-name>.ts` (z.B. `label.ts`, `href.ts`, `disabled.ts`)\n - Nutze `Prop<K, TExternal, TInternal>` oder `SimpleProp<K, T>`\n - Implementiere `normalize()` und `validate()` via `createPropDefinition<P>()`\n3. **Props exportieren** in `src/internal/props/index.ts`\n4. **Props-Typen im Controller** verwenden (z.B. `InternalOf<P>`, `ExternalOf<P>`)\n\n**Warum Props-First?**\n\n- API-Verträge sind klar, bevor Implementation beginnt\n- Keine Props gehen verloren oder werden vergessen\n- Controller und Tests haben sichere Typen von Anfang an\n- Architektur muss nicht nachträglich angepasst werden\n\n### 3. Refactoring: Komponenten-Implementierung\n\nErstelle bzw. ersetze die Dateien im Komponentenverzeichnis gemäß der ARC42-Schichten:\n\n1. **API-Definition** (`api.tsx`) — Interface für die Komponente (nutzt Props-Typen aus Schritt 2)\n2. **Controller** — erweitert `BaseController`, nutzt normalisierte Props\n3. **Functional Component** — stateless Renderer\n4. **Web Component** — Stencil `@Component` mit Lifecycle, Watchers, Rendering\n5. **CSS/SCSS** — bestehende Styles beibehalten, bei Bedarf anpassen\n6. **Tests** — Testdateien **neben** `component.tsx` erstellen bzw. aktualisieren (kein `test/`-Unterordner, siehe ARC42 Design Decision 11):\n - `snapshot.spec.tsx` — Jest DOM-Snapshot-Tests (`executeSnapshotTests`)\n - `interaction.e2e.ts` — Playwright Interaction-Tests (Klick, Tastatur, Events)\n\n### 4. Dead Code eliminieren\n\nNach dem Refactoring darf **kein veralteter Code** zurückbleiben:\n\n- **Dateien löschen**: alte Type-/Interface-Dateien, alte Controller, verwaiste Module, leere Dateien.\n- **Code entfernen**: unused Types, Imports, auskommentierter Code, deprecated Wrapper.\n- **Prüfen**: Keine Datei ohne Referenz, keine Barrel-Files.\n\n### 5. Validierung\n\n```bash\npnpm format\npnpm lint\npnpm --filter @public-ui/components test:unit\npnpm --filter @public-ui/components build\n```\n\nAlle vier Befehle müssen fehlerfrei durchlaufen. **Kein Befehl darf vor dem Timeout abgebrochen werden.**\n\n---\n\n## Ausgabe\n\n1. **Gap-Analyse** — Abweichungen der bestehenden Komponente zur Skeleton-Architektur.\n2. **Gelöschte Dateien** — Liste mit Begründung pro Datei.\n3. **Neue/geänderte Dateien** — Verzeichnisstruktur mit Architektur-Layer pro Datei.\n4. **Validierungsergebnis** — Bestätigung, dass alle Befehle erfolgreich waren.\n",
|
|
1800
|
+
"code": "# Refactoring-Auftrag: Komponente auf Skeleton/Internals-Architektur migrieren\n\n## Rolle\n\nDu bist ein **Senior Software Architect und Developer** mit über 15 Jahren Erfahrung in komponentenbasierter Frontend-Architektur. Du legst höchsten Wert auf:\n\n- **Clean Architecture** — klare Schichtentrennung, Single Responsibility, Dependency Inversion.\n- **Wartbarkeit** — Code, der in 2 Jahren von einem neuen Teammitglied ohne Rückfragen verstanden wird.\n- **Lesbarkeit** — selbstdokumentierende Strukturen, konsistente Namensgebung, minimaler kognitiver Aufwand beim Lesen.\n- **Nachvollziehbarkeit** — jede Entscheidung folgt einem erkennbaren Pattern, keine Sonderfälle ohne Begründung.\n- **Reduktion** — du schreibst nicht mehr Code als nötig. Du löschst mutig, was nicht gebraucht wird.\n\nDu arbeitest methodisch: erst analysieren, dann planen, dann umsetzen, dann validieren. Du hinterlässt keinen toten Code, keine verwaisten Typen, keine Dateien ohne Referenz.\n\n---\n\n## Auftrag\n\nRefaktoriere die angegebene Komponente so, dass sie vollständig der Referenzimplementierung im Skeleton-Blueprint und der Internals-Schicht entspricht. Welche Komponente zu refaktorieren ist, wird dir zusammen mit diesem Prompt mitgeteilt.\n\n---\n\n## ⚠️ Arbeitsverzeichnis\n\n- **Skeleton** (`_skeleton/`) = **nur lesen**. Dient ausschließlich als Referenz und Vorlage.\n- **Komponentenverzeichnis** = **Arbeitsort**. Alle Änderungen finden in-place im bestehenden Ordner der Komponente statt.\n\n---\n\n## Verbindliche Spezifikation\n\nDie [ARC42.md](./ARC42.md) ist die **führende Architektur-Spezifikation**. Lies sie vollständig, bevor du mit dem Refactoring beginnst. Alle dort beschriebenen Patterns, Konventionen und Schichten sind einzuhalten — ohne Ausnahme.\n\nErgänzend gelten:\n\n- `AGENTS.md` (Repository-Root)\n- `.github/copilot-instructions.md`\n\nBei Widersprüchen hat die ARC42.md Vorrang.\n\n---\n\n## Vorgehen\n\n### 1. Analyse\n\n- Lies **alle** Dateien im Komponentenverzeichnis.\n- Lies die Skeleton-Referenzimplementierung (`_skeleton/web-components/`) und die Internals-Schicht (`src/internal/`).\n- Erstelle eine **Gap-Analyse**: Was weicht von der Skeleton-Architektur ab?\n\n### 2. Props-First: Struktur aufbauen (KRITISCH — ZUERST!)\n\n**Bevor du die Komponente implementierst, musst du alle Props migrieren:**\n\n1. **Props-Inventar**: Sammle alle vorhandenen `@Prop()` Deklarationen aus der aktuellen Komponente\n2. **Pro Prop eine Datei** unter `src/internal/props/`:\n - Dateiname: `<prop-name>.ts` (z.B. `label.ts`, `href.ts`, `disabled.ts`)\n - Nutze `Prop<K, TExternal, TInternal>` oder `SimpleProp<K, T>`\n - Implementiere `normalize()` und `validate()` via `createPropDefinition<P>()`\n3. **Props exportieren** in `src/internal/props/index.ts`\n4. **Props-Typen im Controller** verwenden (z.B. `InternalOf<P>`, `ExternalOf<P>`)\n\n**Warum Props-First?**\n\n- API-Verträge sind klar, bevor Implementation beginnt\n- Keine Props gehen verloren oder werden vergessen\n- Controller und Tests haben sichere Typen von Anfang an\n- Architektur muss nicht nachträglich angepasst werden\n\n### 3. Refactoring: Komponenten-Implementierung\n\nErstelle bzw. ersetze die Dateien im Komponentenverzeichnis gemäß der ARC42-Schichten:\n\n1. **API-Definition** (`api.tsx`) — Interface für die Komponente (nutzt Props-Typen aus Schritt 2)\n2. **Controller** — erweitert `BaseController`, nutzt normalisierte Props, empfängt `setState` als Callback\n3. **Functional Component** — stateless Renderer\n4. **Web Component** — Stencil `@Component` mit Lifecycle, Watchers, Rendering; erweitert `BaseWebComponent<Api>` und übergibt `this.setState` an den Controller\n5. **CSS/SCSS** — bestehende Styles beibehalten, bei Bedarf anpassen\n6. **Tests** — Testdateien **neben** `component.tsx` erstellen bzw. aktualisieren (kein `test/`-Unterordner, siehe ARC42 Design Decision 11):\n - `snapshot.spec.tsx` — Jest DOM-Snapshot-Tests (`executeSnapshotTests`)\n - `interaction.e2e.ts` — Playwright Interaction-Tests (Klick, Tastatur, Events)\n\n### 4. Dead Code eliminieren\n\nNach dem Refactoring darf **kein veralteter Code** zurückbleiben:\n\n- **Dateien löschen**: alte Type-/Interface-Dateien, alte Controller, verwaiste Module, leere Dateien.\n- **Code entfernen**: unused Types, Imports, auskommentierter Code, deprecated Wrapper.\n- **Prüfen**: Keine Datei ohne Referenz, keine Barrel-Files.\n\n### 5. Validierung\n\n```bash\npnpm format\npnpm lint\npnpm --filter @public-ui/components test:unit\npnpm --filter @public-ui/components build\n```\n\nAlle vier Befehle müssen fehlerfrei durchlaufen. **Kein Befehl darf vor dem Timeout abgebrochen werden.**\n\n---\n\n## Ausgabe\n\n1. **Gap-Analyse** — Abweichungen der bestehenden Komponente zur Skeleton-Architektur.\n2. **Gelöschte Dateien** — Liste mit Begründung pro Datei.\n3. **Neue/geänderte Dateien** — Verzeichnisstruktur mit Architektur-Layer pro Datei.\n4. **Validierungsergebnis** — Bestätigung, dass alle Befehle erfolgreich waren.\n",
|
|
1801
1801
|
"kind": "spec"
|
|
1802
1802
|
},
|
|
1803
1803
|
{
|
|
@@ -1941,7 +1941,7 @@
|
|
|
1941
1941
|
"group": "spec",
|
|
1942
1942
|
"name": "icon",
|
|
1943
1943
|
"path": "packages/tools/mcp/node_modules/@public-ui/components/doc/icon.md",
|
|
1944
|
-
"code": "# kol-icon\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| --------------------- | --------- | ------------------------------------------------------------------------------------------------------------------ | -------- | ----------- |\n| `_icons` _(required)_ | `_icons` | Defines the icon classnames (e.g. `_icons=\"fa-solid fa-user\"`). | `string` | `undefined` |\n| `_label` _(required)_ | `_label` | Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). | `string` | `undefined` |\n\n\n
|
|
1944
|
+
"code": "# kol-icon\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| --------------------- | --------- | ------------------------------------------------------------------------------------------------------------------ | -------- | ----------- |\n| `_icons` _(required)_ | `_icons` | Defines the icon classnames (e.g. `_icons=\"fa-solid fa-user\"`). | `string` | `undefined` |\n| `_label` _(required)_ | `_label` | Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). | `string` | `undefined` |\n\n\n----------------------------------------------\n\n\n",
|
|
1945
1945
|
"kind": "spec"
|
|
1946
1946
|
},
|
|
1947
1947
|
{
|
|
@@ -2117,7 +2117,7 @@
|
|
|
2117
2117
|
"group": "spec",
|
|
2118
2118
|
"name": "single-select",
|
|
2119
2119
|
"path": "packages/tools/mcp/node_modules/@public-ui/components/doc/single-select.md",
|
|
2120
|
-
"code": "# kol-single-select\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ----------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- | ----------- |\n| `_accessKey` | `_access-key` | Defines the key combination that can be used to trigger or focus the component's interactive element. | `string \\| undefined` | `undefined` |\n| `_disabled` | `_disabled` | Makes the element not focusable and ignore all events. | `boolean \\| undefined` | `false` |\n| `_hasClearButton` | `_has-clear-button` | Shows the clear button if enabled. | `boolean \\| undefined` | `true` |\n| `_hideLabel` | `_hide-label` | Hides the caption by default and displays the caption text with a tooltip when the interactive element is focused or the mouse is over it. | `boolean \\| undefined` | `false` |\n| `_hideMsg` | `_hide-msg` | Hides the error message but leaves it in the DOM for the input's aria-describedby. | `boolean \\| undefined` | `false` |\n| `_hint` | `_hint` | Defines the hint text. | `string \\| undefined` | `''` |\n| `_icons` | `_icons` | Defines the icon classnames (e.g. `
|
|
2120
|
+
"code": "# kol-single-select\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ----------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- | ----------- |\n| `_accessKey` | `_access-key` | Defines the key combination that can be used to trigger or focus the component's interactive element. | `string \\| undefined` | `undefined` |\n| `_disabled` | `_disabled` | Makes the element not focusable and ignore all events. | `boolean \\| undefined` | `false` |\n| `_hasClearButton` | `_has-clear-button` | Shows the clear button if enabled. | `boolean \\| undefined` | `true` |\n| `_hideLabel` | `_hide-label` | Hides the caption by default and displays the caption text with a tooltip when the interactive element is focused or the mouse is over it. | `boolean \\| undefined` | `false` |\n| `_hideMsg` | `_hide-msg` | Hides the error message but leaves it in the DOM for the input's aria-describedby. | `boolean \\| undefined` | `false` |\n| `_hint` | `_hint` | Defines the hint text. | `string \\| undefined` | `''` |\n| `_icons` | `_icons` | Defines the icon classnames (e.g. `icons=\"fa-solid fa-user\"`). | `string \\| undefined \\| { right?: IconOrIconClass \\| undefined; left?: IconOrIconClass \\| undefined; }` | `undefined` |\n| `_label` _(required)_ | `_label` | Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). Set to `false` to enable the expert slot. | `string` | `undefined` |\n| `_msg` | `_msg` | Defines the properties for a message rendered as Alert component. | `Omit<AlertProps, \"_on\" \\| \"_variant\" \\| \"_hasCloser\" \\| \"_label\" \\| \"_level\"> & { _description: string; } \\| string \\| undefined` | `undefined` |\n| `_name` | `_name` | Defines the technical name of an input field. | `string \\| undefined` | `undefined` |\n| `_on` | -- | Gibt die EventCallback-Funktionen für das Input-Event an. | `InputTypeOnBlur & InputTypeOnClick & InputTypeOnChange & InputTypeOnFocus & InputTypeOnInput & InputTypeOnKeyDown \\| undefined` | `undefined` |\n| `_options` _(required)_ | `_options` | Options the user can choose from. | `Option<StencilUnknown>[] \\| string` | `undefined` |\n| `_placeholder` | `_placeholder` | Defines the placeholder for input field. To be shown when there's no value. | `string \\| undefined` | `undefined` |\n| `_required` | `_required` | Makes the input element required. | `boolean \\| undefined` | `false` |\n| `_rows` | `_rows` | Maximum number of visible rows of the element. | `number \\| undefined` | `undefined` |\n| `_shortKey` | `_short-key` | Adds a visual shortcut hint after the label and instructs the screen reader to read the shortcut aloud. | `string \\| undefined` | `undefined` |\n| `_tooltipAlign` | `_tooltip-align` | Defines where to show the Tooltip preferably: top, right, bottom or left. | `\"bottom\" \\| \"left\" \\| \"right\" \\| \"top\" \\| undefined` | `'top'` |\n| `_touched` | `_touched` | Shows if the input was touched by a user. | `boolean \\| undefined` | `false` |\n| `_value` | `_value` | Defines the value of the element. | `boolean \\| null \\| number \\| object \\| string \\| undefined` | `null` |\n\n\n## Methods\n\n### `focus() => Promise<void>`\n\nSets focus on the internal element.\n\n#### Returns\n\nType: `Promise<void>`\n\n\n\n### `getValue() => Promise<StencilUnknown>`\n\nReturns the current value.\n\n#### Returns\n\nType: `Promise<StencilUnknown>`\n\n\n\n\n## Slots\n\n| Slot | Description |\n| ---- | ---------------------- |\n| | The input field label. |\n\n\n----------------------------------------------\n\n\n",
|
|
2121
2121
|
"kind": "spec"
|
|
2122
2122
|
},
|
|
2123
2123
|
{
|