@frontmcp/ui 0.5.1 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +140 -362
- package/bridge/adapters/base-adapter.d.ts +104 -0
- package/bridge/adapters/base-adapter.d.ts.map +1 -0
- package/bridge/adapters/claude.adapter.d.ts +67 -0
- package/bridge/adapters/claude.adapter.d.ts.map +1 -0
- package/bridge/adapters/ext-apps.adapter.d.ts +143 -0
- package/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
- package/bridge/adapters/gemini.adapter.d.ts +64 -0
- package/bridge/adapters/gemini.adapter.d.ts.map +1 -0
- package/bridge/adapters/generic.adapter.d.ts +56 -0
- package/bridge/adapters/generic.adapter.d.ts.map +1 -0
- package/bridge/adapters/index.d.ts +26 -0
- package/bridge/adapters/index.d.ts.map +1 -0
- package/bridge/adapters/openai.adapter.d.ts +65 -0
- package/bridge/adapters/openai.adapter.d.ts.map +1 -0
- package/bridge/core/adapter-registry.d.ts +122 -0
- package/bridge/core/adapter-registry.d.ts.map +1 -0
- package/bridge/core/bridge-factory.d.ts +199 -0
- package/bridge/core/bridge-factory.d.ts.map +1 -0
- package/bridge/core/index.d.ts +10 -0
- package/bridge/core/index.d.ts.map +1 -0
- package/bridge/index.d.ts +62 -0
- package/bridge/index.d.ts.map +1 -0
- package/bridge/index.js +2540 -0
- package/bridge/runtime/iife-generator.d.ts +62 -0
- package/bridge/runtime/iife-generator.d.ts.map +1 -0
- package/bridge/runtime/index.d.ts +10 -0
- package/bridge/runtime/index.d.ts.map +1 -0
- package/bridge/types.d.ts +386 -0
- package/bridge/types.d.ts.map +1 -0
- package/bundler/bundler.d.ts +208 -0
- package/bundler/bundler.d.ts.map +1 -0
- package/bundler/cache.d.ts +173 -0
- package/bundler/cache.d.ts.map +1 -0
- package/bundler/file-cache/component-builder.d.ts +167 -0
- package/bundler/file-cache/component-builder.d.ts.map +1 -0
- package/bundler/file-cache/hash-calculator.d.ts +155 -0
- package/bundler/file-cache/hash-calculator.d.ts.map +1 -0
- package/bundler/file-cache/index.d.ts +12 -0
- package/bundler/file-cache/index.d.ts.map +1 -0
- package/bundler/file-cache/storage/filesystem.d.ts +149 -0
- package/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
- package/bundler/file-cache/storage/index.d.ts +11 -0
- package/bundler/file-cache/storage/index.d.ts.map +1 -0
- package/bundler/file-cache/storage/interface.d.ts +152 -0
- package/bundler/file-cache/storage/interface.d.ts.map +1 -0
- package/bundler/file-cache/storage/redis.d.ts +139 -0
- package/bundler/file-cache/storage/redis.d.ts.map +1 -0
- package/bundler/index.d.ts +43 -0
- package/bundler/index.d.ts.map +1 -0
- package/bundler/index.js +3707 -0
- package/bundler/sandbox/enclave-adapter.d.ts +121 -0
- package/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
- package/bundler/sandbox/executor.d.ts +14 -0
- package/bundler/sandbox/executor.d.ts.map +1 -0
- package/bundler/sandbox/policy.d.ts +62 -0
- package/bundler/sandbox/policy.d.ts.map +1 -0
- package/bundler/types.d.ts +702 -0
- package/bundler/types.d.ts.map +1 -0
- package/components/alert.d.ts +66 -0
- package/components/alert.d.ts.map +1 -0
- package/components/alert.schema.d.ts +98 -0
- package/components/alert.schema.d.ts.map +1 -0
- package/components/avatar.d.ts +77 -0
- package/components/avatar.d.ts.map +1 -0
- package/components/avatar.schema.d.ts +170 -0
- package/components/avatar.schema.d.ts.map +1 -0
- package/components/badge.d.ts +64 -0
- package/components/badge.d.ts.map +1 -0
- package/components/badge.schema.d.ts +91 -0
- package/components/badge.schema.d.ts.map +1 -0
- package/components/button.d.ts +100 -0
- package/components/button.d.ts.map +1 -0
- package/components/button.schema.d.ts +120 -0
- package/components/button.schema.d.ts.map +1 -0
- package/components/card.d.ts +53 -0
- package/components/card.d.ts.map +1 -0
- package/components/card.schema.d.ts +93 -0
- package/components/card.schema.d.ts.map +1 -0
- package/components/form.d.ts +212 -0
- package/components/form.d.ts.map +1 -0
- package/components/form.schema.d.ts +365 -0
- package/components/form.schema.d.ts.map +1 -0
- package/components/index.d.ts +29 -0
- package/components/index.d.ts.map +1 -0
- package/components/index.js +2525 -0
- package/components/list.d.ts +121 -0
- package/components/list.d.ts.map +1 -0
- package/components/list.schema.d.ts +129 -0
- package/components/list.schema.d.ts.map +1 -0
- package/components/modal.d.ts +100 -0
- package/components/modal.d.ts.map +1 -0
- package/components/modal.schema.d.ts +151 -0
- package/components/modal.schema.d.ts.map +1 -0
- package/components/table.d.ts +91 -0
- package/components/table.d.ts.map +1 -0
- package/components/table.schema.d.ts +123 -0
- package/components/table.schema.d.ts.map +1 -0
- package/esm/bridge/adapters/base-adapter.d.ts +104 -0
- package/esm/bridge/adapters/base-adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/claude.adapter.d.ts +67 -0
- package/esm/bridge/adapters/claude.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/ext-apps.adapter.d.ts +143 -0
- package/esm/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/gemini.adapter.d.ts +64 -0
- package/esm/bridge/adapters/gemini.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/generic.adapter.d.ts +56 -0
- package/esm/bridge/adapters/generic.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/index.d.ts +26 -0
- package/esm/bridge/adapters/index.d.ts.map +1 -0
- package/esm/bridge/adapters/openai.adapter.d.ts +65 -0
- package/esm/bridge/adapters/openai.adapter.d.ts.map +1 -0
- package/esm/bridge/core/adapter-registry.d.ts +122 -0
- package/esm/bridge/core/adapter-registry.d.ts.map +1 -0
- package/esm/bridge/core/bridge-factory.d.ts +199 -0
- package/esm/bridge/core/bridge-factory.d.ts.map +1 -0
- package/esm/bridge/core/index.d.ts +10 -0
- package/esm/bridge/core/index.d.ts.map +1 -0
- package/esm/bridge/index.d.ts +62 -0
- package/esm/bridge/index.d.ts.map +1 -0
- package/esm/bridge/index.js +2487 -0
- package/esm/bridge/runtime/iife-generator.d.ts +62 -0
- package/esm/bridge/runtime/iife-generator.d.ts.map +1 -0
- package/esm/bridge/runtime/index.d.ts +10 -0
- package/esm/bridge/runtime/index.d.ts.map +1 -0
- package/esm/bridge/types.d.ts +386 -0
- package/esm/bridge/types.d.ts.map +1 -0
- package/esm/bundler/bundler.d.ts +208 -0
- package/esm/bundler/bundler.d.ts.map +1 -0
- package/esm/bundler/cache.d.ts +173 -0
- package/esm/bundler/cache.d.ts.map +1 -0
- package/esm/bundler/file-cache/component-builder.d.ts +167 -0
- package/esm/bundler/file-cache/component-builder.d.ts.map +1 -0
- package/esm/bundler/file-cache/hash-calculator.d.ts +155 -0
- package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -0
- package/esm/bundler/file-cache/index.d.ts +12 -0
- package/esm/bundler/file-cache/index.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/filesystem.d.ts +149 -0
- package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/index.d.ts +11 -0
- package/esm/bundler/file-cache/storage/index.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/interface.d.ts +152 -0
- package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/redis.d.ts +139 -0
- package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -0
- package/esm/bundler/index.d.ts +43 -0
- package/esm/bundler/index.d.ts.map +1 -0
- package/esm/bundler/index.js +3640 -0
- package/esm/bundler/sandbox/enclave-adapter.d.ts +121 -0
- package/esm/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
- package/esm/bundler/sandbox/executor.d.ts +14 -0
- package/esm/bundler/sandbox/executor.d.ts.map +1 -0
- package/esm/bundler/sandbox/policy.d.ts +62 -0
- package/esm/bundler/sandbox/policy.d.ts.map +1 -0
- package/esm/bundler/types.d.ts +702 -0
- package/esm/bundler/types.d.ts.map +1 -0
- package/esm/components/alert.d.ts +66 -0
- package/esm/components/alert.d.ts.map +1 -0
- package/esm/components/alert.schema.d.ts +98 -0
- package/esm/components/alert.schema.d.ts.map +1 -0
- package/esm/components/avatar.d.ts +77 -0
- package/esm/components/avatar.d.ts.map +1 -0
- package/esm/components/avatar.schema.d.ts +170 -0
- package/esm/components/avatar.schema.d.ts.map +1 -0
- package/esm/components/badge.d.ts +64 -0
- package/esm/components/badge.d.ts.map +1 -0
- package/esm/components/badge.schema.d.ts +91 -0
- package/esm/components/badge.schema.d.ts.map +1 -0
- package/esm/components/button.d.ts +100 -0
- package/esm/components/button.d.ts.map +1 -0
- package/esm/components/button.schema.d.ts +120 -0
- package/esm/components/button.schema.d.ts.map +1 -0
- package/esm/components/card.d.ts +53 -0
- package/esm/components/card.d.ts.map +1 -0
- package/esm/components/card.schema.d.ts +93 -0
- package/esm/components/card.schema.d.ts.map +1 -0
- package/esm/components/form.d.ts +212 -0
- package/esm/components/form.d.ts.map +1 -0
- package/esm/components/form.schema.d.ts +365 -0
- package/esm/components/form.schema.d.ts.map +1 -0
- package/esm/components/index.d.ts +29 -0
- package/esm/components/index.d.ts.map +1 -0
- package/esm/components/index.js +2396 -0
- package/esm/components/list.d.ts +121 -0
- package/esm/components/list.d.ts.map +1 -0
- package/esm/components/list.schema.d.ts +129 -0
- package/esm/components/list.schema.d.ts.map +1 -0
- package/esm/components/modal.d.ts +100 -0
- package/esm/components/modal.d.ts.map +1 -0
- package/esm/components/modal.schema.d.ts +151 -0
- package/esm/components/modal.schema.d.ts.map +1 -0
- package/esm/components/table.d.ts +91 -0
- package/esm/components/table.d.ts.map +1 -0
- package/esm/components/table.schema.d.ts +123 -0
- package/esm/components/table.schema.d.ts.map +1 -0
- package/esm/index.d.ts +40 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +8326 -0
- package/esm/layouts/base.d.ts +86 -0
- package/esm/layouts/base.d.ts.map +1 -0
- package/esm/layouts/index.d.ts +8 -0
- package/esm/layouts/index.d.ts.map +1 -0
- package/esm/layouts/index.js +409 -0
- package/esm/layouts/presets.d.ts +134 -0
- package/esm/layouts/presets.d.ts.map +1 -0
- package/esm/package.json +72 -0
- package/esm/pages/consent.d.ts +117 -0
- package/esm/pages/consent.d.ts.map +1 -0
- package/esm/pages/error.d.ts +101 -0
- package/esm/pages/error.d.ts.map +1 -0
- package/esm/pages/index.d.ts +9 -0
- package/esm/pages/index.d.ts.map +1 -0
- package/esm/pages/index.js +1036 -0
- package/esm/react/Alert.d.ts +101 -0
- package/esm/react/Alert.d.ts.map +1 -0
- package/esm/react/Badge.d.ts +100 -0
- package/esm/react/Badge.d.ts.map +1 -0
- package/esm/react/Button.d.ts +108 -0
- package/esm/react/Button.d.ts.map +1 -0
- package/esm/react/Card.d.ts +103 -0
- package/esm/react/Card.d.ts.map +1 -0
- package/esm/react/hooks/context.d.ts +179 -0
- package/esm/react/hooks/context.d.ts.map +1 -0
- package/esm/react/hooks/index.d.ts +42 -0
- package/esm/react/hooks/index.d.ts.map +1 -0
- package/esm/react/hooks/tools.d.ts +284 -0
- package/esm/react/hooks/tools.d.ts.map +1 -0
- package/esm/react/index.d.ts +80 -0
- package/esm/react/index.d.ts.map +1 -0
- package/esm/react/index.js +3124 -0
- package/esm/react/types.d.ts +105 -0
- package/esm/react/types.d.ts.map +1 -0
- package/esm/react/utils.d.ts +43 -0
- package/esm/react/utils.d.ts.map +1 -0
- package/esm/render/index.d.ts +8 -0
- package/esm/render/index.d.ts.map +1 -0
- package/esm/render/index.js +45 -0
- package/esm/render/prerender.d.ts +57 -0
- package/esm/render/prerender.d.ts.map +1 -0
- package/esm/renderers/index.d.ts +21 -0
- package/esm/renderers/index.d.ts.map +1 -0
- package/esm/renderers/index.js +381 -0
- package/esm/renderers/react.adapter.d.ts +70 -0
- package/esm/renderers/react.adapter.d.ts.map +1 -0
- package/esm/renderers/react.renderer.d.ts +96 -0
- package/esm/renderers/react.renderer.d.ts.map +1 -0
- package/esm/universal/UniversalApp.d.ts +108 -0
- package/esm/universal/UniversalApp.d.ts.map +1 -0
- package/esm/universal/cached-runtime.d.ts +115 -0
- package/esm/universal/cached-runtime.d.ts.map +1 -0
- package/esm/universal/context.d.ts +122 -0
- package/esm/universal/context.d.ts.map +1 -0
- package/esm/universal/index.d.ts +57 -0
- package/esm/universal/index.d.ts.map +1 -0
- package/esm/universal/index.js +1755 -0
- package/esm/universal/renderers/html.renderer.d.ts +37 -0
- package/esm/universal/renderers/html.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/index.d.ts +112 -0
- package/esm/universal/renderers/index.d.ts.map +1 -0
- package/esm/universal/renderers/markdown.renderer.d.ts +33 -0
- package/esm/universal/renderers/markdown.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/mdx.renderer.d.ts +38 -0
- package/esm/universal/renderers/mdx.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/react.renderer.d.ts +46 -0
- package/esm/universal/renderers/react.renderer.d.ts.map +1 -0
- package/esm/universal/runtime-builder.d.ts +33 -0
- package/esm/universal/runtime-builder.d.ts.map +1 -0
- package/esm/universal/store.d.ts +135 -0
- package/esm/universal/store.d.ts.map +1 -0
- package/esm/universal/types.d.ts +199 -0
- package/esm/universal/types.d.ts.map +1 -0
- package/esm/web-components/core/attribute-parser.d.ts +82 -0
- package/esm/web-components/core/attribute-parser.d.ts.map +1 -0
- package/esm/web-components/core/base-element.d.ts +197 -0
- package/esm/web-components/core/base-element.d.ts.map +1 -0
- package/esm/web-components/core/index.d.ts +9 -0
- package/esm/web-components/core/index.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-alert.d.ts +46 -0
- package/esm/web-components/elements/fmcp-alert.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-badge.d.ts +47 -0
- package/esm/web-components/elements/fmcp-badge.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-button.d.ts +117 -0
- package/esm/web-components/elements/fmcp-button.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-card.d.ts +53 -0
- package/esm/web-components/elements/fmcp-card.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-input.d.ts +96 -0
- package/esm/web-components/elements/fmcp-input.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-select.d.ts +100 -0
- package/esm/web-components/elements/fmcp-select.d.ts.map +1 -0
- package/esm/web-components/elements/index.d.ts +13 -0
- package/esm/web-components/elements/index.d.ts.map +1 -0
- package/esm/web-components/index.d.ts +50 -0
- package/esm/web-components/index.d.ts.map +1 -0
- package/esm/web-components/index.js +1993 -0
- package/esm/web-components/register.d.ts +57 -0
- package/esm/web-components/register.d.ts.map +1 -0
- package/esm/web-components/types.d.ts +122 -0
- package/esm/web-components/types.d.ts.map +1 -0
- package/esm/widgets/index.d.ts +8 -0
- package/esm/widgets/index.d.ts.map +1 -0
- package/esm/widgets/index.js +883 -0
- package/esm/widgets/progress.d.ts +133 -0
- package/esm/widgets/progress.d.ts.map +1 -0
- package/esm/widgets/resource.d.ts +163 -0
- package/esm/widgets/resource.d.ts.map +1 -0
- package/index.d.ts +40 -0
- package/index.d.ts.map +1 -0
- package/index.js +8526 -0
- package/layouts/base.d.ts +86 -0
- package/layouts/base.d.ts.map +1 -0
- package/layouts/index.d.ts +8 -0
- package/layouts/index.d.ts.map +1 -0
- package/layouts/index.js +437 -0
- package/layouts/presets.d.ts +134 -0
- package/layouts/presets.d.ts.map +1 -0
- package/package.json +33 -110
- package/pages/consent.d.ts +117 -0
- package/pages/consent.d.ts.map +1 -0
- package/pages/error.d.ts +101 -0
- package/pages/error.d.ts.map +1 -0
- package/pages/index.d.ts +9 -0
- package/pages/index.d.ts.map +1 -0
- package/pages/index.js +1065 -0
- package/react/Alert.d.ts +101 -0
- package/react/Alert.d.ts.map +1 -0
- package/react/Badge.d.ts +100 -0
- package/react/Badge.d.ts.map +1 -0
- package/react/Button.d.ts +108 -0
- package/react/Button.d.ts.map +1 -0
- package/react/Card.d.ts +103 -0
- package/react/Card.d.ts.map +1 -0
- package/react/hooks/context.d.ts +179 -0
- package/react/hooks/context.d.ts.map +1 -0
- package/react/hooks/index.d.ts +42 -0
- package/react/hooks/index.d.ts.map +1 -0
- package/react/hooks/tools.d.ts +284 -0
- package/react/hooks/tools.d.ts.map +1 -0
- package/react/index.d.ts +80 -0
- package/react/index.d.ts.map +1 -0
- package/react/index.js +3160 -0
- package/react/types.d.ts +105 -0
- package/react/types.d.ts.map +1 -0
- package/react/utils.d.ts +43 -0
- package/react/utils.d.ts.map +1 -0
- package/render/index.d.ts +8 -0
- package/render/index.d.ts.map +1 -0
- package/render/index.js +77 -0
- package/render/prerender.d.ts +57 -0
- package/render/prerender.d.ts.map +1 -0
- package/renderers/index.d.ts +21 -0
- package/renderers/index.d.ts.map +1 -0
- package/renderers/index.js +416 -0
- package/renderers/react.adapter.d.ts +70 -0
- package/renderers/react.adapter.d.ts.map +1 -0
- package/renderers/react.renderer.d.ts +96 -0
- package/renderers/react.renderer.d.ts.map +1 -0
- package/universal/UniversalApp.d.ts +108 -0
- package/universal/UniversalApp.d.ts.map +1 -0
- package/universal/cached-runtime.d.ts +115 -0
- package/universal/cached-runtime.d.ts.map +1 -0
- package/universal/context.d.ts +122 -0
- package/universal/context.d.ts.map +1 -0
- package/universal/index.d.ts +57 -0
- package/universal/index.d.ts.map +1 -0
- package/universal/index.js +1841 -0
- package/universal/renderers/html.renderer.d.ts +37 -0
- package/universal/renderers/html.renderer.d.ts.map +1 -0
- package/universal/renderers/index.d.ts +112 -0
- package/universal/renderers/index.d.ts.map +1 -0
- package/universal/renderers/markdown.renderer.d.ts +33 -0
- package/universal/renderers/markdown.renderer.d.ts.map +1 -0
- package/universal/renderers/mdx.renderer.d.ts +38 -0
- package/universal/renderers/mdx.renderer.d.ts.map +1 -0
- package/universal/renderers/react.renderer.d.ts +46 -0
- package/universal/renderers/react.renderer.d.ts.map +1 -0
- package/universal/runtime-builder.d.ts +33 -0
- package/universal/runtime-builder.d.ts.map +1 -0
- package/universal/store.d.ts +135 -0
- package/universal/store.d.ts.map +1 -0
- package/universal/types.d.ts +199 -0
- package/universal/types.d.ts.map +1 -0
- package/web-components/core/attribute-parser.d.ts +82 -0
- package/web-components/core/attribute-parser.d.ts.map +1 -0
- package/web-components/core/base-element.d.ts +197 -0
- package/web-components/core/base-element.d.ts.map +1 -0
- package/web-components/core/index.d.ts +9 -0
- package/web-components/core/index.d.ts.map +1 -0
- package/web-components/elements/fmcp-alert.d.ts +46 -0
- package/web-components/elements/fmcp-alert.d.ts.map +1 -0
- package/web-components/elements/fmcp-badge.d.ts +47 -0
- package/web-components/elements/fmcp-badge.d.ts.map +1 -0
- package/web-components/elements/fmcp-button.d.ts +117 -0
- package/web-components/elements/fmcp-button.d.ts.map +1 -0
- package/web-components/elements/fmcp-card.d.ts +53 -0
- package/web-components/elements/fmcp-card.d.ts.map +1 -0
- package/web-components/elements/fmcp-input.d.ts +96 -0
- package/web-components/elements/fmcp-input.d.ts.map +1 -0
- package/web-components/elements/fmcp-select.d.ts +100 -0
- package/web-components/elements/fmcp-select.d.ts.map +1 -0
- package/web-components/elements/index.d.ts +13 -0
- package/web-components/elements/index.d.ts.map +1 -0
- package/web-components/index.d.ts +50 -0
- package/web-components/index.d.ts.map +1 -0
- package/web-components/index.js +2028 -0
- package/web-components/register.d.ts +57 -0
- package/web-components/register.d.ts.map +1 -0
- package/web-components/types.d.ts +122 -0
- package/web-components/types.d.ts.map +1 -0
- package/widgets/index.d.ts +8 -0
- package/widgets/index.d.ts.map +1 -0
- package/widgets/index.js +910 -0
- package/widgets/progress.d.ts +133 -0
- package/widgets/progress.d.ts.map +1 -0
- package/widgets/resource.d.ts +163 -0
- package/widgets/resource.d.ts.map +1 -0
- package/src/adapters/index.d.ts +0 -10
- package/src/adapters/index.js +0 -18
- package/src/adapters/index.js.map +0 -1
- package/src/adapters/platform-meta.d.ts +0 -165
- package/src/adapters/platform-meta.js +0 -310
- package/src/adapters/platform-meta.js.map +0 -1
- package/src/base-template/bridge.d.ts +0 -89
- package/src/base-template/bridge.js +0 -452
- package/src/base-template/bridge.js.map +0 -1
- package/src/base-template/default-base-template.d.ts +0 -91
- package/src/base-template/default-base-template.js +0 -435
- package/src/base-template/default-base-template.js.map +0 -1
- package/src/base-template/index.d.ts +0 -14
- package/src/base-template/index.js +0 -30
- package/src/base-template/index.js.map +0 -1
- package/src/base-template/polyfills.d.ts +0 -30
- package/src/base-template/polyfills.js +0 -190
- package/src/base-template/polyfills.js.map +0 -1
- package/src/base-template/theme-styles.d.ts +0 -73
- package/src/base-template/theme-styles.js +0 -95
- package/src/base-template/theme-styles.js.map +0 -1
- package/src/bridge/adapters/base-adapter.d.ts +0 -103
- package/src/bridge/adapters/base-adapter.js +0 -314
- package/src/bridge/adapters/base-adapter.js.map +0 -1
- package/src/bridge/adapters/claude.adapter.d.ts +0 -66
- package/src/bridge/adapters/claude.adapter.js +0 -145
- package/src/bridge/adapters/claude.adapter.js.map +0 -1
- package/src/bridge/adapters/ext-apps.adapter.d.ts +0 -142
- package/src/bridge/adapters/ext-apps.adapter.js +0 -416
- package/src/bridge/adapters/ext-apps.adapter.js.map +0 -1
- package/src/bridge/adapters/gemini.adapter.d.ts +0 -63
- package/src/bridge/adapters/gemini.adapter.js +0 -160
- package/src/bridge/adapters/gemini.adapter.js.map +0 -1
- package/src/bridge/adapters/generic.adapter.d.ts +0 -55
- package/src/bridge/adapters/generic.adapter.js +0 -108
- package/src/bridge/adapters/generic.adapter.js.map +0 -1
- package/src/bridge/adapters/index.d.ts +0 -25
- package/src/bridge/adapters/index.js +0 -65
- package/src/bridge/adapters/index.js.map +0 -1
- package/src/bridge/adapters/openai.adapter.d.ts +0 -64
- package/src/bridge/adapters/openai.adapter.js +0 -194
- package/src/bridge/adapters/openai.adapter.js.map +0 -1
- package/src/bridge/core/adapter-registry.d.ts +0 -121
- package/src/bridge/core/adapter-registry.js +0 -271
- package/src/bridge/core/adapter-registry.js.map +0 -1
- package/src/bridge/core/bridge-factory.d.ts +0 -198
- package/src/bridge/core/bridge-factory.js +0 -428
- package/src/bridge/core/bridge-factory.js.map +0 -1
- package/src/bridge/core/index.d.ts +0 -9
- package/src/bridge/core/index.js +0 -22
- package/src/bridge/core/index.js.map +0 -1
- package/src/bridge/index.d.ts +0 -61
- package/src/bridge/index.js +0 -94
- package/src/bridge/index.js.map +0 -1
- package/src/bridge/runtime/iife-generator.d.ts +0 -61
- package/src/bridge/runtime/iife-generator.js +0 -940
- package/src/bridge/runtime/iife-generator.js.map +0 -1
- package/src/bridge/runtime/index.d.ts +0 -8
- package/src/bridge/runtime/index.js +0 -16
- package/src/bridge/runtime/index.js.map +0 -1
- package/src/bridge/types.d.ts +0 -385
- package/src/bridge/types.js +0 -11
- package/src/bridge/types.js.map +0 -1
- package/src/build/cdn-resources.d.ts +0 -140
- package/src/build/cdn-resources.js +0 -314
- package/src/build/cdn-resources.js.map +0 -1
- package/src/build/index.d.ts +0 -294
- package/src/build/index.js +0 -325
- package/src/build/index.js.map +0 -1
- package/src/build/widget-manifest.d.ts +0 -212
- package/src/build/widget-manifest.js +0 -652
- package/src/build/widget-manifest.js.map +0 -1
- package/src/bundler/bundler.d.ts +0 -110
- package/src/bundler/bundler.js +0 -432
- package/src/bundler/bundler.js.map +0 -1
- package/src/bundler/cache.d.ts +0 -172
- package/src/bundler/cache.js +0 -250
- package/src/bundler/cache.js.map +0 -1
- package/src/bundler/index.d.ts +0 -41
- package/src/bundler/index.js +0 -73
- package/src/bundler/index.js.map +0 -1
- package/src/bundler/sandbox/enclave-adapter.d.ts +0 -120
- package/src/bundler/sandbox/enclave-adapter.js +0 -339
- package/src/bundler/sandbox/enclave-adapter.js.map +0 -1
- package/src/bundler/sandbox/executor.d.ts +0 -13
- package/src/bundler/sandbox/executor.js +0 -22
- package/src/bundler/sandbox/executor.js.map +0 -1
- package/src/bundler/sandbox/policy.d.ts +0 -61
- package/src/bundler/sandbox/policy.js +0 -238
- package/src/bundler/sandbox/policy.js.map +0 -1
- package/src/bundler/types.d.ts +0 -347
- package/src/bundler/types.js +0 -132
- package/src/bundler/types.js.map +0 -1
- package/src/components/alert.d.ts +0 -71
- package/src/components/alert.js +0 -189
- package/src/components/alert.js.map +0 -1
- package/src/components/alert.schema.d.ts +0 -114
- package/src/components/alert.schema.js +0 -105
- package/src/components/alert.schema.js.map +0 -1
- package/src/components/avatar.d.ts +0 -76
- package/src/components/avatar.js +0 -176
- package/src/components/avatar.js.map +0 -1
- package/src/components/avatar.schema.d.ts +0 -169
- package/src/components/avatar.schema.js +0 -103
- package/src/components/avatar.schema.js.map +0 -1
- package/src/components/badge.d.ts +0 -70
- package/src/components/badge.js +0 -149
- package/src/components/badge.js.map +0 -1
- package/src/components/badge.schema.d.ts +0 -109
- package/src/components/badge.schema.js +0 -96
- package/src/components/badge.schema.js.map +0 -1
- package/src/components/button.d.ts +0 -111
- package/src/components/button.js +0 -336
- package/src/components/button.js.map +0 -1
- package/src/components/button.schema.d.ts +0 -148
- package/src/components/button.schema.js +0 -121
- package/src/components/button.schema.js.map +0 -1
- package/src/components/card.d.ts +0 -60
- package/src/components/card.js +0 -117
- package/src/components/card.js.map +0 -1
- package/src/components/card.schema.d.ts +0 -113
- package/src/components/card.schema.js +0 -98
- package/src/components/card.schema.js.map +0 -1
- package/src/components/form.d.ts +0 -239
- package/src/components/form.js +0 -420
- package/src/components/form.js.map +0 -1
- package/src/components/form.schema.d.ts +0 -441
- package/src/components/form.schema.js +0 -406
- package/src/components/form.schema.js.map +0 -1
- package/src/components/index.d.ts +0 -29
- package/src/components/index.js +0 -98
- package/src/components/index.js.map +0 -1
- package/src/components/list.d.ts +0 -127
- package/src/components/list.js +0 -279
- package/src/components/list.js.map +0 -1
- package/src/components/list.schema.d.ts +0 -134
- package/src/components/list.schema.js +0 -168
- package/src/components/list.schema.js.map +0 -1
- package/src/components/modal.d.ts +0 -111
- package/src/components/modal.js +0 -260
- package/src/components/modal.js.map +0 -1
- package/src/components/modal.schema.d.ts +0 -186
- package/src/components/modal.schema.js +0 -167
- package/src/components/modal.schema.js.map +0 -1
- package/src/components/table.d.ts +0 -105
- package/src/components/table.js +0 -283
- package/src/components/table.js.map +0 -1
- package/src/components/table.schema.d.ts +0 -159
- package/src/components/table.schema.js +0 -173
- package/src/components/table.schema.js.map +0 -1
- package/src/handlebars/helpers.d.ts +0 -348
- package/src/handlebars/helpers.js +0 -605
- package/src/handlebars/helpers.js.map +0 -1
- package/src/handlebars/index.d.ts +0 -193
- package/src/handlebars/index.js +0 -350
- package/src/handlebars/index.js.map +0 -1
- package/src/index.d.ts +0 -50
- package/src/index.js +0 -192
- package/src/index.js.map +0 -1
- package/src/layouts/base.d.ts +0 -88
- package/src/layouts/base.js +0 -227
- package/src/layouts/base.js.map +0 -1
- package/src/layouts/index.d.ts +0 -7
- package/src/layouts/index.js +0 -25
- package/src/layouts/index.js.map +0 -1
- package/src/layouts/presets.d.ts +0 -133
- package/src/layouts/presets.js +0 -277
- package/src/layouts/presets.js.map +0 -1
- package/src/pages/consent.d.ts +0 -116
- package/src/pages/consent.js +0 -218
- package/src/pages/consent.js.map +0 -1
- package/src/pages/error.d.ts +0 -100
- package/src/pages/error.js +0 -263
- package/src/pages/error.js.map +0 -1
- package/src/pages/index.d.ts +0 -8
- package/src/pages/index.js +0 -27
- package/src/pages/index.js.map +0 -1
- package/src/react/Alert.d.ts +0 -101
- package/src/react/Alert.js +0 -51
- package/src/react/Alert.js.map +0 -1
- package/src/react/Badge.d.ts +0 -100
- package/src/react/Badge.js +0 -55
- package/src/react/Badge.js.map +0 -1
- package/src/react/Button.d.ts +0 -108
- package/src/react/Button.js +0 -52
- package/src/react/Button.js.map +0 -1
- package/src/react/Card.d.ts +0 -103
- package/src/react/Card.js +0 -55
- package/src/react/Card.js.map +0 -1
- package/src/react/hooks/context.d.ts +0 -178
- package/src/react/hooks/context.js +0 -287
- package/src/react/hooks/context.js.map +0 -1
- package/src/react/hooks/index.d.ts +0 -41
- package/src/react/hooks/index.js +0 -61
- package/src/react/hooks/index.js.map +0 -1
- package/src/react/hooks/tools.d.ts +0 -283
- package/src/react/hooks/tools.js +0 -465
- package/src/react/hooks/tools.js.map +0 -1
- package/src/react/index.d.ts +0 -80
- package/src/react/index.js +0 -113
- package/src/react/index.js.map +0 -1
- package/src/react/types.d.ts +0 -105
- package/src/react/types.js +0 -12
- package/src/react/types.js.map +0 -1
- package/src/react/utils.d.ts +0 -42
- package/src/react/utils.js +0 -99
- package/src/react/utils.js.map +0 -1
- package/src/registry/index.d.ts +0 -45
- package/src/registry/index.js +0 -67
- package/src/registry/index.js.map +0 -1
- package/src/registry/render-template.d.ts +0 -86
- package/src/registry/render-template.js +0 -239
- package/src/registry/render-template.js.map +0 -1
- package/src/registry/tool-ui.registry.d.ts +0 -260
- package/src/registry/tool-ui.registry.js +0 -438
- package/src/registry/tool-ui.registry.js.map +0 -1
- package/src/registry/uri-utils.d.ts +0 -55
- package/src/registry/uri-utils.js +0 -97
- package/src/registry/uri-utils.js.map +0 -1
- package/src/render/index.d.ts +0 -7
- package/src/render/index.js +0 -14
- package/src/render/index.js.map +0 -1
- package/src/render/prerender.d.ts +0 -56
- package/src/render/prerender.js +0 -98
- package/src/render/prerender.js.map +0 -1
- package/src/renderers/cache.d.ts +0 -144
- package/src/renderers/cache.js +0 -240
- package/src/renderers/cache.js.map +0 -1
- package/src/renderers/html.renderer.d.ts +0 -122
- package/src/renderers/html.renderer.js +0 -204
- package/src/renderers/html.renderer.js.map +0 -1
- package/src/renderers/index.d.ts +0 -35
- package/src/renderers/index.js +0 -70
- package/src/renderers/index.js.map +0 -1
- package/src/renderers/mdx.renderer.d.ts +0 -119
- package/src/renderers/mdx.renderer.js +0 -305
- package/src/renderers/mdx.renderer.js.map +0 -1
- package/src/renderers/react.renderer.d.ts +0 -95
- package/src/renderers/react.renderer.js +0 -260
- package/src/renderers/react.renderer.js.map +0 -1
- package/src/renderers/registry.d.ts +0 -133
- package/src/renderers/registry.js +0 -232
- package/src/renderers/registry.js.map +0 -1
- package/src/renderers/types.d.ts +0 -341
- package/src/renderers/types.js +0 -9
- package/src/renderers/types.js.map +0 -1
- package/src/renderers/utils/detect.d.ts +0 -106
- package/src/renderers/utils/detect.js +0 -267
- package/src/renderers/utils/detect.js.map +0 -1
- package/src/renderers/utils/hash.d.ts +0 -39
- package/src/renderers/utils/hash.js +0 -75
- package/src/renderers/utils/hash.js.map +0 -1
- package/src/renderers/utils/index.d.ts +0 -8
- package/src/renderers/utils/index.js +0 -28
- package/src/renderers/utils/index.js.map +0 -1
- package/src/renderers/utils/transpiler.d.ts +0 -88
- package/src/renderers/utils/transpiler.js +0 -215
- package/src/renderers/utils/transpiler.js.map +0 -1
- package/src/runtime/adapters/html.adapter.d.ts +0 -58
- package/src/runtime/adapters/html.adapter.js +0 -131
- package/src/runtime/adapters/html.adapter.js.map +0 -1
- package/src/runtime/adapters/index.d.ts +0 -25
- package/src/runtime/adapters/index.js +0 -54
- package/src/runtime/adapters/index.js.map +0 -1
- package/src/runtime/adapters/mdx.adapter.d.ts +0 -72
- package/src/runtime/adapters/mdx.adapter.js +0 -241
- package/src/runtime/adapters/mdx.adapter.js.map +0 -1
- package/src/runtime/adapters/react.adapter.d.ts +0 -69
- package/src/runtime/adapters/react.adapter.js +0 -245
- package/src/runtime/adapters/react.adapter.js.map +0 -1
- package/src/runtime/adapters/types.d.ts +0 -94
- package/src/runtime/adapters/types.js +0 -11
- package/src/runtime/adapters/types.js.map +0 -1
- package/src/runtime/csp.d.ts +0 -37
- package/src/runtime/csp.js +0 -140
- package/src/runtime/csp.js.map +0 -1
- package/src/runtime/index.d.ts +0 -16
- package/src/runtime/index.js +0 -72
- package/src/runtime/index.js.map +0 -1
- package/src/runtime/mcp-bridge.d.ts +0 -100
- package/src/runtime/mcp-bridge.js +0 -581
- package/src/runtime/mcp-bridge.js.map +0 -1
- package/src/runtime/renderer-runtime.d.ts +0 -132
- package/src/runtime/renderer-runtime.js +0 -389
- package/src/runtime/renderer-runtime.js.map +0 -1
- package/src/runtime/sanitizer.d.ts +0 -171
- package/src/runtime/sanitizer.js +0 -318
- package/src/runtime/sanitizer.js.map +0 -1
- package/src/runtime/types.d.ts +0 -414
- package/src/runtime/types.js +0 -12
- package/src/runtime/types.js.map +0 -1
- package/src/runtime/wrapper.d.ts +0 -375
- package/src/runtime/wrapper.js +0 -1793
- package/src/runtime/wrapper.js.map +0 -1
- package/src/styles/index.d.ts +0 -7
- package/src/styles/index.js +0 -11
- package/src/styles/index.js.map +0 -1
- package/src/styles/variants.d.ts +0 -50
- package/src/styles/variants.js +0 -175
- package/src/styles/variants.js.map +0 -1
- package/src/theme/cdn.d.ts +0 -194
- package/src/theme/cdn.js +0 -375
- package/src/theme/cdn.js.map +0 -1
- package/src/theme/index.d.ts +0 -17
- package/src/theme/index.js +0 -57
- package/src/theme/index.js.map +0 -1
- package/src/theme/platforms.d.ts +0 -106
- package/src/theme/platforms.js +0 -161
- package/src/theme/platforms.js.map +0 -1
- package/src/theme/presets/github-openai.d.ts +0 -49
- package/src/theme/presets/github-openai.js +0 -189
- package/src/theme/presets/github-openai.js.map +0 -1
- package/src/theme/presets/index.d.ts +0 -10
- package/src/theme/presets/index.js +0 -17
- package/src/theme/presets/index.js.map +0 -1
- package/src/theme/theme.d.ts +0 -395
- package/src/theme/theme.js +0 -332
- package/src/theme/theme.js.map +0 -1
- package/src/tool-template/builder.d.ts +0 -212
- package/src/tool-template/builder.js +0 -397
- package/src/tool-template/builder.js.map +0 -1
- package/src/tool-template/index.d.ts +0 -15
- package/src/tool-template/index.js +0 -38
- package/src/tool-template/index.js.map +0 -1
- package/src/types/index.d.ts +0 -13
- package/src/types/index.js +0 -26
- package/src/types/index.js.map +0 -1
- package/src/types/ui-config.d.ts +0 -357
- package/src/types/ui-config.js +0 -12
- package/src/types/ui-config.js.map +0 -1
- package/src/types/ui-runtime.d.ts +0 -965
- package/src/types/ui-runtime.js +0 -117
- package/src/types/ui-runtime.js.map +0 -1
- package/src/validation/error-box.d.ts +0 -55
- package/src/validation/error-box.js +0 -75
- package/src/validation/error-box.js.map +0 -1
- package/src/validation/index.d.ts +0 -12
- package/src/validation/index.js +0 -21
- package/src/validation/index.js.map +0 -1
- package/src/validation/wrapper.d.ts +0 -96
- package/src/validation/wrapper.js +0 -117
- package/src/validation/wrapper.js.map +0 -1
- package/src/web-components/core/attribute-parser.d.ts +0 -85
- package/src/web-components/core/attribute-parser.js +0 -189
- package/src/web-components/core/attribute-parser.js.map +0 -1
- package/src/web-components/core/base-element.d.ts +0 -197
- package/src/web-components/core/base-element.js +0 -289
- package/src/web-components/core/base-element.js.map +0 -1
- package/src/web-components/core/index.d.ts +0 -8
- package/src/web-components/core/index.js +0 -18
- package/src/web-components/core/index.js.map +0 -1
- package/src/web-components/elements/fmcp-alert.d.ts +0 -45
- package/src/web-components/elements/fmcp-alert.js +0 -93
- package/src/web-components/elements/fmcp-alert.js.map +0 -1
- package/src/web-components/elements/fmcp-badge.d.ts +0 -46
- package/src/web-components/elements/fmcp-badge.js +0 -99
- package/src/web-components/elements/fmcp-badge.js.map +0 -1
- package/src/web-components/elements/fmcp-button.d.ts +0 -124
- package/src/web-components/elements/fmcp-button.js +0 -233
- package/src/web-components/elements/fmcp-button.js.map +0 -1
- package/src/web-components/elements/fmcp-card.d.ts +0 -52
- package/src/web-components/elements/fmcp-card.js +0 -115
- package/src/web-components/elements/fmcp-card.js.map +0 -1
- package/src/web-components/elements/fmcp-input.d.ts +0 -95
- package/src/web-components/elements/fmcp-input.js +0 -248
- package/src/web-components/elements/fmcp-input.js.map +0 -1
- package/src/web-components/elements/fmcp-select.d.ts +0 -99
- package/src/web-components/elements/fmcp-select.js +0 -243
- package/src/web-components/elements/fmcp-select.js.map +0 -1
- package/src/web-components/elements/index.d.ts +0 -12
- package/src/web-components/elements/index.js +0 -34
- package/src/web-components/elements/index.js.map +0 -1
- package/src/web-components/index.d.ts +0 -49
- package/src/web-components/index.js +0 -75
- package/src/web-components/index.js.map +0 -1
- package/src/web-components/register.d.ts +0 -56
- package/src/web-components/register.js +0 -80
- package/src/web-components/register.js.map +0 -1
- package/src/web-components/types.d.ts +0 -121
- package/src/web-components/types.js +0 -25
- package/src/web-components/types.js.map +0 -1
- package/src/widgets/index.d.ts +0 -7
- package/src/widgets/index.js +0 -24
- package/src/widgets/index.js.map +0 -1
- package/src/widgets/progress.d.ts +0 -132
- package/src/widgets/progress.js +0 -303
- package/src/widgets/progress.js.map +0 -1
- package/src/widgets/resource.d.ts +0 -162
- package/src/widgets/resource.js +0 -340
- package/src/widgets/resource.js.map +0 -1
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @file alert.schema.ts
|
|
4
|
-
* @description Zod schemas for Alert and Toast component options validation.
|
|
5
|
-
*
|
|
6
|
-
* Provides strict validation schemas for alert options including variants,
|
|
7
|
-
* dismissible alerts, and toast notifications with positioning.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```typescript
|
|
11
|
-
* import { AlertOptionsSchema, ToastOptionsSchema } from '@frontmcp/ui';
|
|
12
|
-
*
|
|
13
|
-
* const alertResult = AlertOptionsSchema.safeParse({ variant: 'success' });
|
|
14
|
-
* const toastResult = ToastOptionsSchema.safeParse({ position: 'top-right' });
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* @module @frontmcp/ui/components/alert.schema
|
|
18
|
-
*/
|
|
19
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.ToastOptionsSchema = exports.ToastPositionSchema = exports.AlertOptionsSchema = exports.AlertOnDismissSchema = exports.AlertVariantSchema = void 0;
|
|
21
|
-
const zod_1 = require("zod");
|
|
22
|
-
// ============================================
|
|
23
|
-
// Variant Schema
|
|
24
|
-
// ============================================
|
|
25
|
-
/**
|
|
26
|
-
* Alert variant enum schema
|
|
27
|
-
*/
|
|
28
|
-
exports.AlertVariantSchema = zod_1.z.enum(['info', 'success', 'warning', 'danger', 'neutral']);
|
|
29
|
-
// ============================================
|
|
30
|
-
// OnDismiss Schema
|
|
31
|
-
// ============================================
|
|
32
|
-
/**
|
|
33
|
-
* Dismiss button HTMX options schema
|
|
34
|
-
*/
|
|
35
|
-
exports.AlertOnDismissSchema = zod_1.z
|
|
36
|
-
.object({
|
|
37
|
-
delete: zod_1.z.string().optional(),
|
|
38
|
-
target: zod_1.z.string().optional(),
|
|
39
|
-
swap: zod_1.z.string().optional(),
|
|
40
|
-
})
|
|
41
|
-
.strict()
|
|
42
|
-
.optional();
|
|
43
|
-
// ============================================
|
|
44
|
-
// Alert Options Schema
|
|
45
|
-
// ============================================
|
|
46
|
-
/**
|
|
47
|
-
* Complete alert options schema
|
|
48
|
-
*/
|
|
49
|
-
exports.AlertOptionsSchema = zod_1.z
|
|
50
|
-
.object({
|
|
51
|
-
/** Alert variant */
|
|
52
|
-
variant: exports.AlertVariantSchema.optional(),
|
|
53
|
-
/** Alert title */
|
|
54
|
-
title: zod_1.z.string().optional(),
|
|
55
|
-
/** Show icon */
|
|
56
|
-
showIcon: zod_1.z.boolean().optional(),
|
|
57
|
-
/** Custom icon (HTML string, overrides default) */
|
|
58
|
-
icon: zod_1.z.string().optional(),
|
|
59
|
-
/** Dismissible alert */
|
|
60
|
-
dismissible: zod_1.z.boolean().optional(),
|
|
61
|
-
/** Additional CSS classes */
|
|
62
|
-
className: zod_1.z.string().optional(),
|
|
63
|
-
/** Alert ID */
|
|
64
|
-
id: zod_1.z.string().optional(),
|
|
65
|
-
/** Actions (HTML string for buttons) */
|
|
66
|
-
actions: zod_1.z.string().optional(),
|
|
67
|
-
/** HTMX for dismiss */
|
|
68
|
-
onDismiss: exports.AlertOnDismissSchema,
|
|
69
|
-
})
|
|
70
|
-
.strict();
|
|
71
|
-
// ============================================
|
|
72
|
-
// Toast Position Schema
|
|
73
|
-
// ============================================
|
|
74
|
-
/**
|
|
75
|
-
* Toast position enum schema
|
|
76
|
-
*/
|
|
77
|
-
exports.ToastPositionSchema = zod_1.z.enum([
|
|
78
|
-
'top-right',
|
|
79
|
-
'top-left',
|
|
80
|
-
'bottom-right',
|
|
81
|
-
'bottom-left',
|
|
82
|
-
'top-center',
|
|
83
|
-
'bottom-center',
|
|
84
|
-
]);
|
|
85
|
-
// ============================================
|
|
86
|
-
// Toast Options Schema
|
|
87
|
-
// ============================================
|
|
88
|
-
/**
|
|
89
|
-
* Complete toast options schema
|
|
90
|
-
*/
|
|
91
|
-
exports.ToastOptionsSchema = zod_1.z
|
|
92
|
-
.object({
|
|
93
|
-
/** Toast variant */
|
|
94
|
-
variant: exports.AlertVariantSchema.optional(),
|
|
95
|
-
/** Toast title */
|
|
96
|
-
title: zod_1.z.string().optional(),
|
|
97
|
-
/** Duration in ms (0 = no auto-dismiss) */
|
|
98
|
-
duration: zod_1.z.number().min(0).optional(),
|
|
99
|
-
/** Position */
|
|
100
|
-
position: exports.ToastPositionSchema.optional(),
|
|
101
|
-
/** Toast ID */
|
|
102
|
-
id: zod_1.z.string().optional(),
|
|
103
|
-
})
|
|
104
|
-
.strict();
|
|
105
|
-
//# sourceMappingURL=alert.schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alert.schema.js","sourceRoot":"","sources":["../../../src/components/alert.schema.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAEH,6BAAwB;AAExB,+CAA+C;AAC/C,iBAAiB;AACjB,+CAA+C;AAE/C;;GAEG;AACU,QAAA,kBAAkB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAO9F,+CAA+C;AAC/C,mBAAmB;AACnB,+CAA+C;AAE/C;;GAEG;AACU,QAAA,oBAAoB,GAAG,OAAC;KAClC,MAAM,CAAC;IACN,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC;KACD,MAAM,EAAE;KACR,QAAQ,EAAE,CAAC;AAOd,+CAA+C;AAC/C,uBAAuB;AACvB,+CAA+C;AAE/C;;GAEG;AACU,QAAA,kBAAkB,GAAG,OAAC;KAChC,MAAM,CAAC;IACN,oBAAoB;IACpB,OAAO,EAAE,0BAAkB,CAAC,QAAQ,EAAE;IACtC,kBAAkB;IAClB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,gBAAgB;IAChB,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,mDAAmD;IACnD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,wBAAwB;IACxB,WAAW,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,6BAA6B;IAC7B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,eAAe;IACf,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,wCAAwC;IACxC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,uBAAuB;IACvB,SAAS,EAAE,4BAAoB;CAChC,CAAC;KACD,MAAM,EAAE,CAAC;AAOZ,+CAA+C;AAC/C,wBAAwB;AACxB,+CAA+C;AAE/C;;GAEG;AACU,QAAA,mBAAmB,GAAG,OAAC,CAAC,IAAI,CAAC;IACxC,WAAW;IACX,UAAU;IACV,cAAc;IACd,aAAa;IACb,YAAY;IACZ,eAAe;CAChB,CAAC,CAAC;AAOH,+CAA+C;AAC/C,uBAAuB;AACvB,+CAA+C;AAE/C;;GAEG;AACU,QAAA,kBAAkB,GAAG,OAAC;KAChC,MAAM,CAAC;IACN,oBAAoB;IACpB,OAAO,EAAE,0BAAkB,CAAC,QAAQ,EAAE;IACtC,kBAAkB;IAClB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,2CAA2C;IAC3C,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,eAAe;IACf,QAAQ,EAAE,2BAAmB,CAAC,QAAQ,EAAE;IACxC,eAAe;IACf,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC1B,CAAC;KACD,MAAM,EAAE,CAAC","sourcesContent":["/**\n * @file alert.schema.ts\n * @description Zod schemas for Alert and Toast component options validation.\n *\n * Provides strict validation schemas for alert options including variants,\n * dismissible alerts, and toast notifications with positioning.\n *\n * @example\n * ```typescript\n * import { AlertOptionsSchema, ToastOptionsSchema } from '@frontmcp/ui';\n *\n * const alertResult = AlertOptionsSchema.safeParse({ variant: 'success' });\n * const toastResult = ToastOptionsSchema.safeParse({ position: 'top-right' });\n * ```\n *\n * @module @frontmcp/ui/components/alert.schema\n */\n\nimport { z } from 'zod';\n\n// ============================================\n// Variant Schema\n// ============================================\n\n/**\n * Alert variant enum schema\n */\nexport const AlertVariantSchema = z.enum(['info', 'success', 'warning', 'danger', 'neutral']);\n\n/**\n * Alert variant type\n */\nexport type AlertVariant = z.infer<typeof AlertVariantSchema>;\n\n// ============================================\n// OnDismiss Schema\n// ============================================\n\n/**\n * Dismiss button HTMX options schema\n */\nexport const AlertOnDismissSchema = z\n .object({\n delete: z.string().optional(),\n target: z.string().optional(),\n swap: z.string().optional(),\n })\n .strict()\n .optional();\n\n/**\n * Alert onDismiss type\n */\nexport type AlertOnDismiss = z.infer<typeof AlertOnDismissSchema>;\n\n// ============================================\n// Alert Options Schema\n// ============================================\n\n/**\n * Complete alert options schema\n */\nexport const AlertOptionsSchema = z\n .object({\n /** Alert variant */\n variant: AlertVariantSchema.optional(),\n /** Alert title */\n title: z.string().optional(),\n /** Show icon */\n showIcon: z.boolean().optional(),\n /** Custom icon (HTML string, overrides default) */\n icon: z.string().optional(),\n /** Dismissible alert */\n dismissible: z.boolean().optional(),\n /** Additional CSS classes */\n className: z.string().optional(),\n /** Alert ID */\n id: z.string().optional(),\n /** Actions (HTML string for buttons) */\n actions: z.string().optional(),\n /** HTMX for dismiss */\n onDismiss: AlertOnDismissSchema,\n })\n .strict();\n\n/**\n * Alert options type (derived from schema)\n */\nexport type AlertOptions = z.infer<typeof AlertOptionsSchema>;\n\n// ============================================\n// Toast Position Schema\n// ============================================\n\n/**\n * Toast position enum schema\n */\nexport const ToastPositionSchema = z.enum([\n 'top-right',\n 'top-left',\n 'bottom-right',\n 'bottom-left',\n 'top-center',\n 'bottom-center',\n]);\n\n/**\n * Toast position type\n */\nexport type ToastPosition = z.infer<typeof ToastPositionSchema>;\n\n// ============================================\n// Toast Options Schema\n// ============================================\n\n/**\n * Complete toast options schema\n */\nexport const ToastOptionsSchema = z\n .object({\n /** Toast variant */\n variant: AlertVariantSchema.optional(),\n /** Toast title */\n title: z.string().optional(),\n /** Duration in ms (0 = no auto-dismiss) */\n duration: z.number().min(0).optional(),\n /** Position */\n position: ToastPositionSchema.optional(),\n /** Toast ID */\n id: z.string().optional(),\n })\n .strict();\n\n/**\n * Toast options type (derived from schema)\n */\nexport type ToastOptions = z.infer<typeof ToastOptionsSchema>;\n"]}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Avatar Component
|
|
3
|
-
*
|
|
4
|
-
* User avatars and avatar groups.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Avatar size options
|
|
8
|
-
*/
|
|
9
|
-
export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
10
|
-
/**
|
|
11
|
-
* Avatar shape options
|
|
12
|
-
*/
|
|
13
|
-
export type AvatarShape = 'circle' | 'square' | 'rounded';
|
|
14
|
-
/**
|
|
15
|
-
* Avatar status options
|
|
16
|
-
*/
|
|
17
|
-
export type AvatarStatus = 'online' | 'offline' | 'busy' | 'away' | 'none';
|
|
18
|
-
/**
|
|
19
|
-
* Avatar component options
|
|
20
|
-
*/
|
|
21
|
-
export interface AvatarOptions {
|
|
22
|
-
/** Image source URL */
|
|
23
|
-
src?: string;
|
|
24
|
-
/** Alt text / name */
|
|
25
|
-
alt: string;
|
|
26
|
-
/** Avatar size */
|
|
27
|
-
size?: AvatarSize;
|
|
28
|
-
/** Avatar shape */
|
|
29
|
-
shape?: AvatarShape;
|
|
30
|
-
/** Status indicator */
|
|
31
|
-
status?: AvatarStatus;
|
|
32
|
-
/** Additional CSS classes */
|
|
33
|
-
className?: string;
|
|
34
|
-
/** Click handler URL */
|
|
35
|
-
href?: string;
|
|
36
|
-
/** Custom initials (overrides auto-generation) */
|
|
37
|
-
initials?: string;
|
|
38
|
-
/** Background color for initials (CSS color) */
|
|
39
|
-
bgColor?: string;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Build an avatar component
|
|
43
|
-
*/
|
|
44
|
-
export declare function avatar(options: AvatarOptions): string;
|
|
45
|
-
/**
|
|
46
|
-
* Avatar group options
|
|
47
|
-
*/
|
|
48
|
-
export interface AvatarGroupOptions {
|
|
49
|
-
/** Maximum visible avatars */
|
|
50
|
-
max?: number;
|
|
51
|
-
/** Avatar size */
|
|
52
|
-
size?: AvatarSize;
|
|
53
|
-
/** Overlap amount */
|
|
54
|
-
spacing?: 'tight' | 'normal' | 'loose';
|
|
55
|
-
/** Additional CSS classes */
|
|
56
|
-
className?: string;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Build an avatar group
|
|
60
|
-
*/
|
|
61
|
-
export declare function avatarGroup(avatars: AvatarOptions[], options?: AvatarGroupOptions): string;
|
|
62
|
-
/**
|
|
63
|
-
* Avatar with name/details options
|
|
64
|
-
*/
|
|
65
|
-
export interface AvatarWithTextOptions extends AvatarOptions {
|
|
66
|
-
/** Primary text (name) */
|
|
67
|
-
name: string;
|
|
68
|
-
/** Secondary text (email, role, etc.) */
|
|
69
|
-
subtitle?: string;
|
|
70
|
-
/** Text alignment */
|
|
71
|
-
align?: 'left' | 'right';
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Build avatar with name and details
|
|
75
|
-
*/
|
|
76
|
-
export declare function avatarWithText(options: AvatarWithTextOptions): string;
|
package/src/components/avatar.js
DELETED
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Avatar Component
|
|
4
|
-
*
|
|
5
|
-
* User avatars and avatar groups.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.avatar = avatar;
|
|
9
|
-
exports.avatarGroup = avatarGroup;
|
|
10
|
-
exports.avatarWithText = avatarWithText;
|
|
11
|
-
const base_1 = require("../layouts/base");
|
|
12
|
-
// ============================================
|
|
13
|
-
// Avatar Helpers
|
|
14
|
-
// ============================================
|
|
15
|
-
/**
|
|
16
|
-
* Get size CSS classes
|
|
17
|
-
*/
|
|
18
|
-
function getSizeClasses(size) {
|
|
19
|
-
const sizes = {
|
|
20
|
-
xs: { container: 'w-6 h-6', text: 'text-xs', status: 'w-2 h-2 border' },
|
|
21
|
-
sm: { container: 'w-8 h-8', text: 'text-xs', status: 'w-2.5 h-2.5 border' },
|
|
22
|
-
md: { container: 'w-10 h-10', text: 'text-sm', status: 'w-3 h-3 border-2' },
|
|
23
|
-
lg: { container: 'w-12 h-12', text: 'text-base', status: 'w-3.5 h-3.5 border-2' },
|
|
24
|
-
xl: { container: 'w-16 h-16', text: 'text-lg', status: 'w-4 h-4 border-2' },
|
|
25
|
-
'2xl': { container: 'w-24 h-24', text: 'text-2xl', status: 'w-5 h-5 border-2' },
|
|
26
|
-
};
|
|
27
|
-
return sizes[size];
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Get shape CSS classes
|
|
31
|
-
*/
|
|
32
|
-
function getShapeClasses(shape) {
|
|
33
|
-
const shapes = {
|
|
34
|
-
circle: 'rounded-full',
|
|
35
|
-
square: 'rounded-none',
|
|
36
|
-
rounded: 'rounded-lg',
|
|
37
|
-
};
|
|
38
|
-
return shapes[shape];
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Get status CSS classes
|
|
42
|
-
*/
|
|
43
|
-
function getStatusClasses(status) {
|
|
44
|
-
const statuses = {
|
|
45
|
-
online: 'bg-success',
|
|
46
|
-
offline: 'bg-gray-400',
|
|
47
|
-
busy: 'bg-danger',
|
|
48
|
-
away: 'bg-warning',
|
|
49
|
-
none: '',
|
|
50
|
-
};
|
|
51
|
-
return statuses[status];
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Generate initials from name
|
|
55
|
-
*/
|
|
56
|
-
function generateInitials(name) {
|
|
57
|
-
const parts = name.trim().split(/\s+/);
|
|
58
|
-
if (parts.length === 1) {
|
|
59
|
-
return parts[0].charAt(0).toUpperCase();
|
|
60
|
-
}
|
|
61
|
-
return (parts[0].charAt(0) + parts[parts.length - 1].charAt(0)).toUpperCase();
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Generate background color from name (deterministic)
|
|
65
|
-
*/
|
|
66
|
-
function generateBgColor(name) {
|
|
67
|
-
const colors = [
|
|
68
|
-
'bg-blue-500',
|
|
69
|
-
'bg-green-500',
|
|
70
|
-
'bg-yellow-500',
|
|
71
|
-
'bg-purple-500',
|
|
72
|
-
'bg-pink-500',
|
|
73
|
-
'bg-indigo-500',
|
|
74
|
-
'bg-red-500',
|
|
75
|
-
'bg-orange-500',
|
|
76
|
-
'bg-teal-500',
|
|
77
|
-
'bg-cyan-500',
|
|
78
|
-
];
|
|
79
|
-
let hash = 0;
|
|
80
|
-
for (let i = 0; i < name.length; i++) {
|
|
81
|
-
hash = name.charCodeAt(i) + ((hash << 5) - hash);
|
|
82
|
-
}
|
|
83
|
-
return colors[Math.abs(hash) % colors.length];
|
|
84
|
-
}
|
|
85
|
-
// ============================================
|
|
86
|
-
// Avatar Builder
|
|
87
|
-
// ============================================
|
|
88
|
-
/**
|
|
89
|
-
* Build an avatar component
|
|
90
|
-
*/
|
|
91
|
-
function avatar(options) {
|
|
92
|
-
const { src, alt, size = 'md', shape = 'circle', status = 'none', className = '', href, initials, bgColor } = options;
|
|
93
|
-
const sizeClasses = getSizeClasses(size);
|
|
94
|
-
const shapeClasses = getShapeClasses(shape);
|
|
95
|
-
const statusColor = getStatusClasses(status);
|
|
96
|
-
const displayInitials = initials || generateInitials(alt);
|
|
97
|
-
const displayBgColor = bgColor || generateBgColor(alt);
|
|
98
|
-
const containerClasses = [
|
|
99
|
-
'relative inline-flex items-center justify-center',
|
|
100
|
-
'overflow-hidden',
|
|
101
|
-
sizeClasses.container,
|
|
102
|
-
shapeClasses,
|
|
103
|
-
className,
|
|
104
|
-
]
|
|
105
|
-
.filter(Boolean)
|
|
106
|
-
.join(' ');
|
|
107
|
-
const contentHtml = src
|
|
108
|
-
? `<img src="${(0, base_1.escapeHtml)(src)}" alt="${(0, base_1.escapeHtml)(alt)}" class="w-full h-full object-cover">`
|
|
109
|
-
: `<span class="font-medium text-white ${sizeClasses.text}">${(0, base_1.escapeHtml)(displayInitials)}</span>`;
|
|
110
|
-
const bgClasses = src ? 'bg-gray-200' : displayBgColor;
|
|
111
|
-
const statusHtml = status !== 'none'
|
|
112
|
-
? `<span class="absolute bottom-0 right-0 block ${sizeClasses.status} ${shapeClasses} ${statusColor} border-white"></span>`
|
|
113
|
-
: '';
|
|
114
|
-
const innerHtml = `
|
|
115
|
-
<div class="${containerClasses} ${bgClasses}">
|
|
116
|
-
${contentHtml}
|
|
117
|
-
${statusHtml}
|
|
118
|
-
</div>
|
|
119
|
-
`;
|
|
120
|
-
if (href) {
|
|
121
|
-
return `<a href="${(0, base_1.escapeHtml)(href)}" class="inline-block">${innerHtml}</a>`;
|
|
122
|
-
}
|
|
123
|
-
return innerHtml;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Build an avatar group
|
|
127
|
-
*/
|
|
128
|
-
function avatarGroup(avatars, options = {}) {
|
|
129
|
-
const { max = 5, size = 'md', spacing = 'normal', className = '' } = options;
|
|
130
|
-
const spacingClasses = {
|
|
131
|
-
tight: '-space-x-3',
|
|
132
|
-
normal: '-space-x-2',
|
|
133
|
-
loose: '-space-x-1',
|
|
134
|
-
};
|
|
135
|
-
const visibleAvatars = avatars.slice(0, max);
|
|
136
|
-
const remainingCount = avatars.length - max;
|
|
137
|
-
const avatarsHtml = visibleAvatars
|
|
138
|
-
.map((opts, index) => {
|
|
139
|
-
const avatarHtml = avatar({ ...opts, size });
|
|
140
|
-
return `<div class="relative ring-2 ring-white rounded-full" style="z-index: ${visibleAvatars.length - index}">
|
|
141
|
-
${avatarHtml}
|
|
142
|
-
</div>`;
|
|
143
|
-
})
|
|
144
|
-
.join('\n');
|
|
145
|
-
const sizeClasses = getSizeClasses(size);
|
|
146
|
-
const overflowHtml = remainingCount > 0
|
|
147
|
-
? `<div class="relative ring-2 ring-white rounded-full" style="z-index: 0">
|
|
148
|
-
<div class="${sizeClasses.container} rounded-full bg-gray-200 flex items-center justify-center">
|
|
149
|
-
<span class="${sizeClasses.text} font-medium text-gray-600">+${remainingCount}</span>
|
|
150
|
-
</div>
|
|
151
|
-
</div>`
|
|
152
|
-
: '';
|
|
153
|
-
return `<div class="flex ${spacingClasses[spacing]} ${className}">
|
|
154
|
-
${avatarsHtml}
|
|
155
|
-
${overflowHtml}
|
|
156
|
-
</div>`;
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Build avatar with name and details
|
|
160
|
-
*/
|
|
161
|
-
function avatarWithText(options) {
|
|
162
|
-
const { name, subtitle, align = 'left', ...avatarOptions } = options;
|
|
163
|
-
const avatarHtml = avatar({ ...avatarOptions, alt: avatarOptions.alt || name });
|
|
164
|
-
const textHtml = `
|
|
165
|
-
<div class="${align === 'right' ? 'text-right' : ''}">
|
|
166
|
-
<div class="font-medium text-text-primary">${(0, base_1.escapeHtml)(name)}</div>
|
|
167
|
-
${subtitle ? `<div class="text-sm text-text-secondary">${(0, base_1.escapeHtml)(subtitle)}</div>` : ''}
|
|
168
|
-
</div>
|
|
169
|
-
`;
|
|
170
|
-
const flexDirection = align === 'right' ? 'flex-row-reverse' : 'flex-row';
|
|
171
|
-
return `<div class="flex items-center gap-3 ${flexDirection}">
|
|
172
|
-
${avatarHtml}
|
|
173
|
-
${textHtml}
|
|
174
|
-
</div>`;
|
|
175
|
-
}
|
|
176
|
-
//# sourceMappingURL=avatar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/components/avatar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Avatar Component\n *\n * User avatars and avatar groups.\n */\n\nimport { escapeHtml } from '../layouts/base';\n\n// ============================================\n// Avatar Types\n// ============================================\n\n/**\n * Avatar size options\n */\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\n/**\n * Avatar shape options\n */\nexport type AvatarShape = 'circle' | 'square' | 'rounded';\n\n/**\n * Avatar status options\n */\nexport type AvatarStatus = 'online' | 'offline' | 'busy' | 'away' | 'none';\n\n/**\n * Avatar component options\n */\nexport interface AvatarOptions {\n /** Image source URL */\n src?: string;\n /** Alt text / name */\n alt: string;\n /** Avatar size */\n size?: AvatarSize;\n /** Avatar shape */\n shape?: AvatarShape;\n /** Status indicator */\n status?: AvatarStatus;\n /** Additional CSS classes */\n className?: string;\n /** Click handler URL */\n href?: string;\n /** Custom initials (overrides auto-generation) */\n initials?: string;\n /** Background color for initials (CSS color) */\n bgColor?: string;\n}\n\n// ============================================\n// Avatar Helpers\n// ============================================\n\n/**\n * Get size CSS classes\n */\nfunction getSizeClasses(size: AvatarSize): { container: string; text: string; status: string } {\n const sizes: Record<AvatarSize, { container: string; text: string; status: string }> = {\n xs: { container: 'w-6 h-6', text: 'text-xs', status: 'w-2 h-2 border' },\n sm: { container: 'w-8 h-8', text: 'text-xs', status: 'w-2.5 h-2.5 border' },\n md: { container: 'w-10 h-10', text: 'text-sm', status: 'w-3 h-3 border-2' },\n lg: { container: 'w-12 h-12', text: 'text-base', status: 'w-3.5 h-3.5 border-2' },\n xl: { container: 'w-16 h-16', text: 'text-lg', status: 'w-4 h-4 border-2' },\n '2xl': { container: 'w-24 h-24', text: 'text-2xl', status: 'w-5 h-5 border-2' },\n };\n return sizes[size];\n}\n\n/**\n * Get shape CSS classes\n */\nfunction getShapeClasses(shape: AvatarShape): string {\n const shapes: Record<AvatarShape, string> = {\n circle: 'rounded-full',\n square: 'rounded-none',\n rounded: 'rounded-lg',\n };\n return shapes[shape];\n}\n\n/**\n * Get status CSS classes\n */\nfunction getStatusClasses(status: AvatarStatus): string {\n const statuses: Record<AvatarStatus, string> = {\n online: 'bg-success',\n offline: 'bg-gray-400',\n busy: 'bg-danger',\n away: 'bg-warning',\n none: '',\n };\n return statuses[status];\n}\n\n/**\n * Generate initials from name\n */\nfunction generateInitials(name: string): string {\n const parts = name.trim().split(/\\s+/);\n if (parts.length === 1) {\n return parts[0].charAt(0).toUpperCase();\n }\n return (parts[0].charAt(0) + parts[parts.length - 1].charAt(0)).toUpperCase();\n}\n\n/**\n * Generate background color from name (deterministic)\n */\nfunction generateBgColor(name: string): string {\n const colors = [\n 'bg-blue-500',\n 'bg-green-500',\n 'bg-yellow-500',\n 'bg-purple-500',\n 'bg-pink-500',\n 'bg-indigo-500',\n 'bg-red-500',\n 'bg-orange-500',\n 'bg-teal-500',\n 'bg-cyan-500',\n ];\n let hash = 0;\n for (let i = 0; i < name.length; i++) {\n hash = name.charCodeAt(i) + ((hash << 5) - hash);\n }\n return colors[Math.abs(hash) % colors.length];\n}\n\n// ============================================\n// Avatar Builder\n// ============================================\n\n/**\n * Build an avatar component\n */\nexport function avatar(options: AvatarOptions): string {\n const { src, alt, size = 'md', shape = 'circle', status = 'none', className = '', href, initials, bgColor } = options;\n\n const sizeClasses = getSizeClasses(size);\n const shapeClasses = getShapeClasses(shape);\n const statusColor = getStatusClasses(status);\n\n const displayInitials = initials || generateInitials(alt);\n const displayBgColor = bgColor || generateBgColor(alt);\n\n const containerClasses = [\n 'relative inline-flex items-center justify-center',\n 'overflow-hidden',\n sizeClasses.container,\n shapeClasses,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const contentHtml = src\n ? `<img src=\"${escapeHtml(src)}\" alt=\"${escapeHtml(alt)}\" class=\"w-full h-full object-cover\">`\n : `<span class=\"font-medium text-white ${sizeClasses.text}\">${escapeHtml(displayInitials)}</span>`;\n\n const bgClasses = src ? 'bg-gray-200' : displayBgColor;\n\n const statusHtml =\n status !== 'none'\n ? `<span class=\"absolute bottom-0 right-0 block ${sizeClasses.status} ${shapeClasses} ${statusColor} border-white\"></span>`\n : '';\n\n const innerHtml = `\n <div class=\"${containerClasses} ${bgClasses}\">\n ${contentHtml}\n ${statusHtml}\n </div>\n `;\n\n if (href) {\n return `<a href=\"${escapeHtml(href)}\" class=\"inline-block\">${innerHtml}</a>`;\n }\n\n return innerHtml;\n}\n\n// ============================================\n// Avatar Group\n// ============================================\n\n/**\n * Avatar group options\n */\nexport interface AvatarGroupOptions {\n /** Maximum visible avatars */\n max?: number;\n /** Avatar size */\n size?: AvatarSize;\n /** Overlap amount */\n spacing?: 'tight' | 'normal' | 'loose';\n /** Additional CSS classes */\n className?: string;\n}\n\n/**\n * Build an avatar group\n */\nexport function avatarGroup(avatars: AvatarOptions[], options: AvatarGroupOptions = {}): string {\n const { max = 5, size = 'md', spacing = 'normal', className = '' } = options;\n\n const spacingClasses: Record<string, string> = {\n tight: '-space-x-3',\n normal: '-space-x-2',\n loose: '-space-x-1',\n };\n\n const visibleAvatars = avatars.slice(0, max);\n const remainingCount = avatars.length - max;\n\n const avatarsHtml = visibleAvatars\n .map((opts, index) => {\n const avatarHtml = avatar({ ...opts, size });\n return `<div class=\"relative ring-2 ring-white rounded-full\" style=\"z-index: ${visibleAvatars.length - index}\">\n ${avatarHtml}\n </div>`;\n })\n .join('\\n');\n\n const sizeClasses = getSizeClasses(size);\n const overflowHtml =\n remainingCount > 0\n ? `<div class=\"relative ring-2 ring-white rounded-full\" style=\"z-index: 0\">\n <div class=\"${sizeClasses.container} rounded-full bg-gray-200 flex items-center justify-center\">\n <span class=\"${sizeClasses.text} font-medium text-gray-600\">+${remainingCount}</span>\n </div>\n </div>`\n : '';\n\n return `<div class=\"flex ${spacingClasses[spacing]} ${className}\">\n ${avatarsHtml}\n ${overflowHtml}\n </div>`;\n}\n\n// ============================================\n// Avatar with Text\n// ============================================\n\n/**\n * Avatar with name/details options\n */\nexport interface AvatarWithTextOptions extends AvatarOptions {\n /** Primary text (name) */\n name: string;\n /** Secondary text (email, role, etc.) */\n subtitle?: string;\n /** Text alignment */\n align?: 'left' | 'right';\n}\n\n/**\n * Build avatar with name and details\n */\nexport function avatarWithText(options: AvatarWithTextOptions): string {\n const { name, subtitle, align = 'left', ...avatarOptions } = options;\n\n const avatarHtml = avatar({ ...avatarOptions, alt: avatarOptions.alt || name });\n\n const textHtml = `\n <div class=\"${align === 'right' ? 'text-right' : ''}\">\n <div class=\"font-medium text-text-primary\">${escapeHtml(name)}</div>\n ${subtitle ? `<div class=\"text-sm text-text-secondary\">${escapeHtml(subtitle)}</div>` : ''}\n </div>\n `;\n\n const flexDirection = align === 'right' ? 'flex-row-reverse' : 'flex-row';\n\n return `<div class=\"flex items-center gap-3 ${flexDirection}\">\n ${avatarHtml}\n ${textHtml}\n </div>`;\n}\n"]}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file avatar.schema.ts
|
|
3
|
-
* @description Zod schemas for Avatar component options validation.
|
|
4
|
-
*
|
|
5
|
-
* Provides strict validation schemas for avatar options including sizes,
|
|
6
|
-
* shapes, status indicators, and avatar groups with text.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* import { AvatarOptionsSchema } from '@frontmcp/ui';
|
|
11
|
-
*
|
|
12
|
-
* const result = AvatarOptionsSchema.safeParse({
|
|
13
|
-
* alt: 'John Doe',
|
|
14
|
-
* size: 'lg',
|
|
15
|
-
* });
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* @module @frontmcp/ui/components/avatar.schema
|
|
19
|
-
*/
|
|
20
|
-
import { z } from 'zod';
|
|
21
|
-
/**
|
|
22
|
-
* Avatar size enum schema
|
|
23
|
-
*/
|
|
24
|
-
export declare const AvatarSizeSchema: z.ZodEnum<{
|
|
25
|
-
xs: "xs";
|
|
26
|
-
sm: "sm";
|
|
27
|
-
lg: "lg";
|
|
28
|
-
xl: "xl";
|
|
29
|
-
"2xl": "2xl";
|
|
30
|
-
md: "md";
|
|
31
|
-
}>;
|
|
32
|
-
/**
|
|
33
|
-
* Avatar size type
|
|
34
|
-
*/
|
|
35
|
-
export type AvatarSize = z.infer<typeof AvatarSizeSchema>;
|
|
36
|
-
/**
|
|
37
|
-
* Avatar shape enum schema
|
|
38
|
-
*/
|
|
39
|
-
export declare const AvatarShapeSchema: z.ZodEnum<{
|
|
40
|
-
circle: "circle";
|
|
41
|
-
square: "square";
|
|
42
|
-
rounded: "rounded";
|
|
43
|
-
}>;
|
|
44
|
-
/**
|
|
45
|
-
* Avatar shape type
|
|
46
|
-
*/
|
|
47
|
-
export type AvatarShape = z.infer<typeof AvatarShapeSchema>;
|
|
48
|
-
/**
|
|
49
|
-
* Avatar status enum schema
|
|
50
|
-
*/
|
|
51
|
-
export declare const AvatarStatusSchema: z.ZodEnum<{
|
|
52
|
-
none: "none";
|
|
53
|
-
online: "online";
|
|
54
|
-
offline: "offline";
|
|
55
|
-
busy: "busy";
|
|
56
|
-
away: "away";
|
|
57
|
-
}>;
|
|
58
|
-
/**
|
|
59
|
-
* Avatar status type
|
|
60
|
-
*/
|
|
61
|
-
export type AvatarStatus = z.infer<typeof AvatarStatusSchema>;
|
|
62
|
-
/**
|
|
63
|
-
* Complete avatar options schema
|
|
64
|
-
*/
|
|
65
|
-
export declare const AvatarOptionsSchema: z.ZodObject<{
|
|
66
|
-
src: z.ZodOptional<z.ZodString>;
|
|
67
|
-
alt: z.ZodString;
|
|
68
|
-
size: z.ZodOptional<z.ZodEnum<{
|
|
69
|
-
xs: "xs";
|
|
70
|
-
sm: "sm";
|
|
71
|
-
lg: "lg";
|
|
72
|
-
xl: "xl";
|
|
73
|
-
"2xl": "2xl";
|
|
74
|
-
md: "md";
|
|
75
|
-
}>>;
|
|
76
|
-
shape: z.ZodOptional<z.ZodEnum<{
|
|
77
|
-
circle: "circle";
|
|
78
|
-
square: "square";
|
|
79
|
-
rounded: "rounded";
|
|
80
|
-
}>>;
|
|
81
|
-
status: z.ZodOptional<z.ZodEnum<{
|
|
82
|
-
none: "none";
|
|
83
|
-
online: "online";
|
|
84
|
-
offline: "offline";
|
|
85
|
-
busy: "busy";
|
|
86
|
-
away: "away";
|
|
87
|
-
}>>;
|
|
88
|
-
className: z.ZodOptional<z.ZodString>;
|
|
89
|
-
href: z.ZodOptional<z.ZodString>;
|
|
90
|
-
initials: z.ZodOptional<z.ZodString>;
|
|
91
|
-
bgColor: z.ZodOptional<z.ZodString>;
|
|
92
|
-
}, z.core.$strict>;
|
|
93
|
-
/**
|
|
94
|
-
* Avatar options type (derived from schema)
|
|
95
|
-
*/
|
|
96
|
-
export type AvatarOptions = z.infer<typeof AvatarOptionsSchema>;
|
|
97
|
-
/**
|
|
98
|
-
* Avatar group spacing schema
|
|
99
|
-
*/
|
|
100
|
-
export declare const AvatarSpacingSchema: z.ZodEnum<{
|
|
101
|
-
normal: "normal";
|
|
102
|
-
tight: "tight";
|
|
103
|
-
loose: "loose";
|
|
104
|
-
}>;
|
|
105
|
-
/**
|
|
106
|
-
* Avatar group options schema
|
|
107
|
-
*/
|
|
108
|
-
export declare const AvatarGroupOptionsSchema: z.ZodObject<{
|
|
109
|
-
max: z.ZodOptional<z.ZodNumber>;
|
|
110
|
-
size: z.ZodOptional<z.ZodEnum<{
|
|
111
|
-
xs: "xs";
|
|
112
|
-
sm: "sm";
|
|
113
|
-
lg: "lg";
|
|
114
|
-
xl: "xl";
|
|
115
|
-
"2xl": "2xl";
|
|
116
|
-
md: "md";
|
|
117
|
-
}>>;
|
|
118
|
-
spacing: z.ZodOptional<z.ZodEnum<{
|
|
119
|
-
normal: "normal";
|
|
120
|
-
tight: "tight";
|
|
121
|
-
loose: "loose";
|
|
122
|
-
}>>;
|
|
123
|
-
className: z.ZodOptional<z.ZodString>;
|
|
124
|
-
}, z.core.$strict>;
|
|
125
|
-
/**
|
|
126
|
-
* Avatar group options type
|
|
127
|
-
*/
|
|
128
|
-
export type AvatarGroupOptions = z.infer<typeof AvatarGroupOptionsSchema>;
|
|
129
|
-
/**
|
|
130
|
-
* Avatar with text options schema
|
|
131
|
-
*/
|
|
132
|
-
export declare const AvatarWithTextOptionsSchema: z.ZodObject<{
|
|
133
|
-
src: z.ZodOptional<z.ZodString>;
|
|
134
|
-
alt: z.ZodString;
|
|
135
|
-
size: z.ZodOptional<z.ZodEnum<{
|
|
136
|
-
xs: "xs";
|
|
137
|
-
sm: "sm";
|
|
138
|
-
lg: "lg";
|
|
139
|
-
xl: "xl";
|
|
140
|
-
"2xl": "2xl";
|
|
141
|
-
md: "md";
|
|
142
|
-
}>>;
|
|
143
|
-
shape: z.ZodOptional<z.ZodEnum<{
|
|
144
|
-
circle: "circle";
|
|
145
|
-
square: "square";
|
|
146
|
-
rounded: "rounded";
|
|
147
|
-
}>>;
|
|
148
|
-
status: z.ZodOptional<z.ZodEnum<{
|
|
149
|
-
none: "none";
|
|
150
|
-
online: "online";
|
|
151
|
-
offline: "offline";
|
|
152
|
-
busy: "busy";
|
|
153
|
-
away: "away";
|
|
154
|
-
}>>;
|
|
155
|
-
className: z.ZodOptional<z.ZodString>;
|
|
156
|
-
href: z.ZodOptional<z.ZodString>;
|
|
157
|
-
initials: z.ZodOptional<z.ZodString>;
|
|
158
|
-
bgColor: z.ZodOptional<z.ZodString>;
|
|
159
|
-
name: z.ZodString;
|
|
160
|
-
subtitle: z.ZodOptional<z.ZodString>;
|
|
161
|
-
align: z.ZodOptional<z.ZodEnum<{
|
|
162
|
-
left: "left";
|
|
163
|
-
right: "right";
|
|
164
|
-
}>>;
|
|
165
|
-
}, z.core.$strict>;
|
|
166
|
-
/**
|
|
167
|
-
* Avatar with text options type
|
|
168
|
-
*/
|
|
169
|
-
export type AvatarWithTextOptions = z.infer<typeof AvatarWithTextOptionsSchema>;
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @file avatar.schema.ts
|
|
4
|
-
* @description Zod schemas for Avatar component options validation.
|
|
5
|
-
*
|
|
6
|
-
* Provides strict validation schemas for avatar options including sizes,
|
|
7
|
-
* shapes, status indicators, and avatar groups with text.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```typescript
|
|
11
|
-
* import { AvatarOptionsSchema } from '@frontmcp/ui';
|
|
12
|
-
*
|
|
13
|
-
* const result = AvatarOptionsSchema.safeParse({
|
|
14
|
-
* alt: 'John Doe',
|
|
15
|
-
* size: 'lg',
|
|
16
|
-
* });
|
|
17
|
-
* ```
|
|
18
|
-
*
|
|
19
|
-
* @module @frontmcp/ui/components/avatar.schema
|
|
20
|
-
*/
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.AvatarWithTextOptionsSchema = exports.AvatarGroupOptionsSchema = exports.AvatarSpacingSchema = exports.AvatarOptionsSchema = exports.AvatarStatusSchema = exports.AvatarShapeSchema = exports.AvatarSizeSchema = void 0;
|
|
23
|
-
const zod_1 = require("zod");
|
|
24
|
-
// ============================================
|
|
25
|
-
// Size, Shape, and Status Schemas
|
|
26
|
-
// ============================================
|
|
27
|
-
/**
|
|
28
|
-
* Avatar size enum schema
|
|
29
|
-
*/
|
|
30
|
-
exports.AvatarSizeSchema = zod_1.z.enum(['xs', 'sm', 'md', 'lg', 'xl', '2xl']);
|
|
31
|
-
/**
|
|
32
|
-
* Avatar shape enum schema
|
|
33
|
-
*/
|
|
34
|
-
exports.AvatarShapeSchema = zod_1.z.enum(['circle', 'square', 'rounded']);
|
|
35
|
-
/**
|
|
36
|
-
* Avatar status enum schema
|
|
37
|
-
*/
|
|
38
|
-
exports.AvatarStatusSchema = zod_1.z.enum(['online', 'offline', 'busy', 'away', 'none']);
|
|
39
|
-
// ============================================
|
|
40
|
-
// Avatar Options Schema
|
|
41
|
-
// ============================================
|
|
42
|
-
/**
|
|
43
|
-
* Complete avatar options schema
|
|
44
|
-
*/
|
|
45
|
-
exports.AvatarOptionsSchema = zod_1.z
|
|
46
|
-
.object({
|
|
47
|
-
/** Image source URL */
|
|
48
|
-
src: zod_1.z.string().optional(),
|
|
49
|
-
/** Alt text / name (required) */
|
|
50
|
-
alt: zod_1.z.string(),
|
|
51
|
-
/** Avatar size */
|
|
52
|
-
size: exports.AvatarSizeSchema.optional(),
|
|
53
|
-
/** Avatar shape */
|
|
54
|
-
shape: exports.AvatarShapeSchema.optional(),
|
|
55
|
-
/** Status indicator */
|
|
56
|
-
status: exports.AvatarStatusSchema.optional(),
|
|
57
|
-
/** Additional CSS classes */
|
|
58
|
-
className: zod_1.z.string().optional(),
|
|
59
|
-
/** Click handler URL */
|
|
60
|
-
href: zod_1.z.string().optional(),
|
|
61
|
-
/** Custom initials (overrides auto-generation) */
|
|
62
|
-
initials: zod_1.z.string().optional(),
|
|
63
|
-
/** Background color for initials (CSS color) */
|
|
64
|
-
bgColor: zod_1.z.string().optional(),
|
|
65
|
-
})
|
|
66
|
-
.strict();
|
|
67
|
-
// ============================================
|
|
68
|
-
// Avatar Group Schema
|
|
69
|
-
// ============================================
|
|
70
|
-
/**
|
|
71
|
-
* Avatar group spacing schema
|
|
72
|
-
*/
|
|
73
|
-
exports.AvatarSpacingSchema = zod_1.z.enum(['tight', 'normal', 'loose']);
|
|
74
|
-
/**
|
|
75
|
-
* Avatar group options schema
|
|
76
|
-
*/
|
|
77
|
-
exports.AvatarGroupOptionsSchema = zod_1.z
|
|
78
|
-
.object({
|
|
79
|
-
/** Maximum visible avatars */
|
|
80
|
-
max: zod_1.z.number().min(1).optional(),
|
|
81
|
-
/** Avatar size */
|
|
82
|
-
size: exports.AvatarSizeSchema.optional(),
|
|
83
|
-
/** Overlap amount */
|
|
84
|
-
spacing: exports.AvatarSpacingSchema.optional(),
|
|
85
|
-
/** Additional CSS classes */
|
|
86
|
-
className: zod_1.z.string().optional(),
|
|
87
|
-
})
|
|
88
|
-
.strict();
|
|
89
|
-
// ============================================
|
|
90
|
-
// Avatar with Text Schema
|
|
91
|
-
// ============================================
|
|
92
|
-
/**
|
|
93
|
-
* Avatar with text options schema
|
|
94
|
-
*/
|
|
95
|
-
exports.AvatarWithTextOptionsSchema = exports.AvatarOptionsSchema.extend({
|
|
96
|
-
/** Primary text (name) */
|
|
97
|
-
name: zod_1.z.string(),
|
|
98
|
-
/** Secondary text (email, role, etc.) */
|
|
99
|
-
subtitle: zod_1.z.string().optional(),
|
|
100
|
-
/** Text alignment */
|
|
101
|
-
align: zod_1.z.enum(['left', 'right']).optional(),
|
|
102
|
-
}).strict();
|
|
103
|
-
//# sourceMappingURL=avatar.schema.js.map
|