@miragon/pulse-widget-shell 0.0.0-stage → 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 +164 -2
- 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 -3
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo, useState } from "react";
|
|
3
|
+
import { Badge, Card, CardContent, cn, FOCUS_RING, useLocale, WidgetHeader, } from "@miragon/mcp-toolkit-ui";
|
|
4
|
+
import { ChevronRight } from "lucide-react";
|
|
5
|
+
import { BpmnHeatmap, HeatmapLegend } from "./bpmn-heatmap.js";
|
|
6
|
+
import { bpmnElementNames, bpmnProcessName, heatRange } from "./bpmn-heatmap/heat-utils.js";
|
|
7
|
+
import { DEFAULT_HEATMAP_LABELS } from "./bpmn-heatmap-labels.js";
|
|
8
|
+
import { formatDuration, formatNumber } from "./format.js";
|
|
9
|
+
import { Icon } from "./icon.js";
|
|
10
|
+
import { kitLabels } from "./kit-labels.js";
|
|
11
|
+
import { ListTable } from "./list-table.js";
|
|
12
|
+
import { SegmentedControl } from "./segmented-control.js";
|
|
13
|
+
import { TableEmptyState, Td } from "./table.js";
|
|
14
|
+
/** A heat value in the mode's unit: a count, or a duration ("3m 7s" / "3 Min. 7 s"). */
|
|
15
|
+
function formatHeat(mode, value) {
|
|
16
|
+
return mode === "frequency" ? formatNumber(value) : formatDuration(value * 1000);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The values behind the colours (U16): every element with a value above
|
|
20
|
+
* zero, largest first, under a disclosure below the diagram — the number a
|
|
21
|
+
* colour cannot say, for everyone, and the heatmap's text alternative.
|
|
22
|
+
*/
|
|
23
|
+
export function HeatValuesTable({ bpmnXml, values, format, labels, }) {
|
|
24
|
+
const kit = kitLabels(useLocale());
|
|
25
|
+
const names = useMemo(() => bpmnElementNames(bpmnXml), [bpmnXml]);
|
|
26
|
+
const rows = Object.entries(values)
|
|
27
|
+
.filter(([, v]) => Number.isFinite(v) && v > 0)
|
|
28
|
+
.sort(([, a], [, b]) => b - a);
|
|
29
|
+
if (rows.length === 0)
|
|
30
|
+
return null;
|
|
31
|
+
const title = labels?.valuesTable ?? kit.heatmapValues;
|
|
32
|
+
return (_jsxs("details", { className: "group", children: [_jsxs("summary", { className: cn("text-dense flex w-fit cursor-pointer list-none items-center gap-1.5 rounded-sm font-medium [&::-webkit-details-marker]:hidden", FOCUS_RING), children: [_jsx(Icon, { icon: ChevronRight, className: "text-muted-foreground transition-transform group-open:rotate-90 motion-reduce:transition-none" }), title] }), _jsx("div", { className: "mt-2", children: _jsx(ListTable, { ariaLabel: title, columns: [
|
|
33
|
+
{ label: labels?.elementColumn ?? kit.heatmapElement },
|
|
34
|
+
{ label: labels?.valueColumn ?? kit.heatmapValue, align: "right" },
|
|
35
|
+
], children: rows.map(([id, value]) => (_jsxs("tr", { children: [_jsxs(Td, { children: [names[id] ?? _jsx("span", { className: "font-mono", children: id }), names[id] && (_jsx("span", { className: "text-muted-foreground text-small ml-2 font-mono", children: id }))] }), _jsx(Td, { align: "right", className: "tabular-nums", children: format(value) })] }, id))) }) })] }));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Data-widget wrapper: one BPMN diagram, a Frequency↔Duration switch that
|
|
39
|
+
* swaps the per-element heat values (both fetched up front), the legend with
|
|
40
|
+
* the smallest and largest value, and the values as a table. Node-only —
|
|
41
|
+
* metrics carry no per-instance path data, so sequence flows are not heated.
|
|
42
|
+
*/
|
|
43
|
+
export function BpmnHeatmapWidget({ data, labels, meta, }) {
|
|
44
|
+
const [mode, setMode] = useState("frequency");
|
|
45
|
+
const kit = kitLabels(useLocale());
|
|
46
|
+
const l = { ...DEFAULT_HEATMAP_LABELS, ...labels };
|
|
47
|
+
const xml = data?.bpmnXml ?? null;
|
|
48
|
+
// The process's name from its model (U13), by the rule the other analytics
|
|
49
|
+
// views name it (its own, else its pool's): the key stays a quiet id next to it.
|
|
50
|
+
const key = data?.processDefinitionKey;
|
|
51
|
+
const processName = useMemo(() => (xml && key ? bpmnProcessName(xml, key) : null), [xml, key]);
|
|
52
|
+
if (!data)
|
|
53
|
+
return _jsx(TableEmptyState, { children: l.noData });
|
|
54
|
+
if (!data.bpmnXml)
|
|
55
|
+
return _jsx(TableEmptyState, { children: l.bpmnUnavailable });
|
|
56
|
+
const values = mode === "frequency" ? data.frequency : data.durationSec;
|
|
57
|
+
const legendLabel = mode === "frequency" ? l.frequencyLegend : l.durationLegend;
|
|
58
|
+
const range = heatRange(values);
|
|
59
|
+
const format = (value) => formatHeat(mode, value);
|
|
60
|
+
return (_jsx(Card, { children: _jsxs(CardContent, { className: "flex flex-col gap-4", children: [_jsx(WidgetHeader, { as: "h2", title: l.title, titleSuffix: processName ? (_jsxs(_Fragment, { children: [_jsx(Badge, { variant: "outline", className: "ml-2 align-middle", children: processName }), _jsx("span", { className: "text-muted-foreground text-small ml-2 align-middle font-mono font-normal", children: data.processDefinitionKey })] })) : (_jsx(Badge, { variant: "outline", className: "ml-2 align-middle font-mono", children: data.processDefinitionKey })), sub: meta ?? (_jsxs("span", { children: [l.window, " ", data.period] })), actions: _jsx(SegmentedControl, { ariaLabel: labels?.modeAriaLabel ?? kit.heatmapMetric, value: mode, onChange: setMode, options: [
|
|
61
|
+
{ value: "frequency", label: l.frequency },
|
|
62
|
+
{ value: "duration", label: l.duration },
|
|
63
|
+
] }) }), _jsx(BpmnHeatmap, { bpmnXml: data.bpmnXml, nodeFrequencies: values, diagramAriaLabel: l.diagramAriaLabel, errorTitle: l.errorTitle, errorHint: l.errorHint, noHeatLabel: l.noHeat }), _jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [_jsx("span", { className: "text-muted-foreground text-small", children: legendLabel }), _jsx(HeatmapLegend, { lessLabel: l.less, moreLabel: l.more, min: range ? format(range.min) : undefined, max: range ? format(range.max) : undefined })] }), _jsx(HeatValuesTable, { bpmnXml: data.bpmnXml, values: values, format: format, labels: labels })] }) }));
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=bpmn-heatmap-widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bpmn-heatmap-widget.js","sourceRoot":"","sources":["../../src/ui/bpmn-heatmap-widget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AACzD,OAAO,EACL,KAAK,EACL,IAAI,EACJ,WAAW,EACX,EAAE,EACF,UAAU,EACV,SAAS,EACT,YAAY,GACb,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC3F,OAAO,EAAE,sBAAsB,EAA0B,MAAM,0BAA0B,CAAA;AACzF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAchD,wFAAwF;AACxF,SAAS,UAAU,CAAC,IAAU,EAAE,KAAa;IAC3C,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;AAClF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,GAMP;IACC,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,CAAA;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IACjE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC9C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAClC,MAAM,KAAK,GAAG,MAAM,EAAE,WAAW,IAAI,GAAG,CAAC,aAAa,CAAA;IACtD,OAAO,CACL,mBAAS,SAAS,EAAC,OAAO,aACxB,mBACE,SAAS,EAAE,EAAE,CACX,+HAA+H,EAC/H,UAAU,CACX,aAED,KAAC,IAAI,IACH,IAAI,EAAE,YAAY,EAClB,SAAS,EAAC,+FAA+F,GACzG,EACD,KAAK,IACE,EACV,cAAK,SAAS,EAAC,MAAM,YACnB,KAAC,SAAS,IACR,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE;wBACP,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,IAAI,GAAG,CAAC,cAAc,EAAE;wBACtD,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,IAAI,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE;qBACnE,YAEA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACzB,yBACE,MAAC,EAAE,eACA,KAAK,CAAC,EAAE,CAAC,IAAI,eAAM,SAAS,EAAC,WAAW,YAAE,EAAE,GAAQ,EACpD,KAAK,CAAC,EAAE,CAAC,IAAI,CACZ,eAAM,SAAS,EAAC,iDAAiD,YAAE,EAAE,GAAQ,CAC9E,IACE,EACL,KAAC,EAAE,IAAC,KAAK,EAAC,OAAO,EAAC,SAAS,EAAC,cAAc,YACvC,MAAM,CAAC,KAAK,CAAC,GACX,KATE,EAAE,CAUN,CACN,CAAC,GACQ,GACR,IACE,CACX,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,IAAI,EACJ,MAAM,EACN,IAAI,GASL;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAO,WAAW,CAAC,CAAA;IACnD,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,CAAA;IAClC,MAAM,CAAC,GAAG,EAAE,GAAG,sBAAsB,EAAE,GAAG,MAAM,EAAE,CAAA;IAClD,MAAM,GAAG,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,CAAA;IACjC,2EAA2E;IAC3E,iFAAiF;IACjF,MAAM,GAAG,GAAG,IAAI,EAAE,oBAAoB,CAAA;IACtC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IAE9F,IAAI,CAAC,IAAI;QAAE,OAAO,KAAC,eAAe,cAAE,CAAC,CAAC,MAAM,GAAmB,CAAA;IAC/D,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAC,eAAe,cAAE,CAAC,CAAC,eAAe,GAAmB,CAAA;IAEhF,MAAM,MAAM,GAAG,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAA;IACvE,MAAM,WAAW,GAAG,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAA;IAC/E,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAC/B,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAEzD,OAAO,CACL,KAAC,IAAI,cACH,MAAC,WAAW,IAAC,SAAS,EAAC,qBAAqB,aAC1C,KAAC,YAAY,IACX,EAAE,EAAC,IAAI,EACP,KAAK,EAAE,CAAC,CAAC,KAAK,EACd,WAAW,EACT,WAAW,CAAC,CAAC,CAAC,CACZ,8BACE,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,mBAAmB,YACnD,WAAW,GACN,EACR,eAAM,SAAS,EAAC,0EAA0E,YACvF,IAAI,CAAC,oBAAoB,GACrB,IACN,CACJ,CAAC,CAAC,CAAC,CACF,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,6BAA6B,YAC7D,IAAI,CAAC,oBAAoB,GACpB,CACT,EAEH,GAAG,EACD,IAAI,IAAI,CACN,2BACG,CAAC,CAAC,MAAM,OAAG,IAAI,CAAC,MAAM,IAClB,CACR,EAEH,OAAO,EACL,KAAC,gBAAgB,IACf,SAAS,EAAE,MAAM,EAAE,aAAa,IAAI,GAAG,CAAC,aAAa,EACrD,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE;4BACP,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE;4BAC1C,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE;yBACzC,GACD,GAEJ,EAEF,KAAC,WAAW,IACV,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,EACpC,UAAU,EAAE,CAAC,CAAC,UAAU,EACxB,SAAS,EAAE,CAAC,CAAC,SAAS,EACtB,WAAW,EAAE,CAAC,CAAC,MAAM,GACrB,EAEF,eAAK,SAAS,EAAC,mCAAmC,aAChD,eAAM,SAAS,EAAC,kCAAkC,YAAE,WAAW,GAAQ,EACvE,KAAC,aAAa,IACZ,SAAS,EAAE,CAAC,CAAC,IAAI,EACjB,SAAS,EAAE,CAAC,CAAC,IAAI,EACjB,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EAC1C,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAC1C,IACE,EACN,KAAC,eAAe,IAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAI,IAC9E,GACT,CACR,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bpmn-heatmap-widget.test.d.ts","sourceRoot":"","sources":["../../src/ui/bpmn-heatmap-widget.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// @vitest-environment happy-dom
|
|
3
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
4
|
+
import { cleanup, fireEvent, render, screen, waitFor } from "@testing-library/react";
|
|
5
|
+
import { LocaleProvider } from "@miragon/mcp-toolkit-ui";
|
|
6
|
+
import { setFormatLocale } from "../testing/index.js";
|
|
7
|
+
import { BpmnHeatmap, HeatmapLegend } from "./bpmn-heatmap.js";
|
|
8
|
+
import { BpmnHeatmapWidget, HeatValuesTable } from "./bpmn-heatmap-widget.js";
|
|
9
|
+
// bpmn-js needs a real SVG engine; a stub that imports any diagram 4:1 wide.
|
|
10
|
+
const viewer = vi.hoisted(() => ({
|
|
11
|
+
fail: false,
|
|
12
|
+
MockViewer: class {
|
|
13
|
+
importXML() {
|
|
14
|
+
return viewer.fail ? Promise.reject(new Error("unparsable <bpmn:x>")) : Promise.resolve({});
|
|
15
|
+
}
|
|
16
|
+
get(service) {
|
|
17
|
+
if (service === "canvas") {
|
|
18
|
+
return {
|
|
19
|
+
zoom: () => 1,
|
|
20
|
+
resized: () => { },
|
|
21
|
+
viewbox: () => ({
|
|
22
|
+
x: 0,
|
|
23
|
+
y: 0,
|
|
24
|
+
width: 800,
|
|
25
|
+
height: 200,
|
|
26
|
+
scale: 1,
|
|
27
|
+
inner: { x: 0, y: 0, width: 800, height: 200 },
|
|
28
|
+
}),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
if (service === "elementRegistry")
|
|
32
|
+
return { getAll: () => [] };
|
|
33
|
+
return { on() { }, off() { } };
|
|
34
|
+
}
|
|
35
|
+
destroy() { }
|
|
36
|
+
},
|
|
37
|
+
}));
|
|
38
|
+
vi.mock("bpmn-js/lib/NavigatedViewer", () => ({ default: viewer.MockViewer }));
|
|
39
|
+
afterEach(() => {
|
|
40
|
+
cleanup();
|
|
41
|
+
viewer.fail = false;
|
|
42
|
+
setFormatLocale(undefined);
|
|
43
|
+
});
|
|
44
|
+
const XML = `<?xml version="1.0"?>
|
|
45
|
+
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" id="d">
|
|
46
|
+
<bpmn:process id="order">
|
|
47
|
+
<bpmn:serviceTask id="Task_A" name="Ship order" />
|
|
48
|
+
<bpmn:userTask id="Task_B" name="Approve order" />
|
|
49
|
+
<bpmn:endEvent id="End" />
|
|
50
|
+
</bpmn:process>
|
|
51
|
+
</bpmn:definitions>`;
|
|
52
|
+
const DATA = {
|
|
53
|
+
processDefinitionKey: "order",
|
|
54
|
+
bpmnXml: XML,
|
|
55
|
+
period: "7d",
|
|
56
|
+
frequency: { Task_A: 1234, Task_B: 3, End: 0 },
|
|
57
|
+
durationSec: { Task_A: 187, Task_B: 2 },
|
|
58
|
+
};
|
|
59
|
+
describe("BpmnHeatmapWidget (U16)", () => {
|
|
60
|
+
beforeEach(() => setFormatLocale({ language: "en", locale: "en-US" }));
|
|
61
|
+
it("names the process by its model's name, the key quiet beside it (U13)", () => {
|
|
62
|
+
const named = XML.replace('<bpmn:process id="order">', '<bpmn:process id="order" name="Order">');
|
|
63
|
+
render(_jsx(BpmnHeatmapWidget, { data: { ...DATA, bpmnXml: named } }));
|
|
64
|
+
const heading = screen.getByRole("heading", { level: 2 });
|
|
65
|
+
expect(heading.textContent).toMatch(/Orderorder$/);
|
|
66
|
+
expect(screen.getByText("order").className).toContain("font-mono");
|
|
67
|
+
cleanup();
|
|
68
|
+
// Without a name the key is the badge, in mono.
|
|
69
|
+
render(_jsx(BpmnHeatmapWidget, { data: DATA }));
|
|
70
|
+
const badge = screen.getByText("order");
|
|
71
|
+
expect(badge.className).toContain("font-mono");
|
|
72
|
+
expect(badge.getAttribute("data-slot")).toBe("badge");
|
|
73
|
+
});
|
|
74
|
+
// The Camunda Modeler names a collaboration's pool and leaves its process
|
|
75
|
+
// unnamed: the dashboards show the pool's name, so the heatmap does too.
|
|
76
|
+
it("names a process without a name of its own by its pool, like the other views", () => {
|
|
77
|
+
const pooled = XML.replace("<bpmn:process", '<bpmn:collaboration id="c"><bpmn:participant id="Pool" name="Order handling" processRef="order"/></bpmn:collaboration><bpmn:process');
|
|
78
|
+
render(_jsx(BpmnHeatmapWidget, { data: { ...DATA, bpmnXml: pooled } }));
|
|
79
|
+
const heading = screen.getByRole("heading", { level: 2 });
|
|
80
|
+
expect(heading.textContent).toMatch(/Order handlingorder$/);
|
|
81
|
+
});
|
|
82
|
+
it("says what the colours mean: the legend runs from the smallest value to the largest", () => {
|
|
83
|
+
render(_jsx(BpmnHeatmapWidget, { data: DATA }));
|
|
84
|
+
expect(screen.getByText("3 to 1,234").className).toContain("sr-only");
|
|
85
|
+
const legend = screen.getByText("3 to 1,234").parentElement;
|
|
86
|
+
const visible = [...legend.querySelectorAll("[aria-hidden]")].map((el) => el.textContent);
|
|
87
|
+
expect(visible).toEqual(["3", "", "1,234"]);
|
|
88
|
+
});
|
|
89
|
+
it("lists the value per element, named from the diagram, largest first", () => {
|
|
90
|
+
render(_jsx(BpmnHeatmapWidget, { data: DATA }));
|
|
91
|
+
const summary = screen.getByText("Values per element");
|
|
92
|
+
expect(summary.closest("details")).toBeTruthy();
|
|
93
|
+
const table = screen.getByRole("table", { name: "Values per element" });
|
|
94
|
+
const rows = Array.from(table.querySelectorAll("tbody tr")).map((tr) => tr.textContent);
|
|
95
|
+
// Zero-valued elements stay out; names first, the id quiet beside them.
|
|
96
|
+
expect(rows).toEqual(["Ship orderTask_A1,234", "Approve orderTask_B3"]);
|
|
97
|
+
});
|
|
98
|
+
it("switches the metric with a segmented control; durations read as durations", () => {
|
|
99
|
+
setFormatLocale({ language: "de", locale: "de-DE" });
|
|
100
|
+
render(_jsx(LocaleProvider, { locale: "de", children: _jsx(BpmnHeatmapWidget, { data: DATA }) }));
|
|
101
|
+
const group = screen.getByRole("group", { name: "Kennzahl" });
|
|
102
|
+
const duration = screen.getByRole("button", { name: "Duration" });
|
|
103
|
+
expect(group.contains(duration)).toBe(true);
|
|
104
|
+
fireEvent.click(duration);
|
|
105
|
+
expect(duration.getAttribute("aria-pressed")).toBe("true");
|
|
106
|
+
// (getByText collapses the non-breaking spaces between number and unit.)
|
|
107
|
+
expect(screen.getByText("2 s bis 3 Min. 7 s").className).toContain("sr-only");
|
|
108
|
+
});
|
|
109
|
+
it("heads the view with a 28 px h2 title and keeps the paper light", () => {
|
|
110
|
+
const { container } = render(_jsx(BpmnHeatmapWidget, { data: DATA }));
|
|
111
|
+
const heading = screen.getByRole("heading", { level: 2 });
|
|
112
|
+
expect(heading.textContent).toContain("BPMN heatmap");
|
|
113
|
+
expect(heading.className).toContain("text-title");
|
|
114
|
+
const frame = container.querySelector('[role="img"]')?.parentElement;
|
|
115
|
+
expect(frame?.getAttribute("data-theme-mode")).toBe("light");
|
|
116
|
+
});
|
|
117
|
+
it("says so in an empty state without data or a diagram", () => {
|
|
118
|
+
const { rerender } = render(_jsx(BpmnHeatmapWidget, { data: null }));
|
|
119
|
+
expect(screen.getByText("No heatmap data.").closest("[data-empty-variant]")).toBeTruthy();
|
|
120
|
+
rerender(_jsx(BpmnHeatmapWidget, { data: { ...DATA, bpmnXml: null } }));
|
|
121
|
+
expect(screen.getByText(/The BPMN diagram is not available/)).toBeTruthy();
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
describe("BpmnHeatmap", () => {
|
|
125
|
+
it("sizes its frame from the diagram unless given a height", () => {
|
|
126
|
+
const { container, rerender } = render(_jsx(BpmnHeatmap, { bpmnXml: XML, nodeFrequencies: {} }));
|
|
127
|
+
const frame = () => container.querySelector('[data-theme-mode="light"]');
|
|
128
|
+
// Before the diagram is measured: the default frame.
|
|
129
|
+
expect(frame().style.height).toBe("360px");
|
|
130
|
+
rerender(_jsx(BpmnHeatmap, { bpmnXml: XML, nodeFrequencies: {}, height: 300 }));
|
|
131
|
+
expect(frame().style.height).toBe("300px");
|
|
132
|
+
});
|
|
133
|
+
it("shows the import failure as an inline error, the parser's words under Details", async () => {
|
|
134
|
+
viewer.fail = true;
|
|
135
|
+
render(_jsx(BpmnHeatmap, { bpmnXml: "<broken/>", nodeFrequencies: {}, errorTitle: "Diagram not drawn", errorHint: "Ask in the chat." }));
|
|
136
|
+
const state = await screen.findByRole("alert");
|
|
137
|
+
expect(state.getAttribute("data-variant")).toBe("inline");
|
|
138
|
+
expect(state.textContent).toContain("Diagram not drawn");
|
|
139
|
+
expect(screen.getByText("unparsable <bpmn:x>").closest("details")).toBeTruthy();
|
|
140
|
+
});
|
|
141
|
+
it("says so over the diagram when no element carries a value", async () => {
|
|
142
|
+
render(_jsx(BpmnHeatmap, { bpmnXml: XML, nodeFrequencies: { Task_A: 0 }, noHeatLabel: "No values" }));
|
|
143
|
+
await waitFor(() => expect(screen.getByRole("status").textContent).toBe("No values"));
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
describe("HeatmapLegend", () => {
|
|
147
|
+
it("falls back to Less/More without values, the swatch on the light paper", () => {
|
|
148
|
+
const { container } = render(_jsx(HeatmapLegend, { lessLabel: "Weniger", moreLabel: "Mehr" }));
|
|
149
|
+
expect(screen.getByText("Weniger")).toBeTruthy();
|
|
150
|
+
expect(screen.getByText("Mehr")).toBeTruthy();
|
|
151
|
+
expect(container.querySelector('[data-theme-mode="light"]')).toBeTruthy();
|
|
152
|
+
});
|
|
153
|
+
it("shows one value once, at the swatch's full end where every element paints", () => {
|
|
154
|
+
const { container } = render(_jsx(HeatmapLegend, { min: "5", max: "5" }));
|
|
155
|
+
const visible = [...container.querySelectorAll("[aria-hidden]")].map((el) => el.textContent);
|
|
156
|
+
expect(visible).toEqual(["", "5"]);
|
|
157
|
+
expect(container.querySelector(".sr-only")?.textContent).toBe("5");
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
describe("HeatValuesTable", () => {
|
|
161
|
+
it("renders nothing when no element has a value", () => {
|
|
162
|
+
const { container } = render(_jsx(HeatValuesTable, { bpmnXml: XML, values: { Task_A: 0 }, format: String }));
|
|
163
|
+
expect(container.innerHTML).toBe("");
|
|
164
|
+
});
|
|
165
|
+
it("takes the caller's words", () => {
|
|
166
|
+
render(_jsx(HeatValuesTable, { bpmnXml: XML, values: { Unnamed: 5 }, format: String, labels: { valuesTable: "Werte", elementColumn: "Schritt", valueColumn: "Anzahl" } }));
|
|
167
|
+
expect(screen.getByRole("columnheader", { name: "Schritt" })).toBeTruthy();
|
|
168
|
+
expect(screen.getByRole("columnheader", { name: "Anzahl" })).toBeTruthy();
|
|
169
|
+
// An element without a name shows its id.
|
|
170
|
+
expect(screen.getByText("Unnamed").className).toContain("font-mono");
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
//# sourceMappingURL=bpmn-heatmap-widget.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bpmn-heatmap-widget.test.js","sourceRoot":"","sources":["../../src/ui/bpmn-heatmap-widget.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type BpmnHeatmapLabels } from "./bpmn-heatmap-labels.js";
|
|
2
|
+
export type { BpmnHeatmapLabels };
|
|
3
|
+
export interface BpmnHeatmapProps {
|
|
4
|
+
bpmnXml: string;
|
|
5
|
+
/** Per-element heat value keyed by BPMN element id (frequency or duration). */
|
|
6
|
+
nodeFrequencies: Record<string, number>;
|
|
7
|
+
/** Per-edge value keyed by `${sourceId}->${targetId}`. Metrics carry none → `{}`. */
|
|
8
|
+
edgeFrequencies?: Record<string, number>;
|
|
9
|
+
/** A fixed frame height; default: the diagram's own (240–560 px, `diagramHeight`). */
|
|
10
|
+
height?: number;
|
|
11
|
+
/** Heat radius in diagram coordinates. Scales with zoom. */
|
|
12
|
+
diagramRadius?: number;
|
|
13
|
+
/** Accessible name for the diagram (localize per module; English fallback). */
|
|
14
|
+
diagramAriaLabel?: string;
|
|
15
|
+
/** Title of the import-error state (English fallback): what happened, one line. */
|
|
16
|
+
errorTitle?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Next step under the import error: what the user can do. No fallback, so
|
|
19
|
+
* a caller without a localized hint shows no English sentence in its view.
|
|
20
|
+
*/
|
|
21
|
+
errorHint?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Shown over the diagram when NO element carries a positive value. Without
|
|
24
|
+
* it an empty result (window with no traffic, or a metrics `engine_id` that
|
|
25
|
+
* doesn't match the configured engine id) is indistinguishable from a
|
|
26
|
+
* rendered heatmap — the diagram just stays uncolored.
|
|
27
|
+
*/
|
|
28
|
+
noHeatLabel?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Renders a BPMN diagram (bpmn-js NavigatedViewer) with a Cockpit-style heat
|
|
32
|
+
* overlay on a canvas synced to the viewbox. The viewer mounts once per diagram
|
|
33
|
+
* (`bpmnXml`); changing `nodeFrequencies` (e.g. the frequency↔duration toggle)
|
|
34
|
+
* only repaints the overlay — no re-import / refit.
|
|
35
|
+
*
|
|
36
|
+
* The heat is ONE hue (`--cd-info-soft` → `--cd-blau`, never red: red is for
|
|
37
|
+
* incidents), every element with a value above zero at a visible minimum.
|
|
38
|
+
* The whole frame is a forced-light island: the paper, the zoom bar and the
|
|
39
|
+
* "no values" chip stay light in a dark host. Pair it with
|
|
40
|
+
* {@link HeatmapLegend} and the values as a table ({@link HeatValuesTable}).
|
|
41
|
+
*/
|
|
42
|
+
export declare function BpmnHeatmap({ bpmnXml, nodeFrequencies, edgeFrequencies, height, diagramRadius, diagramAriaLabel, errorTitle, errorHint, noHeatLabel, }: BpmnHeatmapProps): import("react").JSX.Element;
|
|
43
|
+
/**
|
|
44
|
+
* The heat ramp's legend: the swatch (on the light paper, at the layer's
|
|
45
|
+
* opacity, so it matches the diagram) between the smallest value above zero
|
|
46
|
+
* and the largest (`min`/`max`, formatted by the caller) — or "Less"/"More"
|
|
47
|
+
* where the values are not at hand. The ends are the values they encode:
|
|
48
|
+
* the layer maps that range linearly onto the swatch (`heatIntensity`), so
|
|
49
|
+
* its middle is the middle value. One value for every element paints at the
|
|
50
|
+
* full end, so it shows once, there. Screen readers hear the range as one
|
|
51
|
+
* sentence ("1 to 1,234").
|
|
52
|
+
*/
|
|
53
|
+
export declare function HeatmapLegend({ min, max, lessLabel, moreLabel, }: {
|
|
54
|
+
/** The smallest value above zero, formatted. */
|
|
55
|
+
min?: string;
|
|
56
|
+
/** The largest value, formatted. */
|
|
57
|
+
max?: string;
|
|
58
|
+
lessLabel?: string;
|
|
59
|
+
moreLabel?: string;
|
|
60
|
+
}): import("react").JSX.Element;
|
|
61
|
+
//# sourceMappingURL=bpmn-heatmap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bpmn-heatmap.d.ts","sourceRoot":"","sources":["../../src/ui/bpmn-heatmap.tsx"],"names":[],"mappings":"AAWA,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AASzF,YAAY,EAAE,iBAAiB,EAAE,CAAA;AAEjC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,+EAA+E;IAC/E,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,qFAAqF;IACrF,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,eAAe,EACf,eAA6B,EAC7B,MAAM,EACN,aAAkB,EAClB,gBAA0D,EAC1D,UAA8C,EAC9C,SAAS,EACT,WAA2C,GAC5C,EAAE,gBAAgB,+BA6IlB;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAC5B,GAAG,EACH,GAAG,EACH,SAAuC,EACvC,SAAuC,GACxC,EAAE;IACD,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,+BA6BA"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
|
+
import { ErrorState, useLocale } from "@miragon/mcp-toolkit-ui";
|
|
4
|
+
import { buildGradientLut, buildHeatPoints, drawHeatLayer, HEAT_GRADIENT_CSS, HEAT_PEAK_ALPHA, weightRange, } from "./bpmn-heatmap/heat-utils.js";
|
|
5
|
+
import { DEFAULT_HEATMAP_LABELS } from "./bpmn-heatmap-labels.js";
|
|
6
|
+
import { BpmnZoomControls } from "./bpmn-zoom-controls.js";
|
|
7
|
+
import { kitLabels } from "./kit-labels.js";
|
|
8
|
+
import { useBpmnViewer } from "./use-bpmn-viewer.js";
|
|
9
|
+
// Stable default for the omitted-edges case: a `= {}` parameter default would
|
|
10
|
+
// be a fresh identity per render and re-trigger the repaint effect every time.
|
|
11
|
+
const EMPTY_EDGES = {};
|
|
12
|
+
/**
|
|
13
|
+
* Renders a BPMN diagram (bpmn-js NavigatedViewer) with a Cockpit-style heat
|
|
14
|
+
* overlay on a canvas synced to the viewbox. The viewer mounts once per diagram
|
|
15
|
+
* (`bpmnXml`); changing `nodeFrequencies` (e.g. the frequency↔duration toggle)
|
|
16
|
+
* only repaints the overlay — no re-import / refit.
|
|
17
|
+
*
|
|
18
|
+
* The heat is ONE hue (`--cd-info-soft` → `--cd-blau`, never red: red is for
|
|
19
|
+
* incidents), every element with a value above zero at a visible minimum.
|
|
20
|
+
* The whole frame is a forced-light island: the paper, the zoom bar and the
|
|
21
|
+
* "no values" chip stay light in a dark host. Pair it with
|
|
22
|
+
* {@link HeatmapLegend} and the values as a table ({@link HeatValuesTable}).
|
|
23
|
+
*/
|
|
24
|
+
export function BpmnHeatmap({ bpmnXml, nodeFrequencies, edgeFrequencies = EMPTY_EDGES, height, diagramRadius = 55, diagramAriaLabel = DEFAULT_HEATMAP_LABELS.diagramAriaLabel, errorTitle = DEFAULT_HEATMAP_LABELS.errorTitle, errorHint, noHeatLabel = DEFAULT_HEATMAP_LABELS.noHeat, }) {
|
|
25
|
+
const heatCanvasRef = useRef(null);
|
|
26
|
+
const redrawRef = useRef(null);
|
|
27
|
+
// Latest heat inputs, read by redraw() so we can repaint without re-importing.
|
|
28
|
+
// Synced in an effect (not during render) so a discarded render can't leak
|
|
29
|
+
// into the ref; declared before the repaint effect below, so redraw() always
|
|
30
|
+
// sees the values of the commit that triggered it.
|
|
31
|
+
const dataRef = useRef({ nodeFrequencies, edgeFrequencies, diagramRadius });
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
dataRef.current = { nodeFrequencies, edgeFrequencies, diagramRadius };
|
|
34
|
+
});
|
|
35
|
+
const { containerRef, height: autoHeight, importError, zoomIn, zoomOut, fit, } = useBpmnViewer({
|
|
36
|
+
bpmnXml,
|
|
37
|
+
onImported: (imported) => {
|
|
38
|
+
const gradientLut = buildGradientLut();
|
|
39
|
+
const canvas = imported.get("canvas");
|
|
40
|
+
const elementRegistry = imported.get("elementRegistry");
|
|
41
|
+
const eventBus = imported.get("eventBus");
|
|
42
|
+
const redraw = () => {
|
|
43
|
+
const heatCanvas = heatCanvasRef.current;
|
|
44
|
+
const container = containerRef.current;
|
|
45
|
+
if (!heatCanvas || !container)
|
|
46
|
+
return;
|
|
47
|
+
const rect = container.getBoundingClientRect();
|
|
48
|
+
const dpr = window.devicePixelRatio || 1;
|
|
49
|
+
if (heatCanvas.width !== Math.round(rect.width * dpr) ||
|
|
50
|
+
heatCanvas.height !== Math.round(rect.height * dpr)) {
|
|
51
|
+
heatCanvas.width = Math.round(rect.width * dpr);
|
|
52
|
+
heatCanvas.height = Math.round(rect.height * dpr);
|
|
53
|
+
heatCanvas.style.width = `${rect.width}px`;
|
|
54
|
+
heatCanvas.style.height = `${rect.height}px`;
|
|
55
|
+
}
|
|
56
|
+
const ctx = heatCanvas.getContext("2d");
|
|
57
|
+
if (!ctx)
|
|
58
|
+
return;
|
|
59
|
+
ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
|
|
60
|
+
const { nodeFrequencies: nf, edgeFrequencies: ef, diagramRadius: dr } = dataRef.current;
|
|
61
|
+
const heatPoints = buildHeatPoints(elementRegistry.getAll(), nf, ef);
|
|
62
|
+
const range = weightRange(heatPoints.map((p) => p.weight)) ?? { min: 0, max: 0 };
|
|
63
|
+
const vb = canvas.viewbox();
|
|
64
|
+
const scale = vb.scale;
|
|
65
|
+
// Project diagram coordinates → screen pixels (CSS px).
|
|
66
|
+
const screenPoints = heatPoints.map((p) => ({
|
|
67
|
+
x: (p.x - vb.x) * scale,
|
|
68
|
+
y: (p.y - vb.y) * scale,
|
|
69
|
+
weight: p.weight,
|
|
70
|
+
}));
|
|
71
|
+
const radiusPx = Math.max(20, dr * scale);
|
|
72
|
+
drawHeatLayer(ctx, rect.width, rect.height, heatCanvas.width, heatCanvas.height, screenPoints, range, radiusPx, gradientLut);
|
|
73
|
+
};
|
|
74
|
+
redrawRef.current = redraw;
|
|
75
|
+
redraw();
|
|
76
|
+
const onChange = () => redraw();
|
|
77
|
+
eventBus.on("canvas.viewbox.changed", onChange);
|
|
78
|
+
eventBus.on("canvas.resized", onChange);
|
|
79
|
+
// Resize only repaints the overlay — the operator's pan/zoom is kept.
|
|
80
|
+
const ro = new ResizeObserver(() => redraw());
|
|
81
|
+
if (containerRef.current)
|
|
82
|
+
ro.observe(containerRef.current);
|
|
83
|
+
return () => {
|
|
84
|
+
eventBus.off("canvas.viewbox.changed", onChange);
|
|
85
|
+
eventBus.off("canvas.resized", onChange);
|
|
86
|
+
ro.disconnect();
|
|
87
|
+
redrawRef.current = null;
|
|
88
|
+
};
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
// Repaint the overlay when the heat values change (toggle) — viewer stays mounted.
|
|
92
|
+
useEffect(() => {
|
|
93
|
+
redrawRef.current?.();
|
|
94
|
+
}, [nodeFrequencies, edgeFrequencies, diagramRadius]);
|
|
95
|
+
// Mirrors the `weight > 0` filter in buildHeatPoints: a map of zeros paints
|
|
96
|
+
// nothing, so it must read as "no data" too.
|
|
97
|
+
const hasHeat = Object.values(nodeFrequencies).some((v) => v > 0) ||
|
|
98
|
+
Object.values(edgeFrequencies).some((v) => v > 0);
|
|
99
|
+
return (_jsxs("div", { "data-theme-mode": "light", className: "relative w-full", style: { height: `${height ?? autoHeight}px` }, children: [_jsx("div", { ref: containerRef, role: "img", "aria-label": diagramAriaLabel, className: "border-border absolute inset-0 size-full rounded-md border" }), _jsx("canvas", { ref: heatCanvasRef, "aria-hidden": "true", className: "pointer-events-none absolute inset-0 size-full rounded-md", style: { mixBlendMode: "multiply" } }), importError ? (_jsx("div", { className: "absolute inset-x-3 top-3", children: _jsx(ErrorState, { variant: "inline", title: errorTitle, description: errorHint, details: importError }) })) : (_jsxs(_Fragment, { children: [hasHeat ? null : (_jsx("div", { role: "status", className: "border-border bg-card text-muted-foreground text-small shadow-1 pointer-events-none absolute top-3 left-3 rounded-sm border px-2 py-1", children: noHeatLabel })), _jsx(BpmnZoomControls, { onZoomIn: zoomIn, onZoomOut: zoomOut, onFit: fit })] }))] }));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* The heat ramp's legend: the swatch (on the light paper, at the layer's
|
|
103
|
+
* opacity, so it matches the diagram) between the smallest value above zero
|
|
104
|
+
* and the largest (`min`/`max`, formatted by the caller) — or "Less"/"More"
|
|
105
|
+
* where the values are not at hand. The ends are the values they encode:
|
|
106
|
+
* the layer maps that range linearly onto the swatch (`heatIntensity`), so
|
|
107
|
+
* its middle is the middle value. One value for every element paints at the
|
|
108
|
+
* full end, so it shows once, there. Screen readers hear the range as one
|
|
109
|
+
* sentence ("1 to 1,234").
|
|
110
|
+
*/
|
|
111
|
+
export function HeatmapLegend({ min, max, lessLabel = DEFAULT_HEATMAP_LABELS.less, moreLabel = DEFAULT_HEATMAP_LABELS.more, }) {
|
|
112
|
+
const labels = kitLabels(useLocale());
|
|
113
|
+
const range = min !== undefined && max !== undefined;
|
|
114
|
+
const single = range && min === max;
|
|
115
|
+
const start = range ? (single ? null : min) : lessLabel;
|
|
116
|
+
const end = range ? max : moreLabel;
|
|
117
|
+
return (_jsxs("div", { className: "text-small flex items-center gap-2", children: [range && _jsx("span", { className: "sr-only", children: single ? max : labels.heatmapRange({ min, max }) }), start !== null && (_jsx("span", { "aria-hidden": range || undefined, className: "text-muted-foreground tabular-nums", children: start })), _jsx("span", { "aria-hidden": "true", "data-theme-mode": "light", className: "bg-background border-border inline-flex h-3 w-32 overflow-hidden rounded-sm border", children: _jsx("span", { className: "size-full", style: { background: HEAT_GRADIENT_CSS, opacity: HEAT_PEAK_ALPHA } }) }), _jsx("span", { "aria-hidden": range || undefined, className: "text-muted-foreground tabular-nums", children: end })] }));
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=bpmn-heatmap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bpmn-heatmap.js","sourceRoot":"","sources":["../../src/ui/bpmn-heatmap.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { type CdTokenName } from "@miragon/mcp-toolkit-ui";
|
|
2
|
+
/**
|
|
3
|
+
* THE token module of the BPMN canvas (modeler-tool-design §3.6, §10, §13):
|
|
4
|
+
* every colour the diagram's overlays, badges and heat layer paint is a
|
|
5
|
+
* `--cd-*` corporate-design token, named here once. Two consumers read it:
|
|
6
|
+
*
|
|
7
|
+
* - CSS ({@link BPMN_OVERLAY_CSS}) refers to the tokens as `var(--cd-*)`,
|
|
8
|
+
* which the toolkit's theme vendors on `:root`;
|
|
9
|
+
* - code that needs numbers (the heat canvas, contrast checks) resolves the
|
|
10
|
+
* same names through the toolkit's `CD_TOKENS`.
|
|
11
|
+
*
|
|
12
|
+
* `bpmn-tokens.test.ts` is the drift test (every name's `CD_TOKENS` value
|
|
13
|
+
* equals the vendored stylesheet's `--cd-*`) and the contrast test (strokes
|
|
14
|
+
* ≥ 3:1 against the paper and their own fill, badge text ≥ 4.5:1).
|
|
15
|
+
*
|
|
16
|
+
* The semantics (owner decision, #322): an incident is `danger` (stroke,
|
|
17
|
+
* tint, count badge — red only for incidents); running and active activities
|
|
18
|
+
* are blue (`--cd-blau` stroke on the `--cd-info-soft` tint), an open user
|
|
19
|
+
* task the same with a heavier dashed stroke (shape, not colour, tells it
|
|
20
|
+
* apart — and it stands still: no pulse, so `prefers-reduced-motion` has
|
|
21
|
+
* nothing to stop); counts are white on blue or danger.
|
|
22
|
+
*/
|
|
23
|
+
export declare const BPMN_TOKENS: {
|
|
24
|
+
/** The paper: always light, in every theme. */
|
|
25
|
+
readonly paper: "weiss";
|
|
26
|
+
readonly incident: {
|
|
27
|
+
readonly stroke: "danger";
|
|
28
|
+
readonly fill: "danger-soft";
|
|
29
|
+
};
|
|
30
|
+
readonly running: {
|
|
31
|
+
readonly stroke: "blau";
|
|
32
|
+
readonly fill: "info-soft";
|
|
33
|
+
};
|
|
34
|
+
readonly openTask: {
|
|
35
|
+
readonly stroke: "blau";
|
|
36
|
+
readonly fill: "info-soft";
|
|
37
|
+
};
|
|
38
|
+
readonly instanceBadge: {
|
|
39
|
+
readonly fill: "blau";
|
|
40
|
+
readonly text: "weiss";
|
|
41
|
+
};
|
|
42
|
+
readonly incidentBadge: {
|
|
43
|
+
readonly fill: "danger";
|
|
44
|
+
readonly text: "weiss";
|
|
45
|
+
};
|
|
46
|
+
/** The data-viz ramp of the heatmap: one hue, pale to full blue. */
|
|
47
|
+
readonly heat: {
|
|
48
|
+
readonly from: "info-soft";
|
|
49
|
+
readonly to: "blau";
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
/** A token as a CSS value (`var(--cd-danger)`). */
|
|
53
|
+
export declare function cdVar(name: CdTokenName): string;
|
|
54
|
+
/** A token's value (`#CD1839`) — for code that paints numbers, never for CSS. */
|
|
55
|
+
export declare function cdValue(name: CdTokenName): string;
|
|
56
|
+
/**
|
|
57
|
+
* The overlay stylesheet: marker classes on bpmn-js shapes
|
|
58
|
+
* (`canvas.addMarker(id, "highlight-incident")`) and the count badges added
|
|
59
|
+
* as overlays (`<div class="bpmn-overlay-badge bpmn-overlay-badge--…">`).
|
|
60
|
+
* Inject it once per document with {@link injectBpmnOverlayCss}.
|
|
61
|
+
*/
|
|
62
|
+
export declare const BPMN_OVERLAY_CSS: string;
|
|
63
|
+
/** Add {@link BPMN_OVERLAY_CSS} to the document once (idempotent). */
|
|
64
|
+
export declare function injectBpmnOverlayCss(doc?: Document): void;
|
|
65
|
+
/** The legend swatch of a marker: its tint with a stroke-coloured edge, as an inline style. */
|
|
66
|
+
export declare function markerSwatch(marker: {
|
|
67
|
+
stroke: CdTokenName;
|
|
68
|
+
fill: CdTokenName;
|
|
69
|
+
}): {
|
|
70
|
+
borderColor: string;
|
|
71
|
+
background: string;
|
|
72
|
+
};
|
|
73
|
+
/** The legend swatch of a count badge, as an inline style. */
|
|
74
|
+
export declare function badgeSwatch(badge: {
|
|
75
|
+
fill: CdTokenName;
|
|
76
|
+
text: CdTokenName;
|
|
77
|
+
}): {
|
|
78
|
+
background: string;
|
|
79
|
+
color: string;
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=bpmn-tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bpmn-tokens.d.ts","sourceRoot":"","sources":["../../src/ui/bpmn-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,WAAW;IACtB,+CAA+C;;;;;;;;;;;;;;;;;;;;;;IAO/C,oEAAoE;;;;;CAUrE,CAAA;AAED,mDAAmD;AACnD,wBAAgB,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAE/C;AAED,iFAAiF;AACjF,wBAAgB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAEjD;AAYD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,QAuC5B,CAAA;AAID,sEAAsE;AACtE,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,QAAmB,GAAG,IAAI,CAMnE;AAED,+FAA+F;AAC/F,wBAAgB,YAAY,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG;IAChF,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB,CAEA;AAED,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG;IAC5E,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,CAEA"}
|