@frontmcp/ui 0.5.1 → 0.6.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/adapters/index.d.ts +13 -0
- package/adapters/index.d.ts.map +1 -0
- package/adapters/index.js +462 -0
- package/adapters/platform-meta.d.ts +166 -0
- package/adapters/platform-meta.d.ts.map +1 -0
- package/adapters/response-builder.d.ts +108 -0
- package/adapters/response-builder.d.ts.map +1 -0
- package/adapters/serving-mode.d.ts +107 -0
- package/adapters/serving-mode.d.ts.map +1 -0
- package/base-template/bridge.d.ts +90 -0
- package/base-template/bridge.d.ts.map +1 -0
- package/base-template/default-base-template.d.ts +92 -0
- package/base-template/default-base-template.d.ts.map +1 -0
- package/base-template/index.d.ts +15 -0
- package/base-template/index.d.ts.map +1 -0
- package/base-template/index.js +1398 -0
- package/base-template/polyfills.d.ts +31 -0
- package/base-template/polyfills.d.ts.map +1 -0
- package/base-template/theme-styles.d.ts +74 -0
- package/base-template/theme-styles.d.ts.map +1 -0
- package/bridge/adapters/base-adapter.d.ts +104 -0
- package/bridge/adapters/base-adapter.d.ts.map +1 -0
- package/bridge/adapters/claude.adapter.d.ts +67 -0
- package/bridge/adapters/claude.adapter.d.ts.map +1 -0
- package/bridge/adapters/ext-apps.adapter.d.ts +143 -0
- package/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
- package/bridge/adapters/gemini.adapter.d.ts +64 -0
- package/bridge/adapters/gemini.adapter.d.ts.map +1 -0
- package/bridge/adapters/generic.adapter.d.ts +56 -0
- package/bridge/adapters/generic.adapter.d.ts.map +1 -0
- package/bridge/adapters/index.d.ts +26 -0
- package/bridge/adapters/index.d.ts.map +1 -0
- package/bridge/adapters/openai.adapter.d.ts +65 -0
- package/bridge/adapters/openai.adapter.d.ts.map +1 -0
- package/bridge/core/adapter-registry.d.ts +122 -0
- package/bridge/core/adapter-registry.d.ts.map +1 -0
- package/bridge/core/bridge-factory.d.ts +199 -0
- package/bridge/core/bridge-factory.d.ts.map +1 -0
- package/bridge/core/index.d.ts +10 -0
- package/bridge/core/index.d.ts.map +1 -0
- package/bridge/index.d.ts +62 -0
- package/bridge/index.d.ts.map +1 -0
- package/bridge/index.js +2540 -0
- package/bridge/runtime/iife-generator.d.ts +62 -0
- package/bridge/runtime/iife-generator.d.ts.map +1 -0
- package/bridge/runtime/index.d.ts +9 -0
- package/bridge/runtime/index.d.ts.map +1 -0
- package/bridge/types.d.ts +386 -0
- package/bridge/types.d.ts.map +1 -0
- package/build/cdn-resources.d.ts +243 -0
- package/build/cdn-resources.d.ts.map +1 -0
- package/build/index.d.ts +295 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +7096 -0
- package/build/widget-manifest.d.ts +362 -0
- package/build/widget-manifest.d.ts.map +1 -0
- package/bundler/bundler.d.ts +208 -0
- package/bundler/bundler.d.ts.map +1 -0
- package/bundler/cache.d.ts +173 -0
- package/bundler/cache.d.ts.map +1 -0
- package/bundler/file-cache/component-builder.d.ts +167 -0
- package/bundler/file-cache/component-builder.d.ts.map +1 -0
- package/bundler/file-cache/hash-calculator.d.ts +155 -0
- package/bundler/file-cache/hash-calculator.d.ts.map +1 -0
- package/bundler/file-cache/index.d.ts +12 -0
- package/bundler/file-cache/index.d.ts.map +1 -0
- package/bundler/file-cache/storage/filesystem.d.ts +149 -0
- package/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
- package/bundler/file-cache/storage/index.d.ts +11 -0
- package/bundler/file-cache/storage/index.d.ts.map +1 -0
- package/bundler/file-cache/storage/interface.d.ts +152 -0
- package/bundler/file-cache/storage/interface.d.ts.map +1 -0
- package/bundler/file-cache/storage/redis.d.ts +139 -0
- package/bundler/file-cache/storage/redis.d.ts.map +1 -0
- package/bundler/index.d.ts +43 -0
- package/bundler/index.d.ts.map +1 -0
- package/bundler/index.js +4754 -0
- package/bundler/sandbox/enclave-adapter.d.ts +121 -0
- package/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
- package/bundler/sandbox/executor.d.ts +14 -0
- package/bundler/sandbox/executor.d.ts.map +1 -0
- package/bundler/sandbox/policy.d.ts +62 -0
- package/bundler/sandbox/policy.d.ts.map +1 -0
- package/bundler/types.d.ts +702 -0
- package/bundler/types.d.ts.map +1 -0
- package/components/alert.d.ts +66 -0
- package/components/alert.d.ts.map +1 -0
- package/components/alert.schema.d.ts +98 -0
- package/components/alert.schema.d.ts.map +1 -0
- package/components/avatar.d.ts +77 -0
- package/components/avatar.d.ts.map +1 -0
- package/components/avatar.schema.d.ts +170 -0
- package/components/avatar.schema.d.ts.map +1 -0
- package/components/badge.d.ts +64 -0
- package/components/badge.d.ts.map +1 -0
- package/components/badge.schema.d.ts +91 -0
- package/components/badge.schema.d.ts.map +1 -0
- package/components/button.d.ts +100 -0
- package/components/button.d.ts.map +1 -0
- package/components/button.schema.d.ts +120 -0
- package/components/button.schema.d.ts.map +1 -0
- package/components/card.d.ts +53 -0
- package/components/card.d.ts.map +1 -0
- package/components/card.schema.d.ts +93 -0
- package/components/card.schema.d.ts.map +1 -0
- package/components/form.d.ts +212 -0
- package/components/form.d.ts.map +1 -0
- package/components/form.schema.d.ts +365 -0
- package/components/form.schema.d.ts.map +1 -0
- package/components/index.d.ts +29 -0
- package/components/index.d.ts.map +1 -0
- package/components/index.js +2595 -0
- package/components/list.d.ts +121 -0
- package/components/list.d.ts.map +1 -0
- package/components/list.schema.d.ts +129 -0
- package/components/list.schema.d.ts.map +1 -0
- package/components/modal.d.ts +100 -0
- package/components/modal.d.ts.map +1 -0
- package/components/modal.schema.d.ts +151 -0
- package/components/modal.schema.d.ts.map +1 -0
- package/components/table.d.ts +91 -0
- package/components/table.d.ts.map +1 -0
- package/components/table.schema.d.ts +123 -0
- package/components/table.schema.d.ts.map +1 -0
- package/dependency/cdn-registry.d.ts +98 -0
- package/dependency/cdn-registry.d.ts.map +1 -0
- package/dependency/import-map.d.ts +186 -0
- package/dependency/import-map.d.ts.map +1 -0
- package/dependency/import-parser.d.ts +82 -0
- package/dependency/import-parser.d.ts.map +1 -0
- package/dependency/index.d.ts +17 -0
- package/dependency/index.d.ts.map +1 -0
- package/dependency/resolver.d.ts +164 -0
- package/dependency/resolver.d.ts.map +1 -0
- package/dependency/schemas.d.ts +486 -0
- package/dependency/schemas.d.ts.map +1 -0
- package/dependency/template-loader.d.ts +204 -0
- package/dependency/template-loader.d.ts.map +1 -0
- package/dependency/template-processor.d.ts +118 -0
- package/dependency/template-processor.d.ts.map +1 -0
- package/dependency/types.d.ts +739 -0
- package/dependency/types.d.ts.map +1 -0
- package/esm/adapters/index.d.ts +13 -0
- package/esm/adapters/index.d.ts.map +1 -0
- package/esm/adapters/index.js +427 -0
- package/esm/adapters/platform-meta.d.ts +166 -0
- package/esm/adapters/platform-meta.d.ts.map +1 -0
- package/esm/adapters/response-builder.d.ts +108 -0
- package/esm/adapters/response-builder.d.ts.map +1 -0
- package/esm/adapters/serving-mode.d.ts +107 -0
- package/esm/adapters/serving-mode.d.ts.map +1 -0
- package/esm/base-template/bridge.d.ts +90 -0
- package/esm/base-template/bridge.d.ts.map +1 -0
- package/esm/base-template/default-base-template.d.ts +92 -0
- package/esm/base-template/default-base-template.d.ts.map +1 -0
- package/esm/base-template/index.d.ts +15 -0
- package/esm/base-template/index.d.ts.map +1 -0
- package/esm/base-template/index.js +1364 -0
- package/esm/base-template/polyfills.d.ts +31 -0
- package/esm/base-template/polyfills.d.ts.map +1 -0
- package/esm/base-template/theme-styles.d.ts +74 -0
- package/esm/base-template/theme-styles.d.ts.map +1 -0
- package/esm/bridge/adapters/base-adapter.d.ts +104 -0
- package/esm/bridge/adapters/base-adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/claude.adapter.d.ts +67 -0
- package/esm/bridge/adapters/claude.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/ext-apps.adapter.d.ts +143 -0
- package/esm/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/gemini.adapter.d.ts +64 -0
- package/esm/bridge/adapters/gemini.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/generic.adapter.d.ts +56 -0
- package/esm/bridge/adapters/generic.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/index.d.ts +26 -0
- package/esm/bridge/adapters/index.d.ts.map +1 -0
- package/esm/bridge/adapters/openai.adapter.d.ts +65 -0
- package/esm/bridge/adapters/openai.adapter.d.ts.map +1 -0
- package/esm/bridge/core/adapter-registry.d.ts +122 -0
- package/esm/bridge/core/adapter-registry.d.ts.map +1 -0
- package/esm/bridge/core/bridge-factory.d.ts +199 -0
- package/esm/bridge/core/bridge-factory.d.ts.map +1 -0
- package/esm/bridge/core/index.d.ts +10 -0
- package/esm/bridge/core/index.d.ts.map +1 -0
- package/esm/bridge/index.d.ts +62 -0
- package/esm/bridge/index.d.ts.map +1 -0
- package/esm/bridge/index.js +2487 -0
- package/esm/bridge/runtime/iife-generator.d.ts +62 -0
- package/esm/bridge/runtime/iife-generator.d.ts.map +1 -0
- package/esm/bridge/runtime/index.d.ts +9 -0
- package/esm/bridge/runtime/index.d.ts.map +1 -0
- package/esm/bridge/types.d.ts +386 -0
- package/esm/bridge/types.d.ts.map +1 -0
- package/esm/build/cdn-resources.d.ts +243 -0
- package/esm/build/cdn-resources.d.ts.map +1 -0
- package/esm/build/index.d.ts +295 -0
- package/esm/build/index.d.ts.map +1 -0
- package/esm/build/index.js +7021 -0
- package/esm/build/widget-manifest.d.ts +362 -0
- package/esm/build/widget-manifest.d.ts.map +1 -0
- package/esm/bundler/bundler.d.ts +208 -0
- package/esm/bundler/bundler.d.ts.map +1 -0
- package/esm/bundler/cache.d.ts +173 -0
- package/esm/bundler/cache.d.ts.map +1 -0
- package/esm/bundler/file-cache/component-builder.d.ts +167 -0
- package/esm/bundler/file-cache/component-builder.d.ts.map +1 -0
- package/esm/bundler/file-cache/hash-calculator.d.ts +155 -0
- package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -0
- package/esm/bundler/file-cache/index.d.ts +12 -0
- package/esm/bundler/file-cache/index.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/filesystem.d.ts +149 -0
- package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/index.d.ts +11 -0
- package/esm/bundler/file-cache/storage/index.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/interface.d.ts +152 -0
- package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/redis.d.ts +139 -0
- package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -0
- package/esm/bundler/index.d.ts +43 -0
- package/esm/bundler/index.d.ts.map +1 -0
- package/esm/bundler/index.js +4687 -0
- package/esm/bundler/sandbox/enclave-adapter.d.ts +121 -0
- package/esm/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
- package/esm/bundler/sandbox/executor.d.ts +14 -0
- package/esm/bundler/sandbox/executor.d.ts.map +1 -0
- package/esm/bundler/sandbox/policy.d.ts +62 -0
- package/esm/bundler/sandbox/policy.d.ts.map +1 -0
- package/esm/bundler/types.d.ts +702 -0
- package/esm/bundler/types.d.ts.map +1 -0
- package/esm/components/alert.d.ts +66 -0
- package/esm/components/alert.d.ts.map +1 -0
- package/esm/components/alert.schema.d.ts +98 -0
- package/esm/components/alert.schema.d.ts.map +1 -0
- package/esm/components/avatar.d.ts +77 -0
- package/esm/components/avatar.d.ts.map +1 -0
- package/esm/components/avatar.schema.d.ts +170 -0
- package/esm/components/avatar.schema.d.ts.map +1 -0
- package/esm/components/badge.d.ts +64 -0
- package/esm/components/badge.d.ts.map +1 -0
- package/esm/components/badge.schema.d.ts +91 -0
- package/esm/components/badge.schema.d.ts.map +1 -0
- package/esm/components/button.d.ts +100 -0
- package/esm/components/button.d.ts.map +1 -0
- package/esm/components/button.schema.d.ts +120 -0
- package/esm/components/button.schema.d.ts.map +1 -0
- package/esm/components/card.d.ts +53 -0
- package/esm/components/card.d.ts.map +1 -0
- package/esm/components/card.schema.d.ts +93 -0
- package/esm/components/card.schema.d.ts.map +1 -0
- package/esm/components/form.d.ts +212 -0
- package/esm/components/form.d.ts.map +1 -0
- package/esm/components/form.schema.d.ts +365 -0
- package/esm/components/form.schema.d.ts.map +1 -0
- package/esm/components/index.d.ts +29 -0
- package/esm/components/index.d.ts.map +1 -0
- package/esm/components/index.js +2456 -0
- package/esm/components/list.d.ts +121 -0
- package/esm/components/list.d.ts.map +1 -0
- package/esm/components/list.schema.d.ts +129 -0
- package/esm/components/list.schema.d.ts.map +1 -0
- package/esm/components/modal.d.ts +100 -0
- package/esm/components/modal.d.ts.map +1 -0
- package/esm/components/modal.schema.d.ts +151 -0
- package/esm/components/modal.schema.d.ts.map +1 -0
- package/esm/components/table.d.ts +91 -0
- package/esm/components/table.d.ts.map +1 -0
- package/esm/components/table.schema.d.ts +123 -0
- package/esm/components/table.schema.d.ts.map +1 -0
- package/esm/dependency/cdn-registry.d.ts +98 -0
- package/esm/dependency/cdn-registry.d.ts.map +1 -0
- package/esm/dependency/import-map.d.ts +186 -0
- package/esm/dependency/import-map.d.ts.map +1 -0
- package/esm/dependency/import-parser.d.ts +82 -0
- package/esm/dependency/import-parser.d.ts.map +1 -0
- package/esm/dependency/index.d.ts +17 -0
- package/esm/dependency/index.d.ts.map +1 -0
- package/esm/dependency/resolver.d.ts +164 -0
- package/esm/dependency/resolver.d.ts.map +1 -0
- package/esm/dependency/schemas.d.ts +486 -0
- package/esm/dependency/schemas.d.ts.map +1 -0
- package/esm/dependency/template-loader.d.ts +204 -0
- package/esm/dependency/template-loader.d.ts.map +1 -0
- package/esm/dependency/template-processor.d.ts +118 -0
- package/esm/dependency/template-processor.d.ts.map +1 -0
- package/esm/dependency/types.d.ts +739 -0
- package/esm/dependency/types.d.ts.map +1 -0
- package/esm/handlebars/expression-extractor.d.ts +147 -0
- package/esm/handlebars/expression-extractor.d.ts.map +1 -0
- package/esm/handlebars/helpers.d.ts +339 -0
- package/esm/handlebars/helpers.d.ts.map +1 -0
- package/esm/handlebars/index.d.ts +195 -0
- package/esm/handlebars/index.d.ts.map +1 -0
- package/esm/handlebars/index.js +587 -0
- package/esm/index.d.ts +56 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +20511 -0
- package/esm/layouts/base.d.ts +86 -0
- package/esm/layouts/base.d.ts.map +1 -0
- package/esm/layouts/index.d.ts +8 -0
- package/esm/layouts/index.d.ts.map +1 -0
- package/esm/layouts/index.js +892 -0
- package/esm/layouts/presets.d.ts +134 -0
- package/esm/layouts/presets.d.ts.map +1 -0
- package/esm/package.json +90 -0
- package/esm/pages/consent.d.ts +117 -0
- package/esm/pages/consent.d.ts.map +1 -0
- package/esm/pages/error.d.ts +101 -0
- package/esm/pages/error.d.ts.map +1 -0
- package/esm/pages/index.d.ts +9 -0
- package/esm/pages/index.d.ts.map +1 -0
- package/esm/pages/index.js +1563 -0
- package/esm/react/Alert.d.ts +102 -0
- package/esm/react/Alert.d.ts.map +1 -0
- package/esm/react/Badge.d.ts +101 -0
- package/esm/react/Badge.d.ts.map +1 -0
- package/esm/react/Button.d.ts +109 -0
- package/esm/react/Button.d.ts.map +1 -0
- package/esm/react/Card.d.ts +104 -0
- package/esm/react/Card.d.ts.map +1 -0
- package/esm/react/hooks/context.d.ts +179 -0
- package/esm/react/hooks/context.d.ts.map +1 -0
- package/esm/react/hooks/index.d.ts +42 -0
- package/esm/react/hooks/index.d.ts.map +1 -0
- package/esm/react/hooks/tools.d.ts +284 -0
- package/esm/react/hooks/tools.d.ts.map +1 -0
- package/esm/react/index.d.ts +81 -0
- package/esm/react/index.d.ts.map +1 -0
- package/esm/react/index.js +1372 -0
- package/esm/react/types.d.ts +106 -0
- package/esm/react/types.d.ts.map +1 -0
- package/esm/react/utils.d.ts +43 -0
- package/esm/react/utils.d.ts.map +1 -0
- package/esm/registry/index.d.ts +46 -0
- package/esm/registry/index.d.ts.map +1 -0
- package/esm/registry/index.js +6422 -0
- package/esm/registry/render-template.d.ts +91 -0
- package/esm/registry/render-template.d.ts.map +1 -0
- package/esm/registry/tool-ui.registry.d.ts +294 -0
- package/esm/registry/tool-ui.registry.d.ts.map +1 -0
- package/esm/registry/uri-utils.d.ts +56 -0
- package/esm/registry/uri-utils.d.ts.map +1 -0
- package/esm/render/index.d.ts +8 -0
- package/esm/render/index.d.ts.map +1 -0
- package/esm/render/index.js +45 -0
- package/esm/render/prerender.d.ts +57 -0
- package/esm/render/prerender.d.ts.map +1 -0
- package/esm/renderers/cache.d.ts +145 -0
- package/esm/renderers/cache.d.ts.map +1 -0
- package/esm/renderers/html.renderer.d.ts +123 -0
- package/esm/renderers/html.renderer.d.ts.map +1 -0
- package/esm/renderers/index.d.ts +36 -0
- package/esm/renderers/index.d.ts.map +1 -0
- package/esm/renderers/index.js +1827 -0
- package/esm/renderers/mdx.renderer.d.ts +120 -0
- package/esm/renderers/mdx.renderer.d.ts.map +1 -0
- package/esm/renderers/react.renderer.d.ts +96 -0
- package/esm/renderers/react.renderer.d.ts.map +1 -0
- package/esm/renderers/registry.d.ts +134 -0
- package/esm/renderers/registry.d.ts.map +1 -0
- package/esm/renderers/types.d.ts +342 -0
- package/esm/renderers/types.d.ts.map +1 -0
- package/esm/renderers/utils/detect.d.ts +107 -0
- package/esm/renderers/utils/detect.d.ts.map +1 -0
- package/esm/renderers/utils/hash.d.ts +40 -0
- package/esm/renderers/utils/hash.d.ts.map +1 -0
- package/esm/renderers/utils/index.d.ts +9 -0
- package/esm/renderers/utils/index.d.ts.map +1 -0
- package/esm/renderers/utils/transpiler.d.ts +89 -0
- package/esm/renderers/utils/transpiler.d.ts.map +1 -0
- package/esm/runtime/adapters/html.adapter.d.ts +59 -0
- package/esm/runtime/adapters/html.adapter.d.ts.map +1 -0
- package/esm/runtime/adapters/index.d.ts +26 -0
- package/esm/runtime/adapters/index.d.ts.map +1 -0
- package/esm/runtime/adapters/mdx.adapter.d.ts +73 -0
- package/esm/runtime/adapters/mdx.adapter.d.ts.map +1 -0
- package/esm/runtime/adapters/react.adapter.d.ts +70 -0
- package/esm/runtime/adapters/react.adapter.d.ts.map +1 -0
- package/esm/runtime/adapters/types.d.ts +95 -0
- package/esm/runtime/adapters/types.d.ts.map +1 -0
- package/esm/runtime/csp.d.ts +48 -0
- package/esm/runtime/csp.d.ts.map +1 -0
- package/esm/runtime/index.d.ts +17 -0
- package/esm/runtime/index.d.ts.map +1 -0
- package/esm/runtime/index.js +5186 -0
- package/esm/runtime/mcp-bridge.d.ts +101 -0
- package/esm/runtime/mcp-bridge.d.ts.map +1 -0
- package/esm/runtime/renderer-runtime.d.ts +133 -0
- package/esm/runtime/renderer-runtime.d.ts.map +1 -0
- package/esm/runtime/sanitizer.d.ts +172 -0
- package/esm/runtime/sanitizer.d.ts.map +1 -0
- package/esm/runtime/types.d.ts +415 -0
- package/esm/runtime/types.d.ts.map +1 -0
- package/esm/runtime/wrapper.d.ts +421 -0
- package/esm/runtime/wrapper.d.ts.map +1 -0
- package/esm/styles/index.d.ts +8 -0
- package/esm/styles/index.d.ts.map +1 -0
- package/esm/styles/index.js +171 -0
- package/esm/styles/variants.d.ts +51 -0
- package/esm/styles/variants.d.ts.map +1 -0
- package/esm/theme/cdn.d.ts +195 -0
- package/esm/theme/cdn.d.ts.map +1 -0
- package/esm/theme/index.d.ts +18 -0
- package/esm/theme/index.d.ts.map +1 -0
- package/esm/theme/index.js +700 -0
- package/esm/theme/platforms.d.ts +107 -0
- package/esm/theme/platforms.d.ts.map +1 -0
- package/esm/theme/presets/github-openai.d.ts +50 -0
- package/esm/theme/presets/github-openai.d.ts.map +1 -0
- package/esm/theme/presets/index.d.ts +11 -0
- package/esm/theme/presets/index.d.ts.map +1 -0
- package/esm/theme/theme.d.ts +396 -0
- package/esm/theme/theme.d.ts.map +1 -0
- package/esm/tool-template/builder.d.ts +213 -0
- package/esm/tool-template/builder.d.ts.map +1 -0
- package/esm/tool-template/index.d.ts +16 -0
- package/esm/tool-template/index.d.ts.map +1 -0
- package/esm/tool-template/index.js +3515 -0
- package/esm/types/index.d.ts +14 -0
- package/esm/types/index.d.ts.map +1 -0
- package/esm/types/index.js +75 -0
- package/esm/types/ui-config.d.ts +639 -0
- package/esm/types/ui-config.d.ts.map +1 -0
- package/esm/types/ui-runtime.d.ts +1007 -0
- package/esm/types/ui-runtime.d.ts.map +1 -0
- package/esm/typings/cache/cache-adapter.d.ts +125 -0
- package/esm/typings/cache/cache-adapter.d.ts.map +1 -0
- package/esm/typings/cache/index.d.ts +10 -0
- package/esm/typings/cache/index.d.ts.map +1 -0
- package/esm/typings/cache/memory-cache.d.ts +92 -0
- package/esm/typings/cache/memory-cache.d.ts.map +1 -0
- package/esm/typings/dts-parser.d.ts +90 -0
- package/esm/typings/dts-parser.d.ts.map +1 -0
- package/esm/typings/index.d.ts +48 -0
- package/esm/typings/index.d.ts.map +1 -0
- package/esm/typings/schemas.d.ts +232 -0
- package/esm/typings/schemas.d.ts.map +1 -0
- package/esm/typings/type-fetcher.d.ts +89 -0
- package/esm/typings/type-fetcher.d.ts.map +1 -0
- package/esm/typings/types.d.ts +320 -0
- package/esm/typings/types.d.ts.map +1 -0
- package/esm/universal/UniversalApp.d.ts +108 -0
- package/esm/universal/UniversalApp.d.ts.map +1 -0
- package/esm/universal/cached-runtime.d.ts +115 -0
- package/esm/universal/cached-runtime.d.ts.map +1 -0
- package/esm/universal/context.d.ts +122 -0
- package/esm/universal/context.d.ts.map +1 -0
- package/esm/universal/index.d.ts +57 -0
- package/esm/universal/index.d.ts.map +1 -0
- package/esm/universal/renderers/html.renderer.d.ts +37 -0
- package/esm/universal/renderers/html.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/index.d.ts +112 -0
- package/esm/universal/renderers/index.d.ts.map +1 -0
- package/esm/universal/renderers/markdown.renderer.d.ts +33 -0
- package/esm/universal/renderers/markdown.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/mdx.renderer.d.ts +38 -0
- package/esm/universal/renderers/mdx.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/react.renderer.d.ts +46 -0
- package/esm/universal/renderers/react.renderer.d.ts.map +1 -0
- package/esm/universal/runtime-builder.d.ts +33 -0
- package/esm/universal/runtime-builder.d.ts.map +1 -0
- package/esm/universal/store.d.ts +135 -0
- package/esm/universal/store.d.ts.map +1 -0
- package/esm/universal/types.d.ts +199 -0
- package/esm/universal/types.d.ts.map +1 -0
- package/esm/utils/escape-html.d.ts +58 -0
- package/esm/utils/escape-html.d.ts.map +1 -0
- package/esm/utils/index.d.ts +10 -0
- package/esm/utils/index.d.ts.map +1 -0
- package/esm/utils/index.js +40 -0
- package/esm/utils/safe-stringify.d.ts +30 -0
- package/esm/utils/safe-stringify.d.ts.map +1 -0
- package/esm/validation/error-box.d.ts +56 -0
- package/esm/validation/error-box.d.ts.map +1 -0
- package/esm/validation/index.d.ts +13 -0
- package/esm/validation/index.d.ts.map +1 -0
- package/esm/validation/index.js +562 -0
- package/esm/validation/schema-paths.d.ts +118 -0
- package/esm/validation/schema-paths.d.ts.map +1 -0
- package/esm/validation/template-validator.d.ts +143 -0
- package/esm/validation/template-validator.d.ts.map +1 -0
- package/esm/validation/wrapper.d.ts +97 -0
- package/esm/validation/wrapper.d.ts.map +1 -0
- package/esm/web-components/core/attribute-parser.d.ts +82 -0
- package/esm/web-components/core/attribute-parser.d.ts.map +1 -0
- package/esm/web-components/core/base-element.d.ts +197 -0
- package/esm/web-components/core/base-element.d.ts.map +1 -0
- package/esm/web-components/core/index.d.ts +9 -0
- package/esm/web-components/core/index.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-alert.d.ts +46 -0
- package/esm/web-components/elements/fmcp-alert.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-badge.d.ts +47 -0
- package/esm/web-components/elements/fmcp-badge.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-button.d.ts +117 -0
- package/esm/web-components/elements/fmcp-button.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-card.d.ts +53 -0
- package/esm/web-components/elements/fmcp-card.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-input.d.ts +96 -0
- package/esm/web-components/elements/fmcp-input.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-select.d.ts +100 -0
- package/esm/web-components/elements/fmcp-select.d.ts.map +1 -0
- package/esm/web-components/elements/index.d.ts +13 -0
- package/esm/web-components/elements/index.d.ts.map +1 -0
- package/esm/web-components/index.d.ts +50 -0
- package/esm/web-components/index.d.ts.map +1 -0
- package/esm/web-components/index.js +2048 -0
- package/esm/web-components/register.d.ts +57 -0
- package/esm/web-components/register.d.ts.map +1 -0
- package/esm/web-components/types.d.ts +122 -0
- package/esm/web-components/types.d.ts.map +1 -0
- package/esm/widgets/index.d.ts +8 -0
- package/esm/widgets/index.d.ts.map +1 -0
- package/esm/widgets/index.js +941 -0
- package/esm/widgets/progress.d.ts +133 -0
- package/esm/widgets/progress.d.ts.map +1 -0
- package/esm/widgets/resource.d.ts +163 -0
- package/esm/widgets/resource.d.ts.map +1 -0
- package/handlebars/expression-extractor.d.ts +147 -0
- package/handlebars/expression-extractor.d.ts.map +1 -0
- package/handlebars/helpers.d.ts +339 -0
- package/handlebars/helpers.d.ts.map +1 -0
- package/handlebars/index.d.ts +195 -0
- package/handlebars/index.d.ts.map +1 -0
- package/handlebars/index.js +666 -0
- package/index.d.ts +56 -0
- package/index.d.ts.map +1 -0
- package/index.js +20942 -0
- package/layouts/base.d.ts +86 -0
- package/layouts/base.d.ts.map +1 -0
- package/layouts/index.d.ts +8 -0
- package/layouts/index.d.ts.map +1 -0
- package/layouts/index.js +930 -0
- package/layouts/presets.d.ts +134 -0
- package/layouts/presets.d.ts.map +1 -0
- package/package.json +26 -85
- package/pages/consent.d.ts +117 -0
- package/pages/consent.d.ts.map +1 -0
- package/pages/error.d.ts +101 -0
- package/pages/error.d.ts.map +1 -0
- package/pages/index.d.ts +9 -0
- package/pages/index.d.ts.map +1 -0
- package/pages/index.js +1602 -0
- package/react/Alert.d.ts +102 -0
- package/react/Alert.d.ts.map +1 -0
- package/react/Badge.d.ts +101 -0
- package/react/Badge.d.ts.map +1 -0
- package/react/Button.d.ts +109 -0
- package/react/Button.d.ts.map +1 -0
- package/react/Card.d.ts +104 -0
- package/react/Card.d.ts.map +1 -0
- package/react/hooks/context.d.ts +179 -0
- package/react/hooks/context.d.ts.map +1 -0
- package/react/hooks/index.d.ts +42 -0
- package/react/hooks/index.d.ts.map +1 -0
- package/react/hooks/tools.d.ts +284 -0
- package/react/hooks/tools.d.ts.map +1 -0
- package/react/index.d.ts +81 -0
- package/react/index.d.ts.map +1 -0
- package/react/index.js +1430 -0
- package/react/types.d.ts +106 -0
- package/react/types.d.ts.map +1 -0
- package/react/utils.d.ts +43 -0
- package/react/utils.d.ts.map +1 -0
- package/registry/index.d.ts +46 -0
- package/registry/index.d.ts.map +1 -0
- package/registry/index.js +6465 -0
- package/registry/render-template.d.ts +91 -0
- package/registry/render-template.d.ts.map +1 -0
- package/registry/tool-ui.registry.d.ts +294 -0
- package/registry/tool-ui.registry.d.ts.map +1 -0
- package/registry/uri-utils.d.ts +56 -0
- package/registry/uri-utils.d.ts.map +1 -0
- package/render/index.d.ts +8 -0
- package/render/index.d.ts.map +1 -0
- package/render/index.js +77 -0
- package/render/prerender.d.ts +57 -0
- package/render/prerender.d.ts.map +1 -0
- package/renderers/cache.d.ts +145 -0
- package/renderers/cache.d.ts.map +1 -0
- package/renderers/html.renderer.d.ts +123 -0
- package/renderers/html.renderer.d.ts.map +1 -0
- package/renderers/index.d.ts +36 -0
- package/renderers/index.d.ts.map +1 -0
- package/renderers/index.js +1882 -0
- package/renderers/mdx.renderer.d.ts +120 -0
- package/renderers/mdx.renderer.d.ts.map +1 -0
- package/renderers/react.renderer.d.ts +96 -0
- package/renderers/react.renderer.d.ts.map +1 -0
- package/renderers/registry.d.ts +134 -0
- package/renderers/registry.d.ts.map +1 -0
- package/renderers/types.d.ts +342 -0
- package/renderers/types.d.ts.map +1 -0
- package/renderers/utils/detect.d.ts +107 -0
- package/renderers/utils/detect.d.ts.map +1 -0
- package/renderers/utils/hash.d.ts +40 -0
- package/renderers/utils/hash.d.ts.map +1 -0
- package/renderers/utils/index.d.ts +9 -0
- package/renderers/utils/index.d.ts.map +1 -0
- package/renderers/utils/transpiler.d.ts +89 -0
- package/renderers/utils/transpiler.d.ts.map +1 -0
- package/runtime/adapters/html.adapter.d.ts +59 -0
- package/runtime/adapters/html.adapter.d.ts.map +1 -0
- package/runtime/adapters/index.d.ts +26 -0
- package/runtime/adapters/index.d.ts.map +1 -0
- package/runtime/adapters/mdx.adapter.d.ts +73 -0
- package/runtime/adapters/mdx.adapter.d.ts.map +1 -0
- package/runtime/adapters/react.adapter.d.ts +70 -0
- package/runtime/adapters/react.adapter.d.ts.map +1 -0
- package/runtime/adapters/types.d.ts +95 -0
- package/runtime/adapters/types.d.ts.map +1 -0
- package/runtime/csp.d.ts +48 -0
- package/runtime/csp.d.ts.map +1 -0
- package/runtime/index.d.ts +17 -0
- package/runtime/index.d.ts.map +1 -0
- package/runtime/index.js +5264 -0
- package/runtime/mcp-bridge.d.ts +101 -0
- package/runtime/mcp-bridge.d.ts.map +1 -0
- package/runtime/renderer-runtime.d.ts +133 -0
- package/runtime/renderer-runtime.d.ts.map +1 -0
- package/runtime/sanitizer.d.ts +172 -0
- package/runtime/sanitizer.d.ts.map +1 -0
- package/runtime/types.d.ts +415 -0
- package/runtime/types.d.ts.map +1 -0
- package/runtime/wrapper.d.ts +421 -0
- package/runtime/wrapper.d.ts.map +1 -0
- package/styles/index.d.ts +8 -0
- package/styles/index.d.ts.map +1 -0
- package/styles/index.js +222 -0
- package/styles/variants.d.ts +51 -0
- package/styles/variants.d.ts.map +1 -0
- package/theme/cdn.d.ts +195 -0
- package/theme/cdn.d.ts.map +1 -0
- package/theme/index.d.ts +18 -0
- package/theme/index.d.ts.map +1 -0
- package/theme/index.js +757 -0
- package/theme/platforms.d.ts +107 -0
- package/theme/platforms.d.ts.map +1 -0
- package/theme/presets/github-openai.d.ts +50 -0
- package/theme/presets/github-openai.d.ts.map +1 -0
- package/theme/presets/index.d.ts +11 -0
- package/theme/presets/index.d.ts.map +1 -0
- package/theme/theme.d.ts +396 -0
- package/theme/theme.d.ts.map +1 -0
- package/tool-template/builder.d.ts +213 -0
- package/tool-template/builder.d.ts.map +1 -0
- package/tool-template/index.d.ts +16 -0
- package/tool-template/index.d.ts.map +1 -0
- package/tool-template/index.js +3559 -0
- package/types/index.d.ts +14 -0
- package/types/index.d.ts.map +1 -0
- package/types/index.js +108 -0
- package/types/ui-config.d.ts +639 -0
- package/types/ui-config.d.ts.map +1 -0
- package/types/ui-runtime.d.ts +1007 -0
- package/types/ui-runtime.d.ts.map +1 -0
- package/typings/cache/cache-adapter.d.ts +125 -0
- package/typings/cache/cache-adapter.d.ts.map +1 -0
- package/typings/cache/index.d.ts +10 -0
- package/typings/cache/index.d.ts.map +1 -0
- package/typings/cache/memory-cache.d.ts +92 -0
- package/typings/cache/memory-cache.d.ts.map +1 -0
- package/typings/dts-parser.d.ts +90 -0
- package/typings/dts-parser.d.ts.map +1 -0
- package/typings/index.d.ts +48 -0
- package/typings/index.d.ts.map +1 -0
- package/typings/schemas.d.ts +232 -0
- package/typings/schemas.d.ts.map +1 -0
- package/typings/type-fetcher.d.ts +89 -0
- package/typings/type-fetcher.d.ts.map +1 -0
- package/typings/types.d.ts +320 -0
- package/typings/types.d.ts.map +1 -0
- package/universal/UniversalApp.d.ts +108 -0
- package/universal/UniversalApp.d.ts.map +1 -0
- package/universal/cached-runtime.d.ts +115 -0
- package/universal/cached-runtime.d.ts.map +1 -0
- package/universal/context.d.ts +122 -0
- package/universal/context.d.ts.map +1 -0
- package/universal/index.d.ts +57 -0
- package/universal/index.d.ts.map +1 -0
- package/universal/renderers/html.renderer.d.ts +37 -0
- package/universal/renderers/html.renderer.d.ts.map +1 -0
- package/universal/renderers/index.d.ts +112 -0
- package/universal/renderers/index.d.ts.map +1 -0
- package/universal/renderers/markdown.renderer.d.ts +33 -0
- package/universal/renderers/markdown.renderer.d.ts.map +1 -0
- package/universal/renderers/mdx.renderer.d.ts +38 -0
- package/universal/renderers/mdx.renderer.d.ts.map +1 -0
- package/universal/renderers/react.renderer.d.ts +46 -0
- package/universal/renderers/react.renderer.d.ts.map +1 -0
- package/universal/runtime-builder.d.ts +33 -0
- package/universal/runtime-builder.d.ts.map +1 -0
- package/universal/store.d.ts +135 -0
- package/universal/store.d.ts.map +1 -0
- package/universal/types.d.ts +199 -0
- package/universal/types.d.ts.map +1 -0
- package/utils/escape-html.d.ts +58 -0
- package/utils/escape-html.d.ts.map +1 -0
- package/utils/index.d.ts +10 -0
- package/utils/index.d.ts.map +1 -0
- package/utils/index.js +70 -0
- package/utils/safe-stringify.d.ts +30 -0
- package/utils/safe-stringify.d.ts.map +1 -0
- package/validation/error-box.d.ts +56 -0
- package/validation/error-box.d.ts.map +1 -0
- package/validation/index.d.ts +13 -0
- package/validation/index.d.ts.map +1 -0
- package/validation/index.js +603 -0
- package/validation/schema-paths.d.ts +118 -0
- package/validation/schema-paths.d.ts.map +1 -0
- package/validation/template-validator.d.ts +143 -0
- package/validation/template-validator.d.ts.map +1 -0
- package/validation/wrapper.d.ts +97 -0
- package/validation/wrapper.d.ts.map +1 -0
- package/web-components/core/attribute-parser.d.ts +82 -0
- package/web-components/core/attribute-parser.d.ts.map +1 -0
- package/web-components/core/base-element.d.ts +197 -0
- package/web-components/core/base-element.d.ts.map +1 -0
- package/web-components/core/index.d.ts +9 -0
- package/web-components/core/index.d.ts.map +1 -0
- package/web-components/elements/fmcp-alert.d.ts +46 -0
- package/web-components/elements/fmcp-alert.d.ts.map +1 -0
- package/web-components/elements/fmcp-badge.d.ts +47 -0
- package/web-components/elements/fmcp-badge.d.ts.map +1 -0
- package/web-components/elements/fmcp-button.d.ts +117 -0
- package/web-components/elements/fmcp-button.d.ts.map +1 -0
- package/web-components/elements/fmcp-card.d.ts +53 -0
- package/web-components/elements/fmcp-card.d.ts.map +1 -0
- package/web-components/elements/fmcp-input.d.ts +96 -0
- package/web-components/elements/fmcp-input.d.ts.map +1 -0
- package/web-components/elements/fmcp-select.d.ts +100 -0
- package/web-components/elements/fmcp-select.d.ts.map +1 -0
- package/web-components/elements/index.d.ts +13 -0
- package/web-components/elements/index.d.ts.map +1 -0
- package/web-components/index.d.ts +50 -0
- package/web-components/index.d.ts.map +1 -0
- package/web-components/index.js +2093 -0
- package/web-components/register.d.ts +57 -0
- package/web-components/register.d.ts.map +1 -0
- package/web-components/types.d.ts +122 -0
- package/web-components/types.d.ts.map +1 -0
- package/widgets/index.d.ts +8 -0
- package/widgets/index.d.ts.map +1 -0
- package/widgets/index.js +978 -0
- package/widgets/progress.d.ts +133 -0
- package/widgets/progress.d.ts.map +1 -0
- package/widgets/resource.d.ts +163 -0
- package/widgets/resource.d.ts.map +1 -0
- package/src/adapters/index.d.ts +0 -10
- package/src/adapters/index.js +0 -18
- package/src/adapters/index.js.map +0 -1
- package/src/adapters/platform-meta.d.ts +0 -165
- package/src/adapters/platform-meta.js +0 -310
- package/src/adapters/platform-meta.js.map +0 -1
- package/src/base-template/bridge.d.ts +0 -89
- package/src/base-template/bridge.js +0 -452
- package/src/base-template/bridge.js.map +0 -1
- package/src/base-template/default-base-template.d.ts +0 -91
- package/src/base-template/default-base-template.js +0 -435
- package/src/base-template/default-base-template.js.map +0 -1
- package/src/base-template/index.d.ts +0 -14
- package/src/base-template/index.js +0 -30
- package/src/base-template/index.js.map +0 -1
- package/src/base-template/polyfills.d.ts +0 -30
- package/src/base-template/polyfills.js +0 -190
- package/src/base-template/polyfills.js.map +0 -1
- package/src/base-template/theme-styles.d.ts +0 -73
- package/src/base-template/theme-styles.js +0 -95
- package/src/base-template/theme-styles.js.map +0 -1
- package/src/bridge/adapters/base-adapter.d.ts +0 -103
- package/src/bridge/adapters/base-adapter.js +0 -314
- package/src/bridge/adapters/base-adapter.js.map +0 -1
- package/src/bridge/adapters/claude.adapter.d.ts +0 -66
- package/src/bridge/adapters/claude.adapter.js +0 -145
- package/src/bridge/adapters/claude.adapter.js.map +0 -1
- package/src/bridge/adapters/ext-apps.adapter.d.ts +0 -142
- package/src/bridge/adapters/ext-apps.adapter.js +0 -416
- package/src/bridge/adapters/ext-apps.adapter.js.map +0 -1
- package/src/bridge/adapters/gemini.adapter.d.ts +0 -63
- package/src/bridge/adapters/gemini.adapter.js +0 -160
- package/src/bridge/adapters/gemini.adapter.js.map +0 -1
- package/src/bridge/adapters/generic.adapter.d.ts +0 -55
- package/src/bridge/adapters/generic.adapter.js +0 -108
- package/src/bridge/adapters/generic.adapter.js.map +0 -1
- package/src/bridge/adapters/index.d.ts +0 -25
- package/src/bridge/adapters/index.js +0 -65
- package/src/bridge/adapters/index.js.map +0 -1
- package/src/bridge/adapters/openai.adapter.d.ts +0 -64
- package/src/bridge/adapters/openai.adapter.js +0 -194
- package/src/bridge/adapters/openai.adapter.js.map +0 -1
- package/src/bridge/core/adapter-registry.d.ts +0 -121
- package/src/bridge/core/adapter-registry.js +0 -271
- package/src/bridge/core/adapter-registry.js.map +0 -1
- package/src/bridge/core/bridge-factory.d.ts +0 -198
- package/src/bridge/core/bridge-factory.js +0 -428
- package/src/bridge/core/bridge-factory.js.map +0 -1
- package/src/bridge/core/index.d.ts +0 -9
- package/src/bridge/core/index.js +0 -22
- package/src/bridge/core/index.js.map +0 -1
- package/src/bridge/index.d.ts +0 -61
- package/src/bridge/index.js +0 -94
- package/src/bridge/index.js.map +0 -1
- package/src/bridge/runtime/iife-generator.d.ts +0 -61
- package/src/bridge/runtime/iife-generator.js +0 -940
- package/src/bridge/runtime/iife-generator.js.map +0 -1
- package/src/bridge/runtime/index.d.ts +0 -8
- package/src/bridge/runtime/index.js +0 -16
- package/src/bridge/runtime/index.js.map +0 -1
- package/src/bridge/types.d.ts +0 -385
- package/src/bridge/types.js +0 -11
- package/src/bridge/types.js.map +0 -1
- package/src/build/cdn-resources.d.ts +0 -140
- package/src/build/cdn-resources.js +0 -314
- package/src/build/cdn-resources.js.map +0 -1
- package/src/build/index.d.ts +0 -294
- package/src/build/index.js +0 -325
- package/src/build/index.js.map +0 -1
- package/src/build/widget-manifest.d.ts +0 -212
- package/src/build/widget-manifest.js +0 -652
- package/src/build/widget-manifest.js.map +0 -1
- package/src/bundler/bundler.d.ts +0 -110
- package/src/bundler/bundler.js +0 -432
- package/src/bundler/bundler.js.map +0 -1
- package/src/bundler/cache.d.ts +0 -172
- package/src/bundler/cache.js +0 -250
- package/src/bundler/cache.js.map +0 -1
- package/src/bundler/index.d.ts +0 -41
- package/src/bundler/index.js +0 -73
- package/src/bundler/index.js.map +0 -1
- package/src/bundler/sandbox/enclave-adapter.d.ts +0 -120
- package/src/bundler/sandbox/enclave-adapter.js +0 -339
- package/src/bundler/sandbox/enclave-adapter.js.map +0 -1
- package/src/bundler/sandbox/executor.d.ts +0 -13
- package/src/bundler/sandbox/executor.js +0 -22
- package/src/bundler/sandbox/executor.js.map +0 -1
- package/src/bundler/sandbox/policy.d.ts +0 -61
- package/src/bundler/sandbox/policy.js +0 -238
- package/src/bundler/sandbox/policy.js.map +0 -1
- package/src/bundler/types.d.ts +0 -347
- package/src/bundler/types.js +0 -132
- package/src/bundler/types.js.map +0 -1
- package/src/components/alert.d.ts +0 -71
- package/src/components/alert.js +0 -189
- package/src/components/alert.js.map +0 -1
- package/src/components/alert.schema.d.ts +0 -114
- package/src/components/alert.schema.js +0 -105
- package/src/components/alert.schema.js.map +0 -1
- package/src/components/avatar.d.ts +0 -76
- package/src/components/avatar.js +0 -176
- package/src/components/avatar.js.map +0 -1
- package/src/components/avatar.schema.d.ts +0 -169
- package/src/components/avatar.schema.js +0 -103
- package/src/components/avatar.schema.js.map +0 -1
- package/src/components/badge.d.ts +0 -70
- package/src/components/badge.js +0 -149
- package/src/components/badge.js.map +0 -1
- package/src/components/badge.schema.d.ts +0 -109
- package/src/components/badge.schema.js +0 -96
- package/src/components/badge.schema.js.map +0 -1
- package/src/components/button.d.ts +0 -111
- package/src/components/button.js +0 -336
- package/src/components/button.js.map +0 -1
- package/src/components/button.schema.d.ts +0 -148
- package/src/components/button.schema.js +0 -121
- package/src/components/button.schema.js.map +0 -1
- package/src/components/card.d.ts +0 -60
- package/src/components/card.js +0 -117
- package/src/components/card.js.map +0 -1
- package/src/components/card.schema.d.ts +0 -113
- package/src/components/card.schema.js +0 -98
- package/src/components/card.schema.js.map +0 -1
- package/src/components/form.d.ts +0 -239
- package/src/components/form.js +0 -420
- package/src/components/form.js.map +0 -1
- package/src/components/form.schema.d.ts +0 -441
- package/src/components/form.schema.js +0 -406
- package/src/components/form.schema.js.map +0 -1
- package/src/components/index.d.ts +0 -29
- package/src/components/index.js +0 -98
- package/src/components/index.js.map +0 -1
- package/src/components/list.d.ts +0 -127
- package/src/components/list.js +0 -279
- package/src/components/list.js.map +0 -1
- package/src/components/list.schema.d.ts +0 -134
- package/src/components/list.schema.js +0 -168
- package/src/components/list.schema.js.map +0 -1
- package/src/components/modal.d.ts +0 -111
- package/src/components/modal.js +0 -260
- package/src/components/modal.js.map +0 -1
- package/src/components/modal.schema.d.ts +0 -186
- package/src/components/modal.schema.js +0 -167
- package/src/components/modal.schema.js.map +0 -1
- package/src/components/table.d.ts +0 -105
- package/src/components/table.js +0 -283
- package/src/components/table.js.map +0 -1
- package/src/components/table.schema.d.ts +0 -159
- package/src/components/table.schema.js +0 -173
- package/src/components/table.schema.js.map +0 -1
- package/src/handlebars/helpers.d.ts +0 -348
- package/src/handlebars/helpers.js +0 -605
- package/src/handlebars/helpers.js.map +0 -1
- package/src/handlebars/index.d.ts +0 -193
- package/src/handlebars/index.js +0 -350
- package/src/handlebars/index.js.map +0 -1
- package/src/index.d.ts +0 -50
- package/src/index.js +0 -192
- package/src/index.js.map +0 -1
- package/src/layouts/base.d.ts +0 -88
- package/src/layouts/base.js +0 -227
- package/src/layouts/base.js.map +0 -1
- package/src/layouts/index.d.ts +0 -7
- package/src/layouts/index.js +0 -25
- package/src/layouts/index.js.map +0 -1
- package/src/layouts/presets.d.ts +0 -133
- package/src/layouts/presets.js +0 -277
- package/src/layouts/presets.js.map +0 -1
- package/src/pages/consent.d.ts +0 -116
- package/src/pages/consent.js +0 -218
- package/src/pages/consent.js.map +0 -1
- package/src/pages/error.d.ts +0 -100
- package/src/pages/error.js +0 -263
- package/src/pages/error.js.map +0 -1
- package/src/pages/index.d.ts +0 -8
- package/src/pages/index.js +0 -27
- package/src/pages/index.js.map +0 -1
- package/src/react/Alert.d.ts +0 -101
- package/src/react/Alert.js +0 -51
- package/src/react/Alert.js.map +0 -1
- package/src/react/Badge.d.ts +0 -100
- package/src/react/Badge.js +0 -55
- package/src/react/Badge.js.map +0 -1
- package/src/react/Button.d.ts +0 -108
- package/src/react/Button.js +0 -52
- package/src/react/Button.js.map +0 -1
- package/src/react/Card.d.ts +0 -103
- package/src/react/Card.js +0 -55
- package/src/react/Card.js.map +0 -1
- package/src/react/hooks/context.d.ts +0 -178
- package/src/react/hooks/context.js +0 -287
- package/src/react/hooks/context.js.map +0 -1
- package/src/react/hooks/index.d.ts +0 -41
- package/src/react/hooks/index.js +0 -61
- package/src/react/hooks/index.js.map +0 -1
- package/src/react/hooks/tools.d.ts +0 -283
- package/src/react/hooks/tools.js +0 -465
- package/src/react/hooks/tools.js.map +0 -1
- package/src/react/index.d.ts +0 -80
- package/src/react/index.js +0 -113
- package/src/react/index.js.map +0 -1
- package/src/react/types.d.ts +0 -105
- package/src/react/types.js +0 -12
- package/src/react/types.js.map +0 -1
- package/src/react/utils.d.ts +0 -42
- package/src/react/utils.js +0 -99
- package/src/react/utils.js.map +0 -1
- package/src/registry/index.d.ts +0 -45
- package/src/registry/index.js +0 -67
- package/src/registry/index.js.map +0 -1
- package/src/registry/render-template.d.ts +0 -86
- package/src/registry/render-template.js +0 -239
- package/src/registry/render-template.js.map +0 -1
- package/src/registry/tool-ui.registry.d.ts +0 -260
- package/src/registry/tool-ui.registry.js +0 -438
- package/src/registry/tool-ui.registry.js.map +0 -1
- package/src/registry/uri-utils.d.ts +0 -55
- package/src/registry/uri-utils.js +0 -97
- package/src/registry/uri-utils.js.map +0 -1
- package/src/render/index.d.ts +0 -7
- package/src/render/index.js +0 -14
- package/src/render/index.js.map +0 -1
- package/src/render/prerender.d.ts +0 -56
- package/src/render/prerender.js +0 -98
- package/src/render/prerender.js.map +0 -1
- package/src/renderers/cache.d.ts +0 -144
- package/src/renderers/cache.js +0 -240
- package/src/renderers/cache.js.map +0 -1
- package/src/renderers/html.renderer.d.ts +0 -122
- package/src/renderers/html.renderer.js +0 -204
- package/src/renderers/html.renderer.js.map +0 -1
- package/src/renderers/index.d.ts +0 -35
- package/src/renderers/index.js +0 -70
- package/src/renderers/index.js.map +0 -1
- package/src/renderers/mdx.renderer.d.ts +0 -119
- package/src/renderers/mdx.renderer.js +0 -305
- package/src/renderers/mdx.renderer.js.map +0 -1
- package/src/renderers/react.renderer.d.ts +0 -95
- package/src/renderers/react.renderer.js +0 -260
- package/src/renderers/react.renderer.js.map +0 -1
- package/src/renderers/registry.d.ts +0 -133
- package/src/renderers/registry.js +0 -232
- package/src/renderers/registry.js.map +0 -1
- package/src/renderers/types.d.ts +0 -341
- package/src/renderers/types.js +0 -9
- package/src/renderers/types.js.map +0 -1
- package/src/renderers/utils/detect.d.ts +0 -106
- package/src/renderers/utils/detect.js +0 -267
- package/src/renderers/utils/detect.js.map +0 -1
- package/src/renderers/utils/hash.d.ts +0 -39
- package/src/renderers/utils/hash.js +0 -75
- package/src/renderers/utils/hash.js.map +0 -1
- package/src/renderers/utils/index.d.ts +0 -8
- package/src/renderers/utils/index.js +0 -28
- package/src/renderers/utils/index.js.map +0 -1
- package/src/renderers/utils/transpiler.d.ts +0 -88
- package/src/renderers/utils/transpiler.js +0 -215
- package/src/renderers/utils/transpiler.js.map +0 -1
- package/src/runtime/adapters/html.adapter.d.ts +0 -58
- package/src/runtime/adapters/html.adapter.js +0 -131
- package/src/runtime/adapters/html.adapter.js.map +0 -1
- package/src/runtime/adapters/index.d.ts +0 -25
- package/src/runtime/adapters/index.js +0 -54
- package/src/runtime/adapters/index.js.map +0 -1
- package/src/runtime/adapters/mdx.adapter.d.ts +0 -72
- package/src/runtime/adapters/mdx.adapter.js +0 -241
- package/src/runtime/adapters/mdx.adapter.js.map +0 -1
- package/src/runtime/adapters/react.adapter.d.ts +0 -69
- package/src/runtime/adapters/react.adapter.js +0 -245
- package/src/runtime/adapters/react.adapter.js.map +0 -1
- package/src/runtime/adapters/types.d.ts +0 -94
- package/src/runtime/adapters/types.js +0 -11
- package/src/runtime/adapters/types.js.map +0 -1
- package/src/runtime/csp.d.ts +0 -37
- package/src/runtime/csp.js +0 -140
- package/src/runtime/csp.js.map +0 -1
- package/src/runtime/index.d.ts +0 -16
- package/src/runtime/index.js +0 -72
- package/src/runtime/index.js.map +0 -1
- package/src/runtime/mcp-bridge.d.ts +0 -100
- package/src/runtime/mcp-bridge.js +0 -581
- package/src/runtime/mcp-bridge.js.map +0 -1
- package/src/runtime/renderer-runtime.d.ts +0 -132
- package/src/runtime/renderer-runtime.js +0 -389
- package/src/runtime/renderer-runtime.js.map +0 -1
- package/src/runtime/sanitizer.d.ts +0 -171
- package/src/runtime/sanitizer.js +0 -318
- package/src/runtime/sanitizer.js.map +0 -1
- package/src/runtime/types.d.ts +0 -414
- package/src/runtime/types.js +0 -12
- package/src/runtime/types.js.map +0 -1
- package/src/runtime/wrapper.d.ts +0 -375
- package/src/runtime/wrapper.js +0 -1793
- package/src/runtime/wrapper.js.map +0 -1
- package/src/styles/index.d.ts +0 -7
- package/src/styles/index.js +0 -11
- package/src/styles/index.js.map +0 -1
- package/src/styles/variants.d.ts +0 -50
- package/src/styles/variants.js +0 -175
- package/src/styles/variants.js.map +0 -1
- package/src/theme/cdn.d.ts +0 -194
- package/src/theme/cdn.js +0 -375
- package/src/theme/cdn.js.map +0 -1
- package/src/theme/index.d.ts +0 -17
- package/src/theme/index.js +0 -57
- package/src/theme/index.js.map +0 -1
- package/src/theme/platforms.d.ts +0 -106
- package/src/theme/platforms.js +0 -161
- package/src/theme/platforms.js.map +0 -1
- package/src/theme/presets/github-openai.d.ts +0 -49
- package/src/theme/presets/github-openai.js +0 -189
- package/src/theme/presets/github-openai.js.map +0 -1
- package/src/theme/presets/index.d.ts +0 -10
- package/src/theme/presets/index.js +0 -17
- package/src/theme/presets/index.js.map +0 -1
- package/src/theme/theme.d.ts +0 -395
- package/src/theme/theme.js +0 -332
- package/src/theme/theme.js.map +0 -1
- package/src/tool-template/builder.d.ts +0 -212
- package/src/tool-template/builder.js +0 -397
- package/src/tool-template/builder.js.map +0 -1
- package/src/tool-template/index.d.ts +0 -15
- package/src/tool-template/index.js +0 -38
- package/src/tool-template/index.js.map +0 -1
- package/src/types/index.d.ts +0 -13
- package/src/types/index.js +0 -26
- package/src/types/index.js.map +0 -1
- package/src/types/ui-config.d.ts +0 -357
- package/src/types/ui-config.js +0 -12
- package/src/types/ui-config.js.map +0 -1
- package/src/types/ui-runtime.d.ts +0 -965
- package/src/types/ui-runtime.js +0 -117
- package/src/types/ui-runtime.js.map +0 -1
- package/src/validation/error-box.d.ts +0 -55
- package/src/validation/error-box.js +0 -75
- package/src/validation/error-box.js.map +0 -1
- package/src/validation/index.d.ts +0 -12
- package/src/validation/index.js +0 -21
- package/src/validation/index.js.map +0 -1
- package/src/validation/wrapper.d.ts +0 -96
- package/src/validation/wrapper.js +0 -117
- package/src/validation/wrapper.js.map +0 -1
- package/src/web-components/core/attribute-parser.d.ts +0 -85
- package/src/web-components/core/attribute-parser.js +0 -189
- package/src/web-components/core/attribute-parser.js.map +0 -1
- package/src/web-components/core/base-element.d.ts +0 -197
- package/src/web-components/core/base-element.js +0 -289
- package/src/web-components/core/base-element.js.map +0 -1
- package/src/web-components/core/index.d.ts +0 -8
- package/src/web-components/core/index.js +0 -18
- package/src/web-components/core/index.js.map +0 -1
- package/src/web-components/elements/fmcp-alert.d.ts +0 -45
- package/src/web-components/elements/fmcp-alert.js +0 -93
- package/src/web-components/elements/fmcp-alert.js.map +0 -1
- package/src/web-components/elements/fmcp-badge.d.ts +0 -46
- package/src/web-components/elements/fmcp-badge.js +0 -99
- package/src/web-components/elements/fmcp-badge.js.map +0 -1
- package/src/web-components/elements/fmcp-button.d.ts +0 -124
- package/src/web-components/elements/fmcp-button.js +0 -233
- package/src/web-components/elements/fmcp-button.js.map +0 -1
- package/src/web-components/elements/fmcp-card.d.ts +0 -52
- package/src/web-components/elements/fmcp-card.js +0 -115
- package/src/web-components/elements/fmcp-card.js.map +0 -1
- package/src/web-components/elements/fmcp-input.d.ts +0 -95
- package/src/web-components/elements/fmcp-input.js +0 -248
- package/src/web-components/elements/fmcp-input.js.map +0 -1
- package/src/web-components/elements/fmcp-select.d.ts +0 -99
- package/src/web-components/elements/fmcp-select.js +0 -243
- package/src/web-components/elements/fmcp-select.js.map +0 -1
- package/src/web-components/elements/index.d.ts +0 -12
- package/src/web-components/elements/index.js +0 -34
- package/src/web-components/elements/index.js.map +0 -1
- package/src/web-components/index.d.ts +0 -49
- package/src/web-components/index.js +0 -75
- package/src/web-components/index.js.map +0 -1
- package/src/web-components/register.d.ts +0 -56
- package/src/web-components/register.js +0 -80
- package/src/web-components/register.js.map +0 -1
- package/src/web-components/types.d.ts +0 -121
- package/src/web-components/types.js +0 -25
- package/src/web-components/types.js.map +0 -1
- package/src/widgets/index.d.ts +0 -7
- package/src/widgets/index.js +0 -24
- package/src/widgets/index.js.map +0 -1
- package/src/widgets/progress.d.ts +0 -132
- package/src/widgets/progress.js +0 -303
- package/src/widgets/progress.js.map +0 -1
- package/src/widgets/resource.d.ts +0 -162
- package/src/widgets/resource.js +0 -340
- package/src/widgets/resource.js.map +0 -1
|
@@ -1,435 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Default Base Template for Tool UI
|
|
4
|
-
*
|
|
5
|
-
* Provides a generic HTML wrapper for tool output widgets that:
|
|
6
|
-
* 1. Includes theming (Tailwind CSS with @theme)
|
|
7
|
-
* 2. Includes platform polyfills (callTool, detectMcpSession)
|
|
8
|
-
* 3. Polls for toolOutput from window.openai or window.__frontmcp
|
|
9
|
-
* 4. Renders content via window.__frontmcp.renderContent or default JSON renderer
|
|
10
|
-
*
|
|
11
|
-
* This template is platform-agnostic and works with:
|
|
12
|
-
* - OpenAI Apps SDK (window.openai.toolOutput)
|
|
13
|
-
* - Claude Artifacts
|
|
14
|
-
* - Custom hosts using MCP protocol
|
|
15
|
-
* - ngrok/iframe scenarios
|
|
16
|
-
*/
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.createDefaultBaseTemplate = createDefaultBaseTemplate;
|
|
19
|
-
exports.createMinimalBaseTemplate = createMinimalBaseTemplate;
|
|
20
|
-
const theme_1 = require("../theme");
|
|
21
|
-
const theme_styles_1 = require("./theme-styles");
|
|
22
|
-
const polyfills_1 = require("./polyfills");
|
|
23
|
-
const bridge_1 = require("./bridge");
|
|
24
|
-
/**
|
|
25
|
-
* Escape string for use in HTML attributes.
|
|
26
|
-
*/
|
|
27
|
-
function escapeAttr(str) {
|
|
28
|
-
return str
|
|
29
|
-
.replace(/&/g, '&')
|
|
30
|
-
.replace(/"/g, '"')
|
|
31
|
-
.replace(/'/g, ''')
|
|
32
|
-
.replace(/</g, '<')
|
|
33
|
-
.replace(/>/g, '>');
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Create a default base template for tool UI widgets.
|
|
37
|
-
*
|
|
38
|
-
* This generates a complete HTML document that:
|
|
39
|
-
* 1. Loads Tailwind CSS with theme configuration
|
|
40
|
-
* 2. Injects platform polyfills (callTool, detectMcpSession, getToolOutput)
|
|
41
|
-
* 3. Waits for toolOutput to be injected
|
|
42
|
-
* 4. Renders content using window.__frontmcp.renderContent or default JSON renderer
|
|
43
|
-
*
|
|
44
|
-
* @param options - Base template configuration
|
|
45
|
-
* @returns Complete HTML document string
|
|
46
|
-
*
|
|
47
|
-
* @example Basic usage
|
|
48
|
-
* ```typescript
|
|
49
|
-
* const html = createDefaultBaseTemplate({ toolName: 'get_weather' });
|
|
50
|
-
* ```
|
|
51
|
-
*
|
|
52
|
-
* @example With custom theme and MCP session
|
|
53
|
-
* ```typescript
|
|
54
|
-
* const html = createDefaultBaseTemplate({
|
|
55
|
-
* toolName: 'get_weather',
|
|
56
|
-
* theme: customTheme,
|
|
57
|
-
* mcpSession: { mcpUrl: 'https://mcp.example.com', sessionId: 'abc123' },
|
|
58
|
-
* });
|
|
59
|
-
* ```
|
|
60
|
-
*
|
|
61
|
-
* @example For Claude Artifacts (inline scripts)
|
|
62
|
-
* ```typescript
|
|
63
|
-
* await fetchAndCacheScriptsFromTheme(theme);
|
|
64
|
-
* const html = createDefaultBaseTemplate({
|
|
65
|
-
* toolName: 'get_weather',
|
|
66
|
-
* inline: true,
|
|
67
|
-
* });
|
|
68
|
-
* ```
|
|
69
|
-
*/
|
|
70
|
-
function createDefaultBaseTemplate(options) {
|
|
71
|
-
const { toolName, theme = theme_1.DEFAULT_THEME, mcpSession, htmx = false, alpine = false, fonts = true, inline = false, headContent = '', bodyClass = 'bg-transparent font-sans antialiased', containerClass = 'p-4', } = options;
|
|
72
|
-
// Build theme styles (fonts, scripts, @theme CSS)
|
|
73
|
-
const themeStylesOptions = {
|
|
74
|
-
theme,
|
|
75
|
-
tailwind: true,
|
|
76
|
-
htmx,
|
|
77
|
-
alpine,
|
|
78
|
-
fonts,
|
|
79
|
-
inline,
|
|
80
|
-
};
|
|
81
|
-
const themeStyles = (0, theme_styles_1.renderThemeStyles)(themeStylesOptions);
|
|
82
|
-
// Build MCP session polyfill (detectMcpSession, callTool, getToolOutput)
|
|
83
|
-
const polyfills = (0, polyfills_1.renderMcpSessionPolyfill)(mcpSession);
|
|
84
|
-
// Build reactive bridge (handles data injection and re-rendering)
|
|
85
|
-
const bridge = (0, bridge_1.renderBridgeScript)();
|
|
86
|
-
return `<!DOCTYPE html>
|
|
87
|
-
<html lang="en">
|
|
88
|
-
<head>
|
|
89
|
-
<meta charset="utf-8">
|
|
90
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
91
|
-
<meta name="color-scheme" content="light dark">
|
|
92
|
-
<title>${escapeAttr(toolName)} Widget</title>
|
|
93
|
-
${themeStyles}
|
|
94
|
-
${polyfills}
|
|
95
|
-
${bridge}
|
|
96
|
-
${headContent}
|
|
97
|
-
</head>
|
|
98
|
-
<body class="${escapeAttr(bodyClass)}">
|
|
99
|
-
<div id="widget-root" class="${escapeAttr(containerClass)}"></div>
|
|
100
|
-
|
|
101
|
-
<script>
|
|
102
|
-
(function() {
|
|
103
|
-
'use strict';
|
|
104
|
-
|
|
105
|
-
var root = document.getElementById('widget-root');
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Render the widget based on bridge state.
|
|
109
|
-
* Uses the reactive bridge to automatically re-render when data changes.
|
|
110
|
-
*/
|
|
111
|
-
function render() {
|
|
112
|
-
var state = window.__frontmcp.bridge.getState();
|
|
113
|
-
|
|
114
|
-
// Loading state
|
|
115
|
-
if (state.loading) {
|
|
116
|
-
root.innerHTML = renderLoading();
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// Error state
|
|
121
|
-
if (state.error) {
|
|
122
|
-
root.innerHTML = renderError(state.error);
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// No data state
|
|
127
|
-
if (state.data === null) {
|
|
128
|
-
root.innerHTML = renderEmpty();
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// Render data
|
|
133
|
-
try {
|
|
134
|
-
// Check for custom renderer provided by developer
|
|
135
|
-
if (window.__frontmcp && typeof window.__frontmcp.renderContent === 'function') {
|
|
136
|
-
root.innerHTML = window.__frontmcp.renderContent(state.data);
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
// Fall back to default renderer
|
|
141
|
-
root.innerHTML = defaultRenderer(state.data);
|
|
142
|
-
} catch (e) {
|
|
143
|
-
console.error('[frontmcp] Error rendering widget:', e);
|
|
144
|
-
root.innerHTML = renderError(e.message || 'Render error');
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Default renderer for tool output.
|
|
150
|
-
* Handles both pre-rendered HTML strings and raw JSON data.
|
|
151
|
-
*/
|
|
152
|
-
function defaultRenderer(data) {
|
|
153
|
-
// Check if data is pre-rendered HTML (server-side rendered widget)
|
|
154
|
-
if (typeof data === 'string' && data.trim().startsWith('<')) {
|
|
155
|
-
// Direct HTML injection - content was already rendered/sanitized server-side
|
|
156
|
-
return data;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// Check for special wrapper with HTML content
|
|
160
|
-
if (data && typeof data === 'object' && data.__html) {
|
|
161
|
-
return data.__html;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
// Fallback: JSON renderer for raw data
|
|
165
|
-
var json = JSON.stringify(data, null, 2);
|
|
166
|
-
return '<pre class="p-4 bg-surface rounded-md overflow-auto text-sm font-mono text-text-primary border border-border">' +
|
|
167
|
-
escapeHtml(json) +
|
|
168
|
-
'</pre>';
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Render loading state with animated spinner.
|
|
173
|
-
*/
|
|
174
|
-
function renderLoading() {
|
|
175
|
-
return '<div class="flex items-center justify-center p-8">' +
|
|
176
|
-
'<div class="flex flex-col items-center gap-3">' +
|
|
177
|
-
'<svg class="animate-spin h-8 w-8 text-blue-500" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">' +
|
|
178
|
-
'<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>' +
|
|
179
|
-
'<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>' +
|
|
180
|
-
'</svg>' +
|
|
181
|
-
'<p class="text-text-secondary text-sm">Loading...</p>' +
|
|
182
|
-
'</div>' +
|
|
183
|
-
'</div>';
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Render error message.
|
|
188
|
-
*/
|
|
189
|
-
function renderError(message) {
|
|
190
|
-
return '<div class="p-4 bg-red-50 border border-red-200 rounded-md">' +
|
|
191
|
-
'<p class="text-red-600 text-sm">Error: ' + escapeHtml(message) + '</p>' +
|
|
192
|
-
'</div>';
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* Render empty state (no data available).
|
|
197
|
-
*/
|
|
198
|
-
function renderEmpty() {
|
|
199
|
-
return '<div class="p-4 text-text-secondary text-sm text-center">' +
|
|
200
|
-
'No data available' +
|
|
201
|
-
'</div>';
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* Escape HTML special characters.
|
|
206
|
-
*/
|
|
207
|
-
function escapeHtml(str) {
|
|
208
|
-
if (typeof str !== 'string') return str;
|
|
209
|
-
return str
|
|
210
|
-
.replace(/&/g, '&')
|
|
211
|
-
.replace(/</g, '<')
|
|
212
|
-
.replace(/>/g, '>')
|
|
213
|
-
.replace(/"/g, '"');
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Create debug overlay panel.
|
|
218
|
-
* Shows bridge state, logs, and OpenAI data status.
|
|
219
|
-
*/
|
|
220
|
-
function createDebugOverlay() {
|
|
221
|
-
var overlay = document.createElement('div');
|
|
222
|
-
overlay.id = 'frontmcp-debug-overlay';
|
|
223
|
-
overlay.style.cssText = 'position:fixed;bottom:10px;right:10px;width:400px;max-height:60vh;' +
|
|
224
|
-
'background:rgba(0,0,0,0.9);color:#0f0;font-family:monospace;font-size:11px;' +
|
|
225
|
-
'padding:10px;border-radius:4px;z-index:99999;overflow:auto;display:none;';
|
|
226
|
-
|
|
227
|
-
var toggle = document.createElement('button');
|
|
228
|
-
toggle.id = 'frontmcp-debug-toggle';
|
|
229
|
-
toggle.textContent = 'Debug';
|
|
230
|
-
toggle.style.cssText = 'position:fixed;bottom:10px;right:10px;padding:4px 8px;' +
|
|
231
|
-
'background:#333;color:#0f0;font-family:monospace;font-size:10px;border:1px solid #0f0;' +
|
|
232
|
-
'border-radius:4px;z-index:100000;cursor:pointer;';
|
|
233
|
-
|
|
234
|
-
toggle.onclick = function() {
|
|
235
|
-
var o = document.getElementById('frontmcp-debug-overlay');
|
|
236
|
-
if (o.style.display === 'none') {
|
|
237
|
-
o.style.display = 'block';
|
|
238
|
-
toggle.style.right = '420px';
|
|
239
|
-
updateDebugOverlay();
|
|
240
|
-
} else {
|
|
241
|
-
o.style.display = 'none';
|
|
242
|
-
toggle.style.right = '10px';
|
|
243
|
-
}
|
|
244
|
-
};
|
|
245
|
-
|
|
246
|
-
document.body.appendChild(overlay);
|
|
247
|
-
document.body.appendChild(toggle);
|
|
248
|
-
|
|
249
|
-
// Auto-update every second
|
|
250
|
-
setInterval(updateDebugOverlay, 1000);
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
function updateDebugOverlay() {
|
|
254
|
-
var overlay = document.getElementById('frontmcp-debug-overlay');
|
|
255
|
-
if (!overlay || overlay.style.display === 'none') return;
|
|
256
|
-
|
|
257
|
-
var state = window.__frontmcp.bridge.getState();
|
|
258
|
-
var debug = window.__frontmcp.bridge.debug;
|
|
259
|
-
var logs = debug.getLogs();
|
|
260
|
-
var errors = debug.getLastErrors();
|
|
261
|
-
var stateHistory = debug.getStateHistory();
|
|
262
|
-
|
|
263
|
-
var html = '<div style="margin-bottom:10px;border-bottom:1px solid #333;padding-bottom:5px;">' +
|
|
264
|
-
'<strong>FrontMCP Debug Panel</strong>' +
|
|
265
|
-
'<span style="float:right;color:#666;">v' + stateHistory.version + '</span>' +
|
|
266
|
-
'</div>';
|
|
267
|
-
|
|
268
|
-
// Bridge State
|
|
269
|
-
html += '<div style="margin-bottom:10px;">' +
|
|
270
|
-
'<div style="color:#ff0;">Bridge State:</div>' +
|
|
271
|
-
'<div>Loading: ' + state.loading + '</div>' +
|
|
272
|
-
'<div>Has Data: ' + (state.data !== null) + '</div>' +
|
|
273
|
-
'<div>Data Type: ' + (state.data === null ? 'null' : typeof state.data) + '</div>' +
|
|
274
|
-
(typeof state.data === 'string' ? '<div>Data Length: ' + state.data.length + '</div>' : '') +
|
|
275
|
-
'<div>Error: ' + (state.error || 'none') + '</div>' +
|
|
276
|
-
'</div>';
|
|
277
|
-
|
|
278
|
-
// OpenAI Status
|
|
279
|
-
html += '<div style="margin-bottom:10px;">' +
|
|
280
|
-
'<div style="color:#ff0;">OpenAI Status:</div>' +
|
|
281
|
-
'<div>Intercepted: ' + stateHistory.openaiIntercepted + '</div>' +
|
|
282
|
-
'<div>Poll Count: ' + stateHistory.pollCount + '</div>';
|
|
283
|
-
|
|
284
|
-
if (window.openai) {
|
|
285
|
-
html += '<div>window.openai: exists</div>' +
|
|
286
|
-
'<div>toolOutput: ' + (window.openai.toolOutput !== undefined ? 'present' : 'undefined') + '</div>' +
|
|
287
|
-
'<div>toolResponseMetadata: ' + (window.openai.toolResponseMetadata !== undefined ? 'present' : 'undefined') + '</div>';
|
|
288
|
-
if (window.openai.toolResponseMetadata) {
|
|
289
|
-
html += '<div>meta keys: ' + Object.keys(window.openai.toolResponseMetadata).join(', ') + '</div>';
|
|
290
|
-
}
|
|
291
|
-
} else {
|
|
292
|
-
html += '<div>window.openai: undefined</div>';
|
|
293
|
-
}
|
|
294
|
-
html += '</div>';
|
|
295
|
-
|
|
296
|
-
// Errors
|
|
297
|
-
if (errors.length > 0) {
|
|
298
|
-
html += '<div style="margin-bottom:10px;">' +
|
|
299
|
-
'<div style="color:#f00;">Errors (' + errors.length + '):</div>';
|
|
300
|
-
errors.slice(-5).forEach(function(e) {
|
|
301
|
-
html += '<div style="color:#f88;font-size:10px;">[' + e.level + '] ' + escapeHtml(e.message) + '</div>';
|
|
302
|
-
});
|
|
303
|
-
html += '</div>';
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
// Recent Logs
|
|
307
|
-
html += '<div>' +
|
|
308
|
-
'<div style="color:#ff0;">Recent Logs (' + logs.length + '):</div>' +
|
|
309
|
-
'<div style="max-height:150px;overflow:auto;">';
|
|
310
|
-
logs.slice(-10).forEach(function(e) {
|
|
311
|
-
var color = e.level === 'error' ? '#f00' : e.level === 'warn' ? '#ff0' : '#0f0';
|
|
312
|
-
html += '<div style="color:' + color + ';font-size:10px;">' +
|
|
313
|
-
'[' + e.ts.split('T')[1].split('.')[0] + '] ' + escapeHtml(e.message) +
|
|
314
|
-
'</div>';
|
|
315
|
-
});
|
|
316
|
-
html += '</div></div>';
|
|
317
|
-
|
|
318
|
-
// Actions
|
|
319
|
-
html += '<div style="margin-top:10px;border-top:1px solid #333;padding-top:5px;">' +
|
|
320
|
-
'<button onclick="console.log(window.__frontmcp.bridge.debug.dumpAll())" ' +
|
|
321
|
-
'style="font-size:10px;padding:2px 6px;margin-right:5px;">Dump to Console</button>' +
|
|
322
|
-
'<button onclick="window.__frontmcp.bridge.reset()" ' +
|
|
323
|
-
'style="font-size:10px;padding:2px 6px;">Reset Bridge</button>' +
|
|
324
|
-
'</div>';
|
|
325
|
-
|
|
326
|
-
overlay.innerHTML = html;
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
/**
|
|
330
|
-
* Initialize the widget with reactive rendering.
|
|
331
|
-
*/
|
|
332
|
-
function init() {
|
|
333
|
-
// Subscribe to bridge state changes for reactive re-rendering
|
|
334
|
-
window.__frontmcp.bridge.subscribe(render);
|
|
335
|
-
|
|
336
|
-
// Initial render
|
|
337
|
-
render();
|
|
338
|
-
|
|
339
|
-
// Global click handler for SSR-compatible tool calls
|
|
340
|
-
// Handles buttons/elements with data-tool-call attribute
|
|
341
|
-
document.addEventListener('click', function(e) {
|
|
342
|
-
var target = e.target;
|
|
343
|
-
// Walk up the DOM to find element with data-tool-call (handles clicks on child elements)
|
|
344
|
-
while (target && target !== document.body) {
|
|
345
|
-
if (target.hasAttribute && target.hasAttribute('data-tool-call')) {
|
|
346
|
-
var toolName = target.getAttribute('data-tool-call');
|
|
347
|
-
var argsStr = target.getAttribute('data-tool-args');
|
|
348
|
-
var args = {};
|
|
349
|
-
|
|
350
|
-
if (argsStr) {
|
|
351
|
-
try {
|
|
352
|
-
args = JSON.parse(argsStr);
|
|
353
|
-
} catch (parseErr) {
|
|
354
|
-
console.error('[frontmcp] Failed to parse data-tool-args:', parseErr);
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
// Prevent default behavior and stop propagation
|
|
359
|
-
e.preventDefault();
|
|
360
|
-
e.stopPropagation();
|
|
361
|
-
|
|
362
|
-
// Show loading state on the button
|
|
363
|
-
var originalContent = target.innerHTML;
|
|
364
|
-
var loadingContent = '<span style="display:inline-flex;align-items:center;">' +
|
|
365
|
-
'<span style="animation:spin 1s linear infinite;margin-right:4px;">⏳</span>' +
|
|
366
|
-
'Loading...' +
|
|
367
|
-
'</span>';
|
|
368
|
-
target.innerHTML = loadingContent;
|
|
369
|
-
target.disabled = true;
|
|
370
|
-
|
|
371
|
-
// Call the tool
|
|
372
|
-
if (window.__frontmcp && typeof window.__frontmcp.callTool === 'function') {
|
|
373
|
-
window.__frontmcp.callTool(toolName, args)
|
|
374
|
-
.then(function(result) {
|
|
375
|
-
console.log('[frontmcp] Tool call success:', toolName, result);
|
|
376
|
-
// Restore button state on success
|
|
377
|
-
target.innerHTML = originalContent;
|
|
378
|
-
target.disabled = false;
|
|
379
|
-
})
|
|
380
|
-
.catch(function(err) {
|
|
381
|
-
console.error('[frontmcp] Tool call failed:', toolName, err);
|
|
382
|
-
// Restore button state on error
|
|
383
|
-
target.innerHTML = originalContent;
|
|
384
|
-
target.disabled = false;
|
|
385
|
-
});
|
|
386
|
-
} else {
|
|
387
|
-
console.error('[frontmcp] callTool not available');
|
|
388
|
-
target.innerHTML = originalContent;
|
|
389
|
-
target.disabled = false;
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
return;
|
|
393
|
-
}
|
|
394
|
-
target = target.parentElement;
|
|
395
|
-
}
|
|
396
|
-
});
|
|
397
|
-
|
|
398
|
-
// Create debug overlay if debug mode is enabled
|
|
399
|
-
var DEBUG = window.location.search.indexOf('frontmcp_debug=1') > -1 ||
|
|
400
|
-
window.localStorage.getItem('frontmcp_debug') === '1';
|
|
401
|
-
if (DEBUG) {
|
|
402
|
-
createDebugOverlay();
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
// Initialize when DOM is ready
|
|
407
|
-
if (document.readyState === 'loading') {
|
|
408
|
-
document.addEventListener('DOMContentLoaded', init);
|
|
409
|
-
} else {
|
|
410
|
-
init();
|
|
411
|
-
}
|
|
412
|
-
})();
|
|
413
|
-
</script>
|
|
414
|
-
</body>
|
|
415
|
-
</html>`;
|
|
416
|
-
}
|
|
417
|
-
/**
|
|
418
|
-
* Create a minimal base template without fonts.
|
|
419
|
-
*
|
|
420
|
-
* Use this for lightweight widgets or when fonts are loaded elsewhere.
|
|
421
|
-
*
|
|
422
|
-
* @param toolName - Tool name for identification
|
|
423
|
-
* @param mcpSession - Optional MCP session info
|
|
424
|
-
* @returns Complete HTML document string
|
|
425
|
-
*/
|
|
426
|
-
function createMinimalBaseTemplate(toolName, mcpSession) {
|
|
427
|
-
return createDefaultBaseTemplate({
|
|
428
|
-
toolName,
|
|
429
|
-
mcpSession,
|
|
430
|
-
fonts: false,
|
|
431
|
-
htmx: false,
|
|
432
|
-
alpine: false,
|
|
433
|
-
});
|
|
434
|
-
}
|
|
435
|
-
//# sourceMappingURL=default-base-template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-base-template.js","sourceRoot":"","sources":["../../../src/base-template/default-base-template.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AAmFH,8DAyWC;AAWD,8DAQC;AA7cD,oCAA2D;AAC3D,iDAA4E;AAC5E,2CAAwE;AACxE,qCAA8C;AA+B9C;;GAEG;AACH,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,SAAgB,yBAAyB,CAAC,OAA4B;IACpE,MAAM,EACJ,QAAQ,EACR,KAAK,GAAG,qBAAa,EACrB,UAAU,EACV,IAAI,GAAG,KAAK,EACZ,MAAM,GAAG,KAAK,EACd,KAAK,GAAG,IAAI,EACZ,MAAM,GAAG,KAAK,EACd,WAAW,GAAG,EAAE,EAChB,SAAS,GAAG,sCAAsC,EAClD,cAAc,GAAG,KAAK,GACvB,GAAG,OAAO,CAAC;IAEZ,kDAAkD;IAClD,MAAM,kBAAkB,GAAuB;QAC7C,KAAK;QACL,QAAQ,EAAE,IAAI;QACd,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;KACP,CAAC;IACF,MAAM,WAAW,GAAG,IAAA,gCAAiB,EAAC,kBAAkB,CAAC,CAAC;IAE1D,yEAAyE;IACzE,MAAM,SAAS,GAAG,IAAA,oCAAwB,EAAC,UAAU,CAAC,CAAC;IAEvD,kEAAkE;IAClE,MAAM,MAAM,GAAG,IAAA,2BAAkB,GAAE,CAAC;IAEpC,OAAO;;;;;;WAME,UAAU,CAAC,QAAQ,CAAC;IAC3B,WAAW;IACX,SAAS;IACT,MAAM;IACN,WAAW;;eAEA,UAAU,CAAC,SAAS,CAAC;iCACH,UAAU,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4TnD,CAAC;AACT,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,yBAAyB,CAAC,QAAgB,EAAE,UAAuB;IACjF,OAAO,yBAAyB,CAAC;QAC/B,QAAQ;QACR,UAAU;QACV,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * Default Base Template for Tool UI\n *\n * Provides a generic HTML wrapper for tool output widgets that:\n * 1. Includes theming (Tailwind CSS with @theme)\n * 2. Includes platform polyfills (callTool, detectMcpSession)\n * 3. Polls for toolOutput from window.openai or window.__frontmcp\n * 4. Renders content via window.__frontmcp.renderContent or default JSON renderer\n *\n * This template is platform-agnostic and works with:\n * - OpenAI Apps SDK (window.openai.toolOutput)\n * - Claude Artifacts\n * - Custom hosts using MCP protocol\n * - ngrok/iframe scenarios\n */\n\nimport { DEFAULT_THEME, type ThemeConfig } from '../theme';\nimport { renderThemeStyles, type ThemeStylesOptions } from './theme-styles';\nimport { renderMcpSessionPolyfill, type McpSession } from './polyfills';\nimport { renderBridgeScript } from './bridge';\n\n/**\n * Options for creating a default base template.\n */\nexport interface BaseTemplateOptions {\n /** Tool name for identification */\n toolName: string;\n /** Theme configuration */\n theme?: ThemeConfig;\n /** MCP session info for callTool polyfill fallback */\n mcpSession?: McpSession;\n /** Include HTMX (default: false) */\n htmx?: boolean;\n /** Include Alpine.js (default: false) */\n alpine?: boolean;\n /** Include fonts (default: true) */\n fonts?: boolean;\n /** Use inline scripts (for blocked network platforms) */\n inline?: boolean;\n /**\n * Additional head content (scripts, meta tags).\n * @warning This content is injected WITHOUT escaping. Only use with trusted content.\n */\n headContent?: string;\n /** Custom body classes */\n bodyClass?: string;\n /** Custom widget container classes */\n containerClass?: string;\n}\n\n/**\n * Escape string for use in HTML attributes.\n */\nfunction escapeAttr(str: string): string {\n return str\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n}\n\n/**\n * Create a default base template for tool UI widgets.\n *\n * This generates a complete HTML document that:\n * 1. Loads Tailwind CSS with theme configuration\n * 2. Injects platform polyfills (callTool, detectMcpSession, getToolOutput)\n * 3. Waits for toolOutput to be injected\n * 4. Renders content using window.__frontmcp.renderContent or default JSON renderer\n *\n * @param options - Base template configuration\n * @returns Complete HTML document string\n *\n * @example Basic usage\n * ```typescript\n * const html = createDefaultBaseTemplate({ toolName: 'get_weather' });\n * ```\n *\n * @example With custom theme and MCP session\n * ```typescript\n * const html = createDefaultBaseTemplate({\n * toolName: 'get_weather',\n * theme: customTheme,\n * mcpSession: { mcpUrl: 'https://mcp.example.com', sessionId: 'abc123' },\n * });\n * ```\n *\n * @example For Claude Artifacts (inline scripts)\n * ```typescript\n * await fetchAndCacheScriptsFromTheme(theme);\n * const html = createDefaultBaseTemplate({\n * toolName: 'get_weather',\n * inline: true,\n * });\n * ```\n */\nexport function createDefaultBaseTemplate(options: BaseTemplateOptions): string {\n const {\n toolName,\n theme = DEFAULT_THEME,\n mcpSession,\n htmx = false,\n alpine = false,\n fonts = true,\n inline = false,\n headContent = '',\n bodyClass = 'bg-transparent font-sans antialiased',\n containerClass = 'p-4',\n } = options;\n\n // Build theme styles (fonts, scripts, @theme CSS)\n const themeStylesOptions: ThemeStylesOptions = {\n theme,\n tailwind: true,\n htmx,\n alpine,\n fonts,\n inline,\n };\n const themeStyles = renderThemeStyles(themeStylesOptions);\n\n // Build MCP session polyfill (detectMcpSession, callTool, getToolOutput)\n const polyfills = renderMcpSessionPolyfill(mcpSession);\n\n // Build reactive bridge (handles data injection and re-rendering)\n const bridge = renderBridgeScript();\n\n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n <meta name=\"color-scheme\" content=\"light dark\">\n <title>${escapeAttr(toolName)} Widget</title>\n ${themeStyles}\n ${polyfills}\n ${bridge}\n ${headContent}\n</head>\n<body class=\"${escapeAttr(bodyClass)}\">\n <div id=\"widget-root\" class=\"${escapeAttr(containerClass)}\"></div>\n\n <script>\n (function() {\n 'use strict';\n\n var root = document.getElementById('widget-root');\n\n /**\n * Render the widget based on bridge state.\n * Uses the reactive bridge to automatically re-render when data changes.\n */\n function render() {\n var state = window.__frontmcp.bridge.getState();\n\n // Loading state\n if (state.loading) {\n root.innerHTML = renderLoading();\n return;\n }\n\n // Error state\n if (state.error) {\n root.innerHTML = renderError(state.error);\n return;\n }\n\n // No data state\n if (state.data === null) {\n root.innerHTML = renderEmpty();\n return;\n }\n\n // Render data\n try {\n // Check for custom renderer provided by developer\n if (window.__frontmcp && typeof window.__frontmcp.renderContent === 'function') {\n root.innerHTML = window.__frontmcp.renderContent(state.data);\n return;\n }\n\n // Fall back to default renderer\n root.innerHTML = defaultRenderer(state.data);\n } catch (e) {\n console.error('[frontmcp] Error rendering widget:', e);\n root.innerHTML = renderError(e.message || 'Render error');\n }\n }\n\n /**\n * Default renderer for tool output.\n * Handles both pre-rendered HTML strings and raw JSON data.\n */\n function defaultRenderer(data) {\n // Check if data is pre-rendered HTML (server-side rendered widget)\n if (typeof data === 'string' && data.trim().startsWith('<')) {\n // Direct HTML injection - content was already rendered/sanitized server-side\n return data;\n }\n\n // Check for special wrapper with HTML content\n if (data && typeof data === 'object' && data.__html) {\n return data.__html;\n }\n\n // Fallback: JSON renderer for raw data\n var json = JSON.stringify(data, null, 2);\n return '<pre class=\"p-4 bg-surface rounded-md overflow-auto text-sm font-mono text-text-primary border border-border\">' +\n escapeHtml(json) +\n '</pre>';\n }\n\n /**\n * Render loading state with animated spinner.\n */\n function renderLoading() {\n return '<div class=\"flex items-center justify-center p-8\">' +\n '<div class=\"flex flex-col items-center gap-3\">' +\n '<svg class=\"animate-spin h-8 w-8 text-blue-500\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">' +\n '<circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>' +\n '<path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>' +\n '</svg>' +\n '<p class=\"text-text-secondary text-sm\">Loading...</p>' +\n '</div>' +\n '</div>';\n }\n\n /**\n * Render error message.\n */\n function renderError(message) {\n return '<div class=\"p-4 bg-red-50 border border-red-200 rounded-md\">' +\n '<p class=\"text-red-600 text-sm\">Error: ' + escapeHtml(message) + '</p>' +\n '</div>';\n }\n\n /**\n * Render empty state (no data available).\n */\n function renderEmpty() {\n return '<div class=\"p-4 text-text-secondary text-sm text-center\">' +\n 'No data available' +\n '</div>';\n }\n\n /**\n * Escape HTML special characters.\n */\n function escapeHtml(str) {\n if (typeof str !== 'string') return str;\n return str\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"');\n }\n\n /**\n * Create debug overlay panel.\n * Shows bridge state, logs, and OpenAI data status.\n */\n function createDebugOverlay() {\n var overlay = document.createElement('div');\n overlay.id = 'frontmcp-debug-overlay';\n overlay.style.cssText = 'position:fixed;bottom:10px;right:10px;width:400px;max-height:60vh;' +\n 'background:rgba(0,0,0,0.9);color:#0f0;font-family:monospace;font-size:11px;' +\n 'padding:10px;border-radius:4px;z-index:99999;overflow:auto;display:none;';\n\n var toggle = document.createElement('button');\n toggle.id = 'frontmcp-debug-toggle';\n toggle.textContent = 'Debug';\n toggle.style.cssText = 'position:fixed;bottom:10px;right:10px;padding:4px 8px;' +\n 'background:#333;color:#0f0;font-family:monospace;font-size:10px;border:1px solid #0f0;' +\n 'border-radius:4px;z-index:100000;cursor:pointer;';\n\n toggle.onclick = function() {\n var o = document.getElementById('frontmcp-debug-overlay');\n if (o.style.display === 'none') {\n o.style.display = 'block';\n toggle.style.right = '420px';\n updateDebugOverlay();\n } else {\n o.style.display = 'none';\n toggle.style.right = '10px';\n }\n };\n\n document.body.appendChild(overlay);\n document.body.appendChild(toggle);\n\n // Auto-update every second\n setInterval(updateDebugOverlay, 1000);\n }\n\n function updateDebugOverlay() {\n var overlay = document.getElementById('frontmcp-debug-overlay');\n if (!overlay || overlay.style.display === 'none') return;\n\n var state = window.__frontmcp.bridge.getState();\n var debug = window.__frontmcp.bridge.debug;\n var logs = debug.getLogs();\n var errors = debug.getLastErrors();\n var stateHistory = debug.getStateHistory();\n\n var html = '<div style=\"margin-bottom:10px;border-bottom:1px solid #333;padding-bottom:5px;\">' +\n '<strong>FrontMCP Debug Panel</strong>' +\n '<span style=\"float:right;color:#666;\">v' + stateHistory.version + '</span>' +\n '</div>';\n\n // Bridge State\n html += '<div style=\"margin-bottom:10px;\">' +\n '<div style=\"color:#ff0;\">Bridge State:</div>' +\n '<div>Loading: ' + state.loading + '</div>' +\n '<div>Has Data: ' + (state.data !== null) + '</div>' +\n '<div>Data Type: ' + (state.data === null ? 'null' : typeof state.data) + '</div>' +\n (typeof state.data === 'string' ? '<div>Data Length: ' + state.data.length + '</div>' : '') +\n '<div>Error: ' + (state.error || 'none') + '</div>' +\n '</div>';\n\n // OpenAI Status\n html += '<div style=\"margin-bottom:10px;\">' +\n '<div style=\"color:#ff0;\">OpenAI Status:</div>' +\n '<div>Intercepted: ' + stateHistory.openaiIntercepted + '</div>' +\n '<div>Poll Count: ' + stateHistory.pollCount + '</div>';\n\n if (window.openai) {\n html += '<div>window.openai: exists</div>' +\n '<div>toolOutput: ' + (window.openai.toolOutput !== undefined ? 'present' : 'undefined') + '</div>' +\n '<div>toolResponseMetadata: ' + (window.openai.toolResponseMetadata !== undefined ? 'present' : 'undefined') + '</div>';\n if (window.openai.toolResponseMetadata) {\n html += '<div>meta keys: ' + Object.keys(window.openai.toolResponseMetadata).join(', ') + '</div>';\n }\n } else {\n html += '<div>window.openai: undefined</div>';\n }\n html += '</div>';\n\n // Errors\n if (errors.length > 0) {\n html += '<div style=\"margin-bottom:10px;\">' +\n '<div style=\"color:#f00;\">Errors (' + errors.length + '):</div>';\n errors.slice(-5).forEach(function(e) {\n html += '<div style=\"color:#f88;font-size:10px;\">[' + e.level + '] ' + escapeHtml(e.message) + '</div>';\n });\n html += '</div>';\n }\n\n // Recent Logs\n html += '<div>' +\n '<div style=\"color:#ff0;\">Recent Logs (' + logs.length + '):</div>' +\n '<div style=\"max-height:150px;overflow:auto;\">';\n logs.slice(-10).forEach(function(e) {\n var color = e.level === 'error' ? '#f00' : e.level === 'warn' ? '#ff0' : '#0f0';\n html += '<div style=\"color:' + color + ';font-size:10px;\">' +\n '[' + e.ts.split('T')[1].split('.')[0] + '] ' + escapeHtml(e.message) +\n '</div>';\n });\n html += '</div></div>';\n\n // Actions\n html += '<div style=\"margin-top:10px;border-top:1px solid #333;padding-top:5px;\">' +\n '<button onclick=\"console.log(window.__frontmcp.bridge.debug.dumpAll())\" ' +\n 'style=\"font-size:10px;padding:2px 6px;margin-right:5px;\">Dump to Console</button>' +\n '<button onclick=\"window.__frontmcp.bridge.reset()\" ' +\n 'style=\"font-size:10px;padding:2px 6px;\">Reset Bridge</button>' +\n '</div>';\n\n overlay.innerHTML = html;\n }\n\n /**\n * Initialize the widget with reactive rendering.\n */\n function init() {\n // Subscribe to bridge state changes for reactive re-rendering\n window.__frontmcp.bridge.subscribe(render);\n\n // Initial render\n render();\n\n // Global click handler for SSR-compatible tool calls\n // Handles buttons/elements with data-tool-call attribute\n document.addEventListener('click', function(e) {\n var target = e.target;\n // Walk up the DOM to find element with data-tool-call (handles clicks on child elements)\n while (target && target !== document.body) {\n if (target.hasAttribute && target.hasAttribute('data-tool-call')) {\n var toolName = target.getAttribute('data-tool-call');\n var argsStr = target.getAttribute('data-tool-args');\n var args = {};\n\n if (argsStr) {\n try {\n args = JSON.parse(argsStr);\n } catch (parseErr) {\n console.error('[frontmcp] Failed to parse data-tool-args:', parseErr);\n }\n }\n\n // Prevent default behavior and stop propagation\n e.preventDefault();\n e.stopPropagation();\n\n // Show loading state on the button\n var originalContent = target.innerHTML;\n var loadingContent = '<span style=\"display:inline-flex;align-items:center;\">' +\n '<span style=\"animation:spin 1s linear infinite;margin-right:4px;\">⏳</span>' +\n 'Loading...' +\n '</span>';\n target.innerHTML = loadingContent;\n target.disabled = true;\n\n // Call the tool\n if (window.__frontmcp && typeof window.__frontmcp.callTool === 'function') {\n window.__frontmcp.callTool(toolName, args)\n .then(function(result) {\n console.log('[frontmcp] Tool call success:', toolName, result);\n // Restore button state on success\n target.innerHTML = originalContent;\n target.disabled = false;\n })\n .catch(function(err) {\n console.error('[frontmcp] Tool call failed:', toolName, err);\n // Restore button state on error\n target.innerHTML = originalContent;\n target.disabled = false;\n });\n } else {\n console.error('[frontmcp] callTool not available');\n target.innerHTML = originalContent;\n target.disabled = false;\n }\n\n return;\n }\n target = target.parentElement;\n }\n });\n\n // Create debug overlay if debug mode is enabled\n var DEBUG = window.location.search.indexOf('frontmcp_debug=1') > -1 ||\n window.localStorage.getItem('frontmcp_debug') === '1';\n if (DEBUG) {\n createDebugOverlay();\n }\n }\n\n // Initialize when DOM is ready\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', init);\n } else {\n init();\n }\n })();\n </script>\n</body>\n</html>`;\n}\n\n/**\n * Create a minimal base template without fonts.\n *\n * Use this for lightweight widgets or when fonts are loaded elsewhere.\n *\n * @param toolName - Tool name for identification\n * @param mcpSession - Optional MCP session info\n * @returns Complete HTML document string\n */\nexport function createMinimalBaseTemplate(toolName: string, mcpSession?: McpSession): string {\n return createDefaultBaseTemplate({\n toolName,\n mcpSession,\n fonts: false,\n htmx: false,\n alpine: false,\n });\n}\n"]}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base Template Module
|
|
3
|
-
*
|
|
4
|
-
* Provides default HTML wrappers for Tool UI widgets with:
|
|
5
|
-
* - Theming (Tailwind CSS + @theme)
|
|
6
|
-
* - Platform polyfills (callTool, detectMcpSession, getToolOutput)
|
|
7
|
-
* - Cross-platform compatibility (OpenAI, Claude, custom hosts)
|
|
8
|
-
*
|
|
9
|
-
* @module @frontmcp/ui/base-template
|
|
10
|
-
*/
|
|
11
|
-
export { createDefaultBaseTemplate, createMinimalBaseTemplate, type BaseTemplateOptions, } from './default-base-template';
|
|
12
|
-
export { renderThemeStyles, renderMinimalThemeStyles, renderThemeCssOnly, type ThemeStylesOptions, } from './theme-styles';
|
|
13
|
-
export { renderMcpSessionPolyfill, type McpSession } from './polyfills';
|
|
14
|
-
export { renderBridgeScript, type BridgeState, type PlatformBridge, BRIDGE_TYPES } from './bridge';
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Base Template Module
|
|
4
|
-
*
|
|
5
|
-
* Provides default HTML wrappers for Tool UI widgets with:
|
|
6
|
-
* - Theming (Tailwind CSS + @theme)
|
|
7
|
-
* - Platform polyfills (callTool, detectMcpSession, getToolOutput)
|
|
8
|
-
* - Cross-platform compatibility (OpenAI, Claude, custom hosts)
|
|
9
|
-
*
|
|
10
|
-
* @module @frontmcp/ui/base-template
|
|
11
|
-
*/
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.BRIDGE_TYPES = exports.renderBridgeScript = exports.renderMcpSessionPolyfill = exports.renderThemeCssOnly = exports.renderMinimalThemeStyles = exports.renderThemeStyles = exports.createMinimalBaseTemplate = exports.createDefaultBaseTemplate = void 0;
|
|
14
|
-
// Default base template
|
|
15
|
-
var default_base_template_1 = require("./default-base-template");
|
|
16
|
-
Object.defineProperty(exports, "createDefaultBaseTemplate", { enumerable: true, get: function () { return default_base_template_1.createDefaultBaseTemplate; } });
|
|
17
|
-
Object.defineProperty(exports, "createMinimalBaseTemplate", { enumerable: true, get: function () { return default_base_template_1.createMinimalBaseTemplate; } });
|
|
18
|
-
// Theme styles renderer
|
|
19
|
-
var theme_styles_1 = require("./theme-styles");
|
|
20
|
-
Object.defineProperty(exports, "renderThemeStyles", { enumerable: true, get: function () { return theme_styles_1.renderThemeStyles; } });
|
|
21
|
-
Object.defineProperty(exports, "renderMinimalThemeStyles", { enumerable: true, get: function () { return theme_styles_1.renderMinimalThemeStyles; } });
|
|
22
|
-
Object.defineProperty(exports, "renderThemeCssOnly", { enumerable: true, get: function () { return theme_styles_1.renderThemeCssOnly; } });
|
|
23
|
-
// Platform polyfills
|
|
24
|
-
var polyfills_1 = require("./polyfills");
|
|
25
|
-
Object.defineProperty(exports, "renderMcpSessionPolyfill", { enumerable: true, get: function () { return polyfills_1.renderMcpSessionPolyfill; } });
|
|
26
|
-
// Platform bridge (reactive data store)
|
|
27
|
-
var bridge_1 = require("./bridge");
|
|
28
|
-
Object.defineProperty(exports, "renderBridgeScript", { enumerable: true, get: function () { return bridge_1.renderBridgeScript; } });
|
|
29
|
-
Object.defineProperty(exports, "BRIDGE_TYPES", { enumerable: true, get: function () { return bridge_1.BRIDGE_TYPES; } });
|
|
30
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/base-template/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,wBAAwB;AACxB,iEAIiC;AAH/B,kIAAA,yBAAyB,OAAA;AACzB,kIAAA,yBAAyB,OAAA;AAI3B,wBAAwB;AACxB,+CAKwB;AAJtB,iHAAA,iBAAiB,OAAA;AACjB,wHAAA,wBAAwB,OAAA;AACxB,kHAAA,kBAAkB,OAAA;AAIpB,qBAAqB;AACrB,yCAAwE;AAA/D,qHAAA,wBAAwB,OAAA;AAEjC,wCAAwC;AACxC,mCAAmG;AAA1F,4GAAA,kBAAkB,OAAA;AAAyC,sGAAA,YAAY,OAAA","sourcesContent":["/**\n * Base Template Module\n *\n * Provides default HTML wrappers for Tool UI widgets with:\n * - Theming (Tailwind CSS + @theme)\n * - Platform polyfills (callTool, detectMcpSession, getToolOutput)\n * - Cross-platform compatibility (OpenAI, Claude, custom hosts)\n *\n * @module @frontmcp/ui/base-template\n */\n\n// Default base template\nexport {\n createDefaultBaseTemplate,\n createMinimalBaseTemplate,\n type BaseTemplateOptions,\n} from './default-base-template';\n\n// Theme styles renderer\nexport {\n renderThemeStyles,\n renderMinimalThemeStyles,\n renderThemeCssOnly,\n type ThemeStylesOptions,\n} from './theme-styles';\n\n// Platform polyfills\nexport { renderMcpSessionPolyfill, type McpSession } from './polyfills';\n\n// Platform bridge (reactive data store)\nexport { renderBridgeScript, type BridgeState, type PlatformBridge, BRIDGE_TYPES } from './bridge';\n"]}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Platform Polyfills for Base Template
|
|
3
|
-
*
|
|
4
|
-
* Provides additional polyfills for MCP session detection and
|
|
5
|
-
* direct HTTP fallback when not in an OpenAI or ext-apps environment.
|
|
6
|
-
*
|
|
7
|
-
* These polyfills complement the existing MCP_BRIDGE_RUNTIME.
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* MCP Session information for HTTP fallback
|
|
11
|
-
*/
|
|
12
|
-
export interface McpSession {
|
|
13
|
-
/** MCP server URL */
|
|
14
|
-
mcpUrl: string;
|
|
15
|
-
/** Session ID for authentication */
|
|
16
|
-
sessionId: string;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Render the MCP session detection polyfill script.
|
|
20
|
-
*
|
|
21
|
-
* This provides auto-detection of MCP session info from:
|
|
22
|
-
* 1. Explicit window.__frontmcp.mcpSession
|
|
23
|
-
* 2. Meta tags (mcp-url, mcp-session-id)
|
|
24
|
-
* 3. URL query parameters (mcpUrl, sessionId)
|
|
25
|
-
* 4. Fallback values provided at render time
|
|
26
|
-
*
|
|
27
|
-
* @param mcpSession - Optional explicit session to bake into the template
|
|
28
|
-
* @returns Script tag with polyfill code
|
|
29
|
-
*/
|
|
30
|
-
export declare function renderMcpSessionPolyfill(mcpSession?: McpSession): string;
|