@frontmcp/ui 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/index.d.ts +13 -0
- package/adapters/index.d.ts.map +1 -0
- package/adapters/index.js +462 -0
- package/adapters/platform-meta.d.ts +166 -0
- package/adapters/platform-meta.d.ts.map +1 -0
- package/adapters/response-builder.d.ts +108 -0
- package/adapters/response-builder.d.ts.map +1 -0
- package/adapters/serving-mode.d.ts +107 -0
- package/adapters/serving-mode.d.ts.map +1 -0
- package/base-template/bridge.d.ts +90 -0
- package/base-template/bridge.d.ts.map +1 -0
- package/base-template/default-base-template.d.ts +92 -0
- package/base-template/default-base-template.d.ts.map +1 -0
- package/base-template/index.d.ts +15 -0
- package/base-template/index.d.ts.map +1 -0
- package/base-template/index.js +1398 -0
- package/base-template/polyfills.d.ts +31 -0
- package/base-template/polyfills.d.ts.map +1 -0
- package/base-template/theme-styles.d.ts +74 -0
- package/base-template/theme-styles.d.ts.map +1 -0
- package/bridge/adapters/base-adapter.d.ts +104 -0
- package/bridge/adapters/base-adapter.d.ts.map +1 -0
- package/bridge/adapters/claude.adapter.d.ts +67 -0
- package/bridge/adapters/claude.adapter.d.ts.map +1 -0
- package/bridge/adapters/ext-apps.adapter.d.ts +143 -0
- package/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
- package/bridge/adapters/gemini.adapter.d.ts +64 -0
- package/bridge/adapters/gemini.adapter.d.ts.map +1 -0
- package/bridge/adapters/generic.adapter.d.ts +56 -0
- package/bridge/adapters/generic.adapter.d.ts.map +1 -0
- package/bridge/adapters/index.d.ts +26 -0
- package/bridge/adapters/index.d.ts.map +1 -0
- package/bridge/adapters/openai.adapter.d.ts +65 -0
- package/bridge/adapters/openai.adapter.d.ts.map +1 -0
- package/bridge/core/adapter-registry.d.ts +122 -0
- package/bridge/core/adapter-registry.d.ts.map +1 -0
- package/bridge/core/bridge-factory.d.ts +199 -0
- package/bridge/core/bridge-factory.d.ts.map +1 -0
- package/bridge/core/index.d.ts +10 -0
- package/bridge/core/index.d.ts.map +1 -0
- package/bridge/index.d.ts +62 -0
- package/bridge/index.d.ts.map +1 -0
- package/bridge/index.js +2540 -0
- package/bridge/runtime/iife-generator.d.ts +62 -0
- package/bridge/runtime/iife-generator.d.ts.map +1 -0
- package/bridge/runtime/index.d.ts +9 -0
- package/bridge/runtime/index.d.ts.map +1 -0
- package/bridge/types.d.ts +386 -0
- package/bridge/types.d.ts.map +1 -0
- package/build/cdn-resources.d.ts +243 -0
- package/build/cdn-resources.d.ts.map +1 -0
- package/build/index.d.ts +295 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +7096 -0
- package/build/widget-manifest.d.ts +362 -0
- package/build/widget-manifest.d.ts.map +1 -0
- package/bundler/bundler.d.ts +208 -0
- package/bundler/bundler.d.ts.map +1 -0
- package/bundler/cache.d.ts +173 -0
- package/bundler/cache.d.ts.map +1 -0
- package/bundler/file-cache/component-builder.d.ts +167 -0
- package/bundler/file-cache/component-builder.d.ts.map +1 -0
- package/bundler/file-cache/hash-calculator.d.ts +155 -0
- package/bundler/file-cache/hash-calculator.d.ts.map +1 -0
- package/bundler/file-cache/index.d.ts +12 -0
- package/bundler/file-cache/index.d.ts.map +1 -0
- package/bundler/file-cache/storage/filesystem.d.ts +149 -0
- package/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
- package/bundler/file-cache/storage/index.d.ts +11 -0
- package/bundler/file-cache/storage/index.d.ts.map +1 -0
- package/bundler/file-cache/storage/interface.d.ts +152 -0
- package/bundler/file-cache/storage/interface.d.ts.map +1 -0
- package/bundler/file-cache/storage/redis.d.ts +139 -0
- package/bundler/file-cache/storage/redis.d.ts.map +1 -0
- package/bundler/index.d.ts +43 -0
- package/bundler/index.d.ts.map +1 -0
- package/bundler/index.js +4754 -0
- package/bundler/sandbox/enclave-adapter.d.ts +121 -0
- package/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
- package/bundler/sandbox/executor.d.ts +14 -0
- package/bundler/sandbox/executor.d.ts.map +1 -0
- package/bundler/sandbox/policy.d.ts +62 -0
- package/bundler/sandbox/policy.d.ts.map +1 -0
- package/bundler/types.d.ts +702 -0
- package/bundler/types.d.ts.map +1 -0
- package/components/alert.d.ts +66 -0
- package/components/alert.d.ts.map +1 -0
- package/components/alert.schema.d.ts +98 -0
- package/components/alert.schema.d.ts.map +1 -0
- package/components/avatar.d.ts +77 -0
- package/components/avatar.d.ts.map +1 -0
- package/components/avatar.schema.d.ts +170 -0
- package/components/avatar.schema.d.ts.map +1 -0
- package/components/badge.d.ts +64 -0
- package/components/badge.d.ts.map +1 -0
- package/components/badge.schema.d.ts +91 -0
- package/components/badge.schema.d.ts.map +1 -0
- package/components/button.d.ts +100 -0
- package/components/button.d.ts.map +1 -0
- package/components/button.schema.d.ts +120 -0
- package/components/button.schema.d.ts.map +1 -0
- package/components/card.d.ts +53 -0
- package/components/card.d.ts.map +1 -0
- package/components/card.schema.d.ts +93 -0
- package/components/card.schema.d.ts.map +1 -0
- package/components/form.d.ts +212 -0
- package/components/form.d.ts.map +1 -0
- package/components/form.schema.d.ts +365 -0
- package/components/form.schema.d.ts.map +1 -0
- package/components/index.d.ts +29 -0
- package/components/index.d.ts.map +1 -0
- package/components/index.js +2595 -0
- package/components/list.d.ts +121 -0
- package/components/list.d.ts.map +1 -0
- package/components/list.schema.d.ts +129 -0
- package/components/list.schema.d.ts.map +1 -0
- package/components/modal.d.ts +100 -0
- package/components/modal.d.ts.map +1 -0
- package/components/modal.schema.d.ts +151 -0
- package/components/modal.schema.d.ts.map +1 -0
- package/components/table.d.ts +91 -0
- package/components/table.d.ts.map +1 -0
- package/components/table.schema.d.ts +123 -0
- package/components/table.schema.d.ts.map +1 -0
- package/dependency/cdn-registry.d.ts +98 -0
- package/dependency/cdn-registry.d.ts.map +1 -0
- package/dependency/import-map.d.ts +186 -0
- package/dependency/import-map.d.ts.map +1 -0
- package/dependency/import-parser.d.ts +82 -0
- package/dependency/import-parser.d.ts.map +1 -0
- package/dependency/index.d.ts +17 -0
- package/dependency/index.d.ts.map +1 -0
- package/dependency/resolver.d.ts +164 -0
- package/dependency/resolver.d.ts.map +1 -0
- package/dependency/schemas.d.ts +486 -0
- package/dependency/schemas.d.ts.map +1 -0
- package/dependency/template-loader.d.ts +204 -0
- package/dependency/template-loader.d.ts.map +1 -0
- package/dependency/template-processor.d.ts +118 -0
- package/dependency/template-processor.d.ts.map +1 -0
- package/dependency/types.d.ts +739 -0
- package/dependency/types.d.ts.map +1 -0
- package/esm/adapters/index.d.ts +13 -0
- package/esm/adapters/index.d.ts.map +1 -0
- package/esm/adapters/index.js +427 -0
- package/esm/adapters/platform-meta.d.ts +166 -0
- package/esm/adapters/platform-meta.d.ts.map +1 -0
- package/esm/adapters/response-builder.d.ts +108 -0
- package/esm/adapters/response-builder.d.ts.map +1 -0
- package/esm/adapters/serving-mode.d.ts +107 -0
- package/esm/adapters/serving-mode.d.ts.map +1 -0
- package/esm/base-template/bridge.d.ts +90 -0
- package/esm/base-template/bridge.d.ts.map +1 -0
- package/esm/base-template/default-base-template.d.ts +92 -0
- package/esm/base-template/default-base-template.d.ts.map +1 -0
- package/esm/base-template/index.d.ts +15 -0
- package/esm/base-template/index.d.ts.map +1 -0
- package/esm/base-template/index.js +1364 -0
- package/esm/base-template/polyfills.d.ts +31 -0
- package/esm/base-template/polyfills.d.ts.map +1 -0
- package/esm/base-template/theme-styles.d.ts +74 -0
- package/esm/base-template/theme-styles.d.ts.map +1 -0
- package/esm/bridge/adapters/base-adapter.d.ts +104 -0
- package/esm/bridge/adapters/base-adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/claude.adapter.d.ts +67 -0
- package/esm/bridge/adapters/claude.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/ext-apps.adapter.d.ts +143 -0
- package/esm/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/gemini.adapter.d.ts +64 -0
- package/esm/bridge/adapters/gemini.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/generic.adapter.d.ts +56 -0
- package/esm/bridge/adapters/generic.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/index.d.ts +26 -0
- package/esm/bridge/adapters/index.d.ts.map +1 -0
- package/esm/bridge/adapters/openai.adapter.d.ts +65 -0
- package/esm/bridge/adapters/openai.adapter.d.ts.map +1 -0
- package/esm/bridge/core/adapter-registry.d.ts +122 -0
- package/esm/bridge/core/adapter-registry.d.ts.map +1 -0
- package/esm/bridge/core/bridge-factory.d.ts +199 -0
- package/esm/bridge/core/bridge-factory.d.ts.map +1 -0
- package/esm/bridge/core/index.d.ts +10 -0
- package/esm/bridge/core/index.d.ts.map +1 -0
- package/esm/bridge/index.d.ts +62 -0
- package/esm/bridge/index.d.ts.map +1 -0
- package/esm/bridge/index.js +2487 -0
- package/esm/bridge/runtime/iife-generator.d.ts +62 -0
- package/esm/bridge/runtime/iife-generator.d.ts.map +1 -0
- package/esm/bridge/runtime/index.d.ts +9 -0
- package/esm/bridge/runtime/index.d.ts.map +1 -0
- package/esm/bridge/types.d.ts +386 -0
- package/esm/bridge/types.d.ts.map +1 -0
- package/esm/build/cdn-resources.d.ts +243 -0
- package/esm/build/cdn-resources.d.ts.map +1 -0
- package/esm/build/index.d.ts +295 -0
- package/esm/build/index.d.ts.map +1 -0
- package/esm/build/index.js +7021 -0
- package/esm/build/widget-manifest.d.ts +362 -0
- package/esm/build/widget-manifest.d.ts.map +1 -0
- package/esm/bundler/bundler.d.ts +208 -0
- package/esm/bundler/bundler.d.ts.map +1 -0
- package/esm/bundler/cache.d.ts +173 -0
- package/esm/bundler/cache.d.ts.map +1 -0
- package/esm/bundler/file-cache/component-builder.d.ts +167 -0
- package/esm/bundler/file-cache/component-builder.d.ts.map +1 -0
- package/esm/bundler/file-cache/hash-calculator.d.ts +155 -0
- package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -0
- package/esm/bundler/file-cache/index.d.ts +12 -0
- package/esm/bundler/file-cache/index.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/filesystem.d.ts +149 -0
- package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/index.d.ts +11 -0
- package/esm/bundler/file-cache/storage/index.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/interface.d.ts +152 -0
- package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/redis.d.ts +139 -0
- package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -0
- package/esm/bundler/index.d.ts +43 -0
- package/esm/bundler/index.d.ts.map +1 -0
- package/esm/bundler/index.js +4687 -0
- package/esm/bundler/sandbox/enclave-adapter.d.ts +121 -0
- package/esm/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
- package/esm/bundler/sandbox/executor.d.ts +14 -0
- package/esm/bundler/sandbox/executor.d.ts.map +1 -0
- package/esm/bundler/sandbox/policy.d.ts +62 -0
- package/esm/bundler/sandbox/policy.d.ts.map +1 -0
- package/esm/bundler/types.d.ts +702 -0
- package/esm/bundler/types.d.ts.map +1 -0
- package/esm/components/alert.d.ts +66 -0
- package/esm/components/alert.d.ts.map +1 -0
- package/esm/components/alert.schema.d.ts +98 -0
- package/esm/components/alert.schema.d.ts.map +1 -0
- package/esm/components/avatar.d.ts +77 -0
- package/esm/components/avatar.d.ts.map +1 -0
- package/esm/components/avatar.schema.d.ts +170 -0
- package/esm/components/avatar.schema.d.ts.map +1 -0
- package/esm/components/badge.d.ts +64 -0
- package/esm/components/badge.d.ts.map +1 -0
- package/esm/components/badge.schema.d.ts +91 -0
- package/esm/components/badge.schema.d.ts.map +1 -0
- package/esm/components/button.d.ts +100 -0
- package/esm/components/button.d.ts.map +1 -0
- package/esm/components/button.schema.d.ts +120 -0
- package/esm/components/button.schema.d.ts.map +1 -0
- package/esm/components/card.d.ts +53 -0
- package/esm/components/card.d.ts.map +1 -0
- package/esm/components/card.schema.d.ts +93 -0
- package/esm/components/card.schema.d.ts.map +1 -0
- package/esm/components/form.d.ts +212 -0
- package/esm/components/form.d.ts.map +1 -0
- package/esm/components/form.schema.d.ts +365 -0
- package/esm/components/form.schema.d.ts.map +1 -0
- package/esm/components/index.d.ts +29 -0
- package/esm/components/index.d.ts.map +1 -0
- package/esm/components/index.js +2456 -0
- package/esm/components/list.d.ts +121 -0
- package/esm/components/list.d.ts.map +1 -0
- package/esm/components/list.schema.d.ts +129 -0
- package/esm/components/list.schema.d.ts.map +1 -0
- package/esm/components/modal.d.ts +100 -0
- package/esm/components/modal.d.ts.map +1 -0
- package/esm/components/modal.schema.d.ts +151 -0
- package/esm/components/modal.schema.d.ts.map +1 -0
- package/esm/components/table.d.ts +91 -0
- package/esm/components/table.d.ts.map +1 -0
- package/esm/components/table.schema.d.ts +123 -0
- package/esm/components/table.schema.d.ts.map +1 -0
- package/esm/dependency/cdn-registry.d.ts +98 -0
- package/esm/dependency/cdn-registry.d.ts.map +1 -0
- package/esm/dependency/import-map.d.ts +186 -0
- package/esm/dependency/import-map.d.ts.map +1 -0
- package/esm/dependency/import-parser.d.ts +82 -0
- package/esm/dependency/import-parser.d.ts.map +1 -0
- package/esm/dependency/index.d.ts +17 -0
- package/esm/dependency/index.d.ts.map +1 -0
- package/esm/dependency/resolver.d.ts +164 -0
- package/esm/dependency/resolver.d.ts.map +1 -0
- package/esm/dependency/schemas.d.ts +486 -0
- package/esm/dependency/schemas.d.ts.map +1 -0
- package/esm/dependency/template-loader.d.ts +204 -0
- package/esm/dependency/template-loader.d.ts.map +1 -0
- package/esm/dependency/template-processor.d.ts +118 -0
- package/esm/dependency/template-processor.d.ts.map +1 -0
- package/esm/dependency/types.d.ts +739 -0
- package/esm/dependency/types.d.ts.map +1 -0
- package/esm/handlebars/expression-extractor.d.ts +147 -0
- package/esm/handlebars/expression-extractor.d.ts.map +1 -0
- package/esm/handlebars/helpers.d.ts +339 -0
- package/esm/handlebars/helpers.d.ts.map +1 -0
- package/esm/handlebars/index.d.ts +195 -0
- package/esm/handlebars/index.d.ts.map +1 -0
- package/esm/handlebars/index.js +587 -0
- package/esm/index.d.ts +56 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +20511 -0
- package/esm/layouts/base.d.ts +86 -0
- package/esm/layouts/base.d.ts.map +1 -0
- package/esm/layouts/index.d.ts +8 -0
- package/esm/layouts/index.d.ts.map +1 -0
- package/esm/layouts/index.js +892 -0
- package/esm/layouts/presets.d.ts +134 -0
- package/esm/layouts/presets.d.ts.map +1 -0
- package/esm/package.json +90 -0
- package/esm/pages/consent.d.ts +117 -0
- package/esm/pages/consent.d.ts.map +1 -0
- package/esm/pages/error.d.ts +101 -0
- package/esm/pages/error.d.ts.map +1 -0
- package/esm/pages/index.d.ts +9 -0
- package/esm/pages/index.d.ts.map +1 -0
- package/esm/pages/index.js +1563 -0
- package/esm/react/Alert.d.ts +102 -0
- package/esm/react/Alert.d.ts.map +1 -0
- package/esm/react/Badge.d.ts +101 -0
- package/esm/react/Badge.d.ts.map +1 -0
- package/esm/react/Button.d.ts +109 -0
- package/esm/react/Button.d.ts.map +1 -0
- package/esm/react/Card.d.ts +104 -0
- package/esm/react/Card.d.ts.map +1 -0
- package/esm/react/hooks/context.d.ts +179 -0
- package/esm/react/hooks/context.d.ts.map +1 -0
- package/esm/react/hooks/index.d.ts +42 -0
- package/esm/react/hooks/index.d.ts.map +1 -0
- package/esm/react/hooks/tools.d.ts +284 -0
- package/esm/react/hooks/tools.d.ts.map +1 -0
- package/esm/react/index.d.ts +81 -0
- package/esm/react/index.d.ts.map +1 -0
- package/esm/react/index.js +1372 -0
- package/esm/react/types.d.ts +106 -0
- package/esm/react/types.d.ts.map +1 -0
- package/esm/react/utils.d.ts +43 -0
- package/esm/react/utils.d.ts.map +1 -0
- package/esm/registry/index.d.ts +46 -0
- package/esm/registry/index.d.ts.map +1 -0
- package/esm/registry/index.js +6422 -0
- package/esm/registry/render-template.d.ts +91 -0
- package/esm/registry/render-template.d.ts.map +1 -0
- package/esm/registry/tool-ui.registry.d.ts +294 -0
- package/esm/registry/tool-ui.registry.d.ts.map +1 -0
- package/esm/registry/uri-utils.d.ts +56 -0
- package/esm/registry/uri-utils.d.ts.map +1 -0
- package/esm/render/index.d.ts +8 -0
- package/esm/render/index.d.ts.map +1 -0
- package/esm/render/index.js +45 -0
- package/esm/render/prerender.d.ts +57 -0
- package/esm/render/prerender.d.ts.map +1 -0
- package/esm/renderers/cache.d.ts +145 -0
- package/esm/renderers/cache.d.ts.map +1 -0
- package/esm/renderers/html.renderer.d.ts +123 -0
- package/esm/renderers/html.renderer.d.ts.map +1 -0
- package/esm/renderers/index.d.ts +36 -0
- package/esm/renderers/index.d.ts.map +1 -0
- package/esm/renderers/index.js +1827 -0
- package/esm/renderers/mdx.renderer.d.ts +120 -0
- package/esm/renderers/mdx.renderer.d.ts.map +1 -0
- package/esm/renderers/react.renderer.d.ts +96 -0
- package/esm/renderers/react.renderer.d.ts.map +1 -0
- package/esm/renderers/registry.d.ts +134 -0
- package/esm/renderers/registry.d.ts.map +1 -0
- package/esm/renderers/types.d.ts +342 -0
- package/esm/renderers/types.d.ts.map +1 -0
- package/esm/renderers/utils/detect.d.ts +107 -0
- package/esm/renderers/utils/detect.d.ts.map +1 -0
- package/esm/renderers/utils/hash.d.ts +40 -0
- package/esm/renderers/utils/hash.d.ts.map +1 -0
- package/esm/renderers/utils/index.d.ts +9 -0
- package/esm/renderers/utils/index.d.ts.map +1 -0
- package/esm/renderers/utils/transpiler.d.ts +89 -0
- package/esm/renderers/utils/transpiler.d.ts.map +1 -0
- package/esm/runtime/adapters/html.adapter.d.ts +59 -0
- package/esm/runtime/adapters/html.adapter.d.ts.map +1 -0
- package/esm/runtime/adapters/index.d.ts +26 -0
- package/esm/runtime/adapters/index.d.ts.map +1 -0
- package/esm/runtime/adapters/mdx.adapter.d.ts +73 -0
- package/esm/runtime/adapters/mdx.adapter.d.ts.map +1 -0
- package/esm/runtime/adapters/react.adapter.d.ts +70 -0
- package/esm/runtime/adapters/react.adapter.d.ts.map +1 -0
- package/esm/runtime/adapters/types.d.ts +95 -0
- package/esm/runtime/adapters/types.d.ts.map +1 -0
- package/esm/runtime/csp.d.ts +48 -0
- package/esm/runtime/csp.d.ts.map +1 -0
- package/esm/runtime/index.d.ts +17 -0
- package/esm/runtime/index.d.ts.map +1 -0
- package/esm/runtime/index.js +5186 -0
- package/esm/runtime/mcp-bridge.d.ts +101 -0
- package/esm/runtime/mcp-bridge.d.ts.map +1 -0
- package/esm/runtime/renderer-runtime.d.ts +133 -0
- package/esm/runtime/renderer-runtime.d.ts.map +1 -0
- package/esm/runtime/sanitizer.d.ts +172 -0
- package/esm/runtime/sanitizer.d.ts.map +1 -0
- package/esm/runtime/types.d.ts +415 -0
- package/esm/runtime/types.d.ts.map +1 -0
- package/esm/runtime/wrapper.d.ts +421 -0
- package/esm/runtime/wrapper.d.ts.map +1 -0
- package/esm/styles/index.d.ts +8 -0
- package/esm/styles/index.d.ts.map +1 -0
- package/esm/styles/index.js +171 -0
- package/esm/styles/variants.d.ts +51 -0
- package/esm/styles/variants.d.ts.map +1 -0
- package/esm/theme/cdn.d.ts +195 -0
- package/esm/theme/cdn.d.ts.map +1 -0
- package/esm/theme/index.d.ts +18 -0
- package/esm/theme/index.d.ts.map +1 -0
- package/esm/theme/index.js +700 -0
- package/esm/theme/platforms.d.ts +107 -0
- package/esm/theme/platforms.d.ts.map +1 -0
- package/esm/theme/presets/github-openai.d.ts +50 -0
- package/esm/theme/presets/github-openai.d.ts.map +1 -0
- package/esm/theme/presets/index.d.ts +11 -0
- package/esm/theme/presets/index.d.ts.map +1 -0
- package/esm/theme/theme.d.ts +396 -0
- package/esm/theme/theme.d.ts.map +1 -0
- package/esm/tool-template/builder.d.ts +213 -0
- package/esm/tool-template/builder.d.ts.map +1 -0
- package/esm/tool-template/index.d.ts +16 -0
- package/esm/tool-template/index.d.ts.map +1 -0
- package/esm/tool-template/index.js +3515 -0
- package/esm/types/index.d.ts +14 -0
- package/esm/types/index.d.ts.map +1 -0
- package/esm/types/index.js +75 -0
- package/esm/types/ui-config.d.ts +639 -0
- package/esm/types/ui-config.d.ts.map +1 -0
- package/esm/types/ui-runtime.d.ts +1007 -0
- package/esm/types/ui-runtime.d.ts.map +1 -0
- package/esm/typings/cache/cache-adapter.d.ts +125 -0
- package/esm/typings/cache/cache-adapter.d.ts.map +1 -0
- package/esm/typings/cache/index.d.ts +10 -0
- package/esm/typings/cache/index.d.ts.map +1 -0
- package/esm/typings/cache/memory-cache.d.ts +92 -0
- package/esm/typings/cache/memory-cache.d.ts.map +1 -0
- package/esm/typings/dts-parser.d.ts +90 -0
- package/esm/typings/dts-parser.d.ts.map +1 -0
- package/esm/typings/index.d.ts +48 -0
- package/esm/typings/index.d.ts.map +1 -0
- package/esm/typings/schemas.d.ts +232 -0
- package/esm/typings/schemas.d.ts.map +1 -0
- package/esm/typings/type-fetcher.d.ts +89 -0
- package/esm/typings/type-fetcher.d.ts.map +1 -0
- package/esm/typings/types.d.ts +320 -0
- package/esm/typings/types.d.ts.map +1 -0
- package/esm/universal/UniversalApp.d.ts +108 -0
- package/esm/universal/UniversalApp.d.ts.map +1 -0
- package/esm/universal/cached-runtime.d.ts +115 -0
- package/esm/universal/cached-runtime.d.ts.map +1 -0
- package/esm/universal/context.d.ts +122 -0
- package/esm/universal/context.d.ts.map +1 -0
- package/esm/universal/index.d.ts +57 -0
- package/esm/universal/index.d.ts.map +1 -0
- package/esm/universal/renderers/html.renderer.d.ts +37 -0
- package/esm/universal/renderers/html.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/index.d.ts +112 -0
- package/esm/universal/renderers/index.d.ts.map +1 -0
- package/esm/universal/renderers/markdown.renderer.d.ts +33 -0
- package/esm/universal/renderers/markdown.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/mdx.renderer.d.ts +38 -0
- package/esm/universal/renderers/mdx.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/react.renderer.d.ts +46 -0
- package/esm/universal/renderers/react.renderer.d.ts.map +1 -0
- package/esm/universal/runtime-builder.d.ts +33 -0
- package/esm/universal/runtime-builder.d.ts.map +1 -0
- package/esm/universal/store.d.ts +135 -0
- package/esm/universal/store.d.ts.map +1 -0
- package/esm/universal/types.d.ts +199 -0
- package/esm/universal/types.d.ts.map +1 -0
- package/esm/utils/escape-html.d.ts +58 -0
- package/esm/utils/escape-html.d.ts.map +1 -0
- package/esm/utils/index.d.ts +10 -0
- package/esm/utils/index.d.ts.map +1 -0
- package/esm/utils/index.js +40 -0
- package/esm/utils/safe-stringify.d.ts +30 -0
- package/esm/utils/safe-stringify.d.ts.map +1 -0
- package/esm/validation/error-box.d.ts +56 -0
- package/esm/validation/error-box.d.ts.map +1 -0
- package/esm/validation/index.d.ts +13 -0
- package/esm/validation/index.d.ts.map +1 -0
- package/esm/validation/index.js +562 -0
- package/esm/validation/schema-paths.d.ts +118 -0
- package/esm/validation/schema-paths.d.ts.map +1 -0
- package/esm/validation/template-validator.d.ts +143 -0
- package/esm/validation/template-validator.d.ts.map +1 -0
- package/esm/validation/wrapper.d.ts +97 -0
- package/esm/validation/wrapper.d.ts.map +1 -0
- package/esm/web-components/core/attribute-parser.d.ts +82 -0
- package/esm/web-components/core/attribute-parser.d.ts.map +1 -0
- package/esm/web-components/core/base-element.d.ts +197 -0
- package/esm/web-components/core/base-element.d.ts.map +1 -0
- package/esm/web-components/core/index.d.ts +9 -0
- package/esm/web-components/core/index.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-alert.d.ts +46 -0
- package/esm/web-components/elements/fmcp-alert.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-badge.d.ts +47 -0
- package/esm/web-components/elements/fmcp-badge.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-button.d.ts +117 -0
- package/esm/web-components/elements/fmcp-button.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-card.d.ts +53 -0
- package/esm/web-components/elements/fmcp-card.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-input.d.ts +96 -0
- package/esm/web-components/elements/fmcp-input.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-select.d.ts +100 -0
- package/esm/web-components/elements/fmcp-select.d.ts.map +1 -0
- package/esm/web-components/elements/index.d.ts +13 -0
- package/esm/web-components/elements/index.d.ts.map +1 -0
- package/esm/web-components/index.d.ts +50 -0
- package/esm/web-components/index.d.ts.map +1 -0
- package/esm/web-components/index.js +2048 -0
- package/esm/web-components/register.d.ts +57 -0
- package/esm/web-components/register.d.ts.map +1 -0
- package/esm/web-components/types.d.ts +122 -0
- package/esm/web-components/types.d.ts.map +1 -0
- package/esm/widgets/index.d.ts +8 -0
- package/esm/widgets/index.d.ts.map +1 -0
- package/esm/widgets/index.js +941 -0
- package/esm/widgets/progress.d.ts +133 -0
- package/esm/widgets/progress.d.ts.map +1 -0
- package/esm/widgets/resource.d.ts +163 -0
- package/esm/widgets/resource.d.ts.map +1 -0
- package/handlebars/expression-extractor.d.ts +147 -0
- package/handlebars/expression-extractor.d.ts.map +1 -0
- package/handlebars/helpers.d.ts +339 -0
- package/handlebars/helpers.d.ts.map +1 -0
- package/handlebars/index.d.ts +195 -0
- package/handlebars/index.d.ts.map +1 -0
- package/handlebars/index.js +666 -0
- package/index.d.ts +56 -0
- package/index.d.ts.map +1 -0
- package/index.js +20942 -0
- package/layouts/base.d.ts +86 -0
- package/layouts/base.d.ts.map +1 -0
- package/layouts/index.d.ts +8 -0
- package/layouts/index.d.ts.map +1 -0
- package/layouts/index.js +930 -0
- package/layouts/presets.d.ts +134 -0
- package/layouts/presets.d.ts.map +1 -0
- package/package.json +26 -85
- package/pages/consent.d.ts +117 -0
- package/pages/consent.d.ts.map +1 -0
- package/pages/error.d.ts +101 -0
- package/pages/error.d.ts.map +1 -0
- package/pages/index.d.ts +9 -0
- package/pages/index.d.ts.map +1 -0
- package/pages/index.js +1602 -0
- package/react/Alert.d.ts +102 -0
- package/react/Alert.d.ts.map +1 -0
- package/react/Badge.d.ts +101 -0
- package/react/Badge.d.ts.map +1 -0
- package/react/Button.d.ts +109 -0
- package/react/Button.d.ts.map +1 -0
- package/react/Card.d.ts +104 -0
- package/react/Card.d.ts.map +1 -0
- package/react/hooks/context.d.ts +179 -0
- package/react/hooks/context.d.ts.map +1 -0
- package/react/hooks/index.d.ts +42 -0
- package/react/hooks/index.d.ts.map +1 -0
- package/react/hooks/tools.d.ts +284 -0
- package/react/hooks/tools.d.ts.map +1 -0
- package/react/index.d.ts +81 -0
- package/react/index.d.ts.map +1 -0
- package/react/index.js +1430 -0
- package/react/types.d.ts +106 -0
- package/react/types.d.ts.map +1 -0
- package/react/utils.d.ts +43 -0
- package/react/utils.d.ts.map +1 -0
- package/registry/index.d.ts +46 -0
- package/registry/index.d.ts.map +1 -0
- package/registry/index.js +6465 -0
- package/registry/render-template.d.ts +91 -0
- package/registry/render-template.d.ts.map +1 -0
- package/registry/tool-ui.registry.d.ts +294 -0
- package/registry/tool-ui.registry.d.ts.map +1 -0
- package/registry/uri-utils.d.ts +56 -0
- package/registry/uri-utils.d.ts.map +1 -0
- package/render/index.d.ts +8 -0
- package/render/index.d.ts.map +1 -0
- package/render/index.js +77 -0
- package/render/prerender.d.ts +57 -0
- package/render/prerender.d.ts.map +1 -0
- package/renderers/cache.d.ts +145 -0
- package/renderers/cache.d.ts.map +1 -0
- package/renderers/html.renderer.d.ts +123 -0
- package/renderers/html.renderer.d.ts.map +1 -0
- package/renderers/index.d.ts +36 -0
- package/renderers/index.d.ts.map +1 -0
- package/renderers/index.js +1882 -0
- package/renderers/mdx.renderer.d.ts +120 -0
- package/renderers/mdx.renderer.d.ts.map +1 -0
- package/renderers/react.renderer.d.ts +96 -0
- package/renderers/react.renderer.d.ts.map +1 -0
- package/renderers/registry.d.ts +134 -0
- package/renderers/registry.d.ts.map +1 -0
- package/renderers/types.d.ts +342 -0
- package/renderers/types.d.ts.map +1 -0
- package/renderers/utils/detect.d.ts +107 -0
- package/renderers/utils/detect.d.ts.map +1 -0
- package/renderers/utils/hash.d.ts +40 -0
- package/renderers/utils/hash.d.ts.map +1 -0
- package/renderers/utils/index.d.ts +9 -0
- package/renderers/utils/index.d.ts.map +1 -0
- package/renderers/utils/transpiler.d.ts +89 -0
- package/renderers/utils/transpiler.d.ts.map +1 -0
- package/runtime/adapters/html.adapter.d.ts +59 -0
- package/runtime/adapters/html.adapter.d.ts.map +1 -0
- package/runtime/adapters/index.d.ts +26 -0
- package/runtime/adapters/index.d.ts.map +1 -0
- package/runtime/adapters/mdx.adapter.d.ts +73 -0
- package/runtime/adapters/mdx.adapter.d.ts.map +1 -0
- package/runtime/adapters/react.adapter.d.ts +70 -0
- package/runtime/adapters/react.adapter.d.ts.map +1 -0
- package/runtime/adapters/types.d.ts +95 -0
- package/runtime/adapters/types.d.ts.map +1 -0
- package/runtime/csp.d.ts +48 -0
- package/runtime/csp.d.ts.map +1 -0
- package/runtime/index.d.ts +17 -0
- package/runtime/index.d.ts.map +1 -0
- package/runtime/index.js +5264 -0
- package/runtime/mcp-bridge.d.ts +101 -0
- package/runtime/mcp-bridge.d.ts.map +1 -0
- package/runtime/renderer-runtime.d.ts +133 -0
- package/runtime/renderer-runtime.d.ts.map +1 -0
- package/runtime/sanitizer.d.ts +172 -0
- package/runtime/sanitizer.d.ts.map +1 -0
- package/runtime/types.d.ts +415 -0
- package/runtime/types.d.ts.map +1 -0
- package/runtime/wrapper.d.ts +421 -0
- package/runtime/wrapper.d.ts.map +1 -0
- package/styles/index.d.ts +8 -0
- package/styles/index.d.ts.map +1 -0
- package/styles/index.js +222 -0
- package/styles/variants.d.ts +51 -0
- package/styles/variants.d.ts.map +1 -0
- package/theme/cdn.d.ts +195 -0
- package/theme/cdn.d.ts.map +1 -0
- package/theme/index.d.ts +18 -0
- package/theme/index.d.ts.map +1 -0
- package/theme/index.js +757 -0
- package/theme/platforms.d.ts +107 -0
- package/theme/platforms.d.ts.map +1 -0
- package/theme/presets/github-openai.d.ts +50 -0
- package/theme/presets/github-openai.d.ts.map +1 -0
- package/theme/presets/index.d.ts +11 -0
- package/theme/presets/index.d.ts.map +1 -0
- package/theme/theme.d.ts +396 -0
- package/theme/theme.d.ts.map +1 -0
- package/tool-template/builder.d.ts +213 -0
- package/tool-template/builder.d.ts.map +1 -0
- package/tool-template/index.d.ts +16 -0
- package/tool-template/index.d.ts.map +1 -0
- package/tool-template/index.js +3559 -0
- package/types/index.d.ts +14 -0
- package/types/index.d.ts.map +1 -0
- package/types/index.js +108 -0
- package/types/ui-config.d.ts +639 -0
- package/types/ui-config.d.ts.map +1 -0
- package/types/ui-runtime.d.ts +1007 -0
- package/types/ui-runtime.d.ts.map +1 -0
- package/typings/cache/cache-adapter.d.ts +125 -0
- package/typings/cache/cache-adapter.d.ts.map +1 -0
- package/typings/cache/index.d.ts +10 -0
- package/typings/cache/index.d.ts.map +1 -0
- package/typings/cache/memory-cache.d.ts +92 -0
- package/typings/cache/memory-cache.d.ts.map +1 -0
- package/typings/dts-parser.d.ts +90 -0
- package/typings/dts-parser.d.ts.map +1 -0
- package/typings/index.d.ts +48 -0
- package/typings/index.d.ts.map +1 -0
- package/typings/schemas.d.ts +232 -0
- package/typings/schemas.d.ts.map +1 -0
- package/typings/type-fetcher.d.ts +89 -0
- package/typings/type-fetcher.d.ts.map +1 -0
- package/typings/types.d.ts +320 -0
- package/typings/types.d.ts.map +1 -0
- package/universal/UniversalApp.d.ts +108 -0
- package/universal/UniversalApp.d.ts.map +1 -0
- package/universal/cached-runtime.d.ts +115 -0
- package/universal/cached-runtime.d.ts.map +1 -0
- package/universal/context.d.ts +122 -0
- package/universal/context.d.ts.map +1 -0
- package/universal/index.d.ts +57 -0
- package/universal/index.d.ts.map +1 -0
- package/universal/renderers/html.renderer.d.ts +37 -0
- package/universal/renderers/html.renderer.d.ts.map +1 -0
- package/universal/renderers/index.d.ts +112 -0
- package/universal/renderers/index.d.ts.map +1 -0
- package/universal/renderers/markdown.renderer.d.ts +33 -0
- package/universal/renderers/markdown.renderer.d.ts.map +1 -0
- package/universal/renderers/mdx.renderer.d.ts +38 -0
- package/universal/renderers/mdx.renderer.d.ts.map +1 -0
- package/universal/renderers/react.renderer.d.ts +46 -0
- package/universal/renderers/react.renderer.d.ts.map +1 -0
- package/universal/runtime-builder.d.ts +33 -0
- package/universal/runtime-builder.d.ts.map +1 -0
- package/universal/store.d.ts +135 -0
- package/universal/store.d.ts.map +1 -0
- package/universal/types.d.ts +199 -0
- package/universal/types.d.ts.map +1 -0
- package/utils/escape-html.d.ts +58 -0
- package/utils/escape-html.d.ts.map +1 -0
- package/utils/index.d.ts +10 -0
- package/utils/index.d.ts.map +1 -0
- package/utils/index.js +70 -0
- package/utils/safe-stringify.d.ts +30 -0
- package/utils/safe-stringify.d.ts.map +1 -0
- package/validation/error-box.d.ts +56 -0
- package/validation/error-box.d.ts.map +1 -0
- package/validation/index.d.ts +13 -0
- package/validation/index.d.ts.map +1 -0
- package/validation/index.js +603 -0
- package/validation/schema-paths.d.ts +118 -0
- package/validation/schema-paths.d.ts.map +1 -0
- package/validation/template-validator.d.ts +143 -0
- package/validation/template-validator.d.ts.map +1 -0
- package/validation/wrapper.d.ts +97 -0
- package/validation/wrapper.d.ts.map +1 -0
- package/web-components/core/attribute-parser.d.ts +82 -0
- package/web-components/core/attribute-parser.d.ts.map +1 -0
- package/web-components/core/base-element.d.ts +197 -0
- package/web-components/core/base-element.d.ts.map +1 -0
- package/web-components/core/index.d.ts +9 -0
- package/web-components/core/index.d.ts.map +1 -0
- package/web-components/elements/fmcp-alert.d.ts +46 -0
- package/web-components/elements/fmcp-alert.d.ts.map +1 -0
- package/web-components/elements/fmcp-badge.d.ts +47 -0
- package/web-components/elements/fmcp-badge.d.ts.map +1 -0
- package/web-components/elements/fmcp-button.d.ts +117 -0
- package/web-components/elements/fmcp-button.d.ts.map +1 -0
- package/web-components/elements/fmcp-card.d.ts +53 -0
- package/web-components/elements/fmcp-card.d.ts.map +1 -0
- package/web-components/elements/fmcp-input.d.ts +96 -0
- package/web-components/elements/fmcp-input.d.ts.map +1 -0
- package/web-components/elements/fmcp-select.d.ts +100 -0
- package/web-components/elements/fmcp-select.d.ts.map +1 -0
- package/web-components/elements/index.d.ts +13 -0
- package/web-components/elements/index.d.ts.map +1 -0
- package/web-components/index.d.ts +50 -0
- package/web-components/index.d.ts.map +1 -0
- package/web-components/index.js +2093 -0
- package/web-components/register.d.ts +57 -0
- package/web-components/register.d.ts.map +1 -0
- package/web-components/types.d.ts +122 -0
- package/web-components/types.d.ts.map +1 -0
- package/widgets/index.d.ts +8 -0
- package/widgets/index.d.ts.map +1 -0
- package/widgets/index.js +978 -0
- package/widgets/progress.d.ts +133 -0
- package/widgets/progress.d.ts.map +1 -0
- package/widgets/resource.d.ts +163 -0
- package/widgets/resource.d.ts.map +1 -0
- package/src/adapters/index.d.ts +0 -10
- package/src/adapters/index.js +0 -18
- package/src/adapters/index.js.map +0 -1
- package/src/adapters/platform-meta.d.ts +0 -165
- package/src/adapters/platform-meta.js +0 -310
- package/src/adapters/platform-meta.js.map +0 -1
- package/src/base-template/bridge.d.ts +0 -89
- package/src/base-template/bridge.js +0 -452
- package/src/base-template/bridge.js.map +0 -1
- package/src/base-template/default-base-template.d.ts +0 -91
- package/src/base-template/default-base-template.js +0 -435
- package/src/base-template/default-base-template.js.map +0 -1
- package/src/base-template/index.d.ts +0 -14
- package/src/base-template/index.js +0 -30
- package/src/base-template/index.js.map +0 -1
- package/src/base-template/polyfills.d.ts +0 -30
- package/src/base-template/polyfills.js +0 -190
- package/src/base-template/polyfills.js.map +0 -1
- package/src/base-template/theme-styles.d.ts +0 -73
- package/src/base-template/theme-styles.js +0 -95
- package/src/base-template/theme-styles.js.map +0 -1
- package/src/bridge/adapters/base-adapter.d.ts +0 -103
- package/src/bridge/adapters/base-adapter.js +0 -314
- package/src/bridge/adapters/base-adapter.js.map +0 -1
- package/src/bridge/adapters/claude.adapter.d.ts +0 -66
- package/src/bridge/adapters/claude.adapter.js +0 -145
- package/src/bridge/adapters/claude.adapter.js.map +0 -1
- package/src/bridge/adapters/ext-apps.adapter.d.ts +0 -142
- package/src/bridge/adapters/ext-apps.adapter.js +0 -416
- package/src/bridge/adapters/ext-apps.adapter.js.map +0 -1
- package/src/bridge/adapters/gemini.adapter.d.ts +0 -63
- package/src/bridge/adapters/gemini.adapter.js +0 -160
- package/src/bridge/adapters/gemini.adapter.js.map +0 -1
- package/src/bridge/adapters/generic.adapter.d.ts +0 -55
- package/src/bridge/adapters/generic.adapter.js +0 -108
- package/src/bridge/adapters/generic.adapter.js.map +0 -1
- package/src/bridge/adapters/index.d.ts +0 -25
- package/src/bridge/adapters/index.js +0 -65
- package/src/bridge/adapters/index.js.map +0 -1
- package/src/bridge/adapters/openai.adapter.d.ts +0 -64
- package/src/bridge/adapters/openai.adapter.js +0 -194
- package/src/bridge/adapters/openai.adapter.js.map +0 -1
- package/src/bridge/core/adapter-registry.d.ts +0 -121
- package/src/bridge/core/adapter-registry.js +0 -271
- package/src/bridge/core/adapter-registry.js.map +0 -1
- package/src/bridge/core/bridge-factory.d.ts +0 -198
- package/src/bridge/core/bridge-factory.js +0 -428
- package/src/bridge/core/bridge-factory.js.map +0 -1
- package/src/bridge/core/index.d.ts +0 -9
- package/src/bridge/core/index.js +0 -22
- package/src/bridge/core/index.js.map +0 -1
- package/src/bridge/index.d.ts +0 -61
- package/src/bridge/index.js +0 -94
- package/src/bridge/index.js.map +0 -1
- package/src/bridge/runtime/iife-generator.d.ts +0 -61
- package/src/bridge/runtime/iife-generator.js +0 -940
- package/src/bridge/runtime/iife-generator.js.map +0 -1
- package/src/bridge/runtime/index.d.ts +0 -8
- package/src/bridge/runtime/index.js +0 -16
- package/src/bridge/runtime/index.js.map +0 -1
- package/src/bridge/types.d.ts +0 -385
- package/src/bridge/types.js +0 -11
- package/src/bridge/types.js.map +0 -1
- package/src/build/cdn-resources.d.ts +0 -140
- package/src/build/cdn-resources.js +0 -314
- package/src/build/cdn-resources.js.map +0 -1
- package/src/build/index.d.ts +0 -294
- package/src/build/index.js +0 -325
- package/src/build/index.js.map +0 -1
- package/src/build/widget-manifest.d.ts +0 -212
- package/src/build/widget-manifest.js +0 -652
- package/src/build/widget-manifest.js.map +0 -1
- package/src/bundler/bundler.d.ts +0 -110
- package/src/bundler/bundler.js +0 -432
- package/src/bundler/bundler.js.map +0 -1
- package/src/bundler/cache.d.ts +0 -172
- package/src/bundler/cache.js +0 -250
- package/src/bundler/cache.js.map +0 -1
- package/src/bundler/index.d.ts +0 -41
- package/src/bundler/index.js +0 -73
- package/src/bundler/index.js.map +0 -1
- package/src/bundler/sandbox/enclave-adapter.d.ts +0 -120
- package/src/bundler/sandbox/enclave-adapter.js +0 -339
- package/src/bundler/sandbox/enclave-adapter.js.map +0 -1
- package/src/bundler/sandbox/executor.d.ts +0 -13
- package/src/bundler/sandbox/executor.js +0 -22
- package/src/bundler/sandbox/executor.js.map +0 -1
- package/src/bundler/sandbox/policy.d.ts +0 -61
- package/src/bundler/sandbox/policy.js +0 -238
- package/src/bundler/sandbox/policy.js.map +0 -1
- package/src/bundler/types.d.ts +0 -347
- package/src/bundler/types.js +0 -132
- package/src/bundler/types.js.map +0 -1
- package/src/components/alert.d.ts +0 -71
- package/src/components/alert.js +0 -189
- package/src/components/alert.js.map +0 -1
- package/src/components/alert.schema.d.ts +0 -114
- package/src/components/alert.schema.js +0 -105
- package/src/components/alert.schema.js.map +0 -1
- package/src/components/avatar.d.ts +0 -76
- package/src/components/avatar.js +0 -176
- package/src/components/avatar.js.map +0 -1
- package/src/components/avatar.schema.d.ts +0 -169
- package/src/components/avatar.schema.js +0 -103
- package/src/components/avatar.schema.js.map +0 -1
- package/src/components/badge.d.ts +0 -70
- package/src/components/badge.js +0 -149
- package/src/components/badge.js.map +0 -1
- package/src/components/badge.schema.d.ts +0 -109
- package/src/components/badge.schema.js +0 -96
- package/src/components/badge.schema.js.map +0 -1
- package/src/components/button.d.ts +0 -111
- package/src/components/button.js +0 -336
- package/src/components/button.js.map +0 -1
- package/src/components/button.schema.d.ts +0 -148
- package/src/components/button.schema.js +0 -121
- package/src/components/button.schema.js.map +0 -1
- package/src/components/card.d.ts +0 -60
- package/src/components/card.js +0 -117
- package/src/components/card.js.map +0 -1
- package/src/components/card.schema.d.ts +0 -113
- package/src/components/card.schema.js +0 -98
- package/src/components/card.schema.js.map +0 -1
- package/src/components/form.d.ts +0 -239
- package/src/components/form.js +0 -420
- package/src/components/form.js.map +0 -1
- package/src/components/form.schema.d.ts +0 -441
- package/src/components/form.schema.js +0 -406
- package/src/components/form.schema.js.map +0 -1
- package/src/components/index.d.ts +0 -29
- package/src/components/index.js +0 -98
- package/src/components/index.js.map +0 -1
- package/src/components/list.d.ts +0 -127
- package/src/components/list.js +0 -279
- package/src/components/list.js.map +0 -1
- package/src/components/list.schema.d.ts +0 -134
- package/src/components/list.schema.js +0 -168
- package/src/components/list.schema.js.map +0 -1
- package/src/components/modal.d.ts +0 -111
- package/src/components/modal.js +0 -260
- package/src/components/modal.js.map +0 -1
- package/src/components/modal.schema.d.ts +0 -186
- package/src/components/modal.schema.js +0 -167
- package/src/components/modal.schema.js.map +0 -1
- package/src/components/table.d.ts +0 -105
- package/src/components/table.js +0 -283
- package/src/components/table.js.map +0 -1
- package/src/components/table.schema.d.ts +0 -159
- package/src/components/table.schema.js +0 -173
- package/src/components/table.schema.js.map +0 -1
- package/src/handlebars/helpers.d.ts +0 -348
- package/src/handlebars/helpers.js +0 -605
- package/src/handlebars/helpers.js.map +0 -1
- package/src/handlebars/index.d.ts +0 -193
- package/src/handlebars/index.js +0 -350
- package/src/handlebars/index.js.map +0 -1
- package/src/index.d.ts +0 -50
- package/src/index.js +0 -192
- package/src/index.js.map +0 -1
- package/src/layouts/base.d.ts +0 -88
- package/src/layouts/base.js +0 -227
- package/src/layouts/base.js.map +0 -1
- package/src/layouts/index.d.ts +0 -7
- package/src/layouts/index.js +0 -25
- package/src/layouts/index.js.map +0 -1
- package/src/layouts/presets.d.ts +0 -133
- package/src/layouts/presets.js +0 -277
- package/src/layouts/presets.js.map +0 -1
- package/src/pages/consent.d.ts +0 -116
- package/src/pages/consent.js +0 -218
- package/src/pages/consent.js.map +0 -1
- package/src/pages/error.d.ts +0 -100
- package/src/pages/error.js +0 -263
- package/src/pages/error.js.map +0 -1
- package/src/pages/index.d.ts +0 -8
- package/src/pages/index.js +0 -27
- package/src/pages/index.js.map +0 -1
- package/src/react/Alert.d.ts +0 -101
- package/src/react/Alert.js +0 -51
- package/src/react/Alert.js.map +0 -1
- package/src/react/Badge.d.ts +0 -100
- package/src/react/Badge.js +0 -55
- package/src/react/Badge.js.map +0 -1
- package/src/react/Button.d.ts +0 -108
- package/src/react/Button.js +0 -52
- package/src/react/Button.js.map +0 -1
- package/src/react/Card.d.ts +0 -103
- package/src/react/Card.js +0 -55
- package/src/react/Card.js.map +0 -1
- package/src/react/hooks/context.d.ts +0 -178
- package/src/react/hooks/context.js +0 -287
- package/src/react/hooks/context.js.map +0 -1
- package/src/react/hooks/index.d.ts +0 -41
- package/src/react/hooks/index.js +0 -61
- package/src/react/hooks/index.js.map +0 -1
- package/src/react/hooks/tools.d.ts +0 -283
- package/src/react/hooks/tools.js +0 -465
- package/src/react/hooks/tools.js.map +0 -1
- package/src/react/index.d.ts +0 -80
- package/src/react/index.js +0 -113
- package/src/react/index.js.map +0 -1
- package/src/react/types.d.ts +0 -105
- package/src/react/types.js +0 -12
- package/src/react/types.js.map +0 -1
- package/src/react/utils.d.ts +0 -42
- package/src/react/utils.js +0 -99
- package/src/react/utils.js.map +0 -1
- package/src/registry/index.d.ts +0 -45
- package/src/registry/index.js +0 -67
- package/src/registry/index.js.map +0 -1
- package/src/registry/render-template.d.ts +0 -86
- package/src/registry/render-template.js +0 -239
- package/src/registry/render-template.js.map +0 -1
- package/src/registry/tool-ui.registry.d.ts +0 -260
- package/src/registry/tool-ui.registry.js +0 -438
- package/src/registry/tool-ui.registry.js.map +0 -1
- package/src/registry/uri-utils.d.ts +0 -55
- package/src/registry/uri-utils.js +0 -97
- package/src/registry/uri-utils.js.map +0 -1
- package/src/render/index.d.ts +0 -7
- package/src/render/index.js +0 -14
- package/src/render/index.js.map +0 -1
- package/src/render/prerender.d.ts +0 -56
- package/src/render/prerender.js +0 -98
- package/src/render/prerender.js.map +0 -1
- package/src/renderers/cache.d.ts +0 -144
- package/src/renderers/cache.js +0 -240
- package/src/renderers/cache.js.map +0 -1
- package/src/renderers/html.renderer.d.ts +0 -122
- package/src/renderers/html.renderer.js +0 -204
- package/src/renderers/html.renderer.js.map +0 -1
- package/src/renderers/index.d.ts +0 -35
- package/src/renderers/index.js +0 -70
- package/src/renderers/index.js.map +0 -1
- package/src/renderers/mdx.renderer.d.ts +0 -119
- package/src/renderers/mdx.renderer.js +0 -305
- package/src/renderers/mdx.renderer.js.map +0 -1
- package/src/renderers/react.renderer.d.ts +0 -95
- package/src/renderers/react.renderer.js +0 -260
- package/src/renderers/react.renderer.js.map +0 -1
- package/src/renderers/registry.d.ts +0 -133
- package/src/renderers/registry.js +0 -232
- package/src/renderers/registry.js.map +0 -1
- package/src/renderers/types.d.ts +0 -341
- package/src/renderers/types.js +0 -9
- package/src/renderers/types.js.map +0 -1
- package/src/renderers/utils/detect.d.ts +0 -106
- package/src/renderers/utils/detect.js +0 -267
- package/src/renderers/utils/detect.js.map +0 -1
- package/src/renderers/utils/hash.d.ts +0 -39
- package/src/renderers/utils/hash.js +0 -75
- package/src/renderers/utils/hash.js.map +0 -1
- package/src/renderers/utils/index.d.ts +0 -8
- package/src/renderers/utils/index.js +0 -28
- package/src/renderers/utils/index.js.map +0 -1
- package/src/renderers/utils/transpiler.d.ts +0 -88
- package/src/renderers/utils/transpiler.js +0 -215
- package/src/renderers/utils/transpiler.js.map +0 -1
- package/src/runtime/adapters/html.adapter.d.ts +0 -58
- package/src/runtime/adapters/html.adapter.js +0 -131
- package/src/runtime/adapters/html.adapter.js.map +0 -1
- package/src/runtime/adapters/index.d.ts +0 -25
- package/src/runtime/adapters/index.js +0 -54
- package/src/runtime/adapters/index.js.map +0 -1
- package/src/runtime/adapters/mdx.adapter.d.ts +0 -72
- package/src/runtime/adapters/mdx.adapter.js +0 -241
- package/src/runtime/adapters/mdx.adapter.js.map +0 -1
- package/src/runtime/adapters/react.adapter.d.ts +0 -69
- package/src/runtime/adapters/react.adapter.js +0 -245
- package/src/runtime/adapters/react.adapter.js.map +0 -1
- package/src/runtime/adapters/types.d.ts +0 -94
- package/src/runtime/adapters/types.js +0 -11
- package/src/runtime/adapters/types.js.map +0 -1
- package/src/runtime/csp.d.ts +0 -37
- package/src/runtime/csp.js +0 -140
- package/src/runtime/csp.js.map +0 -1
- package/src/runtime/index.d.ts +0 -16
- package/src/runtime/index.js +0 -72
- package/src/runtime/index.js.map +0 -1
- package/src/runtime/mcp-bridge.d.ts +0 -100
- package/src/runtime/mcp-bridge.js +0 -581
- package/src/runtime/mcp-bridge.js.map +0 -1
- package/src/runtime/renderer-runtime.d.ts +0 -132
- package/src/runtime/renderer-runtime.js +0 -389
- package/src/runtime/renderer-runtime.js.map +0 -1
- package/src/runtime/sanitizer.d.ts +0 -171
- package/src/runtime/sanitizer.js +0 -318
- package/src/runtime/sanitizer.js.map +0 -1
- package/src/runtime/types.d.ts +0 -414
- package/src/runtime/types.js +0 -12
- package/src/runtime/types.js.map +0 -1
- package/src/runtime/wrapper.d.ts +0 -375
- package/src/runtime/wrapper.js +0 -1793
- package/src/runtime/wrapper.js.map +0 -1
- package/src/styles/index.d.ts +0 -7
- package/src/styles/index.js +0 -11
- package/src/styles/index.js.map +0 -1
- package/src/styles/variants.d.ts +0 -50
- package/src/styles/variants.js +0 -175
- package/src/styles/variants.js.map +0 -1
- package/src/theme/cdn.d.ts +0 -194
- package/src/theme/cdn.js +0 -375
- package/src/theme/cdn.js.map +0 -1
- package/src/theme/index.d.ts +0 -17
- package/src/theme/index.js +0 -57
- package/src/theme/index.js.map +0 -1
- package/src/theme/platforms.d.ts +0 -106
- package/src/theme/platforms.js +0 -161
- package/src/theme/platforms.js.map +0 -1
- package/src/theme/presets/github-openai.d.ts +0 -49
- package/src/theme/presets/github-openai.js +0 -189
- package/src/theme/presets/github-openai.js.map +0 -1
- package/src/theme/presets/index.d.ts +0 -10
- package/src/theme/presets/index.js +0 -17
- package/src/theme/presets/index.js.map +0 -1
- package/src/theme/theme.d.ts +0 -395
- package/src/theme/theme.js +0 -332
- package/src/theme/theme.js.map +0 -1
- package/src/tool-template/builder.d.ts +0 -212
- package/src/tool-template/builder.js +0 -397
- package/src/tool-template/builder.js.map +0 -1
- package/src/tool-template/index.d.ts +0 -15
- package/src/tool-template/index.js +0 -38
- package/src/tool-template/index.js.map +0 -1
- package/src/types/index.d.ts +0 -13
- package/src/types/index.js +0 -26
- package/src/types/index.js.map +0 -1
- package/src/types/ui-config.d.ts +0 -357
- package/src/types/ui-config.js +0 -12
- package/src/types/ui-config.js.map +0 -1
- package/src/types/ui-runtime.d.ts +0 -965
- package/src/types/ui-runtime.js +0 -117
- package/src/types/ui-runtime.js.map +0 -1
- package/src/validation/error-box.d.ts +0 -55
- package/src/validation/error-box.js +0 -75
- package/src/validation/error-box.js.map +0 -1
- package/src/validation/index.d.ts +0 -12
- package/src/validation/index.js +0 -21
- package/src/validation/index.js.map +0 -1
- package/src/validation/wrapper.d.ts +0 -96
- package/src/validation/wrapper.js +0 -117
- package/src/validation/wrapper.js.map +0 -1
- package/src/web-components/core/attribute-parser.d.ts +0 -85
- package/src/web-components/core/attribute-parser.js +0 -189
- package/src/web-components/core/attribute-parser.js.map +0 -1
- package/src/web-components/core/base-element.d.ts +0 -197
- package/src/web-components/core/base-element.js +0 -289
- package/src/web-components/core/base-element.js.map +0 -1
- package/src/web-components/core/index.d.ts +0 -8
- package/src/web-components/core/index.js +0 -18
- package/src/web-components/core/index.js.map +0 -1
- package/src/web-components/elements/fmcp-alert.d.ts +0 -45
- package/src/web-components/elements/fmcp-alert.js +0 -93
- package/src/web-components/elements/fmcp-alert.js.map +0 -1
- package/src/web-components/elements/fmcp-badge.d.ts +0 -46
- package/src/web-components/elements/fmcp-badge.js +0 -99
- package/src/web-components/elements/fmcp-badge.js.map +0 -1
- package/src/web-components/elements/fmcp-button.d.ts +0 -124
- package/src/web-components/elements/fmcp-button.js +0 -233
- package/src/web-components/elements/fmcp-button.js.map +0 -1
- package/src/web-components/elements/fmcp-card.d.ts +0 -52
- package/src/web-components/elements/fmcp-card.js +0 -115
- package/src/web-components/elements/fmcp-card.js.map +0 -1
- package/src/web-components/elements/fmcp-input.d.ts +0 -95
- package/src/web-components/elements/fmcp-input.js +0 -248
- package/src/web-components/elements/fmcp-input.js.map +0 -1
- package/src/web-components/elements/fmcp-select.d.ts +0 -99
- package/src/web-components/elements/fmcp-select.js +0 -243
- package/src/web-components/elements/fmcp-select.js.map +0 -1
- package/src/web-components/elements/index.d.ts +0 -12
- package/src/web-components/elements/index.js +0 -34
- package/src/web-components/elements/index.js.map +0 -1
- package/src/web-components/index.d.ts +0 -49
- package/src/web-components/index.js +0 -75
- package/src/web-components/index.js.map +0 -1
- package/src/web-components/register.d.ts +0 -56
- package/src/web-components/register.js +0 -80
- package/src/web-components/register.js.map +0 -1
- package/src/web-components/types.d.ts +0 -121
- package/src/web-components/types.js +0 -25
- package/src/web-components/types.js.map +0 -1
- package/src/widgets/index.d.ts +0 -7
- package/src/widgets/index.js +0 -24
- package/src/widgets/index.js.map +0 -1
- package/src/widgets/progress.d.ts +0 -132
- package/src/widgets/progress.js +0 -303
- package/src/widgets/progress.js.map +0 -1
- package/src/widgets/resource.d.ts +0 -162
- package/src/widgets/resource.js +0 -340
- package/src/widgets/resource.js.map +0 -1
|
@@ -1,605 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Handlebars Built-in Helpers
|
|
4
|
-
*
|
|
5
|
-
* Provides a collection of helper functions for Handlebars templates.
|
|
6
|
-
* Includes formatting, escaping, conditionals, and iteration helpers.
|
|
7
|
-
*
|
|
8
|
-
* @packageDocumentation
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.builtinHelpers = void 0;
|
|
12
|
-
exports.escapeHtml = escapeHtml;
|
|
13
|
-
exports.formatDate = formatDate;
|
|
14
|
-
exports.formatCurrency = formatCurrency;
|
|
15
|
-
exports.formatNumber = formatNumber;
|
|
16
|
-
exports.jsonEmbed = jsonEmbed;
|
|
17
|
-
exports.json = json;
|
|
18
|
-
exports.eq = eq;
|
|
19
|
-
exports.ne = ne;
|
|
20
|
-
exports.gt = gt;
|
|
21
|
-
exports.gte = gte;
|
|
22
|
-
exports.lt = lt;
|
|
23
|
-
exports.lte = lte;
|
|
24
|
-
exports.and = and;
|
|
25
|
-
exports.or = or;
|
|
26
|
-
exports.not = not;
|
|
27
|
-
exports.first = first;
|
|
28
|
-
exports.last = last;
|
|
29
|
-
exports.length = length;
|
|
30
|
-
exports.includes = includes;
|
|
31
|
-
exports.join = join;
|
|
32
|
-
exports.uppercase = uppercase;
|
|
33
|
-
exports.lowercase = lowercase;
|
|
34
|
-
exports.capitalize = capitalize;
|
|
35
|
-
exports.truncate = truncate;
|
|
36
|
-
exports.defaultValue = defaultValue;
|
|
37
|
-
exports.uniqueId = uniqueId;
|
|
38
|
-
exports.resetUniqueIdCounter = resetUniqueIdCounter;
|
|
39
|
-
exports.classNames = classNames;
|
|
40
|
-
/**
|
|
41
|
-
* Escape HTML special characters to prevent XSS.
|
|
42
|
-
*
|
|
43
|
-
* @param str - String to escape
|
|
44
|
-
* @returns Escaped string safe for HTML output
|
|
45
|
-
*
|
|
46
|
-
* @example
|
|
47
|
-
* ```handlebars
|
|
48
|
-
* {{escapeHtml output.userInput}}
|
|
49
|
-
* ```
|
|
50
|
-
*/
|
|
51
|
-
function escapeHtml(str) {
|
|
52
|
-
if (str === null || str === undefined) {
|
|
53
|
-
return '';
|
|
54
|
-
}
|
|
55
|
-
const s = String(str);
|
|
56
|
-
return s
|
|
57
|
-
.replace(/&/g, '&')
|
|
58
|
-
.replace(/</g, '<')
|
|
59
|
-
.replace(/>/g, '>')
|
|
60
|
-
.replace(/"/g, '"')
|
|
61
|
-
.replace(/'/g, ''');
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Format a date for display.
|
|
65
|
-
*
|
|
66
|
-
* @param date - Date object, ISO string, or timestamp
|
|
67
|
-
* @param format - Optional format string (default: localized date)
|
|
68
|
-
* @returns Formatted date string
|
|
69
|
-
*
|
|
70
|
-
* @example
|
|
71
|
-
* ```handlebars
|
|
72
|
-
* {{formatDate output.createdAt}}
|
|
73
|
-
* {{formatDate output.createdAt "short"}}
|
|
74
|
-
* {{formatDate output.createdAt "long"}}
|
|
75
|
-
* ```
|
|
76
|
-
*/
|
|
77
|
-
function formatDate(date, format) {
|
|
78
|
-
if (date === null || date === undefined) {
|
|
79
|
-
return '';
|
|
80
|
-
}
|
|
81
|
-
let dateObj;
|
|
82
|
-
if (date instanceof Date) {
|
|
83
|
-
dateObj = date;
|
|
84
|
-
}
|
|
85
|
-
else if (typeof date === 'string' || typeof date === 'number') {
|
|
86
|
-
dateObj = new Date(date);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
return String(date);
|
|
90
|
-
}
|
|
91
|
-
if (isNaN(dateObj.getTime())) {
|
|
92
|
-
return String(date);
|
|
93
|
-
}
|
|
94
|
-
const options = {};
|
|
95
|
-
switch (format) {
|
|
96
|
-
case 'short':
|
|
97
|
-
options.dateStyle = 'short';
|
|
98
|
-
break;
|
|
99
|
-
case 'medium':
|
|
100
|
-
options.dateStyle = 'medium';
|
|
101
|
-
break;
|
|
102
|
-
case 'long':
|
|
103
|
-
options.dateStyle = 'long';
|
|
104
|
-
break;
|
|
105
|
-
case 'full':
|
|
106
|
-
options.dateStyle = 'full';
|
|
107
|
-
break;
|
|
108
|
-
case 'time':
|
|
109
|
-
options.timeStyle = 'short';
|
|
110
|
-
break;
|
|
111
|
-
case 'datetime':
|
|
112
|
-
options.dateStyle = 'medium';
|
|
113
|
-
options.timeStyle = 'short';
|
|
114
|
-
break;
|
|
115
|
-
case 'iso':
|
|
116
|
-
return dateObj.toISOString();
|
|
117
|
-
case 'relative':
|
|
118
|
-
return formatRelativeDate(dateObj);
|
|
119
|
-
default:
|
|
120
|
-
options.dateStyle = 'medium';
|
|
121
|
-
}
|
|
122
|
-
return new Intl.DateTimeFormat('en-US', options).format(dateObj);
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Format a date relative to now.
|
|
126
|
-
*/
|
|
127
|
-
function formatRelativeDate(date) {
|
|
128
|
-
const now = new Date();
|
|
129
|
-
const diffMs = now.getTime() - date.getTime();
|
|
130
|
-
const diffSecs = Math.floor(diffMs / 1000);
|
|
131
|
-
const diffMins = Math.floor(diffSecs / 60);
|
|
132
|
-
const diffHours = Math.floor(diffMins / 60);
|
|
133
|
-
const diffDays = Math.floor(diffHours / 24);
|
|
134
|
-
if (diffSecs < 60) {
|
|
135
|
-
return 'just now';
|
|
136
|
-
}
|
|
137
|
-
else if (diffMins < 60) {
|
|
138
|
-
return `${diffMins} minute${diffMins === 1 ? '' : 's'} ago`;
|
|
139
|
-
}
|
|
140
|
-
else if (diffHours < 24) {
|
|
141
|
-
return `${diffHours} hour${diffHours === 1 ? '' : 's'} ago`;
|
|
142
|
-
}
|
|
143
|
-
else if (diffDays < 7) {
|
|
144
|
-
return `${diffDays} day${diffDays === 1 ? '' : 's'} ago`;
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
return formatDate(date, 'medium');
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Format a number as currency.
|
|
152
|
-
*
|
|
153
|
-
* @param amount - Numeric amount
|
|
154
|
-
* @param currency - ISO 4217 currency code (default: 'USD')
|
|
155
|
-
* @returns Formatted currency string
|
|
156
|
-
*
|
|
157
|
-
* @example
|
|
158
|
-
* ```handlebars
|
|
159
|
-
* {{formatCurrency output.price}}
|
|
160
|
-
* {{formatCurrency output.price "EUR"}}
|
|
161
|
-
* ```
|
|
162
|
-
*/
|
|
163
|
-
function formatCurrency(amount, currency) {
|
|
164
|
-
if (amount === null || amount === undefined) {
|
|
165
|
-
return '';
|
|
166
|
-
}
|
|
167
|
-
const num = typeof amount === 'number' ? amount : parseFloat(String(amount));
|
|
168
|
-
if (isNaN(num)) {
|
|
169
|
-
return String(amount);
|
|
170
|
-
}
|
|
171
|
-
return new Intl.NumberFormat('en-US', {
|
|
172
|
-
style: 'currency',
|
|
173
|
-
currency: typeof currency === 'string' ? currency : 'USD',
|
|
174
|
-
}).format(num);
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Format a number with locale-aware separators.
|
|
178
|
-
*
|
|
179
|
-
* @param value - Number to format
|
|
180
|
-
* @param decimals - Number of decimal places (optional)
|
|
181
|
-
* @returns Formatted number string
|
|
182
|
-
*
|
|
183
|
-
* @example
|
|
184
|
-
* ```handlebars
|
|
185
|
-
* {{formatNumber output.count}}
|
|
186
|
-
* {{formatNumber output.percentage 2}}
|
|
187
|
-
* ```
|
|
188
|
-
*/
|
|
189
|
-
function formatNumber(value, decimals) {
|
|
190
|
-
if (value === null || value === undefined) {
|
|
191
|
-
return '';
|
|
192
|
-
}
|
|
193
|
-
const num = typeof value === 'number' ? value : parseFloat(String(value));
|
|
194
|
-
if (isNaN(num)) {
|
|
195
|
-
return String(value);
|
|
196
|
-
}
|
|
197
|
-
const options = {};
|
|
198
|
-
if (typeof decimals === 'number') {
|
|
199
|
-
options.minimumFractionDigits = decimals;
|
|
200
|
-
options.maximumFractionDigits = decimals;
|
|
201
|
-
}
|
|
202
|
-
return new Intl.NumberFormat('en-US', options).format(num);
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Safely embed JSON data in HTML.
|
|
206
|
-
* Escapes script-breaking characters.
|
|
207
|
-
*
|
|
208
|
-
* @param data - Data to serialize
|
|
209
|
-
* @returns JSON string safe for embedding
|
|
210
|
-
*
|
|
211
|
-
* @example
|
|
212
|
-
* ```handlebars
|
|
213
|
-
* <script type="application/json" id="data">
|
|
214
|
-
* {{{jsonEmbed output}}}
|
|
215
|
-
* </script>
|
|
216
|
-
* ```
|
|
217
|
-
*/
|
|
218
|
-
function jsonEmbed(data) {
|
|
219
|
-
const json = JSON.stringify(data ?? null);
|
|
220
|
-
// Escape characters that could break out of script tags
|
|
221
|
-
return json
|
|
222
|
-
.replace(/</g, '\\u003c')
|
|
223
|
-
.replace(/>/g, '\\u003e')
|
|
224
|
-
.replace(/&/g, '\\u0026')
|
|
225
|
-
.replace(/\u2028/g, '\\u2028')
|
|
226
|
-
.replace(/\u2029/g, '\\u2029');
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Convert data to JSON string.
|
|
230
|
-
*
|
|
231
|
-
* @param data - Data to serialize
|
|
232
|
-
* @param pretty - Whether to pretty-print (optional)
|
|
233
|
-
* @returns JSON string
|
|
234
|
-
*
|
|
235
|
-
* @example
|
|
236
|
-
* ```handlebars
|
|
237
|
-
* <pre>{{json output true}}</pre>
|
|
238
|
-
* ```
|
|
239
|
-
*/
|
|
240
|
-
function json(data, pretty) {
|
|
241
|
-
return JSON.stringify(data ?? null, null, pretty ? 2 : undefined);
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Equality comparison.
|
|
245
|
-
*
|
|
246
|
-
* @param a - First value
|
|
247
|
-
* @param b - Second value
|
|
248
|
-
* @returns true if values are equal
|
|
249
|
-
*
|
|
250
|
-
* @example
|
|
251
|
-
* ```handlebars
|
|
252
|
-
* {{#if (eq output.status "active")}}Active{{/if}}
|
|
253
|
-
* ```
|
|
254
|
-
*/
|
|
255
|
-
function eq(a, b) {
|
|
256
|
-
return a === b;
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* Inequality comparison.
|
|
260
|
-
*
|
|
261
|
-
* @param a - First value
|
|
262
|
-
* @param b - Second value
|
|
263
|
-
* @returns true if values are not equal
|
|
264
|
-
*
|
|
265
|
-
* @example
|
|
266
|
-
* ```handlebars
|
|
267
|
-
* {{#if (ne output.status "deleted")}}Visible{{/if}}
|
|
268
|
-
* ```
|
|
269
|
-
*/
|
|
270
|
-
function ne(a, b) {
|
|
271
|
-
return a !== b;
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Greater than comparison.
|
|
275
|
-
*
|
|
276
|
-
* @param a - First value
|
|
277
|
-
* @param b - Second value
|
|
278
|
-
* @returns true if a > b
|
|
279
|
-
*
|
|
280
|
-
* @example
|
|
281
|
-
* ```handlebars
|
|
282
|
-
* {{#if (gt output.count 10)}}Many items{{/if}}
|
|
283
|
-
* ```
|
|
284
|
-
*/
|
|
285
|
-
function gt(a, b) {
|
|
286
|
-
return Number(a) > Number(b);
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* Greater than or equal comparison.
|
|
290
|
-
*
|
|
291
|
-
* @param a - First value
|
|
292
|
-
* @param b - Second value
|
|
293
|
-
* @returns true if a >= b
|
|
294
|
-
*/
|
|
295
|
-
function gte(a, b) {
|
|
296
|
-
return Number(a) >= Number(b);
|
|
297
|
-
}
|
|
298
|
-
/**
|
|
299
|
-
* Less than comparison.
|
|
300
|
-
*
|
|
301
|
-
* @param a - First value
|
|
302
|
-
* @param b - Second value
|
|
303
|
-
* @returns true if a < b
|
|
304
|
-
*
|
|
305
|
-
* @example
|
|
306
|
-
* ```handlebars
|
|
307
|
-
* {{#if (lt output.remaining 5)}}Running low{{/if}}
|
|
308
|
-
* ```
|
|
309
|
-
*/
|
|
310
|
-
function lt(a, b) {
|
|
311
|
-
return Number(a) < Number(b);
|
|
312
|
-
}
|
|
313
|
-
/**
|
|
314
|
-
* Less than or equal comparison.
|
|
315
|
-
*
|
|
316
|
-
* @param a - First value
|
|
317
|
-
* @param b - Second value
|
|
318
|
-
* @returns true if a <= b
|
|
319
|
-
*/
|
|
320
|
-
function lte(a, b) {
|
|
321
|
-
return Number(a) <= Number(b);
|
|
322
|
-
}
|
|
323
|
-
/**
|
|
324
|
-
* Logical AND.
|
|
325
|
-
*
|
|
326
|
-
* @param a - First value
|
|
327
|
-
* @param b - Second value
|
|
328
|
-
* @returns true if both values are truthy
|
|
329
|
-
*
|
|
330
|
-
* @example
|
|
331
|
-
* ```handlebars
|
|
332
|
-
* {{#if (and output.enabled output.visible)}}Show content{{/if}}
|
|
333
|
-
* ```
|
|
334
|
-
*/
|
|
335
|
-
function and(a, b) {
|
|
336
|
-
return Boolean(a) && Boolean(b);
|
|
337
|
-
}
|
|
338
|
-
/**
|
|
339
|
-
* Logical OR.
|
|
340
|
-
*
|
|
341
|
-
* @param a - First value
|
|
342
|
-
* @param b - Second value
|
|
343
|
-
* @returns true if either value is truthy
|
|
344
|
-
*
|
|
345
|
-
* @example
|
|
346
|
-
* ```handlebars
|
|
347
|
-
* {{#if (or output.featured output.promoted)}}Highlight{{/if}}
|
|
348
|
-
* ```
|
|
349
|
-
*/
|
|
350
|
-
function or(a, b) {
|
|
351
|
-
return Boolean(a) || Boolean(b);
|
|
352
|
-
}
|
|
353
|
-
/**
|
|
354
|
-
* Logical NOT.
|
|
355
|
-
*
|
|
356
|
-
* @param value - Value to negate
|
|
357
|
-
* @returns Negated boolean
|
|
358
|
-
*
|
|
359
|
-
* @example
|
|
360
|
-
* ```handlebars
|
|
361
|
-
* {{#if (not output.hidden)}}Visible{{/if}}
|
|
362
|
-
* ```
|
|
363
|
-
*/
|
|
364
|
-
function not(value) {
|
|
365
|
-
return !value;
|
|
366
|
-
}
|
|
367
|
-
/**
|
|
368
|
-
* Get the first element of an array.
|
|
369
|
-
*
|
|
370
|
-
* @param arr - Array
|
|
371
|
-
* @returns First element
|
|
372
|
-
*
|
|
373
|
-
* @example
|
|
374
|
-
* ```handlebars
|
|
375
|
-
* {{first output.items}}
|
|
376
|
-
* ```
|
|
377
|
-
*/
|
|
378
|
-
function first(arr) {
|
|
379
|
-
if (!Array.isArray(arr))
|
|
380
|
-
return undefined;
|
|
381
|
-
return arr[0];
|
|
382
|
-
}
|
|
383
|
-
/**
|
|
384
|
-
* Get the last element of an array.
|
|
385
|
-
*
|
|
386
|
-
* @param arr - Array
|
|
387
|
-
* @returns Last element
|
|
388
|
-
*
|
|
389
|
-
* @example
|
|
390
|
-
* ```handlebars
|
|
391
|
-
* {{last output.items}}
|
|
392
|
-
* ```
|
|
393
|
-
*/
|
|
394
|
-
function last(arr) {
|
|
395
|
-
if (!Array.isArray(arr))
|
|
396
|
-
return undefined;
|
|
397
|
-
return arr[arr.length - 1];
|
|
398
|
-
}
|
|
399
|
-
/**
|
|
400
|
-
* Get the length of an array or string.
|
|
401
|
-
*
|
|
402
|
-
* @param value - Array or string
|
|
403
|
-
* @returns Length
|
|
404
|
-
*
|
|
405
|
-
* @example
|
|
406
|
-
* ```handlebars
|
|
407
|
-
* {{length output.items}} items
|
|
408
|
-
* ```
|
|
409
|
-
*/
|
|
410
|
-
function length(value) {
|
|
411
|
-
if (Array.isArray(value))
|
|
412
|
-
return value.length;
|
|
413
|
-
if (typeof value === 'string')
|
|
414
|
-
return value.length;
|
|
415
|
-
return 0;
|
|
416
|
-
}
|
|
417
|
-
/**
|
|
418
|
-
* Check if a value is in an array.
|
|
419
|
-
*
|
|
420
|
-
* @param arr - Array to search
|
|
421
|
-
* @param value - Value to find
|
|
422
|
-
* @returns true if value is in array
|
|
423
|
-
*
|
|
424
|
-
* @example
|
|
425
|
-
* ```handlebars
|
|
426
|
-
* {{#if (includes output.tags "featured")}}Featured{{/if}}
|
|
427
|
-
* ```
|
|
428
|
-
*/
|
|
429
|
-
function includes(arr, value) {
|
|
430
|
-
if (!Array.isArray(arr))
|
|
431
|
-
return false;
|
|
432
|
-
return arr.includes(value);
|
|
433
|
-
}
|
|
434
|
-
/**
|
|
435
|
-
* Join array elements with a separator.
|
|
436
|
-
*
|
|
437
|
-
* @param arr - Array to join
|
|
438
|
-
* @param separator - Separator string (default: ', ')
|
|
439
|
-
* @returns Joined string
|
|
440
|
-
*
|
|
441
|
-
* @example
|
|
442
|
-
* ```handlebars
|
|
443
|
-
* {{join output.tags ", "}}
|
|
444
|
-
* ```
|
|
445
|
-
*/
|
|
446
|
-
function join(arr, separator) {
|
|
447
|
-
if (!Array.isArray(arr))
|
|
448
|
-
return '';
|
|
449
|
-
return arr.join(typeof separator === 'string' ? separator : ', ');
|
|
450
|
-
}
|
|
451
|
-
/**
|
|
452
|
-
* Convert to uppercase.
|
|
453
|
-
*
|
|
454
|
-
* @param str - String to convert
|
|
455
|
-
* @returns Uppercase string
|
|
456
|
-
*
|
|
457
|
-
* @example
|
|
458
|
-
* ```handlebars
|
|
459
|
-
* {{uppercase output.status}}
|
|
460
|
-
* ```
|
|
461
|
-
*/
|
|
462
|
-
function uppercase(str) {
|
|
463
|
-
return String(str ?? '').toUpperCase();
|
|
464
|
-
}
|
|
465
|
-
/**
|
|
466
|
-
* Convert to lowercase.
|
|
467
|
-
*
|
|
468
|
-
* @param str - String to convert
|
|
469
|
-
* @returns Lowercase string
|
|
470
|
-
*
|
|
471
|
-
* @example
|
|
472
|
-
* ```handlebars
|
|
473
|
-
* {{lowercase output.name}}
|
|
474
|
-
* ```
|
|
475
|
-
*/
|
|
476
|
-
function lowercase(str) {
|
|
477
|
-
return String(str ?? '').toLowerCase();
|
|
478
|
-
}
|
|
479
|
-
/**
|
|
480
|
-
* Capitalize the first letter.
|
|
481
|
-
*
|
|
482
|
-
* @param str - String to capitalize
|
|
483
|
-
* @returns Capitalized string
|
|
484
|
-
*
|
|
485
|
-
* @example
|
|
486
|
-
* ```handlebars
|
|
487
|
-
* {{capitalize output.name}}
|
|
488
|
-
* ```
|
|
489
|
-
*/
|
|
490
|
-
function capitalize(str) {
|
|
491
|
-
const s = String(str ?? '');
|
|
492
|
-
return s.charAt(0).toUpperCase() + s.slice(1).toLowerCase();
|
|
493
|
-
}
|
|
494
|
-
/**
|
|
495
|
-
* Truncate a string to a maximum length.
|
|
496
|
-
*
|
|
497
|
-
* @param str - String to truncate
|
|
498
|
-
* @param maxLength - Maximum length
|
|
499
|
-
* @param suffix - Suffix to add if truncated (default: '...')
|
|
500
|
-
* @returns Truncated string
|
|
501
|
-
*
|
|
502
|
-
* @example
|
|
503
|
-
* ```handlebars
|
|
504
|
-
* {{truncate output.description 100}}
|
|
505
|
-
* ```
|
|
506
|
-
*/
|
|
507
|
-
function truncate(str, maxLength, suffix) {
|
|
508
|
-
const s = String(str ?? '');
|
|
509
|
-
const len = typeof maxLength === 'number' ? maxLength : 50;
|
|
510
|
-
const suf = typeof suffix === 'string' ? suffix : '...';
|
|
511
|
-
if (s.length <= len)
|
|
512
|
-
return s;
|
|
513
|
-
return s.slice(0, len - suf.length) + suf;
|
|
514
|
-
}
|
|
515
|
-
/**
|
|
516
|
-
* Provide a default value if the input is falsy.
|
|
517
|
-
*
|
|
518
|
-
* @param value - Value to check
|
|
519
|
-
* @param defaultValue - Default value if falsy
|
|
520
|
-
* @returns Value or default
|
|
521
|
-
*
|
|
522
|
-
* @example
|
|
523
|
-
* ```handlebars
|
|
524
|
-
* {{default output.name "Unknown"}}
|
|
525
|
-
* ```
|
|
526
|
-
*/
|
|
527
|
-
function defaultValue(value, defaultValue) {
|
|
528
|
-
return value || defaultValue;
|
|
529
|
-
}
|
|
530
|
-
/**
|
|
531
|
-
* Generate a unique ID.
|
|
532
|
-
*
|
|
533
|
-
* @param prefix - Optional prefix
|
|
534
|
-
* @returns Unique ID string
|
|
535
|
-
*
|
|
536
|
-
* @example
|
|
537
|
-
* ```handlebars
|
|
538
|
-
* <div id="{{uniqueId 'widget'}}">...</div>
|
|
539
|
-
* ```
|
|
540
|
-
*/
|
|
541
|
-
let idCounter = 0;
|
|
542
|
-
function uniqueId(prefix) {
|
|
543
|
-
const id = ++idCounter;
|
|
544
|
-
return prefix ? `${prefix}-${id}` : `id-${id}`;
|
|
545
|
-
}
|
|
546
|
-
/**
|
|
547
|
-
* Reset the unique ID counter (for testing).
|
|
548
|
-
*/
|
|
549
|
-
function resetUniqueIdCounter() {
|
|
550
|
-
idCounter = 0;
|
|
551
|
-
}
|
|
552
|
-
/**
|
|
553
|
-
* Conditionally join class names.
|
|
554
|
-
*
|
|
555
|
-
* @param classes - Class names (falsy values are filtered)
|
|
556
|
-
* @returns Space-separated class string
|
|
557
|
-
*
|
|
558
|
-
* @example
|
|
559
|
-
* ```handlebars
|
|
560
|
-
* <div class="{{classNames 'base' (if active 'active') (if disabled 'disabled')}}">
|
|
561
|
-
* ```
|
|
562
|
-
*/
|
|
563
|
-
function classNames(...classes) {
|
|
564
|
-
return classes.filter(Boolean).map(String).join(' ');
|
|
565
|
-
}
|
|
566
|
-
/**
|
|
567
|
-
* Collection of all built-in helpers.
|
|
568
|
-
*/
|
|
569
|
-
exports.builtinHelpers = {
|
|
570
|
-
// Escaping
|
|
571
|
-
escapeHtml,
|
|
572
|
-
// Formatting
|
|
573
|
-
formatDate,
|
|
574
|
-
formatCurrency,
|
|
575
|
-
formatNumber,
|
|
576
|
-
json,
|
|
577
|
-
jsonEmbed,
|
|
578
|
-
// Comparison
|
|
579
|
-
eq,
|
|
580
|
-
ne,
|
|
581
|
-
gt,
|
|
582
|
-
gte,
|
|
583
|
-
lt,
|
|
584
|
-
lte,
|
|
585
|
-
// Logical
|
|
586
|
-
and,
|
|
587
|
-
or,
|
|
588
|
-
not,
|
|
589
|
-
// Array
|
|
590
|
-
first,
|
|
591
|
-
last,
|
|
592
|
-
length,
|
|
593
|
-
includes,
|
|
594
|
-
join,
|
|
595
|
-
// String
|
|
596
|
-
uppercase,
|
|
597
|
-
lowercase,
|
|
598
|
-
capitalize,
|
|
599
|
-
truncate,
|
|
600
|
-
// Utility
|
|
601
|
-
default: defaultValue,
|
|
602
|
-
uniqueId,
|
|
603
|
-
classNames,
|
|
604
|
-
};
|
|
605
|
-
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/handlebars/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Handlebars Built-in Helpers\n *\n * Provides a collection of helper functions for Handlebars templates.\n * Includes formatting, escaping, conditionals, and iteration helpers.\n *\n * @packageDocumentation\n */\n\n/**\n * Helper function type for Handlebars.\n * Allows any function signature since Handlebars helpers vary widely.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type HelperFunction = (...args: any[]) => string | boolean | unknown;\n\n/**\n * Escape HTML special characters to prevent XSS.\n *\n * @param str - String to escape\n * @returns Escaped string safe for HTML output\n *\n * @example\n * ```handlebars\n * {{escapeHtml output.userInput}}\n * ```\n */\nexport function escapeHtml(str: unknown): string {\n if (str === null || str === undefined) {\n return '';\n }\n\n const s = String(str);\n return s\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * Format a date for display.\n *\n * @param date - Date object, ISO string, or timestamp\n * @param format - Optional format string (default: localized date)\n * @returns Formatted date string\n *\n * @example\n * ```handlebars\n * {{formatDate output.createdAt}}\n * {{formatDate output.createdAt \"short\"}}\n * {{formatDate output.createdAt \"long\"}}\n * ```\n */\nexport function formatDate(date: unknown, format?: string): string {\n if (date === null || date === undefined) {\n return '';\n }\n\n let dateObj: Date;\n\n if (date instanceof Date) {\n dateObj = date;\n } else if (typeof date === 'string' || typeof date === 'number') {\n dateObj = new Date(date);\n } else {\n return String(date);\n }\n\n if (isNaN(dateObj.getTime())) {\n return String(date);\n }\n\n const options: Intl.DateTimeFormatOptions = {};\n\n switch (format) {\n case 'short':\n options.dateStyle = 'short';\n break;\n case 'medium':\n options.dateStyle = 'medium';\n break;\n case 'long':\n options.dateStyle = 'long';\n break;\n case 'full':\n options.dateStyle = 'full';\n break;\n case 'time':\n options.timeStyle = 'short';\n break;\n case 'datetime':\n options.dateStyle = 'medium';\n options.timeStyle = 'short';\n break;\n case 'iso':\n return dateObj.toISOString();\n case 'relative':\n return formatRelativeDate(dateObj);\n default:\n options.dateStyle = 'medium';\n }\n\n return new Intl.DateTimeFormat('en-US', options).format(dateObj);\n}\n\n/**\n * Format a date relative to now.\n */\nfunction formatRelativeDate(date: Date): string {\n const now = new Date();\n const diffMs = now.getTime() - date.getTime();\n const diffSecs = Math.floor(diffMs / 1000);\n const diffMins = Math.floor(diffSecs / 60);\n const diffHours = Math.floor(diffMins / 60);\n const diffDays = Math.floor(diffHours / 24);\n\n if (diffSecs < 60) {\n return 'just now';\n } else if (diffMins < 60) {\n return `${diffMins} minute${diffMins === 1 ? '' : 's'} ago`;\n } else if (diffHours < 24) {\n return `${diffHours} hour${diffHours === 1 ? '' : 's'} ago`;\n } else if (diffDays < 7) {\n return `${diffDays} day${diffDays === 1 ? '' : 's'} ago`;\n } else {\n return formatDate(date, 'medium');\n }\n}\n\n/**\n * Format a number as currency.\n *\n * @param amount - Numeric amount\n * @param currency - ISO 4217 currency code (default: 'USD')\n * @returns Formatted currency string\n *\n * @example\n * ```handlebars\n * {{formatCurrency output.price}}\n * {{formatCurrency output.price \"EUR\"}}\n * ```\n */\nexport function formatCurrency(amount: unknown, currency?: string): string {\n if (amount === null || amount === undefined) {\n return '';\n }\n\n const num = typeof amount === 'number' ? amount : parseFloat(String(amount));\n\n if (isNaN(num)) {\n return String(amount);\n }\n\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: typeof currency === 'string' ? currency : 'USD',\n }).format(num);\n}\n\n/**\n * Format a number with locale-aware separators.\n *\n * @param value - Number to format\n * @param decimals - Number of decimal places (optional)\n * @returns Formatted number string\n *\n * @example\n * ```handlebars\n * {{formatNumber output.count}}\n * {{formatNumber output.percentage 2}}\n * ```\n */\nexport function formatNumber(value: unknown, decimals?: number): string {\n if (value === null || value === undefined) {\n return '';\n }\n\n const num = typeof value === 'number' ? value : parseFloat(String(value));\n\n if (isNaN(num)) {\n return String(value);\n }\n\n const options: Intl.NumberFormatOptions = {};\n if (typeof decimals === 'number') {\n options.minimumFractionDigits = decimals;\n options.maximumFractionDigits = decimals;\n }\n\n return new Intl.NumberFormat('en-US', options).format(num);\n}\n\n/**\n * Safely embed JSON data in HTML.\n * Escapes script-breaking characters.\n *\n * @param data - Data to serialize\n * @returns JSON string safe for embedding\n *\n * @example\n * ```handlebars\n * <script type=\"application/json\" id=\"data\">\n * {{{jsonEmbed output}}}\n * </script>\n * ```\n */\nexport function jsonEmbed(data: unknown): string {\n const json = JSON.stringify(data ?? null);\n // Escape characters that could break out of script tags\n return json\n .replace(/</g, '\\\\u003c')\n .replace(/>/g, '\\\\u003e')\n .replace(/&/g, '\\\\u0026')\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029');\n}\n\n/**\n * Convert data to JSON string.\n *\n * @param data - Data to serialize\n * @param pretty - Whether to pretty-print (optional)\n * @returns JSON string\n *\n * @example\n * ```handlebars\n * <pre>{{json output true}}</pre>\n * ```\n */\nexport function json(data: unknown, pretty?: boolean): string {\n return JSON.stringify(data ?? null, null, pretty ? 2 : undefined);\n}\n\n/**\n * Equality comparison.\n *\n * @param a - First value\n * @param b - Second value\n * @returns true if values are equal\n *\n * @example\n * ```handlebars\n * {{#if (eq output.status \"active\")}}Active{{/if}}\n * ```\n */\nexport function eq(a: unknown, b: unknown): boolean {\n return a === b;\n}\n\n/**\n * Inequality comparison.\n *\n * @param a - First value\n * @param b - Second value\n * @returns true if values are not equal\n *\n * @example\n * ```handlebars\n * {{#if (ne output.status \"deleted\")}}Visible{{/if}}\n * ```\n */\nexport function ne(a: unknown, b: unknown): boolean {\n return a !== b;\n}\n\n/**\n * Greater than comparison.\n *\n * @param a - First value\n * @param b - Second value\n * @returns true if a > b\n *\n * @example\n * ```handlebars\n * {{#if (gt output.count 10)}}Many items{{/if}}\n * ```\n */\nexport function gt(a: unknown, b: unknown): boolean {\n return Number(a) > Number(b);\n}\n\n/**\n * Greater than or equal comparison.\n *\n * @param a - First value\n * @param b - Second value\n * @returns true if a >= b\n */\nexport function gte(a: unknown, b: unknown): boolean {\n return Number(a) >= Number(b);\n}\n\n/**\n * Less than comparison.\n *\n * @param a - First value\n * @param b - Second value\n * @returns true if a < b\n *\n * @example\n * ```handlebars\n * {{#if (lt output.remaining 5)}}Running low{{/if}}\n * ```\n */\nexport function lt(a: unknown, b: unknown): boolean {\n return Number(a) < Number(b);\n}\n\n/**\n * Less than or equal comparison.\n *\n * @param a - First value\n * @param b - Second value\n * @returns true if a <= b\n */\nexport function lte(a: unknown, b: unknown): boolean {\n return Number(a) <= Number(b);\n}\n\n/**\n * Logical AND.\n *\n * @param a - First value\n * @param b - Second value\n * @returns true if both values are truthy\n *\n * @example\n * ```handlebars\n * {{#if (and output.enabled output.visible)}}Show content{{/if}}\n * ```\n */\nexport function and(a: unknown, b: unknown): boolean {\n return Boolean(a) && Boolean(b);\n}\n\n/**\n * Logical OR.\n *\n * @param a - First value\n * @param b - Second value\n * @returns true if either value is truthy\n *\n * @example\n * ```handlebars\n * {{#if (or output.featured output.promoted)}}Highlight{{/if}}\n * ```\n */\nexport function or(a: unknown, b: unknown): boolean {\n return Boolean(a) || Boolean(b);\n}\n\n/**\n * Logical NOT.\n *\n * @param value - Value to negate\n * @returns Negated boolean\n *\n * @example\n * ```handlebars\n * {{#if (not output.hidden)}}Visible{{/if}}\n * ```\n */\nexport function not(value: unknown): boolean {\n return !value;\n}\n\n/**\n * Get the first element of an array.\n *\n * @param arr - Array\n * @returns First element\n *\n * @example\n * ```handlebars\n * {{first output.items}}\n * ```\n */\nexport function first<T>(arr: T[]): T | undefined {\n if (!Array.isArray(arr)) return undefined;\n return arr[0];\n}\n\n/**\n * Get the last element of an array.\n *\n * @param arr - Array\n * @returns Last element\n *\n * @example\n * ```handlebars\n * {{last output.items}}\n * ```\n */\nexport function last<T>(arr: T[]): T | undefined {\n if (!Array.isArray(arr)) return undefined;\n return arr[arr.length - 1];\n}\n\n/**\n * Get the length of an array or string.\n *\n * @param value - Array or string\n * @returns Length\n *\n * @example\n * ```handlebars\n * {{length output.items}} items\n * ```\n */\nexport function length(value: unknown): number {\n if (Array.isArray(value)) return value.length;\n if (typeof value === 'string') return value.length;\n return 0;\n}\n\n/**\n * Check if a value is in an array.\n *\n * @param arr - Array to search\n * @param value - Value to find\n * @returns true if value is in array\n *\n * @example\n * ```handlebars\n * {{#if (includes output.tags \"featured\")}}Featured{{/if}}\n * ```\n */\nexport function includes(arr: unknown, value: unknown): boolean {\n if (!Array.isArray(arr)) return false;\n return arr.includes(value);\n}\n\n/**\n * Join array elements with a separator.\n *\n * @param arr - Array to join\n * @param separator - Separator string (default: ', ')\n * @returns Joined string\n *\n * @example\n * ```handlebars\n * {{join output.tags \", \"}}\n * ```\n */\nexport function join(arr: unknown, separator?: string): string {\n if (!Array.isArray(arr)) return '';\n return arr.join(typeof separator === 'string' ? separator : ', ');\n}\n\n/**\n * Convert to uppercase.\n *\n * @param str - String to convert\n * @returns Uppercase string\n *\n * @example\n * ```handlebars\n * {{uppercase output.status}}\n * ```\n */\nexport function uppercase(str: unknown): string {\n return String(str ?? '').toUpperCase();\n}\n\n/**\n * Convert to lowercase.\n *\n * @param str - String to convert\n * @returns Lowercase string\n *\n * @example\n * ```handlebars\n * {{lowercase output.name}}\n * ```\n */\nexport function lowercase(str: unknown): string {\n return String(str ?? '').toLowerCase();\n}\n\n/**\n * Capitalize the first letter.\n *\n * @param str - String to capitalize\n * @returns Capitalized string\n *\n * @example\n * ```handlebars\n * {{capitalize output.name}}\n * ```\n */\nexport function capitalize(str: unknown): string {\n const s = String(str ?? '');\n return s.charAt(0).toUpperCase() + s.slice(1).toLowerCase();\n}\n\n/**\n * Truncate a string to a maximum length.\n *\n * @param str - String to truncate\n * @param maxLength - Maximum length\n * @param suffix - Suffix to add if truncated (default: '...')\n * @returns Truncated string\n *\n * @example\n * ```handlebars\n * {{truncate output.description 100}}\n * ```\n */\nexport function truncate(str: unknown, maxLength?: number, suffix?: string): string {\n const s = String(str ?? '');\n const len = typeof maxLength === 'number' ? maxLength : 50;\n const suf = typeof suffix === 'string' ? suffix : '...';\n\n if (s.length <= len) return s;\n return s.slice(0, len - suf.length) + suf;\n}\n\n/**\n * Provide a default value if the input is falsy.\n *\n * @param value - Value to check\n * @param defaultValue - Default value if falsy\n * @returns Value or default\n *\n * @example\n * ```handlebars\n * {{default output.name \"Unknown\"}}\n * ```\n */\nexport function defaultValue(value: unknown, defaultValue: unknown): unknown {\n return value || defaultValue;\n}\n\n/**\n * Generate a unique ID.\n *\n * @param prefix - Optional prefix\n * @returns Unique ID string\n *\n * @example\n * ```handlebars\n * <div id=\"{{uniqueId 'widget'}}\">...</div>\n * ```\n */\nlet idCounter = 0;\nexport function uniqueId(prefix?: string): string {\n const id = ++idCounter;\n return prefix ? `${prefix}-${id}` : `id-${id}`;\n}\n\n/**\n * Reset the unique ID counter (for testing).\n */\nexport function resetUniqueIdCounter(): void {\n idCounter = 0;\n}\n\n/**\n * Conditionally join class names.\n *\n * @param classes - Class names (falsy values are filtered)\n * @returns Space-separated class string\n *\n * @example\n * ```handlebars\n * <div class=\"{{classNames 'base' (if active 'active') (if disabled 'disabled')}}\">\n * ```\n */\nexport function classNames(...classes: unknown[]): string {\n return classes.filter(Boolean).map(String).join(' ');\n}\n\n/**\n * Collection of all built-in helpers.\n */\nexport const builtinHelpers: Record<string, HelperFunction> = {\n // Escaping\n escapeHtml,\n\n // Formatting\n formatDate,\n formatCurrency,\n formatNumber,\n json,\n jsonEmbed,\n\n // Comparison\n eq,\n ne,\n gt,\n gte,\n lt,\n lte,\n\n // Logical\n and,\n or,\n not,\n\n // Array\n first,\n last,\n length,\n includes,\n join,\n\n // String\n uppercase,\n lowercase,\n capitalize,\n truncate,\n\n // Utility\n default: defaultValue,\n uniqueId,\n classNames,\n};\n"]}
|