@miragon/pulse-widget-shell 0.0.0-bootstrap.0 → 0.21.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/LICENSE +21 -0
- package/README.md +163 -3
- package/dist/adapt-data-widget.d.ts +7 -0
- package/dist/adapt-data-widget.d.ts.map +1 -0
- package/dist/adapt-data-widget.js +7 -0
- package/dist/adapt-data-widget.js.map +1 -0
- package/dist/bpmn-names.d.ts +42 -0
- package/dist/bpmn-names.d.ts.map +1 -0
- package/dist/bpmn-names.js +151 -0
- package/dist/bpmn-names.js.map +1 -0
- package/dist/bpmn-names.test.d.ts +2 -0
- package/dist/bpmn-names.test.d.ts.map +1 -0
- package/dist/bpmn-names.test.js +143 -0
- package/dist/bpmn-names.test.js.map +1 -0
- package/dist/build-data-feed-result.test.d.ts +2 -0
- package/dist/build-data-feed-result.test.d.ts.map +1 -0
- package/dist/build-data-feed-result.test.js +28 -0
- package/dist/build-data-feed-result.test.js.map +1 -0
- package/dist/build-single-widget-view.test.d.ts +2 -0
- package/dist/build-single-widget-view.test.d.ts.map +1 -0
- package/dist/build-single-widget-view.test.js +136 -0
- package/dist/build-single-widget-view.test.js.map +1 -0
- package/dist/builder-texts.d.ts +27 -0
- package/dist/builder-texts.d.ts.map +1 -0
- package/dist/builder-texts.js +32 -0
- package/dist/builder-texts.js.map +1 -0
- package/dist/builder-texts.test.d.ts +2 -0
- package/dist/builder-texts.test.d.ts.map +1 -0
- package/dist/builder-texts.test.js +54 -0
- package/dist/builder-texts.test.js.map +1 -0
- package/dist/catalogue-sync.d.ts +18 -0
- package/dist/catalogue-sync.d.ts.map +1 -0
- package/dist/catalogue-sync.js +31 -0
- package/dist/catalogue-sync.js.map +1 -0
- package/dist/catalogue-sync.test.d.ts +2 -0
- package/dist/catalogue-sync.test.d.ts.map +1 -0
- package/dist/catalogue-sync.test.js +22 -0
- package/dist/catalogue-sync.test.js.map +1 -0
- package/dist/composed-server.d.ts +110 -0
- package/dist/composed-server.d.ts.map +1 -0
- package/dist/composed-server.edge.test.d.ts +2 -0
- package/dist/composed-server.edge.test.d.ts.map +1 -0
- package/dist/composed-server.edge.test.js +184 -0
- package/dist/composed-server.edge.test.js.map +1 -0
- package/dist/composed-server.fonts.test.d.ts +2 -0
- package/dist/composed-server.fonts.test.d.ts.map +1 -0
- package/dist/composed-server.fonts.test.js +186 -0
- package/dist/composed-server.fonts.test.js.map +1 -0
- package/dist/composed-server.js +260 -0
- package/dist/composed-server.js.map +1 -0
- package/dist/composed-server.test.d.ts +2 -0
- package/dist/composed-server.test.d.ts.map +1 -0
- package/dist/composed-server.test.js +332 -0
- package/dist/composed-server.test.js.map +1 -0
- package/dist/composition.d.ts +155 -0
- package/dist/composition.d.ts.map +1 -0
- package/dist/composition.js +163 -0
- package/dist/composition.js.map +1 -0
- package/dist/composition.test.d.ts +2 -0
- package/dist/composition.test.d.ts.map +1 -0
- package/dist/composition.test.js +275 -0
- package/dist/composition.test.js.map +1 -0
- package/dist/dashboard-store-postgres.d.ts +43 -0
- package/dist/dashboard-store-postgres.d.ts.map +1 -0
- package/dist/dashboard-store-postgres.js +225 -0
- package/dist/dashboard-store-postgres.js.map +1 -0
- package/dist/dashboard-store-postgres.test.d.ts +2 -0
- package/dist/dashboard-store-postgres.test.d.ts.map +1 -0
- package/dist/dashboard-store-postgres.test.js +272 -0
- package/dist/dashboard-store-postgres.test.js.map +1 -0
- package/dist/font-assets.d.ts +47 -0
- package/dist/font-assets.d.ts.map +1 -0
- package/dist/font-assets.js +93 -0
- package/dist/font-assets.js.map +1 -0
- package/dist/font-assets.test.d.ts +2 -0
- package/dist/font-assets.test.d.ts.map +1 -0
- package/dist/font-assets.test.js +123 -0
- package/dist/font-assets.test.js.map +1 -0
- package/dist/health.d.ts +59 -0
- package/dist/health.d.ts.map +1 -0
- package/dist/health.js +74 -0
- package/dist/health.js.map +1 -0
- package/dist/health.test.d.ts +2 -0
- package/dist/health.test.d.ts.map +1 -0
- package/dist/health.test.js +140 -0
- package/dist/health.test.js.map +1 -0
- package/dist/host-boot.d.ts +56 -0
- package/dist/host-boot.d.ts.map +1 -0
- package/dist/host-boot.js +64 -0
- package/dist/host-boot.js.map +1 -0
- package/dist/host-boot.test.d.ts +2 -0
- package/dist/host-boot.test.d.ts.map +1 -0
- package/dist/host-boot.test.js +59 -0
- package/dist/host-boot.test.js.map +1 -0
- package/dist/http-edge.d.ts +117 -0
- package/dist/http-edge.d.ts.map +1 -0
- package/dist/http-edge.js +219 -0
- package/dist/http-edge.js.map +1 -0
- package/dist/http-edge.test.d.ts +2 -0
- package/dist/http-edge.test.d.ts.map +1 -0
- package/dist/http-edge.test.js +255 -0
- package/dist/http-edge.test.js.map +1 -0
- package/dist/metrics.d.ts +48 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +124 -0
- package/dist/metrics.js.map +1 -0
- package/dist/metrics.test.d.ts +2 -0
- package/dist/metrics.test.d.ts.map +1 -0
- package/dist/metrics.test.js +154 -0
- package/dist/metrics.test.js.map +1 -0
- package/dist/node-listener.d.ts +61 -0
- package/dist/node-listener.d.ts.map +1 -0
- package/dist/node-listener.js +165 -0
- package/dist/node-listener.js.map +1 -0
- package/dist/node-listener.test.d.ts +2 -0
- package/dist/node-listener.test.d.ts.map +1 -0
- package/dist/node-listener.test.js +331 -0
- package/dist/node-listener.test.js.map +1 -0
- package/dist/oauth-env.d.ts +42 -0
- package/dist/oauth-env.d.ts.map +1 -0
- package/dist/oauth-env.js +78 -0
- package/dist/oauth-env.js.map +1 -0
- package/dist/oauth-env.test.d.ts +2 -0
- package/dist/oauth-env.test.d.ts.map +1 -0
- package/dist/oauth-env.test.js +76 -0
- package/dist/oauth-env.test.js.map +1 -0
- package/dist/postgres.d.ts +59 -0
- package/dist/postgres.d.ts.map +1 -0
- package/dist/postgres.js +80 -0
- package/dist/postgres.js.map +1 -0
- package/dist/profile-advisory.d.ts +19 -0
- package/dist/profile-advisory.d.ts.map +1 -0
- package/dist/profile-advisory.js +48 -0
- package/dist/profile-advisory.js.map +1 -0
- package/dist/profile-advisory.test.d.ts +2 -0
- package/dist/profile-advisory.test.d.ts.map +1 -0
- package/dist/profile-advisory.test.js +53 -0
- package/dist/profile-advisory.test.js.map +1 -0
- package/dist/profile-constants.d.ts +37 -0
- package/dist/profile-constants.d.ts.map +1 -0
- package/dist/profile-constants.js +37 -0
- package/dist/profile-constants.js.map +1 -0
- package/dist/profile-migrations.d.ts +71 -0
- package/dist/profile-migrations.d.ts.map +1 -0
- package/dist/profile-migrations.js +88 -0
- package/dist/profile-migrations.js.map +1 -0
- package/dist/profile-migrations.test.d.ts +2 -0
- package/dist/profile-migrations.test.d.ts.map +1 -0
- package/dist/profile-migrations.test.js +200 -0
- package/dist/profile-migrations.test.js.map +1 -0
- package/dist/profile-record.d.ts +60 -0
- package/dist/profile-record.d.ts.map +1 -0
- package/dist/profile-record.js +78 -0
- package/dist/profile-record.js.map +1 -0
- package/dist/profile-slice.d.ts +53 -0
- package/dist/profile-slice.d.ts.map +1 -0
- package/dist/profile-slice.js +73 -0
- package/dist/profile-slice.js.map +1 -0
- package/dist/profile-slice.test.d.ts +2 -0
- package/dist/profile-slice.test.d.ts.map +1 -0
- package/dist/profile-slice.test.js +73 -0
- package/dist/profile-slice.test.js.map +1 -0
- package/dist/profile-store-env.d.ts +34 -0
- package/dist/profile-store-env.d.ts.map +1 -0
- package/dist/profile-store-env.js +44 -0
- package/dist/profile-store-env.js.map +1 -0
- package/dist/profile-store-env.test.d.ts +2 -0
- package/dist/profile-store-env.test.d.ts.map +1 -0
- package/dist/profile-store-env.test.js +69 -0
- package/dist/profile-store-env.test.js.map +1 -0
- package/dist/profile-store-postgres.d.ts +33 -0
- package/dist/profile-store-postgres.d.ts.map +1 -0
- package/dist/profile-store-postgres.js +87 -0
- package/dist/profile-store-postgres.js.map +1 -0
- package/dist/profile-store-raw.test.d.ts +2 -0
- package/dist/profile-store-raw.test.d.ts.map +1 -0
- package/dist/profile-store-raw.test.js +185 -0
- package/dist/profile-store-raw.test.js.map +1 -0
- package/dist/profile-store.d.ts +85 -0
- package/dist/profile-store.d.ts.map +1 -0
- package/dist/profile-store.js +182 -0
- package/dist/profile-store.js.map +1 -0
- package/dist/profile-store.test.d.ts +2 -0
- package/dist/profile-store.test.d.ts.map +1 -0
- package/dist/profile-store.test.js +353 -0
- package/dist/profile-store.test.js.map +1 -0
- package/dist/profile.d.ts +75 -0
- package/dist/profile.d.ts.map +1 -0
- package/dist/profile.js +85 -0
- package/dist/profile.js.map +1 -0
- package/dist/profile.test.d.ts +2 -0
- package/dist/profile.test.d.ts.map +1 -0
- package/dist/profile.test.js +71 -0
- package/dist/profile.test.js.map +1 -0
- package/dist/request-context.d.ts +47 -0
- package/dist/request-context.d.ts.map +1 -0
- package/dist/request-context.js +85 -0
- package/dist/request-context.js.map +1 -0
- package/dist/request-context.test.d.ts +2 -0
- package/dist/request-context.test.d.ts.map +1 -0
- package/dist/request-context.test.js +107 -0
- package/dist/request-context.test.js.map +1 -0
- package/dist/served-fonts.d.ts +38 -0
- package/dist/served-fonts.d.ts.map +1 -0
- package/dist/served-fonts.js +51 -0
- package/dist/served-fonts.js.map +1 -0
- package/dist/served-fonts.test.d.ts +2 -0
- package/dist/served-fonts.test.d.ts.map +1 -0
- package/dist/served-fonts.test.js +30 -0
- package/dist/served-fonts.test.js.map +1 -0
- package/dist/server-locale.d.ts +58 -0
- package/dist/server-locale.d.ts.map +1 -0
- package/dist/server-locale.js +64 -0
- package/dist/server-locale.js.map +1 -0
- package/dist/server-locale.test.d.ts +2 -0
- package/dist/server-locale.test.d.ts.map +1 -0
- package/dist/server-locale.test.js +90 -0
- package/dist/server-locale.test.js.map +1 -0
- package/dist/server.d.ts +43 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +34 -0
- package/dist/server.js.map +1 -0
- package/dist/shell-catalogue.d.ts +12 -0
- package/dist/shell-catalogue.d.ts.map +1 -0
- package/dist/shell-catalogue.js +142 -0
- package/dist/shell-catalogue.js.map +1 -0
- package/dist/shell-settings-contract.d.ts +34 -0
- package/dist/shell-settings-contract.d.ts.map +1 -0
- package/dist/shell-settings-contract.js +21 -0
- package/dist/shell-settings-contract.js.map +1 -0
- package/dist/shell-settings.d.ts +24 -0
- package/dist/shell-settings.d.ts.map +1 -0
- package/dist/shell-settings.js +148 -0
- package/dist/shell-settings.js.map +1 -0
- package/dist/shell-settings.test.d.ts +2 -0
- package/dist/shell-settings.test.d.ts.map +1 -0
- package/dist/shell-settings.test.js +115 -0
- package/dist/shell-settings.test.js.map +1 -0
- package/dist/testing/catalog-text.d.ts +53 -0
- package/dist/testing/catalog-text.d.ts.map +1 -0
- package/dist/testing/catalog-text.js +146 -0
- package/dist/testing/catalog-text.js.map +1 -0
- package/dist/testing/catalog-text.test.d.ts +2 -0
- package/dist/testing/catalog-text.test.d.ts.map +1 -0
- package/dist/testing/catalog-text.test.js +137 -0
- package/dist/testing/catalog-text.test.js.map +1 -0
- package/dist/testing/colors.d.ts +34 -0
- package/dist/testing/colors.d.ts.map +1 -0
- package/dist/testing/colors.js +124 -0
- package/dist/testing/colors.js.map +1 -0
- package/dist/testing/colors.test.d.ts +2 -0
- package/dist/testing/colors.test.d.ts.map +1 -0
- package/dist/testing/colors.test.js +166 -0
- package/dist/testing/colors.test.js.map +1 -0
- package/dist/testing/contrast.d.ts +77 -0
- package/dist/testing/contrast.d.ts.map +1 -0
- package/dist/testing/contrast.js +382 -0
- package/dist/testing/contrast.js.map +1 -0
- package/dist/testing/contrast.test.d.ts +2 -0
- package/dist/testing/contrast.test.d.ts.map +1 -0
- package/dist/testing/contrast.test.js +230 -0
- package/dist/testing/contrast.test.js.map +1 -0
- package/dist/testing/display-texts.d.ts +23 -0
- package/dist/testing/display-texts.d.ts.map +1 -0
- package/dist/testing/display-texts.js +88 -0
- package/dist/testing/display-texts.js.map +1 -0
- package/dist/testing/display-texts.test.d.ts +2 -0
- package/dist/testing/display-texts.test.d.ts.map +1 -0
- package/dist/testing/display-texts.test.js +169 -0
- package/dist/testing/display-texts.test.js.map +1 -0
- package/dist/testing/glossary.d.ts +52 -0
- package/dist/testing/glossary.d.ts.map +1 -0
- package/dist/testing/glossary.js +135 -0
- package/dist/testing/glossary.js.map +1 -0
- package/dist/testing/glossary.test.d.ts +2 -0
- package/dist/testing/glossary.test.d.ts.map +1 -0
- package/dist/testing/glossary.test.js +78 -0
- package/dist/testing/glossary.test.js.map +1 -0
- package/dist/testing/glyphs.d.ts +27 -0
- package/dist/testing/glyphs.d.ts.map +1 -0
- package/dist/testing/glyphs.js +130 -0
- package/dist/testing/glyphs.js.map +1 -0
- package/dist/testing/glyphs.test.d.ts +2 -0
- package/dist/testing/glyphs.test.d.ts.map +1 -0
- package/dist/testing/glyphs.test.js +146 -0
- package/dist/testing/glyphs.test.js.map +1 -0
- package/dist/testing/icon-sizes.d.ts +22 -0
- package/dist/testing/icon-sizes.d.ts.map +1 -0
- package/dist/testing/icon-sizes.js +39 -0
- package/dist/testing/icon-sizes.js.map +1 -0
- package/dist/testing/icon-sizes.test.d.ts +2 -0
- package/dist/testing/icon-sizes.test.d.ts.map +1 -0
- package/dist/testing/icon-sizes.test.js +36 -0
- package/dist/testing/icon-sizes.test.js.map +1 -0
- package/dist/testing/index.d.ts +40 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +40 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/source-scan.d.ts +16 -0
- package/dist/testing/source-scan.d.ts.map +1 -0
- package/dist/testing/source-scan.js +57 -0
- package/dist/testing/source-scan.js.map +1 -0
- package/dist/testing/tone-pairs.d.ts +20 -0
- package/dist/testing/tone-pairs.d.ts.map +1 -0
- package/dist/testing/tone-pairs.js +154 -0
- package/dist/testing/tone-pairs.js.map +1 -0
- package/dist/testing/type-scale.d.ts +40 -0
- package/dist/testing/type-scale.d.ts.map +1 -0
- package/dist/testing/type-scale.js +55 -0
- package/dist/testing/type-scale.js.map +1 -0
- package/dist/testing/type-scale.test.d.ts +2 -0
- package/dist/testing/type-scale.test.d.ts.map +1 -0
- package/dist/testing/type-scale.test.js +61 -0
- package/dist/testing/type-scale.test.js.map +1 -0
- package/dist/tool-schema-trim.d.ts +24 -0
- package/dist/tool-schema-trim.d.ts.map +1 -0
- package/dist/tool-schema-trim.js +49 -0
- package/dist/tool-schema-trim.js.map +1 -0
- package/dist/tool-schema-trim.test.d.ts +2 -0
- package/dist/tool-schema-trim.test.d.ts.map +1 -0
- package/dist/tool-schema-trim.test.js +53 -0
- package/dist/tool-schema-trim.test.js.map +1 -0
- package/dist/toolsets.d.ts +76 -0
- package/dist/toolsets.d.ts.map +1 -0
- package/dist/toolsets.js +41 -0
- package/dist/toolsets.js.map +1 -0
- package/dist/toolsets.test.d.ts +2 -0
- package/dist/toolsets.test.d.ts.map +1 -0
- package/dist/toolsets.test.js +86 -0
- package/dist/toolsets.test.js.map +1 -0
- package/dist/ui/action-feedback.d.ts +33 -0
- package/dist/ui/action-feedback.d.ts.map +1 -0
- package/dist/ui/action-feedback.js +51 -0
- package/dist/ui/action-feedback.js.map +1 -0
- package/dist/ui/action-feedback.test.d.ts +2 -0
- package/dist/ui/action-feedback.test.d.ts.map +1 -0
- package/dist/ui/action-feedback.test.js +77 -0
- package/dist/ui/action-feedback.test.js.map +1 -0
- package/dist/ui/app-shell-providers.d.ts +18 -0
- package/dist/ui/app-shell-providers.d.ts.map +1 -0
- package/dist/ui/app-shell-providers.js +19 -0
- package/dist/ui/app-shell-providers.js.map +1 -0
- package/dist/ui/app-shell-providers.test.d.ts +2 -0
- package/dist/ui/app-shell-providers.test.d.ts.map +1 -0
- package/dist/ui/app-shell-providers.test.js +249 -0
- package/dist/ui/app-shell-providers.test.js.map +1 -0
- package/dist/ui/ask-ai-button.d.ts +56 -0
- package/dist/ui/ask-ai-button.d.ts.map +1 -0
- package/dist/ui/ask-ai-button.js +36 -0
- package/dist/ui/ask-ai-button.js.map +1 -0
- package/dist/ui/ask-ai-button.test.d.ts +2 -0
- package/dist/ui/ask-ai-button.test.d.ts.map +1 -0
- package/dist/ui/ask-ai-button.test.js +103 -0
- package/dist/ui/ask-ai-button.test.js.map +1 -0
- package/dist/ui/ask-ai-prompt.d.ts +115 -0
- package/dist/ui/ask-ai-prompt.d.ts.map +1 -0
- package/dist/ui/ask-ai-prompt.js +174 -0
- package/dist/ui/ask-ai-prompt.js.map +1 -0
- package/dist/ui/ask-ai-prompt.test.d.ts +2 -0
- package/dist/ui/ask-ai-prompt.test.d.ts.map +1 -0
- package/dist/ui/ask-ai-prompt.test.js +240 -0
- package/dist/ui/ask-ai-prompt.test.js.map +1 -0
- package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts +2 -0
- package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts.map +1 -0
- package/dist/ui/bpmn-heatmap/heat-ramp.test.js +174 -0
- package/dist/ui/bpmn-heatmap/heat-ramp.test.js.map +1 -0
- package/dist/ui/bpmn-heatmap/heat-utils.d.ts +119 -0
- package/dist/ui/bpmn-heatmap/heat-utils.d.ts.map +1 -0
- package/dist/ui/bpmn-heatmap/heat-utils.js +231 -0
- package/dist/ui/bpmn-heatmap/heat-utils.js.map +1 -0
- package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts +2 -0
- package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts.map +1 -0
- package/dist/ui/bpmn-heatmap/heat-utils.test.js +59 -0
- package/dist/ui/bpmn-heatmap/heat-utils.test.js.map +1 -0
- package/dist/ui/bpmn-heatmap-labels.d.ts +46 -0
- package/dist/ui/bpmn-heatmap-labels.d.ts.map +1 -0
- package/dist/ui/bpmn-heatmap-labels.js +16 -0
- package/dist/ui/bpmn-heatmap-labels.js.map +1 -0
- package/dist/ui/bpmn-heatmap-widget.d.ts +38 -0
- package/dist/ui/bpmn-heatmap-widget.d.ts.map +1 -0
- package/dist/ui/bpmn-heatmap-widget.js +65 -0
- package/dist/ui/bpmn-heatmap-widget.js.map +1 -0
- package/dist/ui/bpmn-heatmap-widget.test.d.ts +2 -0
- package/dist/ui/bpmn-heatmap-widget.test.d.ts.map +1 -0
- package/dist/ui/bpmn-heatmap-widget.test.js +173 -0
- package/dist/ui/bpmn-heatmap-widget.test.js.map +1 -0
- package/dist/ui/bpmn-heatmap.d.ts +61 -0
- package/dist/ui/bpmn-heatmap.d.ts.map +1 -0
- package/dist/ui/bpmn-heatmap.js +119 -0
- package/dist/ui/bpmn-heatmap.js.map +1 -0
- package/dist/ui/bpmn-tokens.d.ts +81 -0
- package/dist/ui/bpmn-tokens.d.ts.map +1 -0
- package/dist/ui/bpmn-tokens.js +114 -0
- package/dist/ui/bpmn-tokens.js.map +1 -0
- package/dist/ui/bpmn-tokens.test.d.ts +2 -0
- package/dist/ui/bpmn-tokens.test.d.ts.map +1 -0
- package/dist/ui/bpmn-tokens.test.js +98 -0
- package/dist/ui/bpmn-tokens.test.js.map +1 -0
- package/dist/ui/bpmn-zoom-controls.d.ts +30 -0
- package/dist/ui/bpmn-zoom-controls.d.ts.map +1 -0
- package/dist/ui/bpmn-zoom-controls.js +29 -0
- package/dist/ui/bpmn-zoom-controls.js.map +1 -0
- package/dist/ui/brand-gates.test.d.ts +2 -0
- package/dist/ui/brand-gates.test.d.ts.map +1 -0
- package/dist/ui/brand-gates.test.js +131 -0
- package/dist/ui/brand-gates.test.js.map +1 -0
- package/dist/ui/brand-mark.d.ts +37 -0
- package/dist/ui/brand-mark.d.ts.map +1 -0
- package/dist/ui/brand-mark.js +33 -0
- package/dist/ui/brand-mark.js.map +1 -0
- package/dist/ui/brand-mark.test.d.ts +2 -0
- package/dist/ui/brand-mark.test.d.ts.map +1 -0
- package/dist/ui/brand-mark.test.js +111 -0
- package/dist/ui/brand-mark.test.js.map +1 -0
- package/dist/ui/confirm-dialog.d.ts +55 -0
- package/dist/ui/confirm-dialog.d.ts.map +1 -0
- package/dist/ui/confirm-dialog.js +59 -0
- package/dist/ui/confirm-dialog.js.map +1 -0
- package/dist/ui/confirm-dialog.test.d.ts +2 -0
- package/dist/ui/confirm-dialog.test.d.ts.map +1 -0
- package/dist/ui/confirm-dialog.test.js +115 -0
- package/dist/ui/confirm-dialog.test.js.map +1 -0
- package/dist/ui/count-tone.d.ts +20 -0
- package/dist/ui/count-tone.d.ts.map +1 -0
- package/dist/ui/count-tone.js +27 -0
- package/dist/ui/count-tone.js.map +1 -0
- package/dist/ui/count-tone.test.d.ts +2 -0
- package/dist/ui/count-tone.test.d.ts.map +1 -0
- package/dist/ui/count-tone.test.js +27 -0
- package/dist/ui/count-tone.test.js.map +1 -0
- package/dist/ui/create-use-t.d.ts +15 -0
- package/dist/ui/create-use-t.d.ts.map +1 -0
- package/dist/ui/create-use-t.js +17 -0
- package/dist/ui/create-use-t.js.map +1 -0
- package/dist/ui/declare-served-fonts.d.ts +14 -0
- package/dist/ui/declare-served-fonts.d.ts.map +1 -0
- package/dist/ui/declare-served-fonts.js +38 -0
- package/dist/ui/declare-served-fonts.js.map +1 -0
- package/dist/ui/declare-served-fonts.test.d.ts +2 -0
- package/dist/ui/declare-served-fonts.test.d.ts.map +1 -0
- package/dist/ui/declare-served-fonts.test.js +44 -0
- package/dist/ui/declare-served-fonts.test.js.map +1 -0
- package/dist/ui/describe-error.d.ts +71 -0
- package/dist/ui/describe-error.d.ts.map +1 -0
- package/dist/ui/describe-error.js +175 -0
- package/dist/ui/describe-error.js.map +1 -0
- package/dist/ui/describe-error.test.d.ts +2 -0
- package/dist/ui/describe-error.test.d.ts.map +1 -0
- package/dist/ui/describe-error.test.js +274 -0
- package/dist/ui/describe-error.test.js.map +1 -0
- package/dist/ui/display-mode-toggle.d.ts +32 -0
- package/dist/ui/display-mode-toggle.d.ts.map +1 -0
- package/dist/ui/display-mode-toggle.js +39 -0
- package/dist/ui/display-mode-toggle.js.map +1 -0
- package/dist/ui/error-labels.d.ts +65 -0
- package/dist/ui/error-labels.d.ts.map +1 -0
- package/dist/ui/error-labels.js +111 -0
- package/dist/ui/error-labels.js.map +1 -0
- package/dist/ui/format.d.ts +81 -0
- package/dist/ui/format.d.ts.map +1 -0
- package/dist/ui/format.js +189 -0
- package/dist/ui/format.js.map +1 -0
- package/dist/ui/format.test.d.ts +2 -0
- package/dist/ui/format.test.d.ts.map +1 -0
- package/dist/ui/format.test.js +181 -0
- package/dist/ui/format.test.js.map +1 -0
- package/dist/ui/generic-widgets.d.ts +15 -0
- package/dist/ui/generic-widgets.d.ts.map +1 -0
- package/dist/ui/generic-widgets.js +122 -0
- package/dist/ui/generic-widgets.js.map +1 -0
- package/dist/ui/generic-widgets.test.d.ts +2 -0
- package/dist/ui/generic-widgets.test.d.ts.map +1 -0
- package/dist/ui/generic-widgets.test.js +139 -0
- package/dist/ui/generic-widgets.test.js.map +1 -0
- package/dist/ui/hand-off-button.d.ts +44 -0
- package/dist/ui/hand-off-button.d.ts.map +1 -0
- package/dist/ui/hand-off-button.js +44 -0
- package/dist/ui/hand-off-button.js.map +1 -0
- package/dist/ui/hand-off-button.test.d.ts +2 -0
- package/dist/ui/hand-off-button.test.d.ts.map +1 -0
- package/dist/ui/hand-off-button.test.js +78 -0
- package/dist/ui/hand-off-button.test.js.map +1 -0
- package/dist/ui/host-context.d.ts +66 -0
- package/dist/ui/host-context.d.ts.map +1 -0
- package/dist/ui/host-context.js +122 -0
- package/dist/ui/host-context.js.map +1 -0
- package/dist/ui/host-context.test.d.ts +2 -0
- package/dist/ui/host-context.test.d.ts.map +1 -0
- package/dist/ui/host-context.test.js +160 -0
- package/dist/ui/host-context.test.js.map +1 -0
- package/dist/ui/host-document.d.ts +25 -0
- package/dist/ui/host-document.d.ts.map +1 -0
- package/dist/ui/host-document.js +93 -0
- package/dist/ui/host-document.js.map +1 -0
- package/dist/ui/host-document.test.d.ts +2 -0
- package/dist/ui/host-document.test.d.ts.map +1 -0
- package/dist/ui/host-document.test.js +112 -0
- package/dist/ui/host-document.test.js.map +1 -0
- package/dist/ui/host-widgets.d.ts +8 -0
- package/dist/ui/host-widgets.d.ts.map +1 -0
- package/dist/ui/host-widgets.js +18 -0
- package/dist/ui/host-widgets.js.map +1 -0
- package/dist/ui/humanize-key.d.ts +11 -0
- package/dist/ui/humanize-key.d.ts.map +1 -0
- package/dist/ui/humanize-key.js +26 -0
- package/dist/ui/humanize-key.js.map +1 -0
- package/dist/ui/humanize-key.test.d.ts +2 -0
- package/dist/ui/humanize-key.test.d.ts.map +1 -0
- package/dist/ui/humanize-key.test.js +42 -0
- package/dist/ui/humanize-key.test.js.map +1 -0
- package/dist/ui/icon.d.ts +37 -0
- package/dist/ui/icon.d.ts.map +1 -0
- package/dist/ui/icon.js +32 -0
- package/dist/ui/icon.js.map +1 -0
- package/dist/ui/id-breaks.d.ts +17 -0
- package/dist/ui/id-breaks.d.ts.map +1 -0
- package/dist/ui/id-breaks.js +36 -0
- package/dist/ui/id-breaks.js.map +1 -0
- package/dist/ui/id-breaks.test.d.ts +2 -0
- package/dist/ui/id-breaks.test.d.ts.map +1 -0
- package/dist/ui/id-breaks.test.js +37 -0
- package/dist/ui/id-breaks.test.js.map +1 -0
- package/dist/ui/id-text.d.ts +29 -0
- package/dist/ui/id-text.d.ts.map +1 -0
- package/dist/ui/id-text.js +103 -0
- package/dist/ui/id-text.js.map +1 -0
- package/dist/ui/id-text.test.d.ts +2 -0
- package/dist/ui/id-text.test.d.ts.map +1 -0
- package/dist/ui/id-text.test.js +122 -0
- package/dist/ui/id-text.test.js.map +1 -0
- package/dist/ui/index.d.ts +57 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +65 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/index.test.d.ts +2 -0
- package/dist/ui/index.test.d.ts.map +1 -0
- package/dist/ui/index.test.js +34 -0
- package/dist/ui/index.test.js.map +1 -0
- package/dist/ui/inline-budget.d.ts +35 -0
- package/dist/ui/inline-budget.d.ts.map +1 -0
- package/dist/ui/inline-budget.js +27 -0
- package/dist/ui/inline-budget.js.map +1 -0
- package/dist/ui/inline-fit-registry.d.ts +56 -0
- package/dist/ui/inline-fit-registry.d.ts.map +1 -0
- package/dist/ui/inline-fit-registry.js +114 -0
- package/dist/ui/inline-fit-registry.js.map +1 -0
- package/dist/ui/inline-fit-solve.d.ts +50 -0
- package/dist/ui/inline-fit-solve.d.ts.map +1 -0
- package/dist/ui/inline-fit-solve.js +83 -0
- package/dist/ui/inline-fit-solve.js.map +1 -0
- package/dist/ui/inline-fit-solve.test.d.ts +2 -0
- package/dist/ui/inline-fit-solve.test.d.ts.map +1 -0
- package/dist/ui/inline-fit-solve.test.js +108 -0
- package/dist/ui/inline-fit-solve.test.js.map +1 -0
- package/dist/ui/inline-fit-time.test.d.ts +2 -0
- package/dist/ui/inline-fit-time.test.d.ts.map +1 -0
- package/dist/ui/inline-fit-time.test.js +110 -0
- package/dist/ui/inline-fit-time.test.js.map +1 -0
- package/dist/ui/inline-fit.d.ts +77 -0
- package/dist/ui/inline-fit.d.ts.map +1 -0
- package/dist/ui/inline-fit.js +242 -0
- package/dist/ui/inline-fit.js.map +1 -0
- package/dist/ui/inline-fit.test-support.d.ts +26 -0
- package/dist/ui/inline-fit.test-support.d.ts.map +1 -0
- package/dist/ui/inline-fit.test-support.js +34 -0
- package/dist/ui/inline-fit.test-support.js.map +1 -0
- package/dist/ui/inline-fit.test.d.ts +2 -0
- package/dist/ui/inline-fit.test.d.ts.map +1 -0
- package/dist/ui/inline-fit.test.js +159 -0
- package/dist/ui/inline-fit.test.js.map +1 -0
- package/dist/ui/kit-labels.d.ts +80 -0
- package/dist/ui/kit-labels.d.ts.map +1 -0
- package/dist/ui/kit-labels.js +110 -0
- package/dist/ui/kit-labels.js.map +1 -0
- package/dist/ui/kit-labels.test.d.ts +2 -0
- package/dist/ui/kit-labels.test.d.ts.map +1 -0
- package/dist/ui/kit-labels.test.js +98 -0
- package/dist/ui/kit-labels.test.js.map +1 -0
- package/dist/ui/kit-type-roles.test.d.ts +2 -0
- package/dist/ui/kit-type-roles.test.d.ts.map +1 -0
- package/dist/ui/kit-type-roles.test.js +122 -0
- package/dist/ui/kit-type-roles.test.js.map +1 -0
- package/dist/ui/komet-svg.d.ts +15 -0
- package/dist/ui/komet-svg.d.ts.map +1 -0
- package/dist/ui/komet-svg.js +21 -0
- package/dist/ui/komet-svg.js.map +1 -0
- package/dist/ui/list-table.d.ts +108 -0
- package/dist/ui/list-table.d.ts.map +1 -0
- package/dist/ui/list-table.js +161 -0
- package/dist/ui/list-table.js.map +1 -0
- package/dist/ui/list-table.test.d.ts +2 -0
- package/dist/ui/list-table.test.d.ts.map +1 -0
- package/dist/ui/list-table.test.js +169 -0
- package/dist/ui/list-table.test.js.map +1 -0
- package/dist/ui/localized-app-view.d.ts +40 -0
- package/dist/ui/localized-app-view.d.ts.map +1 -0
- package/dist/ui/localized-app-view.js +71 -0
- package/dist/ui/localized-app-view.js.map +1 -0
- package/dist/ui/log-text.d.ts +24 -0
- package/dist/ui/log-text.d.ts.map +1 -0
- package/dist/ui/log-text.js +31 -0
- package/dist/ui/log-text.js.map +1 -0
- package/dist/ui/menu-item.d.ts +12 -0
- package/dist/ui/menu-item.d.ts.map +1 -0
- package/dist/ui/menu-item.js +13 -0
- package/dist/ui/menu-item.js.map +1 -0
- package/dist/ui/named-id.d.ts +23 -0
- package/dist/ui/named-id.d.ts.map +1 -0
- package/dist/ui/named-id.js +21 -0
- package/dist/ui/named-id.js.map +1 -0
- package/dist/ui/named-id.test.d.ts +2 -0
- package/dist/ui/named-id.test.d.ts.map +1 -0
- package/dist/ui/named-id.test.js +57 -0
- package/dist/ui/named-id.test.js.map +1 -0
- package/dist/ui/native-select.d.ts +17 -0
- package/dist/ui/native-select.d.ts.map +1 -0
- package/dist/ui/native-select.js +20 -0
- package/dist/ui/native-select.js.map +1 -0
- package/dist/ui/navigation-focus.d.ts +20 -0
- package/dist/ui/navigation-focus.d.ts.map +1 -0
- package/dist/ui/navigation-focus.js +25 -0
- package/dist/ui/navigation-focus.js.map +1 -0
- package/dist/ui/navigation-focus.test.d.ts +2 -0
- package/dist/ui/navigation-focus.test.d.ts.map +1 -0
- package/dist/ui/navigation-focus.test.js +28 -0
- package/dist/ui/navigation-focus.test.js.map +1 -0
- package/dist/ui/open-in-cockpit-link.d.ts +28 -0
- package/dist/ui/open-in-cockpit-link.d.ts.map +1 -0
- package/dist/ui/open-in-cockpit-link.js +41 -0
- package/dist/ui/open-in-cockpit-link.js.map +1 -0
- package/dist/ui/paged-list-footer.test.d.ts +2 -0
- package/dist/ui/paged-list-footer.test.d.ts.map +1 -0
- package/dist/ui/paged-list-footer.test.js +128 -0
- package/dist/ui/paged-list-footer.test.js.map +1 -0
- package/dist/ui/paged-rows.d.ts +24 -0
- package/dist/ui/paged-rows.d.ts.map +1 -0
- package/dist/ui/paged-rows.js +25 -0
- package/dist/ui/paged-rows.js.map +1 -0
- package/dist/ui/parse-tool-result.test.d.ts +2 -0
- package/dist/ui/parse-tool-result.test.d.ts.map +1 -0
- package/dist/ui/parse-tool-result.test.js +88 -0
- package/dist/ui/parse-tool-result.test.js.map +1 -0
- package/dist/ui/profile-gate.d.ts +37 -0
- package/dist/ui/profile-gate.d.ts.map +1 -0
- package/dist/ui/profile-gate.js +126 -0
- package/dist/ui/profile-gate.js.map +1 -0
- package/dist/ui/profile-gate.test.d.ts +2 -0
- package/dist/ui/profile-gate.test.d.ts.map +1 -0
- package/dist/ui/profile-gate.test.js +246 -0
- package/dist/ui/profile-gate.test.js.map +1 -0
- package/dist/ui/query-fallback.d.ts +27 -0
- package/dist/ui/query-fallback.d.ts.map +1 -0
- package/dist/ui/query-fallback.js +30 -0
- package/dist/ui/query-fallback.js.map +1 -0
- package/dist/ui/query-fallback.test.d.ts +2 -0
- package/dist/ui/query-fallback.test.d.ts.map +1 -0
- package/dist/ui/query-fallback.test.js +49 -0
- package/dist/ui/query-fallback.test.js.map +1 -0
- package/dist/ui/row-card.d.ts +13 -0
- package/dist/ui/row-card.d.ts.map +1 -0
- package/dist/ui/row-card.js +11 -0
- package/dist/ui/row-card.js.map +1 -0
- package/dist/ui/section.d.ts +18 -0
- package/dist/ui/section.d.ts.map +1 -0
- package/dist/ui/section.js +14 -0
- package/dist/ui/section.js.map +1 -0
- package/dist/ui/segmented-control.d.ts +25 -0
- package/dist/ui/segmented-control.d.ts.map +1 -0
- package/dist/ui/segmented-control.js +22 -0
- package/dist/ui/segmented-control.js.map +1 -0
- package/dist/ui/settings-labels.d.ts +33 -0
- package/dist/ui/settings-labels.d.ts.map +1 -0
- package/dist/ui/settings-labels.js +50 -0
- package/dist/ui/settings-labels.js.map +1 -0
- package/dist/ui/settings-layout.d.ts +29 -0
- package/dist/ui/settings-layout.d.ts.map +1 -0
- package/dist/ui/settings-layout.js +49 -0
- package/dist/ui/settings-layout.js.map +1 -0
- package/dist/ui/settings-layout.test.d.ts +2 -0
- package/dist/ui/settings-layout.test.d.ts.map +1 -0
- package/dist/ui/settings-layout.test.js +73 -0
- package/dist/ui/settings-layout.test.js.map +1 -0
- package/dist/ui/settings.d.ts +47 -0
- package/dist/ui/settings.d.ts.map +1 -0
- package/dist/ui/settings.js +48 -0
- package/dist/ui/settings.js.map +1 -0
- package/dist/ui/settings.test.d.ts +2 -0
- package/dist/ui/settings.test.d.ts.map +1 -0
- package/dist/ui/settings.test.js +38 -0
- package/dist/ui/settings.test.js.map +1 -0
- package/dist/ui/shell-host.d.ts +46 -0
- package/dist/ui/shell-host.d.ts.map +1 -0
- package/dist/ui/shell-host.js +56 -0
- package/dist/ui/shell-host.js.map +1 -0
- package/dist/ui/shell-settings.d.ts +31 -0
- package/dist/ui/shell-settings.d.ts.map +1 -0
- package/dist/ui/shell-settings.js +97 -0
- package/dist/ui/shell-settings.js.map +1 -0
- package/dist/ui/shell-settings.test.d.ts +2 -0
- package/dist/ui/shell-settings.test.d.ts.map +1 -0
- package/dist/ui/shell-settings.test.js +108 -0
- package/dist/ui/shell-settings.test.js.map +1 -0
- package/dist/ui/shell-widgets.d.ts +14 -0
- package/dist/ui/shell-widgets.d.ts.map +1 -0
- package/dist/ui/shell-widgets.js +18 -0
- package/dist/ui/shell-widgets.js.map +1 -0
- package/dist/ui/table.d.ts +61 -0
- package/dist/ui/table.d.ts.map +1 -0
- package/dist/ui/table.js +43 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/tone-components.test.d.ts +2 -0
- package/dist/ui/tone-components.test.d.ts.map +1 -0
- package/dist/ui/tone-components.test.js +145 -0
- package/dist/ui/tone-components.test.js.map +1 -0
- package/dist/ui/tone-contrast.test.d.ts +2 -0
- package/dist/ui/tone-contrast.test.d.ts.map +1 -0
- package/dist/ui/tone-contrast.test.js +66 -0
- package/dist/ui/tone-contrast.test.js.map +1 -0
- package/dist/ui/toolkit-overlap.test.d.ts +2 -0
- package/dist/ui/toolkit-overlap.test.d.ts.map +1 -0
- package/dist/ui/toolkit-overlap.test.js +86 -0
- package/dist/ui/toolkit-overlap.test.js.map +1 -0
- package/dist/ui/use-apply-theme.d.ts +11 -0
- package/dist/ui/use-apply-theme.d.ts.map +1 -0
- package/dist/ui/use-apply-theme.js +37 -0
- package/dist/ui/use-apply-theme.js.map +1 -0
- package/dist/ui/use-apply-theme.test.d.ts +2 -0
- package/dist/ui/use-apply-theme.test.d.ts.map +1 -0
- package/dist/ui/use-apply-theme.test.js +102 -0
- package/dist/ui/use-apply-theme.test.js.map +1 -0
- package/dist/ui/use-bpmn-viewer.d.ts +135 -0
- package/dist/ui/use-bpmn-viewer.d.ts.map +1 -0
- package/dist/ui/use-bpmn-viewer.js +257 -0
- package/dist/ui/use-bpmn-viewer.js.map +1 -0
- package/dist/ui/use-bpmn-viewer.test.d.ts +2 -0
- package/dist/ui/use-bpmn-viewer.test.d.ts.map +1 -0
- package/dist/ui/use-bpmn-viewer.test.js +239 -0
- package/dist/ui/use-bpmn-viewer.test.js.map +1 -0
- package/dist/ui/use-detail-view.d.ts +49 -0
- package/dist/ui/use-detail-view.d.ts.map +1 -0
- package/dist/ui/use-detail-view.js +52 -0
- package/dist/ui/use-detail-view.js.map +1 -0
- package/dist/ui/use-detail-view.test.d.ts +2 -0
- package/dist/ui/use-detail-view.test.d.ts.map +1 -0
- package/dist/ui/use-detail-view.test.js +178 -0
- package/dist/ui/use-detail-view.test.js.map +1 -0
- package/dist/ui/use-paged-list-view.d.ts +48 -0
- package/dist/ui/use-paged-list-view.d.ts.map +1 -0
- package/dist/ui/use-paged-list-view.js +41 -0
- package/dist/ui/use-paged-list-view.js.map +1 -0
- package/dist/ui/use-paged-list-view.test.d.ts +2 -0
- package/dist/ui/use-paged-list-view.test.d.ts.map +1 -0
- package/dist/ui/use-paged-list-view.test.js +136 -0
- package/dist/ui/use-paged-list-view.test.js.map +1 -0
- package/dist/ui/use-paged-view-data.d.ts +103 -0
- package/dist/ui/use-paged-view-data.d.ts.map +1 -0
- package/dist/ui/use-paged-view-data.js +173 -0
- package/dist/ui/use-paged-view-data.js.map +1 -0
- package/dist/ui/use-paged-view-data.seeded.test.d.ts +2 -0
- package/dist/ui/use-paged-view-data.seeded.test.d.ts.map +1 -0
- package/dist/ui/use-paged-view-data.seeded.test.js +144 -0
- package/dist/ui/use-paged-view-data.seeded.test.js.map +1 -0
- package/dist/ui/use-paged-view-data.test.d.ts +2 -0
- package/dist/ui/use-paged-view-data.test.d.ts.map +1 -0
- package/dist/ui/use-paged-view-data.test.js +330 -0
- package/dist/ui/use-paged-view-data.test.js.map +1 -0
- package/dist/ui/use-reset-on-change.d.ts +22 -0
- package/dist/ui/use-reset-on-change.d.ts.map +1 -0
- package/dist/ui/use-reset-on-change.js +29 -0
- package/dist/ui/use-reset-on-change.js.map +1 -0
- package/dist/ui/use-reset-on-change.test.d.ts +2 -0
- package/dist/ui/use-reset-on-change.test.d.ts.map +1 -0
- package/dist/ui/use-reset-on-change.test.js +61 -0
- package/dist/ui/use-reset-on-change.test.js.map +1 -0
- package/dist/ui/use-view-data.seeded.test.d.ts +2 -0
- package/dist/ui/use-view-data.seeded.test.d.ts.map +1 -0
- package/dist/ui/use-view-data.seeded.test.js +168 -0
- package/dist/ui/use-view-data.seeded.test.js.map +1 -0
- package/dist/ui/view-data-state.d.ts +52 -0
- package/dist/ui/view-data-state.d.ts.map +1 -0
- package/dist/ui/view-data-state.js +54 -0
- package/dist/ui/view-data-state.js.map +1 -0
- package/dist/ui/view-data-state.test.d.ts +2 -0
- package/dist/ui/view-data-state.test.d.ts.map +1 -0
- package/dist/ui/view-data-state.test.js +62 -0
- package/dist/ui/view-data-state.test.js.map +1 -0
- package/dist/ui/view-meta.d.ts +70 -0
- package/dist/ui/view-meta.d.ts.map +1 -0
- package/dist/ui/view-meta.js +84 -0
- package/dist/ui/view-meta.js.map +1 -0
- package/dist/ui/view-meta.test.d.ts +2 -0
- package/dist/ui/view-meta.test.d.ts.map +1 -0
- package/dist/ui/view-meta.test.js +92 -0
- package/dist/ui/view-meta.test.js.map +1 -0
- package/dist/ui/view-refresh-state.d.ts +26 -0
- package/dist/ui/view-refresh-state.d.ts.map +1 -0
- package/dist/ui/view-refresh-state.js +15 -0
- package/dist/ui/view-refresh-state.js.map +1 -0
- package/dist/ui/widget-shell.d.ts +24 -0
- package/dist/ui/widget-shell.d.ts.map +1 -0
- package/dist/ui/widget-shell.js +50 -0
- package/dist/ui/widget-shell.js.map +1 -0
- package/dist/ui/widget-shell.test.d.ts +2 -0
- package/dist/ui/widget-shell.test.d.ts.map +1 -0
- package/dist/ui/widget-shell.test.js +41 -0
- package/dist/ui/widget-shell.test.js.map +1 -0
- package/dist/view-results.d.ts +42 -0
- package/dist/view-results.d.ts.map +1 -0
- package/dist/view-results.js +17 -0
- package/dist/view-results.js.map +1 -0
- package/dist/widget-meta-defaults.d.ts +48 -0
- package/dist/widget-meta-defaults.d.ts.map +1 -0
- package/dist/widget-meta-defaults.js +80 -0
- package/dist/widget-meta-defaults.js.map +1 -0
- package/dist/widget-meta-defaults.test.d.ts +2 -0
- package/dist/widget-meta-defaults.test.d.ts.map +1 -0
- package/dist/widget-meta-defaults.test.js +196 -0
- package/dist/widget-meta-defaults.test.js.map +1 -0
- package/dist/widget-tool-bindings.d.ts +71 -0
- package/dist/widget-tool-bindings.d.ts.map +1 -0
- package/dist/widget-tool-bindings.js +80 -0
- package/dist/widget-tool-bindings.js.map +1 -0
- package/dist/widget-tool-bindings.test.d.ts +2 -0
- package/dist/widget-tool-bindings.test.d.ts.map +1 -0
- package/dist/widget-tool-bindings.test.js +83 -0
- package/dist/widget-tool-bindings.test.js.map +1 -0
- package/dist/with-tool-errors.test.d.ts +2 -0
- package/dist/with-tool-errors.test.d.ts.map +1 -0
- package/dist/with-tool-errors.test.js +38 -0
- package/dist/with-tool-errors.test.js.map +1 -0
- package/package.json +113 -5
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shared skeleton of every module's toolset vocabulary: a declared name
|
|
3
|
+
* list, a typed guard, and the ONE fail-closed rule for the
|
|
4
|
+
* `MCP_ACTIVE_MODULES=<module>:<toolset>` suffix:
|
|
5
|
+
*
|
|
6
|
+
* - no suffix → the auth-dependent DEFAULT: the module's most restrictive
|
|
7
|
+
* toolset (the fallback) on an unauthenticated boot, its standard non-admin
|
|
8
|
+
* toolset (`authenticatedDefault`) when the root installed OAuth;
|
|
9
|
+
* - an empty or unknown suffix → warns and degrades to the fallback: a suffix
|
|
10
|
+
* always meant to restrict, so restricting harder is the only safe reading;
|
|
11
|
+
* - a known name → itself.
|
|
12
|
+
*
|
|
13
|
+
* Nothing ever resolves to "everything": a module's widest toolset (e.g.
|
|
14
|
+
* camunda7's `admin`) is reachable only by naming it.
|
|
15
|
+
*
|
|
16
|
+
* The vocabulary itself (which names exist, what each one filters) stays
|
|
17
|
+
* module-owned: peers own their names, only the semantics are shared. A module
|
|
18
|
+
* builds its filter/durable-write decisions on top of `resolve` — never on an
|
|
19
|
+
* ad-hoc `toolset === "read-only"` compare, which fails open for every other
|
|
20
|
+
* name without the warning.
|
|
21
|
+
*/
|
|
22
|
+
export interface ToolsetVocabulary<T extends string> {
|
|
23
|
+
/** The owning module's name — the prefix of every warning. */
|
|
24
|
+
module: string;
|
|
25
|
+
names: readonly T[];
|
|
26
|
+
/**
|
|
27
|
+
* The most restrictive toolset — the module's READ-ONLY FLOOR: it permits no
|
|
28
|
+
* durable write. Empty/unknown suffixes, unauthenticated boots and direct
|
|
29
|
+
* callers that pass no toolset all land here.
|
|
30
|
+
*/
|
|
31
|
+
fallback: T;
|
|
32
|
+
/** The no-suffix default under OAuth — the module's standard non-admin toolset. */
|
|
33
|
+
authenticatedDefault: T;
|
|
34
|
+
isKnown(value: string): value is T;
|
|
35
|
+
/**
|
|
36
|
+
* Normalize a configured toolset on the MODULE side: a known name resolves to
|
|
37
|
+
* itself, an unknown one warns and resolves to the fallback, and a missing one
|
|
38
|
+
* resolves to the fallback silently. The composition root hands every module
|
|
39
|
+
* a concrete name ({@link ToolsetVocabulary.effective}), so a missing toolset
|
|
40
|
+
* only reaches here from a direct `createPlugin` caller — which therefore
|
|
41
|
+
* gets the floor, never everything.
|
|
42
|
+
*/
|
|
43
|
+
resolve(toolset: string | undefined): T;
|
|
44
|
+
/**
|
|
45
|
+
* The COMPOSITION side: the toolset a module runs with, given its
|
|
46
|
+
* `module:toolset` suffix (`undefined` = no suffix, `""` = present but empty)
|
|
47
|
+
* and whether the root installed OAuth. Warns on an empty or unknown suffix.
|
|
48
|
+
*/
|
|
49
|
+
effective(suffix: string | undefined, options: {
|
|
50
|
+
authenticated: boolean;
|
|
51
|
+
}): EffectiveSelection<T>;
|
|
52
|
+
/** Whether the toolset permits durable writes — every toolset above the read-only floor. */
|
|
53
|
+
allowsDurableWrites(toolset: T): boolean;
|
|
54
|
+
}
|
|
55
|
+
/** Where an effective toolset came from — the reason the boot log names. */
|
|
56
|
+
export type ToolsetSource = "suffix" | "default" | "fallback";
|
|
57
|
+
export interface EffectiveSelection<T extends string> {
|
|
58
|
+
toolset: T;
|
|
59
|
+
source: ToolsetSource;
|
|
60
|
+
}
|
|
61
|
+
export declare function createToolsetVocabulary<T extends string>(moduleName: string, names: readonly T[],
|
|
62
|
+
/**
|
|
63
|
+
* The module's most restrictive toolset — the read-only floor (no durable
|
|
64
|
+
* writes). A `<module>:<toolset>` suffix is always an attempt to restrict, so
|
|
65
|
+
* a typo must never grant more than the strictest set it could have meant,
|
|
66
|
+
* and an unauthenticated boot without a suffix gets exactly this.
|
|
67
|
+
*/
|
|
68
|
+
fallback: NoInfer<T>, options?: {
|
|
69
|
+
/**
|
|
70
|
+
* The no-suffix default when the root installed OAuth — the module's
|
|
71
|
+
* standard non-admin toolset. Omitted = the fallback (a module whose only
|
|
72
|
+
* toolset is its floor).
|
|
73
|
+
*/
|
|
74
|
+
authenticatedDefault?: NoInfer<T>;
|
|
75
|
+
}): ToolsetVocabulary<T>;
|
|
76
|
+
//# sourceMappingURL=toolsets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolsets.d.ts","sourceRoot":"","sources":["../src/toolsets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM;IACjD,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,SAAS,CAAC,EAAE,CAAA;IACnB;;;;OAIG;IACH,QAAQ,EAAE,CAAC,CAAA;IACX,mFAAmF;IACnF,oBAAoB,EAAE,CAAC,CAAA;IACvB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,CAAC,CAAA;IAClC;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,CAAC,CAAA;IACvC;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE;QAAE,aAAa,EAAE,OAAO,CAAA;KAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAA;IACjG,4FAA4F;IAC5F,mBAAmB,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAA;CACzC;AAED,4EAA4E;AAC5E,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAA;AAE7D,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,MAAM;IAClD,OAAO,EAAE,CAAC,CAAA;IACV,MAAM,EAAE,aAAa,CAAA;CACtB;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACtD,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,SAAS,CAAC,EAAE;AACnB;;;;;GAKG;AACH,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE;IACP;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CAC7B,GACL,iBAAiB,CAAC,CAAC,CAAC,CAgCtB"}
|
package/dist/toolsets.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export function createToolsetVocabulary(moduleName, names,
|
|
2
|
+
/**
|
|
3
|
+
* The module's most restrictive toolset — the read-only floor (no durable
|
|
4
|
+
* writes). A `<module>:<toolset>` suffix is always an attempt to restrict, so
|
|
5
|
+
* a typo must never grant more than the strictest set it could have meant,
|
|
6
|
+
* and an unauthenticated boot without a suffix gets exactly this.
|
|
7
|
+
*/
|
|
8
|
+
fallback, options = {}) {
|
|
9
|
+
const { authenticatedDefault = fallback } = options;
|
|
10
|
+
const isKnown = (value) => names.includes(value);
|
|
11
|
+
const degrade = (reason) => {
|
|
12
|
+
console.warn(`[${moduleName}] ${reason} — falling back to "${fallback}". Known toolsets: ${names.join(", ")}`);
|
|
13
|
+
return fallback;
|
|
14
|
+
};
|
|
15
|
+
return {
|
|
16
|
+
module: moduleName,
|
|
17
|
+
names,
|
|
18
|
+
fallback,
|
|
19
|
+
authenticatedDefault,
|
|
20
|
+
isKnown,
|
|
21
|
+
resolve(toolset) {
|
|
22
|
+
if (toolset === undefined)
|
|
23
|
+
return fallback;
|
|
24
|
+
return isKnown(toolset) ? toolset : degrade(`Unknown toolset "${toolset}"`);
|
|
25
|
+
},
|
|
26
|
+
effective(suffix, { authenticated }) {
|
|
27
|
+
if (suffix === undefined) {
|
|
28
|
+
return { toolset: authenticated ? authenticatedDefault : fallback, source: "default" };
|
|
29
|
+
}
|
|
30
|
+
const name = suffix.trim();
|
|
31
|
+
if (isKnown(name))
|
|
32
|
+
return { toolset: name, source: "suffix" };
|
|
33
|
+
const reason = name === "" ? "Empty toolset suffix" : `Unknown toolset "${name}"`;
|
|
34
|
+
return { toolset: degrade(reason), source: "fallback" };
|
|
35
|
+
},
|
|
36
|
+
allowsDurableWrites(toolset) {
|
|
37
|
+
return toolset !== fallback;
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=toolsets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolsets.js","sourceRoot":"","sources":["../src/toolsets.ts"],"names":[],"mappings":"AA6DA,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,KAAmB;AACnB;;;;;GAKG;AACH,QAAoB,EACpB,UAOI,EAAE;IAEN,MAAM,EAAE,oBAAoB,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAA;IACnD,MAAM,OAAO,GAAG,CAAC,KAAa,EAAc,EAAE,CAAE,KAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3F,MAAM,OAAO,GAAG,CAAC,MAAc,EAAK,EAAE;QACpC,OAAO,CAAC,IAAI,CACV,IAAI,UAAU,KAAK,MAAM,uBAAuB,QAAQ,sBAAsB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjG,CAAA;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAA;IACD,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,KAAK;QACL,QAAQ;QACR,oBAAoB;QACpB,OAAO;QACP,OAAO,CAAC,OAAO;YACb,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,QAAQ,CAAA;YAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,OAAO,GAAG,CAAC,CAAA;QAC7E,CAAC;QACD,SAAS,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE;YACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;YACxF,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;YAC1B,IAAI,OAAO,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;YAC7D,MAAM,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,oBAAoB,IAAI,GAAG,CAAA;YACjF,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;QACzD,CAAC;QACD,mBAAmB,CAAC,OAAO;YACzB,OAAO,OAAO,KAAK,QAAQ,CAAA;QAC7B,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolsets.test.d.ts","sourceRoot":"","sources":["../src/toolsets.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { createToolsetVocabulary } from "./toolsets.js";
|
|
3
|
+
const NAMES = ["read-only", "operations", "admin"];
|
|
4
|
+
const vocab = () => createToolsetVocabulary("mymodule", NAMES, "read-only", { authenticatedDefault: "operations" });
|
|
5
|
+
afterEach(() => {
|
|
6
|
+
vi.restoreAllMocks();
|
|
7
|
+
});
|
|
8
|
+
describe("createToolsetVocabulary", () => {
|
|
9
|
+
it("recognizes declared names and exposes the policy", () => {
|
|
10
|
+
const v = vocab();
|
|
11
|
+
expect(v.module).toBe("mymodule");
|
|
12
|
+
expect(v.names).toEqual(NAMES);
|
|
13
|
+
expect(v.fallback).toBe("read-only");
|
|
14
|
+
expect(v.authenticatedDefault).toBe("operations");
|
|
15
|
+
expect(v.isKnown("read-only")).toBe(true);
|
|
16
|
+
expect(v.isKnown("nope")).toBe(false);
|
|
17
|
+
expect(v.resolve("operations")).toBe("operations");
|
|
18
|
+
});
|
|
19
|
+
it("defaults the authenticated default to the fallback", () => {
|
|
20
|
+
const v = createToolsetVocabulary("solo", ["read-only"], "read-only");
|
|
21
|
+
expect(v.authenticatedDefault).toBe("read-only");
|
|
22
|
+
expect(v.effective(undefined, { authenticated: true })).toEqual({
|
|
23
|
+
toolset: "read-only",
|
|
24
|
+
source: "default",
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
describe("resolve (module side)", () => {
|
|
28
|
+
it("resolves a missing toolset to the floor, silently — never to everything", () => {
|
|
29
|
+
const warn = vi.spyOn(console, "warn").mockImplementation(() => { });
|
|
30
|
+
expect(vocab().resolve(undefined)).toBe("read-only");
|
|
31
|
+
expect(warn).not.toHaveBeenCalled();
|
|
32
|
+
});
|
|
33
|
+
it("fails CLOSED on unknown names — degrades to the fallback toolset, loudly", () => {
|
|
34
|
+
const warn = vi.spyOn(console, "warn").mockImplementation(() => { });
|
|
35
|
+
expect(vocab().resolve("does-not-exist")).toBe("read-only");
|
|
36
|
+
expect(warn).toHaveBeenCalledTimes(1);
|
|
37
|
+
expect(warn).toHaveBeenCalledWith('[mymodule] Unknown toolset "does-not-exist" — falling back to "read-only". ' +
|
|
38
|
+
"Known toolsets: read-only, operations, admin");
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
describe("effective (composition side)", () => {
|
|
42
|
+
it("applies the auth-dependent default when there is no suffix — never admin", () => {
|
|
43
|
+
const warn = vi.spyOn(console, "warn").mockImplementation(() => { });
|
|
44
|
+
expect(vocab().effective(undefined, { authenticated: false })).toEqual({
|
|
45
|
+
toolset: "read-only",
|
|
46
|
+
source: "default",
|
|
47
|
+
});
|
|
48
|
+
expect(vocab().effective(undefined, { authenticated: true })).toEqual({
|
|
49
|
+
toolset: "operations",
|
|
50
|
+
source: "default",
|
|
51
|
+
});
|
|
52
|
+
expect(warn).not.toHaveBeenCalled();
|
|
53
|
+
});
|
|
54
|
+
it("honors a known suffix (trimmed) in both auth modes", () => {
|
|
55
|
+
for (const authenticated of [false, true]) {
|
|
56
|
+
expect(vocab().effective(" admin ", { authenticated })).toEqual({
|
|
57
|
+
toolset: "admin",
|
|
58
|
+
source: "suffix",
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
it.each([
|
|
63
|
+
["", "Empty toolset suffix"],
|
|
64
|
+
[" ", "Empty toolset suffix"],
|
|
65
|
+
["typo", 'Unknown toolset "typo"'],
|
|
66
|
+
["admin:read-only", 'Unknown toolset "admin:read-only"'],
|
|
67
|
+
])("fails closed on suffix %j — the floor even under OAuth, with one warning", (suffix, why) => {
|
|
68
|
+
const warn = vi.spyOn(console, "warn").mockImplementation(() => { });
|
|
69
|
+
for (const authenticated of [false, true]) {
|
|
70
|
+
expect(vocab().effective(suffix, { authenticated })).toEqual({
|
|
71
|
+
toolset: "read-only",
|
|
72
|
+
source: "fallback",
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
expect(warn).toHaveBeenCalledTimes(2);
|
|
76
|
+
expect(warn).toHaveBeenCalledWith(`[mymodule] ${why} — falling back to "read-only". Known toolsets: read-only, operations, admin`);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
it("permits durable writes on every toolset above the read-only floor", () => {
|
|
80
|
+
const v = vocab();
|
|
81
|
+
expect(v.allowsDurableWrites("read-only")).toBe(false);
|
|
82
|
+
expect(v.allowsDurableWrites("operations")).toBe(true);
|
|
83
|
+
expect(v.allowsDurableWrites("admin")).toBe(true);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=toolsets.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolsets.test.js","sourceRoot":"","sources":["../src/toolsets.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** What a write says when it is done — the toolkit's toasts, never a silent row change. */
|
|
2
|
+
export interface ActionFeedback {
|
|
3
|
+
/**
|
|
4
|
+
* The write worked: a success toast whose title names the object
|
|
5
|
+
* ("Job für LEA-2026-00424 neu eingeplant", "Einstellungen gespeichert").
|
|
6
|
+
*/
|
|
7
|
+
succeeded: (title: string, description?: string) => void;
|
|
8
|
+
/**
|
|
9
|
+
* The write failed: a danger toast (5 s) whose title names the object
|
|
10
|
+
* ("Job für LEA-2026-00424 konnte nicht neu eingeplant werden") and whose
|
|
11
|
+
* second line says why and what you can do ({@link failureLine}).
|
|
12
|
+
*/
|
|
13
|
+
failed: (title: string, error: unknown) => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The toast's second line for a failed write: what happened in words
|
|
17
|
+
* ({@link describeError}), then the next step. A toast has no "Details", so
|
|
18
|
+
* the line carries what an `ErrorState` keeps there: an engine refusal quotes
|
|
19
|
+
* the engine's own reason, without its status code ("Die Engine prod meldet
|
|
20
|
+
* einen Fehler (HTTP 500): „Cannot resolve incident“."), and a write whose
|
|
21
|
+
* answer never came says it may have gone through, so you check before you
|
|
22
|
+
* retry instead of applying it twice.
|
|
23
|
+
*/
|
|
24
|
+
export declare function failureLine(error: unknown, locale: string | undefined): string;
|
|
25
|
+
/**
|
|
26
|
+
* Feedback for a write (CI §9: success and failure each a toast, never only
|
|
27
|
+
* a console line). The toasts are the toolkit's (`McpAppView` mounts their
|
|
28
|
+
* provider, a polite live region bottom centre): announced to screen readers,
|
|
29
|
+
* held while hovered or focused. Outside a provider (a bare fixture) the
|
|
30
|
+
* calls are no-ops.
|
|
31
|
+
*/
|
|
32
|
+
export declare function useActionFeedback(): ActionFeedback;
|
|
33
|
+
//# sourceMappingURL=action-feedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-feedback.d.ts","sourceRoot":"","sources":["../../src/ui/action-feedback.ts"],"names":[],"mappings":"AAMA,2FAA2F;AAC3F,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACxD;;;;OAIG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAChD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAU9E;AAOD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAclD"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
import { useLocale, useToast } from "@miragon/mcp-toolkit-ui";
|
|
3
|
+
import { classifyError, describeError } from "./describe-error.js";
|
|
4
|
+
import { ERROR_LABELS } from "./error-labels.js";
|
|
5
|
+
import { supportedLanguage } from "./host-context.js";
|
|
6
|
+
/**
|
|
7
|
+
* The toast's second line for a failed write: what happened in words
|
|
8
|
+
* ({@link describeError}), then the next step. A toast has no "Details", so
|
|
9
|
+
* the line carries what an `ErrorState` keeps there: an engine refusal quotes
|
|
10
|
+
* the engine's own reason, without its status code ("Die Engine prod meldet
|
|
11
|
+
* einen Fehler (HTTP 500): „Cannot resolve incident“."), and a write whose
|
|
12
|
+
* answer never came says it may have gone through, so you check before you
|
|
13
|
+
* retry instead of applying it twice.
|
|
14
|
+
*/
|
|
15
|
+
export function failureLine(error, locale) {
|
|
16
|
+
const described = describeError(error, locale);
|
|
17
|
+
const facts = classifyError(error);
|
|
18
|
+
const toast = ERROR_LABELS[supportedLanguage(locale) ?? "en"].toast;
|
|
19
|
+
const happened = described.kind === "unknown" ? "" : `${described.title}. `;
|
|
20
|
+
if (facts.mayHaveApplied)
|
|
21
|
+
return `${happened}${toast.mayHaveApplied()}`;
|
|
22
|
+
if (described.kind !== "failed")
|
|
23
|
+
return `${happened}${described.hint}`;
|
|
24
|
+
if (!facts.reason)
|
|
25
|
+
return `${happened}${toast.failedHint()}`;
|
|
26
|
+
const reason = clip(facts.reason);
|
|
27
|
+
return `${toast.reason({ title: described.title, reason })} ${toast.failedHint()}`;
|
|
28
|
+
}
|
|
29
|
+
/** A toast line stays readable: a long engine text (a stack trace's head) is cut. */
|
|
30
|
+
const MAX_TOAST_REASON = 200;
|
|
31
|
+
const clip = (text) => text.length > MAX_TOAST_REASON ? `${text.slice(0, MAX_TOAST_REASON).trimEnd()}…` : text;
|
|
32
|
+
/**
|
|
33
|
+
* Feedback for a write (CI §9: success and failure each a toast, never only
|
|
34
|
+
* a console line). The toasts are the toolkit's (`McpAppView` mounts their
|
|
35
|
+
* provider, a polite live region bottom centre): announced to screen readers,
|
|
36
|
+
* held while hovered or focused. Outside a provider (a bare fixture) the
|
|
37
|
+
* calls are no-ops.
|
|
38
|
+
*/
|
|
39
|
+
export function useActionFeedback() {
|
|
40
|
+
const toast = useToast();
|
|
41
|
+
const locale = useLocale();
|
|
42
|
+
return useMemo(() => ({
|
|
43
|
+
succeeded: (title, description) => {
|
|
44
|
+
toast.show({ tone: "success", title, ...(description ? { description } : {}) });
|
|
45
|
+
},
|
|
46
|
+
failed: (title, error) => {
|
|
47
|
+
toast.show({ tone: "danger", title, description: failureLine(error, locale) });
|
|
48
|
+
},
|
|
49
|
+
}), [toast, locale]);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=action-feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-feedback.js","sourceRoot":"","sources":["../../src/ui/action-feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAiBrD;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,MAA0B;IACpE,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAClC,MAAM,KAAK,GAAG,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAA;IACnE,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,IAAI,CAAA;IAC3E,IAAI,KAAK,CAAC,cAAc;QAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,cAAc,EAAE,EAAE,CAAA;IACvE,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;IACtE,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,UAAU,EAAE,EAAE,CAAA;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACjC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE,CAAA;AACpF,CAAC;AAED,qFAAqF;AACrF,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAC5B,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAC5B,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AAEzF;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YAChC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACjF,CAAC;QACD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACvB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QAChF,CAAC;KACF,CAAC,EACF,CAAC,KAAK,EAAE,MAAM,CAAC,CAChB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-feedback.test.d.ts","sourceRoot":"","sources":["../../src/ui/action-feedback.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// @vitest-environment happy-dom
|
|
3
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
4
|
+
import { act, cleanup, renderHook, screen } from "@testing-library/react";
|
|
5
|
+
import { LocaleProvider, ToastProvider } from "@miragon/mcp-toolkit-ui";
|
|
6
|
+
import { failureLine, useActionFeedback } from "./action-feedback.js";
|
|
7
|
+
afterEach(cleanup);
|
|
8
|
+
/** The hook under a locale and a toast stack; the toasts render into the document. */
|
|
9
|
+
function renderIn(locale) {
|
|
10
|
+
const wrapper = ({ children }) => (_jsx(LocaleProvider, { locale: locale, children: _jsx(ToastProvider, { children: children }) }));
|
|
11
|
+
return renderHook(() => useActionFeedback(), { wrapper }).result.current;
|
|
12
|
+
}
|
|
13
|
+
const toastOf = (text) => screen.getByText(text).closest('[data-slot="toast"]');
|
|
14
|
+
describe("useActionFeedback (U9: a write is never silent)", () => {
|
|
15
|
+
it("confirms a success with a success toast naming the object", () => {
|
|
16
|
+
const feedback = renderIn("de");
|
|
17
|
+
act(() => feedback.succeeded("Job für LEA-2026-00424 neu eingeplant"));
|
|
18
|
+
expect(toastOf("Job für LEA-2026-00424 neu eingeplant")?.getAttribute("data-tone")).toBe("success");
|
|
19
|
+
});
|
|
20
|
+
it("passes a success's second line on", () => {
|
|
21
|
+
const feedback = renderIn("en");
|
|
22
|
+
act(() => feedback.succeeded("Settings saved", "They apply to every view."));
|
|
23
|
+
expect(screen.getByText("They apply to every view.")).toBeTruthy();
|
|
24
|
+
});
|
|
25
|
+
it("reports a failure as a danger toast: the object, then why and what to do — not the raw text", () => {
|
|
26
|
+
const feedback = renderIn("de");
|
|
27
|
+
act(() => feedback.failed("Job für LEA-2026-00424 konnte nicht neu eingeplant werden", new Error("[503 ProcessEngineException] down (engine prod)")));
|
|
28
|
+
const toast = toastOf("Job für LEA-2026-00424 konnte nicht neu eingeplant werden");
|
|
29
|
+
expect(toast?.getAttribute("data-tone")).toBe("danger");
|
|
30
|
+
expect(toast?.textContent).toContain("Die Engine prod ist nicht erreichbar (HTTP 503). Prüf, ob die Engine läuft, oder wähl eine andere Engine.");
|
|
31
|
+
expect(toast?.textContent).not.toContain("ProcessEngineException");
|
|
32
|
+
});
|
|
33
|
+
it("carries an engine refusal's reason in the toast itself (U9: no Details there)", () => {
|
|
34
|
+
const feedback = renderIn("en");
|
|
35
|
+
act(() => feedback.failed("Couldn't retry the job for LEA-1", new Error("[500 ProcessEngineException] Job is already finished (engine prod)")));
|
|
36
|
+
const toast = toastOf("Couldn't retry the job for LEA-1");
|
|
37
|
+
expect(toast?.textContent).toContain("“Job is already finished”");
|
|
38
|
+
expect(toast?.textContent).not.toContain("Details");
|
|
39
|
+
});
|
|
40
|
+
it("announces through the toolkit's polite live region", () => {
|
|
41
|
+
const feedback = renderIn("en");
|
|
42
|
+
act(() => feedback.succeeded("Saved"));
|
|
43
|
+
const viewport = document.querySelector('[data-slot="toast-viewport"]');
|
|
44
|
+
expect(viewport?.getAttribute("aria-live")).toBe("polite");
|
|
45
|
+
expect(viewport?.textContent).toContain("Saved");
|
|
46
|
+
});
|
|
47
|
+
it("is a no-op outside a toast provider (a bare fixture never crashes)", () => {
|
|
48
|
+
const { result } = renderHook(() => useActionFeedback());
|
|
49
|
+
expect(() => result.current.succeeded("x")).not.toThrow();
|
|
50
|
+
expect(() => result.current.failed("x", new Error("y"))).not.toThrow();
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
describe("failureLine", () => {
|
|
54
|
+
it("is the reason and the next step for a known kind, the next step alone otherwise", () => {
|
|
55
|
+
expect(failureLine(new Error("engine p unreachable (ECONNREFUSED)"), "en")).toBe("Engine p is unreachable. Check that the engine is running, or pick another engine.");
|
|
56
|
+
expect(failureLine(new Error("odd"), "en")).toBe("Try again. If it fails again, ask in the chat.");
|
|
57
|
+
});
|
|
58
|
+
it("quotes an engine refusal's own reason — a toast has no Details to point to", () => {
|
|
59
|
+
const de = failureLine(new Error("[500 ProcessEngineException] Cannot resolve incident (engine prod)"), "de");
|
|
60
|
+
expect(de).toBe("Die Engine prod meldet einen Fehler (HTTP 500): „Cannot resolve incident“. Versuch es noch mal oder frag im Chat nach.");
|
|
61
|
+
const en = failureLine(new Error("[400 InvalidRequestException] Cannot complete task t-1: variable amount is missing. (engine prod)"), "en");
|
|
62
|
+
expect(en).toBe("Engine prod reported an error (HTTP 400): “Cannot complete task t-1: variable amount is missing”. Try again, or ask in the chat.");
|
|
63
|
+
for (const line of [de, en])
|
|
64
|
+
expect(line).not.toMatch(/Details|ProcessEngineException|\[/);
|
|
65
|
+
});
|
|
66
|
+
it("keeps the next step when the refusal carries no words, and cuts a long one", () => {
|
|
67
|
+
expect(failureLine(new Error("[500] (engine prod)"), "en")).toBe("Engine prod reported an error (HTTP 500). Try again, or ask in the chat.");
|
|
68
|
+
const long = failureLine(new Error(`[500 X] ${"word ".repeat(80)}`), "en");
|
|
69
|
+
expect(long).toContain("…”.");
|
|
70
|
+
expect(long.length).toBeLessThan(300);
|
|
71
|
+
});
|
|
72
|
+
it("says a write whose answer never came may have gone through — no blind retry", () => {
|
|
73
|
+
expect(failureLine(new Error("engine prod did not respond within 30000 ms (timeout) — the POST may still have been applied; check the current state before retrying"), "de")).toBe("Die Engine prod antwortet nicht rechtzeitig. Vielleicht hat es trotzdem geklappt. Prüf den aktuellen Stand, bevor du es noch mal versuchst.");
|
|
74
|
+
expect(failureLine(new Error("connection to engine prod failed (UND_ERR_SOCKET) — the PUT may still have been applied; check the current state before retrying"), "en")).toBe("Engine prod is unreachable. It may have worked anyway. Check the current state before you try again.");
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=action-feedback.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-feedback.test.js","sourceRoot":"","sources":["../../src/ui/action-feedback.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import { type WidgetComponent } from "@miragon/mcp-toolkit-ui/app";
|
|
3
|
+
export interface AppShellProvidersProps {
|
|
4
|
+
/** The host bundle map — also provided to composed views via HostWidgetsProvider. */
|
|
5
|
+
widgets: Record<string, WidgetComponent>;
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The provider stack every composed-server host mounts under `bootstrapView`:
|
|
10
|
+
* host context (+ display mode) → host document (style variables, fonts,
|
|
11
|
+
* layout) → host bridge → profile gate (the effective language from
|
|
12
|
+
* profile > host > en, the theme from host > OS) → host widget registry. Order is load-bearing (the
|
|
13
|
+
* bridge reads mcp-use's view-scoped hooks, the document layer and the gate
|
|
14
|
+
* read the host context it provides, the gate needs the host bridge) — hosts
|
|
15
|
+
* compose their app-specific layers (e.g. a standalone drill-in shell) inside.
|
|
16
|
+
*/
|
|
17
|
+
export declare function AppShellProviders({ widgets, children }: AppShellProvidersProps): import("react").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=app-shell-providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-shell-providers.d.ts","sourceRoot":"","sources":["../../src/ui/app-shell-providers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAA4B,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAM5F,MAAM,WAAW,sBAAsB;IACrC,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,sBAAsB,+BAY9E"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { McpUseHostBridgeProvider } from "@miragon/mcp-toolkit-ui/app";
|
|
3
|
+
import { HostDocument } from "./host-document.js";
|
|
4
|
+
import { HostWidgetsProvider } from "./host-widgets.js";
|
|
5
|
+
import { ProfileGate } from "./profile-gate.js";
|
|
6
|
+
import { ViewHostBridge } from "./shell-host.js";
|
|
7
|
+
/**
|
|
8
|
+
* The provider stack every composed-server host mounts under `bootstrapView`:
|
|
9
|
+
* host context (+ display mode) → host document (style variables, fonts,
|
|
10
|
+
* layout) → host bridge → profile gate (the effective language from
|
|
11
|
+
* profile > host > en, the theme from host > OS) → host widget registry. Order is load-bearing (the
|
|
12
|
+
* bridge reads mcp-use's view-scoped hooks, the document layer and the gate
|
|
13
|
+
* read the host context it provides, the gate needs the host bridge) — hosts
|
|
14
|
+
* compose their app-specific layers (e.g. a standalone drill-in shell) inside.
|
|
15
|
+
*/
|
|
16
|
+
export function AppShellProviders({ widgets, children }) {
|
|
17
|
+
return (_jsx(ViewHostBridge, { children: _jsx(HostDocument, { children: _jsx(McpUseHostBridgeProvider, { children: _jsx(ProfileGate, { children: _jsx(HostWidgetsProvider, { widgets: widgets, children: children }) }) }) }) }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=app-shell-providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-shell-providers.js","sourceRoot":"","sources":["../../src/ui/app-shell-providers.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,wBAAwB,EAAwB,MAAM,6BAA6B,CAAA;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAQhD;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAA0B;IAC7E,OAAO,CACL,KAAC,cAAc,cACb,KAAC,YAAY,cACX,KAAC,wBAAwB,cACvB,KAAC,WAAW,cACV,KAAC,mBAAmB,IAAC,OAAO,EAAE,OAAO,YAAG,QAAQ,GAAuB,GAC3D,GACW,GACd,GACA,CAClB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-shell-providers.test.d.ts","sourceRoot":"","sources":["../../src/ui/app-shell-providers.test.tsx"],"names":[],"mappings":""}
|