@miragon/pulse-widget-shell 0.0.0-stage → 0.22.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 +45 -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,38 @@
|
|
|
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, screen } from "@testing-library/react";
|
|
5
|
+
import { SettingsField, SettingsInput } from "./settings.js";
|
|
6
|
+
import { FIELD_CONTROL } from "./native-select.js";
|
|
7
|
+
afterEach(cleanup);
|
|
8
|
+
describe("SettingsField: inline validation (CI §8/§9, U25)", () => {
|
|
9
|
+
it("says what is wrong under the control, marks it invalid and describes it with the line", () => {
|
|
10
|
+
render(_jsx(SettingsField, { label: "Minimum size", help: "Per side of a comparison.", error: "Enter 1 or more.", children: _jsx(SettingsInput, { defaultValue: "abc" }) }));
|
|
11
|
+
const field = screen.getByRole("textbox", { name: "Minimum size" });
|
|
12
|
+
expect(field.getAttribute("aria-invalid")).toBe("true");
|
|
13
|
+
const error = screen.getByText("Enter 1 or more.");
|
|
14
|
+
const help = screen.getByText("Per side of a comparison.");
|
|
15
|
+
expect(field.getAttribute("aria-describedby")).toBe(`${error.id} ${help.id}`);
|
|
16
|
+
// The danger ink for words on the card, with an icon: colour is not the only signal.
|
|
17
|
+
expect(error.className).toContain("text-danger-ink");
|
|
18
|
+
expect(error.querySelector("svg")?.getAttribute("class")).toContain("lucide-circle-alert");
|
|
19
|
+
// The control's edge turns to danger while it is invalid.
|
|
20
|
+
expect(FIELD_CONTROL).toContain("aria-invalid:border-danger");
|
|
21
|
+
});
|
|
22
|
+
it("leaves a valid field unmarked, described by its help only", () => {
|
|
23
|
+
render(_jsx(SettingsField, { label: "Period", help: "Used when a view names none.", children: _jsx(SettingsInput, { defaultValue: "7d" }) }));
|
|
24
|
+
const field = screen.getByRole("textbox", { name: "Period" });
|
|
25
|
+
expect(field.hasAttribute("aria-invalid")).toBe(false);
|
|
26
|
+
expect(field.getAttribute("aria-describedby")).toBe(screen.getByText("Used when a view names none.").id);
|
|
27
|
+
});
|
|
28
|
+
it("describes a group of controls the same way", () => {
|
|
29
|
+
render(_jsx(SettingsField, { label: "Engines", group: true, error: "Pick one.", children: _jsx("span", { children: _jsx("input", { type: "checkbox", "aria-label": "prod" }) }) }));
|
|
30
|
+
const group = screen.getByRole("group", { name: "Engines" });
|
|
31
|
+
expect(group.getAttribute("aria-describedby")).toBe(screen.getByText("Pick one.").id);
|
|
32
|
+
});
|
|
33
|
+
it("adds no description to a bare field", () => {
|
|
34
|
+
render(_jsx(SettingsField, { label: "Name", children: _jsx(SettingsInput, { defaultValue: "x" }) }));
|
|
35
|
+
expect(screen.getByRole("textbox", { name: "Name" }).hasAttribute("aria-describedby")).toBe(false);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=settings.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.test.js","sourceRoot":"","sources":["../../src/ui/settings.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type EffectiveTheme, type HostStyleVariables } from "./host-context.js";
|
|
3
|
+
/**
|
|
4
|
+
* What the shell reads from the host (SEP-1865 `hostContext`), as REPORTED —
|
|
5
|
+
* no fallbacks folded in, so "the host said nothing" stays distinguishable
|
|
6
|
+
* from "the host said light/en-US". mcp-use's hooks only work under
|
|
7
|
+
* `bootstrapView`; the value is provided once from the bundle root
|
|
8
|
+
* ({@link ViewHostBridge}) and reads as "no host" everywhere else (unit
|
|
9
|
+
* renders, fixtures, standalone embeds).
|
|
10
|
+
*/
|
|
11
|
+
export interface ShellHost {
|
|
12
|
+
/** The bridge is connected; until then every other field is unknown. */
|
|
13
|
+
connected: boolean;
|
|
14
|
+
theme?: EffectiveTheme;
|
|
15
|
+
/** BCP 47 tag, e.g. `de-DE`. */
|
|
16
|
+
locale?: string;
|
|
17
|
+
/** IANA time zone, e.g. `Europe/Berlin`. */
|
|
18
|
+
timeZone?: string;
|
|
19
|
+
/** SEP-1865 `styles.variables` (`--color-*`, `--font-*`, …). */
|
|
20
|
+
styleVariables?: HostStyleVariables;
|
|
21
|
+
/** SEP-1865 `styles.css.fonts` — `@font-face`/`@import` CSS for the host font. */
|
|
22
|
+
fontCss?: string;
|
|
23
|
+
displayMode: string;
|
|
24
|
+
/** Modes the view may request: the host's offer ∩ the view config. */
|
|
25
|
+
availableDisplayModes: readonly string[];
|
|
26
|
+
/** Vertical budget in px from `containerDimensions`; `undefined` = unbounded. */
|
|
27
|
+
maxHeight?: number;
|
|
28
|
+
/** The tool that rendered this view (SEP-1865 `toolInfo`), when the host names it. */
|
|
29
|
+
toolName?: string;
|
|
30
|
+
}
|
|
31
|
+
/** Provide a host description to the shell (the bundle root, or a test/fixture). */
|
|
32
|
+
export declare function ShellHostProvider({ host, children }: {
|
|
33
|
+
host: ShellHost;
|
|
34
|
+
children: ReactNode;
|
|
35
|
+
}): import("react").JSX.Element;
|
|
36
|
+
/** The host as reported to this view — "no host" outside {@link ViewHostBridge}. */
|
|
37
|
+
export declare function useShellHost(): ShellHost;
|
|
38
|
+
/**
|
|
39
|
+
* Bridges the view-scoped host context and display mode (mcp-use hooks, legal
|
|
40
|
+
* only under `bootstrapView`) into the host-agnostic contexts the shell and
|
|
41
|
+
* the widgets read: {@link useShellHost} and `useHostDisplayMode`.
|
|
42
|
+
*/
|
|
43
|
+
export declare function ViewHostBridge({ children }: {
|
|
44
|
+
children: ReactNode;
|
|
45
|
+
}): import("react").JSX.Element;
|
|
46
|
+
//# sourceMappingURL=shell-host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-host.d.ts","sourceRoot":"","sources":["../../src/ui/shell-host.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAG1E,OAAO,EAAe,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAU7F;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,wEAAwE;IACxE,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gEAAgE;IAChE,cAAc,CAAC,EAAE,kBAAkB,CAAA;IACnC,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,sEAAsE;IACtE,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAMD,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAE7F;AAED,oFAAoF;AACpF,wBAAgB,YAAY,IAAI,SAAS,CAExC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAiDnE"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext, useMemo } from "react";
|
|
3
|
+
import { useDisplayMode, useHostContext } from "mcp-use/react";
|
|
4
|
+
import { resolveRecoveryToolName } from "@miragon/mcp-toolkit-ui/hooks";
|
|
5
|
+
import { hostThemeOf } from "./host-context.js";
|
|
6
|
+
import { INLINE_DIAGRAM_MAX_HEIGHT, InlineBudgetProvider, NO_INLINE_BUDGET, } from "./inline-budget.js";
|
|
7
|
+
import { DisplayModeControlProvider } from "./display-mode-toggle.js";
|
|
8
|
+
import { DisplayModeProvider } from "./widget-shell.js";
|
|
9
|
+
const NO_HOST = { connected: true, displayMode: "inline", availableDisplayModes: [] };
|
|
10
|
+
const ShellHostContext = createContext(NO_HOST);
|
|
11
|
+
/** Provide a host description to the shell (the bundle root, or a test/fixture). */
|
|
12
|
+
export function ShellHostProvider({ host, children }) {
|
|
13
|
+
return _jsx(ShellHostContext.Provider, { value: host, children: children });
|
|
14
|
+
}
|
|
15
|
+
/** The host as reported to this view — "no host" outside {@link ViewHostBridge}. */
|
|
16
|
+
export function useShellHost() {
|
|
17
|
+
return useContext(ShellHostContext);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Bridges the view-scoped host context and display mode (mcp-use hooks, legal
|
|
21
|
+
* only under `bootstrapView`) into the host-agnostic contexts the shell and
|
|
22
|
+
* the widgets read: {@link useShellHost} and `useHostDisplayMode`.
|
|
23
|
+
*/
|
|
24
|
+
export function ViewHostBridge({ children }) {
|
|
25
|
+
const { hostContext, isAvailable, maxHeight } = useHostContext();
|
|
26
|
+
const { displayMode, availableDisplayModes, requestDisplayMode } = useDisplayMode();
|
|
27
|
+
const host = useMemo(() => ({
|
|
28
|
+
connected: isAvailable,
|
|
29
|
+
theme: hostThemeOf(hostContext?.theme),
|
|
30
|
+
locale: hostContext?.locale,
|
|
31
|
+
timeZone: hostContext?.timeZone,
|
|
32
|
+
styleVariables: hostContext?.styles?.variables,
|
|
33
|
+
fontCss: hostContext?.styles?.css?.fonts,
|
|
34
|
+
displayMode,
|
|
35
|
+
availableDisplayModes,
|
|
36
|
+
maxHeight,
|
|
37
|
+
toolName: resolveRecoveryToolName(hostContext),
|
|
38
|
+
}), [hostContext, isAvailable, maxHeight, displayMode, availableDisplayModes]);
|
|
39
|
+
// Inline, the view is a card in the chat: lists show the head of their rows
|
|
40
|
+
// (as many as fit, `HostDocument`'s measured fit) and "show more" asks for
|
|
41
|
+
// fullscreen where the host offers it (#396).
|
|
42
|
+
const canExpand = availableDisplayModes.includes("fullscreen");
|
|
43
|
+
const budget = useMemo(() => displayMode === "inline"
|
|
44
|
+
? {
|
|
45
|
+
diagramMaxHeight: INLINE_DIAGRAM_MAX_HEIGHT,
|
|
46
|
+
expand: canExpand ? () => void requestDisplayMode({ mode: "fullscreen" }) : null,
|
|
47
|
+
}
|
|
48
|
+
: NO_INLINE_BUDGET, [displayMode, canExpand, requestDisplayMode]);
|
|
49
|
+
const control = useMemo(() => ({
|
|
50
|
+
displayMode,
|
|
51
|
+
canFullscreen: canExpand,
|
|
52
|
+
request: (mode) => void requestDisplayMode({ mode }),
|
|
53
|
+
}), [displayMode, canExpand, requestDisplayMode]);
|
|
54
|
+
return (_jsx(ShellHostProvider, { host: host, children: _jsx(DisplayModeProvider, { mode: displayMode, children: _jsx(DisplayModeControlProvider, { control: control, children: _jsx(InlineBudgetProvider, { budget: budget, children: children }) }) }) }));
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=shell-host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-host.js","sourceRoot":"","sources":["../../src/ui/shell-host.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type LanguagePref } from "../profile-constants.js";
|
|
2
|
+
import { type ShellSettingsView } from "../shell-settings-contract.js";
|
|
3
|
+
import { type ModelContextSpec } from "./ask-ai-prompt.js";
|
|
4
|
+
/**
|
|
5
|
+
* The query key of `shell_settings_data` — shared by the language section and
|
|
6
|
+
* `ProfileGate`, so a saved language re-fetches ONE entry and every view
|
|
7
|
+
* switches language live.
|
|
8
|
+
*/
|
|
9
|
+
export declare const SHELL_SETTINGS_KEY: readonly ["shell:settings"];
|
|
10
|
+
/**
|
|
11
|
+
* The settings page (`shell:settings-page`): the page's one title, then the
|
|
12
|
+
* shell's language section and every `<module>:settings` section the host
|
|
13
|
+
* bundles (`settingsLayout` over the host registry). `shell_show_settings`
|
|
14
|
+
* renders it, and so does the cockpit's settings tab — one page, wherever
|
|
15
|
+
* it opens. Each section self-fetches; a module that is bundled but not
|
|
16
|
+
* active hides its own.
|
|
17
|
+
*/
|
|
18
|
+
export declare function SettingsPageWidget(): import("react").JSX.Element;
|
|
19
|
+
/**
|
|
20
|
+
* The shell's own section (`shell:settings`): the UI language, the
|
|
21
|
+
* record-level preference every module reads. Self-fetches its feed; when the
|
|
22
|
+
* feed TOOL is missing (a root that persists nothing registers no settings
|
|
23
|
+
* tools) the section hides itself, like any module's section. Any other
|
|
24
|
+
* failure stays visible with a retry.
|
|
25
|
+
*/
|
|
26
|
+
export declare function ShellSettingsWidget({ data: initialData, }: {
|
|
27
|
+
data?: ShellSettingsView | null;
|
|
28
|
+
}): import("react").JSX.Element | null;
|
|
29
|
+
/** What the model learns from the section: the language, and the save tool while it may save. */
|
|
30
|
+
export declare function describeShellSettings(view: ShellSettingsView, language: LanguagePref): Omit<ModelContextSpec, "surface">;
|
|
31
|
+
//# sourceMappingURL=shell-settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-settings.d.ts","sourceRoot":"","sources":["../../src/ui/shell-settings.tsx"],"names":[],"mappings":"AAYA,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtF,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAW5E;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,6BAA8B,CAAA;AAE7D;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,gCAUjC;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EAAE,WAAkB,GACzB,EAAE;IACD,IAAI,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAChC,sCAwBA;AAED,iGAAiG;AACjG,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,YAAY,GACrB,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CASnC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { Button, ErrorState, Skeleton, WidgetHeader, useLocale, useToolMutation, useToolQuery, } from "@miragon/mcp-toolkit-ui";
|
|
4
|
+
import { HostModelContext, WidgetRenderer } from "@miragon/mcp-toolkit-ui/app";
|
|
5
|
+
import { Lock } from "lucide-react";
|
|
6
|
+
import { LANGUAGES, explicitLocale } from "../profile-constants.js";
|
|
7
|
+
import { SHELL_SAVE_SETTINGS, SHELL_SETTINGS_DATA, } from "../shell-settings-contract.js";
|
|
8
|
+
import { useActionFeedback } from "./action-feedback.js";
|
|
9
|
+
import { modelContextText } from "./ask-ai-prompt.js";
|
|
10
|
+
import { classifyError } from "./describe-error.js";
|
|
11
|
+
import { useHostWidgets } from "./host-widgets.js";
|
|
12
|
+
import { NativeSelect } from "./native-select.js";
|
|
13
|
+
import { QueryFallback } from "./query-fallback.js";
|
|
14
|
+
import { SettingsCard, SettingsField } from "./settings.js";
|
|
15
|
+
import { filterLayoutToWidgets, settingsLayout } from "./settings-layout.js";
|
|
16
|
+
import { LANGUAGE_NAMES, settingsLabels } from "./settings-labels.js";
|
|
17
|
+
import { useResetOnChange } from "./use-reset-on-change.js";
|
|
18
|
+
import { WidgetShell } from "./widget-shell.js";
|
|
19
|
+
/**
|
|
20
|
+
* The query key of `shell_settings_data` — shared by the language section and
|
|
21
|
+
* `ProfileGate`, so a saved language re-fetches ONE entry and every view
|
|
22
|
+
* switches language live.
|
|
23
|
+
*/
|
|
24
|
+
export const SHELL_SETTINGS_KEY = ["shell:settings"];
|
|
25
|
+
/**
|
|
26
|
+
* The settings page (`shell:settings-page`): the page's one title, then the
|
|
27
|
+
* shell's language section and every `<module>:settings` section the host
|
|
28
|
+
* bundles (`settingsLayout` over the host registry). `shell_show_settings`
|
|
29
|
+
* renders it, and so does the cockpit's settings tab — one page, wherever
|
|
30
|
+
* it opens. Each section self-fetches; a module that is bundled but not
|
|
31
|
+
* active hides its own.
|
|
32
|
+
*/
|
|
33
|
+
export function SettingsPageWidget() {
|
|
34
|
+
const labels = settingsLabels(useLocale());
|
|
35
|
+
const widgets = useHostWidgets();
|
|
36
|
+
const layout = filterLayoutToWidgets(settingsLayout(Object.keys(widgets)), widgets);
|
|
37
|
+
return (_jsxs(WidgetShell, { children: [_jsx(WidgetHeader, { title: labels.pageTitle, sub: _jsx("span", { children: labels.pageSubtitle }) }), _jsx(WidgetRenderer, { layout: layout, keys: {}, errors: [], widgets: widgets })] }));
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The shell's own section (`shell:settings`): the UI language, the
|
|
41
|
+
* record-level preference every module reads. Self-fetches its feed; when the
|
|
42
|
+
* feed TOOL is missing (a root that persists nothing registers no settings
|
|
43
|
+
* tools) the section hides itself, like any module's section. Any other
|
|
44
|
+
* failure stays visible with a retry.
|
|
45
|
+
*/
|
|
46
|
+
export function ShellSettingsWidget({ data: initialData = null, }) {
|
|
47
|
+
const labels = settingsLabels(useLocale());
|
|
48
|
+
const query = useToolQuery([...SHELL_SETTINGS_KEY], SHELL_SETTINGS_DATA, {}, {
|
|
49
|
+
enabled: !initialData,
|
|
50
|
+
});
|
|
51
|
+
const view = initialData ?? query.data ?? null;
|
|
52
|
+
if (view)
|
|
53
|
+
return _jsx(LanguageSection, { view: view });
|
|
54
|
+
if (query.isError && classifyError(query.error).kind === "notOnServer")
|
|
55
|
+
return null;
|
|
56
|
+
return (_jsx(WidgetShell, { children: _jsx(QueryFallback, { isError: query.isError, error: query.error, errorTitle: labels.loadError, onRetry: () => void query.refetch(), skeleton: _jsx(Skeleton, { className: "h-24 w-full rounded-md" }) }) }));
|
|
57
|
+
}
|
|
58
|
+
/** What the model learns from the section: the language, and the save tool while it may save. */
|
|
59
|
+
export function describeShellSettings(view, language) {
|
|
60
|
+
return {
|
|
61
|
+
summary: view.canSave
|
|
62
|
+
? "The user is on the settings page; the UI language can be changed here or via the save tool."
|
|
63
|
+
: "The user is on the settings page; the UI language is read-only on this server.",
|
|
64
|
+
facts: { language },
|
|
65
|
+
// A literal list, so the app's hand-off guard can check every name.
|
|
66
|
+
tools: ["shell_save_settings"],
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function LanguageSection({ view }) {
|
|
70
|
+
const labels = settingsLabels(useLocale());
|
|
71
|
+
const feedback = useActionFeedback();
|
|
72
|
+
const [language, setLanguage] = useState(view.language);
|
|
73
|
+
// Server truth wins whenever it changes (the refetch after a save, another
|
|
74
|
+
// session's write).
|
|
75
|
+
useResetOnChange(view.language, () => setLanguage(view.language));
|
|
76
|
+
const save = useToolMutation(SHELL_SAVE_SETTINGS, { invalidateKeys: [[...SHELL_SETTINGS_KEY]] });
|
|
77
|
+
const dirty = language !== view.language;
|
|
78
|
+
function handleSave() {
|
|
79
|
+
save.mutate({ language }, {
|
|
80
|
+
onSuccess: () => feedback.succeeded(labels.savedToast),
|
|
81
|
+
onError: (error) => feedback.failed(labels.saveFailedToast, error),
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
const spec = describeShellSettings(view, language);
|
|
85
|
+
return (_jsx(HostModelContext, { content: modelContextText({
|
|
86
|
+
...spec,
|
|
87
|
+
surface: { has: (tool) => tool === SHELL_SAVE_SETTINGS && view.canSave },
|
|
88
|
+
}), children: _jsx(WidgetShell, { children: _jsxs("div", { className: "flex flex-col gap-4", children: [!view.canSave && view.readOnlyReason && (_jsx(ErrorState, { variant: "inline", tone: "info", role: "none", icon: Lock, title: labels.readOnlyTitle, description: labels.readOnly[view.readOnlyReason] })), _jsxs(SettingsCard, { title: labels.languageSection, titleAs: "h2", children: [_jsx(SettingsField, { label: labels.language, help: labels.languageHelp, children: _jsx(NativeSelect, { value: language, disabled: !view.canSave, onChange: (e) => {
|
|
89
|
+
const next = LANGUAGES.find((l) => l === e.target.value);
|
|
90
|
+
if (next)
|
|
91
|
+
setLanguage(next);
|
|
92
|
+
}, children: LANGUAGES.map((l) => {
|
|
93
|
+
const named = explicitLocale(l);
|
|
94
|
+
return (_jsx("option", { value: l, children: named ? LANGUAGE_NAMES[named] : labels.languageSystem }, l));
|
|
95
|
+
}) }) }), view.canSave && (_jsx("div", { children: _jsx(Button, { size: "sm", onClick: handleSave, disabled: !dirty || save.isPending, children: save.isPending ? labels.saving : labels.save }) }))] })] }) }) }));
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=shell-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-settings.js","sourceRoot":"","sources":["../../src/ui/shell-settings.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-settings.test.d.ts","sourceRoot":"","sources":["../../src/ui/shell-settings.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// @vitest-environment happy-dom
|
|
3
|
+
import { afterEach, beforeAll, describe, expect, it } from "vitest";
|
|
4
|
+
import { cleanup, fireEvent, render, screen, waitFor } from "@testing-library/react";
|
|
5
|
+
import { LocaleProvider, queryClient, ToastProvider } from "@miragon/mcp-toolkit-ui";
|
|
6
|
+
import { WidgetFixtureHost } from "@miragon/mcp-toolkit-ui/app";
|
|
7
|
+
import { SHELL_SAVE_SETTINGS, SHELL_SETTINGS_DATA } from "../shell-settings-contract.js";
|
|
8
|
+
import { HostWidgetsProvider } from "./host-widgets.js";
|
|
9
|
+
import { SettingsPageWidget, SHELL_SETTINGS_KEY, ShellSettingsWidget } from "./shell-settings.js";
|
|
10
|
+
/**
|
|
11
|
+
* The shell's language section and the settings page (#346): the section
|
|
12
|
+
* reads and saves the record-level language through the shell's own tools,
|
|
13
|
+
* says why it cannot save, and hides where the root registers no settings
|
|
14
|
+
* tools; the page assembles every module's section from the host registry.
|
|
15
|
+
*/
|
|
16
|
+
beforeAll(() => {
|
|
17
|
+
queryClient.setQueryDefaults([...SHELL_SETTINGS_KEY], { retry: false });
|
|
18
|
+
});
|
|
19
|
+
afterEach(() => {
|
|
20
|
+
cleanup();
|
|
21
|
+
queryClient.clear();
|
|
22
|
+
});
|
|
23
|
+
const Section = () => _jsx(ShellSettingsWidget, {});
|
|
24
|
+
function renderSection(tools) {
|
|
25
|
+
return render(_jsx(LocaleProvider, { locale: "en", children: _jsx(ToastProvider, { children: _jsx(WidgetFixtureHost, { widget: Section, tools: tools }) }) }));
|
|
26
|
+
}
|
|
27
|
+
describe("the language section", () => {
|
|
28
|
+
it("saves the chosen language with the shell's save tool and confirms it", async () => {
|
|
29
|
+
const saves = [];
|
|
30
|
+
renderSection({
|
|
31
|
+
[SHELL_SETTINGS_DATA]: () => ({ language: "system", canSave: true, readOnlyReason: null }),
|
|
32
|
+
[SHELL_SAVE_SETTINGS]: (args) => {
|
|
33
|
+
saves.push(args);
|
|
34
|
+
return { language: "de", canSave: true, readOnlyReason: null };
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
const select = await screen.findByRole("combobox", { name: "Language" });
|
|
38
|
+
expect(select.value).toBe("system");
|
|
39
|
+
const save = screen.getByRole("button", { name: "Save" });
|
|
40
|
+
expect(save.disabled).toBe(true);
|
|
41
|
+
fireEvent.change(select, { target: { value: "de" } });
|
|
42
|
+
expect(save.disabled).toBe(false);
|
|
43
|
+
fireEvent.click(save);
|
|
44
|
+
await waitFor(() => expect(saves).toEqual([{ language: "de" }]));
|
|
45
|
+
expect(await screen.findByText("Language saved")).toBeTruthy();
|
|
46
|
+
});
|
|
47
|
+
it("names each language in itself and the automatic one in the view's language", async () => {
|
|
48
|
+
renderSection({
|
|
49
|
+
[SHELL_SETTINGS_DATA]: () => ({ language: "en", canSave: true, readOnlyReason: null }),
|
|
50
|
+
});
|
|
51
|
+
const select = await screen.findByRole("combobox", { name: "Language" });
|
|
52
|
+
expect([...select.querySelectorAll("option")].map((o) => o.textContent)).toEqual([
|
|
53
|
+
"Automatic (follows the chat app)",
|
|
54
|
+
"English",
|
|
55
|
+
"Deutsch",
|
|
56
|
+
]);
|
|
57
|
+
});
|
|
58
|
+
it("says why it cannot save on top, with disabled fields and no Save", async () => {
|
|
59
|
+
renderSection({
|
|
60
|
+
[SHELL_SETTINGS_DATA]: () => ({
|
|
61
|
+
language: "system",
|
|
62
|
+
canSave: false,
|
|
63
|
+
readOnlyReason: "noSignIn",
|
|
64
|
+
}),
|
|
65
|
+
});
|
|
66
|
+
expect(await screen.findByText("The language is read-only here")).toBeTruthy();
|
|
67
|
+
expect(screen.getByText(/has no sign-in/)).toBeTruthy();
|
|
68
|
+
expect(screen.getByRole("combobox", { name: "Language" }).disabled).toBe(true);
|
|
69
|
+
expect(screen.queryByRole("button", { name: "Save" })).toBeNull();
|
|
70
|
+
});
|
|
71
|
+
it("hides itself where the root registers no settings tools", async () => {
|
|
72
|
+
const { container } = renderSection({
|
|
73
|
+
[SHELL_SETTINGS_DATA]: () => {
|
|
74
|
+
throw new Error(`Tool ${SHELL_SETTINGS_DATA} not found`);
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
await waitFor(() => expect(queryClient.getQueryState([...SHELL_SETTINGS_KEY, {}])?.status).toBe("error"));
|
|
78
|
+
expect(container.textContent).toBe("");
|
|
79
|
+
});
|
|
80
|
+
it("keeps any other failure visible, with a retry", async () => {
|
|
81
|
+
renderSection({
|
|
82
|
+
[SHELL_SETTINGS_DATA]: () => {
|
|
83
|
+
throw new Error("profile store unavailable");
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
expect(await screen.findByRole("button", { name: "Try again" })).toBeTruthy();
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe("the settings page", () => {
|
|
90
|
+
const stub = (label) => () => _jsx("p", { children: label });
|
|
91
|
+
it("renders its one title, then the shell's section and every module section in the host registry", async () => {
|
|
92
|
+
const widgets = {
|
|
93
|
+
"camunda7:engine-health": stub("engine health"),
|
|
94
|
+
"acme:settings": stub("acme section"),
|
|
95
|
+
"shell:settings": stub("language section"),
|
|
96
|
+
"analytics:settings": stub("analytics section"),
|
|
97
|
+
};
|
|
98
|
+
render(_jsx(LocaleProvider, { locale: "de", children: _jsx(HostWidgetsProvider, { widgets: widgets, children: _jsx(WidgetFixtureHost, { widget: () => _jsx(SettingsPageWidget, {}) }) }) }));
|
|
99
|
+
expect(await screen.findByRole("heading", { name: "Einstellungen" })).toBeTruthy();
|
|
100
|
+
expect(screen.getAllByText(/section$/).map((p) => p.textContent)).toEqual([
|
|
101
|
+
"language section",
|
|
102
|
+
"acme section",
|
|
103
|
+
"analytics section",
|
|
104
|
+
]);
|
|
105
|
+
expect(screen.queryByText("engine health")).toBeNull();
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
//# sourceMappingURL=shell-settings.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-settings.test.js","sourceRoot":"","sources":["../../src/ui/shell-settings.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type WidgetComponent } from "@miragon/mcp-toolkit-ui/app";
|
|
2
|
+
import { GenericDataTableWidget, GenericKpiGridWidget } from "./generic-widgets.js";
|
|
3
|
+
/**
|
|
4
|
+
* The `shell:*` widgets every host bundle spreads into its registry next to
|
|
5
|
+
* the modules' maps — the components behind `shellDefinition`'s catalogue
|
|
6
|
+
* (`createShellPlugin`), so link 3 of the widget chain is one spread.
|
|
7
|
+
*/
|
|
8
|
+
export declare const shellWidgets: {
|
|
9
|
+
"shell:kpi-grid": typeof GenericKpiGridWidget;
|
|
10
|
+
"shell:data-table": typeof GenericDataTableWidget;
|
|
11
|
+
"shell:settings": WidgetComponent;
|
|
12
|
+
"shell:settings-page": WidgetComponent;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=shell-widgets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-widgets.d.ts","sourceRoot":"","sources":["../../src/ui/shell-widgets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAA;AACnF,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAInF;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;CAOkB,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { adaptDataWidget } from "@miragon/mcp-toolkit-ui/app";
|
|
2
|
+
import { GenericDataTableWidget, GenericKpiGridWidget } from "./generic-widgets.js";
|
|
3
|
+
import { SettingsPageWidget, ShellSettingsWidget } from "./shell-settings.js";
|
|
4
|
+
import { SHELL_SETTINGS_PAGE_WIDGET, SHELL_SETTINGS_WIDGET } from "../shell-settings-contract.js";
|
|
5
|
+
/**
|
|
6
|
+
* The `shell:*` widgets every host bundle spreads into its registry next to
|
|
7
|
+
* the modules' maps — the components behind `shellDefinition`'s catalogue
|
|
8
|
+
* (`createShellPlugin`), so link 3 of the widget chain is one spread.
|
|
9
|
+
*/
|
|
10
|
+
export const shellWidgets = {
|
|
11
|
+
"shell:kpi-grid": GenericKpiGridWidget,
|
|
12
|
+
"shell:data-table": GenericDataTableWidget,
|
|
13
|
+
// Both read `shell:settings` data: the section self-fetches it, the page
|
|
14
|
+
// receives it from shell_show_settings and leaves it to the section.
|
|
15
|
+
[SHELL_SETTINGS_WIDGET]: adaptDataWidget(ShellSettingsWidget, "shell:settings"),
|
|
16
|
+
[SHELL_SETTINGS_PAGE_WIDGET]: adaptDataWidget(SettingsPageWidget, "shell:settings"),
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=shell-widgets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-widgets.js","sourceRoot":"","sources":["../../src/ui/shell-widgets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAwB,MAAM,6BAA6B,CAAA;AACnF,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAEjG;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,gBAAgB,EAAE,oBAAoB;IACtC,kBAAkB,EAAE,sBAAsB;IAC1C,yEAAyE;IACzE,qEAAqE;IACrE,CAAC,qBAAqB,CAAC,EAAE,eAAe,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;IAC/E,CAAC,0BAA0B,CAAC,EAAE,eAAe,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;CAC1C,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import { type StateHeadingLevel } from "@miragon/mcp-toolkit-ui";
|
|
3
|
+
/** The order a column sorts its rows in (`aria-sort` on its head). */
|
|
4
|
+
export type ColumnSort = "ascending" | "descending";
|
|
5
|
+
export declare function Th({ align, plain, sort, className, children, }: {
|
|
6
|
+
align?: "left" | "right";
|
|
7
|
+
/** Bare header cell (e.g. the empty action column) — border/padding only. */
|
|
8
|
+
plain?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* The rows are sorted by this column: `aria-sort` for screen readers and a
|
|
11
|
+
* direction arrow next to the label, so the order is never a guess.
|
|
12
|
+
*/
|
|
13
|
+
sort?: ColumnSort;
|
|
14
|
+
className?: string;
|
|
15
|
+
children?: ReactNode;
|
|
16
|
+
}): import("react").JSX.Element;
|
|
17
|
+
export declare function Td({ align, className, children, }: {
|
|
18
|
+
align?: "left" | "right";
|
|
19
|
+
className?: string;
|
|
20
|
+
children?: ReactNode;
|
|
21
|
+
}): import("react").JSX.Element;
|
|
22
|
+
/**
|
|
23
|
+
* What an empty result means:
|
|
24
|
+
* - `empty`: nothing to show (no rows, no data yet) — a quiet `Inbox` icon;
|
|
25
|
+
* - `done`: nothing LEFT to do ("No open incidents", "No failed jobs") — a
|
|
26
|
+
* `CircleCheck` in the success tone, so "all clear" never reads like
|
|
27
|
+
* missing data.
|
|
28
|
+
*/
|
|
29
|
+
export type EmptyVariant = "empty" | "done";
|
|
30
|
+
/**
|
|
31
|
+
* The bordered card shown in place of a table (or a list, a chart) when
|
|
32
|
+
* there is nothing to show: the toolkit's `EmptyState` — icon, a title (600),
|
|
33
|
+
* one help line and up to two actions — in the card the table would take.
|
|
34
|
+
* `children` is the title ("No jobs found"); `variant="done"` is the
|
|
35
|
+
* "all done" state.
|
|
36
|
+
*/
|
|
37
|
+
export declare function TableEmptyState({ children, variant, description, action, secondaryAction, icon, titleAs, className, }: {
|
|
38
|
+
/** What is empty, in plain words ("No open incidents"). */
|
|
39
|
+
children: ReactNode;
|
|
40
|
+
variant?: EmptyVariant;
|
|
41
|
+
/** One help line: why it is empty, or what to do next. */
|
|
42
|
+
description?: ReactNode;
|
|
43
|
+
/** The primary next step (a `Button`). */
|
|
44
|
+
action?: ReactNode;
|
|
45
|
+
/** A second, quieter step. */
|
|
46
|
+
secondaryAction?: ReactNode;
|
|
47
|
+
/** A Lucide icon for the concrete situation (e.g. `<SearchX />` for no matches). */
|
|
48
|
+
icon?: ReactNode;
|
|
49
|
+
/** Element of the title. Default `"p"`: it stands in for a table, not a section. */
|
|
50
|
+
titleAs?: StateHeadingLevel;
|
|
51
|
+
className?: string;
|
|
52
|
+
}): import("react").JSX.Element;
|
|
53
|
+
/**
|
|
54
|
+
* The `v3` definition-version chip rendered next to detail-page titles —
|
|
55
|
+
* previously copied character-identical into three hero headers.
|
|
56
|
+
*/
|
|
57
|
+
export declare function VersionChip({ version, className, }: {
|
|
58
|
+
version: number | string;
|
|
59
|
+
className?: string;
|
|
60
|
+
}): import("react").JSX.Element;
|
|
61
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/ui/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAA+B,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAI7F,sEAAsE;AACtE,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,YAAY,CAAA;AAWnD,wBAAgB,EAAE,CAAC,EACjB,KAAc,EACd,KAAa,EACb,IAAI,EACJ,SAAS,EACT,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACxB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,+BAqBA;AAED,wBAAgB,EAAE,CAAC,EACjB,KAAc,EACd,SAAS,EACT,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,+BAYA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAA;AAO3C;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,OAAiB,EACjB,WAAW,EACX,MAAM,EACN,eAAe,EACf,IAAI,EACJ,OAAa,EACb,SAAS,GACV,EAAE;IACD,2DAA2D;IAC3D,QAAQ,EAAE,SAAS,CAAA;IACnB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,8BAA8B;IAC9B,eAAe,CAAC,EAAE,SAAS,CAAA;IAC3B,oFAAoF;IACpF,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,oFAAoF;IACpF,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,+BAkBA;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,SAAS,GACV,EAAE;IACD,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,+BAWA"}
|
package/dist/ui/table.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn, EmptyState, MICRO_LABEL } from "@miragon/mcp-toolkit-ui";
|
|
3
|
+
import { ArrowDown, ArrowUp, CircleCheck, Inbox } from "lucide-react";
|
|
4
|
+
import { Icon } from "./icon.js";
|
|
5
|
+
/**
|
|
6
|
+
* Cockpit table primitives — the `th`/`td` class strings and the bordered
|
|
7
|
+
* empty-state card that the process-instances and definitions tables used to
|
|
8
|
+
* copy per column. Purely presentational; tables keep composing their own
|
|
9
|
+
* `<table>`/`<thead>`/`<tbody>` structure (or the `ListTable` frame).
|
|
10
|
+
*/
|
|
11
|
+
const TH_LABEL = `border-border text-muted-foreground border-y px-4 py-2.5 ${MICRO_LABEL}`;
|
|
12
|
+
export function Th({ align = "left", plain = false, sort, className, children, }) {
|
|
13
|
+
const base = plain
|
|
14
|
+
? "border-border border-y px-4 py-2.5"
|
|
15
|
+
: `${TH_LABEL} ${align === "right" ? "text-right" : "text-left"}`;
|
|
16
|
+
return (_jsx("th", { scope: "col", "aria-sort": sort, className: cn(base, className), children: sort ? (_jsxs("span", { className: cn("inline-flex items-center gap-1 whitespace-nowrap", align === "right" && "flex-row-reverse"), children: [children, _jsx(Icon, { icon: sort === "descending" ? ArrowDown : ArrowUp, dense: true })] })) : (children) }));
|
|
17
|
+
}
|
|
18
|
+
export function Td({ align = "left", className, children, }) {
|
|
19
|
+
return (_jsx("td", { className: cn("border-border text-dense border-b px-4 py-3 align-middle", align === "right" && "text-right", className), children: children }));
|
|
20
|
+
}
|
|
21
|
+
const EMPTY_ICON = {
|
|
22
|
+
empty: { icon: Inbox, tone: "neutral" },
|
|
23
|
+
done: { icon: CircleCheck, tone: "success" },
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* The bordered card shown in place of a table (or a list, a chart) when
|
|
27
|
+
* there is nothing to show: the toolkit's `EmptyState` — icon, a title (600),
|
|
28
|
+
* one help line and up to two actions — in the card the table would take.
|
|
29
|
+
* `children` is the title ("No jobs found"); `variant="done"` is the
|
|
30
|
+
* "all done" state.
|
|
31
|
+
*/
|
|
32
|
+
export function TableEmptyState({ children, variant = "empty", description, action, secondaryAction, icon, titleAs = "p", className, }) {
|
|
33
|
+
const { icon: Glyph, tone } = EMPTY_ICON[variant];
|
|
34
|
+
return (_jsx("div", { "data-empty-variant": variant, className: cn("border-border bg-card rounded-md border", className), children: _jsx(EmptyState, { icon: icon ?? _jsx(Glyph, { strokeWidth: 2.5 }), tone: tone, title: children, description: description, action: action, secondaryAction: secondaryAction, titleAs: titleAs }) }));
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The `v3` definition-version chip rendered next to detail-page titles —
|
|
38
|
+
* previously copied character-identical into three hero headers.
|
|
39
|
+
*/
|
|
40
|
+
export function VersionChip({ version, className, }) {
|
|
41
|
+
return (_jsxs("span", { className: cn("border-border bg-muted text-muted-foreground text-small ml-2 inline-block rounded-sm border px-2 py-0.5 align-middle font-mono font-medium", className), children: ["v", version] }));
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/ui/table.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAA0B,MAAM,yBAAyB,CAAA;AAC7F,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAKhC;;;;;GAKG;AAEH,MAAM,QAAQ,GAAG,4DAA4D,WAAW,EAAE,CAAA;AAE1F,MAAM,UAAU,EAAE,CAAC,EACjB,KAAK,GAAG,MAAM,EACd,KAAK,GAAG,KAAK,EACb,IAAI,EACJ,SAAS,EACT,QAAQ,GAYT;IACC,MAAM,IAAI,GAAG,KAAK;QAChB,CAAC,CAAC,oCAAoC;QACtC,CAAC,CAAC,GAAG,QAAQ,IAAI,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IACnE,OAAO,CACL,aAAI,KAAK,EAAC,KAAK,eAAY,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,YAC5D,IAAI,CAAC,CAAC,CAAC,CACN,gBACE,SAAS,EAAE,EAAE,CACX,kDAAkD,EAClD,KAAK,KAAK,OAAO,IAAI,kBAAkB,CACxC,aAEA,QAAQ,EACT,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,SAAG,IAC5D,CACR,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,GACE,CACN,CAAA;AACH,CAAC;AAED,MAAM,UAAU,EAAE,CAAC,EACjB,KAAK,GAAG,MAAM,EACd,SAAS,EACT,QAAQ,GAKT;IACC,OAAO,CACL,aACE,SAAS,EAAE,EAAE,CACX,0DAA0D,EAC1D,KAAK,KAAK,OAAO,IAAI,YAAY,EACjC,SAAS,CACV,YAEA,QAAQ,GACN,CACN,CAAA;AACH,CAAC;AAWD,MAAM,UAAU,GAAG;IACjB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;IACvC,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;CACpC,CAAA;AAEV;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,QAAQ,EACR,OAAO,GAAG,OAAO,EACjB,WAAW,EACX,MAAM,EACN,eAAe,EACf,IAAI,EACJ,OAAO,GAAG,GAAG,EACb,SAAS,GAgBV;IACC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACjD,OAAO,CACL,oCACsB,OAAO,EAC3B,SAAS,EAAE,EAAE,CAAC,yCAAyC,EAAE,SAAS,CAAC,YAEnE,KAAC,UAAU,IACT,IAAI,EAAE,IAAI,IAAI,KAAC,KAAK,IAAC,WAAW,EAAE,GAAG,GAAI,EACzC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,GAChB,GACE,CACP,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,OAAO,EACP,SAAS,GAIV;IACC,OAAO,CACL,gBACE,SAAS,EAAE,EAAE,CACX,4IAA4I,EAC5I,SAAS,CACV,kBAEC,OAAO,IACJ,CACR,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tone-components.test.d.ts","sourceRoot":"","sources":["../../src/ui/tone-components.test.tsx"],"names":[],"mappings":""}
|