@frontmcp/ui 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +140 -362
- package/bridge/runtime/index.d.ts +2 -1
- package/bridge/runtime/index.d.ts.map +1 -1
- package/bundler/file-cache/component-builder.d.ts +1 -1
- package/bundler/file-cache/component-builder.d.ts.map +1 -1
- package/bundler/file-cache/hash-calculator.d.ts +1 -1
- package/bundler/file-cache/hash-calculator.d.ts.map +1 -1
- package/bundler/file-cache/storage/filesystem.d.ts +1 -1
- package/bundler/file-cache/storage/filesystem.d.ts.map +1 -1
- package/bundler/file-cache/storage/interface.d.ts +1 -1
- package/bundler/file-cache/storage/interface.d.ts.map +1 -1
- package/bundler/file-cache/storage/redis.d.ts +1 -1
- package/bundler/file-cache/storage/redis.d.ts.map +1 -1
- package/bundler/index.js +10 -1057
- package/components/alert.schema.d.ts +6 -6
- package/components/avatar.schema.d.ts +9 -9
- package/components/badge.schema.d.ts +9 -9
- package/components/button.schema.d.ts +9 -9
- package/components/card.schema.d.ts +7 -7
- package/components/form.schema.d.ts +24 -24
- package/components/index.js +128 -198
- package/components/modal.schema.d.ts +8 -8
- package/components/table.schema.d.ts +6 -6
- package/esm/bridge/runtime/index.d.ts +2 -1
- package/esm/bridge/runtime/index.d.ts.map +1 -1
- package/esm/bundler/file-cache/component-builder.d.ts +1 -1
- package/esm/bundler/file-cache/component-builder.d.ts.map +1 -1
- package/esm/bundler/file-cache/hash-calculator.d.ts +1 -1
- package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -1
- package/esm/bundler/file-cache/storage/filesystem.d.ts +1 -1
- package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -1
- package/esm/bundler/file-cache/storage/interface.d.ts +1 -1
- package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -1
- package/esm/bundler/file-cache/storage/redis.d.ts +1 -1
- package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -1
- package/esm/bundler/index.js +3 -1050
- package/esm/components/alert.schema.d.ts +6 -6
- package/esm/components/avatar.schema.d.ts +9 -9
- package/esm/components/badge.schema.d.ts +9 -9
- package/esm/components/button.schema.d.ts +9 -9
- package/esm/components/card.schema.d.ts +7 -7
- package/esm/components/form.schema.d.ts +24 -24
- package/esm/components/index.js +136 -196
- package/esm/components/modal.schema.d.ts +8 -8
- package/esm/components/table.schema.d.ts +6 -6
- package/esm/index.d.ts +23 -39
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +4256 -16441
- package/esm/layouts/base.d.ts +2 -2
- package/esm/layouts/base.d.ts.map +1 -1
- package/esm/layouts/index.js +33 -516
- package/esm/package.json +8 -26
- package/esm/pages/index.js +100 -627
- package/esm/react/Alert.d.ts +1 -2
- package/esm/react/Alert.d.ts.map +1 -1
- package/esm/react/Badge.d.ts +1 -2
- package/esm/react/Badge.d.ts.map +1 -1
- package/esm/react/Button.d.ts +1 -2
- package/esm/react/Button.d.ts.map +1 -1
- package/esm/react/Card.d.ts +1 -2
- package/esm/react/Card.d.ts.map +1 -1
- package/esm/react/hooks/context.d.ts +1 -1
- package/esm/react/hooks/context.d.ts.map +1 -1
- package/esm/react/index.d.ts +5 -6
- package/esm/react/index.d.ts.map +1 -1
- package/esm/react/index.js +2074 -322
- package/esm/react/types.d.ts +1 -2
- package/esm/react/types.d.ts.map +1 -1
- package/esm/renderers/index.d.ts +10 -25
- package/esm/renderers/index.d.ts.map +1 -1
- package/esm/renderers/index.js +171 -1617
- package/esm/{runtime/adapters → renderers}/react.adapter.d.ts +2 -2
- package/esm/renderers/react.adapter.d.ts.map +1 -0
- package/esm/renderers/react.renderer.d.ts +3 -3
- package/esm/renderers/react.renderer.d.ts.map +1 -1
- package/esm/universal/index.js +1755 -0
- package/esm/web-components/index.js +232 -287
- package/esm/widgets/index.js +89 -147
- package/index.d.ts +23 -39
- package/index.d.ts.map +1 -1
- package/index.js +6123 -18539
- package/layouts/base.d.ts +2 -2
- package/layouts/base.d.ts.map +1 -1
- package/layouts/index.js +43 -536
- package/package.json +8 -26
- package/pages/index.js +111 -648
- package/react/Alert.d.ts +1 -2
- package/react/Alert.d.ts.map +1 -1
- package/react/Badge.d.ts +1 -2
- package/react/Badge.d.ts.map +1 -1
- package/react/Button.d.ts +1 -2
- package/react/Button.d.ts.map +1 -1
- package/react/Card.d.ts +1 -2
- package/react/Card.d.ts.map +1 -1
- package/react/hooks/context.d.ts +1 -1
- package/react/hooks/context.d.ts.map +1 -1
- package/react/index.d.ts +5 -6
- package/react/index.d.ts.map +1 -1
- package/react/index.js +2065 -335
- package/react/types.d.ts +1 -2
- package/react/types.d.ts.map +1 -1
- package/renderers/index.d.ts +10 -25
- package/renderers/index.d.ts.map +1 -1
- package/renderers/index.js +175 -1641
- package/{runtime/adapters → renderers}/react.adapter.d.ts +2 -2
- package/renderers/react.adapter.d.ts.map +1 -0
- package/renderers/react.renderer.d.ts +3 -3
- package/renderers/react.renderer.d.ts.map +1 -1
- package/universal/index.js +1841 -0
- package/web-components/index.js +224 -289
- package/widgets/index.js +80 -148
- package/adapters/index.d.ts +0 -13
- package/adapters/index.d.ts.map +0 -1
- package/adapters/index.js +0 -462
- package/adapters/platform-meta.d.ts +0 -166
- package/adapters/platform-meta.d.ts.map +0 -1
- package/adapters/response-builder.d.ts +0 -108
- package/adapters/response-builder.d.ts.map +0 -1
- package/adapters/serving-mode.d.ts +0 -107
- package/adapters/serving-mode.d.ts.map +0 -1
- package/base-template/bridge.d.ts +0 -90
- package/base-template/bridge.d.ts.map +0 -1
- package/base-template/default-base-template.d.ts +0 -92
- package/base-template/default-base-template.d.ts.map +0 -1
- package/base-template/index.d.ts +0 -15
- package/base-template/index.d.ts.map +0 -1
- package/base-template/index.js +0 -1398
- package/base-template/polyfills.d.ts +0 -31
- package/base-template/polyfills.d.ts.map +0 -1
- package/base-template/theme-styles.d.ts +0 -74
- package/base-template/theme-styles.d.ts.map +0 -1
- package/build/cdn-resources.d.ts +0 -243
- package/build/cdn-resources.d.ts.map +0 -1
- package/build/index.d.ts +0 -295
- package/build/index.d.ts.map +0 -1
- package/build/index.js +0 -7096
- package/build/widget-manifest.d.ts +0 -362
- package/build/widget-manifest.d.ts.map +0 -1
- package/dependency/cdn-registry.d.ts +0 -98
- package/dependency/cdn-registry.d.ts.map +0 -1
- package/dependency/import-map.d.ts +0 -186
- package/dependency/import-map.d.ts.map +0 -1
- package/dependency/import-parser.d.ts +0 -82
- package/dependency/import-parser.d.ts.map +0 -1
- package/dependency/index.d.ts +0 -17
- package/dependency/index.d.ts.map +0 -1
- package/dependency/resolver.d.ts +0 -164
- package/dependency/resolver.d.ts.map +0 -1
- package/dependency/schemas.d.ts +0 -486
- package/dependency/schemas.d.ts.map +0 -1
- package/dependency/template-loader.d.ts +0 -204
- package/dependency/template-loader.d.ts.map +0 -1
- package/dependency/template-processor.d.ts +0 -118
- package/dependency/template-processor.d.ts.map +0 -1
- package/dependency/types.d.ts +0 -739
- package/dependency/types.d.ts.map +0 -1
- package/esm/adapters/index.d.ts +0 -13
- package/esm/adapters/index.d.ts.map +0 -1
- package/esm/adapters/index.js +0 -427
- package/esm/adapters/platform-meta.d.ts +0 -166
- package/esm/adapters/platform-meta.d.ts.map +0 -1
- package/esm/adapters/response-builder.d.ts +0 -108
- package/esm/adapters/response-builder.d.ts.map +0 -1
- package/esm/adapters/serving-mode.d.ts +0 -107
- package/esm/adapters/serving-mode.d.ts.map +0 -1
- package/esm/base-template/bridge.d.ts +0 -90
- package/esm/base-template/bridge.d.ts.map +0 -1
- package/esm/base-template/default-base-template.d.ts +0 -92
- package/esm/base-template/default-base-template.d.ts.map +0 -1
- package/esm/base-template/index.d.ts +0 -15
- package/esm/base-template/index.d.ts.map +0 -1
- package/esm/base-template/index.js +0 -1364
- package/esm/base-template/polyfills.d.ts +0 -31
- package/esm/base-template/polyfills.d.ts.map +0 -1
- package/esm/base-template/theme-styles.d.ts +0 -74
- package/esm/base-template/theme-styles.d.ts.map +0 -1
- package/esm/build/cdn-resources.d.ts +0 -243
- package/esm/build/cdn-resources.d.ts.map +0 -1
- package/esm/build/index.d.ts +0 -295
- package/esm/build/index.d.ts.map +0 -1
- package/esm/build/index.js +0 -7021
- package/esm/build/widget-manifest.d.ts +0 -362
- package/esm/build/widget-manifest.d.ts.map +0 -1
- package/esm/dependency/cdn-registry.d.ts +0 -98
- package/esm/dependency/cdn-registry.d.ts.map +0 -1
- package/esm/dependency/import-map.d.ts +0 -186
- package/esm/dependency/import-map.d.ts.map +0 -1
- package/esm/dependency/import-parser.d.ts +0 -82
- package/esm/dependency/import-parser.d.ts.map +0 -1
- package/esm/dependency/index.d.ts +0 -17
- package/esm/dependency/index.d.ts.map +0 -1
- package/esm/dependency/resolver.d.ts +0 -164
- package/esm/dependency/resolver.d.ts.map +0 -1
- package/esm/dependency/schemas.d.ts +0 -486
- package/esm/dependency/schemas.d.ts.map +0 -1
- package/esm/dependency/template-loader.d.ts +0 -204
- package/esm/dependency/template-loader.d.ts.map +0 -1
- package/esm/dependency/template-processor.d.ts +0 -118
- package/esm/dependency/template-processor.d.ts.map +0 -1
- package/esm/dependency/types.d.ts +0 -739
- package/esm/dependency/types.d.ts.map +0 -1
- package/esm/handlebars/expression-extractor.d.ts +0 -147
- package/esm/handlebars/expression-extractor.d.ts.map +0 -1
- package/esm/handlebars/helpers.d.ts +0 -339
- package/esm/handlebars/helpers.d.ts.map +0 -1
- package/esm/handlebars/index.d.ts +0 -195
- package/esm/handlebars/index.d.ts.map +0 -1
- package/esm/handlebars/index.js +0 -587
- package/esm/registry/index.d.ts +0 -46
- package/esm/registry/index.d.ts.map +0 -1
- package/esm/registry/index.js +0 -6422
- package/esm/registry/render-template.d.ts +0 -91
- package/esm/registry/render-template.d.ts.map +0 -1
- package/esm/registry/tool-ui.registry.d.ts +0 -294
- package/esm/registry/tool-ui.registry.d.ts.map +0 -1
- package/esm/registry/uri-utils.d.ts +0 -56
- package/esm/registry/uri-utils.d.ts.map +0 -1
- package/esm/renderers/cache.d.ts +0 -145
- package/esm/renderers/cache.d.ts.map +0 -1
- package/esm/renderers/html.renderer.d.ts +0 -123
- package/esm/renderers/html.renderer.d.ts.map +0 -1
- package/esm/renderers/mdx.renderer.d.ts +0 -120
- package/esm/renderers/mdx.renderer.d.ts.map +0 -1
- package/esm/renderers/registry.d.ts +0 -134
- package/esm/renderers/registry.d.ts.map +0 -1
- package/esm/renderers/types.d.ts +0 -342
- package/esm/renderers/types.d.ts.map +0 -1
- package/esm/renderers/utils/detect.d.ts +0 -107
- package/esm/renderers/utils/detect.d.ts.map +0 -1
- package/esm/renderers/utils/hash.d.ts +0 -40
- package/esm/renderers/utils/hash.d.ts.map +0 -1
- package/esm/renderers/utils/index.d.ts +0 -9
- package/esm/renderers/utils/index.d.ts.map +0 -1
- package/esm/renderers/utils/transpiler.d.ts +0 -89
- package/esm/renderers/utils/transpiler.d.ts.map +0 -1
- package/esm/runtime/adapters/html.adapter.d.ts +0 -59
- package/esm/runtime/adapters/html.adapter.d.ts.map +0 -1
- package/esm/runtime/adapters/index.d.ts +0 -26
- package/esm/runtime/adapters/index.d.ts.map +0 -1
- package/esm/runtime/adapters/mdx.adapter.d.ts +0 -73
- package/esm/runtime/adapters/mdx.adapter.d.ts.map +0 -1
- package/esm/runtime/adapters/react.adapter.d.ts.map +0 -1
- package/esm/runtime/adapters/types.d.ts +0 -95
- package/esm/runtime/adapters/types.d.ts.map +0 -1
- package/esm/runtime/csp.d.ts +0 -48
- package/esm/runtime/csp.d.ts.map +0 -1
- package/esm/runtime/index.d.ts +0 -17
- package/esm/runtime/index.d.ts.map +0 -1
- package/esm/runtime/index.js +0 -5186
- package/esm/runtime/mcp-bridge.d.ts +0 -101
- package/esm/runtime/mcp-bridge.d.ts.map +0 -1
- package/esm/runtime/renderer-runtime.d.ts +0 -133
- package/esm/runtime/renderer-runtime.d.ts.map +0 -1
- package/esm/runtime/sanitizer.d.ts +0 -172
- package/esm/runtime/sanitizer.d.ts.map +0 -1
- package/esm/runtime/types.d.ts +0 -415
- package/esm/runtime/types.d.ts.map +0 -1
- package/esm/runtime/wrapper.d.ts +0 -421
- package/esm/runtime/wrapper.d.ts.map +0 -1
- package/esm/styles/index.d.ts +0 -8
- package/esm/styles/index.d.ts.map +0 -1
- package/esm/styles/index.js +0 -171
- package/esm/styles/variants.d.ts +0 -51
- package/esm/styles/variants.d.ts.map +0 -1
- package/esm/theme/cdn.d.ts +0 -195
- package/esm/theme/cdn.d.ts.map +0 -1
- package/esm/theme/index.d.ts +0 -18
- package/esm/theme/index.d.ts.map +0 -1
- package/esm/theme/index.js +0 -700
- package/esm/theme/platforms.d.ts +0 -107
- package/esm/theme/platforms.d.ts.map +0 -1
- package/esm/theme/presets/github-openai.d.ts +0 -50
- package/esm/theme/presets/github-openai.d.ts.map +0 -1
- package/esm/theme/presets/index.d.ts +0 -11
- package/esm/theme/presets/index.d.ts.map +0 -1
- package/esm/theme/theme.d.ts +0 -396
- package/esm/theme/theme.d.ts.map +0 -1
- package/esm/tool-template/builder.d.ts +0 -213
- package/esm/tool-template/builder.d.ts.map +0 -1
- package/esm/tool-template/index.d.ts +0 -16
- package/esm/tool-template/index.d.ts.map +0 -1
- package/esm/tool-template/index.js +0 -3515
- package/esm/types/index.d.ts +0 -14
- package/esm/types/index.d.ts.map +0 -1
- package/esm/types/index.js +0 -75
- package/esm/types/ui-config.d.ts +0 -639
- package/esm/types/ui-config.d.ts.map +0 -1
- package/esm/types/ui-runtime.d.ts +0 -1007
- package/esm/types/ui-runtime.d.ts.map +0 -1
- package/esm/typings/cache/cache-adapter.d.ts +0 -125
- package/esm/typings/cache/cache-adapter.d.ts.map +0 -1
- package/esm/typings/cache/index.d.ts +0 -10
- package/esm/typings/cache/index.d.ts.map +0 -1
- package/esm/typings/cache/memory-cache.d.ts +0 -92
- package/esm/typings/cache/memory-cache.d.ts.map +0 -1
- package/esm/typings/dts-parser.d.ts +0 -90
- package/esm/typings/dts-parser.d.ts.map +0 -1
- package/esm/typings/index.d.ts +0 -48
- package/esm/typings/index.d.ts.map +0 -1
- package/esm/typings/schemas.d.ts +0 -232
- package/esm/typings/schemas.d.ts.map +0 -1
- package/esm/typings/type-fetcher.d.ts +0 -89
- package/esm/typings/type-fetcher.d.ts.map +0 -1
- package/esm/typings/types.d.ts +0 -320
- package/esm/typings/types.d.ts.map +0 -1
- package/esm/utils/escape-html.d.ts +0 -58
- package/esm/utils/escape-html.d.ts.map +0 -1
- package/esm/utils/index.d.ts +0 -10
- package/esm/utils/index.d.ts.map +0 -1
- package/esm/utils/index.js +0 -40
- package/esm/utils/safe-stringify.d.ts +0 -30
- package/esm/utils/safe-stringify.d.ts.map +0 -1
- package/esm/validation/error-box.d.ts +0 -56
- package/esm/validation/error-box.d.ts.map +0 -1
- package/esm/validation/index.d.ts +0 -13
- package/esm/validation/index.d.ts.map +0 -1
- package/esm/validation/index.js +0 -562
- package/esm/validation/schema-paths.d.ts +0 -118
- package/esm/validation/schema-paths.d.ts.map +0 -1
- package/esm/validation/template-validator.d.ts +0 -143
- package/esm/validation/template-validator.d.ts.map +0 -1
- package/esm/validation/wrapper.d.ts +0 -97
- package/esm/validation/wrapper.d.ts.map +0 -1
- package/handlebars/expression-extractor.d.ts +0 -147
- package/handlebars/expression-extractor.d.ts.map +0 -1
- package/handlebars/helpers.d.ts +0 -339
- package/handlebars/helpers.d.ts.map +0 -1
- package/handlebars/index.d.ts +0 -195
- package/handlebars/index.d.ts.map +0 -1
- package/handlebars/index.js +0 -666
- package/registry/index.d.ts +0 -46
- package/registry/index.d.ts.map +0 -1
- package/registry/index.js +0 -6465
- package/registry/render-template.d.ts +0 -91
- package/registry/render-template.d.ts.map +0 -1
- package/registry/tool-ui.registry.d.ts +0 -294
- package/registry/tool-ui.registry.d.ts.map +0 -1
- package/registry/uri-utils.d.ts +0 -56
- package/registry/uri-utils.d.ts.map +0 -1
- package/renderers/cache.d.ts +0 -145
- package/renderers/cache.d.ts.map +0 -1
- package/renderers/html.renderer.d.ts +0 -123
- package/renderers/html.renderer.d.ts.map +0 -1
- package/renderers/mdx.renderer.d.ts +0 -120
- package/renderers/mdx.renderer.d.ts.map +0 -1
- package/renderers/registry.d.ts +0 -134
- package/renderers/registry.d.ts.map +0 -1
- package/renderers/types.d.ts +0 -342
- package/renderers/types.d.ts.map +0 -1
- package/renderers/utils/detect.d.ts +0 -107
- package/renderers/utils/detect.d.ts.map +0 -1
- package/renderers/utils/hash.d.ts +0 -40
- package/renderers/utils/hash.d.ts.map +0 -1
- package/renderers/utils/index.d.ts +0 -9
- package/renderers/utils/index.d.ts.map +0 -1
- package/renderers/utils/transpiler.d.ts +0 -89
- package/renderers/utils/transpiler.d.ts.map +0 -1
- package/runtime/adapters/html.adapter.d.ts +0 -59
- package/runtime/adapters/html.adapter.d.ts.map +0 -1
- package/runtime/adapters/index.d.ts +0 -26
- package/runtime/adapters/index.d.ts.map +0 -1
- package/runtime/adapters/mdx.adapter.d.ts +0 -73
- package/runtime/adapters/mdx.adapter.d.ts.map +0 -1
- package/runtime/adapters/react.adapter.d.ts.map +0 -1
- package/runtime/adapters/types.d.ts +0 -95
- package/runtime/adapters/types.d.ts.map +0 -1
- package/runtime/csp.d.ts +0 -48
- package/runtime/csp.d.ts.map +0 -1
- package/runtime/index.d.ts +0 -17
- package/runtime/index.d.ts.map +0 -1
- package/runtime/index.js +0 -5264
- package/runtime/mcp-bridge.d.ts +0 -101
- package/runtime/mcp-bridge.d.ts.map +0 -1
- package/runtime/renderer-runtime.d.ts +0 -133
- package/runtime/renderer-runtime.d.ts.map +0 -1
- package/runtime/sanitizer.d.ts +0 -172
- package/runtime/sanitizer.d.ts.map +0 -1
- package/runtime/types.d.ts +0 -415
- package/runtime/types.d.ts.map +0 -1
- package/runtime/wrapper.d.ts +0 -421
- package/runtime/wrapper.d.ts.map +0 -1
- package/styles/index.d.ts +0 -8
- package/styles/index.d.ts.map +0 -1
- package/styles/index.js +0 -222
- package/styles/variants.d.ts +0 -51
- package/styles/variants.d.ts.map +0 -1
- package/theme/cdn.d.ts +0 -195
- package/theme/cdn.d.ts.map +0 -1
- package/theme/index.d.ts +0 -18
- package/theme/index.d.ts.map +0 -1
- package/theme/index.js +0 -757
- package/theme/platforms.d.ts +0 -107
- package/theme/platforms.d.ts.map +0 -1
- package/theme/presets/github-openai.d.ts +0 -50
- package/theme/presets/github-openai.d.ts.map +0 -1
- package/theme/presets/index.d.ts +0 -11
- package/theme/presets/index.d.ts.map +0 -1
- package/theme/theme.d.ts +0 -396
- package/theme/theme.d.ts.map +0 -1
- package/tool-template/builder.d.ts +0 -213
- package/tool-template/builder.d.ts.map +0 -1
- package/tool-template/index.d.ts +0 -16
- package/tool-template/index.d.ts.map +0 -1
- package/tool-template/index.js +0 -3559
- package/types/index.d.ts +0 -14
- package/types/index.d.ts.map +0 -1
- package/types/index.js +0 -108
- package/types/ui-config.d.ts +0 -639
- package/types/ui-config.d.ts.map +0 -1
- package/types/ui-runtime.d.ts +0 -1007
- package/types/ui-runtime.d.ts.map +0 -1
- package/typings/cache/cache-adapter.d.ts +0 -125
- package/typings/cache/cache-adapter.d.ts.map +0 -1
- package/typings/cache/index.d.ts +0 -10
- package/typings/cache/index.d.ts.map +0 -1
- package/typings/cache/memory-cache.d.ts +0 -92
- package/typings/cache/memory-cache.d.ts.map +0 -1
- package/typings/dts-parser.d.ts +0 -90
- package/typings/dts-parser.d.ts.map +0 -1
- package/typings/index.d.ts +0 -48
- package/typings/index.d.ts.map +0 -1
- package/typings/schemas.d.ts +0 -232
- package/typings/schemas.d.ts.map +0 -1
- package/typings/type-fetcher.d.ts +0 -89
- package/typings/type-fetcher.d.ts.map +0 -1
- package/typings/types.d.ts +0 -320
- package/typings/types.d.ts.map +0 -1
- package/utils/escape-html.d.ts +0 -58
- package/utils/escape-html.d.ts.map +0 -1
- package/utils/index.d.ts +0 -10
- package/utils/index.d.ts.map +0 -1
- package/utils/index.js +0 -70
- package/utils/safe-stringify.d.ts +0 -30
- package/utils/safe-stringify.d.ts.map +0 -1
- package/validation/error-box.d.ts +0 -56
- package/validation/error-box.d.ts.map +0 -1
- package/validation/index.d.ts +0 -13
- package/validation/index.d.ts.map +0 -1
- package/validation/index.js +0 -603
- package/validation/schema-paths.d.ts +0 -118
- package/validation/schema-paths.d.ts.map +0 -1
- package/validation/template-validator.d.ts +0 -143
- package/validation/template-validator.d.ts.map +0 -1
- package/validation/wrapper.d.ts +0 -97
- package/validation/wrapper.d.ts.map +0 -1
package/widgets/index.js
CHANGED
|
@@ -34,34 +34,10 @@ __export(widgets_exports, {
|
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(widgets_exports);
|
|
36
36
|
|
|
37
|
-
// libs/ui/src/
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
supportsWidgets: true,
|
|
42
|
-
supportsTailwind: true,
|
|
43
|
-
supportsHtmx: false,
|
|
44
|
-
// Network blocked, HTMX won't work for API calls
|
|
45
|
-
networkMode: "blocked",
|
|
46
|
-
scriptStrategy: "inline",
|
|
47
|
-
maxInlineSize: 100 * 1024,
|
|
48
|
-
// 100KB limit for artifacts
|
|
49
|
-
cspRestrictions: ["script-src 'unsafe-inline'", "connect-src 'none'"],
|
|
50
|
-
options: {
|
|
51
|
-
mode: "artifacts",
|
|
52
|
-
framework: "react"
|
|
53
|
-
// Claude artifacts prefer React
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
// libs/ui/src/utils/escape-html.ts
|
|
58
|
-
function escapeHtml(str) {
|
|
59
|
-
if (str === null || str === void 0) {
|
|
60
|
-
return "";
|
|
61
|
-
}
|
|
62
|
-
const s = String(str);
|
|
63
|
-
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
64
|
-
}
|
|
37
|
+
// libs/ui/src/layouts/base.ts
|
|
38
|
+
var import_theme = require("@frontmcp/uipack/theme");
|
|
39
|
+
var import_utils = require("@frontmcp/uipack/utils");
|
|
40
|
+
var import_utils2 = require("@frontmcp/uipack/utils");
|
|
65
41
|
|
|
66
42
|
// libs/ui/src/components/card.ts
|
|
67
43
|
function getVariantClasses(variant) {
|
|
@@ -84,7 +60,7 @@ function getSizeClasses(size) {
|
|
|
84
60
|
}
|
|
85
61
|
function buildDataAttrs(data) {
|
|
86
62
|
if (!data) return "";
|
|
87
|
-
return Object.entries(data).map(([key, value]) => `data-${key}="${escapeHtml(value)}"`).join(" ");
|
|
63
|
+
return Object.entries(data).map(([key, value]) => `data-${key}="${(0, import_utils2.escapeHtml)(value)}"`).join(" ");
|
|
88
64
|
}
|
|
89
65
|
function card(content, options = {}) {
|
|
90
66
|
const {
|
|
@@ -105,18 +81,18 @@ function card(content, options = {}) {
|
|
|
105
81
|
const clickableClasses = clickable ? "cursor-pointer hover:shadow-md transition-shadow" : "";
|
|
106
82
|
const allClasses = [variantClasses, sizeClasses, clickableClasses, className].filter(Boolean).join(" ");
|
|
107
83
|
const dataAttrs = buildDataAttrs(data);
|
|
108
|
-
const idAttr = id ? `id="${escapeHtml(id)}"` : "";
|
|
84
|
+
const idAttr = id ? `id="${(0, import_utils2.escapeHtml)(id)}"` : "";
|
|
109
85
|
const hasHeader = title || subtitle || headerActions;
|
|
110
86
|
const headerHtml = hasHeader ? `<div class="flex items-start justify-between mb-4">
|
|
111
87
|
<div>
|
|
112
|
-
${title ? `<h3 class="text-lg font-semibold text-text-primary">${escapeHtml(title)}</h3>` : ""}
|
|
113
|
-
${subtitle ? `<p class="text-sm text-text-secondary mt-1">${escapeHtml(subtitle)}</p>` : ""}
|
|
88
|
+
${title ? `<h3 class="text-lg font-semibold text-text-primary">${(0, import_utils2.escapeHtml)(title)}</h3>` : ""}
|
|
89
|
+
${subtitle ? `<p class="text-sm text-text-secondary mt-1">${(0, import_utils2.escapeHtml)(subtitle)}</p>` : ""}
|
|
114
90
|
</div>
|
|
115
91
|
${headerActions ? `<div class="flex items-center gap-2">${headerActions}</div>` : ""}
|
|
116
92
|
</div>` : "";
|
|
117
93
|
const footerHtml = footer ? `<div class="mt-4 pt-4 border-t border-divider">${footer}</div>` : "";
|
|
118
94
|
if (href) {
|
|
119
|
-
return `<a href="${escapeHtml(href)}" class="${allClasses}" ${idAttr} ${dataAttrs}>
|
|
95
|
+
return `<a href="${(0, import_utils2.escapeHtml)(href)}" class="${allClasses}" ${idAttr} ${dataAttrs}>
|
|
120
96
|
${headerHtml}
|
|
121
97
|
${content}
|
|
122
98
|
${footerHtml}
|
|
@@ -181,7 +157,7 @@ function badge(text, options = {}) {
|
|
|
181
157
|
outline: "border border-current"
|
|
182
158
|
};
|
|
183
159
|
const dotClasses = ["inline-block rounded-full", getSizeClasses2(size, true), dotVariants[variant], className].filter(Boolean).join(" ");
|
|
184
|
-
return `<span class="${dotClasses}" aria-label="${escapeHtml(text)}" title="${escapeHtml(text)}"></span>`;
|
|
160
|
+
return `<span class="${dotClasses}" aria-label="${(0, import_utils2.escapeHtml)(text)}" title="${(0, import_utils2.escapeHtml)(text)}"></span>`;
|
|
185
161
|
}
|
|
186
162
|
const variantClasses = getVariantClasses2(variant);
|
|
187
163
|
const sizeClasses = getSizeClasses2(size, false);
|
|
@@ -204,106 +180,62 @@ function badge(text, options = {}) {
|
|
|
204
180
|
</svg>
|
|
205
181
|
</button>` : "";
|
|
206
182
|
return `<span class="${baseClasses}">
|
|
207
|
-
${iconHtml}${escapeHtml(text)}${removeHtml}
|
|
183
|
+
${iconHtml}${(0, import_utils2.escapeHtml)(text)}${removeHtml}
|
|
208
184
|
</span>`;
|
|
209
185
|
}
|
|
210
186
|
|
|
211
|
-
// libs/ui/src/
|
|
212
|
-
var
|
|
213
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/>
|
|
214
|
-
</svg>`;
|
|
215
|
-
function validationErrorBox(options) {
|
|
216
|
-
const { componentName, invalidParam } = options;
|
|
217
|
-
return `<div
|
|
218
|
-
class="validation-error flex items-start gap-3 p-4 bg-red-50 border border-red-200 text-red-800 rounded-lg"
|
|
219
|
-
role="alert"
|
|
220
|
-
data-testid="validation-error"
|
|
221
|
-
data-component="${escapeHtml(componentName)}"
|
|
222
|
-
data-param="${escapeHtml(invalidParam)}"
|
|
223
|
-
>
|
|
224
|
-
${errorIcon}
|
|
225
|
-
<div class="min-w-0">
|
|
226
|
-
<p class="font-semibold text-sm">${escapeHtml(componentName)}: Invalid Configuration</p>
|
|
227
|
-
<p class="text-sm opacity-90 mt-0.5">The "${escapeHtml(invalidParam)}" parameter is invalid.</p>
|
|
228
|
-
</div>
|
|
229
|
-
</div>`;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
// libs/ui/src/validation/wrapper.ts
|
|
233
|
-
function getFirstInvalidPath(error) {
|
|
234
|
-
const firstError = error.issues[0];
|
|
235
|
-
if (!firstError || firstError.path.length === 0) {
|
|
236
|
-
return "options";
|
|
237
|
-
}
|
|
238
|
-
return firstError.path.map(String).join(".");
|
|
239
|
-
}
|
|
240
|
-
function validateOptions(options, config) {
|
|
241
|
-
const result = config.schema.safeParse(options);
|
|
242
|
-
if (result.success) {
|
|
243
|
-
return { success: true, data: result.data };
|
|
244
|
-
}
|
|
245
|
-
const invalidParam = getFirstInvalidPath(result.error);
|
|
246
|
-
return {
|
|
247
|
-
success: false,
|
|
248
|
-
error: validationErrorBox({
|
|
249
|
-
componentName: config.componentName,
|
|
250
|
-
invalidParam
|
|
251
|
-
})
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
// libs/ui/src/validation/schema-paths.ts
|
|
256
|
-
var import_zod = require("zod");
|
|
187
|
+
// libs/ui/src/components/button.ts
|
|
188
|
+
var import_validation = require("@frontmcp/uipack/validation");
|
|
257
189
|
|
|
258
190
|
// libs/ui/src/components/button.schema.ts
|
|
259
|
-
var
|
|
260
|
-
var ButtonVariantSchema =
|
|
261
|
-
var ButtonSizeSchema =
|
|
262
|
-
var ButtonOptionsSchema =
|
|
191
|
+
var import_zod = require("zod");
|
|
192
|
+
var ButtonVariantSchema = import_zod.z.enum(["primary", "secondary", "outline", "ghost", "danger", "success", "link"]);
|
|
193
|
+
var ButtonSizeSchema = import_zod.z.enum(["xs", "sm", "md", "lg", "xl"]);
|
|
194
|
+
var ButtonOptionsSchema = import_zod.z.object({
|
|
263
195
|
/** Button variant */
|
|
264
196
|
variant: ButtonVariantSchema.optional(),
|
|
265
197
|
/** Button size */
|
|
266
198
|
size: ButtonSizeSchema.optional(),
|
|
267
199
|
/** Button type attribute */
|
|
268
|
-
type:
|
|
200
|
+
type: import_zod.z.enum(["button", "submit", "reset"]).optional(),
|
|
269
201
|
/** Disabled state */
|
|
270
|
-
disabled:
|
|
202
|
+
disabled: import_zod.z.boolean().optional(),
|
|
271
203
|
/** Loading state */
|
|
272
|
-
loading:
|
|
204
|
+
loading: import_zod.z.boolean().optional(),
|
|
273
205
|
/** Full width */
|
|
274
|
-
fullWidth:
|
|
206
|
+
fullWidth: import_zod.z.boolean().optional(),
|
|
275
207
|
/** Icon before text (HTML string) */
|
|
276
|
-
iconBefore:
|
|
208
|
+
iconBefore: import_zod.z.string().optional(),
|
|
277
209
|
/** Icon after text (HTML string) */
|
|
278
|
-
iconAfter:
|
|
210
|
+
iconAfter: import_zod.z.string().optional(),
|
|
279
211
|
/** Icon only (no text) */
|
|
280
|
-
iconOnly:
|
|
212
|
+
iconOnly: import_zod.z.boolean().optional(),
|
|
281
213
|
/** Additional CSS classes */
|
|
282
|
-
className:
|
|
214
|
+
className: import_zod.z.string().optional(),
|
|
283
215
|
/** Button ID */
|
|
284
|
-
id:
|
|
216
|
+
id: import_zod.z.string().optional(),
|
|
285
217
|
/** Name attribute */
|
|
286
|
-
name:
|
|
218
|
+
name: import_zod.z.string().optional(),
|
|
287
219
|
/** Value attribute */
|
|
288
|
-
value:
|
|
220
|
+
value: import_zod.z.string().optional(),
|
|
289
221
|
/** Click handler (URL for links) */
|
|
290
|
-
href:
|
|
222
|
+
href: import_zod.z.string().optional(),
|
|
291
223
|
/** Open in new tab */
|
|
292
|
-
target:
|
|
224
|
+
target: import_zod.z.enum(["_blank", "_self"]).optional(),
|
|
293
225
|
/** Data attributes */
|
|
294
|
-
data:
|
|
226
|
+
data: import_zod.z.record(import_zod.z.string(), import_zod.z.string()).optional(),
|
|
295
227
|
/** ARIA label */
|
|
296
|
-
ariaLabel:
|
|
228
|
+
ariaLabel: import_zod.z.string().optional()
|
|
297
229
|
}).strict();
|
|
298
|
-
var ButtonGroupOptionsSchema =
|
|
230
|
+
var ButtonGroupOptionsSchema = import_zod.z.object({
|
|
299
231
|
/** Attach buttons visually */
|
|
300
|
-
attached:
|
|
232
|
+
attached: import_zod.z.boolean().optional(),
|
|
301
233
|
/** Direction */
|
|
302
|
-
direction:
|
|
234
|
+
direction: import_zod.z.enum(["horizontal", "vertical"]).optional(),
|
|
303
235
|
/** Gap between buttons */
|
|
304
|
-
gap:
|
|
236
|
+
gap: import_zod.z.enum(["sm", "md", "lg"]).optional(),
|
|
305
237
|
/** Additional CSS classes */
|
|
306
|
-
className:
|
|
238
|
+
className: import_zod.z.string().optional()
|
|
307
239
|
}).strict();
|
|
308
240
|
|
|
309
241
|
// libs/ui/src/components/button.ts
|
|
@@ -356,7 +288,7 @@ function isValidHrefProtocol(href) {
|
|
|
356
288
|
return trimmed.startsWith("http://") || trimmed.startsWith("https://") || trimmed.startsWith("/") || trimmed.startsWith("#") || trimmed.startsWith("mailto:") || trimmed.startsWith("tel:");
|
|
357
289
|
}
|
|
358
290
|
function button(text, options = {}) {
|
|
359
|
-
const validation = validateOptions(options, {
|
|
291
|
+
const validation = (0, import_validation.validateOptions)(options, {
|
|
360
292
|
schema: ButtonOptionsSchema,
|
|
361
293
|
componentName: "button"
|
|
362
294
|
});
|
|
@@ -396,7 +328,7 @@ function button(text, options = {}) {
|
|
|
396
328
|
}
|
|
397
329
|
const variantClasses = getVariantClasses3(variant);
|
|
398
330
|
const sizeClasses = getSizeClasses3(size, iconOnly);
|
|
399
|
-
const safeClassName = className ? escapeHtml(className) : "";
|
|
331
|
+
const safeClassName = className ? (0, import_utils2.escapeHtml)(className) : "";
|
|
400
332
|
const baseClasses = [
|
|
401
333
|
"inline-flex items-center justify-center",
|
|
402
334
|
"font-medium",
|
|
@@ -411,24 +343,24 @@ function button(text, options = {}) {
|
|
|
411
343
|
].filter(Boolean).join(" ");
|
|
412
344
|
const dataAttrs = data ? Object.entries(data).map(([key, val]) => {
|
|
413
345
|
const safeKey = sanitizeDataKey(key);
|
|
414
|
-
return safeKey ? `data-${safeKey}="${escapeHtml(val)}"` : "";
|
|
346
|
+
return safeKey ? `data-${safeKey}="${(0, import_utils2.escapeHtml)(val)}"` : "";
|
|
415
347
|
}).filter(Boolean).join(" ") : "";
|
|
416
|
-
const idAttr = id ? `id="${escapeHtml(id)}"` : "";
|
|
417
|
-
const nameAttr = name ? `name="${escapeHtml(name)}"` : "";
|
|
418
|
-
const valueAttr = value ? `value="${escapeHtml(value)}"` : "";
|
|
348
|
+
const idAttr = id ? `id="${(0, import_utils2.escapeHtml)(id)}"` : "";
|
|
349
|
+
const nameAttr = name ? `name="${(0, import_utils2.escapeHtml)(name)}"` : "";
|
|
350
|
+
const valueAttr = value ? `value="${(0, import_utils2.escapeHtml)(value)}"` : "";
|
|
419
351
|
const disabledAttr = disabled || loading ? "disabled" : "";
|
|
420
|
-
const targetAttr = target ? `target="${escapeHtml(target)}"` : "";
|
|
352
|
+
const targetAttr = target ? `target="${(0, import_utils2.escapeHtml)(target)}"` : "";
|
|
421
353
|
const relAttr = target === "_blank" ? 'rel="noopener noreferrer"' : "";
|
|
422
354
|
const trimmedText = text.trim();
|
|
423
355
|
const effectiveAriaLabel = ariaLabel ?? (iconOnly && trimmedText ? trimmedText : void 0);
|
|
424
|
-
const ariaLabelAttr = effectiveAriaLabel ? `aria-label="${escapeHtml(effectiveAriaLabel)}"` : "";
|
|
356
|
+
const ariaLabelAttr = effectiveAriaLabel ? `aria-label="${(0, import_utils2.escapeHtml)(effectiveAriaLabel)}"` : "";
|
|
425
357
|
const iconBeforeHtml = iconBefore && !loading ? `<span class="${iconOnly ? "" : "mr-2"}">${iconBefore}</span>` : "";
|
|
426
358
|
const iconAfterHtml = iconAfter && !loading ? `<span class="${iconOnly ? "" : "ml-2"}">${iconAfter}</span>` : "";
|
|
427
359
|
const loadingHtml = loading ? loadingSpinner : "";
|
|
428
|
-
const textHtml = iconOnly ? "" : escapeHtml(text);
|
|
360
|
+
const textHtml = iconOnly ? "" : (0, import_utils2.escapeHtml)(text);
|
|
429
361
|
const contentHtml = `${loadingHtml}${iconBeforeHtml}${textHtml}${iconAfterHtml}`;
|
|
430
362
|
if (href && !disabled && !loading && isValidHrefProtocol(href)) {
|
|
431
|
-
return `<a href="${escapeHtml(
|
|
363
|
+
return `<a href="${(0, import_utils2.escapeHtml)(
|
|
432
364
|
href
|
|
433
365
|
)}" class="${baseClasses}" ${idAttr} ${dataAttrs} ${ariaLabelAttr} ${targetAttr} ${relAttr}>
|
|
434
366
|
${contentHtml}
|
|
@@ -505,7 +437,7 @@ function resourceWidget(options) {
|
|
|
505
437
|
cardOptions = {}
|
|
506
438
|
} = options;
|
|
507
439
|
const iconHtml = thumbnail ? `<div class="w-16 h-16 rounded-lg overflow-hidden bg-gray-100 flex-shrink-0">
|
|
508
|
-
<img src="${escapeHtml(thumbnail)}" alt="${escapeHtml(title)}" class="w-full h-full object-cover">
|
|
440
|
+
<img src="${(0, import_utils2.escapeHtml)(thumbnail)}" alt="${(0, import_utils2.escapeHtml)(title)}" class="w-full h-full object-cover">
|
|
509
441
|
</div>` : `<div class="w-16 h-16 rounded-lg bg-gray-100 flex items-center justify-center flex-shrink-0 text-gray-400">
|
|
510
442
|
${icon || resourceIcons[type]}
|
|
511
443
|
</div>`;
|
|
@@ -540,12 +472,12 @@ function resourceWidget(options) {
|
|
|
540
472
|
const variant = action.variant ? variantMap[action.variant] : "ghost";
|
|
541
473
|
const htmxAttrs = [];
|
|
542
474
|
if (action.htmx) {
|
|
543
|
-
if (action.htmx.get) htmxAttrs.push(`hx-get="${escapeHtml(action.htmx.get)}"`);
|
|
544
|
-
if (action.htmx.post) htmxAttrs.push(`hx-post="${escapeHtml(action.htmx.post)}"`);
|
|
545
|
-
if (action.htmx.delete) htmxAttrs.push(`hx-delete="${escapeHtml(action.htmx.delete)}"`);
|
|
546
|
-
if (action.htmx.target) htmxAttrs.push(`hx-target="${escapeHtml(action.htmx.target)}"`);
|
|
547
|
-
if (action.htmx.swap) htmxAttrs.push(`hx-swap="${escapeHtml(action.htmx.swap)}"`);
|
|
548
|
-
if (action.htmx.confirm) htmxAttrs.push(`hx-confirm="${escapeHtml(action.htmx.confirm)}"`);
|
|
475
|
+
if (action.htmx.get) htmxAttrs.push(`hx-get="${(0, import_utils2.escapeHtml)(action.htmx.get)}"`);
|
|
476
|
+
if (action.htmx.post) htmxAttrs.push(`hx-post="${(0, import_utils2.escapeHtml)(action.htmx.post)}"`);
|
|
477
|
+
if (action.htmx.delete) htmxAttrs.push(`hx-delete="${(0, import_utils2.escapeHtml)(action.htmx.delete)}"`);
|
|
478
|
+
if (action.htmx.target) htmxAttrs.push(`hx-target="${(0, import_utils2.escapeHtml)(action.htmx.target)}"`);
|
|
479
|
+
if (action.htmx.swap) htmxAttrs.push(`hx-swap="${(0, import_utils2.escapeHtml)(action.htmx.swap)}"`);
|
|
480
|
+
if (action.htmx.confirm) htmxAttrs.push(`hx-confirm="${(0, import_utils2.escapeHtml)(action.htmx.confirm)}"`);
|
|
549
481
|
}
|
|
550
482
|
return button(action.label, {
|
|
551
483
|
variant,
|
|
@@ -562,12 +494,12 @@ function resourceWidget(options) {
|
|
|
562
494
|
<div class="flex-1 min-w-0">
|
|
563
495
|
<div class="flex items-start justify-between gap-2">
|
|
564
496
|
<div class="min-w-0">
|
|
565
|
-
${url ? `<a href="${escapeHtml(
|
|
497
|
+
${url ? `<a href="${(0, import_utils2.escapeHtml)(
|
|
566
498
|
url
|
|
567
|
-
)}" class="font-semibold text-text-primary hover:text-primary truncate block">${escapeHtml(
|
|
499
|
+
)}" class="font-semibold text-text-primary hover:text-primary truncate block">${(0, import_utils2.escapeHtml)(
|
|
568
500
|
title
|
|
569
|
-
)}</a>` : `<h3 class="font-semibold text-text-primary truncate">${escapeHtml(title)}</h3>`}
|
|
570
|
-
${description ? `<p class="text-sm text-text-secondary mt-0.5 line-clamp-2">${escapeHtml(description)}</p>` : ""}
|
|
501
|
+
)}</a>` : `<h3 class="font-semibold text-text-primary truncate">${(0, import_utils2.escapeHtml)(title)}</h3>`}
|
|
502
|
+
${description ? `<p class="text-sm text-text-secondary mt-0.5 line-clamp-2">${(0, import_utils2.escapeHtml)(description)}</p>` : ""}
|
|
571
503
|
${metaHtml}
|
|
572
504
|
${tagsHtml}
|
|
573
505
|
</div>
|
|
@@ -595,7 +527,7 @@ function resourceList(options) {
|
|
|
595
527
|
showLoadMore = false,
|
|
596
528
|
loadMoreUrl
|
|
597
529
|
} = options;
|
|
598
|
-
const titleHtml = title ? `<h2 class="text-lg font-semibold text-text-primary mb-4">${escapeHtml(title)}</h2>` : "";
|
|
530
|
+
const titleHtml = title ? `<h2 class="text-lg font-semibold text-text-primary mb-4">${(0, import_utils2.escapeHtml)(title)}</h2>` : "";
|
|
599
531
|
if (resources.length === 0) {
|
|
600
532
|
return `<div class="${className}">
|
|
601
533
|
${titleHtml}
|
|
@@ -603,7 +535,7 @@ function resourceList(options) {
|
|
|
603
535
|
<svg class="w-12 h-12 mx-auto mb-4 text-gray-300" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
604
536
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4"/>
|
|
605
537
|
</svg>
|
|
606
|
-
<p>${escapeHtml(emptyMessage)}</p>
|
|
538
|
+
<p>${(0, import_utils2.escapeHtml)(emptyMessage)}</p>
|
|
607
539
|
</div>
|
|
608
540
|
</div>`;
|
|
609
541
|
}
|
|
@@ -630,7 +562,7 @@ function resourceItem(options) {
|
|
|
630
562
|
</div>`;
|
|
631
563
|
const statusHtml = status ? badge(status.label, { variant: status.variant, size: "sm" }) : "";
|
|
632
564
|
const metaText = meta?.size ? formatFileSize(meta.size) : "";
|
|
633
|
-
const titleElement = url ? `<a href="${escapeHtml(url)}" class="font-medium text-text-primary hover:text-primary">${escapeHtml(title)}</a>` : `<span class="font-medium text-text-primary">${escapeHtml(title)}</span>`;
|
|
565
|
+
const titleElement = url ? `<a href="${(0, import_utils2.escapeHtml)(url)}" class="font-medium text-text-primary hover:text-primary">${(0, import_utils2.escapeHtml)(title)}</a>` : `<span class="font-medium text-text-primary">${(0, import_utils2.escapeHtml)(title)}</span>`;
|
|
634
566
|
return `<div class="flex items-center gap-3 p-3 rounded-lg hover:bg-gray-50 transition-colors">
|
|
635
567
|
${iconHtml}
|
|
636
568
|
<div class="flex-1 min-w-0">
|
|
@@ -638,7 +570,7 @@ function resourceItem(options) {
|
|
|
638
570
|
${titleElement}
|
|
639
571
|
${statusHtml}
|
|
640
572
|
</div>
|
|
641
|
-
${description || metaText ? `<p class="text-sm text-text-secondary truncate">${escapeHtml(description || metaText)}</p>` : ""}
|
|
573
|
+
${description || metaText ? `<p class="text-sm text-text-secondary truncate">${(0, import_utils2.escapeHtml)(description || metaText)}</p>` : ""}
|
|
642
574
|
</div>
|
|
643
575
|
</div>`;
|
|
644
576
|
}
|
|
@@ -667,7 +599,7 @@ function codePreview(options) {
|
|
|
667
599
|
</script>` : "";
|
|
668
600
|
const copyButton = showCopy ? `<button
|
|
669
601
|
type="button"
|
|
670
|
-
onclick="copyCode(this, ${escapeHtml(JSON.stringify(code))})"
|
|
602
|
+
onclick="copyCode(this, ${(0, import_utils2.escapeHtml)(JSON.stringify(code))})"
|
|
671
603
|
class="p-1.5 rounded hover:bg-gray-700 transition-colors"
|
|
672
604
|
title="Copy code"
|
|
673
605
|
>
|
|
@@ -678,9 +610,9 @@ function codePreview(options) {
|
|
|
678
610
|
return `<div class="code-preview rounded-lg overflow-hidden ${className}">
|
|
679
611
|
${filename || showCopy ? `
|
|
680
612
|
<div class="flex items-center justify-between px-4 py-2 bg-gray-800 border-b border-gray-700">
|
|
681
|
-
${filename ? `<span class="text-sm text-gray-300">${escapeHtml(filename)}</span>` : "<span></span>"}
|
|
613
|
+
${filename ? `<span class="text-sm text-gray-300">${(0, import_utils2.escapeHtml)(filename)}</span>` : "<span></span>"}
|
|
682
614
|
<div class="flex items-center gap-2">
|
|
683
|
-
${language ? `<span class="text-xs text-gray-500">${escapeHtml(language)}</span>` : ""}
|
|
615
|
+
${language ? `<span class="text-xs text-gray-500">${(0, import_utils2.escapeHtml)(language)}</span>` : ""}
|
|
684
616
|
${copyButton}
|
|
685
617
|
</div>
|
|
686
618
|
</div>
|
|
@@ -688,7 +620,7 @@ function codePreview(options) {
|
|
|
688
620
|
<div class="bg-gray-900 p-4 overflow-auto" style="max-height: ${maxHeight}">
|
|
689
621
|
<div class="flex text-sm font-mono">
|
|
690
622
|
${lineNumbersHtml}
|
|
691
|
-
<pre class="flex-1 text-gray-100"><code>${escapeHtml(code)}</code></pre>
|
|
623
|
+
<pre class="flex-1 text-gray-100"><code>${(0, import_utils2.escapeHtml)(code)}</code></pre>
|
|
692
624
|
</div>
|
|
693
625
|
</div>
|
|
694
626
|
${copyScript}
|
|
@@ -697,13 +629,13 @@ function codePreview(options) {
|
|
|
697
629
|
function imagePreview(options) {
|
|
698
630
|
const { src, alt, caption, maxHeight = "400px", clickable = true, className = "" } = options;
|
|
699
631
|
const imageHtml = `<img
|
|
700
|
-
src="${escapeHtml(src)}"
|
|
701
|
-
alt="${escapeHtml(alt)}"
|
|
632
|
+
src="${(0, import_utils2.escapeHtml)(src)}"
|
|
633
|
+
alt="${(0, import_utils2.escapeHtml)(alt)}"
|
|
702
634
|
class="max-w-full h-auto rounded-lg"
|
|
703
635
|
style="max-height: ${maxHeight}"
|
|
704
636
|
>`;
|
|
705
|
-
const captionHtml = caption ? `<p class="text-sm text-text-secondary mt-2 text-center">${escapeHtml(caption)}</p>` : "";
|
|
706
|
-
const content = clickable ? `<a href="${escapeHtml(src)}" target="_blank" rel="noopener" class="block">${imageHtml}</a>` : imageHtml;
|
|
637
|
+
const captionHtml = caption ? `<p class="text-sm text-text-secondary mt-2 text-center">${(0, import_utils2.escapeHtml)(caption)}</p>` : "";
|
|
638
|
+
const content = clickable ? `<a href="${(0, import_utils2.escapeHtml)(src)}" target="_blank" rel="noopener" class="block">${imageHtml}</a>` : imageHtml;
|
|
707
639
|
return `<div class="image-preview ${className}">
|
|
708
640
|
${content}
|
|
709
641
|
${captionHtml}
|
|
@@ -737,11 +669,11 @@ function progressBar(options) {
|
|
|
737
669
|
};
|
|
738
670
|
const animatedClass = animated ? "bg-stripes animate-stripes" : "";
|
|
739
671
|
const displayLabel = label || `${Math.round(clampedValue)}%`;
|
|
740
|
-
const insideLabel = labelPosition === "inside" && size === "lg" && clampedValue > 10 ? `<span class="absolute inset-0 flex items-center justify-center text-xs font-medium text-white">${escapeHtml(
|
|
672
|
+
const insideLabel = labelPosition === "inside" && size === "lg" && clampedValue > 10 ? `<span class="absolute inset-0 flex items-center justify-center text-xs font-medium text-white">${(0, import_utils2.escapeHtml)(
|
|
741
673
|
displayLabel
|
|
742
674
|
)}</span>` : "";
|
|
743
675
|
const outsideLabel = showLabel && labelPosition === "outside" ? `<div class="flex justify-between mb-1">
|
|
744
|
-
<span class="text-sm font-medium text-text-primary">${label ? escapeHtml(label) : "Progress"}</span>
|
|
676
|
+
<span class="text-sm font-medium text-text-primary">${label ? (0, import_utils2.escapeHtml)(label) : "Progress"}</span>
|
|
745
677
|
<span class="text-sm text-text-secondary">${Math.round(clampedValue)}%</span>
|
|
746
678
|
</div>` : "";
|
|
747
679
|
return `<div class="progress-bar ${className}">
|
|
@@ -823,13 +755,13 @@ function stepProgress(options) {
|
|
|
823
755
|
${getStepIcon(step, index)}
|
|
824
756
|
</div>
|
|
825
757
|
<div class="pt-2">
|
|
826
|
-
<div class="${classes.text}">${escapeHtml(step.label)}</div>
|
|
827
|
-
${step.description ? `<p class="text-sm text-text-secondary mt-0.5">${escapeHtml(step.description)}</p>` : ""}
|
|
758
|
+
<div class="${classes.text}">${(0, import_utils2.escapeHtml)(step.label)}</div>
|
|
759
|
+
${step.description ? `<p class="text-sm text-text-secondary mt-0.5">${(0, import_utils2.escapeHtml)(step.description)}</p>` : ""}
|
|
828
760
|
</div>
|
|
829
761
|
</div>
|
|
830
762
|
${connectorHtml}
|
|
831
763
|
`;
|
|
832
|
-
return step.href && step.status === "completed" ? `<a href="${escapeHtml(step.href)}" class="block hover:opacity-80">${stepContent}</a>` : `<div>${stepContent}</div>`;
|
|
764
|
+
return step.href && step.status === "completed" ? `<a href="${(0, import_utils2.escapeHtml)(step.href)}" class="block hover:opacity-80">${stepContent}</a>` : `<div>${stepContent}</div>`;
|
|
833
765
|
}).join("\n");
|
|
834
766
|
return `<div class="step-progress ${className}">${stepsHtml2}</div>`;
|
|
835
767
|
}
|
|
@@ -843,12 +775,12 @@ function stepProgress(options) {
|
|
|
843
775
|
${getStepIcon(step, index)}
|
|
844
776
|
</div>
|
|
845
777
|
<div class="mt-2 text-center">
|
|
846
|
-
<div class="${classes.text} text-sm">${escapeHtml(step.label)}</div>
|
|
847
|
-
${step.description ? `<p class="text-xs text-text-secondary mt-0.5 max-w-[120px]">${escapeHtml(step.description)}</p>` : ""}
|
|
778
|
+
<div class="${classes.text} text-sm">${(0, import_utils2.escapeHtml)(step.label)}</div>
|
|
779
|
+
${step.description ? `<p class="text-xs text-text-secondary mt-0.5 max-w-[120px]">${(0, import_utils2.escapeHtml)(step.description)}</p>` : ""}
|
|
848
780
|
</div>
|
|
849
781
|
</div>
|
|
850
782
|
`;
|
|
851
|
-
const clickableStep = step.href && step.status === "completed" ? `<a href="${escapeHtml(step.href)}" class="hover:opacity-80">${stepHtml}</a>` : stepHtml;
|
|
783
|
+
const clickableStep = step.href && step.status === "completed" ? `<a href="${(0, import_utils2.escapeHtml)(step.href)}" class="hover:opacity-80">${stepHtml}</a>` : stepHtml;
|
|
852
784
|
return `${clickableStep}${connectorHtml}`;
|
|
853
785
|
}).join("\n");
|
|
854
786
|
return `<div class="step-progress flex items-start ${className}">${stepsHtml}</div>`;
|
|
@@ -891,7 +823,7 @@ function circularProgress(options) {
|
|
|
891
823
|
style="stroke-dasharray: ${circumference}; stroke-dashoffset: ${offset}; transition: stroke-dashoffset 0.3s ease;"
|
|
892
824
|
/>
|
|
893
825
|
</svg>
|
|
894
|
-
${showLabel ? `<span class="absolute text-sm font-semibold text-text-primary">${escapeHtml(displayLabel)}</span>` : ""}
|
|
826
|
+
${showLabel ? `<span class="absolute text-sm font-semibold text-text-primary">${(0, import_utils2.escapeHtml)(displayLabel)}</span>` : ""}
|
|
895
827
|
</div>`;
|
|
896
828
|
}
|
|
897
829
|
function statusIndicator(options) {
|
|
@@ -919,7 +851,7 @@ function statusIndicator(options) {
|
|
|
919
851
|
${pulseHtml}
|
|
920
852
|
<span class="relative ${sizeInfo.dot} ${statusInfo.color} rounded-full"></span>
|
|
921
853
|
</span>
|
|
922
|
-
${displayLabel ? `<span class="${sizeInfo.text} text-text-secondary">${escapeHtml(displayLabel)}</span>` : ""}
|
|
854
|
+
${displayLabel ? `<span class="${sizeInfo.text} text-text-secondary">${(0, import_utils2.escapeHtml)(displayLabel)}</span>` : ""}
|
|
923
855
|
</div>`;
|
|
924
856
|
}
|
|
925
857
|
function skeleton(options = {}) {
|
package/adapters/index.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @frontmcp/ui Adapters
|
|
3
|
-
*
|
|
4
|
-
* Platform-specific adapters for building UI metadata.
|
|
5
|
-
* These adapters are SDK-independent and can be used by external systems
|
|
6
|
-
* like AgentLink without requiring @frontmcp/sdk.
|
|
7
|
-
*
|
|
8
|
-
* @packageDocumentation
|
|
9
|
-
*/
|
|
10
|
-
export { type AIPlatformType, type UIMetadata, type BuildUIMetaOptions, type BuildToolDiscoveryMetaOptions, buildUIMeta, buildToolDiscoveryMeta, buildOpenAICSP, } from './platform-meta';
|
|
11
|
-
export { type ResolvedServingMode, type ResolveServingModeOptions, resolveServingMode, isPlatformModeSupported, getDefaultServingMode, platformUsesStructuredContent, platformSupportsWidgets, } from './serving-mode';
|
|
12
|
-
export { type TextContentBlock, type BuildToolResponseOptions, type ToolResponseContent, buildToolResponseContent, } from './response-builder';
|
|
13
|
-
//# sourceMappingURL=index.d.ts.map
|
package/adapters/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,KAAK,cAAc,EAEnB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAElC,WAAW,EACX,sBAAsB,EACtB,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAE9B,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EAExB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC"}
|