From f98cf9ced8f39d113ab5348aeb350113aefb671f Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Mon, 24 Aug 2026 11:38:52 +0200 Subject: [PATCH] feat(help): enforce owner-aware high-risk contexts --- docs/CONTEXTUAL_HELP_CONTRACT.md | 11 + docs/LOCALIZATION_AND_HELP_QUALITY.md | 13 + pyproject.toml | 2 +- webui/package-lock.json | 4 +- webui/package-lock.release.json | 380 +++++++++--------- webui/package.json | 2 +- webui/package.release.json | 24 +- webui/src/components/PasswordField.tsx | 28 +- .../components/PasswordGeneratorDialog.tsx | 30 +- webui/src/features/auth/LoginModal.tsx | 10 +- webui/src/features/settings/SettingsPage.tsx | 4 +- webui/tests/password-generator.test.tsx | 19 +- 12 files changed, 305 insertions(+), 222 deletions(-) diff --git a/docs/CONTEXTUAL_HELP_CONTRACT.md b/docs/CONTEXTUAL_HELP_CONTRACT.md index 36b8295..92d3077 100644 --- a/docs/CONTEXTUAL_HELP_CONTRACT.md +++ b/docs/CONTEXTUAL_HELP_CONTRACT.md @@ -58,6 +58,17 @@ than adding custom `F1` listeners: headed pages. `WorkspaceLayout` owns the full-canvas workspace scope and its labelled primary/content panes; pages inside it use `PageLayout` in `workspace` mode and retain their own route-level help identity. +- `PasswordField` passes its owner context and module through reveal/generate + actions and the shared generator dialog. Credential consumers must supply an + exact owner context; the generic component does not own credential policy. + +High-risk controls use one of the source-inventory risk classes (`authority`, +`credential`, `disclosure`, `encryption`, `external-effect`, `irreversible`, +`policy`, or `retention`) and require exact F1 help. The extractor infers +obvious cases conservatively; components may declare `data-help-risk` +explicitly or mark a reviewed ordinary control with +`data-help-risk-reviewed="standard"`. The strict workspace gate rejects new +unresolved high-risk debt. Module routes, public routes, settings sections, and administration sections may also declare `helpContextId` and `helpTopicId`. Each module must keep a diff --git a/docs/LOCALIZATION_AND_HELP_QUALITY.md b/docs/LOCALIZATION_AND_HELP_QUALITY.md index c5b27c3..13d4782 100644 --- a/docs/LOCALIZATION_AND_HELP_QUALITY.md +++ b/docs/LOCALIZATION_AND_HELP_QUALITY.md @@ -75,6 +75,17 @@ native control nested in `FormField`. Dynamic context expressions remain separate evidence and generic derived fallbacks remain in the richer-help candidate queue. +The same inventory classifies controls whose labels, identities, component +context, or explicit `data-help-risk` indicate authority, credentials, +disclosure, encryption, external effects, irreversible changes, policy, or +retention. These controls require an exact context rather than relying only on +page fallback. Reviewed false positives carry +`data-help-risk-reviewed="standard"`. Invalid risk classes and any increase +above the versioned `tools/inventory/high-risk-help-baseline.json` ceiling fail +strict declaration checks; the ceiling is lowered as the finite queue is +resolved. Password fields and their generator dialog propagate the owning +field's context so shared credential controls never invent a Core-owned topic. + The generated `help_review_candidates` list is therefore a content-depth queue, not a list of controls on which F1 cannot work. It should prioritize: @@ -109,6 +120,8 @@ The check must report: - no duplicate stable IDs; - no undeclared public WebUI surface; - no stale runtime route or endpoint declaration. +- no invalid high-risk help annotation or regression above the recorded + exact-context debt ceiling. Browser acceptance is part of the focused workspace gate and can be run alone: diff --git a/pyproject.toml b/pyproject.toml index cec44e0..7dcc680 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "govoplan-core" -version = "0.1.38" +version = "0.1.39" description = "Reusable GovOPlaN platform core, access, tenancy, and RBAC components." readme = "README.md" requires-python = ">=3.12" diff --git a/webui/package-lock.json b/webui/package-lock.json index 1dd884f..df68b3a 100644 --- a/webui/package-lock.json +++ b/webui/package-lock.json @@ -1,12 +1,12 @@ { "name": "@govoplan/core-webui", - "version": "0.1.38", + "version": "0.1.39", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@govoplan/core-webui", - "version": "0.1.38", + "version": "0.1.39", "dependencies": { "@govoplan/access-webui": "file:../../govoplan-access/webui", "@govoplan/addresses-webui": "file:../../govoplan-addresses/webui", diff --git a/webui/package-lock.release.json b/webui/package-lock.release.json index 0823f77..47278da 100644 --- a/webui/package-lock.release.json +++ b/webui/package-lock.release.json @@ -1,30 +1,30 @@ { "name": "@govoplan/core-webui", - "version": "0.1.38", + "version": "0.1.39", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@govoplan/core-webui", - "version": "0.1.38", + "version": "0.1.39", "dependencies": { - "@govoplan/access-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-access.git#v0.1.20", - "@govoplan/admin-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-admin.git#v0.1.19", + "@govoplan/access-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-access.git#v0.1.23", + "@govoplan/admin-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-admin.git#v0.1.22", "@govoplan/audit-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-audit.git#v0.1.18", - "@govoplan/calendar-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-calendar.git#v0.1.18", - "@govoplan/campaign-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-campaign.git#v0.1.22", + "@govoplan/calendar-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-calendar.git#v0.1.22", + "@govoplan/campaign-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-campaign.git#v0.1.27", "@govoplan/cases-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-cases.git#v0.1.20", "@govoplan/dashboard-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-dashboard.git#v0.1.18", - "@govoplan/docs-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-docs.git#v0.1.18", - "@govoplan/files-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-files.git#v0.1.20", + "@govoplan/docs-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-docs.git#v0.1.22", + "@govoplan/files-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-files.git#v0.1.23", "@govoplan/helpdesk-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-helpdesk.git#v0.1.20", - "@govoplan/idm-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-idm.git#v0.1.19", - "@govoplan/mail-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-mail.git#v0.1.18", + "@govoplan/idm-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-idm.git#v0.1.24", + "@govoplan/mail-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-mail.git#v0.1.24", "@govoplan/ops-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-ops.git#v0.1.18", - "@govoplan/organizations-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-organizations.git#v0.1.18", + "@govoplan/organizations-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-organizations.git#v0.1.20", "@govoplan/policy-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-policy.git#v0.1.18", - "@govoplan/tickets-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-tickets.git#v0.1.20", - "@govoplan/wiki-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-wiki.git#v0.1.20", + "@govoplan/tickets-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-tickets.git#v0.1.22", + "@govoplan/wiki-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-wiki.git#v0.1.22", "@tiptap/core": "^3.29.2", "@tiptap/extension-image": "^3.29.2", "@tiptap/pm": "^3.29.2", @@ -757,8 +757,8 @@ "optional": true }, "node_modules/@govoplan/access-webui": { - "version": "0.1.20", - "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-access.git#206873b62a9c77ac5715f9ce7d6bc16d156efa74", + "version": "0.1.23", + "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-access.git#e55434f406e953a2fa9e881abb8fb6dccbabd812", "peerDependencies": { "@govoplan/core-webui": "^0.1.18", "lucide-react": "^1.23.0", @@ -773,8 +773,8 @@ } }, "node_modules/@govoplan/admin-webui": { - "version": "0.1.19", - "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-admin.git#ed424c729cd0c1c7a1cbec387a793db0819c91fe", + "version": "0.1.22", + "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-admin.git#3b450640690c5f1e123db4095663c7d5287873bb", "peerDependencies": { "@govoplan/core-webui": "^0.1.35", "lucide-react": "^1.23.0", @@ -805,8 +805,8 @@ } }, "node_modules/@govoplan/calendar-webui": { - "version": "0.1.18", - "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-calendar.git#089d07b60a99f76f2ef6d72de8c33fd263bc7bac", + "version": "0.1.22", + "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-calendar.git#3792e9ab8a10ff6e301c59df7a3fa47d5ab14952", "peerDependencies": { "@govoplan/core-webui": "^0.1.18", "@vitejs/plugin-react": "^5.2.0", @@ -824,8 +824,8 @@ } }, "node_modules/@govoplan/campaign-webui": { - "version": "0.1.18", - "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-campaign.git#4f52f010ee6a117b7b3ad605a59b1da0a459a0c6", + "version": "0.1.27", + "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-campaign.git#1b32427813b435fd47c92c95242d6029741743ec", "dependencies": { "read-excel-file": "9.2.0" }, @@ -875,8 +875,8 @@ } }, "node_modules/@govoplan/docs-webui": { - "version": "0.1.18", - "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-docs.git#30ea95854b9c65cb5d0fdd1d281a07ad1330e290", + "version": "0.1.22", + "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-docs.git#9055f3437f0296f15f63a6fc89ff65f133a7bfaf", "peerDependencies": { "@govoplan/core-webui": "^0.1.18", "@vitejs/plugin-react": "^5.2.0", @@ -894,8 +894,8 @@ } }, "node_modules/@govoplan/files-webui": { - "version": "0.1.20", - "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-files.git#378f4d6ac5525d0f07f38eefce893bfa2924f2b9", + "version": "0.1.23", + "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-files.git#11b9b7c4c6d919b9f6649034445edfea0c77d042", "peerDependencies": { "@govoplan/core-webui": "^0.1.18", "@vitejs/plugin-react": "^5.2.0", @@ -929,8 +929,8 @@ } }, "node_modules/@govoplan/idm-webui": { - "version": "0.1.18", - "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-idm.git#b0eda351957526bc7e59270c7a42016aa12bc1a3", + "version": "0.1.24", + "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-idm.git#5c7586f6d9a0d0b3e8d36ab47dca586e0a34a498", "peerDependencies": { "@govoplan/core-webui": "^0.1.18", "@vitejs/plugin-react": "^5.2.0", @@ -948,8 +948,8 @@ } }, "node_modules/@govoplan/mail-webui": { - "version": "0.1.18", - "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-mail.git#62721d204d946fa06160a5437d51de53428e1222", + "version": "0.1.24", + "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-mail.git#48205e6e461f5f93d88380df8e23db54fdb719f7", "peerDependencies": { "@govoplan/core-webui": "^0.1.18", "lucide-react": "^1.23.0", @@ -983,8 +983,8 @@ } }, "node_modules/@govoplan/organizations-webui": { - "version": "0.1.18", - "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-organizations.git#30fcdbe8327ca56f6561b00a04ecca4572fcb69e", + "version": "0.1.20", + "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-organizations.git#b23e6e4eeedd17d322744a765a473b5f77c08b61", "peerDependencies": { "@govoplan/core-webui": "^0.1.18", "@vitejs/plugin-react": "^5.2.0", @@ -1018,8 +1018,8 @@ } }, "node_modules/@govoplan/tickets-webui": { - "version": "0.1.20", - "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-tickets.git#c6c643778bc73d0504e9f1ef5b710ca98436ae41", + "version": "0.1.22", + "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-tickets.git#0ad2ef96b43a83ea7e0e9188487392db735b4a85", "peerDependencies": { "@govoplan/core-webui": "^0.1.30", "lucide-react": "^1.23.0", @@ -1034,8 +1034,8 @@ } }, "node_modules/@govoplan/wiki-webui": { - "version": "0.1.20", - "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-wiki.git#66c91351c9eb693ace606c9b69dd5cd804d7531b", + "version": "0.1.22", + "resolved": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-wiki.git#705255f378edf7643cd84fe5692cf2a0378b91a2", "peerDependencies": { "@govoplan/core-webui": "^0.1.31", "lucide-react": "^1.23.0", @@ -1484,49 +1484,49 @@ ] }, "node_modules/@tiptap/core": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.30.2.tgz", - "integrity": "sha512-QbZC/s1OOqcoUdkhIY16TjR/gCtR0qAk9e4bJwUqOJqZuv5ozqCL5hzWm22jjTPp6c6Ei2tPd6t30VwfIKW4lQ==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.30.3.tgz", + "integrity": "sha512-kDD8KY99lBCKntCqTBE9eNR1ul/i/wPFw2METWT+LYZvifljXq2oiX6JaGF1Sk59efe7+sq9IISxOk47YlBiWQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/pm": "3.30.2" + "@tiptap/pm": "3.30.3" } }, "node_modules/@tiptap/extension-blockquote": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.30.2.tgz", - "integrity": "sha512-BOkwhZenek7vzXBOgKppSrlx4YryBdAYu1p1MXKn0R9A9eNmE2HVhmm0gG49+E8BhsE/TG8wKVclwET42JJiIg==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.30.3.tgz", + "integrity": "sha512-Dh8yfEqBKTqEdBKZ4Ta3DkTecP0VJxvRNA5b1LCF7gBbe54Lm3A28UuVvK/Sdhh9FJDrIVCQTDS0yHGbi6G9ew==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2", - "@tiptap/pm": "3.30.2" + "@tiptap/core": "3.30.3", + "@tiptap/pm": "3.30.3" } }, "node_modules/@tiptap/extension-bold": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.30.2.tgz", - "integrity": "sha512-MsvJhPgYejY2D9MhwYJv8AmscozvLBI8qtJ7YLdYZBWkMR4bgmxHq5+xqEfBsao9bOMMwBon9p3+P+/Tq5ReWA==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.30.3.tgz", + "integrity": "sha512-a4BSAjWRN4mWklRTdDCIaG9R+PqyUxXNYGQ2CLtOhO51Wq6daw2qFTHR+cTqAjaiiUSuDYII86UChb2qQRq8Lg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2" + "@tiptap/core": "3.30.3" } }, "node_modules/@tiptap/extension-bubble-menu": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-3.30.2.tgz", - "integrity": "sha512-oS0WiWNXHKpiPYMkcnHm1j7iEvufTGGtLFtcJJd3olb5OS6V2acoXVDL0nNJDmRQ32K3QXut3fbRcMseMxT+lw==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-3.30.3.tgz", + "integrity": "sha512-YryCf9fq+9n1XIW6f5weSCD2MbL/LhRQ7jArRToQQ/oNxc422LqYVjijQQTNuk2cZEqE9fdO3Hw27tmwEEs9UQ==", "license": "MIT", "optional": true, "dependencies": { @@ -1537,80 +1537,80 @@ "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2", - "@tiptap/pm": "3.30.2" + "@tiptap/core": "3.30.3", + "@tiptap/pm": "3.30.3" } }, "node_modules/@tiptap/extension-bullet-list": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.30.2.tgz", - "integrity": "sha512-+awIL/TUz4aB3rL68igU1rWfaaoBIAkPcakkktkRq8gYf0bd9eSb48P6kHkpx/3q+JyK7g9vsnltLNHNh6twnA==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.30.3.tgz", + "integrity": "sha512-Z/ZqUfrd3Fd8hHpHEPv3XRzqwqVLD4CP67xFMyjy0cqEgnjgvd1iR6QzJsKD79V9zyu0Agu7ab9ZBf4NktpWcw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.30.2" + "@tiptap/extension-list": "3.30.3" } }, "node_modules/@tiptap/extension-code": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.30.2.tgz", - "integrity": "sha512-r8EZk3R9yGpF6v5xxafAU1HwrD/e+RpbfnmVi2TeB/ZHAsVO62fW96E32G0t6IdaCtOFtAd85hkDAaOfCT4yGg==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.30.3.tgz", + "integrity": "sha512-mOV4Fg+ji6uXmFxTMuug9WK6zk0ksNQepnuvoDR4g4d+tnz2y9iEbgOXFohVxhOXOLDLdNeKdwHxbHQdi5Ivbw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2" + "@tiptap/core": "3.30.3" } }, "node_modules/@tiptap/extension-code-block": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.30.2.tgz", - "integrity": "sha512-9otGKaQZmePHrLXFtCtz+BYDn5z4sSumTkUqQIQHz0gVxwPoTi7g51RedwxvViTb/zu2XV5ROXYLHIxKxypMPg==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.30.3.tgz", + "integrity": "sha512-xT2cDil/ipy/LklPgv/JqSsXys1mjcqlIPDUetK3llB2DT7XZssYPV3qv278tqRO4pJDbrXk82I6Lh7vLwmIAg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2", - "@tiptap/pm": "3.30.2" + "@tiptap/core": "3.30.3", + "@tiptap/pm": "3.30.3" } }, "node_modules/@tiptap/extension-document": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.30.2.tgz", - "integrity": "sha512-+xIv67V+/2L1uvz98FAT5W7kWEfHwfNV3MD7b4UsKPU0lhcCWuVOXy0JB8yYmdNExqpI7xT9g3MWzREoBvBQSg==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.30.3.tgz", + "integrity": "sha512-B9gqrgM1uHjCKr/PSnnSl+bS+YQb5EN/PUW9KWp9nSgmIaqxXws2ufqowS65uTLJLqd7pwF4l5lUrsfhq0EKzw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2" + "@tiptap/core": "3.30.3" } }, "node_modules/@tiptap/extension-dropcursor": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.30.2.tgz", - "integrity": "sha512-nyRKUmItATnKI9AiRChmjhcBbCEsNxRu+AaCz+cx8EvnAcNHsVRdNYL5PmBs3WlNA/Et4Eb2DG0hVQDnNF61eg==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.30.3.tgz", + "integrity": "sha512-xdY66lcQakBLvWbJQHeJy/Td0f10YRXLyFeOFzt9PODsX4nqwJMju9tpqcLIGp0waaztu8PGwZ81oSCdQldIHQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extensions": "3.30.2" + "@tiptap/extensions": "3.30.3" } }, "node_modules/@tiptap/extension-floating-menu": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-3.30.2.tgz", - "integrity": "sha512-A8PLvvh8W6PUMrqh+EpBerxm+Ucr0irGxJvwAnzYQmNGNIJ9U4OVgw4OcEU+9JH0gMmEzDcHzMPP2s/s1lIcyw==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-3.30.3.tgz", + "integrity": "sha512-4l5Qee1wBk2YBFEFbWHFhUt++6hDY7Yp81BkO3wY6KFToxs+cm9JIm3xr3KF9UJ/vnUpIhBWIbZl3uKf37SJLA==", "license": "MIT", "optional": true, "funding": { @@ -1619,93 +1619,93 @@ }, "peerDependencies": { "@floating-ui/dom": "^1.0.0", - "@tiptap/core": "3.30.2", - "@tiptap/pm": "3.30.2" + "@tiptap/core": "3.30.3", + "@tiptap/pm": "3.30.3" } }, "node_modules/@tiptap/extension-gapcursor": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.30.2.tgz", - "integrity": "sha512-7Xk0ut6FM+RAsvKxDN3bAtk7zvYZ6Aa8pawJ6s7dLAmLR9JwrZevlcL4FSrj4bR7rqKOj92RYCFxzgTEbWimag==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.30.3.tgz", + "integrity": "sha512-+mwm64+RiArd1G8xSgtaTrvx1X5Lzz6sJ93zTmaiMVNc2N29AN77BVPTJ0e+853+/F6Bec/vOnVkIjTLg/ZBRw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extensions": "3.30.2" + "@tiptap/extensions": "3.30.3" } }, "node_modules/@tiptap/extension-hard-break": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.30.2.tgz", - "integrity": "sha512-IxSNgmG3d4OZdUTeebrOI7SxdIWXXJqlcGiSNDabWqxipUitfy3mZ3gDDE6G01koKxZRbhz4KIplAZlpxnTFSg==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.30.3.tgz", + "integrity": "sha512-/tX+IFW2C4RJltbwcn8/4zoHwj5YycRNOugb4Ul9Fl1AOJqjNwRx8xc0NpaOjuADhlMYMczEtSaOiDh5ZEOmjg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2" + "@tiptap/core": "3.30.3" } }, "node_modules/@tiptap/extension-heading": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.30.2.tgz", - "integrity": "sha512-PblDvgSJ05p1t6hzyPi02xeiBjB0M2abReoGEImqSWCy79UqnAGacgsZo4EeEawtJV1NEP8chhvmX+nRtzdT1A==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.30.3.tgz", + "integrity": "sha512-y+0u9qdrUAOGNrP52hAEiH1mvr1ZmzmkCBICICiXRH4+QNXpKkiBK3zlbDOPVQj0g0YIg6XIIU0vIaUBDPIaMQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2" + "@tiptap/core": "3.30.3" } }, "node_modules/@tiptap/extension-horizontal-rule": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.30.2.tgz", - "integrity": "sha512-j8aswLTsuEdJKC62DF+kw0EgvIRL7QMUyAVp2fdjR0qgM0ZVlEwCC4qIEq3kK9tFVU4kRtQ5BSj/jn6QwrlbCA==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.30.3.tgz", + "integrity": "sha512-J/ioKlXu5oJ+pPtybFonByx1LusbR0PUd1nkx6XsZqY9wyW6uecZQgAyI8KUWIXqOfhnAW38UTsHMBRdm2XupA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2", - "@tiptap/pm": "3.30.2" + "@tiptap/core": "3.30.3", + "@tiptap/pm": "3.30.3" } }, "node_modules/@tiptap/extension-image": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-3.30.2.tgz", - "integrity": "sha512-K/BPlWauHXI6Y4s7se2A1BLcZ2pnWmRQTEDkPJYe/8kmv1GyJzPu34sZed5Mvfu5chUH8u6aNZ/utZbvSbI/0Q==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-3.30.3.tgz", + "integrity": "sha512-vbKMliRLXkABwnPenPlQDEVp3MFN7Hs+WUh1eliVmYfsBfhEo596ahahv+JVoR9JW6HSM+LVdf2TT19Iqmh0sg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2" + "@tiptap/core": "3.30.3" } }, "node_modules/@tiptap/extension-italic": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.30.2.tgz", - "integrity": "sha512-pp8uaiuXsUbLm5rYzR1jlWbwm1mAahRajdHwAKBtthFRB2rDvC7ZWhKaCSoKhZvfIDRmu9/B67+uAHoutL0dCA==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.30.3.tgz", + "integrity": "sha512-dVWqJ/kDXdPHRBp4nU7bwi2G+c3oNruIgQHYVRgYlWkwW/opvnlACZLBUgEhihH7ANiSaGW1zLQ7HuUDSL3vog==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2" + "@tiptap/core": "3.30.3" } }, "node_modules/@tiptap/extension-link": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.30.2.tgz", - "integrity": "sha512-jwdcymKcrbFpj5hRAuGVLCq8FieVkGFnENyroYmvkad+XAt8ZLy/MTFYRN6SK3ukH6PZMY7H4iObGtciQaC5nw==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.30.3.tgz", + "integrity": "sha512-MAAXfLJNf6ZFiFK3w51yiLKc31HAQWJWNV+nQ1dAdRpa6WiXdjpkcrWTuxmPd/o6Qt+yNv+hoItAVxDPEox8qQ==", "license": "MIT", "dependencies": { "linkifyjs": "^4.3.3" @@ -1715,133 +1715,133 @@ "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2", - "@tiptap/pm": "3.30.2" + "@tiptap/core": "3.30.3", + "@tiptap/pm": "3.30.3" } }, "node_modules/@tiptap/extension-list": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.30.2.tgz", - "integrity": "sha512-MIUpo1Bd9Rf1Qg+TNYNwDZ4xsfFeQahjU9Xhy6UcaszKQzbAM7KCzn5BObNytK1NdcqNHsC8Wj5vFvMKEzrXdw==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.30.3.tgz", + "integrity": "sha512-cCX99WoVb4UyXkamSh0vlXiRFhlZnwk3WXWdnXpR1E9+auxsQewk2Q9NDW1Ra0vwgzer1gkFhlOl9TCVzH2VVg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2", - "@tiptap/pm": "3.30.2" + "@tiptap/core": "3.30.3", + "@tiptap/pm": "3.30.3" } }, "node_modules/@tiptap/extension-list-item": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.30.2.tgz", - "integrity": "sha512-HWgRCRlGxulE+hN1VUcnWD6P2NE08VBgGtcaxOfdXVqaI93BCK6AhRQZGpLsfKgajLk+5DXTBraaitwnBqzCxg==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.30.3.tgz", + "integrity": "sha512-RhSyDlAATvXDTg/1VOw5aFTaewdCm+BAU3EG3eUCw4e5eoZ5pbhPOdOPTtaO45UR4i/AvjQNAZQ9LMDWX5WZFQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.30.2" + "@tiptap/extension-list": "3.30.3" } }, "node_modules/@tiptap/extension-list-keymap": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.30.2.tgz", - "integrity": "sha512-TTve3WOlQaYu1ahMqsQ/T0wzaxfgZvcOl3/OuPyInOi8QtxXhqGhFjmYe5jOr56G9W2QDuFWVsZecVwfDte9zg==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.30.3.tgz", + "integrity": "sha512-u6tOpQFnE1pOyvnzI2MvhW/Yw0omAIMlMfkykYx4N4zB1JDi+16OeOuKf3rX6G3V9VUu+qeOIGpSkifkME6H9Q==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.30.2" + "@tiptap/extension-list": "3.30.3" } }, "node_modules/@tiptap/extension-ordered-list": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.30.2.tgz", - "integrity": "sha512-Z7OO1HcF0idda1n6vodXeQ3h2ylN9JR4IfIGUYkar5Xl9JusK8PDETTBQZQn//96p49I2d+GoWsD2LXPtjHXXg==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.30.3.tgz", + "integrity": "sha512-lct/FV8vm9Y5kZFcF5TXIM18opi6m7AAkGoChgGP/A7LYalaniX1X6Ja2j13Y22ZdGaOoPTgd8oKRZXP1/miaA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.30.2" + "@tiptap/extension-list": "3.30.3" } }, "node_modules/@tiptap/extension-paragraph": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.30.2.tgz", - "integrity": "sha512-ulEu3LNt+kPVAWEnrhoz13Fs8Q/v/8NUxQbAeteuBchQ8joxJXuWExhpy1fUfZir5+b+W5z7/NesgPjZQfv47w==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.30.3.tgz", + "integrity": "sha512-Z9OHCX9b2bDcMDeR3ODCFRAyHT5eNGO4AsDFeAJS/XSitffMyjFHtOkXlyyZ3+pIHxxX6xkUXAwaLMjyATRo1A==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2" + "@tiptap/core": "3.30.3" } }, "node_modules/@tiptap/extension-strike": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.30.2.tgz", - "integrity": "sha512-fBLxMXz6hYIURzLOD+/L6aVATztsKham00ANWmGi13vN0hx2lQMYZffN+gR+QqiCDfMQxBXzrf5a7tJuDiQHLQ==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.30.3.tgz", + "integrity": "sha512-e9BI8Hzei23GjmYysXxL+CHq3fIgOm29BbSUMbYXxT2cJ+TkkgJp7EvHf74gSABNME0gUN+mG0pRR5wTFoOCcg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2" + "@tiptap/core": "3.30.3" } }, "node_modules/@tiptap/extension-text": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.30.2.tgz", - "integrity": "sha512-n/iZnirgRmXet6f97kolAnP3j8DsgLSiTbz/KLWc8eBYiFmkjRzkuisOm5xuGdfGIxwpB4x3tlSF4ef4DLnbRg==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.30.3.tgz", + "integrity": "sha512-Jh8ZyI0HLOJOIPZl5a5XRJbTs4pAUakYIWCZ3Hv3lF9ouXW/C0bY67XQU7bv6Rvu8AHzDszhKklnOZ6z1NQPXQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2" + "@tiptap/core": "3.30.3" } }, "node_modules/@tiptap/extension-underline": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.30.2.tgz", - "integrity": "sha512-SZiTMnvqXcnrtJX+X25ZbYsuDO83haGOVMBD/O+mAWYNYXhaSc5Rkph5czzItxrd+Yyp/vs4PiwD7XTNbfqmpA==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.30.3.tgz", + "integrity": "sha512-TiZ+b524Ee4PNlW+HNmkg3x4btR1K6btJy9pEjMuDf0Rx01UaTBvHpHmABR/DbbcC1CuZiQ3ylJwLL+90PaEoA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2" + "@tiptap/core": "3.30.3" } }, "node_modules/@tiptap/extensions": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.30.2.tgz", - "integrity": "sha512-2LqAHXk26QDsryW+beECxYeBzv5Ylk4GuB3cOmfghS7/G37R2W+Te3TkUK7BT0EWoDryvBT57/5q0DEFIhfZZg==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.30.3.tgz", + "integrity": "sha512-vig8ZjUL/NFnniEVbYDYj2UOIdkwZVha+9myFZkanShedviE3kl7c4uCY3fMl5EnqgyFIy2TQSKbg/i99xpztA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.30.2", - "@tiptap/pm": "3.30.2" + "@tiptap/core": "3.30.3", + "@tiptap/pm": "3.30.3" } }, "node_modules/@tiptap/pm": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.30.2.tgz", - "integrity": "sha512-BJN8tUx4ppFN3R3cV/FJfrJbJkvo1lj4uciq+nwpjwzdRvFzqIuglWf+HLcJ6CwlYpLOHp7ArgkBg4Q5e60Gog==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.30.3.tgz", + "integrity": "sha512-VheaqLAFUe+PCYEgHubM96Z1OAiluFhijQ2Cy1Ghiozoxm5OzevSaKhqm8SQ1VGfzZZko59oUjRzOmu8tB8yfA==", "license": "MIT", "dependencies": { "prosemirror-changeset": "^2.4.1", @@ -1864,9 +1864,9 @@ } }, "node_modules/@tiptap/react": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-3.30.2.tgz", - "integrity": "sha512-7hGaTstpUeTmQ008mCPkjz+GSlChWhucgy+PeX0z93v4+nh7qM5F+0lh+kJ9zo6Os5abO7v36GtgHRZdQI6+FQ==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-3.30.3.tgz", + "integrity": "sha512-gyK8UXFQlm2XgXEynNz5SzsxnTKtdBUp/PKeTeqFrk/m7L8p1eV+gcdAK+arTX+slubXRwLUm1lXrAQXRuiaTw==", "license": "MIT", "dependencies": { "@types/use-sync-external-store": "^0.0.6", @@ -1878,12 +1878,12 @@ "url": "https://github.com/sponsors/ueberdosis" }, "optionalDependencies": { - "@tiptap/extension-bubble-menu": "^3.30.2", - "@tiptap/extension-floating-menu": "^3.30.2" + "@tiptap/extension-bubble-menu": "^3.30.3", + "@tiptap/extension-floating-menu": "^3.30.3" }, "peerDependencies": { - "@tiptap/core": "3.30.2", - "@tiptap/pm": "3.30.2", + "@tiptap/core": "3.30.3", + "@tiptap/pm": "3.30.3", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "@types/react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0", @@ -1891,35 +1891,35 @@ } }, "node_modules/@tiptap/starter-kit": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.30.2.tgz", - "integrity": "sha512-fJSrhW1CyD4sjYA20evSP4Cp13B/HhbxCdM974K0xpHOVqvCtNU9w2s9hfq9mg2yGoU7MSNHKNYMkJjIi2/Xyw==", + "version": "3.30.3", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.30.3.tgz", + "integrity": "sha512-hj4rAhAoQm+wRk8eLNTyK+wK81+epbuo4O9PvPRv7GJGwYycej+xUN7jGM7Tney7GuTZpHoDCuwLKD2n1oG+pg==", "license": "MIT", "dependencies": { - "@tiptap/core": "3.30.2", - "@tiptap/extension-blockquote": "3.30.2", - "@tiptap/extension-bold": "3.30.2", - "@tiptap/extension-bullet-list": "3.30.2", - "@tiptap/extension-code": "3.30.2", - "@tiptap/extension-code-block": "3.30.2", - "@tiptap/extension-document": "3.30.2", - "@tiptap/extension-dropcursor": "3.30.2", - "@tiptap/extension-gapcursor": "3.30.2", - "@tiptap/extension-hard-break": "3.30.2", - "@tiptap/extension-heading": "3.30.2", - "@tiptap/extension-horizontal-rule": "3.30.2", - "@tiptap/extension-italic": "3.30.2", - "@tiptap/extension-link": "3.30.2", - "@tiptap/extension-list": "3.30.2", - "@tiptap/extension-list-item": "3.30.2", - "@tiptap/extension-list-keymap": "3.30.2", - "@tiptap/extension-ordered-list": "3.30.2", - "@tiptap/extension-paragraph": "3.30.2", - "@tiptap/extension-strike": "3.30.2", - "@tiptap/extension-text": "3.30.2", - "@tiptap/extension-underline": "3.30.2", - "@tiptap/extensions": "3.30.2", - "@tiptap/pm": "3.30.2" + "@tiptap/core": "3.30.3", + "@tiptap/extension-blockquote": "3.30.3", + "@tiptap/extension-bold": "3.30.3", + "@tiptap/extension-bullet-list": "3.30.3", + "@tiptap/extension-code": "3.30.3", + "@tiptap/extension-code-block": "3.30.3", + "@tiptap/extension-document": "3.30.3", + "@tiptap/extension-dropcursor": "3.30.3", + "@tiptap/extension-gapcursor": "3.30.3", + "@tiptap/extension-hard-break": "3.30.3", + "@tiptap/extension-heading": "3.30.3", + "@tiptap/extension-horizontal-rule": "3.30.3", + "@tiptap/extension-italic": "3.30.3", + "@tiptap/extension-link": "3.30.3", + "@tiptap/extension-list": "3.30.3", + "@tiptap/extension-list-item": "3.30.3", + "@tiptap/extension-list-keymap": "3.30.3", + "@tiptap/extension-ordered-list": "3.30.3", + "@tiptap/extension-paragraph": "3.30.3", + "@tiptap/extension-strike": "3.30.3", + "@tiptap/extension-text": "3.30.3", + "@tiptap/extension-underline": "3.30.3", + "@tiptap/extensions": "3.30.3", + "@tiptap/pm": "3.30.3" }, "funding": { "type": "github", @@ -1983,9 +1983,9 @@ } }, "node_modules/@types/react-dom": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.4.tgz", - "integrity": "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==", + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.5.tgz", + "integrity": "sha512-fMPwH9v7r/pp43yUd2/Mbiex5KouJwwR3dzHkhLREUC6764VyDsqxhAxv6OFEYR1RhjOyD1naqba8ECDBe7ZQg==", "license": "MIT", "peerDependencies": { "@types/react": "^19.2.0" @@ -2027,9 +2027,9 @@ } }, "node_modules/baseline-browser-mapping": { - "version": "2.11.17", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.17.tgz", - "integrity": "sha512-KAUDn1OSS0fmPlGO+NOUMRcOQ/b/shUBH3OgkG73mPgdf+JD/BQ6fHboGxNOxnUmlwcq+lLq3dTkayRPuSfXwg==", + "version": "2.11.18", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.18.tgz", + "integrity": "sha512-1iEmLEYSiE1SeBoAfPo/Mnx3PzfzHUkDK61ASkCpuk3YXugYLH5DYK1SzqV55F8FMI6s0F+/tCP7Polz1QRjxw==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" diff --git a/webui/package.json b/webui/package.json index c4f5372..cf40a80 100644 --- a/webui/package.json +++ b/webui/package.json @@ -1,6 +1,6 @@ { "name": "@govoplan/core-webui", - "version": "0.1.38", + "version": "0.1.39", "private": true, "type": "module", "main": "src/index.ts", diff --git a/webui/package.release.json b/webui/package.release.json index ad47c9f..5dec2dc 100644 --- a/webui/package.release.json +++ b/webui/package.release.json @@ -1,6 +1,6 @@ { "name": "@govoplan/core-webui", - "version": "0.1.38", + "version": "0.1.39", "private": true, "type": "module", "main": "src/index.ts", @@ -26,23 +26,23 @@ "preview": "vite preview --host 127.0.0.1 --port 4173" }, "dependencies": { - "@govoplan/access-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-access.git#v0.1.20", - "@govoplan/admin-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-admin.git#v0.1.19", + "@govoplan/access-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-access.git#v0.1.23", + "@govoplan/admin-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-admin.git#v0.1.22", "@govoplan/audit-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-audit.git#v0.1.18", - "@govoplan/calendar-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-calendar.git#v0.1.18", + "@govoplan/calendar-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-calendar.git#v0.1.22", "@govoplan/cases-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-cases.git#v0.1.20", "@govoplan/dashboard-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-dashboard.git#v0.1.18", - "@govoplan/docs-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-docs.git#v0.1.18", - "@govoplan/files-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-files.git#v0.1.20", + "@govoplan/docs-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-docs.git#v0.1.22", + "@govoplan/files-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-files.git#v0.1.23", "@govoplan/helpdesk-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-helpdesk.git#v0.1.20", - "@govoplan/idm-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-idm.git#v0.1.19", - "@govoplan/mail-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-mail.git#v0.1.18", - "@govoplan/campaign-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-campaign.git#v0.1.22", - "@govoplan/organizations-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-organizations.git#v0.1.18", + "@govoplan/idm-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-idm.git#v0.1.24", + "@govoplan/mail-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-mail.git#v0.1.24", + "@govoplan/campaign-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-campaign.git#v0.1.27", + "@govoplan/organizations-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-organizations.git#v0.1.20", "@govoplan/ops-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-ops.git#v0.1.18", "@govoplan/policy-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-policy.git#v0.1.18", - "@govoplan/tickets-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-tickets.git#v0.1.20", - "@govoplan/wiki-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-wiki.git#v0.1.20", + "@govoplan/tickets-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-tickets.git#v0.1.22", + "@govoplan/wiki-webui": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-wiki.git#v0.1.22", "@tiptap/core": "^3.29.2", "@tiptap/extension-image": "^3.29.2", "@tiptap/pm": "^3.29.2", diff --git a/webui/src/components/PasswordField.tsx b/webui/src/components/PasswordField.tsx index 047e1b4..81e86ab 100644 --- a/webui/src/components/PasswordField.tsx +++ b/webui/src/components/PasswordField.tsx @@ -3,8 +3,9 @@ import { Dice5, Eye, EyeOff } from "lucide-react"; import PasswordGeneratorDialog from "./PasswordGeneratorDialog"; import type { PasswordGeneratorOptions } from "./passwordGenerator"; import { usePlatformLanguage } from "../i18n/LanguageContext"; +import type { PlatformInterfaceIdentityProps } from "../types"; -export type PasswordFieldProps = Omit, "type" | "value" | "onChange"> & { +export type PasswordFieldProps = Omit, "type" | "value" | "onChange"> & PlatformInterfaceIdentityProps & { value: string; onValueChange: (value: string) => void; saved?: boolean; @@ -32,6 +33,10 @@ export default function PasswordField({ className = "", inputClassName = "", id, + interfaceId, + helpContextId, + helpModuleId, + helpTopicId, ...inputProps }: PasswordFieldProps) { const generatedId = useId(); @@ -50,10 +55,20 @@ export default function PasswordField({ return ( <> -
+
setGeneratorOpen(true)} >