@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 @@
|
|
|
1
|
+
{"version":3,"file":"glossary.test.js","sourceRoot":"","sources":["../../src/testing/glossary.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The glyph gate (CI: modeler-tool-design §11, brand-review B9/U4/U8). Widget
|
|
3
|
+
* UI draws function icons with Lucide (the kit's `Icon`), never with Unicode
|
|
4
|
+
* glyphs or emoji: they render in whatever font the host has (⚙ and ⏱ came
|
|
5
|
+
* out as colour emoji), carry no accessible name and mix icon styles. ✦ is
|
|
6
|
+
* the AI-sparkle the CI rules out, × the close/remove icon (Lucide `X`).
|
|
7
|
+
*/
|
|
8
|
+
export declare const FORBIDDEN_GLYPHS: readonly string[];
|
|
9
|
+
export interface GlyphFinding {
|
|
10
|
+
file: string;
|
|
11
|
+
line: number;
|
|
12
|
+
glyph: string;
|
|
13
|
+
text: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Forbidden glyphs and emoji in the string literals and JSX text of one
|
|
17
|
+
* source file, a lone symbol as a JSX element's whole content, and Lucide's
|
|
18
|
+
* sparkle imports (comments are not scanned: a comment may name what it bans).
|
|
19
|
+
*/
|
|
20
|
+
export declare function glyphFindings(source: string, file: string): GlyphFinding[];
|
|
21
|
+
/**
|
|
22
|
+
* Scan every `.ts`/`.tsx` source under `dir` (tests and declarations
|
|
23
|
+
* excluded). Point it at a package's widget and message-catalog folders;
|
|
24
|
+
* findings carry "/"-separated paths relative to `dir`.
|
|
25
|
+
*/
|
|
26
|
+
export declare function scanGlyphs(dir: string): GlyphFinding[];
|
|
27
|
+
//# sourceMappingURL=glyphs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glyphs.d.ts","sourceRoot":"","sources":["../../src/testing/glyphs.ts"],"names":[],"mappings":"AAWA;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAiB7C,CAAA;AAsBD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AA4DD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAc1E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAItD"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
import { lineOf, literalText, parseSource, relativePath, sourceFiles, walkNodes, } from "./source-scan.js";
|
|
4
|
+
/**
|
|
5
|
+
* The glyph gate (CI: modeler-tool-design §11, brand-review B9/U4/U8). Widget
|
|
6
|
+
* UI draws function icons with Lucide (the kit's `Icon`), never with Unicode
|
|
7
|
+
* glyphs or emoji: they render in whatever font the host has (⚙ and ⏱ came
|
|
8
|
+
* out as colour emoji), carry no accessible name and mix icon styles. ✦ is
|
|
9
|
+
* the AI-sparkle the CI rules out, × the close/remove icon (Lucide `X`).
|
|
10
|
+
*/
|
|
11
|
+
export const FORBIDDEN_GLYPHS = [
|
|
12
|
+
"✦",
|
|
13
|
+
"⊡",
|
|
14
|
+
"▦",
|
|
15
|
+
"↗",
|
|
16
|
+
"›",
|
|
17
|
+
"⚠",
|
|
18
|
+
"⚙",
|
|
19
|
+
"⏱",
|
|
20
|
+
"⤧",
|
|
21
|
+
"▶",
|
|
22
|
+
"✓",
|
|
23
|
+
"✕",
|
|
24
|
+
"▤",
|
|
25
|
+
"⊞",
|
|
26
|
+
"↻",
|
|
27
|
+
"×",
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* Emoji, minus the Arrows block (U+2190–U+21FF): ↔ ↕ ↩ count as pictographic
|
|
31
|
+
* only for their emoji variant. In running text an arrow is typography like
|
|
32
|
+
* →; as an icon it is caught as a lone symbol, and ↗ ↻ are listed above.
|
|
33
|
+
*/
|
|
34
|
+
const EMOJI = /(?![←-⇿])\p{Extended_Pictographic}/u;
|
|
35
|
+
/**
|
|
36
|
+
* A symbol and nothing else (arrows, −, +, ⌄, ‹ ›, a lone ! or ?). As the
|
|
37
|
+
* whole content of a JSX element that is the glyph-as-icon signature
|
|
38
|
+
* (`<span aria-hidden>→</span>`); in running text the same symbol is
|
|
39
|
+
* typography and stays allowed.
|
|
40
|
+
*/
|
|
41
|
+
const LONE_SYMBOL = /^[\p{Sm}\p{So}\p{Pi}\p{Pf}!?]+$/u;
|
|
42
|
+
/** Lucide's AI sparkle in every export spelling (CI U4: never the AI affordance). */
|
|
43
|
+
const SPARKLE_IMPORT = /^(Lucide)?(Sparkles?|WandSparkles|Wand2)(Icon)?$/;
|
|
44
|
+
/** …and as a deep import (`lucide-react/icons/sparkles`). */
|
|
45
|
+
const SPARKLE_PATH = /^lucide-react\/(?:.*\/)?(sparkles?|wand-sparkles|wand-2)(?:\.js)?$/;
|
|
46
|
+
function offendingGlyph(text) {
|
|
47
|
+
return FORBIDDEN_GLYPHS.find((g) => text.includes(g)) ?? EMOJI.exec(text)?.[0];
|
|
48
|
+
}
|
|
49
|
+
/** Whether `node` is its JSX parent's only child (whitespace text and empty `{}` aside). */
|
|
50
|
+
function isOnlyJsxChild(node) {
|
|
51
|
+
const parent = node.parent;
|
|
52
|
+
if (!(ts.isJsxElement(parent) || ts.isJsxFragment(parent)))
|
|
53
|
+
return false;
|
|
54
|
+
const meaningful = parent.children.filter((child) => ts.isJsxText(child)
|
|
55
|
+
? child.text.trim() !== ""
|
|
56
|
+
: !(ts.isJsxExpression(child) && !child.expression));
|
|
57
|
+
return meaningful.length === 1 && meaningful[0] === node;
|
|
58
|
+
}
|
|
59
|
+
const VALUE_OPERATORS = new Set([
|
|
60
|
+
ts.SyntaxKind.AmpersandAmpersandToken,
|
|
61
|
+
ts.SyntaxKind.BarBarToken,
|
|
62
|
+
ts.SyntaxKind.QuestionQuestionToken,
|
|
63
|
+
]);
|
|
64
|
+
/** Whether a literal renders as its JSX element's whole content: `{"×"}`, `{open ? "▲" : "▼"}`. */
|
|
65
|
+
function rendersAsWholeElement(literal) {
|
|
66
|
+
let current = literal;
|
|
67
|
+
for (;;) {
|
|
68
|
+
const parent = current.parent;
|
|
69
|
+
const passesValueThrough = ts.isParenthesizedExpression(parent) ||
|
|
70
|
+
(ts.isConditionalExpression(parent) && parent.condition !== current) ||
|
|
71
|
+
(ts.isBinaryExpression(parent) &&
|
|
72
|
+
parent.right === current &&
|
|
73
|
+
VALUE_OPERATORS.has(parent.operatorToken.kind));
|
|
74
|
+
if (!passesValueThrough)
|
|
75
|
+
return ts.isJsxExpression(parent) && isOnlyJsxChild(parent);
|
|
76
|
+
current = parent;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function loneSymbolIcon(node, text) {
|
|
80
|
+
const symbol = text.trim();
|
|
81
|
+
if (!LONE_SYMBOL.test(symbol))
|
|
82
|
+
return undefined;
|
|
83
|
+
const whole = ts.isJsxText(node) ? isOnlyJsxChild(node) : rendersAsWholeElement(node);
|
|
84
|
+
return whole ? symbol : undefined;
|
|
85
|
+
}
|
|
86
|
+
/** The sparkle icons an import pulls in from lucide-react, each with its node. */
|
|
87
|
+
function sparkleImports(node) {
|
|
88
|
+
if (!ts.isImportDeclaration(node) || !ts.isStringLiteral(node.moduleSpecifier))
|
|
89
|
+
return [];
|
|
90
|
+
const from = node.moduleSpecifier.text;
|
|
91
|
+
const deep = SPARKLE_PATH.exec(from);
|
|
92
|
+
if (deep)
|
|
93
|
+
return [[deep[1], node]];
|
|
94
|
+
const named = node.importClause?.namedBindings;
|
|
95
|
+
if (from !== "lucide-react" || !named || !ts.isNamedImports(named))
|
|
96
|
+
return [];
|
|
97
|
+
return named.elements
|
|
98
|
+
.map((el) => [(el.propertyName ?? el.name).text, el])
|
|
99
|
+
.filter(([name]) => SPARKLE_IMPORT.test(name));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Forbidden glyphs and emoji in the string literals and JSX text of one
|
|
103
|
+
* source file, a lone symbol as a JSX element's whole content, and Lucide's
|
|
104
|
+
* sparkle imports (comments are not scanned: a comment may name what it bans).
|
|
105
|
+
*/
|
|
106
|
+
export function glyphFindings(source, file) {
|
|
107
|
+
const sf = parseSource(source, file);
|
|
108
|
+
const findings = [];
|
|
109
|
+
walkNodes(sf, (node) => {
|
|
110
|
+
for (const [glyph, at] of sparkleImports(node)) {
|
|
111
|
+
findings.push({ file, line: lineOf(sf, at), glyph, text: node.getText(sf).slice(0, 80) });
|
|
112
|
+
}
|
|
113
|
+
const text = literalText(node) ?? (ts.isJsxText(node) ? node.text : undefined);
|
|
114
|
+
if (text === undefined)
|
|
115
|
+
return;
|
|
116
|
+
const glyph = offendingGlyph(text) ?? loneSymbolIcon(node, text);
|
|
117
|
+
if (glyph)
|
|
118
|
+
findings.push({ file, line: lineOf(sf, node), glyph, text: text.trim().slice(0, 80) });
|
|
119
|
+
});
|
|
120
|
+
return findings;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Scan every `.ts`/`.tsx` source under `dir` (tests and declarations
|
|
124
|
+
* excluded). Point it at a package's widget and message-catalog folders;
|
|
125
|
+
* findings carry "/"-separated paths relative to `dir`.
|
|
126
|
+
*/
|
|
127
|
+
export function scanGlyphs(dir) {
|
|
128
|
+
return sourceFiles(dir).flatMap((path) => glyphFindings(readFileSync(path, "utf8"), relativePath(dir, path)));
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=glyphs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glyphs.js","sourceRoot":"","sources":["../../src/testing/glyphs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glyphs.test.d.ts","sourceRoot":"","sources":["../../src/testing/glyphs.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { tmpdir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { afterAll, describe, expect, it } from "vitest";
|
|
5
|
+
import { FORBIDDEN_GLYPHS, glyphFindings, scanGlyphs } from "./glyphs.js";
|
|
6
|
+
describe("glyphFindings — no Unicode glyphs or emoji as icons", () => {
|
|
7
|
+
it("finds a glyph in JSX text, attributes, string and template literals", () => {
|
|
8
|
+
const source = [
|
|
9
|
+
"// a comment may name ✦ freely",
|
|
10
|
+
"/* and so may ⚠ a block comment */",
|
|
11
|
+
"export const a = <span aria-hidden>▦</span>",
|
|
12
|
+
'export const b = <button title="Retry ↻">x</button>',
|
|
13
|
+
'export const c = "⏱ slow"',
|
|
14
|
+
"export const d = `${x} ›`",
|
|
15
|
+
"export const e = `${x} ✓ ${y}`",
|
|
16
|
+
"export const f = `✕ ${y}`",
|
|
17
|
+
].join("\n");
|
|
18
|
+
expect(glyphFindings(source, "w.tsx").map((f) => [f.line, f.glyph])).toEqual([
|
|
19
|
+
[3, "▦"],
|
|
20
|
+
[4, "↻"],
|
|
21
|
+
[5, "⏱"],
|
|
22
|
+
[6, "›"],
|
|
23
|
+
[7, "✓"],
|
|
24
|
+
[8, "✕"],
|
|
25
|
+
]);
|
|
26
|
+
});
|
|
27
|
+
it("finds emoji, not ordinary punctuation, arrows or dashes", () => {
|
|
28
|
+
const source = [
|
|
29
|
+
'export const notes = "🗒 Notes"',
|
|
30
|
+
'export const ok = "1–2 → 3 · ≥ 4 … — x"',
|
|
31
|
+
"export const versions = <p>{a} ↔ {b}</p>",
|
|
32
|
+
'export const prose = "compare v1 ↔ v2"',
|
|
33
|
+
].join("\n");
|
|
34
|
+
const findings = glyphFindings(source, "catalog.ts");
|
|
35
|
+
expect(findings).toEqual([{ file: "catalog.ts", line: 1, glyph: "🗒", text: "🗒 Notes" }]);
|
|
36
|
+
});
|
|
37
|
+
it("finds a lone symbol as an element's whole content: the glyph-as-icon signature", () => {
|
|
38
|
+
const source = [
|
|
39
|
+
"export const a = <span aria-hidden>→</span>",
|
|
40
|
+
"export const b = <button onClick={remove}>×</button>",
|
|
41
|
+
"export const c = <button>−</button>",
|
|
42
|
+
"export const d = <span aria-hidden>‹</span>",
|
|
43
|
+
'export const e = <span>{"⌄"}</span>',
|
|
44
|
+
'export const f = <div className="x">',
|
|
45
|
+
" !",
|
|
46
|
+
"</div>",
|
|
47
|
+
'export const g = <b>{open ? "▲" : ("▼")}</b>',
|
|
48
|
+
'export const h = <>{"+"}</>',
|
|
49
|
+
"export const i = <span aria-hidden>↔</span>",
|
|
50
|
+
"export const j = <span>{/* next */}→</span>",
|
|
51
|
+
].join("\n");
|
|
52
|
+
expect(glyphFindings(source, "w.tsx").map((f) => [f.line, f.glyph])).toEqual([
|
|
53
|
+
[1, "→"],
|
|
54
|
+
[2, "×"],
|
|
55
|
+
[3, "−"],
|
|
56
|
+
[4, "‹"],
|
|
57
|
+
[5, "⌄"],
|
|
58
|
+
[7, "!"],
|
|
59
|
+
[9, "▲"],
|
|
60
|
+
[9, "▼"],
|
|
61
|
+
[10, "+"],
|
|
62
|
+
[11, "↔"],
|
|
63
|
+
[12, "→"],
|
|
64
|
+
]);
|
|
65
|
+
});
|
|
66
|
+
it("leaves symbols in running text, separators and placeholders alone", () => {
|
|
67
|
+
const source = [
|
|
68
|
+
"export const a = <p>{from} → {to}</p>",
|
|
69
|
+
"export const b = <p>Started 576 → 88</p>",
|
|
70
|
+
"export const c = <span aria-hidden>·</span>",
|
|
71
|
+
"export const d = <td>—</td>",
|
|
72
|
+
"export const e = <span>%</span>",
|
|
73
|
+
"export const f = <span>(</span>",
|
|
74
|
+
'export const g = "→"',
|
|
75
|
+
'export const h = <span title="→">x</span>',
|
|
76
|
+
'export const i = <b>{label ?? "—"}</b>',
|
|
77
|
+
"export const j = <p><b>1</b>→</p>",
|
|
78
|
+
'export const k = <b>{dir === "▲" ? up : down}</b>',
|
|
79
|
+
'export const l = <b>{"▲" ? up : down}</b>',
|
|
80
|
+
].join("\n");
|
|
81
|
+
expect(glyphFindings(source, "w.tsx")).toEqual([]);
|
|
82
|
+
});
|
|
83
|
+
it("finds × anywhere: the multiplication sign drawn as a close or remove icon", () => {
|
|
84
|
+
expect(glyphFindings('export const x = "× Entfernen"', "m.ts").map((f) => f.glyph)).toEqual([
|
|
85
|
+
"×",
|
|
86
|
+
]);
|
|
87
|
+
});
|
|
88
|
+
it("finds the AI sparkle as a Lucide import too (CI U4), named or deep", () => {
|
|
89
|
+
const source = [
|
|
90
|
+
'import { Sparkles, FileSearch } from "lucide-react"',
|
|
91
|
+
'import { WandSparkles as Magic, SparkleIcon } from "lucide-react"',
|
|
92
|
+
'import Wand from "lucide-react/icons/wand-sparkles"',
|
|
93
|
+
'import { Sparkles as Ok } from "./not-lucide"',
|
|
94
|
+
'import * as Lucide from "lucide-react"',
|
|
95
|
+
'import "lucide-react"',
|
|
96
|
+
].join("\n");
|
|
97
|
+
expect(glyphFindings(source, "w.tsx").map((f) => [f.line, f.glyph])).toEqual([
|
|
98
|
+
[1, "Sparkles"],
|
|
99
|
+
[2, "WandSparkles"],
|
|
100
|
+
[2, "SparkleIcon"],
|
|
101
|
+
[3, "wand-sparkles"],
|
|
102
|
+
]);
|
|
103
|
+
});
|
|
104
|
+
it("covers exactly the glyphs the cockpit used as icons", () => {
|
|
105
|
+
expect(FORBIDDEN_GLYPHS).toEqual(expect.arrayContaining([
|
|
106
|
+
"✦",
|
|
107
|
+
"⊡",
|
|
108
|
+
"▦",
|
|
109
|
+
"↗",
|
|
110
|
+
"›",
|
|
111
|
+
"⚠",
|
|
112
|
+
"⚙",
|
|
113
|
+
"⏱",
|
|
114
|
+
"⤧",
|
|
115
|
+
"▶",
|
|
116
|
+
"✓",
|
|
117
|
+
"✕",
|
|
118
|
+
"▤",
|
|
119
|
+
"⊞",
|
|
120
|
+
"↻",
|
|
121
|
+
]));
|
|
122
|
+
for (const glyph of FORBIDDEN_GLYPHS) {
|
|
123
|
+
expect(glyphFindings(`export const g = "${glyph}"`, "g.ts")).toHaveLength(1);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
describe("scanGlyphs — a source tree", () => {
|
|
128
|
+
const root = mkdtempSync(join(tmpdir(), "glyphs-"));
|
|
129
|
+
afterAll(() => rmSync(root, { recursive: true, force: true }));
|
|
130
|
+
it("scans .ts/.tsx sources and skips tests, declarations and build output", () => {
|
|
131
|
+
mkdirSync(join(root, "widgets"));
|
|
132
|
+
mkdirSync(join(root, "node_modules"));
|
|
133
|
+
mkdirSync(join(root, "dist"));
|
|
134
|
+
writeFileSync(join(root, "widgets", "a.tsx"), "export const A = () => <b>⚙</b>\n");
|
|
135
|
+
writeFileSync(join(root, "messages.ts"), 'export const m = { k: "▶ Start" }\n');
|
|
136
|
+
writeFileSync(join(root, "widgets", "a.test.tsx"), 'const t = "⚙"\n');
|
|
137
|
+
writeFileSync(join(root, "types.d.ts"), 'declare const t: "⚙"\n');
|
|
138
|
+
writeFileSync(join(root, "node_modules", "x.ts"), 'const t = "⚙"\n');
|
|
139
|
+
writeFileSync(join(root, "dist", "x.ts"), 'const t = "⚙"\n');
|
|
140
|
+
writeFileSync(join(root, "readme.md"), "⚙\n");
|
|
141
|
+
expect(scanGlyphs(root)
|
|
142
|
+
.map((f) => `${f.file}:${f.line}:${f.glyph}`)
|
|
143
|
+
.sort()).toEqual(["messages.ts:1:▶", "widgets/a.tsx:1:⚙"]);
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
//# sourceMappingURL=glyphs.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glyphs.test.js","sourceRoot":"","sources":["../../src/testing/glyphs.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The icon-size gate (CI: modeler-tool-design §11): 16 px in chrome (the kit
|
|
3
|
+
* `Icon`'s default, `dense` for tight rows and bars), 24 px for previews. A
|
|
4
|
+
* 12, 14 or 20 px icon beside them is a third size in the same view. Widget
|
|
5
|
+
* code passes a literal numeric `size` only to icons (the kit `Icon` or a
|
|
6
|
+
* Lucide component); a toolkit `Button`'s `size` is a string variant and
|
|
7
|
+
* stays out of it.
|
|
8
|
+
*/
|
|
9
|
+
export declare const CI_ICON_SIZES: readonly number[];
|
|
10
|
+
export interface IconSizeFinding {
|
|
11
|
+
file: string;
|
|
12
|
+
line: number;
|
|
13
|
+
size: number;
|
|
14
|
+
}
|
|
15
|
+
/** Every literal JSX `size={n}` off the CI sizes in one source file. */
|
|
16
|
+
export declare function iconSizeFindings(source: string, file: string): IconSizeFinding[];
|
|
17
|
+
/**
|
|
18
|
+
* Scan every `.ts`/`.tsx` source under `dir` (tests and declarations
|
|
19
|
+
* excluded); findings carry "/"-separated paths relative to `dir`.
|
|
20
|
+
*/
|
|
21
|
+
export declare function scanIconSizes(dir: string): IconSizeFinding[];
|
|
22
|
+
//# sourceMappingURL=icon-sizes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-sizes.d.ts","sourceRoot":"","sources":["../../src/testing/icon-sizes.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAAa,CAAA;AAExD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,CAkBhF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,CAI5D"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
import { lineOf, parseSource, relativePath, sourceFiles, walkNodes } from "./source-scan.js";
|
|
4
|
+
/**
|
|
5
|
+
* The icon-size gate (CI: modeler-tool-design §11): 16 px in chrome (the kit
|
|
6
|
+
* `Icon`'s default, `dense` for tight rows and bars), 24 px for previews. A
|
|
7
|
+
* 12, 14 or 20 px icon beside them is a third size in the same view. Widget
|
|
8
|
+
* code passes a literal numeric `size` only to icons (the kit `Icon` or a
|
|
9
|
+
* Lucide component); a toolkit `Button`'s `size` is a string variant and
|
|
10
|
+
* stays out of it.
|
|
11
|
+
*/
|
|
12
|
+
export const CI_ICON_SIZES = [16, 24];
|
|
13
|
+
/** Every literal JSX `size={n}` off the CI sizes in one source file. */
|
|
14
|
+
export function iconSizeFindings(source, file) {
|
|
15
|
+
const sf = parseSource(source, file);
|
|
16
|
+
const findings = [];
|
|
17
|
+
walkNodes(sf, (node) => {
|
|
18
|
+
if (!ts.isJsxAttribute(node) ||
|
|
19
|
+
node.name.getText(sf) !== "size" ||
|
|
20
|
+
!node.initializer ||
|
|
21
|
+
!ts.isJsxExpression(node.initializer) ||
|
|
22
|
+
!node.initializer.expression ||
|
|
23
|
+
!ts.isNumericLiteral(node.initializer.expression)) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const size = Number(node.initializer.expression.text);
|
|
27
|
+
if (!CI_ICON_SIZES.includes(size))
|
|
28
|
+
findings.push({ file, line: lineOf(sf, node), size });
|
|
29
|
+
});
|
|
30
|
+
return findings;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Scan every `.ts`/`.tsx` source under `dir` (tests and declarations
|
|
34
|
+
* excluded); findings carry "/"-separated paths relative to `dir`.
|
|
35
|
+
*/
|
|
36
|
+
export function scanIconSizes(dir) {
|
|
37
|
+
return sourceFiles(dir).flatMap((path) => iconSizeFindings(readFileSync(path, "utf8"), relativePath(dir, path)));
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=icon-sizes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-sizes.js","sourceRoot":"","sources":["../../src/testing/icon-sizes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5F;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAsB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;AAQxD,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,IAAY;IAC3D,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAsB,EAAE,CAAA;IACtC,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;QACrB,IACE,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,MAAM;YAChC,CAAC,IAAI,CAAC,WAAW;YACjB,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;YACrC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU;YAC5B,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EACjD,CAAC;YACD,OAAM;QACR,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACrD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1F,CAAC,CAAC,CAAA;IACF,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACvC,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CACtE,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-sizes.test.d.ts","sourceRoot":"","sources":["../../src/testing/icon-sizes.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { tmpdir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { afterAll, describe, expect, it } from "vitest";
|
|
5
|
+
import { iconSizeFindings, scanIconSizes } from "./icon-sizes.js";
|
|
6
|
+
describe("iconSizeFindings — icons at the CI sizes only", () => {
|
|
7
|
+
it("flags an off-size icon and spares the CI sizes, the default and string sizes", () => {
|
|
8
|
+
const probe = [
|
|
9
|
+
"const a = <Icon icon={TriangleAlert} size={14} dense />",
|
|
10
|
+
"const b = <Icon icon={LayoutDashboard} size={20} />",
|
|
11
|
+
"const c = <Icon icon={RefreshCw} size={16} />",
|
|
12
|
+
"const d = <Workflow size={24} />",
|
|
13
|
+
"const e = <Icon icon={X} />",
|
|
14
|
+
'const f = <Button size="sm" />',
|
|
15
|
+
"const g = <Icon icon={X} size={big ? 24 : 16} />",
|
|
16
|
+
"const h = <CircleAlert size={12} />",
|
|
17
|
+
].join("\n");
|
|
18
|
+
expect(iconSizeFindings(probe, "probe.tsx")).toEqual([
|
|
19
|
+
{ file: "probe.tsx", line: 1, size: 14 },
|
|
20
|
+
{ file: "probe.tsx", line: 2, size: 20 },
|
|
21
|
+
{ file: "probe.tsx", line: 8, size: 12 },
|
|
22
|
+
]);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
describe("scanIconSizes", () => {
|
|
26
|
+
const dir = mkdtempSync(join(tmpdir(), "icon-sizes-"));
|
|
27
|
+
afterAll(() => rmSync(dir, { recursive: true, force: true }));
|
|
28
|
+
it("walks a tree with relative paths and skips tests", () => {
|
|
29
|
+
mkdirSync(join(dir, "nested"));
|
|
30
|
+
writeFileSync(join(dir, "nested", "a.tsx"), "const a = <Icon icon={X} size={14} />\n");
|
|
31
|
+
writeFileSync(join(dir, "b.tsx"), "const b = <Icon icon={X} />\n");
|
|
32
|
+
writeFileSync(join(dir, "c.test.tsx"), "const c = <Icon icon={X} size={10} />\n");
|
|
33
|
+
expect(scanIconSizes(dir)).toEqual([{ file: "nested/a.tsx", line: 1, size: 14 }]);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=icon-sizes.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-sizes.test.js","sourceRoot":"","sources":["../../src/testing/icon-sizes.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEjE,QAAQ,CAAC,+CAA+C,EAAE,GAAG,EAAE;IAC7D,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;QACtF,MAAM,KAAK,GAAG;YACZ,yDAAyD;YACzD,qDAAqD;YACrD,+CAA+C;YAC/C,kCAAkC;YAClC,6BAA6B;YAC7B,gCAAgC;YAChC,kDAAkD;YAClD,qCAAqC;SACtC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACZ,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;YACnD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YACxC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YACxC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;SACzC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAA;IACtD,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAE7D,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC9B,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,yCAAyC,CAAC,CAAA;QACtF,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,+BAA+B,CAAC,CAAA;QAClE,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,yCAAyC,CAAC,CAAA;QACjF,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IACnF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@miragon/pulse-widget-shell/testing` — the brand gates every widget package
|
|
3
|
+
* runs in its own test suite (Node, never bundled into a view):
|
|
4
|
+
* - `catalogTextFindings` — the voice rules over a message catalog;
|
|
5
|
+
* - `glossaryFindings` with `PRODUCT_GLOSSARY` — one word per thing across
|
|
6
|
+
* every module's catalogs (plus a module's own rules);
|
|
7
|
+
* - `scanGlyphs` — no Unicode glyphs, emoji or sparkle icons in widget code;
|
|
8
|
+
* - `scanIconSizes` — icons at the CI sizes only (16 px chrome, 24 px previews);
|
|
9
|
+
* - `scanTypeScale` — text on the type scale's five steps, nothing below 13 px;
|
|
10
|
+
* - `scanColors` — role names only, no palette classes, retired accents or
|
|
11
|
+
* raw colours; `stylesheetColorFindings` — no raw colour in a stylesheet's
|
|
12
|
+
* rules;
|
|
13
|
+
* - `parseThemeVariables` + `contrastFindings` with `toneContrastPairs()` /
|
|
14
|
+
* `ROLE_CONTRAST_PAIRS` — WCAG contrast of the theme, light and dark,
|
|
15
|
+
* over the toolkit's Miragon theme (`toolkitThemeStylesheets()`) plus a
|
|
16
|
+
* consumer's role overrides;
|
|
17
|
+
* - `missingDisplayTexts` + `displayTextCatalog` — the view builder names
|
|
18
|
+
* every widget, step and top-level props field in en and de, in the brand
|
|
19
|
+
* voice; `displayTextsSentToModel` — and none of those texts reaches the
|
|
20
|
+
* model through `get-framework-manifest`;
|
|
21
|
+
* - `setFormatLocale` — render numbers and dates in a language in a test.
|
|
22
|
+
* `scanGlyphs`, `scanIconSizes` and `scanColors` parse sources with
|
|
23
|
+
* `typescript` (an optional peer).
|
|
24
|
+
*/
|
|
25
|
+
export { catalogTextFindings, type CatalogAllowance, type CatalogLanguage, type CatalogRule, type CatalogTextFinding, type CatalogTextOptions, } from "./catalog-text.js";
|
|
26
|
+
export { blindGlossaryRules, glossaryFindings, PRODUCT_GLOSSARY, unnamedGlossaryTerms, type GlossaryFinding, type GlossaryRule, } from "./glossary.js";
|
|
27
|
+
export { FORBIDDEN_GLYPHS, glyphFindings, scanGlyphs, type GlyphFinding } from "./glyphs.js";
|
|
28
|
+
export { CI_ICON_SIZES, iconSizeFindings, scanIconSizes, type IconSizeFinding, } from "./icon-sizes.js";
|
|
29
|
+
export { scanTypeScale, typeScaleFindings, type ScanTypeScaleOptions, type TypeScaleFinding, type TypeScaleRule, } from "./type-scale.js";
|
|
30
|
+
export { colorFindings, scanColors, stylesheetColorFindings, type ColorFinding, type ScanColorsOptions, } from "./colors.js";
|
|
31
|
+
export { composite, contrastFindings, contrastRatio, measureContrast, parseThemeVariables, resolveColor, toolkitThemeStylesheets, type ContrastPair, type ContrastResult, type Rgba, type ThemeMode, type ThemeVariables, } from "./contrast.js";
|
|
32
|
+
export { ROLE_CONTRAST_PAIRS, toneContrastPairs } from "./tone-pairs.js";
|
|
33
|
+
export { displayTextCatalog, displayTextsSentToModel, missingDisplayTexts, } from "./display-texts.js";
|
|
34
|
+
/**
|
|
35
|
+
* The format locale the shell's ProfileGate publishes, for tests that render
|
|
36
|
+
* a widget's numbers and dates in a given language without booting the gate
|
|
37
|
+
* (`afterEach(() => setFormatLocale(undefined))` restores the defaults).
|
|
38
|
+
*/
|
|
39
|
+
export { setFormatLocale, type FormatLocale } from "../ui/format.js";
|
|
40
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EACL,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AAC5F,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACnB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,aAAa,EACb,UAAU,EACV,uBAAuB,EACvB,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,uBAAuB,EACvB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,oBAAoB,CAAA;AAC3B;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@miragon/pulse-widget-shell/testing` — the brand gates every widget package
|
|
3
|
+
* runs in its own test suite (Node, never bundled into a view):
|
|
4
|
+
* - `catalogTextFindings` — the voice rules over a message catalog;
|
|
5
|
+
* - `glossaryFindings` with `PRODUCT_GLOSSARY` — one word per thing across
|
|
6
|
+
* every module's catalogs (plus a module's own rules);
|
|
7
|
+
* - `scanGlyphs` — no Unicode glyphs, emoji or sparkle icons in widget code;
|
|
8
|
+
* - `scanIconSizes` — icons at the CI sizes only (16 px chrome, 24 px previews);
|
|
9
|
+
* - `scanTypeScale` — text on the type scale's five steps, nothing below 13 px;
|
|
10
|
+
* - `scanColors` — role names only, no palette classes, retired accents or
|
|
11
|
+
* raw colours; `stylesheetColorFindings` — no raw colour in a stylesheet's
|
|
12
|
+
* rules;
|
|
13
|
+
* - `parseThemeVariables` + `contrastFindings` with `toneContrastPairs()` /
|
|
14
|
+
* `ROLE_CONTRAST_PAIRS` — WCAG contrast of the theme, light and dark,
|
|
15
|
+
* over the toolkit's Miragon theme (`toolkitThemeStylesheets()`) plus a
|
|
16
|
+
* consumer's role overrides;
|
|
17
|
+
* - `missingDisplayTexts` + `displayTextCatalog` — the view builder names
|
|
18
|
+
* every widget, step and top-level props field in en and de, in the brand
|
|
19
|
+
* voice; `displayTextsSentToModel` — and none of those texts reaches the
|
|
20
|
+
* model through `get-framework-manifest`;
|
|
21
|
+
* - `setFormatLocale` — render numbers and dates in a language in a test.
|
|
22
|
+
* `scanGlyphs`, `scanIconSizes` and `scanColors` parse sources with
|
|
23
|
+
* `typescript` (an optional peer).
|
|
24
|
+
*/
|
|
25
|
+
export { catalogTextFindings, } from "./catalog-text.js";
|
|
26
|
+
export { blindGlossaryRules, glossaryFindings, PRODUCT_GLOSSARY, unnamedGlossaryTerms, } from "./glossary.js";
|
|
27
|
+
export { FORBIDDEN_GLYPHS, glyphFindings, scanGlyphs } from "./glyphs.js";
|
|
28
|
+
export { CI_ICON_SIZES, iconSizeFindings, scanIconSizes, } from "./icon-sizes.js";
|
|
29
|
+
export { scanTypeScale, typeScaleFindings, } from "./type-scale.js";
|
|
30
|
+
export { colorFindings, scanColors, stylesheetColorFindings, } from "./colors.js";
|
|
31
|
+
export { composite, contrastFindings, contrastRatio, measureContrast, parseThemeVariables, resolveColor, toolkitThemeStylesheets, } from "./contrast.js";
|
|
32
|
+
export { ROLE_CONTRAST_PAIRS, toneContrastPairs } from "./tone-pairs.js";
|
|
33
|
+
export { displayTextCatalog, displayTextsSentToModel, missingDisplayTexts, } from "./display-texts.js";
|
|
34
|
+
/**
|
|
35
|
+
* The format locale the shell's ProfileGate publishes, for tests that render
|
|
36
|
+
* a widget's numbers and dates in a given language without booting the gate
|
|
37
|
+
* (`afterEach(() => setFormatLocale(undefined))` restores the defaults).
|
|
38
|
+
*/
|
|
39
|
+
export { setFormatLocale } from "../ui/format.js";
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EACL,mBAAmB,GAMpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GAGrB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAA;AAC5F,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,GAEd,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,aAAa,EACb,iBAAiB,GAIlB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,aAAa,EACb,UAAU,EACV,uBAAuB,GAGxB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,uBAAuB,GAMxB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,oBAAoB,CAAA;AAC3B;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAqB,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
/**
|
|
3
|
+
* Every `.ts`/`.tsx` source under `dir`, tests, declarations and build output
|
|
4
|
+
* excluded, in name order (findings come out the same on every file system).
|
|
5
|
+
*/
|
|
6
|
+
export declare function sourceFiles(dir: string): string[];
|
|
7
|
+
/** `path` relative to `dir` with "/" separators: stable keys for allow lists on every OS. */
|
|
8
|
+
export declare function relativePath(dir: string, path: string): string;
|
|
9
|
+
export declare function parseSource(source: string, file: string): ts.SourceFile;
|
|
10
|
+
/** The text of a string or template literal (each template part on its own). */
|
|
11
|
+
export declare function literalText(node: ts.Node): string | undefined;
|
|
12
|
+
/** The 1-based line a node starts on. */
|
|
13
|
+
export declare function lineOf(sf: ts.SourceFile, node: ts.Node): number;
|
|
14
|
+
/** Depth-first walk over every node of a source file. */
|
|
15
|
+
export declare function walkNodes(sf: ts.SourceFile, visit: (node: ts.Node) => void): void;
|
|
16
|
+
//# sourceMappingURL=source-scan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-scan.d.ts","sourceRoot":"","sources":["../../src/testing/source-scan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAA;AAU3B;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAUjD;AAED,6FAA6F;AAC7F,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAGvE;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,GAAG,SAAS,CAW7D;AAED,yCAAyC;AACzC,wBAAgB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAE/D;AAED,yDAAyD;AACzD,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,GAAG,IAAI,CAMjF"}
|