@frontmcp/ui 0.5.1 → 0.6.1
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/README.md +140 -362
- 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 +10 -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/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 +3707 -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 +2525 -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/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 +10 -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/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 +3640 -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 +2396 -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/index.d.ts +40 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +8326 -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 +409 -0
- package/esm/layouts/presets.d.ts +134 -0
- package/esm/layouts/presets.d.ts.map +1 -0
- package/esm/package.json +72 -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 +1036 -0
- package/esm/react/Alert.d.ts +101 -0
- package/esm/react/Alert.d.ts.map +1 -0
- package/esm/react/Badge.d.ts +100 -0
- package/esm/react/Badge.d.ts.map +1 -0
- package/esm/react/Button.d.ts +108 -0
- package/esm/react/Button.d.ts.map +1 -0
- package/esm/react/Card.d.ts +103 -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 +80 -0
- package/esm/react/index.d.ts.map +1 -0
- package/esm/react/index.js +3124 -0
- package/esm/react/types.d.ts +105 -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/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/index.d.ts +21 -0
- package/esm/renderers/index.d.ts.map +1 -0
- package/esm/renderers/index.js +381 -0
- package/esm/renderers/react.adapter.d.ts +70 -0
- package/esm/renderers/react.adapter.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/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/index.js +1755 -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/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 +1993 -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 +883 -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/index.d.ts +40 -0
- package/index.d.ts.map +1 -0
- package/index.js +8526 -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 +437 -0
- package/layouts/presets.d.ts +134 -0
- package/layouts/presets.d.ts.map +1 -0
- package/package.json +33 -110
- 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 +1065 -0
- package/react/Alert.d.ts +101 -0
- package/react/Alert.d.ts.map +1 -0
- package/react/Badge.d.ts +100 -0
- package/react/Badge.d.ts.map +1 -0
- package/react/Button.d.ts +108 -0
- package/react/Button.d.ts.map +1 -0
- package/react/Card.d.ts +103 -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 +80 -0
- package/react/index.d.ts.map +1 -0
- package/react/index.js +3160 -0
- package/react/types.d.ts +105 -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/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/index.d.ts +21 -0
- package/renderers/index.d.ts.map +1 -0
- package/renderers/index.js +416 -0
- package/renderers/react.adapter.d.ts +70 -0
- package/renderers/react.adapter.d.ts.map +1 -0
- package/renderers/react.renderer.d.ts +96 -0
- package/renderers/react.renderer.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/index.js +1841 -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/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 +2028 -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 +910 -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
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// libs/ui/src/renderers/index.ts
|
|
31
|
+
var renderers_exports = {};
|
|
32
|
+
__export(renderers_exports, {
|
|
33
|
+
ReactRenderer: () => ReactRenderer,
|
|
34
|
+
ReactRendererAdapter: () => ReactRendererAdapter,
|
|
35
|
+
buildHydrationScript: () => buildHydrationScript,
|
|
36
|
+
createReactAdapter: () => createReactAdapter,
|
|
37
|
+
loadReactAdapter: () => loadReactAdapter,
|
|
38
|
+
reactRenderer: () => reactRenderer
|
|
39
|
+
});
|
|
40
|
+
module.exports = __toCommonJS(renderers_exports);
|
|
41
|
+
|
|
42
|
+
// libs/ui/src/renderers/react.renderer.ts
|
|
43
|
+
var import_renderers = require("@frontmcp/uipack/renderers");
|
|
44
|
+
var REACT_CDN = {
|
|
45
|
+
react: "https://esm.sh/react@19",
|
|
46
|
+
reactDom: "https://esm.sh/react-dom@19/client"
|
|
47
|
+
};
|
|
48
|
+
var INLINE_REACT_PLACEHOLDER = `
|
|
49
|
+
// React runtime not available inline yet.
|
|
50
|
+
// For blocked-network platforms, use pre-rendered HTML templates.
|
|
51
|
+
console.warn('[FrontMCP] React hydration not available on this platform.');
|
|
52
|
+
`;
|
|
53
|
+
var ReactRenderer = class {
|
|
54
|
+
type = "react";
|
|
55
|
+
priority = 20;
|
|
56
|
+
// Higher priority than HTML
|
|
57
|
+
/**
|
|
58
|
+
* Lazy-loaded React modules.
|
|
59
|
+
*/
|
|
60
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
61
|
+
React = null;
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
|
+
ReactDOMServer = null;
|
|
64
|
+
/**
|
|
65
|
+
* Check if this renderer can handle the given template.
|
|
66
|
+
*
|
|
67
|
+
* Accepts:
|
|
68
|
+
* - React component functions (imported, already transpiled)
|
|
69
|
+
* - Strings containing JSX syntax
|
|
70
|
+
*/
|
|
71
|
+
canHandle(template) {
|
|
72
|
+
if (typeof template === "function" && (0, import_renderers.isReactComponent)(template)) {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
if (typeof template === "string" && (0, import_renderers.containsJsx)(template)) {
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Transpile the template if needed.
|
|
82
|
+
*
|
|
83
|
+
* For imported React components, no transpilation is needed.
|
|
84
|
+
* For JSX strings, SWC transpilation is performed.
|
|
85
|
+
*/
|
|
86
|
+
async transpile(template, options) {
|
|
87
|
+
if (typeof template === "function") {
|
|
88
|
+
const hash = (0, import_renderers.hashString)(template.toString());
|
|
89
|
+
return {
|
|
90
|
+
code: "",
|
|
91
|
+
// No transpiled code for already-compiled components
|
|
92
|
+
hash,
|
|
93
|
+
cached: true
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
if (typeof template === "string") {
|
|
97
|
+
return (0, import_renderers.transpileJsx)(template, {
|
|
98
|
+
development: options?.sourceMaps ?? false
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
throw new Error("Invalid template type for ReactRenderer");
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Render the template to HTML string using react-dom/server.
|
|
105
|
+
*/
|
|
106
|
+
async render(template, context, options) {
|
|
107
|
+
await this.loadReact();
|
|
108
|
+
let Component;
|
|
109
|
+
if (typeof template === "function") {
|
|
110
|
+
Component = template;
|
|
111
|
+
} else if (typeof template === "string") {
|
|
112
|
+
const transpiled = await this.transpile(template);
|
|
113
|
+
const cached = import_renderers.transpileCache.getByKey(`exec:${transpiled.hash}`);
|
|
114
|
+
if (cached) {
|
|
115
|
+
Component = cached.code;
|
|
116
|
+
} else {
|
|
117
|
+
Component = await (0, import_renderers.executeTranspiledCode)(transpiled.code, {
|
|
118
|
+
// Provide any additional MDX components if specified
|
|
119
|
+
...options?.mdxComponents
|
|
120
|
+
});
|
|
121
|
+
import_renderers.transpileCache.setByKey(`exec:${transpiled.hash}`, {
|
|
122
|
+
code: Component,
|
|
123
|
+
hash: transpiled.hash,
|
|
124
|
+
cached: false
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
} else {
|
|
128
|
+
throw new Error("Invalid template type for ReactRenderer");
|
|
129
|
+
}
|
|
130
|
+
const props = {
|
|
131
|
+
input: context.input,
|
|
132
|
+
output: context.output,
|
|
133
|
+
structuredContent: context.structuredContent,
|
|
134
|
+
helpers: context.helpers
|
|
135
|
+
};
|
|
136
|
+
const element = this.React.createElement(Component, props);
|
|
137
|
+
const html = this.ReactDOMServer.renderToString(element);
|
|
138
|
+
if (options?.hydrate) {
|
|
139
|
+
const componentName = Component.name || "Component";
|
|
140
|
+
const escapedProps = JSON.stringify(props).replace(/&/g, "&").replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">");
|
|
141
|
+
return `<div data-hydrate="${componentName}" data-props='${escapedProps}'>${html}</div>`;
|
|
142
|
+
}
|
|
143
|
+
return html;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Get runtime scripts for client-side functionality.
|
|
147
|
+
*/
|
|
148
|
+
getRuntimeScripts(platform) {
|
|
149
|
+
if (platform.networkMode === "blocked") {
|
|
150
|
+
return {
|
|
151
|
+
headScripts: "",
|
|
152
|
+
inlineScripts: INLINE_REACT_PLACEHOLDER,
|
|
153
|
+
isInline: true
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
headScripts: `
|
|
158
|
+
<script crossorigin src="${REACT_CDN.react}"></script>
|
|
159
|
+
<script crossorigin src="${REACT_CDN.reactDom}"></script>
|
|
160
|
+
`,
|
|
161
|
+
isInline: false
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Load React and ReactDOMServer modules.
|
|
166
|
+
*/
|
|
167
|
+
async loadReact() {
|
|
168
|
+
if (this.React && this.ReactDOMServer) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
this.React = await import("react");
|
|
173
|
+
this.ReactDOMServer = await import("react-dom/server");
|
|
174
|
+
} catch {
|
|
175
|
+
throw new Error("React is required for ReactRenderer. Install react and react-dom: npm install react react-dom");
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
var reactRenderer = new ReactRenderer();
|
|
180
|
+
function buildHydrationScript() {
|
|
181
|
+
return `
|
|
182
|
+
<script>
|
|
183
|
+
(function() {
|
|
184
|
+
// Wait for React to be available
|
|
185
|
+
if (typeof React === 'undefined' || typeof ReactDOM === 'undefined') {
|
|
186
|
+
console.warn('[FrontMCP] React not available for hydration');
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// Find all elements marked for hydration
|
|
191
|
+
document.querySelectorAll('[data-hydrate]').forEach(function(root) {
|
|
192
|
+
var componentName = root.getAttribute('data-hydrate');
|
|
193
|
+
var propsJson = root.getAttribute('data-props');
|
|
194
|
+
var props = propsJson ? JSON.parse(propsJson) : {};
|
|
195
|
+
|
|
196
|
+
// Look for the component in the global scope
|
|
197
|
+
if (window.__frontmcp_components && window.__frontmcp_components[componentName]) {
|
|
198
|
+
try {
|
|
199
|
+
ReactDOM.hydrateRoot(root, React.createElement(
|
|
200
|
+
window.__frontmcp_components[componentName],
|
|
201
|
+
props
|
|
202
|
+
));
|
|
203
|
+
} catch (e) {
|
|
204
|
+
console.error('[FrontMCP] Hydration failed for', componentName, e);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
})();
|
|
209
|
+
</script>
|
|
210
|
+
`;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// libs/ui/src/renderers/react.adapter.ts
|
|
214
|
+
var mountedRoots = /* @__PURE__ */ new WeakMap();
|
|
215
|
+
var ReactRendererAdapter = class {
|
|
216
|
+
type = "react";
|
|
217
|
+
// Lazy-loaded React runtime
|
|
218
|
+
react = null;
|
|
219
|
+
reactDOM = null;
|
|
220
|
+
loadPromise = null;
|
|
221
|
+
/**
|
|
222
|
+
* Check if this adapter can handle the given content.
|
|
223
|
+
*/
|
|
224
|
+
canHandle(content) {
|
|
225
|
+
if (typeof content === "function") {
|
|
226
|
+
return true;
|
|
227
|
+
}
|
|
228
|
+
if (typeof content === "string") {
|
|
229
|
+
return content.includes("React.createElement") || content.includes("jsx(") || content.includes("jsxs(") || /function\s+\w+\s*\([^)]*\)\s*\{[\s\S]*return\s*[\s\S]*</.test(content);
|
|
230
|
+
}
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Render React component to a string.
|
|
235
|
+
* This is a client-side fallback - SSR should be done at build time.
|
|
236
|
+
*/
|
|
237
|
+
async render(content, context, _options) {
|
|
238
|
+
return `<div data-frontmcp-react data-tool="${context.toolName}">${content}</div>`;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Render React component directly to the DOM.
|
|
242
|
+
*/
|
|
243
|
+
async renderToDOM(content, target, context, options) {
|
|
244
|
+
try {
|
|
245
|
+
await this.ensureReactLoaded();
|
|
246
|
+
if (!this.react || !this.reactDOM) {
|
|
247
|
+
throw new Error("React runtime not available");
|
|
248
|
+
}
|
|
249
|
+
const componentName = target.getAttribute("data-component");
|
|
250
|
+
const component = this.getComponent(componentName, content);
|
|
251
|
+
if (!component) {
|
|
252
|
+
target.innerHTML = content;
|
|
253
|
+
return { success: true };
|
|
254
|
+
}
|
|
255
|
+
const element = this.react.createElement(component, {
|
|
256
|
+
input: context.input,
|
|
257
|
+
output: context.output,
|
|
258
|
+
structuredContent: context.structuredContent,
|
|
259
|
+
toolName: context.toolName
|
|
260
|
+
});
|
|
261
|
+
if (options?.hydrate && this.reactDOM.hydrateRoot) {
|
|
262
|
+
const root = this.reactDOM.hydrateRoot(target, element);
|
|
263
|
+
mountedRoots.set(target, root);
|
|
264
|
+
} else if (this.reactDOM.createRoot) {
|
|
265
|
+
const root = this.reactDOM.createRoot(target);
|
|
266
|
+
root.render(element);
|
|
267
|
+
mountedRoots.set(target, root);
|
|
268
|
+
} else if (this.reactDOM.render) {
|
|
269
|
+
this.reactDOM.render(element, target);
|
|
270
|
+
mountedRoots.set(target, {
|
|
271
|
+
unmount: () => this.reactDOM?.unmountComponentAtNode?.(target)
|
|
272
|
+
});
|
|
273
|
+
} else {
|
|
274
|
+
throw new Error("No suitable React render method available");
|
|
275
|
+
}
|
|
276
|
+
target.dispatchEvent(
|
|
277
|
+
new CustomEvent("frontmcp:rendered", {
|
|
278
|
+
bubbles: true,
|
|
279
|
+
detail: { type: "react", toolName: context.toolName }
|
|
280
|
+
})
|
|
281
|
+
);
|
|
282
|
+
return { success: true };
|
|
283
|
+
} catch (error) {
|
|
284
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
285
|
+
console.error("[FrontMCP] React render failed:", message);
|
|
286
|
+
return { success: false, error: message };
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Hydrate existing SSR content with React.
|
|
291
|
+
*/
|
|
292
|
+
async hydrate(target, context, options) {
|
|
293
|
+
return this.renderToDOM("", target, context, { ...options, hydrate: true });
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Update rendered React component with new data.
|
|
297
|
+
*/
|
|
298
|
+
async update(target, context) {
|
|
299
|
+
try {
|
|
300
|
+
await this.ensureReactLoaded();
|
|
301
|
+
if (!this.react) {
|
|
302
|
+
throw new Error("React runtime not available");
|
|
303
|
+
}
|
|
304
|
+
const existingRoot = mountedRoots.get(target);
|
|
305
|
+
const componentName = target.getAttribute("data-component");
|
|
306
|
+
const component = this.getComponent(componentName, "");
|
|
307
|
+
if (!component) {
|
|
308
|
+
return { success: false, error: "No component found for update" };
|
|
309
|
+
}
|
|
310
|
+
const element = this.react.createElement(component, {
|
|
311
|
+
input: context.input,
|
|
312
|
+
output: context.output,
|
|
313
|
+
structuredContent: context.structuredContent,
|
|
314
|
+
toolName: context.toolName
|
|
315
|
+
});
|
|
316
|
+
if (existingRoot && "render" in existingRoot) {
|
|
317
|
+
existingRoot.render(element);
|
|
318
|
+
return { success: true };
|
|
319
|
+
}
|
|
320
|
+
return this.renderToDOM("", target, context);
|
|
321
|
+
} catch (error) {
|
|
322
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
323
|
+
console.error("[FrontMCP] React update failed:", message);
|
|
324
|
+
return { success: false, error: message };
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Clean up React root.
|
|
329
|
+
*/
|
|
330
|
+
destroy(target) {
|
|
331
|
+
const root = mountedRoots.get(target);
|
|
332
|
+
if (root) {
|
|
333
|
+
root.unmount();
|
|
334
|
+
mountedRoots.delete(target);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Ensure React is loaded.
|
|
339
|
+
*/
|
|
340
|
+
async ensureReactLoaded() {
|
|
341
|
+
if (this.react && this.reactDOM) {
|
|
342
|
+
return;
|
|
343
|
+
}
|
|
344
|
+
if (this.loadPromise) {
|
|
345
|
+
return this.loadPromise;
|
|
346
|
+
}
|
|
347
|
+
this.loadPromise = this.loadReact();
|
|
348
|
+
return this.loadPromise;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Load React runtime.
|
|
352
|
+
*/
|
|
353
|
+
async loadReact() {
|
|
354
|
+
const win = typeof window !== "undefined" ? window : globalThis;
|
|
355
|
+
if (win.React) {
|
|
356
|
+
this.react = win.React;
|
|
357
|
+
}
|
|
358
|
+
if (win.ReactDOM) {
|
|
359
|
+
this.reactDOM = win.ReactDOM;
|
|
360
|
+
}
|
|
361
|
+
if (this.react && this.reactDOM) {
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
try {
|
|
365
|
+
if (!this.react) {
|
|
366
|
+
const reactModule = await import(
|
|
367
|
+
/* webpackIgnore: true */
|
|
368
|
+
"react"
|
|
369
|
+
);
|
|
370
|
+
this.react = reactModule.default || reactModule;
|
|
371
|
+
}
|
|
372
|
+
if (!this.reactDOM) {
|
|
373
|
+
const reactDOMModule = await import(
|
|
374
|
+
/* webpackIgnore: true */
|
|
375
|
+
"react-dom/client"
|
|
376
|
+
);
|
|
377
|
+
this.reactDOM = reactDOMModule.default || reactDOMModule;
|
|
378
|
+
}
|
|
379
|
+
} catch {
|
|
380
|
+
if (!this.react || !this.reactDOM) {
|
|
381
|
+
console.warn("[FrontMCP] React runtime not available. Ensure React is loaded via CDN or bundled.");
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Get a React component by name or from content.
|
|
387
|
+
*/
|
|
388
|
+
getComponent(componentName, content) {
|
|
389
|
+
const win = typeof window !== "undefined" ? window : globalThis;
|
|
390
|
+
if (componentName && win.__frontmcp_components) {
|
|
391
|
+
const registered = win.__frontmcp_components?.[componentName];
|
|
392
|
+
if (registered) {
|
|
393
|
+
return registered;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
if (content && typeof content === "function") {
|
|
397
|
+
return content;
|
|
398
|
+
}
|
|
399
|
+
return null;
|
|
400
|
+
}
|
|
401
|
+
};
|
|
402
|
+
function createReactAdapter() {
|
|
403
|
+
return new ReactRendererAdapter();
|
|
404
|
+
}
|
|
405
|
+
async function loadReactAdapter() {
|
|
406
|
+
return createReactAdapter();
|
|
407
|
+
}
|
|
408
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
409
|
+
0 && (module.exports = {
|
|
410
|
+
ReactRenderer,
|
|
411
|
+
ReactRendererAdapter,
|
|
412
|
+
buildHydrationScript,
|
|
413
|
+
createReactAdapter,
|
|
414
|
+
loadReactAdapter,
|
|
415
|
+
reactRenderer
|
|
416
|
+
});
|
|
@@ -0,0 +1,70 @@
|
|
|
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 '@frontmcp/uipack/runtime';
|
|
10
|
+
import type { UIType } from '@frontmcp/uipack/types';
|
|
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>;
|
|
70
|
+
//# sourceMappingURL=react.adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.adapter.d.ts","sourceRoot":"","sources":["../../src/renderers/react.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC5G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAsDrD;;;;;;;GAOG;AACH,qBAAa,oBAAqB,YAAW,eAAe;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAW;IAGhC,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,WAAW,CAA8B;IAEjD;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO;IAqB7C;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAMhG;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC;IA4DxB;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAI1G;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAsChF;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAQlC;;OAEG;YACW,iBAAiB;IAa/B;;OAEG;YACW,SAAS;IAmCvB;;OAEG;IACH,OAAO,CAAC,YAAY;CAsBrB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,oBAAoB,CAEzD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC,CAEjE"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React Renderer
|
|
3
|
+
*
|
|
4
|
+
* Handles React component templates:
|
|
5
|
+
* - Imported React components (already transpiled)
|
|
6
|
+
* - JSX string templates (transpiled at runtime with SWC)
|
|
7
|
+
*
|
|
8
|
+
* Uses react-dom/server for SSR to HTML.
|
|
9
|
+
*/
|
|
10
|
+
import type { TemplateContext } from '@frontmcp/uipack/runtime';
|
|
11
|
+
import type { PlatformCapabilities } from '@frontmcp/uipack/theme';
|
|
12
|
+
import type { UIRenderer, TranspileResult, TranspileOptions, RenderOptions, RuntimeScripts, ToolUIProps } from '@frontmcp/uipack/renderers';
|
|
13
|
+
/**
|
|
14
|
+
* Types this renderer can handle.
|
|
15
|
+
*/
|
|
16
|
+
type ReactTemplate<In = unknown, Out = unknown> = ((props: ToolUIProps<In, Out>) => unknown) | string;
|
|
17
|
+
/**
|
|
18
|
+
* React Renderer Implementation.
|
|
19
|
+
*
|
|
20
|
+
* Handles:
|
|
21
|
+
* - Imported React components (FC or class)
|
|
22
|
+
* - JSX string templates (transpiled with SWC at runtime)
|
|
23
|
+
*
|
|
24
|
+
* Renders to HTML using react-dom/server's renderToString.
|
|
25
|
+
*
|
|
26
|
+
* @example Imported component
|
|
27
|
+
* ```typescript
|
|
28
|
+
* import { MyWidget } from './my-widget.tsx';
|
|
29
|
+
*
|
|
30
|
+
* @Tool({
|
|
31
|
+
* ui: { template: MyWidget }
|
|
32
|
+
* })
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @example JSX string (runtime transpilation)
|
|
36
|
+
* ```typescript
|
|
37
|
+
* @Tool({
|
|
38
|
+
* ui: {
|
|
39
|
+
* template: `
|
|
40
|
+
* function Widget({ output }) {
|
|
41
|
+
* return <div>{output.name}</div>;
|
|
42
|
+
* }
|
|
43
|
+
* `
|
|
44
|
+
* }
|
|
45
|
+
* })
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare class ReactRenderer implements UIRenderer<ReactTemplate> {
|
|
49
|
+
readonly type: "react";
|
|
50
|
+
readonly priority = 20;
|
|
51
|
+
/**
|
|
52
|
+
* Lazy-loaded React modules.
|
|
53
|
+
*/
|
|
54
|
+
private React;
|
|
55
|
+
private ReactDOMServer;
|
|
56
|
+
/**
|
|
57
|
+
* Check if this renderer can handle the given template.
|
|
58
|
+
*
|
|
59
|
+
* Accepts:
|
|
60
|
+
* - React component functions (imported, already transpiled)
|
|
61
|
+
* - Strings containing JSX syntax
|
|
62
|
+
*/
|
|
63
|
+
canHandle(template: unknown): template is ReactTemplate;
|
|
64
|
+
/**
|
|
65
|
+
* Transpile the template if needed.
|
|
66
|
+
*
|
|
67
|
+
* For imported React components, no transpilation is needed.
|
|
68
|
+
* For JSX strings, SWC transpilation is performed.
|
|
69
|
+
*/
|
|
70
|
+
transpile(template: ReactTemplate, options?: TranspileOptions): Promise<TranspileResult>;
|
|
71
|
+
/**
|
|
72
|
+
* Render the template to HTML string using react-dom/server.
|
|
73
|
+
*/
|
|
74
|
+
render<In, Out>(template: ReactTemplate<In, Out>, context: TemplateContext<In, Out>, options?: RenderOptions): Promise<string>;
|
|
75
|
+
/**
|
|
76
|
+
* Get runtime scripts for client-side functionality.
|
|
77
|
+
*/
|
|
78
|
+
getRuntimeScripts(platform: PlatformCapabilities): RuntimeScripts;
|
|
79
|
+
/**
|
|
80
|
+
* Load React and ReactDOMServer modules.
|
|
81
|
+
*/
|
|
82
|
+
private loadReact;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Singleton instance of the React renderer.
|
|
86
|
+
*/
|
|
87
|
+
export declare const reactRenderer: ReactRenderer;
|
|
88
|
+
/**
|
|
89
|
+
* Build React hydration script for client-side interactivity.
|
|
90
|
+
*
|
|
91
|
+
* This script finds elements with data-hydrate attributes and
|
|
92
|
+
* hydrates them with the corresponding React component.
|
|
93
|
+
*/
|
|
94
|
+
export declare function buildHydrationScript(): string;
|
|
95
|
+
export {};
|
|
96
|
+
//# sourceMappingURL=react.renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.renderer.d.ts","sourceRoot":"","sources":["../../src/renderers/react.renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAUpC;;GAEG;AACH,KAAK,aAAa,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO,IAC1C,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAC1C,MAAM,CAAC;AAqBX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,aAAc,YAAW,UAAU,CAAC,aAAa,CAAC;IAC7D,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,QAAQ,CAAC,QAAQ,MAAM;IAEvB;;OAEG;IAEH,OAAO,CAAC,KAAK,CAAa;IAE1B,OAAO,CAAC,cAAc,CAAa;IAEnC;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,aAAa;IAcvD;;;;;OAKG;IACG,SAAS,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAsB9F;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,GAAG,EAClB,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,EAChC,OAAO,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,EACjC,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,MAAM,CAAC;IAkElB;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,cAAc;IAoBjE;;OAEG;YACW,SAAS;CAYxB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,eAAsB,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CA+B7C"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal App Component
|
|
3
|
+
*
|
|
4
|
+
* Main entry point for the universal renderer.
|
|
5
|
+
* Handles loading states, error boundaries, and auto-detection.
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import type { UniversalAppProps, FrontMCPState } from './types';
|
|
9
|
+
/**
|
|
10
|
+
* Default loading spinner component.
|
|
11
|
+
*/
|
|
12
|
+
declare function LoadingSpinner(): React.ReactElement;
|
|
13
|
+
/**
|
|
14
|
+
* Default error display component.
|
|
15
|
+
*/
|
|
16
|
+
declare function ErrorDisplay({ error }: {
|
|
17
|
+
error: string;
|
|
18
|
+
}): React.ReactElement;
|
|
19
|
+
/**
|
|
20
|
+
* Default empty state component.
|
|
21
|
+
*/
|
|
22
|
+
declare function EmptyState(): React.ReactElement;
|
|
23
|
+
/**
|
|
24
|
+
* Universal App component.
|
|
25
|
+
*
|
|
26
|
+
* Main entry point for the universal renderer. Handles:
|
|
27
|
+
* - Loading states
|
|
28
|
+
* - Error display
|
|
29
|
+
* - Content auto-detection
|
|
30
|
+
* - Custom component injection
|
|
31
|
+
*
|
|
32
|
+
* @example Basic usage
|
|
33
|
+
* ```tsx
|
|
34
|
+
* function App() {
|
|
35
|
+
* return (
|
|
36
|
+
* <FrontMCPProvider>
|
|
37
|
+
* <UniversalApp />
|
|
38
|
+
* </FrontMCPProvider>
|
|
39
|
+
* );
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @example With custom content
|
|
44
|
+
* ```tsx
|
|
45
|
+
* const content: UniversalContent = {
|
|
46
|
+
* type: 'markdown',
|
|
47
|
+
* source: '# Hello World',
|
|
48
|
+
* };
|
|
49
|
+
*
|
|
50
|
+
* function App() {
|
|
51
|
+
* return (
|
|
52
|
+
* <FrontMCPProvider>
|
|
53
|
+
* <UniversalApp content={content} />
|
|
54
|
+
* </FrontMCPProvider>
|
|
55
|
+
* );
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* @example With custom components
|
|
60
|
+
* ```tsx
|
|
61
|
+
* const components = {
|
|
62
|
+
* WeatherCard: ({ temp }) => <div>{temp}°F</div>,
|
|
63
|
+
* };
|
|
64
|
+
*
|
|
65
|
+
* function App() {
|
|
66
|
+
* return (
|
|
67
|
+
* <FrontMCPProvider>
|
|
68
|
+
* <UniversalApp components={components} />
|
|
69
|
+
* </FrontMCPProvider>
|
|
70
|
+
* );
|
|
71
|
+
* }
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare function UniversalApp({ content: contentOverride, components, fallback, errorFallback: ErrorFallback, }: UniversalAppProps): React.ReactElement;
|
|
75
|
+
/**
|
|
76
|
+
* Props for the standalone UniversalAppWithProvider.
|
|
77
|
+
*/
|
|
78
|
+
interface StandaloneAppProps extends UniversalAppProps {
|
|
79
|
+
/** Initial store state */
|
|
80
|
+
initialState?: Partial<FrontMCPState>;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Standalone Universal App with built-in provider.
|
|
84
|
+
*
|
|
85
|
+
* Use this when you need a self-contained universal renderer
|
|
86
|
+
* without manually setting up the provider.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```tsx
|
|
90
|
+
* function App() {
|
|
91
|
+
* return (
|
|
92
|
+
* <UniversalAppWithProvider
|
|
93
|
+
* initialState={{
|
|
94
|
+
* toolName: 'get_weather',
|
|
95
|
+
* output: { temperature: 72 },
|
|
96
|
+
* }}
|
|
97
|
+
* content={{
|
|
98
|
+
* type: 'markdown',
|
|
99
|
+
* source: '# Weather: {output.temperature}°F',
|
|
100
|
+
* }}
|
|
101
|
+
* />
|
|
102
|
+
* );
|
|
103
|
+
* }
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
export declare function UniversalAppWithProvider({ initialState, components, ...appProps }: StandaloneAppProps): React.ReactElement;
|
|
107
|
+
export { LoadingSpinner, ErrorDisplay, EmptyState };
|
|
108
|
+
//# sourceMappingURL=UniversalApp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UniversalApp.d.ts","sourceRoot":"","sources":["../../src/universal/UniversalApp.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAmC,aAAa,EAAE,MAAM,SAAS,CAAC;AAUjG;;GAEG;AACH,iBAAS,cAAc,IAAI,KAAK,CAAC,YAAY,CAQ5C;AAMD;;GAEG;AACH,iBAAS,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CAWtE;AAMD;;GAEG;AACH,iBAAS,UAAU,IAAI,KAAK,CAAC,YAAY,CAQxC;AAuCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EAAE,eAAe,EACxB,UAAU,EACV,QAAQ,EACR,aAAa,EAAE,aAA4B,GAC5C,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CA+BxC;AAMD;;GAEG;AACH,UAAU,kBAAmB,SAAQ,iBAAiB;IACpD,0BAA0B;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,YAAY,EACZ,UAAU,EACV,GAAG,QAAQ,EACZ,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAQzC;AAMD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC"}
|