@frontmcp/ui 0.5.0 → 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 +28 -87
- 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,241 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* MDX Renderer Adapter
|
|
4
|
-
*
|
|
5
|
-
* Client-side adapter for rendering MDX (Markdown + JSX) content.
|
|
6
|
-
* Builds on top of the React adapter for component rendering.
|
|
7
|
-
*
|
|
8
|
-
* @packageDocumentation
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.MdxRendererAdapter = void 0;
|
|
12
|
-
exports.createMdxAdapter = createMdxAdapter;
|
|
13
|
-
exports.loadMdxAdapter = loadMdxAdapter;
|
|
14
|
-
/**
|
|
15
|
-
* MDX Renderer Adapter.
|
|
16
|
-
*
|
|
17
|
-
* Renders MDX content to the DOM with support for:
|
|
18
|
-
* - Pre-compiled MDX (recommended)
|
|
19
|
-
* - Runtime MDX compilation (if mdx-js available)
|
|
20
|
-
* - Custom component injection
|
|
21
|
-
*/
|
|
22
|
-
class MdxRendererAdapter {
|
|
23
|
-
type = 'mdx';
|
|
24
|
-
// Lazy-loaded MDX runtime
|
|
25
|
-
mdxRuntime = null;
|
|
26
|
-
loadPromise = null;
|
|
27
|
-
/**
|
|
28
|
-
* Check if this adapter can handle the given content.
|
|
29
|
-
*/
|
|
30
|
-
canHandle(content) {
|
|
31
|
-
if (typeof content !== 'string') {
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
// MDX patterns:
|
|
35
|
-
// - Contains JSX-like syntax in markdown
|
|
36
|
-
// - Contains import/export statements
|
|
37
|
-
// - Contains frontmatter (---)
|
|
38
|
-
// - Has MDX file extension markers
|
|
39
|
-
return (/^---[\s\S]*?---/.test(content) || // Frontmatter
|
|
40
|
-
/<[A-Z][a-zA-Z0-9]*[\s/>]/.test(content) || // JSX component tags
|
|
41
|
-
/^import\s+/.test(content) || // Import statements
|
|
42
|
-
/^export\s+/.test(content) || // Export statements
|
|
43
|
-
content.includes('```jsx') || // Code blocks with JSX
|
|
44
|
-
content.includes('```tsx'));
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Render MDX content to a string.
|
|
48
|
-
*/
|
|
49
|
-
async render(content, context, _options) {
|
|
50
|
-
try {
|
|
51
|
-
await this.ensureMdxLoaded();
|
|
52
|
-
if (!this.mdxRuntime) {
|
|
53
|
-
// Fall back to basic markdown rendering
|
|
54
|
-
return this.renderMarkdown(content, context);
|
|
55
|
-
}
|
|
56
|
-
// Compile and render MDX
|
|
57
|
-
const compiled = await this.compileMdx(content, context);
|
|
58
|
-
return compiled;
|
|
59
|
-
}
|
|
60
|
-
catch (error) {
|
|
61
|
-
console.error('[FrontMCP] MDX render failed:', error);
|
|
62
|
-
// Fall back to markdown
|
|
63
|
-
return this.renderMarkdown(content, context);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Render MDX content directly to the DOM.
|
|
68
|
-
*/
|
|
69
|
-
async renderToDOM(content, target, context, _options) {
|
|
70
|
-
try {
|
|
71
|
-
const html = await this.render(content, context);
|
|
72
|
-
target.innerHTML = html;
|
|
73
|
-
// Dispatch event
|
|
74
|
-
target.dispatchEvent(new CustomEvent('frontmcp:rendered', {
|
|
75
|
-
bubbles: true,
|
|
76
|
-
detail: { type: 'mdx', toolName: context.toolName },
|
|
77
|
-
}));
|
|
78
|
-
return { success: true, html };
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
82
|
-
console.error('[FrontMCP] MDX render to DOM failed:', message);
|
|
83
|
-
return { success: false, error: message };
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Hydrate existing SSR content.
|
|
88
|
-
* MDX hydration follows React patterns.
|
|
89
|
-
*/
|
|
90
|
-
async hydrate(target, context, options) {
|
|
91
|
-
// MDX hydration would require the React adapter
|
|
92
|
-
// For now, just update the content
|
|
93
|
-
const content = target.getAttribute('data-mdx-source');
|
|
94
|
-
if (content) {
|
|
95
|
-
return this.renderToDOM(content, target, context, options);
|
|
96
|
-
}
|
|
97
|
-
return { success: true }; // Already rendered, nothing to hydrate
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Update rendered MDX content with new data.
|
|
101
|
-
*/
|
|
102
|
-
async update(target, context) {
|
|
103
|
-
const source = target.getAttribute('data-mdx-source');
|
|
104
|
-
if (source) {
|
|
105
|
-
return this.renderToDOM(source, target, context);
|
|
106
|
-
}
|
|
107
|
-
return { success: false, error: 'No MDX source stored for update' };
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Clean up (no-op for MDX adapter).
|
|
111
|
-
*/
|
|
112
|
-
destroy(_target) {
|
|
113
|
-
// MDX doesn't need cleanup unless using React hydration
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Ensure MDX runtime is loaded.
|
|
117
|
-
*/
|
|
118
|
-
async ensureMdxLoaded() {
|
|
119
|
-
if (this.mdxRuntime) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
if (this.loadPromise) {
|
|
123
|
-
return this.loadPromise;
|
|
124
|
-
}
|
|
125
|
-
this.loadPromise = this.loadMdx();
|
|
126
|
-
return this.loadPromise;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Load MDX runtime.
|
|
130
|
-
*/
|
|
131
|
-
async loadMdx() {
|
|
132
|
-
try {
|
|
133
|
-
// Try to load @mdx-js/mdx for compilation
|
|
134
|
-
const mdxModule = await import(/* webpackIgnore: true */ '@mdx-js/mdx');
|
|
135
|
-
this.mdxRuntime = {
|
|
136
|
-
run: async () => ({ default: null }),
|
|
137
|
-
compile: mdxModule.compile,
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
catch {
|
|
141
|
-
// MDX not available
|
|
142
|
-
console.warn('[FrontMCP] MDX runtime not available. ' + 'Install @mdx-js/mdx for full MDX support, or use pre-compiled MDX.');
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Compile MDX content.
|
|
147
|
-
*/
|
|
148
|
-
async compileMdx(source, context) {
|
|
149
|
-
if (!this.mdxRuntime?.compile) {
|
|
150
|
-
return this.renderMarkdown(source, context);
|
|
151
|
-
}
|
|
152
|
-
try {
|
|
153
|
-
// Compile MDX to JS
|
|
154
|
-
const compiled = await this.mdxRuntime.compile(source, {
|
|
155
|
-
outputFormat: 'function-body',
|
|
156
|
-
development: false,
|
|
157
|
-
});
|
|
158
|
-
// For now, return the compiled code as-is
|
|
159
|
-
// Full execution would require React runtime
|
|
160
|
-
return `<div class="mdx-content" data-compiled="true">${this.renderMarkdown(source, context)}</div>`;
|
|
161
|
-
}
|
|
162
|
-
catch (error) {
|
|
163
|
-
console.warn('[FrontMCP] MDX compilation failed, falling back to markdown:', error);
|
|
164
|
-
return this.renderMarkdown(source, context);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Basic markdown rendering (fallback).
|
|
169
|
-
*/
|
|
170
|
-
renderMarkdown(source, context) {
|
|
171
|
-
// Very basic markdown-to-HTML conversion
|
|
172
|
-
// For production, use a proper markdown library
|
|
173
|
-
let html = source;
|
|
174
|
-
// Escape HTML first for safety
|
|
175
|
-
html = html.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
176
|
-
// Strip frontmatter
|
|
177
|
-
html = html.replace(/^---[\s\S]*?---\n?/, '');
|
|
178
|
-
// Headers
|
|
179
|
-
html = html.replace(/^######\s+(.+)$/gm, '<h6>$1</h6>');
|
|
180
|
-
html = html.replace(/^#####\s+(.+)$/gm, '<h5>$1</h5>');
|
|
181
|
-
html = html.replace(/^####\s+(.+)$/gm, '<h4>$1</h4>');
|
|
182
|
-
html = html.replace(/^###\s+(.+)$/gm, '<h3>$1</h3>');
|
|
183
|
-
html = html.replace(/^##\s+(.+)$/gm, '<h2>$1</h2>');
|
|
184
|
-
html = html.replace(/^#\s+(.+)$/gm, '<h1>$1</h1>');
|
|
185
|
-
// Bold and italic
|
|
186
|
-
html = html.replace(/\*\*\*(.+?)\*\*\*/g, '<strong><em>$1</em></strong>');
|
|
187
|
-
html = html.replace(/\*\*(.+?)\*\*/g, '<strong>$1</strong>');
|
|
188
|
-
html = html.replace(/\*(.+?)\*/g, '<em>$1</em>');
|
|
189
|
-
html = html.replace(/___(.+?)___/g, '<strong><em>$1</em></strong>');
|
|
190
|
-
html = html.replace(/__(.+?)__/g, '<strong>$1</strong>');
|
|
191
|
-
html = html.replace(/_(.+?)_/g, '<em>$1</em>');
|
|
192
|
-
// Code blocks
|
|
193
|
-
html = html.replace(/```(\w+)?\n([\s\S]*?)```/g, '<pre><code class="language-$1">$2</code></pre>');
|
|
194
|
-
html = html.replace(/`([^`]+)`/g, '<code>$1</code>');
|
|
195
|
-
// Links
|
|
196
|
-
html = html.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2">$1</a>');
|
|
197
|
-
// Lists
|
|
198
|
-
html = html.replace(/^\s*[-*]\s+(.+)$/gm, '<li>$1</li>');
|
|
199
|
-
html = html.replace(/(<li>.*<\/li>\n?)+/g, '<ul>$&</ul>');
|
|
200
|
-
html = html.replace(/^\s*\d+\.\s+(.+)$/gm, '<li>$1</li>');
|
|
201
|
-
// Paragraphs
|
|
202
|
-
html = html
|
|
203
|
-
.split(/\n\n+/)
|
|
204
|
-
.map((para) => {
|
|
205
|
-
const trimmed = para.trim();
|
|
206
|
-
if (!trimmed ||
|
|
207
|
-
trimmed.startsWith('<h') ||
|
|
208
|
-
trimmed.startsWith('<ul') ||
|
|
209
|
-
trimmed.startsWith('<ol') ||
|
|
210
|
-
trimmed.startsWith('<pre')) {
|
|
211
|
-
return trimmed;
|
|
212
|
-
}
|
|
213
|
-
return `<p>${trimmed}</p>`;
|
|
214
|
-
})
|
|
215
|
-
.join('\n');
|
|
216
|
-
// Interpolate context data (basic {{variable}} support)
|
|
217
|
-
html = html.replace(/\{\{output\.(\w+)\}\}/g, (_match, key) => {
|
|
218
|
-
const value = context.output?.[key];
|
|
219
|
-
return value !== undefined ? String(value) : '';
|
|
220
|
-
});
|
|
221
|
-
html = html.replace(/\{\{input\.(\w+)\}\}/g, (_match, key) => {
|
|
222
|
-
const value = context.input?.[key];
|
|
223
|
-
return value !== undefined ? String(value) : '';
|
|
224
|
-
});
|
|
225
|
-
return `<div class="markdown-content">${html}</div>`;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
exports.MdxRendererAdapter = MdxRendererAdapter;
|
|
229
|
-
/**
|
|
230
|
-
* Create a new MDX renderer adapter.
|
|
231
|
-
*/
|
|
232
|
-
function createMdxAdapter() {
|
|
233
|
-
return new MdxRendererAdapter();
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Adapter loader for lazy loading.
|
|
237
|
-
*/
|
|
238
|
-
async function loadMdxAdapter() {
|
|
239
|
-
return createMdxAdapter();
|
|
240
|
-
}
|
|
241
|
-
//# sourceMappingURL=mdx.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mdx.adapter.js","sourceRoot":"","sources":["../../../../src/runtime/adapters/mdx.adapter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * MDX Renderer Adapter\n *\n * Client-side adapter for rendering MDX (Markdown + JSX) content.\n * Builds on top of the React adapter for component rendering.\n *\n * @packageDocumentation\n */\n\nimport type { RendererAdapter, RenderContext, RenderOptions, RenderResult } from './types';\nimport type { UIType } from '../../types/ui-runtime';\n\n/**\n * MDX runtime interface.\n * Uses permissive types to support various @mdx-js versions.\n */\ninterface MDXRuntime {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n run: (code: string, options: Record<string, unknown>) => Promise<{ default: unknown }>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n compile?: (source: string, options?: Record<string, unknown>) => Promise<any>;\n}\n\n/**\n * MDX Renderer Adapter.\n *\n * Renders MDX content to the DOM with support for:\n * - Pre-compiled MDX (recommended)\n * - Runtime MDX compilation (if mdx-js available)\n * - Custom component injection\n */\nexport class MdxRendererAdapter implements RendererAdapter {\n readonly type: UIType = 'mdx';\n\n // Lazy-loaded MDX runtime\n private mdxRuntime: MDXRuntime | null = null;\n private loadPromise: Promise<void> | null = null;\n\n /**\n * Check if this adapter can handle the given content.\n */\n canHandle(content: string | unknown): boolean {\n if (typeof content !== 'string') {\n return false;\n }\n\n // MDX patterns:\n // - Contains JSX-like syntax in markdown\n // - Contains import/export statements\n // - Contains frontmatter (---)\n // - Has MDX file extension markers\n return (\n /^---[\\s\\S]*?---/.test(content) || // Frontmatter\n /<[A-Z][a-zA-Z0-9]*[\\s/>]/.test(content) || // JSX component tags\n /^import\\s+/.test(content) || // Import statements\n /^export\\s+/.test(content) || // Export statements\n content.includes('```jsx') || // Code blocks with JSX\n content.includes('```tsx')\n );\n }\n\n /**\n * Render MDX content to a string.\n */\n async render(content: string, context: RenderContext, _options?: RenderOptions): Promise<string> {\n try {\n await this.ensureMdxLoaded();\n\n if (!this.mdxRuntime) {\n // Fall back to basic markdown rendering\n return this.renderMarkdown(content, context);\n }\n\n // Compile and render MDX\n const compiled = await this.compileMdx(content, context);\n return compiled;\n } catch (error) {\n console.error('[FrontMCP] MDX render failed:', error);\n // Fall back to markdown\n return this.renderMarkdown(content, context);\n }\n }\n\n /**\n * Render MDX content directly to the DOM.\n */\n async renderToDOM(\n content: string,\n target: HTMLElement,\n context: RenderContext,\n _options?: RenderOptions,\n ): Promise<RenderResult> {\n try {\n const html = await this.render(content, context);\n target.innerHTML = html;\n\n // Dispatch event\n target.dispatchEvent(\n new CustomEvent('frontmcp:rendered', {\n bubbles: true,\n detail: { type: 'mdx', toolName: context.toolName },\n }),\n );\n\n return { success: true, html };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n console.error('[FrontMCP] MDX render to DOM failed:', message);\n return { success: false, error: message };\n }\n }\n\n /**\n * Hydrate existing SSR content.\n * MDX hydration follows React patterns.\n */\n async hydrate(target: HTMLElement, context: RenderContext, options?: RenderOptions): Promise<RenderResult> {\n // MDX hydration would require the React adapter\n // For now, just update the content\n const content = target.getAttribute('data-mdx-source');\n if (content) {\n return this.renderToDOM(content, target, context, options);\n }\n\n return { success: true }; // Already rendered, nothing to hydrate\n }\n\n /**\n * Update rendered MDX content with new data.\n */\n async update(target: HTMLElement, context: RenderContext): Promise<RenderResult> {\n const source = target.getAttribute('data-mdx-source');\n if (source) {\n return this.renderToDOM(source, target, context);\n }\n\n return { success: false, error: 'No MDX source stored for update' };\n }\n\n /**\n * Clean up (no-op for MDX adapter).\n */\n destroy(_target: HTMLElement): void {\n // MDX doesn't need cleanup unless using React hydration\n }\n\n /**\n * Ensure MDX runtime is loaded.\n */\n private async ensureMdxLoaded(): Promise<void> {\n if (this.mdxRuntime) {\n return;\n }\n\n if (this.loadPromise) {\n return this.loadPromise;\n }\n\n this.loadPromise = this.loadMdx();\n return this.loadPromise;\n }\n\n /**\n * Load MDX runtime.\n */\n private async loadMdx(): Promise<void> {\n try {\n // Try to load @mdx-js/mdx for compilation\n const mdxModule = await import(/* webpackIgnore: true */ '@mdx-js/mdx');\n this.mdxRuntime = {\n run: async () => ({ default: null }),\n compile: mdxModule.compile,\n };\n } catch {\n // MDX not available\n console.warn(\n '[FrontMCP] MDX runtime not available. ' + 'Install @mdx-js/mdx for full MDX support, or use pre-compiled MDX.',\n );\n }\n }\n\n /**\n * Compile MDX content.\n */\n private async compileMdx(source: string, context: RenderContext): Promise<string> {\n if (!this.mdxRuntime?.compile) {\n return this.renderMarkdown(source, context);\n }\n\n try {\n // Compile MDX to JS\n const compiled = await this.mdxRuntime.compile(source, {\n outputFormat: 'function-body',\n development: false,\n });\n\n // For now, return the compiled code as-is\n // Full execution would require React runtime\n return `<div class=\"mdx-content\" data-compiled=\"true\">${this.renderMarkdown(source, context)}</div>`;\n } catch (error) {\n console.warn('[FrontMCP] MDX compilation failed, falling back to markdown:', error);\n return this.renderMarkdown(source, context);\n }\n }\n\n /**\n * Basic markdown rendering (fallback).\n */\n private renderMarkdown(source: string, context: RenderContext): string {\n // Very basic markdown-to-HTML conversion\n // For production, use a proper markdown library\n let html = source;\n\n // Escape HTML first for safety\n html = html.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n\n // Strip frontmatter\n html = html.replace(/^---[\\s\\S]*?---\\n?/, '');\n\n // Headers\n html = html.replace(/^######\\s+(.+)$/gm, '<h6>$1</h6>');\n html = html.replace(/^#####\\s+(.+)$/gm, '<h5>$1</h5>');\n html = html.replace(/^####\\s+(.+)$/gm, '<h4>$1</h4>');\n html = html.replace(/^###\\s+(.+)$/gm, '<h3>$1</h3>');\n html = html.replace(/^##\\s+(.+)$/gm, '<h2>$1</h2>');\n html = html.replace(/^#\\s+(.+)$/gm, '<h1>$1</h1>');\n\n // Bold and italic\n html = html.replace(/\\*\\*\\*(.+?)\\*\\*\\*/g, '<strong><em>$1</em></strong>');\n html = html.replace(/\\*\\*(.+?)\\*\\*/g, '<strong>$1</strong>');\n html = html.replace(/\\*(.+?)\\*/g, '<em>$1</em>');\n html = html.replace(/___(.+?)___/g, '<strong><em>$1</em></strong>');\n html = html.replace(/__(.+?)__/g, '<strong>$1</strong>');\n html = html.replace(/_(.+?)_/g, '<em>$1</em>');\n\n // Code blocks\n html = html.replace(/```(\\w+)?\\n([\\s\\S]*?)```/g, '<pre><code class=\"language-$1\">$2</code></pre>');\n html = html.replace(/`([^`]+)`/g, '<code>$1</code>');\n\n // Links\n html = html.replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g, '<a href=\"$2\">$1</a>');\n\n // Lists\n html = html.replace(/^\\s*[-*]\\s+(.+)$/gm, '<li>$1</li>');\n html = html.replace(/(<li>.*<\\/li>\\n?)+/g, '<ul>$&</ul>');\n html = html.replace(/^\\s*\\d+\\.\\s+(.+)$/gm, '<li>$1</li>');\n\n // Paragraphs\n html = html\n .split(/\\n\\n+/)\n .map((para) => {\n const trimmed = para.trim();\n if (\n !trimmed ||\n trimmed.startsWith('<h') ||\n trimmed.startsWith('<ul') ||\n trimmed.startsWith('<ol') ||\n trimmed.startsWith('<pre')\n ) {\n return trimmed;\n }\n return `<p>${trimmed}</p>`;\n })\n .join('\\n');\n\n // Interpolate context data (basic {{variable}} support)\n html = html.replace(/\\{\\{output\\.(\\w+)\\}\\}/g, (_match, key) => {\n const value = (context.output as Record<string, unknown>)?.[key];\n return value !== undefined ? String(value) : '';\n });\n html = html.replace(/\\{\\{input\\.(\\w+)\\}\\}/g, (_match, key) => {\n const value = context.input?.[key];\n return value !== undefined ? String(value) : '';\n });\n\n return `<div class=\"markdown-content\">${html}</div>`;\n }\n}\n\n/**\n * Create a new MDX renderer adapter.\n */\nexport function createMdxAdapter(): MdxRendererAdapter {\n return new MdxRendererAdapter();\n}\n\n/**\n * Adapter loader for lazy loading.\n */\nexport async function loadMdxAdapter(): Promise<RendererAdapter> {\n return createMdxAdapter();\n}\n"]}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* React Renderer Adapter
|
|
3
|
-
*
|
|
4
|
-
* Client-side adapter for rendering React components.
|
|
5
|
-
* Handles hydration, client-side rendering, and updates.
|
|
6
|
-
*
|
|
7
|
-
* @packageDocumentation
|
|
8
|
-
*/
|
|
9
|
-
import type { RendererAdapter, RenderContext, RenderOptions, RenderResult } from './types';
|
|
10
|
-
import type { UIType } from '../../types/ui-runtime';
|
|
11
|
-
/**
|
|
12
|
-
* React Renderer Adapter.
|
|
13
|
-
*
|
|
14
|
-
* Renders React components to the DOM with support for:
|
|
15
|
-
* - Server-side rendering (SSR)
|
|
16
|
-
* - Client-side hydration
|
|
17
|
-
* - Dynamic updates when data changes
|
|
18
|
-
*/
|
|
19
|
-
export declare class ReactRendererAdapter implements RendererAdapter {
|
|
20
|
-
readonly type: UIType;
|
|
21
|
-
private react;
|
|
22
|
-
private reactDOM;
|
|
23
|
-
private loadPromise;
|
|
24
|
-
/**
|
|
25
|
-
* Check if this adapter can handle the given content.
|
|
26
|
-
*/
|
|
27
|
-
canHandle(content: string | unknown): boolean;
|
|
28
|
-
/**
|
|
29
|
-
* Render React component to a string.
|
|
30
|
-
* This is a client-side fallback - SSR should be done at build time.
|
|
31
|
-
*/
|
|
32
|
-
render(content: string, context: RenderContext, _options?: RenderOptions): Promise<string>;
|
|
33
|
-
/**
|
|
34
|
-
* Render React component directly to the DOM.
|
|
35
|
-
*/
|
|
36
|
-
renderToDOM(content: string, target: HTMLElement, context: RenderContext, options?: RenderOptions): Promise<RenderResult>;
|
|
37
|
-
/**
|
|
38
|
-
* Hydrate existing SSR content with React.
|
|
39
|
-
*/
|
|
40
|
-
hydrate(target: HTMLElement, context: RenderContext, options?: RenderOptions): Promise<RenderResult>;
|
|
41
|
-
/**
|
|
42
|
-
* Update rendered React component with new data.
|
|
43
|
-
*/
|
|
44
|
-
update(target: HTMLElement, context: RenderContext): Promise<RenderResult>;
|
|
45
|
-
/**
|
|
46
|
-
* Clean up React root.
|
|
47
|
-
*/
|
|
48
|
-
destroy(target: HTMLElement): void;
|
|
49
|
-
/**
|
|
50
|
-
* Ensure React is loaded.
|
|
51
|
-
*/
|
|
52
|
-
private ensureReactLoaded;
|
|
53
|
-
/**
|
|
54
|
-
* Load React runtime.
|
|
55
|
-
*/
|
|
56
|
-
private loadReact;
|
|
57
|
-
/**
|
|
58
|
-
* Get a React component by name or from content.
|
|
59
|
-
*/
|
|
60
|
-
private getComponent;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Create a new React renderer adapter.
|
|
64
|
-
*/
|
|
65
|
-
export declare function createReactAdapter(): ReactRendererAdapter;
|
|
66
|
-
/**
|
|
67
|
-
* Adapter loader for lazy loading.
|
|
68
|
-
*/
|
|
69
|
-
export declare function loadReactAdapter(): Promise<RendererAdapter>;
|
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* React Renderer Adapter
|
|
4
|
-
*
|
|
5
|
-
* Client-side adapter for rendering React components.
|
|
6
|
-
* Handles hydration, client-side rendering, and updates.
|
|
7
|
-
*
|
|
8
|
-
* @packageDocumentation
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.ReactRendererAdapter = void 0;
|
|
12
|
-
exports.createReactAdapter = createReactAdapter;
|
|
13
|
-
exports.loadReactAdapter = loadReactAdapter;
|
|
14
|
-
/**
|
|
15
|
-
* Map of mounted roots for cleanup.
|
|
16
|
-
*/
|
|
17
|
-
const mountedRoots = new WeakMap();
|
|
18
|
-
/**
|
|
19
|
-
* React Renderer Adapter.
|
|
20
|
-
*
|
|
21
|
-
* Renders React components to the DOM with support for:
|
|
22
|
-
* - Server-side rendering (SSR)
|
|
23
|
-
* - Client-side hydration
|
|
24
|
-
* - Dynamic updates when data changes
|
|
25
|
-
*/
|
|
26
|
-
class ReactRendererAdapter {
|
|
27
|
-
type = 'react';
|
|
28
|
-
// Lazy-loaded React runtime
|
|
29
|
-
react = null;
|
|
30
|
-
reactDOM = null;
|
|
31
|
-
loadPromise = null;
|
|
32
|
-
/**
|
|
33
|
-
* Check if this adapter can handle the given content.
|
|
34
|
-
*/
|
|
35
|
-
canHandle(content) {
|
|
36
|
-
// React adapter handles:
|
|
37
|
-
// - Functions (React components)
|
|
38
|
-
// - Strings that look like JSX
|
|
39
|
-
if (typeof content === 'function') {
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
if (typeof content === 'string') {
|
|
43
|
-
// Check for JSX patterns
|
|
44
|
-
return (content.includes('React.createElement') ||
|
|
45
|
-
content.includes('jsx(') ||
|
|
46
|
-
content.includes('jsxs(') ||
|
|
47
|
-
/function\s+\w+\s*\([^)]*\)\s*\{[\s\S]*return\s*[\s\S]*</.test(content));
|
|
48
|
-
}
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Render React component to a string.
|
|
53
|
-
* This is a client-side fallback - SSR should be done at build time.
|
|
54
|
-
*/
|
|
55
|
-
async render(content, context, _options) {
|
|
56
|
-
// For client-side, we can't SSR React
|
|
57
|
-
// Return a placeholder that will be hydrated
|
|
58
|
-
return `<div data-frontmcp-react data-tool="${context.toolName}">${content}</div>`;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Render React component directly to the DOM.
|
|
62
|
-
*/
|
|
63
|
-
async renderToDOM(content, target, context, options) {
|
|
64
|
-
try {
|
|
65
|
-
await this.ensureReactLoaded();
|
|
66
|
-
if (!this.react || !this.reactDOM) {
|
|
67
|
-
throw new Error('React runtime not available');
|
|
68
|
-
}
|
|
69
|
-
// Try to get component from registered components
|
|
70
|
-
const componentName = target.getAttribute('data-component');
|
|
71
|
-
const component = this.getComponent(componentName, content);
|
|
72
|
-
if (!component) {
|
|
73
|
-
// Fall back to HTML rendering
|
|
74
|
-
target.innerHTML = content;
|
|
75
|
-
return { success: true };
|
|
76
|
-
}
|
|
77
|
-
// Create React element with context as props
|
|
78
|
-
const element = this.react.createElement(component, {
|
|
79
|
-
input: context.input,
|
|
80
|
-
output: context.output,
|
|
81
|
-
structuredContent: context.structuredContent,
|
|
82
|
-
toolName: context.toolName,
|
|
83
|
-
});
|
|
84
|
-
// Render or hydrate
|
|
85
|
-
if (options?.hydrate && this.reactDOM.hydrateRoot) {
|
|
86
|
-
const root = this.reactDOM.hydrateRoot(target, element);
|
|
87
|
-
mountedRoots.set(target, root);
|
|
88
|
-
}
|
|
89
|
-
else if (this.reactDOM.createRoot) {
|
|
90
|
-
const root = this.reactDOM.createRoot(target);
|
|
91
|
-
root.render(element);
|
|
92
|
-
mountedRoots.set(target, root);
|
|
93
|
-
}
|
|
94
|
-
else if (this.reactDOM.render) {
|
|
95
|
-
// Legacy React 17 API
|
|
96
|
-
this.reactDOM.render(element, target);
|
|
97
|
-
mountedRoots.set(target, {
|
|
98
|
-
unmount: () => this.reactDOM?.unmountComponentAtNode?.(target),
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
throw new Error('No suitable React render method available');
|
|
103
|
-
}
|
|
104
|
-
// Dispatch event
|
|
105
|
-
target.dispatchEvent(new CustomEvent('frontmcp:rendered', {
|
|
106
|
-
bubbles: true,
|
|
107
|
-
detail: { type: 'react', toolName: context.toolName },
|
|
108
|
-
}));
|
|
109
|
-
return { success: true };
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
113
|
-
console.error('[FrontMCP] React render failed:', message);
|
|
114
|
-
return { success: false, error: message };
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Hydrate existing SSR content with React.
|
|
119
|
-
*/
|
|
120
|
-
async hydrate(target, context, options) {
|
|
121
|
-
return this.renderToDOM('', target, context, { ...options, hydrate: true });
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Update rendered React component with new data.
|
|
125
|
-
*/
|
|
126
|
-
async update(target, context) {
|
|
127
|
-
try {
|
|
128
|
-
await this.ensureReactLoaded();
|
|
129
|
-
if (!this.react) {
|
|
130
|
-
throw new Error('React runtime not available');
|
|
131
|
-
}
|
|
132
|
-
const existingRoot = mountedRoots.get(target);
|
|
133
|
-
const componentName = target.getAttribute('data-component');
|
|
134
|
-
const component = this.getComponent(componentName, '');
|
|
135
|
-
if (!component) {
|
|
136
|
-
return { success: false, error: 'No component found for update' };
|
|
137
|
-
}
|
|
138
|
-
// Create new element with updated props
|
|
139
|
-
const element = this.react.createElement(component, {
|
|
140
|
-
input: context.input,
|
|
141
|
-
output: context.output,
|
|
142
|
-
structuredContent: context.structuredContent,
|
|
143
|
-
toolName: context.toolName,
|
|
144
|
-
});
|
|
145
|
-
if (existingRoot && 'render' in existingRoot) {
|
|
146
|
-
existingRoot.render(element);
|
|
147
|
-
return { success: true };
|
|
148
|
-
}
|
|
149
|
-
// No existing root - do a fresh render
|
|
150
|
-
return this.renderToDOM('', target, context);
|
|
151
|
-
}
|
|
152
|
-
catch (error) {
|
|
153
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
154
|
-
console.error('[FrontMCP] React update failed:', message);
|
|
155
|
-
return { success: false, error: message };
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Clean up React root.
|
|
160
|
-
*/
|
|
161
|
-
destroy(target) {
|
|
162
|
-
const root = mountedRoots.get(target);
|
|
163
|
-
if (root) {
|
|
164
|
-
root.unmount();
|
|
165
|
-
mountedRoots.delete(target);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Ensure React is loaded.
|
|
170
|
-
*/
|
|
171
|
-
async ensureReactLoaded() {
|
|
172
|
-
if (this.react && this.reactDOM) {
|
|
173
|
-
return;
|
|
174
|
-
}
|
|
175
|
-
if (this.loadPromise) {
|
|
176
|
-
return this.loadPromise;
|
|
177
|
-
}
|
|
178
|
-
this.loadPromise = this.loadReact();
|
|
179
|
-
return this.loadPromise;
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Load React runtime.
|
|
183
|
-
*/
|
|
184
|
-
async loadReact() {
|
|
185
|
-
// Check if React is already available globally
|
|
186
|
-
const win = typeof window !== 'undefined' ? window : globalThis;
|
|
187
|
-
if (win.React) {
|
|
188
|
-
this.react = win.React;
|
|
189
|
-
}
|
|
190
|
-
if (win.ReactDOM) {
|
|
191
|
-
this.reactDOM = win.ReactDOM;
|
|
192
|
-
}
|
|
193
|
-
if (this.react && this.reactDOM) {
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
// Try to dynamically import React
|
|
197
|
-
try {
|
|
198
|
-
if (!this.react) {
|
|
199
|
-
const reactModule = await import(/* webpackIgnore: true */ 'react');
|
|
200
|
-
this.react = reactModule.default || reactModule;
|
|
201
|
-
}
|
|
202
|
-
if (!this.reactDOM) {
|
|
203
|
-
const reactDOMModule = await import(/* webpackIgnore: true */ 'react-dom/client');
|
|
204
|
-
this.reactDOM = reactDOMModule.default || reactDOMModule;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
catch {
|
|
208
|
-
// React not available via import - rely on global
|
|
209
|
-
if (!this.react || !this.reactDOM) {
|
|
210
|
-
console.warn('[FrontMCP] React runtime not available. ' + 'Ensure React is loaded via CDN or bundled.');
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Get a React component by name or from content.
|
|
216
|
-
*/
|
|
217
|
-
getComponent(componentName, content) {
|
|
218
|
-
const win = typeof window !== 'undefined' ? window : globalThis;
|
|
219
|
-
if (componentName && win.__frontmcp_components) {
|
|
220
|
-
const registered = win.__frontmcp_components?.[componentName];
|
|
221
|
-
if (registered) {
|
|
222
|
-
return registered;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
// Try to evaluate content as a component (unsafe - should be pre-bundled)
|
|
226
|
-
if (content && typeof content === 'function') {
|
|
227
|
-
return content;
|
|
228
|
-
}
|
|
229
|
-
return null;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
exports.ReactRendererAdapter = ReactRendererAdapter;
|
|
233
|
-
/**
|
|
234
|
-
* Create a new React renderer adapter.
|
|
235
|
-
*/
|
|
236
|
-
function createReactAdapter() {
|
|
237
|
-
return new ReactRendererAdapter();
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* Adapter loader for lazy loading.
|
|
241
|
-
*/
|
|
242
|
-
async function loadReactAdapter() {
|
|
243
|
-
return createReactAdapter();
|
|
244
|
-
}
|
|
245
|
-
//# sourceMappingURL=react.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react.adapter.js","sourceRoot":"","sources":["../../../../src/runtime/adapters/react.adapter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * React Renderer Adapter\n *\n * Client-side adapter for rendering React components.\n * Handles hydration, client-side rendering, and updates.\n *\n * @packageDocumentation\n */\n\nimport type { RendererAdapter, RenderContext, RenderOptions, RenderResult } from './types';\nimport type { UIType } from '../../types/ui-runtime';\n\n/**\n * React runtime interface.\n * Uses permissive types to support various React versions.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface ReactRuntime {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n createElement: (...args: any[]) => any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Component?: any;\n}\n\n/**\n * ReactDOM runtime interface.\n * Uses permissive types to support React 17 and 18+.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface ReactDOMRuntime {\n createRoot?: (container: Element) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n render: (element: any) => void;\n unmount: () => void;\n };\n hydrateRoot?: (\n container: Element,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element: any,\n ) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n render: (element: any) => void;\n unmount: () => void;\n };\n // Legacy APIs (React 17)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n render?: (element: any, container: Element) => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hydrate?: (element: any, container: Element) => void;\n unmountComponentAtNode?: (container: Element) => boolean;\n}\n\n/**\n * Root reference for cleanup.\n */\ninterface RootRef {\n unmount: () => void;\n}\n\n/**\n * Map of mounted roots for cleanup.\n */\nconst mountedRoots = new WeakMap<HTMLElement, RootRef>();\n\n/**\n * React Renderer Adapter.\n *\n * Renders React components to the DOM with support for:\n * - Server-side rendering (SSR)\n * - Client-side hydration\n * - Dynamic updates when data changes\n */\nexport class ReactRendererAdapter implements RendererAdapter {\n readonly type: UIType = 'react';\n\n // Lazy-loaded React runtime\n private react: ReactRuntime | null = null;\n private reactDOM: ReactDOMRuntime | null = null;\n private loadPromise: Promise<void> | null = null;\n\n /**\n * Check if this adapter can handle the given content.\n */\n canHandle(content: string | unknown): boolean {\n // React adapter handles:\n // - Functions (React components)\n // - Strings that look like JSX\n if (typeof content === 'function') {\n return true;\n }\n\n if (typeof content === 'string') {\n // Check for JSX patterns\n return (\n content.includes('React.createElement') ||\n content.includes('jsx(') ||\n content.includes('jsxs(') ||\n /function\\s+\\w+\\s*\\([^)]*\\)\\s*\\{[\\s\\S]*return\\s*[\\s\\S]*</.test(content)\n );\n }\n\n return false;\n }\n\n /**\n * Render React component to a string.\n * This is a client-side fallback - SSR should be done at build time.\n */\n async render(content: string, context: RenderContext, _options?: RenderOptions): Promise<string> {\n // For client-side, we can't SSR React\n // Return a placeholder that will be hydrated\n return `<div data-frontmcp-react data-tool=\"${context.toolName}\">${content}</div>`;\n }\n\n /**\n * Render React component directly to the DOM.\n */\n async renderToDOM(\n content: string,\n target: HTMLElement,\n context: RenderContext,\n options?: RenderOptions,\n ): Promise<RenderResult> {\n try {\n await this.ensureReactLoaded();\n\n if (!this.react || !this.reactDOM) {\n throw new Error('React runtime not available');\n }\n\n // Try to get component from registered components\n const componentName = target.getAttribute('data-component');\n const component = this.getComponent(componentName, content);\n\n if (!component) {\n // Fall back to HTML rendering\n target.innerHTML = content;\n return { success: true };\n }\n\n // Create React element with context as props\n const element = this.react.createElement(component, {\n input: context.input,\n output: context.output,\n structuredContent: context.structuredContent,\n toolName: context.toolName,\n });\n\n // Render or hydrate\n if (options?.hydrate && this.reactDOM.hydrateRoot) {\n const root = this.reactDOM.hydrateRoot(target, element);\n mountedRoots.set(target, root);\n } else if (this.reactDOM.createRoot) {\n const root = this.reactDOM.createRoot(target);\n root.render(element);\n mountedRoots.set(target, root);\n } else if (this.reactDOM.render) {\n // Legacy React 17 API\n this.reactDOM.render(element, target);\n mountedRoots.set(target, {\n unmount: () => this.reactDOM?.unmountComponentAtNode?.(target),\n });\n } else {\n throw new Error('No suitable React render method available');\n }\n\n // Dispatch event\n target.dispatchEvent(\n new CustomEvent('frontmcp:rendered', {\n bubbles: true,\n detail: { type: 'react', toolName: context.toolName },\n }),\n );\n\n return { success: true };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n console.error('[FrontMCP] React render failed:', message);\n return { success: false, error: message };\n }\n }\n\n /**\n * Hydrate existing SSR content with React.\n */\n async hydrate(target: HTMLElement, context: RenderContext, options?: RenderOptions): Promise<RenderResult> {\n return this.renderToDOM('', target, context, { ...options, hydrate: true });\n }\n\n /**\n * Update rendered React component with new data.\n */\n async update(target: HTMLElement, context: RenderContext): Promise<RenderResult> {\n try {\n await this.ensureReactLoaded();\n\n if (!this.react) {\n throw new Error('React runtime not available');\n }\n\n const existingRoot = mountedRoots.get(target);\n const componentName = target.getAttribute('data-component');\n const component = this.getComponent(componentName, '');\n\n if (!component) {\n return { success: false, error: 'No component found for update' };\n }\n\n // Create new element with updated props\n const element = this.react.createElement(component, {\n input: context.input,\n output: context.output,\n structuredContent: context.structuredContent,\n toolName: context.toolName,\n });\n\n if (existingRoot && 'render' in existingRoot) {\n (existingRoot as { render: (el: unknown) => void }).render(element);\n return { success: true };\n }\n\n // No existing root - do a fresh render\n return this.renderToDOM('', target, context);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n console.error('[FrontMCP] React update failed:', message);\n return { success: false, error: message };\n }\n }\n\n /**\n * Clean up React root.\n */\n destroy(target: HTMLElement): void {\n const root = mountedRoots.get(target);\n if (root) {\n root.unmount();\n mountedRoots.delete(target);\n }\n }\n\n /**\n * Ensure React is loaded.\n */\n private async ensureReactLoaded(): Promise<void> {\n if (this.react && this.reactDOM) {\n return;\n }\n\n if (this.loadPromise) {\n return this.loadPromise;\n }\n\n this.loadPromise = this.loadReact();\n return this.loadPromise;\n }\n\n /**\n * Load React runtime.\n */\n private async loadReact(): Promise<void> {\n // Check if React is already available globally\n const win = typeof window !== 'undefined' ? window : (globalThis as unknown as Window);\n\n if ((win as unknown as { React?: ReactRuntime }).React) {\n this.react = (win as unknown as { React: ReactRuntime }).React;\n }\n\n if ((win as unknown as { ReactDOM?: ReactDOMRuntime }).ReactDOM) {\n this.reactDOM = (win as unknown as { ReactDOM: ReactDOMRuntime }).ReactDOM;\n }\n\n if (this.react && this.reactDOM) {\n return;\n }\n\n // Try to dynamically import React\n try {\n if (!this.react) {\n const reactModule = await import(/* webpackIgnore: true */ 'react');\n this.react = reactModule.default || reactModule;\n }\n\n if (!this.reactDOM) {\n const reactDOMModule = await import(/* webpackIgnore: true */ 'react-dom/client');\n this.reactDOM = reactDOMModule.default || reactDOMModule;\n }\n } catch {\n // React not available via import - rely on global\n if (!this.react || !this.reactDOM) {\n console.warn('[FrontMCP] React runtime not available. ' + 'Ensure React is loaded via CDN or bundled.');\n }\n }\n }\n\n /**\n * Get a React component by name or from content.\n */\n private getComponent(componentName: string | null, content: string): React.ComponentType<unknown> | null {\n const win = typeof window !== 'undefined' ? window : (globalThis as unknown as Window);\n\n // Check registered components\n type ComponentRegistry = {\n __frontmcp_components?: Record<string, React.ComponentType<unknown>>;\n };\n\n if (componentName && (win as ComponentRegistry).__frontmcp_components) {\n const registered = (win as ComponentRegistry).__frontmcp_components?.[componentName];\n if (registered) {\n return registered;\n }\n }\n\n // Try to evaluate content as a component (unsafe - should be pre-bundled)\n if (content && typeof content === 'function') {\n return content as React.ComponentType<unknown>;\n }\n\n return null;\n }\n}\n\n/**\n * Create a new React renderer adapter.\n */\nexport function createReactAdapter(): ReactRendererAdapter {\n return new ReactRendererAdapter();\n}\n\n/**\n * Adapter loader for lazy loading.\n */\nexport async function loadReactAdapter(): Promise<RendererAdapter> {\n return createReactAdapter();\n}\n"]}
|