@frontmcp/ui 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/index.d.ts +13 -0
- package/adapters/index.d.ts.map +1 -0
- package/adapters/index.js +462 -0
- package/adapters/platform-meta.d.ts +166 -0
- package/adapters/platform-meta.d.ts.map +1 -0
- package/adapters/response-builder.d.ts +108 -0
- package/adapters/response-builder.d.ts.map +1 -0
- package/adapters/serving-mode.d.ts +107 -0
- package/adapters/serving-mode.d.ts.map +1 -0
- package/base-template/bridge.d.ts +90 -0
- package/base-template/bridge.d.ts.map +1 -0
- package/base-template/default-base-template.d.ts +92 -0
- package/base-template/default-base-template.d.ts.map +1 -0
- package/base-template/index.d.ts +15 -0
- package/base-template/index.d.ts.map +1 -0
- package/base-template/index.js +1398 -0
- package/base-template/polyfills.d.ts +31 -0
- package/base-template/polyfills.d.ts.map +1 -0
- package/base-template/theme-styles.d.ts +74 -0
- package/base-template/theme-styles.d.ts.map +1 -0
- package/bridge/adapters/base-adapter.d.ts +104 -0
- package/bridge/adapters/base-adapter.d.ts.map +1 -0
- package/bridge/adapters/claude.adapter.d.ts +67 -0
- package/bridge/adapters/claude.adapter.d.ts.map +1 -0
- package/bridge/adapters/ext-apps.adapter.d.ts +143 -0
- package/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
- package/bridge/adapters/gemini.adapter.d.ts +64 -0
- package/bridge/adapters/gemini.adapter.d.ts.map +1 -0
- package/bridge/adapters/generic.adapter.d.ts +56 -0
- package/bridge/adapters/generic.adapter.d.ts.map +1 -0
- package/bridge/adapters/index.d.ts +26 -0
- package/bridge/adapters/index.d.ts.map +1 -0
- package/bridge/adapters/openai.adapter.d.ts +65 -0
- package/bridge/adapters/openai.adapter.d.ts.map +1 -0
- package/bridge/core/adapter-registry.d.ts +122 -0
- package/bridge/core/adapter-registry.d.ts.map +1 -0
- package/bridge/core/bridge-factory.d.ts +199 -0
- package/bridge/core/bridge-factory.d.ts.map +1 -0
- package/bridge/core/index.d.ts +10 -0
- package/bridge/core/index.d.ts.map +1 -0
- package/bridge/index.d.ts +62 -0
- package/bridge/index.d.ts.map +1 -0
- package/bridge/index.js +2540 -0
- package/bridge/runtime/iife-generator.d.ts +62 -0
- package/bridge/runtime/iife-generator.d.ts.map +1 -0
- package/bridge/runtime/index.d.ts +9 -0
- package/bridge/runtime/index.d.ts.map +1 -0
- package/bridge/types.d.ts +386 -0
- package/bridge/types.d.ts.map +1 -0
- package/build/cdn-resources.d.ts +243 -0
- package/build/cdn-resources.d.ts.map +1 -0
- package/build/index.d.ts +295 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +7096 -0
- package/build/widget-manifest.d.ts +362 -0
- package/build/widget-manifest.d.ts.map +1 -0
- package/bundler/bundler.d.ts +208 -0
- package/bundler/bundler.d.ts.map +1 -0
- package/bundler/cache.d.ts +173 -0
- package/bundler/cache.d.ts.map +1 -0
- package/bundler/file-cache/component-builder.d.ts +167 -0
- package/bundler/file-cache/component-builder.d.ts.map +1 -0
- package/bundler/file-cache/hash-calculator.d.ts +155 -0
- package/bundler/file-cache/hash-calculator.d.ts.map +1 -0
- package/bundler/file-cache/index.d.ts +12 -0
- package/bundler/file-cache/index.d.ts.map +1 -0
- package/bundler/file-cache/storage/filesystem.d.ts +149 -0
- package/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
- package/bundler/file-cache/storage/index.d.ts +11 -0
- package/bundler/file-cache/storage/index.d.ts.map +1 -0
- package/bundler/file-cache/storage/interface.d.ts +152 -0
- package/bundler/file-cache/storage/interface.d.ts.map +1 -0
- package/bundler/file-cache/storage/redis.d.ts +139 -0
- package/bundler/file-cache/storage/redis.d.ts.map +1 -0
- package/bundler/index.d.ts +43 -0
- package/bundler/index.d.ts.map +1 -0
- package/bundler/index.js +4754 -0
- package/bundler/sandbox/enclave-adapter.d.ts +121 -0
- package/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
- package/bundler/sandbox/executor.d.ts +14 -0
- package/bundler/sandbox/executor.d.ts.map +1 -0
- package/bundler/sandbox/policy.d.ts +62 -0
- package/bundler/sandbox/policy.d.ts.map +1 -0
- package/bundler/types.d.ts +702 -0
- package/bundler/types.d.ts.map +1 -0
- package/components/alert.d.ts +66 -0
- package/components/alert.d.ts.map +1 -0
- package/components/alert.schema.d.ts +98 -0
- package/components/alert.schema.d.ts.map +1 -0
- package/components/avatar.d.ts +77 -0
- package/components/avatar.d.ts.map +1 -0
- package/components/avatar.schema.d.ts +170 -0
- package/components/avatar.schema.d.ts.map +1 -0
- package/components/badge.d.ts +64 -0
- package/components/badge.d.ts.map +1 -0
- package/components/badge.schema.d.ts +91 -0
- package/components/badge.schema.d.ts.map +1 -0
- package/components/button.d.ts +100 -0
- package/components/button.d.ts.map +1 -0
- package/components/button.schema.d.ts +120 -0
- package/components/button.schema.d.ts.map +1 -0
- package/components/card.d.ts +53 -0
- package/components/card.d.ts.map +1 -0
- package/components/card.schema.d.ts +93 -0
- package/components/card.schema.d.ts.map +1 -0
- package/components/form.d.ts +212 -0
- package/components/form.d.ts.map +1 -0
- package/components/form.schema.d.ts +365 -0
- package/components/form.schema.d.ts.map +1 -0
- package/components/index.d.ts +29 -0
- package/components/index.d.ts.map +1 -0
- package/components/index.js +2595 -0
- package/components/list.d.ts +121 -0
- package/components/list.d.ts.map +1 -0
- package/components/list.schema.d.ts +129 -0
- package/components/list.schema.d.ts.map +1 -0
- package/components/modal.d.ts +100 -0
- package/components/modal.d.ts.map +1 -0
- package/components/modal.schema.d.ts +151 -0
- package/components/modal.schema.d.ts.map +1 -0
- package/components/table.d.ts +91 -0
- package/components/table.d.ts.map +1 -0
- package/components/table.schema.d.ts +123 -0
- package/components/table.schema.d.ts.map +1 -0
- package/dependency/cdn-registry.d.ts +98 -0
- package/dependency/cdn-registry.d.ts.map +1 -0
- package/dependency/import-map.d.ts +186 -0
- package/dependency/import-map.d.ts.map +1 -0
- package/dependency/import-parser.d.ts +82 -0
- package/dependency/import-parser.d.ts.map +1 -0
- package/dependency/index.d.ts +17 -0
- package/dependency/index.d.ts.map +1 -0
- package/dependency/resolver.d.ts +164 -0
- package/dependency/resolver.d.ts.map +1 -0
- package/dependency/schemas.d.ts +486 -0
- package/dependency/schemas.d.ts.map +1 -0
- package/dependency/template-loader.d.ts +204 -0
- package/dependency/template-loader.d.ts.map +1 -0
- package/dependency/template-processor.d.ts +118 -0
- package/dependency/template-processor.d.ts.map +1 -0
- package/dependency/types.d.ts +739 -0
- package/dependency/types.d.ts.map +1 -0
- package/esm/adapters/index.d.ts +13 -0
- package/esm/adapters/index.d.ts.map +1 -0
- package/esm/adapters/index.js +427 -0
- package/esm/adapters/platform-meta.d.ts +166 -0
- package/esm/adapters/platform-meta.d.ts.map +1 -0
- package/esm/adapters/response-builder.d.ts +108 -0
- package/esm/adapters/response-builder.d.ts.map +1 -0
- package/esm/adapters/serving-mode.d.ts +107 -0
- package/esm/adapters/serving-mode.d.ts.map +1 -0
- package/esm/base-template/bridge.d.ts +90 -0
- package/esm/base-template/bridge.d.ts.map +1 -0
- package/esm/base-template/default-base-template.d.ts +92 -0
- package/esm/base-template/default-base-template.d.ts.map +1 -0
- package/esm/base-template/index.d.ts +15 -0
- package/esm/base-template/index.d.ts.map +1 -0
- package/esm/base-template/index.js +1364 -0
- package/esm/base-template/polyfills.d.ts +31 -0
- package/esm/base-template/polyfills.d.ts.map +1 -0
- package/esm/base-template/theme-styles.d.ts +74 -0
- package/esm/base-template/theme-styles.d.ts.map +1 -0
- package/esm/bridge/adapters/base-adapter.d.ts +104 -0
- package/esm/bridge/adapters/base-adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/claude.adapter.d.ts +67 -0
- package/esm/bridge/adapters/claude.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/ext-apps.adapter.d.ts +143 -0
- package/esm/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/gemini.adapter.d.ts +64 -0
- package/esm/bridge/adapters/gemini.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/generic.adapter.d.ts +56 -0
- package/esm/bridge/adapters/generic.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/index.d.ts +26 -0
- package/esm/bridge/adapters/index.d.ts.map +1 -0
- package/esm/bridge/adapters/openai.adapter.d.ts +65 -0
- package/esm/bridge/adapters/openai.adapter.d.ts.map +1 -0
- package/esm/bridge/core/adapter-registry.d.ts +122 -0
- package/esm/bridge/core/adapter-registry.d.ts.map +1 -0
- package/esm/bridge/core/bridge-factory.d.ts +199 -0
- package/esm/bridge/core/bridge-factory.d.ts.map +1 -0
- package/esm/bridge/core/index.d.ts +10 -0
- package/esm/bridge/core/index.d.ts.map +1 -0
- package/esm/bridge/index.d.ts +62 -0
- package/esm/bridge/index.d.ts.map +1 -0
- package/esm/bridge/index.js +2487 -0
- package/esm/bridge/runtime/iife-generator.d.ts +62 -0
- package/esm/bridge/runtime/iife-generator.d.ts.map +1 -0
- package/esm/bridge/runtime/index.d.ts +9 -0
- package/esm/bridge/runtime/index.d.ts.map +1 -0
- package/esm/bridge/types.d.ts +386 -0
- package/esm/bridge/types.d.ts.map +1 -0
- package/esm/build/cdn-resources.d.ts +243 -0
- package/esm/build/cdn-resources.d.ts.map +1 -0
- package/esm/build/index.d.ts +295 -0
- package/esm/build/index.d.ts.map +1 -0
- package/esm/build/index.js +7021 -0
- package/esm/build/widget-manifest.d.ts +362 -0
- package/esm/build/widget-manifest.d.ts.map +1 -0
- package/esm/bundler/bundler.d.ts +208 -0
- package/esm/bundler/bundler.d.ts.map +1 -0
- package/esm/bundler/cache.d.ts +173 -0
- package/esm/bundler/cache.d.ts.map +1 -0
- package/esm/bundler/file-cache/component-builder.d.ts +167 -0
- package/esm/bundler/file-cache/component-builder.d.ts.map +1 -0
- package/esm/bundler/file-cache/hash-calculator.d.ts +155 -0
- package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -0
- package/esm/bundler/file-cache/index.d.ts +12 -0
- package/esm/bundler/file-cache/index.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/filesystem.d.ts +149 -0
- package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/index.d.ts +11 -0
- package/esm/bundler/file-cache/storage/index.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/interface.d.ts +152 -0
- package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/redis.d.ts +139 -0
- package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -0
- package/esm/bundler/index.d.ts +43 -0
- package/esm/bundler/index.d.ts.map +1 -0
- package/esm/bundler/index.js +4687 -0
- package/esm/bundler/sandbox/enclave-adapter.d.ts +121 -0
- package/esm/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
- package/esm/bundler/sandbox/executor.d.ts +14 -0
- package/esm/bundler/sandbox/executor.d.ts.map +1 -0
- package/esm/bundler/sandbox/policy.d.ts +62 -0
- package/esm/bundler/sandbox/policy.d.ts.map +1 -0
- package/esm/bundler/types.d.ts +702 -0
- package/esm/bundler/types.d.ts.map +1 -0
- package/esm/components/alert.d.ts +66 -0
- package/esm/components/alert.d.ts.map +1 -0
- package/esm/components/alert.schema.d.ts +98 -0
- package/esm/components/alert.schema.d.ts.map +1 -0
- package/esm/components/avatar.d.ts +77 -0
- package/esm/components/avatar.d.ts.map +1 -0
- package/esm/components/avatar.schema.d.ts +170 -0
- package/esm/components/avatar.schema.d.ts.map +1 -0
- package/esm/components/badge.d.ts +64 -0
- package/esm/components/badge.d.ts.map +1 -0
- package/esm/components/badge.schema.d.ts +91 -0
- package/esm/components/badge.schema.d.ts.map +1 -0
- package/esm/components/button.d.ts +100 -0
- package/esm/components/button.d.ts.map +1 -0
- package/esm/components/button.schema.d.ts +120 -0
- package/esm/components/button.schema.d.ts.map +1 -0
- package/esm/components/card.d.ts +53 -0
- package/esm/components/card.d.ts.map +1 -0
- package/esm/components/card.schema.d.ts +93 -0
- package/esm/components/card.schema.d.ts.map +1 -0
- package/esm/components/form.d.ts +212 -0
- package/esm/components/form.d.ts.map +1 -0
- package/esm/components/form.schema.d.ts +365 -0
- package/esm/components/form.schema.d.ts.map +1 -0
- package/esm/components/index.d.ts +29 -0
- package/esm/components/index.d.ts.map +1 -0
- package/esm/components/index.js +2456 -0
- package/esm/components/list.d.ts +121 -0
- package/esm/components/list.d.ts.map +1 -0
- package/esm/components/list.schema.d.ts +129 -0
- package/esm/components/list.schema.d.ts.map +1 -0
- package/esm/components/modal.d.ts +100 -0
- package/esm/components/modal.d.ts.map +1 -0
- package/esm/components/modal.schema.d.ts +151 -0
- package/esm/components/modal.schema.d.ts.map +1 -0
- package/esm/components/table.d.ts +91 -0
- package/esm/components/table.d.ts.map +1 -0
- package/esm/components/table.schema.d.ts +123 -0
- package/esm/components/table.schema.d.ts.map +1 -0
- package/esm/dependency/cdn-registry.d.ts +98 -0
- package/esm/dependency/cdn-registry.d.ts.map +1 -0
- package/esm/dependency/import-map.d.ts +186 -0
- package/esm/dependency/import-map.d.ts.map +1 -0
- package/esm/dependency/import-parser.d.ts +82 -0
- package/esm/dependency/import-parser.d.ts.map +1 -0
- package/esm/dependency/index.d.ts +17 -0
- package/esm/dependency/index.d.ts.map +1 -0
- package/esm/dependency/resolver.d.ts +164 -0
- package/esm/dependency/resolver.d.ts.map +1 -0
- package/esm/dependency/schemas.d.ts +486 -0
- package/esm/dependency/schemas.d.ts.map +1 -0
- package/esm/dependency/template-loader.d.ts +204 -0
- package/esm/dependency/template-loader.d.ts.map +1 -0
- package/esm/dependency/template-processor.d.ts +118 -0
- package/esm/dependency/template-processor.d.ts.map +1 -0
- package/esm/dependency/types.d.ts +739 -0
- package/esm/dependency/types.d.ts.map +1 -0
- package/esm/handlebars/expression-extractor.d.ts +147 -0
- package/esm/handlebars/expression-extractor.d.ts.map +1 -0
- package/esm/handlebars/helpers.d.ts +339 -0
- package/esm/handlebars/helpers.d.ts.map +1 -0
- package/esm/handlebars/index.d.ts +195 -0
- package/esm/handlebars/index.d.ts.map +1 -0
- package/esm/handlebars/index.js +587 -0
- package/esm/index.d.ts +56 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +20511 -0
- package/esm/layouts/base.d.ts +86 -0
- package/esm/layouts/base.d.ts.map +1 -0
- package/esm/layouts/index.d.ts +8 -0
- package/esm/layouts/index.d.ts.map +1 -0
- package/esm/layouts/index.js +892 -0
- package/esm/layouts/presets.d.ts +134 -0
- package/esm/layouts/presets.d.ts.map +1 -0
- package/esm/package.json +90 -0
- package/esm/pages/consent.d.ts +117 -0
- package/esm/pages/consent.d.ts.map +1 -0
- package/esm/pages/error.d.ts +101 -0
- package/esm/pages/error.d.ts.map +1 -0
- package/esm/pages/index.d.ts +9 -0
- package/esm/pages/index.d.ts.map +1 -0
- package/esm/pages/index.js +1563 -0
- package/esm/react/Alert.d.ts +102 -0
- package/esm/react/Alert.d.ts.map +1 -0
- package/esm/react/Badge.d.ts +101 -0
- package/esm/react/Badge.d.ts.map +1 -0
- package/esm/react/Button.d.ts +109 -0
- package/esm/react/Button.d.ts.map +1 -0
- package/esm/react/Card.d.ts +104 -0
- package/esm/react/Card.d.ts.map +1 -0
- package/esm/react/hooks/context.d.ts +179 -0
- package/esm/react/hooks/context.d.ts.map +1 -0
- package/esm/react/hooks/index.d.ts +42 -0
- package/esm/react/hooks/index.d.ts.map +1 -0
- package/esm/react/hooks/tools.d.ts +284 -0
- package/esm/react/hooks/tools.d.ts.map +1 -0
- package/esm/react/index.d.ts +81 -0
- package/esm/react/index.d.ts.map +1 -0
- package/esm/react/index.js +1372 -0
- package/esm/react/types.d.ts +106 -0
- package/esm/react/types.d.ts.map +1 -0
- package/esm/react/utils.d.ts +43 -0
- package/esm/react/utils.d.ts.map +1 -0
- package/esm/registry/index.d.ts +46 -0
- package/esm/registry/index.d.ts.map +1 -0
- package/esm/registry/index.js +6422 -0
- package/esm/registry/render-template.d.ts +91 -0
- package/esm/registry/render-template.d.ts.map +1 -0
- package/esm/registry/tool-ui.registry.d.ts +294 -0
- package/esm/registry/tool-ui.registry.d.ts.map +1 -0
- package/esm/registry/uri-utils.d.ts +56 -0
- package/esm/registry/uri-utils.d.ts.map +1 -0
- package/esm/render/index.d.ts +8 -0
- package/esm/render/index.d.ts.map +1 -0
- package/esm/render/index.js +45 -0
- package/esm/render/prerender.d.ts +57 -0
- package/esm/render/prerender.d.ts.map +1 -0
- package/esm/renderers/cache.d.ts +145 -0
- package/esm/renderers/cache.d.ts.map +1 -0
- package/esm/renderers/html.renderer.d.ts +123 -0
- package/esm/renderers/html.renderer.d.ts.map +1 -0
- package/esm/renderers/index.d.ts +36 -0
- package/esm/renderers/index.d.ts.map +1 -0
- package/esm/renderers/index.js +1827 -0
- package/esm/renderers/mdx.renderer.d.ts +120 -0
- package/esm/renderers/mdx.renderer.d.ts.map +1 -0
- package/esm/renderers/react.renderer.d.ts +96 -0
- package/esm/renderers/react.renderer.d.ts.map +1 -0
- package/esm/renderers/registry.d.ts +134 -0
- package/esm/renderers/registry.d.ts.map +1 -0
- package/esm/renderers/types.d.ts +342 -0
- package/esm/renderers/types.d.ts.map +1 -0
- package/esm/renderers/utils/detect.d.ts +107 -0
- package/esm/renderers/utils/detect.d.ts.map +1 -0
- package/esm/renderers/utils/hash.d.ts +40 -0
- package/esm/renderers/utils/hash.d.ts.map +1 -0
- package/esm/renderers/utils/index.d.ts +9 -0
- package/esm/renderers/utils/index.d.ts.map +1 -0
- package/esm/renderers/utils/transpiler.d.ts +89 -0
- package/esm/renderers/utils/transpiler.d.ts.map +1 -0
- package/esm/runtime/adapters/html.adapter.d.ts +59 -0
- package/esm/runtime/adapters/html.adapter.d.ts.map +1 -0
- package/esm/runtime/adapters/index.d.ts +26 -0
- package/esm/runtime/adapters/index.d.ts.map +1 -0
- package/esm/runtime/adapters/mdx.adapter.d.ts +73 -0
- package/esm/runtime/adapters/mdx.adapter.d.ts.map +1 -0
- package/esm/runtime/adapters/react.adapter.d.ts +70 -0
- package/esm/runtime/adapters/react.adapter.d.ts.map +1 -0
- package/esm/runtime/adapters/types.d.ts +95 -0
- package/esm/runtime/adapters/types.d.ts.map +1 -0
- package/esm/runtime/csp.d.ts +48 -0
- package/esm/runtime/csp.d.ts.map +1 -0
- package/esm/runtime/index.d.ts +17 -0
- package/esm/runtime/index.d.ts.map +1 -0
- package/esm/runtime/index.js +5186 -0
- package/esm/runtime/mcp-bridge.d.ts +101 -0
- package/esm/runtime/mcp-bridge.d.ts.map +1 -0
- package/esm/runtime/renderer-runtime.d.ts +133 -0
- package/esm/runtime/renderer-runtime.d.ts.map +1 -0
- package/esm/runtime/sanitizer.d.ts +172 -0
- package/esm/runtime/sanitizer.d.ts.map +1 -0
- package/esm/runtime/types.d.ts +415 -0
- package/esm/runtime/types.d.ts.map +1 -0
- package/esm/runtime/wrapper.d.ts +421 -0
- package/esm/runtime/wrapper.d.ts.map +1 -0
- package/esm/styles/index.d.ts +8 -0
- package/esm/styles/index.d.ts.map +1 -0
- package/esm/styles/index.js +171 -0
- package/esm/styles/variants.d.ts +51 -0
- package/esm/styles/variants.d.ts.map +1 -0
- package/esm/theme/cdn.d.ts +195 -0
- package/esm/theme/cdn.d.ts.map +1 -0
- package/esm/theme/index.d.ts +18 -0
- package/esm/theme/index.d.ts.map +1 -0
- package/esm/theme/index.js +700 -0
- package/esm/theme/platforms.d.ts +107 -0
- package/esm/theme/platforms.d.ts.map +1 -0
- package/esm/theme/presets/github-openai.d.ts +50 -0
- package/esm/theme/presets/github-openai.d.ts.map +1 -0
- package/esm/theme/presets/index.d.ts +11 -0
- package/esm/theme/presets/index.d.ts.map +1 -0
- package/esm/theme/theme.d.ts +396 -0
- package/esm/theme/theme.d.ts.map +1 -0
- package/esm/tool-template/builder.d.ts +213 -0
- package/esm/tool-template/builder.d.ts.map +1 -0
- package/esm/tool-template/index.d.ts +16 -0
- package/esm/tool-template/index.d.ts.map +1 -0
- package/esm/tool-template/index.js +3515 -0
- package/esm/types/index.d.ts +14 -0
- package/esm/types/index.d.ts.map +1 -0
- package/esm/types/index.js +75 -0
- package/esm/types/ui-config.d.ts +639 -0
- package/esm/types/ui-config.d.ts.map +1 -0
- package/esm/types/ui-runtime.d.ts +1007 -0
- package/esm/types/ui-runtime.d.ts.map +1 -0
- package/esm/typings/cache/cache-adapter.d.ts +125 -0
- package/esm/typings/cache/cache-adapter.d.ts.map +1 -0
- package/esm/typings/cache/index.d.ts +10 -0
- package/esm/typings/cache/index.d.ts.map +1 -0
- package/esm/typings/cache/memory-cache.d.ts +92 -0
- package/esm/typings/cache/memory-cache.d.ts.map +1 -0
- package/esm/typings/dts-parser.d.ts +90 -0
- package/esm/typings/dts-parser.d.ts.map +1 -0
- package/esm/typings/index.d.ts +48 -0
- package/esm/typings/index.d.ts.map +1 -0
- package/esm/typings/schemas.d.ts +232 -0
- package/esm/typings/schemas.d.ts.map +1 -0
- package/esm/typings/type-fetcher.d.ts +89 -0
- package/esm/typings/type-fetcher.d.ts.map +1 -0
- package/esm/typings/types.d.ts +320 -0
- package/esm/typings/types.d.ts.map +1 -0
- package/esm/universal/UniversalApp.d.ts +108 -0
- package/esm/universal/UniversalApp.d.ts.map +1 -0
- package/esm/universal/cached-runtime.d.ts +115 -0
- package/esm/universal/cached-runtime.d.ts.map +1 -0
- package/esm/universal/context.d.ts +122 -0
- package/esm/universal/context.d.ts.map +1 -0
- package/esm/universal/index.d.ts +57 -0
- package/esm/universal/index.d.ts.map +1 -0
- package/esm/universal/renderers/html.renderer.d.ts +37 -0
- package/esm/universal/renderers/html.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/index.d.ts +112 -0
- package/esm/universal/renderers/index.d.ts.map +1 -0
- package/esm/universal/renderers/markdown.renderer.d.ts +33 -0
- package/esm/universal/renderers/markdown.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/mdx.renderer.d.ts +38 -0
- package/esm/universal/renderers/mdx.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/react.renderer.d.ts +46 -0
- package/esm/universal/renderers/react.renderer.d.ts.map +1 -0
- package/esm/universal/runtime-builder.d.ts +33 -0
- package/esm/universal/runtime-builder.d.ts.map +1 -0
- package/esm/universal/store.d.ts +135 -0
- package/esm/universal/store.d.ts.map +1 -0
- package/esm/universal/types.d.ts +199 -0
- package/esm/universal/types.d.ts.map +1 -0
- package/esm/utils/escape-html.d.ts +58 -0
- package/esm/utils/escape-html.d.ts.map +1 -0
- package/esm/utils/index.d.ts +10 -0
- package/esm/utils/index.d.ts.map +1 -0
- package/esm/utils/index.js +40 -0
- package/esm/utils/safe-stringify.d.ts +30 -0
- package/esm/utils/safe-stringify.d.ts.map +1 -0
- package/esm/validation/error-box.d.ts +56 -0
- package/esm/validation/error-box.d.ts.map +1 -0
- package/esm/validation/index.d.ts +13 -0
- package/esm/validation/index.d.ts.map +1 -0
- package/esm/validation/index.js +562 -0
- package/esm/validation/schema-paths.d.ts +118 -0
- package/esm/validation/schema-paths.d.ts.map +1 -0
- package/esm/validation/template-validator.d.ts +143 -0
- package/esm/validation/template-validator.d.ts.map +1 -0
- package/esm/validation/wrapper.d.ts +97 -0
- package/esm/validation/wrapper.d.ts.map +1 -0
- package/esm/web-components/core/attribute-parser.d.ts +82 -0
- package/esm/web-components/core/attribute-parser.d.ts.map +1 -0
- package/esm/web-components/core/base-element.d.ts +197 -0
- package/esm/web-components/core/base-element.d.ts.map +1 -0
- package/esm/web-components/core/index.d.ts +9 -0
- package/esm/web-components/core/index.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-alert.d.ts +46 -0
- package/esm/web-components/elements/fmcp-alert.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-badge.d.ts +47 -0
- package/esm/web-components/elements/fmcp-badge.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-button.d.ts +117 -0
- package/esm/web-components/elements/fmcp-button.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-card.d.ts +53 -0
- package/esm/web-components/elements/fmcp-card.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-input.d.ts +96 -0
- package/esm/web-components/elements/fmcp-input.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-select.d.ts +100 -0
- package/esm/web-components/elements/fmcp-select.d.ts.map +1 -0
- package/esm/web-components/elements/index.d.ts +13 -0
- package/esm/web-components/elements/index.d.ts.map +1 -0
- package/esm/web-components/index.d.ts +50 -0
- package/esm/web-components/index.d.ts.map +1 -0
- package/esm/web-components/index.js +2048 -0
- package/esm/web-components/register.d.ts +57 -0
- package/esm/web-components/register.d.ts.map +1 -0
- package/esm/web-components/types.d.ts +122 -0
- package/esm/web-components/types.d.ts.map +1 -0
- package/esm/widgets/index.d.ts +8 -0
- package/esm/widgets/index.d.ts.map +1 -0
- package/esm/widgets/index.js +941 -0
- package/esm/widgets/progress.d.ts +133 -0
- package/esm/widgets/progress.d.ts.map +1 -0
- package/esm/widgets/resource.d.ts +163 -0
- package/esm/widgets/resource.d.ts.map +1 -0
- package/handlebars/expression-extractor.d.ts +147 -0
- package/handlebars/expression-extractor.d.ts.map +1 -0
- package/handlebars/helpers.d.ts +339 -0
- package/handlebars/helpers.d.ts.map +1 -0
- package/handlebars/index.d.ts +195 -0
- package/handlebars/index.d.ts.map +1 -0
- package/handlebars/index.js +666 -0
- package/index.d.ts +56 -0
- package/index.d.ts.map +1 -0
- package/index.js +20942 -0
- package/layouts/base.d.ts +86 -0
- package/layouts/base.d.ts.map +1 -0
- package/layouts/index.d.ts +8 -0
- package/layouts/index.d.ts.map +1 -0
- package/layouts/index.js +930 -0
- package/layouts/presets.d.ts +134 -0
- package/layouts/presets.d.ts.map +1 -0
- package/package.json +26 -85
- package/pages/consent.d.ts +117 -0
- package/pages/consent.d.ts.map +1 -0
- package/pages/error.d.ts +101 -0
- package/pages/error.d.ts.map +1 -0
- package/pages/index.d.ts +9 -0
- package/pages/index.d.ts.map +1 -0
- package/pages/index.js +1602 -0
- package/react/Alert.d.ts +102 -0
- package/react/Alert.d.ts.map +1 -0
- package/react/Badge.d.ts +101 -0
- package/react/Badge.d.ts.map +1 -0
- package/react/Button.d.ts +109 -0
- package/react/Button.d.ts.map +1 -0
- package/react/Card.d.ts +104 -0
- package/react/Card.d.ts.map +1 -0
- package/react/hooks/context.d.ts +179 -0
- package/react/hooks/context.d.ts.map +1 -0
- package/react/hooks/index.d.ts +42 -0
- package/react/hooks/index.d.ts.map +1 -0
- package/react/hooks/tools.d.ts +284 -0
- package/react/hooks/tools.d.ts.map +1 -0
- package/react/index.d.ts +81 -0
- package/react/index.d.ts.map +1 -0
- package/react/index.js +1430 -0
- package/react/types.d.ts +106 -0
- package/react/types.d.ts.map +1 -0
- package/react/utils.d.ts +43 -0
- package/react/utils.d.ts.map +1 -0
- package/registry/index.d.ts +46 -0
- package/registry/index.d.ts.map +1 -0
- package/registry/index.js +6465 -0
- package/registry/render-template.d.ts +91 -0
- package/registry/render-template.d.ts.map +1 -0
- package/registry/tool-ui.registry.d.ts +294 -0
- package/registry/tool-ui.registry.d.ts.map +1 -0
- package/registry/uri-utils.d.ts +56 -0
- package/registry/uri-utils.d.ts.map +1 -0
- package/render/index.d.ts +8 -0
- package/render/index.d.ts.map +1 -0
- package/render/index.js +77 -0
- package/render/prerender.d.ts +57 -0
- package/render/prerender.d.ts.map +1 -0
- package/renderers/cache.d.ts +145 -0
- package/renderers/cache.d.ts.map +1 -0
- package/renderers/html.renderer.d.ts +123 -0
- package/renderers/html.renderer.d.ts.map +1 -0
- package/renderers/index.d.ts +36 -0
- package/renderers/index.d.ts.map +1 -0
- package/renderers/index.js +1882 -0
- package/renderers/mdx.renderer.d.ts +120 -0
- package/renderers/mdx.renderer.d.ts.map +1 -0
- package/renderers/react.renderer.d.ts +96 -0
- package/renderers/react.renderer.d.ts.map +1 -0
- package/renderers/registry.d.ts +134 -0
- package/renderers/registry.d.ts.map +1 -0
- package/renderers/types.d.ts +342 -0
- package/renderers/types.d.ts.map +1 -0
- package/renderers/utils/detect.d.ts +107 -0
- package/renderers/utils/detect.d.ts.map +1 -0
- package/renderers/utils/hash.d.ts +40 -0
- package/renderers/utils/hash.d.ts.map +1 -0
- package/renderers/utils/index.d.ts +9 -0
- package/renderers/utils/index.d.ts.map +1 -0
- package/renderers/utils/transpiler.d.ts +89 -0
- package/renderers/utils/transpiler.d.ts.map +1 -0
- package/runtime/adapters/html.adapter.d.ts +59 -0
- package/runtime/adapters/html.adapter.d.ts.map +1 -0
- package/runtime/adapters/index.d.ts +26 -0
- package/runtime/adapters/index.d.ts.map +1 -0
- package/runtime/adapters/mdx.adapter.d.ts +73 -0
- package/runtime/adapters/mdx.adapter.d.ts.map +1 -0
- package/runtime/adapters/react.adapter.d.ts +70 -0
- package/runtime/adapters/react.adapter.d.ts.map +1 -0
- package/runtime/adapters/types.d.ts +95 -0
- package/runtime/adapters/types.d.ts.map +1 -0
- package/runtime/csp.d.ts +48 -0
- package/runtime/csp.d.ts.map +1 -0
- package/runtime/index.d.ts +17 -0
- package/runtime/index.d.ts.map +1 -0
- package/runtime/index.js +5264 -0
- package/runtime/mcp-bridge.d.ts +101 -0
- package/runtime/mcp-bridge.d.ts.map +1 -0
- package/runtime/renderer-runtime.d.ts +133 -0
- package/runtime/renderer-runtime.d.ts.map +1 -0
- package/runtime/sanitizer.d.ts +172 -0
- package/runtime/sanitizer.d.ts.map +1 -0
- package/runtime/types.d.ts +415 -0
- package/runtime/types.d.ts.map +1 -0
- package/runtime/wrapper.d.ts +421 -0
- package/runtime/wrapper.d.ts.map +1 -0
- package/styles/index.d.ts +8 -0
- package/styles/index.d.ts.map +1 -0
- package/styles/index.js +222 -0
- package/styles/variants.d.ts +51 -0
- package/styles/variants.d.ts.map +1 -0
- package/theme/cdn.d.ts +195 -0
- package/theme/cdn.d.ts.map +1 -0
- package/theme/index.d.ts +18 -0
- package/theme/index.d.ts.map +1 -0
- package/theme/index.js +757 -0
- package/theme/platforms.d.ts +107 -0
- package/theme/platforms.d.ts.map +1 -0
- package/theme/presets/github-openai.d.ts +50 -0
- package/theme/presets/github-openai.d.ts.map +1 -0
- package/theme/presets/index.d.ts +11 -0
- package/theme/presets/index.d.ts.map +1 -0
- package/theme/theme.d.ts +396 -0
- package/theme/theme.d.ts.map +1 -0
- package/tool-template/builder.d.ts +213 -0
- package/tool-template/builder.d.ts.map +1 -0
- package/tool-template/index.d.ts +16 -0
- package/tool-template/index.d.ts.map +1 -0
- package/tool-template/index.js +3559 -0
- package/types/index.d.ts +14 -0
- package/types/index.d.ts.map +1 -0
- package/types/index.js +108 -0
- package/types/ui-config.d.ts +639 -0
- package/types/ui-config.d.ts.map +1 -0
- package/types/ui-runtime.d.ts +1007 -0
- package/types/ui-runtime.d.ts.map +1 -0
- package/typings/cache/cache-adapter.d.ts +125 -0
- package/typings/cache/cache-adapter.d.ts.map +1 -0
- package/typings/cache/index.d.ts +10 -0
- package/typings/cache/index.d.ts.map +1 -0
- package/typings/cache/memory-cache.d.ts +92 -0
- package/typings/cache/memory-cache.d.ts.map +1 -0
- package/typings/dts-parser.d.ts +90 -0
- package/typings/dts-parser.d.ts.map +1 -0
- package/typings/index.d.ts +48 -0
- package/typings/index.d.ts.map +1 -0
- package/typings/schemas.d.ts +232 -0
- package/typings/schemas.d.ts.map +1 -0
- package/typings/type-fetcher.d.ts +89 -0
- package/typings/type-fetcher.d.ts.map +1 -0
- package/typings/types.d.ts +320 -0
- package/typings/types.d.ts.map +1 -0
- package/universal/UniversalApp.d.ts +108 -0
- package/universal/UniversalApp.d.ts.map +1 -0
- package/universal/cached-runtime.d.ts +115 -0
- package/universal/cached-runtime.d.ts.map +1 -0
- package/universal/context.d.ts +122 -0
- package/universal/context.d.ts.map +1 -0
- package/universal/index.d.ts +57 -0
- package/universal/index.d.ts.map +1 -0
- package/universal/renderers/html.renderer.d.ts +37 -0
- package/universal/renderers/html.renderer.d.ts.map +1 -0
- package/universal/renderers/index.d.ts +112 -0
- package/universal/renderers/index.d.ts.map +1 -0
- package/universal/renderers/markdown.renderer.d.ts +33 -0
- package/universal/renderers/markdown.renderer.d.ts.map +1 -0
- package/universal/renderers/mdx.renderer.d.ts +38 -0
- package/universal/renderers/mdx.renderer.d.ts.map +1 -0
- package/universal/renderers/react.renderer.d.ts +46 -0
- package/universal/renderers/react.renderer.d.ts.map +1 -0
- package/universal/runtime-builder.d.ts +33 -0
- package/universal/runtime-builder.d.ts.map +1 -0
- package/universal/store.d.ts +135 -0
- package/universal/store.d.ts.map +1 -0
- package/universal/types.d.ts +199 -0
- package/universal/types.d.ts.map +1 -0
- package/utils/escape-html.d.ts +58 -0
- package/utils/escape-html.d.ts.map +1 -0
- package/utils/index.d.ts +10 -0
- package/utils/index.d.ts.map +1 -0
- package/utils/index.js +70 -0
- package/utils/safe-stringify.d.ts +30 -0
- package/utils/safe-stringify.d.ts.map +1 -0
- package/validation/error-box.d.ts +56 -0
- package/validation/error-box.d.ts.map +1 -0
- package/validation/index.d.ts +13 -0
- package/validation/index.d.ts.map +1 -0
- package/validation/index.js +603 -0
- package/validation/schema-paths.d.ts +118 -0
- package/validation/schema-paths.d.ts.map +1 -0
- package/validation/template-validator.d.ts +143 -0
- package/validation/template-validator.d.ts.map +1 -0
- package/validation/wrapper.d.ts +97 -0
- package/validation/wrapper.d.ts.map +1 -0
- package/web-components/core/attribute-parser.d.ts +82 -0
- package/web-components/core/attribute-parser.d.ts.map +1 -0
- package/web-components/core/base-element.d.ts +197 -0
- package/web-components/core/base-element.d.ts.map +1 -0
- package/web-components/core/index.d.ts +9 -0
- package/web-components/core/index.d.ts.map +1 -0
- package/web-components/elements/fmcp-alert.d.ts +46 -0
- package/web-components/elements/fmcp-alert.d.ts.map +1 -0
- package/web-components/elements/fmcp-badge.d.ts +47 -0
- package/web-components/elements/fmcp-badge.d.ts.map +1 -0
- package/web-components/elements/fmcp-button.d.ts +117 -0
- package/web-components/elements/fmcp-button.d.ts.map +1 -0
- package/web-components/elements/fmcp-card.d.ts +53 -0
- package/web-components/elements/fmcp-card.d.ts.map +1 -0
- package/web-components/elements/fmcp-input.d.ts +96 -0
- package/web-components/elements/fmcp-input.d.ts.map +1 -0
- package/web-components/elements/fmcp-select.d.ts +100 -0
- package/web-components/elements/fmcp-select.d.ts.map +1 -0
- package/web-components/elements/index.d.ts +13 -0
- package/web-components/elements/index.d.ts.map +1 -0
- package/web-components/index.d.ts +50 -0
- package/web-components/index.d.ts.map +1 -0
- package/web-components/index.js +2093 -0
- package/web-components/register.d.ts +57 -0
- package/web-components/register.d.ts.map +1 -0
- package/web-components/types.d.ts +122 -0
- package/web-components/types.d.ts.map +1 -0
- package/widgets/index.d.ts +8 -0
- package/widgets/index.d.ts.map +1 -0
- package/widgets/index.js +978 -0
- package/widgets/progress.d.ts +133 -0
- package/widgets/progress.d.ts.map +1 -0
- package/widgets/resource.d.ts +163 -0
- package/widgets/resource.d.ts.map +1 -0
- package/src/adapters/index.d.ts +0 -10
- package/src/adapters/index.js +0 -18
- package/src/adapters/index.js.map +0 -1
- package/src/adapters/platform-meta.d.ts +0 -165
- package/src/adapters/platform-meta.js +0 -310
- package/src/adapters/platform-meta.js.map +0 -1
- package/src/base-template/bridge.d.ts +0 -89
- package/src/base-template/bridge.js +0 -452
- package/src/base-template/bridge.js.map +0 -1
- package/src/base-template/default-base-template.d.ts +0 -91
- package/src/base-template/default-base-template.js +0 -435
- package/src/base-template/default-base-template.js.map +0 -1
- package/src/base-template/index.d.ts +0 -14
- package/src/base-template/index.js +0 -30
- package/src/base-template/index.js.map +0 -1
- package/src/base-template/polyfills.d.ts +0 -30
- package/src/base-template/polyfills.js +0 -190
- package/src/base-template/polyfills.js.map +0 -1
- package/src/base-template/theme-styles.d.ts +0 -73
- package/src/base-template/theme-styles.js +0 -95
- package/src/base-template/theme-styles.js.map +0 -1
- package/src/bridge/adapters/base-adapter.d.ts +0 -103
- package/src/bridge/adapters/base-adapter.js +0 -314
- package/src/bridge/adapters/base-adapter.js.map +0 -1
- package/src/bridge/adapters/claude.adapter.d.ts +0 -66
- package/src/bridge/adapters/claude.adapter.js +0 -145
- package/src/bridge/adapters/claude.adapter.js.map +0 -1
- package/src/bridge/adapters/ext-apps.adapter.d.ts +0 -142
- package/src/bridge/adapters/ext-apps.adapter.js +0 -416
- package/src/bridge/adapters/ext-apps.adapter.js.map +0 -1
- package/src/bridge/adapters/gemini.adapter.d.ts +0 -63
- package/src/bridge/adapters/gemini.adapter.js +0 -160
- package/src/bridge/adapters/gemini.adapter.js.map +0 -1
- package/src/bridge/adapters/generic.adapter.d.ts +0 -55
- package/src/bridge/adapters/generic.adapter.js +0 -108
- package/src/bridge/adapters/generic.adapter.js.map +0 -1
- package/src/bridge/adapters/index.d.ts +0 -25
- package/src/bridge/adapters/index.js +0 -65
- package/src/bridge/adapters/index.js.map +0 -1
- package/src/bridge/adapters/openai.adapter.d.ts +0 -64
- package/src/bridge/adapters/openai.adapter.js +0 -194
- package/src/bridge/adapters/openai.adapter.js.map +0 -1
- package/src/bridge/core/adapter-registry.d.ts +0 -121
- package/src/bridge/core/adapter-registry.js +0 -271
- package/src/bridge/core/adapter-registry.js.map +0 -1
- package/src/bridge/core/bridge-factory.d.ts +0 -198
- package/src/bridge/core/bridge-factory.js +0 -428
- package/src/bridge/core/bridge-factory.js.map +0 -1
- package/src/bridge/core/index.d.ts +0 -9
- package/src/bridge/core/index.js +0 -22
- package/src/bridge/core/index.js.map +0 -1
- package/src/bridge/index.d.ts +0 -61
- package/src/bridge/index.js +0 -94
- package/src/bridge/index.js.map +0 -1
- package/src/bridge/runtime/iife-generator.d.ts +0 -61
- package/src/bridge/runtime/iife-generator.js +0 -940
- package/src/bridge/runtime/iife-generator.js.map +0 -1
- package/src/bridge/runtime/index.d.ts +0 -8
- package/src/bridge/runtime/index.js +0 -16
- package/src/bridge/runtime/index.js.map +0 -1
- package/src/bridge/types.d.ts +0 -385
- package/src/bridge/types.js +0 -11
- package/src/bridge/types.js.map +0 -1
- package/src/build/cdn-resources.d.ts +0 -140
- package/src/build/cdn-resources.js +0 -314
- package/src/build/cdn-resources.js.map +0 -1
- package/src/build/index.d.ts +0 -294
- package/src/build/index.js +0 -325
- package/src/build/index.js.map +0 -1
- package/src/build/widget-manifest.d.ts +0 -212
- package/src/build/widget-manifest.js +0 -652
- package/src/build/widget-manifest.js.map +0 -1
- package/src/bundler/bundler.d.ts +0 -110
- package/src/bundler/bundler.js +0 -432
- package/src/bundler/bundler.js.map +0 -1
- package/src/bundler/cache.d.ts +0 -172
- package/src/bundler/cache.js +0 -250
- package/src/bundler/cache.js.map +0 -1
- package/src/bundler/index.d.ts +0 -41
- package/src/bundler/index.js +0 -73
- package/src/bundler/index.js.map +0 -1
- package/src/bundler/sandbox/enclave-adapter.d.ts +0 -120
- package/src/bundler/sandbox/enclave-adapter.js +0 -339
- package/src/bundler/sandbox/enclave-adapter.js.map +0 -1
- package/src/bundler/sandbox/executor.d.ts +0 -13
- package/src/bundler/sandbox/executor.js +0 -22
- package/src/bundler/sandbox/executor.js.map +0 -1
- package/src/bundler/sandbox/policy.d.ts +0 -61
- package/src/bundler/sandbox/policy.js +0 -238
- package/src/bundler/sandbox/policy.js.map +0 -1
- package/src/bundler/types.d.ts +0 -347
- package/src/bundler/types.js +0 -132
- package/src/bundler/types.js.map +0 -1
- package/src/components/alert.d.ts +0 -71
- package/src/components/alert.js +0 -189
- package/src/components/alert.js.map +0 -1
- package/src/components/alert.schema.d.ts +0 -114
- package/src/components/alert.schema.js +0 -105
- package/src/components/alert.schema.js.map +0 -1
- package/src/components/avatar.d.ts +0 -76
- package/src/components/avatar.js +0 -176
- package/src/components/avatar.js.map +0 -1
- package/src/components/avatar.schema.d.ts +0 -169
- package/src/components/avatar.schema.js +0 -103
- package/src/components/avatar.schema.js.map +0 -1
- package/src/components/badge.d.ts +0 -70
- package/src/components/badge.js +0 -149
- package/src/components/badge.js.map +0 -1
- package/src/components/badge.schema.d.ts +0 -109
- package/src/components/badge.schema.js +0 -96
- package/src/components/badge.schema.js.map +0 -1
- package/src/components/button.d.ts +0 -111
- package/src/components/button.js +0 -336
- package/src/components/button.js.map +0 -1
- package/src/components/button.schema.d.ts +0 -148
- package/src/components/button.schema.js +0 -121
- package/src/components/button.schema.js.map +0 -1
- package/src/components/card.d.ts +0 -60
- package/src/components/card.js +0 -117
- package/src/components/card.js.map +0 -1
- package/src/components/card.schema.d.ts +0 -113
- package/src/components/card.schema.js +0 -98
- package/src/components/card.schema.js.map +0 -1
- package/src/components/form.d.ts +0 -239
- package/src/components/form.js +0 -420
- package/src/components/form.js.map +0 -1
- package/src/components/form.schema.d.ts +0 -441
- package/src/components/form.schema.js +0 -406
- package/src/components/form.schema.js.map +0 -1
- package/src/components/index.d.ts +0 -29
- package/src/components/index.js +0 -98
- package/src/components/index.js.map +0 -1
- package/src/components/list.d.ts +0 -127
- package/src/components/list.js +0 -279
- package/src/components/list.js.map +0 -1
- package/src/components/list.schema.d.ts +0 -134
- package/src/components/list.schema.js +0 -168
- package/src/components/list.schema.js.map +0 -1
- package/src/components/modal.d.ts +0 -111
- package/src/components/modal.js +0 -260
- package/src/components/modal.js.map +0 -1
- package/src/components/modal.schema.d.ts +0 -186
- package/src/components/modal.schema.js +0 -167
- package/src/components/modal.schema.js.map +0 -1
- package/src/components/table.d.ts +0 -105
- package/src/components/table.js +0 -283
- package/src/components/table.js.map +0 -1
- package/src/components/table.schema.d.ts +0 -159
- package/src/components/table.schema.js +0 -173
- package/src/components/table.schema.js.map +0 -1
- package/src/handlebars/helpers.d.ts +0 -348
- package/src/handlebars/helpers.js +0 -605
- package/src/handlebars/helpers.js.map +0 -1
- package/src/handlebars/index.d.ts +0 -193
- package/src/handlebars/index.js +0 -350
- package/src/handlebars/index.js.map +0 -1
- package/src/index.d.ts +0 -50
- package/src/index.js +0 -192
- package/src/index.js.map +0 -1
- package/src/layouts/base.d.ts +0 -88
- package/src/layouts/base.js +0 -227
- package/src/layouts/base.js.map +0 -1
- package/src/layouts/index.d.ts +0 -7
- package/src/layouts/index.js +0 -25
- package/src/layouts/index.js.map +0 -1
- package/src/layouts/presets.d.ts +0 -133
- package/src/layouts/presets.js +0 -277
- package/src/layouts/presets.js.map +0 -1
- package/src/pages/consent.d.ts +0 -116
- package/src/pages/consent.js +0 -218
- package/src/pages/consent.js.map +0 -1
- package/src/pages/error.d.ts +0 -100
- package/src/pages/error.js +0 -263
- package/src/pages/error.js.map +0 -1
- package/src/pages/index.d.ts +0 -8
- package/src/pages/index.js +0 -27
- package/src/pages/index.js.map +0 -1
- package/src/react/Alert.d.ts +0 -101
- package/src/react/Alert.js +0 -51
- package/src/react/Alert.js.map +0 -1
- package/src/react/Badge.d.ts +0 -100
- package/src/react/Badge.js +0 -55
- package/src/react/Badge.js.map +0 -1
- package/src/react/Button.d.ts +0 -108
- package/src/react/Button.js +0 -52
- package/src/react/Button.js.map +0 -1
- package/src/react/Card.d.ts +0 -103
- package/src/react/Card.js +0 -55
- package/src/react/Card.js.map +0 -1
- package/src/react/hooks/context.d.ts +0 -178
- package/src/react/hooks/context.js +0 -287
- package/src/react/hooks/context.js.map +0 -1
- package/src/react/hooks/index.d.ts +0 -41
- package/src/react/hooks/index.js +0 -61
- package/src/react/hooks/index.js.map +0 -1
- package/src/react/hooks/tools.d.ts +0 -283
- package/src/react/hooks/tools.js +0 -465
- package/src/react/hooks/tools.js.map +0 -1
- package/src/react/index.d.ts +0 -80
- package/src/react/index.js +0 -113
- package/src/react/index.js.map +0 -1
- package/src/react/types.d.ts +0 -105
- package/src/react/types.js +0 -12
- package/src/react/types.js.map +0 -1
- package/src/react/utils.d.ts +0 -42
- package/src/react/utils.js +0 -99
- package/src/react/utils.js.map +0 -1
- package/src/registry/index.d.ts +0 -45
- package/src/registry/index.js +0 -67
- package/src/registry/index.js.map +0 -1
- package/src/registry/render-template.d.ts +0 -86
- package/src/registry/render-template.js +0 -239
- package/src/registry/render-template.js.map +0 -1
- package/src/registry/tool-ui.registry.d.ts +0 -260
- package/src/registry/tool-ui.registry.js +0 -438
- package/src/registry/tool-ui.registry.js.map +0 -1
- package/src/registry/uri-utils.d.ts +0 -55
- package/src/registry/uri-utils.js +0 -97
- package/src/registry/uri-utils.js.map +0 -1
- package/src/render/index.d.ts +0 -7
- package/src/render/index.js +0 -14
- package/src/render/index.js.map +0 -1
- package/src/render/prerender.d.ts +0 -56
- package/src/render/prerender.js +0 -98
- package/src/render/prerender.js.map +0 -1
- package/src/renderers/cache.d.ts +0 -144
- package/src/renderers/cache.js +0 -240
- package/src/renderers/cache.js.map +0 -1
- package/src/renderers/html.renderer.d.ts +0 -122
- package/src/renderers/html.renderer.js +0 -204
- package/src/renderers/html.renderer.js.map +0 -1
- package/src/renderers/index.d.ts +0 -35
- package/src/renderers/index.js +0 -70
- package/src/renderers/index.js.map +0 -1
- package/src/renderers/mdx.renderer.d.ts +0 -119
- package/src/renderers/mdx.renderer.js +0 -305
- package/src/renderers/mdx.renderer.js.map +0 -1
- package/src/renderers/react.renderer.d.ts +0 -95
- package/src/renderers/react.renderer.js +0 -260
- package/src/renderers/react.renderer.js.map +0 -1
- package/src/renderers/registry.d.ts +0 -133
- package/src/renderers/registry.js +0 -232
- package/src/renderers/registry.js.map +0 -1
- package/src/renderers/types.d.ts +0 -341
- package/src/renderers/types.js +0 -9
- package/src/renderers/types.js.map +0 -1
- package/src/renderers/utils/detect.d.ts +0 -106
- package/src/renderers/utils/detect.js +0 -267
- package/src/renderers/utils/detect.js.map +0 -1
- package/src/renderers/utils/hash.d.ts +0 -39
- package/src/renderers/utils/hash.js +0 -75
- package/src/renderers/utils/hash.js.map +0 -1
- package/src/renderers/utils/index.d.ts +0 -8
- package/src/renderers/utils/index.js +0 -28
- package/src/renderers/utils/index.js.map +0 -1
- package/src/renderers/utils/transpiler.d.ts +0 -88
- package/src/renderers/utils/transpiler.js +0 -215
- package/src/renderers/utils/transpiler.js.map +0 -1
- package/src/runtime/adapters/html.adapter.d.ts +0 -58
- package/src/runtime/adapters/html.adapter.js +0 -131
- package/src/runtime/adapters/html.adapter.js.map +0 -1
- package/src/runtime/adapters/index.d.ts +0 -25
- package/src/runtime/adapters/index.js +0 -54
- package/src/runtime/adapters/index.js.map +0 -1
- package/src/runtime/adapters/mdx.adapter.d.ts +0 -72
- package/src/runtime/adapters/mdx.adapter.js +0 -241
- package/src/runtime/adapters/mdx.adapter.js.map +0 -1
- package/src/runtime/adapters/react.adapter.d.ts +0 -69
- package/src/runtime/adapters/react.adapter.js +0 -245
- package/src/runtime/adapters/react.adapter.js.map +0 -1
- package/src/runtime/adapters/types.d.ts +0 -94
- package/src/runtime/adapters/types.js +0 -11
- package/src/runtime/adapters/types.js.map +0 -1
- package/src/runtime/csp.d.ts +0 -37
- package/src/runtime/csp.js +0 -140
- package/src/runtime/csp.js.map +0 -1
- package/src/runtime/index.d.ts +0 -16
- package/src/runtime/index.js +0 -72
- package/src/runtime/index.js.map +0 -1
- package/src/runtime/mcp-bridge.d.ts +0 -100
- package/src/runtime/mcp-bridge.js +0 -581
- package/src/runtime/mcp-bridge.js.map +0 -1
- package/src/runtime/renderer-runtime.d.ts +0 -132
- package/src/runtime/renderer-runtime.js +0 -389
- package/src/runtime/renderer-runtime.js.map +0 -1
- package/src/runtime/sanitizer.d.ts +0 -171
- package/src/runtime/sanitizer.js +0 -318
- package/src/runtime/sanitizer.js.map +0 -1
- package/src/runtime/types.d.ts +0 -414
- package/src/runtime/types.js +0 -12
- package/src/runtime/types.js.map +0 -1
- package/src/runtime/wrapper.d.ts +0 -375
- package/src/runtime/wrapper.js +0 -1793
- package/src/runtime/wrapper.js.map +0 -1
- package/src/styles/index.d.ts +0 -7
- package/src/styles/index.js +0 -11
- package/src/styles/index.js.map +0 -1
- package/src/styles/variants.d.ts +0 -50
- package/src/styles/variants.js +0 -175
- package/src/styles/variants.js.map +0 -1
- package/src/theme/cdn.d.ts +0 -194
- package/src/theme/cdn.js +0 -375
- package/src/theme/cdn.js.map +0 -1
- package/src/theme/index.d.ts +0 -17
- package/src/theme/index.js +0 -57
- package/src/theme/index.js.map +0 -1
- package/src/theme/platforms.d.ts +0 -106
- package/src/theme/platforms.js +0 -161
- package/src/theme/platforms.js.map +0 -1
- package/src/theme/presets/github-openai.d.ts +0 -49
- package/src/theme/presets/github-openai.js +0 -189
- package/src/theme/presets/github-openai.js.map +0 -1
- package/src/theme/presets/index.d.ts +0 -10
- package/src/theme/presets/index.js +0 -17
- package/src/theme/presets/index.js.map +0 -1
- package/src/theme/theme.d.ts +0 -395
- package/src/theme/theme.js +0 -332
- package/src/theme/theme.js.map +0 -1
- package/src/tool-template/builder.d.ts +0 -212
- package/src/tool-template/builder.js +0 -397
- package/src/tool-template/builder.js.map +0 -1
- package/src/tool-template/index.d.ts +0 -15
- package/src/tool-template/index.js +0 -38
- package/src/tool-template/index.js.map +0 -1
- package/src/types/index.d.ts +0 -13
- package/src/types/index.js +0 -26
- package/src/types/index.js.map +0 -1
- package/src/types/ui-config.d.ts +0 -357
- package/src/types/ui-config.js +0 -12
- package/src/types/ui-config.js.map +0 -1
- package/src/types/ui-runtime.d.ts +0 -965
- package/src/types/ui-runtime.js +0 -117
- package/src/types/ui-runtime.js.map +0 -1
- package/src/validation/error-box.d.ts +0 -55
- package/src/validation/error-box.js +0 -75
- package/src/validation/error-box.js.map +0 -1
- package/src/validation/index.d.ts +0 -12
- package/src/validation/index.js +0 -21
- package/src/validation/index.js.map +0 -1
- package/src/validation/wrapper.d.ts +0 -96
- package/src/validation/wrapper.js +0 -117
- package/src/validation/wrapper.js.map +0 -1
- package/src/web-components/core/attribute-parser.d.ts +0 -85
- package/src/web-components/core/attribute-parser.js +0 -189
- package/src/web-components/core/attribute-parser.js.map +0 -1
- package/src/web-components/core/base-element.d.ts +0 -197
- package/src/web-components/core/base-element.js +0 -289
- package/src/web-components/core/base-element.js.map +0 -1
- package/src/web-components/core/index.d.ts +0 -8
- package/src/web-components/core/index.js +0 -18
- package/src/web-components/core/index.js.map +0 -1
- package/src/web-components/elements/fmcp-alert.d.ts +0 -45
- package/src/web-components/elements/fmcp-alert.js +0 -93
- package/src/web-components/elements/fmcp-alert.js.map +0 -1
- package/src/web-components/elements/fmcp-badge.d.ts +0 -46
- package/src/web-components/elements/fmcp-badge.js +0 -99
- package/src/web-components/elements/fmcp-badge.js.map +0 -1
- package/src/web-components/elements/fmcp-button.d.ts +0 -124
- package/src/web-components/elements/fmcp-button.js +0 -233
- package/src/web-components/elements/fmcp-button.js.map +0 -1
- package/src/web-components/elements/fmcp-card.d.ts +0 -52
- package/src/web-components/elements/fmcp-card.js +0 -115
- package/src/web-components/elements/fmcp-card.js.map +0 -1
- package/src/web-components/elements/fmcp-input.d.ts +0 -95
- package/src/web-components/elements/fmcp-input.js +0 -248
- package/src/web-components/elements/fmcp-input.js.map +0 -1
- package/src/web-components/elements/fmcp-select.d.ts +0 -99
- package/src/web-components/elements/fmcp-select.js +0 -243
- package/src/web-components/elements/fmcp-select.js.map +0 -1
- package/src/web-components/elements/index.d.ts +0 -12
- package/src/web-components/elements/index.js +0 -34
- package/src/web-components/elements/index.js.map +0 -1
- package/src/web-components/index.d.ts +0 -49
- package/src/web-components/index.js +0 -75
- package/src/web-components/index.js.map +0 -1
- package/src/web-components/register.d.ts +0 -56
- package/src/web-components/register.js +0 -80
- package/src/web-components/register.js.map +0 -1
- package/src/web-components/types.d.ts +0 -121
- package/src/web-components/types.js +0 -25
- package/src/web-components/types.js.map +0 -1
- package/src/widgets/index.d.ts +0 -7
- package/src/widgets/index.js +0 -24
- package/src/widgets/index.js.map +0 -1
- package/src/widgets/progress.d.ts +0 -132
- package/src/widgets/progress.js +0 -303
- package/src/widgets/progress.js.map +0 -1
- package/src/widgets/resource.d.ts +0 -162
- package/src/widgets/resource.js +0 -340
- package/src/widgets/resource.js.map +0 -1
package/src/theme/theme.js
DELETED
|
@@ -1,332 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @file theme.ts
|
|
4
|
-
* @description Theme Configuration System for FrontMCP UI.
|
|
5
|
-
*
|
|
6
|
-
* Provides a comprehensive theming system with:
|
|
7
|
-
* - Color palettes with semantic naming
|
|
8
|
-
* - Typography configuration
|
|
9
|
-
* - Spacing and sizing
|
|
10
|
-
* - Component-specific tokens
|
|
11
|
-
* - Customizable CDN URLs for fonts, icons, and scripts
|
|
12
|
-
* - Dark mode support
|
|
13
|
-
* - Tailwind CSS v4 @theme integration
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* import { createTheme, DEFAULT_THEME } from '@frontmcp/ui';
|
|
18
|
-
*
|
|
19
|
-
* // Use the default GitHub/OpenAI theme
|
|
20
|
-
* const theme = DEFAULT_THEME;
|
|
21
|
-
*
|
|
22
|
-
* // Or create a custom theme
|
|
23
|
-
* const customTheme = createTheme({
|
|
24
|
-
* colors: {
|
|
25
|
-
* semantic: { primary: '#0969da' },
|
|
26
|
-
* },
|
|
27
|
-
* cdn: {
|
|
28
|
-
* fonts: {
|
|
29
|
-
* preconnect: ['https://fonts.googleapis.com'],
|
|
30
|
-
* stylesheets: ['https://fonts.googleapis.com/css2?family=Roboto&display=swap'],
|
|
31
|
-
* },
|
|
32
|
-
* },
|
|
33
|
-
* });
|
|
34
|
-
* ```
|
|
35
|
-
*
|
|
36
|
-
* @module @frontmcp/ui/theme
|
|
37
|
-
*/
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.DEFAULT_THEME = exports.GITHUB_OPENAI_THEME = void 0;
|
|
40
|
-
exports.mergeThemes = mergeThemes;
|
|
41
|
-
exports.createTheme = createTheme;
|
|
42
|
-
exports.buildThemeCss = buildThemeCss;
|
|
43
|
-
exports.buildStyleBlock = buildStyleBlock;
|
|
44
|
-
// Import default theme from presets (must be at top, used in createTheme)
|
|
45
|
-
const presets_1 = require("./presets");
|
|
46
|
-
// ============================================
|
|
47
|
-
// Default Theme (GitHub/OpenAI Style)
|
|
48
|
-
// ============================================
|
|
49
|
-
/**
|
|
50
|
-
* Default FrontMCP theme - GitHub/OpenAI inspired gray-black aesthetic
|
|
51
|
-
*
|
|
52
|
-
* Re-exported from presets for convenience. The default theme features:
|
|
53
|
-
* - Monochromatic gray-black color palette
|
|
54
|
-
* - System UI font stack
|
|
55
|
-
* - Smaller border radii (GitHub style)
|
|
56
|
-
* - Subtle shadows with gray tones
|
|
57
|
-
*
|
|
58
|
-
* @see ./presets/github-openai.ts for full theme definition
|
|
59
|
-
*/
|
|
60
|
-
exports.GITHUB_OPENAI_THEME = presets_1.GITHUB_OPENAI_THEME;
|
|
61
|
-
exports.DEFAULT_THEME = presets_1.DEFAULT_THEME;
|
|
62
|
-
// ============================================
|
|
63
|
-
// Theme Builder Utilities
|
|
64
|
-
// ============================================
|
|
65
|
-
/**
|
|
66
|
-
* Deep merge two theme configurations (internal helper without dark handling)
|
|
67
|
-
* Accepts DeepPartial<ThemeConfig> for both base and override to safely handle partial nested properties
|
|
68
|
-
* Note: This function assumes at least one of base/override provides required values (typically DEFAULT_THEME)
|
|
69
|
-
*/
|
|
70
|
-
function mergeThemesCore(base, override) {
|
|
71
|
-
// Provide safe defaults for required nested properties
|
|
72
|
-
const baseColors = base.colors ?? { semantic: { primary: '#24292f' } };
|
|
73
|
-
// Filter out undefined values from arrays
|
|
74
|
-
const filterStrings = (arr) => arr.filter((s) => s !== undefined);
|
|
75
|
-
return {
|
|
76
|
-
...base,
|
|
77
|
-
...override,
|
|
78
|
-
colors: {
|
|
79
|
-
...baseColors,
|
|
80
|
-
...override.colors,
|
|
81
|
-
semantic: { ...baseColors.semantic, ...override.colors?.semantic },
|
|
82
|
-
surface: { ...baseColors.surface, ...override.colors?.surface },
|
|
83
|
-
text: { ...baseColors.text, ...override.colors?.text },
|
|
84
|
-
border: { ...baseColors.border, ...override.colors?.border },
|
|
85
|
-
custom: { ...baseColors.custom, ...override.colors?.custom },
|
|
86
|
-
},
|
|
87
|
-
typography: {
|
|
88
|
-
...base.typography,
|
|
89
|
-
...override.typography,
|
|
90
|
-
families: { ...base.typography?.families, ...override.typography?.families },
|
|
91
|
-
sizes: { ...base.typography?.sizes, ...override.typography?.sizes },
|
|
92
|
-
weights: { ...base.typography?.weights, ...override.typography?.weights },
|
|
93
|
-
lineHeight: { ...base.typography?.lineHeight, ...override.typography?.lineHeight },
|
|
94
|
-
},
|
|
95
|
-
spacing: { ...base.spacing, ...override.spacing },
|
|
96
|
-
radius: { ...base.radius, ...override.radius },
|
|
97
|
-
shadows: { ...base.shadows, ...override.shadows },
|
|
98
|
-
components: {
|
|
99
|
-
...base.components,
|
|
100
|
-
...override.components,
|
|
101
|
-
button: { ...base.components?.button, ...override.components?.button },
|
|
102
|
-
card: { ...base.components?.card, ...override.components?.card },
|
|
103
|
-
input: { ...base.components?.input, ...override.components?.input },
|
|
104
|
-
},
|
|
105
|
-
cdn: {
|
|
106
|
-
...base.cdn,
|
|
107
|
-
...override.cdn,
|
|
108
|
-
fonts: {
|
|
109
|
-
// Concatenate then dedupe so base entries are preserved without duplicates
|
|
110
|
-
preconnect: filterStrings(Array.from(new Set([...(base.cdn?.fonts?.preconnect ?? []), ...(override.cdn?.fonts?.preconnect ?? [])]))),
|
|
111
|
-
stylesheets: filterStrings(Array.from(new Set([...(base.cdn?.fonts?.stylesheets ?? []), ...(override.cdn?.fonts?.stylesheets ?? [])]))),
|
|
112
|
-
},
|
|
113
|
-
icons: {
|
|
114
|
-
...base.cdn?.icons,
|
|
115
|
-
...override.cdn?.icons,
|
|
116
|
-
// Deep merge script to preserve integrity when only url is overridden
|
|
117
|
-
script: (override.cdn?.icons?.script
|
|
118
|
-
? { ...base.cdn?.icons?.script, ...override.cdn?.icons?.script }
|
|
119
|
-
: base.cdn?.icons?.script),
|
|
120
|
-
},
|
|
121
|
-
scripts: {
|
|
122
|
-
// tailwind is a simple string, just use override or base
|
|
123
|
-
tailwind: override.cdn?.scripts?.tailwind ?? base.cdn?.scripts?.tailwind,
|
|
124
|
-
// Deep merge htmx/alpine to preserve integrity when only url is overridden
|
|
125
|
-
htmx: (override.cdn?.scripts?.htmx
|
|
126
|
-
? { ...base.cdn?.scripts?.htmx, ...override.cdn?.scripts?.htmx }
|
|
127
|
-
: base.cdn?.scripts?.htmx),
|
|
128
|
-
alpine: (override.cdn?.scripts?.alpine
|
|
129
|
-
? { ...base.cdn?.scripts?.alpine, ...override.cdn?.scripts?.alpine }
|
|
130
|
-
: base.cdn?.scripts?.alpine),
|
|
131
|
-
},
|
|
132
|
-
},
|
|
133
|
-
customVars: { ...base.customVars, ...override.customVars },
|
|
134
|
-
customCss: [base.customCss, override.customCss].filter(Boolean).join('\n'),
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Deep merge two theme configurations
|
|
139
|
-
*
|
|
140
|
-
* @remarks
|
|
141
|
-
* Dark variant handling:
|
|
142
|
-
* - When override.dark is provided, it's merged on top of base.dark (if present) or base
|
|
143
|
-
* - The resulting dark variant never contains a nested .dark property
|
|
144
|
-
* - This prevents infinite recursion and ensures clean dark theme composition
|
|
145
|
-
*/
|
|
146
|
-
function mergeThemes(base, override) {
|
|
147
|
-
// Merge the main (light) theme properties
|
|
148
|
-
const merged = mergeThemesCore(base, override);
|
|
149
|
-
// Handle dark variant separately to avoid nested .dark properties
|
|
150
|
-
let darkVariant;
|
|
151
|
-
if (override.dark !== undefined) {
|
|
152
|
-
// Merge override.dark on top of base.dark (or base if no base.dark)
|
|
153
|
-
// darkBase may be partial (from base.dark) - mergeThemesCore handles this safely
|
|
154
|
-
const darkBase = base.dark ?? base;
|
|
155
|
-
// Strip any .dark from override.dark to prevent nesting
|
|
156
|
-
const { dark: _nestedDark, ...overrideDarkWithoutNested } = override.dark;
|
|
157
|
-
darkVariant = mergeThemesCore(darkBase, overrideDarkWithoutNested);
|
|
158
|
-
}
|
|
159
|
-
else if (base.dark !== undefined) {
|
|
160
|
-
// Preserve base.dark, but strip any nested .dark property
|
|
161
|
-
const { dark: _nestedDark, ...baseDarkWithoutNested } = base.dark;
|
|
162
|
-
darkVariant = baseDarkWithoutNested;
|
|
163
|
-
}
|
|
164
|
-
return {
|
|
165
|
-
...merged,
|
|
166
|
-
dark: darkVariant,
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Create a theme by extending the default theme
|
|
171
|
-
*/
|
|
172
|
-
function createTheme(overrides) {
|
|
173
|
-
return mergeThemes(exports.DEFAULT_THEME, overrides);
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Emit color scale CSS variables
|
|
177
|
-
*/
|
|
178
|
-
function emitColorScale(lines, name, scale) {
|
|
179
|
-
for (const [shade, value] of Object.entries(scale)) {
|
|
180
|
-
if (value)
|
|
181
|
-
lines.push(`--color-${name}-${shade}: ${value};`);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Build Tailwind @theme CSS from theme configuration
|
|
186
|
-
*/
|
|
187
|
-
function buildThemeCss(theme) {
|
|
188
|
-
const lines = [];
|
|
189
|
-
// Colors - semantic
|
|
190
|
-
const semantic = theme.colors.semantic;
|
|
191
|
-
if (typeof semantic.primary === 'string') {
|
|
192
|
-
lines.push(`--color-primary: ${semantic.primary};`);
|
|
193
|
-
}
|
|
194
|
-
else if (semantic.primary) {
|
|
195
|
-
emitColorScale(lines, 'primary', semantic.primary);
|
|
196
|
-
}
|
|
197
|
-
if (semantic.secondary) {
|
|
198
|
-
if (typeof semantic.secondary === 'string') {
|
|
199
|
-
lines.push(`--color-secondary: ${semantic.secondary};`);
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
202
|
-
emitColorScale(lines, 'secondary', semantic.secondary);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
if (semantic.accent) {
|
|
206
|
-
if (typeof semantic.accent === 'string') {
|
|
207
|
-
lines.push(`--color-accent: ${semantic.accent};`);
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
emitColorScale(lines, 'accent', semantic.accent);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
if (semantic.neutral) {
|
|
214
|
-
if (typeof semantic.neutral === 'string') {
|
|
215
|
-
lines.push(`--color-neutral: ${semantic.neutral};`);
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
emitColorScale(lines, 'neutral', semantic.neutral);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
if (semantic.success)
|
|
222
|
-
lines.push(`--color-success: ${semantic.success};`);
|
|
223
|
-
if (semantic.warning)
|
|
224
|
-
lines.push(`--color-warning: ${semantic.warning};`);
|
|
225
|
-
if (semantic.danger)
|
|
226
|
-
lines.push(`--color-danger: ${semantic.danger};`);
|
|
227
|
-
if (semantic.info)
|
|
228
|
-
lines.push(`--color-info: ${semantic.info};`);
|
|
229
|
-
// Colors - surface
|
|
230
|
-
const surface = theme.colors.surface;
|
|
231
|
-
if (surface?.background)
|
|
232
|
-
lines.push(`--color-background: ${surface.background};`);
|
|
233
|
-
if (surface?.surface)
|
|
234
|
-
lines.push(`--color-surface: ${surface.surface};`);
|
|
235
|
-
if (surface?.elevated)
|
|
236
|
-
lines.push(`--color-elevated: ${surface.elevated};`);
|
|
237
|
-
if (surface?.overlay)
|
|
238
|
-
lines.push(`--color-overlay: ${surface.overlay};`);
|
|
239
|
-
// Colors - text
|
|
240
|
-
const text = theme.colors.text;
|
|
241
|
-
if (text?.primary)
|
|
242
|
-
lines.push(`--color-text-primary: ${text.primary};`);
|
|
243
|
-
if (text?.secondary)
|
|
244
|
-
lines.push(`--color-text-secondary: ${text.secondary};`);
|
|
245
|
-
if (text?.disabled)
|
|
246
|
-
lines.push(`--color-text-disabled: ${text.disabled};`);
|
|
247
|
-
if (text?.inverse)
|
|
248
|
-
lines.push(`--color-text-inverse: ${text.inverse};`);
|
|
249
|
-
if (text?.link)
|
|
250
|
-
lines.push(`--color-text-link: ${text.link};`);
|
|
251
|
-
// Colors - border
|
|
252
|
-
const border = theme.colors.border;
|
|
253
|
-
if (border?.default)
|
|
254
|
-
lines.push(`--color-border: ${border.default};`);
|
|
255
|
-
if (border?.hover)
|
|
256
|
-
lines.push(`--color-border-hover: ${border.hover};`);
|
|
257
|
-
if (border?.focus)
|
|
258
|
-
lines.push(`--color-border-focus: ${border.focus};`);
|
|
259
|
-
if (border?.divider)
|
|
260
|
-
lines.push(`--color-divider: ${border.divider};`);
|
|
261
|
-
// Colors - custom
|
|
262
|
-
if (theme.colors.custom) {
|
|
263
|
-
for (const [key, value] of Object.entries(theme.colors.custom)) {
|
|
264
|
-
lines.push(`--color-${key}: ${value};`);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
// Typography
|
|
268
|
-
const typography = theme.typography;
|
|
269
|
-
if (typography?.families?.sans)
|
|
270
|
-
lines.push(`--font-sans: ${typography.families.sans};`);
|
|
271
|
-
if (typography?.families?.serif)
|
|
272
|
-
lines.push(`--font-serif: ${typography.families.serif};`);
|
|
273
|
-
if (typography?.families?.mono)
|
|
274
|
-
lines.push(`--font-mono: ${typography.families.mono};`);
|
|
275
|
-
if (typography?.families?.display)
|
|
276
|
-
lines.push(`--font-display: ${typography.families.display};`);
|
|
277
|
-
// Radius
|
|
278
|
-
const radius = theme.radius;
|
|
279
|
-
if (radius?.none)
|
|
280
|
-
lines.push(`--radius-none: ${radius.none};`);
|
|
281
|
-
if (radius?.sm)
|
|
282
|
-
lines.push(`--radius-sm: ${radius.sm};`);
|
|
283
|
-
if (radius?.md)
|
|
284
|
-
lines.push(`--radius-md: ${radius.md};`);
|
|
285
|
-
if (radius?.lg)
|
|
286
|
-
lines.push(`--radius-lg: ${radius.lg};`);
|
|
287
|
-
if (radius?.xl)
|
|
288
|
-
lines.push(`--radius-xl: ${radius.xl};`);
|
|
289
|
-
if (radius?.['2xl'])
|
|
290
|
-
lines.push(`--radius-2xl: ${radius['2xl']};`);
|
|
291
|
-
if (radius?.full)
|
|
292
|
-
lines.push(`--radius-full: ${radius.full};`);
|
|
293
|
-
// Custom vars
|
|
294
|
-
if (theme.customVars) {
|
|
295
|
-
for (const [key, value] of Object.entries(theme.customVars)) {
|
|
296
|
-
lines.push(`${key}: ${value};`);
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
return lines.join('\n ');
|
|
300
|
-
}
|
|
301
|
-
/**
|
|
302
|
-
* Build complete style block with @theme and custom CSS
|
|
303
|
-
*
|
|
304
|
-
* @remarks
|
|
305
|
-
* **Security/Trust Model:**
|
|
306
|
-
* The `theme.customCss` property is injected directly into a `<style>` tag without
|
|
307
|
-
* sanitization. This is intentional - CSS customization requires full CSS syntax support.
|
|
308
|
-
*
|
|
309
|
-
* **Trust assumptions:**
|
|
310
|
-
* - Theme configurations should only come from trusted sources (developer-defined themes)
|
|
311
|
-
* - Never pass user-provided input directly to `customCss`
|
|
312
|
-
* - If you need user-customizable styles, validate/sanitize them before including in a theme
|
|
313
|
-
*
|
|
314
|
-
* **Why no sanitization:**
|
|
315
|
-
* - CSS sanitization is complex and often breaks legitimate styles
|
|
316
|
-
* - The theme system is designed for developer use, not end-user customization
|
|
317
|
-
* - Developers creating themes are trusted to provide safe CSS
|
|
318
|
-
*
|
|
319
|
-
* @param theme - Theme configuration with optional customCss
|
|
320
|
-
* @returns HTML style block with Tailwind @theme directive
|
|
321
|
-
*/
|
|
322
|
-
function buildStyleBlock(theme) {
|
|
323
|
-
const themeCss = buildThemeCss(theme);
|
|
324
|
-
const customCss = theme.customCss || '';
|
|
325
|
-
return `<style type="text/tailwindcss">
|
|
326
|
-
@theme {
|
|
327
|
-
${themeCss}
|
|
328
|
-
}
|
|
329
|
-
${customCss}
|
|
330
|
-
</style>`;
|
|
331
|
-
}
|
|
332
|
-
//# sourceMappingURL=theme.js.map
|
package/src/theme/theme.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/theme/theme.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @file theme.ts\n * @description Theme Configuration System for FrontMCP UI.\n *\n * Provides a comprehensive theming system with:\n * - Color palettes with semantic naming\n * - Typography configuration\n * - Spacing and sizing\n * - Component-specific tokens\n * - Customizable CDN URLs for fonts, icons, and scripts\n * - Dark mode support\n * - Tailwind CSS v4 @theme integration\n *\n * @example\n * ```typescript\n * import { createTheme, DEFAULT_THEME } from '@frontmcp/ui';\n *\n * // Use the default GitHub/OpenAI theme\n * const theme = DEFAULT_THEME;\n *\n * // Or create a custom theme\n * const customTheme = createTheme({\n * colors: {\n * semantic: { primary: '#0969da' },\n * },\n * cdn: {\n * fonts: {\n * preconnect: ['https://fonts.googleapis.com'],\n * stylesheets: ['https://fonts.googleapis.com/css2?family=Roboto&display=swap'],\n * },\n * },\n * });\n * ```\n *\n * @module @frontmcp/ui/theme\n */\n\n// Import default theme from presets (must be at top, used in createTheme)\nimport { DEFAULT_THEME as _DEFAULT_THEME, GITHUB_OPENAI_THEME as _GITHUB_OPENAI_THEME } from './presets';\n\n// ============================================\n// Utility Types\n// ============================================\n\n/**\n * Deep partial type - makes all properties and nested properties optional\n */\nexport type DeepPartial<T> = T extends object\n ? {\n [P in keyof T]?: DeepPartial<T[P]>;\n }\n : T;\n\n// ============================================\n// Color Types\n// ============================================\n\n/**\n * Semantic color scale (50-950)\n */\nexport interface ColorScale {\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n 950?: string;\n}\n\n/**\n * Semantic color tokens\n */\nexport interface SemanticColors {\n /** Primary brand color */\n primary: string | ColorScale;\n /** Secondary brand color */\n secondary?: string | ColorScale;\n /** Accent/highlight color */\n accent?: string | ColorScale;\n /** Neutral/gray tones */\n neutral?: string | ColorScale;\n /** Success state */\n success?: string;\n /** Warning state */\n warning?: string;\n /** Error/danger state */\n danger?: string;\n /** Info state */\n info?: string;\n}\n\n/**\n * Surface colors for backgrounds\n */\nexport interface SurfaceColors {\n /** Page background */\n background?: string;\n /** Card/panel background */\n surface?: string;\n /** Elevated surface (modal, dropdown) */\n elevated?: string;\n /** Overlay/backdrop */\n overlay?: string;\n}\n\n/**\n * Text colors\n */\nexport interface TextColors {\n /** Primary text */\n primary?: string;\n /** Secondary/muted text */\n secondary?: string;\n /** Disabled text */\n disabled?: string;\n /** Inverse text (on dark backgrounds) */\n inverse?: string;\n /** Link text */\n link?: string;\n}\n\n/**\n * Border colors\n */\nexport interface BorderColors {\n /** Default border */\n default?: string;\n /** Hover border */\n hover?: string;\n /** Focus border */\n focus?: string;\n /** Divider lines */\n divider?: string;\n}\n\n/**\n * Complete color configuration\n */\nexport interface ThemeColors {\n /** Semantic colors */\n semantic: SemanticColors;\n /** Surface/background colors */\n surface?: SurfaceColors;\n /** Text colors */\n text?: TextColors;\n /** Border colors */\n border?: BorderColors;\n /** Additional custom colors */\n custom?: Record<string, string>;\n}\n\n// ============================================\n// Typography Types\n// ============================================\n\n/**\n * Font family configuration\n */\nexport interface FontFamilies {\n /** Sans-serif (default) */\n sans?: string;\n /** Serif */\n serif?: string;\n /** Monospace */\n mono?: string;\n /** Display/heading */\n display?: string;\n}\n\n/**\n * Font size configuration\n */\nexport interface FontSizes {\n xs?: string;\n sm?: string;\n base?: string;\n lg?: string;\n xl?: string;\n '2xl'?: string;\n '3xl'?: string;\n '4xl'?: string;\n '5xl'?: string;\n}\n\n/**\n * Font weight configuration\n */\nexport interface FontWeights {\n normal?: string;\n medium?: string;\n semibold?: string;\n bold?: string;\n}\n\n/**\n * Complete typography configuration\n */\nexport interface ThemeTypography {\n families?: FontFamilies;\n sizes?: FontSizes;\n weights?: FontWeights;\n lineHeight?: {\n tight?: string;\n normal?: string;\n relaxed?: string;\n };\n}\n\n// ============================================\n// Spacing & Sizing Types\n// ============================================\n\n/**\n * Spacing scale\n */\nexport interface ThemeSpacing {\n px?: string;\n 0?: string;\n 1?: string;\n 2?: string;\n 3?: string;\n 4?: string;\n 5?: string;\n 6?: string;\n 8?: string;\n 10?: string;\n 12?: string;\n 16?: string;\n 20?: string;\n 24?: string;\n}\n\n/**\n * Border radius\n */\nexport interface ThemeRadius {\n none?: string;\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n '2xl'?: string;\n full?: string;\n}\n\n/**\n * Shadow configuration\n */\nexport interface ThemeShadows {\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n}\n\n// ============================================\n// Component Tokens\n// ============================================\n\n/**\n * Button component tokens\n */\nexport interface ButtonTokens {\n radius?: string;\n paddingX?: string;\n paddingY?: string;\n fontSize?: string;\n fontWeight?: string;\n}\n\n/**\n * Card component tokens\n */\nexport interface CardTokens {\n radius?: string;\n padding?: string;\n shadow?: string;\n borderWidth?: string;\n}\n\n/**\n * Input component tokens\n */\nexport interface InputTokens {\n radius?: string;\n paddingX?: string;\n paddingY?: string;\n borderWidth?: string;\n focusRingWidth?: string;\n}\n\n/**\n * Component-specific tokens\n */\nexport interface ComponentTokens {\n button?: ButtonTokens;\n card?: CardTokens;\n input?: InputTokens;\n}\n\n// ============================================\n// CDN Configuration Types\n// ============================================\n\n/**\n * Script resource with optional integrity hash\n */\nexport interface CdnScriptResource {\n /** URL to the script */\n url: string;\n /** Subresource integrity hash */\n integrity?: string;\n}\n\n/**\n * Font CDN configuration\n */\nexport interface ThemeCdnFonts {\n /** Preconnect URLs for font providers */\n preconnect?: string[];\n /** Font stylesheet URLs */\n stylesheets?: string[];\n}\n\n/**\n * Icon CDN configuration\n */\nexport interface ThemeCdnIcons {\n /** Icon library script */\n script?: CdnScriptResource;\n}\n\n/**\n * Scripts CDN configuration\n */\nexport interface ThemeCdnScripts {\n /** Tailwind CSS Browser CDN URL */\n tailwind?: string;\n /** HTMX script resource */\n htmx?: CdnScriptResource;\n /** Alpine.js script resource */\n alpine?: CdnScriptResource;\n}\n\n/**\n * Complete CDN configuration for theme\n *\n * Allows customizing all external resource URLs used by the theme.\n * Useful for:\n * - Using private CDN mirrors\n * - Self-hosting resources\n * - Compliance with CSP policies\n * - Using different font families\n */\nexport interface ThemeCdnConfig {\n /** Font configuration */\n fonts?: ThemeCdnFonts;\n /** Icon library configuration */\n icons?: ThemeCdnIcons;\n /** Script CDN configuration */\n scripts?: ThemeCdnScripts;\n}\n\n// ============================================\n// Complete Theme Configuration\n// ============================================\n\n/**\n * Complete theme configuration\n */\nexport interface ThemeConfig {\n /** Theme name/identifier */\n name?: string;\n\n /** Color configuration */\n colors: ThemeColors;\n\n /** Typography configuration */\n typography?: ThemeTypography;\n\n /** Spacing scale */\n spacing?: ThemeSpacing;\n\n /** Border radius */\n radius?: ThemeRadius;\n\n /** Shadows */\n shadows?: ThemeShadows;\n\n /** Component-specific tokens */\n components?: ComponentTokens;\n\n /** CDN resource configuration */\n cdn?: ThemeCdnConfig;\n\n /** Dark mode variant */\n dark?: Partial<ThemeConfig>;\n\n /** Additional CSS custom properties */\n customVars?: Record<string, string>;\n\n /** Additional CSS (outside @theme) */\n customCss?: string;\n}\n\n// ============================================\n// Default Theme (GitHub/OpenAI Style)\n// ============================================\n\n/**\n * Default FrontMCP theme - GitHub/OpenAI inspired gray-black aesthetic\n *\n * Re-exported from presets for convenience. The default theme features:\n * - Monochromatic gray-black color palette\n * - System UI font stack\n * - Smaller border radii (GitHub style)\n * - Subtle shadows with gray tones\n *\n * @see ./presets/github-openai.ts for full theme definition\n */\nexport const GITHUB_OPENAI_THEME = _GITHUB_OPENAI_THEME;\nexport const DEFAULT_THEME = _DEFAULT_THEME;\n\n// ============================================\n// Theme Builder Utilities\n// ============================================\n\n/**\n * Deep merge two theme configurations (internal helper without dark handling)\n * Accepts DeepPartial<ThemeConfig> for both base and override to safely handle partial nested properties\n * Note: This function assumes at least one of base/override provides required values (typically DEFAULT_THEME)\n */\nfunction mergeThemesCore(\n base: DeepPartial<ThemeConfig>,\n override: DeepPartial<ThemeConfig>,\n): Omit<ThemeConfig, 'dark'> {\n // Provide safe defaults for required nested properties\n const baseColors = base.colors ?? { semantic: { primary: '#24292f' } };\n\n // Filter out undefined values from arrays\n const filterStrings = (arr: (string | undefined)[]): string[] => arr.filter((s): s is string => s !== undefined);\n\n return {\n ...base,\n ...override,\n colors: {\n ...baseColors,\n ...override.colors,\n semantic: { ...baseColors.semantic, ...override.colors?.semantic } as ThemeColors['semantic'],\n surface: { ...baseColors.surface, ...override.colors?.surface },\n text: { ...baseColors.text, ...override.colors?.text },\n border: { ...baseColors.border, ...override.colors?.border },\n custom: { ...baseColors.custom, ...override.colors?.custom } as Record<string, string> | undefined,\n },\n typography: {\n ...base.typography,\n ...override.typography,\n families: { ...base.typography?.families, ...override.typography?.families },\n sizes: { ...base.typography?.sizes, ...override.typography?.sizes },\n weights: { ...base.typography?.weights, ...override.typography?.weights },\n lineHeight: { ...base.typography?.lineHeight, ...override.typography?.lineHeight },\n },\n spacing: { ...base.spacing, ...override.spacing },\n radius: { ...base.radius, ...override.radius },\n shadows: { ...base.shadows, ...override.shadows },\n components: {\n ...base.components,\n ...override.components,\n button: { ...base.components?.button, ...override.components?.button },\n card: { ...base.components?.card, ...override.components?.card },\n input: { ...base.components?.input, ...override.components?.input },\n },\n cdn: {\n ...base.cdn,\n ...override.cdn,\n fonts: {\n // Concatenate then dedupe so base entries are preserved without duplicates\n preconnect: filterStrings(\n Array.from(new Set([...(base.cdn?.fonts?.preconnect ?? []), ...(override.cdn?.fonts?.preconnect ?? [])])),\n ),\n stylesheets: filterStrings(\n Array.from(new Set([...(base.cdn?.fonts?.stylesheets ?? []), ...(override.cdn?.fonts?.stylesheets ?? [])])),\n ),\n },\n icons: {\n ...base.cdn?.icons,\n ...override.cdn?.icons,\n // Deep merge script to preserve integrity when only url is overridden\n script: (override.cdn?.icons?.script\n ? { ...base.cdn?.icons?.script, ...override.cdn?.icons?.script }\n : base.cdn?.icons?.script) as CdnScriptResource | undefined,\n },\n scripts: {\n // tailwind is a simple string, just use override or base\n tailwind: override.cdn?.scripts?.tailwind ?? base.cdn?.scripts?.tailwind,\n // Deep merge htmx/alpine to preserve integrity when only url is overridden\n htmx: (override.cdn?.scripts?.htmx\n ? { ...base.cdn?.scripts?.htmx, ...override.cdn?.scripts?.htmx }\n : base.cdn?.scripts?.htmx) as CdnScriptResource | undefined,\n alpine: (override.cdn?.scripts?.alpine\n ? { ...base.cdn?.scripts?.alpine, ...override.cdn?.scripts?.alpine }\n : base.cdn?.scripts?.alpine) as CdnScriptResource | undefined,\n },\n },\n customVars: { ...base.customVars, ...override.customVars } as Record<string, string> | undefined,\n customCss: [base.customCss, override.customCss].filter(Boolean).join('\\n'),\n };\n}\n\n/**\n * Deep merge two theme configurations\n *\n * @remarks\n * Dark variant handling:\n * - When override.dark is provided, it's merged on top of base.dark (if present) or base\n * - The resulting dark variant never contains a nested .dark property\n * - This prevents infinite recursion and ensures clean dark theme composition\n */\nexport function mergeThemes(base: ThemeConfig, override: DeepPartial<ThemeConfig>): ThemeConfig {\n // Merge the main (light) theme properties\n const merged = mergeThemesCore(base, override);\n\n // Handle dark variant separately to avoid nested .dark properties\n let darkVariant: Partial<ThemeConfig> | undefined;\n\n if (override.dark !== undefined) {\n // Merge override.dark on top of base.dark (or base if no base.dark)\n // darkBase may be partial (from base.dark) - mergeThemesCore handles this safely\n const darkBase = base.dark ?? base;\n // Strip any .dark from override.dark to prevent nesting\n const { dark: _nestedDark, ...overrideDarkWithoutNested } = override.dark;\n darkVariant = mergeThemesCore(darkBase, overrideDarkWithoutNested);\n } else if (base.dark !== undefined) {\n // Preserve base.dark, but strip any nested .dark property\n const { dark: _nestedDark, ...baseDarkWithoutNested } = base.dark;\n darkVariant = baseDarkWithoutNested;\n }\n\n return {\n ...merged,\n dark: darkVariant,\n };\n}\n\n/**\n * Create a theme by extending the default theme\n */\nexport function createTheme(overrides: Partial<ThemeConfig>): ThemeConfig {\n return mergeThemes(DEFAULT_THEME, overrides);\n}\n\n/**\n * Emit color scale CSS variables\n */\nfunction emitColorScale(lines: string[], name: string, scale: ColorScale): void {\n for (const [shade, value] of Object.entries(scale)) {\n if (value) lines.push(`--color-${name}-${shade}: ${value};`);\n }\n}\n\n/**\n * Build Tailwind @theme CSS from theme configuration\n */\nexport function buildThemeCss(theme: ThemeConfig): string {\n const lines: string[] = [];\n\n // Colors - semantic\n const semantic = theme.colors.semantic;\n if (typeof semantic.primary === 'string') {\n lines.push(`--color-primary: ${semantic.primary};`);\n } else if (semantic.primary) {\n emitColorScale(lines, 'primary', semantic.primary);\n }\n if (semantic.secondary) {\n if (typeof semantic.secondary === 'string') {\n lines.push(`--color-secondary: ${semantic.secondary};`);\n } else {\n emitColorScale(lines, 'secondary', semantic.secondary);\n }\n }\n if (semantic.accent) {\n if (typeof semantic.accent === 'string') {\n lines.push(`--color-accent: ${semantic.accent};`);\n } else {\n emitColorScale(lines, 'accent', semantic.accent);\n }\n }\n if (semantic.neutral) {\n if (typeof semantic.neutral === 'string') {\n lines.push(`--color-neutral: ${semantic.neutral};`);\n } else {\n emitColorScale(lines, 'neutral', semantic.neutral);\n }\n }\n if (semantic.success) lines.push(`--color-success: ${semantic.success};`);\n if (semantic.warning) lines.push(`--color-warning: ${semantic.warning};`);\n if (semantic.danger) lines.push(`--color-danger: ${semantic.danger};`);\n if (semantic.info) lines.push(`--color-info: ${semantic.info};`);\n\n // Colors - surface\n const surface = theme.colors.surface;\n if (surface?.background) lines.push(`--color-background: ${surface.background};`);\n if (surface?.surface) lines.push(`--color-surface: ${surface.surface};`);\n if (surface?.elevated) lines.push(`--color-elevated: ${surface.elevated};`);\n if (surface?.overlay) lines.push(`--color-overlay: ${surface.overlay};`);\n\n // Colors - text\n const text = theme.colors.text;\n if (text?.primary) lines.push(`--color-text-primary: ${text.primary};`);\n if (text?.secondary) lines.push(`--color-text-secondary: ${text.secondary};`);\n if (text?.disabled) lines.push(`--color-text-disabled: ${text.disabled};`);\n if (text?.inverse) lines.push(`--color-text-inverse: ${text.inverse};`);\n if (text?.link) lines.push(`--color-text-link: ${text.link};`);\n\n // Colors - border\n const border = theme.colors.border;\n if (border?.default) lines.push(`--color-border: ${border.default};`);\n if (border?.hover) lines.push(`--color-border-hover: ${border.hover};`);\n if (border?.focus) lines.push(`--color-border-focus: ${border.focus};`);\n if (border?.divider) lines.push(`--color-divider: ${border.divider};`);\n\n // Colors - custom\n if (theme.colors.custom) {\n for (const [key, value] of Object.entries(theme.colors.custom)) {\n lines.push(`--color-${key}: ${value};`);\n }\n }\n\n // Typography\n const typography = theme.typography;\n if (typography?.families?.sans) lines.push(`--font-sans: ${typography.families.sans};`);\n if (typography?.families?.serif) lines.push(`--font-serif: ${typography.families.serif};`);\n if (typography?.families?.mono) lines.push(`--font-mono: ${typography.families.mono};`);\n if (typography?.families?.display) lines.push(`--font-display: ${typography.families.display};`);\n\n // Radius\n const radius = theme.radius;\n if (radius?.none) lines.push(`--radius-none: ${radius.none};`);\n if (radius?.sm) lines.push(`--radius-sm: ${radius.sm};`);\n if (radius?.md) lines.push(`--radius-md: ${radius.md};`);\n if (radius?.lg) lines.push(`--radius-lg: ${radius.lg};`);\n if (radius?.xl) lines.push(`--radius-xl: ${radius.xl};`);\n if (radius?.['2xl']) lines.push(`--radius-2xl: ${radius['2xl']};`);\n if (radius?.full) lines.push(`--radius-full: ${radius.full};`);\n\n // Custom vars\n if (theme.customVars) {\n for (const [key, value] of Object.entries(theme.customVars)) {\n lines.push(`${key}: ${value};`);\n }\n }\n\n return lines.join('\\n ');\n}\n\n/**\n * Build complete style block with @theme and custom CSS\n *\n * @remarks\n * **Security/Trust Model:**\n * The `theme.customCss` property is injected directly into a `<style>` tag without\n * sanitization. This is intentional - CSS customization requires full CSS syntax support.\n *\n * **Trust assumptions:**\n * - Theme configurations should only come from trusted sources (developer-defined themes)\n * - Never pass user-provided input directly to `customCss`\n * - If you need user-customizable styles, validate/sanitize them before including in a theme\n *\n * **Why no sanitization:**\n * - CSS sanitization is complex and often breaks legitimate styles\n * - The theme system is designed for developer use, not end-user customization\n * - Developers creating themes are trusted to provide safe CSS\n *\n * @param theme - Theme configuration with optional customCss\n * @returns HTML style block with Tailwind @theme directive\n */\nexport function buildStyleBlock(theme: ThemeConfig): string {\n const themeCss = buildThemeCss(theme);\n const customCss = theme.customCss || '';\n\n return `<style type=\"text/tailwindcss\">\n @theme {\n ${themeCss}\n }\n ${customCss}\n </style>`;\n}\n"]}
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tool Template Builder
|
|
3
|
-
*
|
|
4
|
-
* Provides utilities for building and rendering tool UI templates
|
|
5
|
-
* with the MCP Bridge runtime.
|
|
6
|
-
*
|
|
7
|
-
* Supports multiple template types with auto-detection:
|
|
8
|
-
* - HTML strings and template builder functions
|
|
9
|
-
* - React components (imported or JSX strings)
|
|
10
|
-
* - MDX content (Markdown + JSX)
|
|
11
|
-
*/
|
|
12
|
-
import type { TemplateContext, TemplateBuilderFn, ToolUIConfig, ToolUITemplate } from '../runtime/types';
|
|
13
|
-
import type { ThemeConfig, PlatformCapabilities, DeepPartial } from '../theme';
|
|
14
|
-
/**
|
|
15
|
-
* Options for rendering a tool template
|
|
16
|
-
*/
|
|
17
|
-
export interface RenderTemplateOptions<In = Record<string, unknown>, Out = unknown> {
|
|
18
|
-
/** UI configuration from tool metadata */
|
|
19
|
-
ui: ToolUIConfig<In, Out>;
|
|
20
|
-
/** Tool name */
|
|
21
|
-
toolName: string;
|
|
22
|
-
/** Tool input arguments */
|
|
23
|
-
input: In;
|
|
24
|
-
/** Tool output (raw result from execute) */
|
|
25
|
-
output: Out;
|
|
26
|
-
/** Structured content (parsed output for widgets) */
|
|
27
|
-
structuredContent?: unknown;
|
|
28
|
-
/** Theme configuration */
|
|
29
|
-
theme?: DeepPartial<ThemeConfig>;
|
|
30
|
-
/** Platform capabilities */
|
|
31
|
-
platform?: PlatformCapabilities;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Result of rendering a tool template
|
|
35
|
-
*/
|
|
36
|
-
export interface RenderedTemplate {
|
|
37
|
-
/** Complete HTML document string */
|
|
38
|
-
html: string;
|
|
39
|
-
/** MIME type for the response */
|
|
40
|
-
mimeType: string;
|
|
41
|
-
/** OpenAI-specific metadata (if applicable) */
|
|
42
|
-
openaiMeta?: Record<string, unknown>;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Build template context from render options
|
|
46
|
-
*/
|
|
47
|
-
export declare function buildTemplateContext<In = Record<string, unknown>, Out = unknown>(input: In, output: Out, structuredContent?: unknown): TemplateContext<In, Out>;
|
|
48
|
-
/**
|
|
49
|
-
* Execute a template builder function or return static template.
|
|
50
|
-
* This is used for simple HTML templates only.
|
|
51
|
-
*/
|
|
52
|
-
export declare function executeTemplate<In = Record<string, unknown>, Out = unknown>(template: TemplateBuilderFn<In, Out> | string, ctx: TemplateContext<In, Out>): string;
|
|
53
|
-
/**
|
|
54
|
-
* Render a template using the appropriate renderer (auto-detected).
|
|
55
|
-
*
|
|
56
|
-
* This function detects the template type and routes to the appropriate
|
|
57
|
-
* renderer (HTML, React, or MDX).
|
|
58
|
-
*
|
|
59
|
-
* @param template - The template to render
|
|
60
|
-
* @param ctx - Template context with input/output/helpers
|
|
61
|
-
* @param options - Additional render options
|
|
62
|
-
* @returns Promise resolving to rendered HTML string
|
|
63
|
-
*/
|
|
64
|
-
export declare function renderTemplate<In = Record<string, unknown>, Out = unknown>(template: ToolUITemplate<In, Out>, ctx: TemplateContext<In, Out>, options?: {
|
|
65
|
-
hydrate?: boolean;
|
|
66
|
-
mdxComponents?: Record<string, any>;
|
|
67
|
-
}): Promise<{
|
|
68
|
-
html: string;
|
|
69
|
-
rendererType: string;
|
|
70
|
-
}>;
|
|
71
|
-
/**
|
|
72
|
-
* Render a tool UI template to a complete HTML document (sync version).
|
|
73
|
-
*
|
|
74
|
-
* This is the sync entry point for rendering simple HTML tool UIs. It:
|
|
75
|
-
* 1. Builds the template context with input/output/helpers
|
|
76
|
-
* 2. Executes the template builder function
|
|
77
|
-
* 3. Wraps the content in a complete HTML document with MCP Bridge
|
|
78
|
-
* 4. Applies CSP and theme configuration
|
|
79
|
-
*
|
|
80
|
-
* Note: For React/MDX templates, use `renderToolTemplateAsync` instead.
|
|
81
|
-
*
|
|
82
|
-
* @param options - Render options
|
|
83
|
-
* @returns Rendered template with HTML and metadata
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* ```typescript
|
|
87
|
-
* const result = renderToolTemplate({
|
|
88
|
-
* ui: toolMetadata.ui,
|
|
89
|
-
* toolName: 'get_weather',
|
|
90
|
-
* input: { location: 'San Francisco' },
|
|
91
|
-
* output: { temperature: 72, conditions: 'sunny' },
|
|
92
|
-
* });
|
|
93
|
-
*
|
|
94
|
-
* // Use result.html for the response body
|
|
95
|
-
* // Use result.mimeType for Content-Type header
|
|
96
|
-
* ```
|
|
97
|
-
*/
|
|
98
|
-
export declare function renderToolTemplate<In = Record<string, unknown>, Out = unknown>(options: RenderTemplateOptions<In, Out>): RenderedTemplate;
|
|
99
|
-
/**
|
|
100
|
-
* Render a tool UI template to a complete HTML document (async version).
|
|
101
|
-
*
|
|
102
|
-
* This is the async entry point that supports all template types:
|
|
103
|
-
* - HTML strings and template builder functions
|
|
104
|
-
* - React components (imported or JSX strings)
|
|
105
|
-
* - MDX content (Markdown + JSX)
|
|
106
|
-
*
|
|
107
|
-
* The template type is auto-detected and the appropriate renderer is used.
|
|
108
|
-
*
|
|
109
|
-
* @param options - Render options
|
|
110
|
-
* @returns Promise resolving to rendered template with HTML and metadata
|
|
111
|
-
*
|
|
112
|
-
* @example React component
|
|
113
|
-
* ```typescript
|
|
114
|
-
* import { WeatherWidget } from './weather-widget.tsx';
|
|
115
|
-
*
|
|
116
|
-
* const result = await renderToolTemplateAsync({
|
|
117
|
-
* ui: { template: WeatherWidget, hydrate: true },
|
|
118
|
-
* toolName: 'get_weather',
|
|
119
|
-
* input: { location: 'San Francisco' },
|
|
120
|
-
* output: { temperature: 72, conditions: 'sunny' },
|
|
121
|
-
* });
|
|
122
|
-
* ```
|
|
123
|
-
*
|
|
124
|
-
* @example MDX content
|
|
125
|
-
* ```typescript
|
|
126
|
-
* const result = await renderToolTemplateAsync({
|
|
127
|
-
* ui: {
|
|
128
|
-
* template: `# Weather in {output.location}\nTemperature: {output.temperature}°F`,
|
|
129
|
-
* },
|
|
130
|
-
* toolName: 'get_weather',
|
|
131
|
-
* input: { location: 'San Francisco' },
|
|
132
|
-
* output: { temperature: 72, location: 'San Francisco' },
|
|
133
|
-
* });
|
|
134
|
-
* ```
|
|
135
|
-
*/
|
|
136
|
-
export declare function renderToolTemplateAsync<In = Record<string, unknown>, Out = unknown>(options: RenderTemplateOptions<In, Out>): Promise<RenderedTemplate & {
|
|
137
|
-
rendererType: string;
|
|
138
|
-
}>;
|
|
139
|
-
/**
|
|
140
|
-
* Create a typed template builder with automatic input/output typing.
|
|
141
|
-
*
|
|
142
|
-
* This is a convenience function that helps TypeScript infer the
|
|
143
|
-
* correct types for template builder functions.
|
|
144
|
-
*
|
|
145
|
-
* @example
|
|
146
|
-
* ```typescript
|
|
147
|
-
* interface WeatherInput {
|
|
148
|
-
* location: string;
|
|
149
|
-
* }
|
|
150
|
-
*
|
|
151
|
-
* interface WeatherOutput {
|
|
152
|
-
* temperature: number;
|
|
153
|
-
* conditions: string;
|
|
154
|
-
* }
|
|
155
|
-
*
|
|
156
|
-
* const weatherTemplate = createTemplate<WeatherInput, WeatherOutput>((ctx) => `
|
|
157
|
-
* <div class="p-4">
|
|
158
|
-
* <h2>Weather in ${ctx.helpers.escapeHtml(ctx.input.location)}</h2>
|
|
159
|
-
* <p>${ctx.output.temperature}°F - ${ctx.output.conditions}</p>
|
|
160
|
-
* </div>
|
|
161
|
-
* `);
|
|
162
|
-
* ```
|
|
163
|
-
*/
|
|
164
|
-
export declare function createTemplate<In = Record<string, unknown>, Out = unknown>(builder: TemplateBuilderFn<In, Out>): TemplateBuilderFn<In, Out>;
|
|
165
|
-
/**
|
|
166
|
-
* Create a ToolUIConfig with proper typing
|
|
167
|
-
*
|
|
168
|
-
* @example
|
|
169
|
-
* ```typescript
|
|
170
|
-
* const ui = createToolUI<WeatherInput, WeatherOutput>({
|
|
171
|
-
* template: (ctx) => `<div>${ctx.output.temperature}°F</div>`,
|
|
172
|
-
* csp: { connectDomains: ['https://api.weather.com'] },
|
|
173
|
-
* widgetAccessible: true,
|
|
174
|
-
* });
|
|
175
|
-
* ```
|
|
176
|
-
*/
|
|
177
|
-
export declare function createToolUI<In = Record<string, unknown>, Out = unknown>(config: ToolUIConfig<In, Out>): ToolUIConfig<In, Out>;
|
|
178
|
-
/**
|
|
179
|
-
* Create a container div with common styling
|
|
180
|
-
*/
|
|
181
|
-
export declare function container(content: string, className?: string): string;
|
|
182
|
-
/**
|
|
183
|
-
* Create a heading element
|
|
184
|
-
*/
|
|
185
|
-
export declare function heading(text: string, level?: 1 | 2 | 3 | 4): string;
|
|
186
|
-
/**
|
|
187
|
-
* Create a paragraph element
|
|
188
|
-
*/
|
|
189
|
-
export declare function paragraph(text: string, className?: string): string;
|
|
190
|
-
/**
|
|
191
|
-
* Create a key-value display
|
|
192
|
-
*/
|
|
193
|
-
export declare function keyValue(key: string, value: string | number | boolean, className?: string): string;
|
|
194
|
-
/**
|
|
195
|
-
* Create a simple data list
|
|
196
|
-
*/
|
|
197
|
-
export declare function dataList(items: Array<{
|
|
198
|
-
key: string;
|
|
199
|
-
value: string | number | boolean;
|
|
200
|
-
}>): string;
|
|
201
|
-
/**
|
|
202
|
-
* Create an error display
|
|
203
|
-
*/
|
|
204
|
-
export declare function errorDisplay(message: string, details?: string): string;
|
|
205
|
-
/**
|
|
206
|
-
* Create a success display
|
|
207
|
-
*/
|
|
208
|
-
export declare function successDisplay(message: string, details?: string): string;
|
|
209
|
-
/**
|
|
210
|
-
* Create a loading indicator
|
|
211
|
-
*/
|
|
212
|
-
export declare function loadingDisplay(message?: string): string;
|