@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,23 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* A named thing with its id, the way every module shows a process or an
|
|
4
|
+
* element (#322 U13): the name first (dense, 600), and under it, quiet, the
|
|
5
|
+
* id in Geist Mono plus whatever else places it (`detail`: its type, its
|
|
6
|
+
* process). Without a known name, or with a name that only repeats the id,
|
|
7
|
+
* the id leads, once, still in mono, so a reader never takes it for a name.
|
|
8
|
+
* An id wraps between its parts first (after `_ - . : /`, before an
|
|
9
|
+
* upper-case letter: `Activity_|Check|Blacklist`) and inside a part only when
|
|
10
|
+
* that part alone is wider than the column (`overflow-wrap: anywhere`), so a
|
|
11
|
+
* long one never widens its column; the words around it break only between
|
|
12
|
+
* words.
|
|
13
|
+
*/
|
|
14
|
+
export declare function NamedId({ name, id, lead, detail, className, }: {
|
|
15
|
+
name: string | null | undefined;
|
|
16
|
+
id: string;
|
|
17
|
+
/** Before the name on its line (a state dot). */
|
|
18
|
+
lead?: ReactNode;
|
|
19
|
+
/** More quiet facts on the second line, after the id ("Service-Task", the process). */
|
|
20
|
+
detail?: ReadonlyArray<ReactNode>;
|
|
21
|
+
className?: string;
|
|
22
|
+
}): import("react").JSX.Element;
|
|
23
|
+
//# sourceMappingURL=named-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"named-id.d.ts","sourceRoot":"","sources":["../../src/ui/named-id.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CAAC,EACtB,IAAI,EACJ,EAAE,EACF,IAAI,EACJ,MAAM,EACN,SAAS,GACV,EAAE;IACD,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,iDAAiD;IACjD,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,uFAAuF;IACvF,MAAM,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,+BA4BA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "@miragon/mcp-toolkit-ui";
|
|
3
|
+
import { BreakableId } from "./id-breaks.js";
|
|
4
|
+
/**
|
|
5
|
+
* A named thing with its id, the way every module shows a process or an
|
|
6
|
+
* element (#322 U13): the name first (dense, 600), and under it, quiet, the
|
|
7
|
+
* id in Geist Mono plus whatever else places it (`detail`: its type, its
|
|
8
|
+
* process). Without a known name, or with a name that only repeats the id,
|
|
9
|
+
* the id leads, once, still in mono, so a reader never takes it for a name.
|
|
10
|
+
* An id wraps between its parts first (after `_ - . : /`, before an
|
|
11
|
+
* upper-case letter: `Activity_|Check|Blacklist`) and inside a part only when
|
|
12
|
+
* that part alone is wider than the column (`overflow-wrap: anywhere`), so a
|
|
13
|
+
* long one never widens its column; the words around it break only between
|
|
14
|
+
* words.
|
|
15
|
+
*/
|
|
16
|
+
export function NamedId({ name, id, lead, detail, className, }) {
|
|
17
|
+
const shown = name && name !== id ? name : null;
|
|
18
|
+
const facts = (detail ?? []).filter((part) => part !== null && part !== undefined && part !== "");
|
|
19
|
+
return (_jsxs("span", { className: cn("flex min-w-0 flex-col", className), children: [_jsxs("span", { className: "text-foreground text-dense flex min-w-0 items-center gap-2 font-semibold", children: [lead, _jsx("span", { className: cn(shown ? "break-words" : "font-mono wrap-anywhere"), children: shown ?? _jsx(BreakableId, { id: id }) })] }), (shown || facts.length > 0) && (_jsxs("span", { className: "text-muted-foreground text-small break-words", children: [shown && (_jsx("span", { className: "font-mono wrap-anywhere", children: _jsx(BreakableId, { id: id }) })), facts.map((part, index) => (_jsxs("span", { children: [(shown || index > 0) && " · ", part] }, index)))] }))] }));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=named-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"named-id.js","sourceRoot":"","sources":["../../src/ui/named-id.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,yBAAyB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,OAAO,CAAC,EACtB,IAAI,EACJ,EAAE,EACF,IAAI,EACJ,MAAM,EACN,SAAS,GASV;IACC,MAAM,KAAK,GAAG,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IAC/C,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,CAAC,CAAA;IACjG,OAAO,CACL,gBAAM,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,aACrD,gBAAM,SAAS,EAAC,0EAA0E,aACvF,IAAI,EACL,eAAM,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,yBAAyB,CAAC,YACnE,KAAK,IAAI,KAAC,WAAW,IAAC,EAAE,EAAE,EAAE,GAAI,GAC5B,IACF,EACN,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAC9B,gBAAM,SAAS,EAAC,8CAA8C,aAC3D,KAAK,IAAI,CACR,eAAM,SAAS,EAAC,yBAAyB,YACvC,KAAC,WAAW,IAAC,EAAE,EAAE,EAAE,GAAI,GAClB,CACR,EACA,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC1B,2BACG,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,EAC7B,IAAI,KAFI,KAAK,CAGT,CACR,CAAC,IACG,CACR,IACI,CACR,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"named-id.test.d.ts","sourceRoot":"","sources":["../../src/ui/named-id.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// @vitest-environment happy-dom
|
|
3
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
4
|
+
import { cleanup, render } from "@testing-library/react";
|
|
5
|
+
import { NamedId } from "./named-id.js";
|
|
6
|
+
afterEach(cleanup);
|
|
7
|
+
/**
|
|
8
|
+
* Names before ids (#322 U13), ONE look in every module: camunda7's tables
|
|
9
|
+
* and analytics' (whose landscape matrix sits inside camunda7's cross-engine
|
|
10
|
+
* overview) render the same process the same way.
|
|
11
|
+
*/
|
|
12
|
+
describe("NamedId", () => {
|
|
13
|
+
it("puts the name first, dense and 600, and the id quietly below in mono", () => {
|
|
14
|
+
const { container } = render(_jsx(NamedId, { name: "Bike Leasing", id: "miraveloLeasing" }));
|
|
15
|
+
const [nameLine, idLine] = Array.from(container.firstElementChild?.children ?? []);
|
|
16
|
+
expect(nameLine.textContent).toBe("Bike Leasing");
|
|
17
|
+
expect(nameLine.className).toContain("font-semibold");
|
|
18
|
+
expect(nameLine.className).toContain("text-dense");
|
|
19
|
+
expect(idLine.className).toContain("text-small");
|
|
20
|
+
expect(idLine.className).toContain("text-muted-foreground");
|
|
21
|
+
const id = container.querySelector(".font-mono");
|
|
22
|
+
expect(id?.textContent).toBe("miraveloLeasing");
|
|
23
|
+
// A long id wraps between its parts, never in the middle of a word.
|
|
24
|
+
expect(id?.className).not.toContain("break-all");
|
|
25
|
+
// A part wider than the column still wraps inside itself, never widening it.
|
|
26
|
+
expect(id?.className).toContain("wrap-anywhere");
|
|
27
|
+
expect(id?.innerHTML).toBe("miravelo<wbr>Leasing");
|
|
28
|
+
});
|
|
29
|
+
it("appends the details to the id line, skipping empty ones", () => {
|
|
30
|
+
const { container } = render(_jsx(NamedId, { name: "Pack", id: "Task_A", detail: ["User task", null, "", "Order"] }));
|
|
31
|
+
expect(container.textContent).toBe("PackTask_A · User task · Order");
|
|
32
|
+
expect(container.querySelector(".font-mono")?.textContent).toBe("Task_A");
|
|
33
|
+
});
|
|
34
|
+
it("lets the id lead in mono when no name is known, and shows no empty line", () => {
|
|
35
|
+
for (const name of [null, undefined, ""]) {
|
|
36
|
+
const { container } = render(_jsx(NamedId, { name: name, id: "order" }));
|
|
37
|
+
expect(container.textContent).toBe("order");
|
|
38
|
+
expect(container.querySelector(".font-mono")?.textContent).toBe("order");
|
|
39
|
+
expect(container.querySelectorAll(".text-small")).toHaveLength(0);
|
|
40
|
+
cleanup();
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
it("shows a name that only repeats the id once, as the id", () => {
|
|
44
|
+
const { container } = render(_jsx(NamedId, { name: "order", id: "order" }));
|
|
45
|
+
expect(container.textContent).toBe("order");
|
|
46
|
+
expect(container.querySelectorAll(".font-mono")).toHaveLength(1);
|
|
47
|
+
});
|
|
48
|
+
it("puts the details under a leading id without a separator in front", () => {
|
|
49
|
+
const { container } = render(_jsx(NamedId, { name: null, id: "Task_A", detail: ["User task"] }));
|
|
50
|
+
expect(container.textContent).toBe("Task_AUser task");
|
|
51
|
+
});
|
|
52
|
+
it("puts the lead before the name on its line", () => {
|
|
53
|
+
const { getByTestId } = render(_jsx(NamedId, { name: "Order", id: "order", lead: _jsx("span", { "data-testid": "dot" }) }));
|
|
54
|
+
expect(getByTestId("dot").nextElementSibling?.textContent).toBe("Order");
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=named-id.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"named-id.test.js","sourceRoot":"","sources":["../../src/ui/named-id.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* The form control look the kit's native inputs share (CI §8 "Eingabefelder"):
|
|
4
|
+
* the `--input` edge (`--cd-kontur`, 3:1 against the card — the decorative
|
|
5
|
+
* `--border` reaches 1.26:1), the danger edge on an entry marked
|
|
6
|
+
* `aria-invalid` (with the field's error line, `SettingsField`), 14 px (the
|
|
7
|
+
* dense-controls step), the md radius and the toolkit's opaque focus ring.
|
|
8
|
+
*/
|
|
9
|
+
export declare const FIELD_CONTROL: string;
|
|
10
|
+
/**
|
|
11
|
+
* Styled native `<select>` on the role tokens — the one canonical class
|
|
12
|
+
* string for dropdowns in widgets (user-profile and the task form each
|
|
13
|
+
* hand-rolled their own, with diverging border tokens). Native on purpose:
|
|
14
|
+
* widget iframes keep the host's popover positioning out of the picture.
|
|
15
|
+
*/
|
|
16
|
+
export declare function NativeSelect({ className, ...props }: ComponentProps<"select">): import("react").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=native-select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-select.d.ts","sourceRoot":"","sources":["../../src/ui/native-select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAG3C;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,QAGzB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,+BAE7E"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cn, FOCUS_RING } from "@miragon/mcp-toolkit-ui";
|
|
3
|
+
/**
|
|
4
|
+
* The form control look the kit's native inputs share (CI §8 "Eingabefelder"):
|
|
5
|
+
* the `--input` edge (`--cd-kontur`, 3:1 against the card — the decorative
|
|
6
|
+
* `--border` reaches 1.26:1), the danger edge on an entry marked
|
|
7
|
+
* `aria-invalid` (with the field's error line, `SettingsField`), 14 px (the
|
|
8
|
+
* dense-controls step), the md radius and the toolkit's opaque focus ring.
|
|
9
|
+
*/
|
|
10
|
+
export const FIELD_CONTROL = cn("border-input bg-background text-foreground text-dense aria-invalid:border-danger h-9 rounded-md border px-2 disabled:cursor-not-allowed disabled:opacity-50", FOCUS_RING);
|
|
11
|
+
/**
|
|
12
|
+
* Styled native `<select>` on the role tokens — the one canonical class
|
|
13
|
+
* string for dropdowns in widgets (user-profile and the task form each
|
|
14
|
+
* hand-rolled their own, with diverging border tokens). Native on purpose:
|
|
15
|
+
* widget iframes keep the host's popover positioning out of the picture.
|
|
16
|
+
*/
|
|
17
|
+
export function NativeSelect({ className, ...props }) {
|
|
18
|
+
return _jsx("select", { ...props, className: cn(FIELD_CONTROL, className) });
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=native-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-select.js","sourceRoot":"","sources":["../../src/ui/native-select.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAExD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAC7B,6JAA6J,EAC7J,UAAU,CACX,CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA4B;IAC5E,OAAO,oBAAY,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,GAAI,CAAA;AACvE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* The frame of a client-side router's views (#344 N107): after a navigation
|
|
4
|
+
* — a new `viewKey` — focus moves to the new view (the frame itself, so the
|
|
5
|
+
* next Tab starts there and a screen reader reads on from it), and its
|
|
6
|
+
* `label` is announced in a polite live region. Without it a drill or a
|
|
7
|
+
* breadcrumb pop dropped focus on the document body and said nothing.
|
|
8
|
+
*
|
|
9
|
+
* The first render takes no focus (the view only opened); every later key
|
|
10
|
+
* does. Render the same frame for every view of the router, so it persists
|
|
11
|
+
* across them.
|
|
12
|
+
*/
|
|
13
|
+
export declare function NavigationFocus({ viewKey, label, children, }: {
|
|
14
|
+
/** Identifies the view on screen; a change is a navigation. */
|
|
15
|
+
viewKey: string;
|
|
16
|
+
/** The view's name, announced after a navigation ("Incidents", "Order 4711"). */
|
|
17
|
+
label: string;
|
|
18
|
+
children: ReactNode;
|
|
19
|
+
}): import("react").JSX.Element;
|
|
20
|
+
//# sourceMappingURL=navigation-focus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation-focus.d.ts","sourceRoot":"","sources":["../../src/ui/navigation-focus.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEzD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,KAAK,EACL,QAAQ,GACT,EAAE;IACD,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAA;IACf,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,SAAS,CAAA;CACpB,+BAgBA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* The frame of a client-side router's views (#344 N107): after a navigation
|
|
5
|
+
* — a new `viewKey` — focus moves to the new view (the frame itself, so the
|
|
6
|
+
* next Tab starts there and a screen reader reads on from it), and its
|
|
7
|
+
* `label` is announced in a polite live region. Without it a drill or a
|
|
8
|
+
* breadcrumb pop dropped focus on the document body and said nothing.
|
|
9
|
+
*
|
|
10
|
+
* The first render takes no focus (the view only opened); every later key
|
|
11
|
+
* does. Render the same frame for every view of the router, so it persists
|
|
12
|
+
* across them.
|
|
13
|
+
*/
|
|
14
|
+
export function NavigationFocus({ viewKey, label, children, }) {
|
|
15
|
+
const frame = useRef(null);
|
|
16
|
+
const shown = useRef(viewKey);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (shown.current === viewKey)
|
|
19
|
+
return;
|
|
20
|
+
shown.current = viewKey;
|
|
21
|
+
frame.current?.focus();
|
|
22
|
+
}, [viewKey]);
|
|
23
|
+
return (_jsxs("div", { ref: frame, tabIndex: -1, className: "min-w-0 outline-none", children: [_jsx("span", { role: "status", "aria-live": "polite", className: "sr-only", children: label }), children] }));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=navigation-focus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation-focus.js","sourceRoot":"","sources":["../../src/ui/navigation-focus.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAkB,MAAM,OAAO,CAAA;AAEzD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,OAAO,EACP,KAAK,EACL,QAAQ,GAOT;IACC,MAAM,KAAK,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO;YAAE,OAAM;QACrC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAA;QACvB,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;IACxB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IACb,OAAO,CACL,eAAK,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS,EAAC,sBAAsB,aAC7D,eAAM,IAAI,EAAC,QAAQ,eAAW,QAAQ,EAAC,SAAS,EAAC,SAAS,YACvD,KAAK,GACD,EACN,QAAQ,IACL,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation-focus.test.d.ts","sourceRoot":"","sources":["../../src/ui/navigation-focus.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// @vitest-environment happy-dom
|
|
3
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
4
|
+
import { cleanup, render, screen } from "@testing-library/react";
|
|
5
|
+
import { NavigationFocus } from "./navigation-focus.js";
|
|
6
|
+
/** #344 N107: a client-side navigation moves focus to the new view and names it. */
|
|
7
|
+
afterEach(cleanup);
|
|
8
|
+
const frameOf = () => screen.getByText("view body").parentElement;
|
|
9
|
+
describe("NavigationFocus", () => {
|
|
10
|
+
it("takes no focus when the view only opened", () => {
|
|
11
|
+
render(_jsx(NavigationFocus, { viewKey: "overview", label: "Overview", children: _jsx("p", { children: "view body" }) }));
|
|
12
|
+
expect(document.activeElement).toBe(document.body);
|
|
13
|
+
expect(frameOf().getAttribute("tabindex")).toBe("-1");
|
|
14
|
+
});
|
|
15
|
+
it("moves focus to the view after a navigation and says where you are", () => {
|
|
16
|
+
const { rerender } = render(_jsx(NavigationFocus, { viewKey: "overview", label: "Overview", children: _jsx("p", { children: "view body" }) }));
|
|
17
|
+
rerender(_jsx(NavigationFocus, { viewKey: "incidents", label: "Incidents", children: _jsx("p", { children: "view body" }) }));
|
|
18
|
+
expect(document.activeElement).toBe(frameOf());
|
|
19
|
+
expect(screen.getByRole("status").textContent).toBe("Incidents");
|
|
20
|
+
});
|
|
21
|
+
it("leaves focus where it is while the same view re-renders", () => {
|
|
22
|
+
const { rerender } = render(_jsxs(NavigationFocus, { viewKey: "overview", label: "Overview", children: [_jsx("button", { type: "button", children: "act" }), _jsx("p", { children: "view body" })] }));
|
|
23
|
+
screen.getByRole("button", { name: "act" }).focus();
|
|
24
|
+
rerender(_jsxs(NavigationFocus, { viewKey: "overview", label: "Overview", children: [_jsx("button", { type: "button", children: "act" }), _jsx("p", { children: "view body" })] }));
|
|
25
|
+
expect(document.activeElement).toBe(screen.getByRole("button", { name: "act" }));
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=navigation-focus.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation-focus.test.js","sourceRoot":"","sources":["../../src/ui/navigation-focus.test.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAChC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,oFAAoF;AACpF,SAAS,CAAC,OAAO,CAAC,CAAA;AAElB,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,aAA4B,CAAA;AAEhF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CACJ,KAAC,eAAe,IAAC,OAAO,EAAC,UAAU,EAAC,KAAK,EAAC,UAAU,YAClD,oCAAgB,GACA,CACnB,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAClD,MAAM,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CACzB,KAAC,eAAe,IAAC,OAAO,EAAC,UAAU,EAAC,KAAK,EAAC,UAAU,YAClD,oCAAgB,GACA,CACnB,CAAA;QACD,QAAQ,CACN,KAAC,eAAe,IAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,WAAW,YACpD,oCAAgB,GACA,CACnB,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CACzB,MAAC,eAAe,IAAC,OAAO,EAAC,UAAU,EAAC,KAAK,EAAC,UAAU,aAClD,iBAAQ,IAAI,EAAC,QAAQ,oBAAa,EAClC,oCAAgB,IACA,CACnB,CAAA;QACD,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QACnD,QAAQ,CACN,MAAC,eAAe,IAAC,OAAO,EAAC,UAAU,EAAC,KAAK,EAAC,UAAU,aAClD,iBAAQ,IAAI,EAAC,QAAQ,oBAAa,EAClC,oCAAgB,IACA,CACnB,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAClF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single, consistent "jump to the engine's own web app" affordance (the
|
|
3
|
+
* vendor's cockpit, which leaves this app in a new tab). A secondary button
|
|
4
|
+
* of the view's one action size (the toolkit's `buttonVariants` outline,
|
|
5
|
+
* `sm`: 32 px, 14 px, 600, like the chat hand-offs beside it), since it is
|
|
6
|
+
* deterministic navigation, not AI. It belongs in the view's action group,
|
|
7
|
+
* never in the meta line.
|
|
8
|
+
* Named after the vendor ("In CIB seven öffnen" / "Open in CIB seven"), not
|
|
9
|
+
* "Cockpit", which is this app's own name; the accessible name adds that it
|
|
10
|
+
* opens a new tab. Owns the host bridge call, so callers pass only the URL.
|
|
11
|
+
* `variant="menuitem"` makes it an entry of a row's action menu
|
|
12
|
+
* ({@link MENU_ITEM}, `role="menuitem"`, its icon in front like the menu's
|
|
13
|
+
* other entries).
|
|
14
|
+
*/
|
|
15
|
+
export declare function OpenInCockpitLink({ url, vendor, label, variant, }: {
|
|
16
|
+
url: string;
|
|
17
|
+
/**
|
|
18
|
+
* The engine product's display name from the provider branding
|
|
19
|
+
* (`provider.branding.displayName`: "CIB seven", "Camunda 7", "Operaton").
|
|
20
|
+
* Without it the link reads "Im Engine-Cockpit öffnen" / "Open in engine cockpit".
|
|
21
|
+
*/
|
|
22
|
+
vendor?: string;
|
|
23
|
+
/** Visible text override for a narrower target, e.g. "Instanz in CIB seven öffnen". */
|
|
24
|
+
label?: string;
|
|
25
|
+
/** `outline` (default): a link on its own; `menuitem`: an entry of an action menu. */
|
|
26
|
+
variant?: "outline" | "menuitem";
|
|
27
|
+
}): import("react").JSX.Element;
|
|
28
|
+
//# sourceMappingURL=open-in-cockpit-link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-in-cockpit-link.d.ts","sourceRoot":"","sources":["../../src/ui/open-in-cockpit-link.tsx"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,GAAG,EACH,MAAM,EACN,KAAK,EACL,OAAmB,GACpB,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;IACX;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sFAAsF;IACtF,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;CACjC,+BA4BA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { buttonVariants, useLocale } from "@miragon/mcp-toolkit-ui";
|
|
3
|
+
import { ExternalLink } from "lucide-react";
|
|
4
|
+
import { useHostActions } from "@miragon/mcp-toolkit-ui/app";
|
|
5
|
+
import { Icon } from "./icon.js";
|
|
6
|
+
import { kitLabels } from "./kit-labels.js";
|
|
7
|
+
import { MENU_ITEM } from "./menu-item.js";
|
|
8
|
+
/**
|
|
9
|
+
* The single, consistent "jump to the engine's own web app" affordance (the
|
|
10
|
+
* vendor's cockpit, which leaves this app in a new tab). A secondary button
|
|
11
|
+
* of the view's one action size (the toolkit's `buttonVariants` outline,
|
|
12
|
+
* `sm`: 32 px, 14 px, 600, like the chat hand-offs beside it), since it is
|
|
13
|
+
* deterministic navigation, not AI. It belongs in the view's action group,
|
|
14
|
+
* never in the meta line.
|
|
15
|
+
* Named after the vendor ("In CIB seven öffnen" / "Open in CIB seven"), not
|
|
16
|
+
* "Cockpit", which is this app's own name; the accessible name adds that it
|
|
17
|
+
* opens a new tab. Owns the host bridge call, so callers pass only the URL.
|
|
18
|
+
* `variant="menuitem"` makes it an entry of a row's action menu
|
|
19
|
+
* ({@link MENU_ITEM}, `role="menuitem"`, its icon in front like the menu's
|
|
20
|
+
* other entries).
|
|
21
|
+
*/
|
|
22
|
+
export function OpenInCockpitLink({ url, vendor, label, variant = "outline", }) {
|
|
23
|
+
const host = useHostActions();
|
|
24
|
+
const labels = kitLabels(useLocale());
|
|
25
|
+
const text = label ?? labels.openInVendor(vendor);
|
|
26
|
+
const link = {
|
|
27
|
+
href: url,
|
|
28
|
+
target: "_blank",
|
|
29
|
+
rel: "noopener noreferrer",
|
|
30
|
+
onClick: (e) => {
|
|
31
|
+
e.preventDefault();
|
|
32
|
+
host.openLink(url);
|
|
33
|
+
},
|
|
34
|
+
"aria-label": labels.opensInNewTab(text),
|
|
35
|
+
};
|
|
36
|
+
if (variant === "menuitem") {
|
|
37
|
+
return (_jsxs("a", { ...link, role: "menuitem", tabIndex: -1, className: MENU_ITEM, children: [_jsx(Icon, { icon: ExternalLink, dense: true }), text] }));
|
|
38
|
+
}
|
|
39
|
+
return (_jsxs("a", { ...link, className: buttonVariants({ variant: "outline", size: "sm" }), children: [text, _jsx(Icon, { icon: ExternalLink, dense: true })] }));
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=open-in-cockpit-link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-in-cockpit-link.js","sourceRoot":"","sources":["../../src/ui/open-in-cockpit-link.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,GAAG,EACH,MAAM,EACN,KAAK,EACL,OAAO,GAAG,SAAS,GAapB;IACC,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;IAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,CAAA;IACrC,MAAM,IAAI,GAAG,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IACjD,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,qBAAqB;QAC1B,OAAO,EAAE,CAAC,CAAgC,EAAE,EAAE;YAC5C,CAAC,CAAC,cAAc,EAAE,CAAA;YAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;QACD,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;KACzC,CAAA;IACD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,CACL,gBAAO,IAAI,EAAE,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,aAC7D,KAAC,IAAI,IAAC,IAAI,EAAE,YAAY,EAAE,KAAK,SAAG,EACjC,IAAI,IACH,CACL,CAAA;IACH,CAAC;IACD,OAAO,CACL,gBAAO,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,aACvE,IAAI,EACL,KAAC,IAAI,IAAC,IAAI,EAAE,YAAY,EAAE,KAAK,SAAG,IAChC,CACL,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paged-list-footer.test.d.ts","sourceRoot":"","sources":["../../src/ui/paged-list-footer.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// @vitest-environment happy-dom
|
|
3
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
4
|
+
import { cleanup, fireEvent, render, screen } from "@testing-library/react";
|
|
5
|
+
import { LocaleProvider, PagedListFooter } from "@miragon/mcp-toolkit-ui";
|
|
6
|
+
import { NO_FIT_ROWS } from "./inline-fit.js";
|
|
7
|
+
import { PagedRows } from "./paged-rows.js";
|
|
8
|
+
afterEach(() => cleanup());
|
|
9
|
+
/** A settled page 0 of the current filter: two of three rows, nothing in flight. */
|
|
10
|
+
function paged(overrides = {}) {
|
|
11
|
+
return {
|
|
12
|
+
items: ["a", "b"],
|
|
13
|
+
firstPage: {},
|
|
14
|
+
total: 3,
|
|
15
|
+
stale: false,
|
|
16
|
+
hasMore: true,
|
|
17
|
+
loadMore: vi.fn(),
|
|
18
|
+
loading: false,
|
|
19
|
+
refreshing: false,
|
|
20
|
+
loadingMore: false,
|
|
21
|
+
error: null,
|
|
22
|
+
retry: vi.fn(),
|
|
23
|
+
loadMoreError: null,
|
|
24
|
+
fit: NO_FIT_ROWS,
|
|
25
|
+
footerLabels: undefined,
|
|
26
|
+
...overrides,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/** The count line's wrapper: visually hidden while there is nothing to show. */
|
|
30
|
+
const footerOf = (status) => status.closest('[data-slot="list-footer"]');
|
|
31
|
+
function renderList(state) {
|
|
32
|
+
render(_jsxs(_Fragment, { children: [_jsx(PagedRows, { paged: state, children: _jsx("p", { children: "rows" }) }), _jsx(PagedListFooter, { paged: state, noun: "items" })] }));
|
|
33
|
+
return { rows: screen.getByText("rows").parentElement, status: screen.getByRole("status") };
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The kit's PagedRows over the toolkit's PagedListFooter (2.8, which took the
|
|
37
|
+
* widget-shell fork's behaviour; its own suite is `PagedListFooter.test.tsx`
|
|
38
|
+
* in @miragon/mcp-toolkit-ui). `usePagedViewData`'s result passes as is.
|
|
39
|
+
*
|
|
40
|
+
* While a new search or filter is in flight (or has failed) the list keeps the
|
|
41
|
+
* previous result on screen (`stale`). A sighted operator must SEE that —
|
|
42
|
+
* a marked list (a bar in the state's tone, info in flight, warning once it
|
|
43
|
+
* failed; never a dimming that drops muted text under AA), a visible
|
|
44
|
+
* "Updating…" — and no "Showing X of Y" may pair the previous count with the
|
|
45
|
+
* new search (#341 review). The list has ONE live region: the footer's count
|
|
46
|
+
* line.
|
|
47
|
+
*/
|
|
48
|
+
describe("PagedListFooter + PagedRows — the stale and in-flight states", () => {
|
|
49
|
+
it("a settled page: the count in the one live region, rows not marked", () => {
|
|
50
|
+
const { rows, status } = renderList(paged());
|
|
51
|
+
expect(screen.getAllByRole("status")).toHaveLength(1);
|
|
52
|
+
expect(status.textContent).toBe("Showing 2 of 3 items");
|
|
53
|
+
expect(footerOf(status).className).not.toContain("sr-only");
|
|
54
|
+
expect(rows.getAttribute("aria-busy")).toBe("false");
|
|
55
|
+
expect(rows.hasAttribute("data-stale")).toBe(false);
|
|
56
|
+
expect(rows.querySelector("[data-tone]")).toBeNull();
|
|
57
|
+
expect(rows.className).not.toContain("opacity");
|
|
58
|
+
});
|
|
59
|
+
it("a new search in flight: a VISIBLE Updating… line, busy rows marked info, no count", () => {
|
|
60
|
+
const { rows, status } = renderList(paged({ stale: true, refreshing: true, hasMore: false }));
|
|
61
|
+
expect(footerOf(status).className).not.toContain("sr-only");
|
|
62
|
+
expect(status.textContent).toBe("Updating…");
|
|
63
|
+
expect(rows.getAttribute("aria-busy")).toBe("true");
|
|
64
|
+
expect(rows.getAttribute("data-stale")).toBe("true");
|
|
65
|
+
expect(rows.querySelector("[data-tone]")?.getAttribute("data-tone")).toBe("info");
|
|
66
|
+
expect(rows.className).not.toContain("opacity");
|
|
67
|
+
expect(screen.queryByText(/Showing/)).toBeNull();
|
|
68
|
+
});
|
|
69
|
+
it("a failed search: the rows stay marked (warning), the failure says so, still no count", () => {
|
|
70
|
+
const state = paged({ stale: true, hasMore: false, error: new Error("engine down") });
|
|
71
|
+
const { rows, status } = renderList(state);
|
|
72
|
+
const alert = screen.getByRole("alert");
|
|
73
|
+
expect(alert.textContent).toContain("Couldn't update the list");
|
|
74
|
+
expect(alert.textContent).toContain("You're seeing the previous result.");
|
|
75
|
+
// The raw reason sits under "Details", out of the sentence.
|
|
76
|
+
expect(alert.querySelector("details pre")?.textContent).toBe("engine down");
|
|
77
|
+
expect(alert.getAttribute("data-tone")).toBe("warning");
|
|
78
|
+
expect(rows.getAttribute("data-stale")).toBe("true");
|
|
79
|
+
expect(rows.querySelector("[data-tone]")?.getAttribute("data-tone")).toBe("warning");
|
|
80
|
+
expect(footerOf(status).className).toBe("sr-only");
|
|
81
|
+
expect(status.textContent).toBe("");
|
|
82
|
+
expect(screen.queryByText(/Showing/)).toBeNull();
|
|
83
|
+
fireEvent.click(screen.getByRole("button", { name: "Try again" }));
|
|
84
|
+
expect(state.retry).toHaveBeenCalledTimes(1);
|
|
85
|
+
expect(state.loadMore).not.toHaveBeenCalled();
|
|
86
|
+
});
|
|
87
|
+
it("a same-filter refetch: Updating… is visible, the count of THIS filter stays", () => {
|
|
88
|
+
const { rows, status } = renderList(paged({ refreshing: true }));
|
|
89
|
+
expect(status.textContent).toBe("Showing 2 of 3 itemsUpdating…");
|
|
90
|
+
expect(footerOf(status).className).not.toContain("sr-only");
|
|
91
|
+
expect(rows.getAttribute("aria-busy")).toBe("true");
|
|
92
|
+
expect(rows.hasAttribute("data-stale")).toBe(false);
|
|
93
|
+
});
|
|
94
|
+
it("a search that finds nothing: the live region stays and says so", () => {
|
|
95
|
+
const { status } = renderList(paged({ items: [], total: 0, hasMore: false }));
|
|
96
|
+
expect(status.textContent).toBe("No entries");
|
|
97
|
+
expect(footerOf(status).className).toBe("sr-only");
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
/**
|
|
101
|
+
* The footer's strings come from the toolkit's catalog: without a caller's
|
|
102
|
+
* texts they follow the active locale like the rest of the kit (#339) — the
|
|
103
|
+
* two failure lines included.
|
|
104
|
+
*/
|
|
105
|
+
describe("PagedListFooter — the catalog follows the active locale", () => {
|
|
106
|
+
function renderGerman(state) {
|
|
107
|
+
render(_jsx(LocaleProvider, { locale: "de", children: _jsx(PagedListFooter, { paged: state, noun: "Eintr\u00E4ge" }) }));
|
|
108
|
+
}
|
|
109
|
+
it("in flight: Wird aktualisiert…", () => {
|
|
110
|
+
renderGerman(paged({ stale: true, refreshing: true, hasMore: false }));
|
|
111
|
+
expect(screen.getByRole("status").textContent).toBe("Wird aktualisiert…");
|
|
112
|
+
});
|
|
113
|
+
it("a failed page 0 and a failed load-more, each with the German retry", () => {
|
|
114
|
+
renderGerman(paged({
|
|
115
|
+
stale: true,
|
|
116
|
+
error: new Error("weg"),
|
|
117
|
+
loadMoreError: new Error("Zeitüberschreitung"),
|
|
118
|
+
}));
|
|
119
|
+
const [refresh, more] = screen.getAllByRole("alert");
|
|
120
|
+
expect(refresh.textContent).toContain("Die Liste konnte nicht aktualisiert werden");
|
|
121
|
+
expect(refresh.textContent).toContain("Du siehst das vorherige Ergebnis.");
|
|
122
|
+
expect(refresh.querySelector("details pre")?.textContent).toBe("weg");
|
|
123
|
+
expect(more.textContent).toContain("Weitere Einträge konnten nicht geladen werden");
|
|
124
|
+
expect(more.querySelector("details pre")?.textContent).toBe("Zeitüberschreitung");
|
|
125
|
+
expect(screen.getAllByRole("button", { name: "Erneut versuchen" })).toHaveLength(2);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
//# sourceMappingURL=paged-list-footer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paged-list-footer.test.js","sourceRoot":"","sources":["../../src/ui/paged-list-footer.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { PagedViewData } from "./use-paged-view-data.js";
|
|
3
|
+
/**
|
|
4
|
+
* The rows of a paged list — its table (or row cards) and empty state —
|
|
5
|
+
* marked while they are the PREVIOUS result (`paged.stale`: a new search or
|
|
6
|
+
* filter is in flight or has failed) and `aria-busy` while a page 0 is in
|
|
7
|
+
* flight. The mark is a bar along the left edge in the tone of the state
|
|
8
|
+
* (info while the new page loads, warning once it failed), not a dimming:
|
|
9
|
+
* faded rows push muted text under 4.5:1. Pairs with the toolkit's
|
|
10
|
+
* `PagedListFooter` (`paged` passes as is), whose live count line says in
|
|
11
|
+
* words what the bar marks ("Updating…", the failure above it), so old rows
|
|
12
|
+
* under a new search never read as its answer. The toolkit did not lift this
|
|
13
|
+
* piece: it is the kit's own. Its rows are already the inline head
|
|
14
|
+
* (`usePagedViewData`, #396), so a `ListTable` inside does not cap them again
|
|
15
|
+
* and hands its body to the list's fit; without a table, the wrapper's
|
|
16
|
+
* children (row cards) are the rows the fit measures.
|
|
17
|
+
*/
|
|
18
|
+
export declare function PagedRows<TItem, TData>({ paged, className, children, }: {
|
|
19
|
+
paged: PagedViewData<TItem, TData>;
|
|
20
|
+
/** Merged into the wrapper (e.g. the `flex flex-col gap-2` of a card list). */
|
|
21
|
+
className?: string;
|
|
22
|
+
children: ReactNode;
|
|
23
|
+
}): import("react").JSX.Element;
|
|
24
|
+
//# sourceMappingURL=paged-rows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paged-rows.d.ts","sourceRoot":"","sources":["../../src/ui/paged-rows.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAE7D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,EACtC,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAClC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,SAAS,CAAA;CACpB,+BAwBA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn, TONE_DOT } from "@miragon/mcp-toolkit-ui";
|
|
3
|
+
import { RowsBudgeted } from "./inline-budget.js";
|
|
4
|
+
/**
|
|
5
|
+
* The rows of a paged list — its table (or row cards) and empty state —
|
|
6
|
+
* marked while they are the PREVIOUS result (`paged.stale`: a new search or
|
|
7
|
+
* filter is in flight or has failed) and `aria-busy` while a page 0 is in
|
|
8
|
+
* flight. The mark is a bar along the left edge in the tone of the state
|
|
9
|
+
* (info while the new page loads, warning once it failed), not a dimming:
|
|
10
|
+
* faded rows push muted text under 4.5:1. Pairs with the toolkit's
|
|
11
|
+
* `PagedListFooter` (`paged` passes as is), whose live count line says in
|
|
12
|
+
* words what the bar marks ("Updating…", the failure above it), so old rows
|
|
13
|
+
* under a new search never read as its answer. The toolkit did not lift this
|
|
14
|
+
* piece: it is the kit's own. Its rows are already the inline head
|
|
15
|
+
* (`usePagedViewData`, #396), so a `ListTable` inside does not cap them again
|
|
16
|
+
* and hands its body to the list's fit; without a table, the wrapper's
|
|
17
|
+
* children (row cards) are the rows the fit measures.
|
|
18
|
+
*/
|
|
19
|
+
export function PagedRows({ paged, className, children, }) {
|
|
20
|
+
const tone = paged.refreshing ? "info" : "warning";
|
|
21
|
+
// The wrapper's children are the rows when no table inside names its body.
|
|
22
|
+
const { attachFallback } = paged.fit;
|
|
23
|
+
return (_jsxs("div", { ref: attachFallback, "aria-busy": paged.refreshing, "data-stale": paged.stale || undefined, className: cn("relative", className), children: [paged.stale && (_jsx("span", { "aria-hidden": "true", "data-tone": tone, className: cn("pointer-events-none absolute inset-y-0 -left-2 z-10 w-0.5 rounded-full", TONE_DOT[tone]) })), _jsx(RowsBudgeted, { rows: paged.fit, children: children })] }));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=paged-rows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paged-rows.js","sourceRoot":"","sources":["../../src/ui/paged-rows.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,SAAS,CAAe,EACtC,KAAK,EACL,SAAS,EACT,QAAQ,GAMT;IACC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IAClD,2EAA2E;IAC3E,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC,GAAG,CAAA;IACpC,OAAO,CACL,eACE,GAAG,EAAE,cAAc,eACR,KAAK,CAAC,UAAU,gBACf,KAAK,CAAC,KAAK,IAAI,SAAS,EACpC,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,aAEnC,KAAK,CAAC,KAAK,IAAI,CACd,8BACc,MAAM,eACP,IAAI,EACf,SAAS,EAAE,EAAE,CACX,wEAAwE,EACxE,QAAQ,CAAC,IAAI,CAAC,CACf,GACD,CACH,EACD,KAAC,YAAY,IAAC,IAAI,EAAE,KAAK,CAAC,GAAG,YAAG,QAAQ,GAAgB,IACpD,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-tool-result.test.d.ts","sourceRoot":"","sources":["../../src/ui/parse-tool-result.test.ts"],"names":[],"mappings":""}
|