@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
package/src/components/list.d.ts
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* List Components
|
|
3
|
-
*
|
|
4
|
-
* Various list presentations including permission lists, feature lists, and data lists.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Permission/Scope item for OAuth consent
|
|
8
|
-
*/
|
|
9
|
-
export interface PermissionItem {
|
|
10
|
-
/** Scope identifier */
|
|
11
|
-
scope: string;
|
|
12
|
-
/** Display name */
|
|
13
|
-
name: string;
|
|
14
|
-
/** Description */
|
|
15
|
-
description?: string;
|
|
16
|
-
/** Icon HTML */
|
|
17
|
-
icon?: string;
|
|
18
|
-
/** Required permission (cannot be unchecked) */
|
|
19
|
-
required?: boolean;
|
|
20
|
-
/** Checked by default */
|
|
21
|
-
checked?: boolean;
|
|
22
|
-
/** Sensitive/dangerous permission */
|
|
23
|
-
sensitive?: boolean;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Feature list item
|
|
27
|
-
*/
|
|
28
|
-
export interface FeatureItem {
|
|
29
|
-
/** Feature name */
|
|
30
|
-
name: string;
|
|
31
|
-
/** Feature description */
|
|
32
|
-
description?: string;
|
|
33
|
-
/** Icon HTML */
|
|
34
|
-
icon?: string;
|
|
35
|
-
/** Included in plan */
|
|
36
|
-
included?: boolean;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Description list item
|
|
40
|
-
*/
|
|
41
|
-
export interface DescriptionItem {
|
|
42
|
-
/** Term/label */
|
|
43
|
-
term: string;
|
|
44
|
-
/** Description/value */
|
|
45
|
-
description: string;
|
|
46
|
-
/** Copy button */
|
|
47
|
-
copyable?: boolean;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Permission list options
|
|
51
|
-
*/
|
|
52
|
-
export interface PermissionListOptions {
|
|
53
|
-
/** List ID */
|
|
54
|
-
id?: string;
|
|
55
|
-
/** Checkable permissions */
|
|
56
|
-
checkable?: boolean;
|
|
57
|
-
/** Input name for checkable */
|
|
58
|
-
inputName?: string;
|
|
59
|
-
/** Group title */
|
|
60
|
-
title?: string;
|
|
61
|
-
/** Additional CSS classes */
|
|
62
|
-
className?: string;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Build a permission list for OAuth consent
|
|
66
|
-
*/
|
|
67
|
-
export declare function permissionList(permissions: PermissionItem[], options?: PermissionListOptions): string;
|
|
68
|
-
/**
|
|
69
|
-
* Feature list options
|
|
70
|
-
*/
|
|
71
|
-
export interface FeatureListOptions {
|
|
72
|
-
/** List style */
|
|
73
|
-
style?: 'check' | 'bullet' | 'number';
|
|
74
|
-
/** Icon for included items */
|
|
75
|
-
includedIcon?: string;
|
|
76
|
-
/** Icon for excluded items */
|
|
77
|
-
excludedIcon?: string;
|
|
78
|
-
/** Additional CSS classes */
|
|
79
|
-
className?: string;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Build a feature list
|
|
83
|
-
*/
|
|
84
|
-
export declare function featureList(features: FeatureItem[], options?: FeatureListOptions): string;
|
|
85
|
-
/**
|
|
86
|
-
* Description list options
|
|
87
|
-
*/
|
|
88
|
-
export interface DescriptionListOptions {
|
|
89
|
-
/** Layout style */
|
|
90
|
-
layout?: 'stacked' | 'horizontal' | 'grid';
|
|
91
|
-
/** Dividers between items */
|
|
92
|
-
dividers?: boolean;
|
|
93
|
-
/** Additional CSS classes */
|
|
94
|
-
className?: string;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Build a description list
|
|
98
|
-
*/
|
|
99
|
-
export declare function descriptionList(items: DescriptionItem[], options?: DescriptionListOptions): string;
|
|
100
|
-
/**
|
|
101
|
-
* Action list item
|
|
102
|
-
*/
|
|
103
|
-
export interface ActionItem {
|
|
104
|
-
/** Item label */
|
|
105
|
-
label: string;
|
|
106
|
-
/** Item description */
|
|
107
|
-
description?: string;
|
|
108
|
-
/** Icon HTML */
|
|
109
|
-
icon?: string;
|
|
110
|
-
/** Click URL */
|
|
111
|
-
href?: string;
|
|
112
|
-
/** HTMX attributes */
|
|
113
|
-
htmx?: {
|
|
114
|
-
get?: string;
|
|
115
|
-
post?: string;
|
|
116
|
-
target?: string;
|
|
117
|
-
swap?: string;
|
|
118
|
-
};
|
|
119
|
-
/** Destructive action */
|
|
120
|
-
destructive?: boolean;
|
|
121
|
-
/** Disabled state */
|
|
122
|
-
disabled?: boolean;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Build an action list (menu-like)
|
|
126
|
-
*/
|
|
127
|
-
export declare function actionList(items: ActionItem[], className?: string): string;
|
package/src/components/list.js
DELETED
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* List Components
|
|
4
|
-
*
|
|
5
|
-
* Various list presentations including permission lists, feature lists, and data lists.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.permissionList = permissionList;
|
|
9
|
-
exports.featureList = featureList;
|
|
10
|
-
exports.descriptionList = descriptionList;
|
|
11
|
-
exports.actionList = actionList;
|
|
12
|
-
const base_1 = require("../layouts/base");
|
|
13
|
-
/**
|
|
14
|
-
* Default permission icons
|
|
15
|
-
*/
|
|
16
|
-
const permissionIcons = {
|
|
17
|
-
read: `<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
18
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"/>
|
|
19
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"/>
|
|
20
|
-
</svg>`,
|
|
21
|
-
write: `<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
22
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"/>
|
|
23
|
-
</svg>`,
|
|
24
|
-
delete: `<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
25
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"/>
|
|
26
|
-
</svg>`,
|
|
27
|
-
profile: `<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
28
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"/>
|
|
29
|
-
</svg>`,
|
|
30
|
-
email: `<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
31
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"/>
|
|
32
|
-
</svg>`,
|
|
33
|
-
settings: `<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
34
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"/>
|
|
35
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"/>
|
|
36
|
-
</svg>`,
|
|
37
|
-
default: `<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
38
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/>
|
|
39
|
-
</svg>`,
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* Get icon for permission type
|
|
43
|
-
*/
|
|
44
|
-
function getPermissionIcon(scope, customIcon) {
|
|
45
|
-
if (customIcon)
|
|
46
|
-
return customIcon;
|
|
47
|
-
const scopeLower = scope.toLowerCase();
|
|
48
|
-
if (scopeLower.includes('read'))
|
|
49
|
-
return permissionIcons['read'];
|
|
50
|
-
if (scopeLower.includes('write') || scopeLower.includes('create') || scopeLower.includes('update'))
|
|
51
|
-
return permissionIcons['write'];
|
|
52
|
-
if (scopeLower.includes('delete'))
|
|
53
|
-
return permissionIcons['delete'];
|
|
54
|
-
if (scopeLower.includes('profile'))
|
|
55
|
-
return permissionIcons['profile'];
|
|
56
|
-
if (scopeLower.includes('email'))
|
|
57
|
-
return permissionIcons['email'];
|
|
58
|
-
if (scopeLower.includes('settings') || scopeLower.includes('config'))
|
|
59
|
-
return permissionIcons['settings'];
|
|
60
|
-
return permissionIcons['default'];
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Build a permission list for OAuth consent
|
|
64
|
-
*/
|
|
65
|
-
function permissionList(permissions, options = {}) {
|
|
66
|
-
const { id, checkable = false, inputName = 'scopes', title, className = '' } = options;
|
|
67
|
-
const titleHtml = title ? `<h4 class="font-medium text-text-primary mb-3">${(0, base_1.escapeHtml)(title)}</h4>` : '';
|
|
68
|
-
const itemsHtml = permissions
|
|
69
|
-
.map((perm, index) => {
|
|
70
|
-
const icon = getPermissionIcon(perm.scope, perm.icon);
|
|
71
|
-
const sensitiveClasses = perm.sensitive ? 'border-warning/30 bg-warning/5' : 'border-border';
|
|
72
|
-
const sensitiveLabel = perm.sensitive
|
|
73
|
-
? '<span class="text-xs text-warning font-medium ml-2">Sensitive</span>'
|
|
74
|
-
: '';
|
|
75
|
-
const checkboxHtml = checkable
|
|
76
|
-
? `<input
|
|
77
|
-
type="checkbox"
|
|
78
|
-
name="${(0, base_1.escapeHtml)(inputName)}[]"
|
|
79
|
-
value="${(0, base_1.escapeHtml)(perm.scope)}"
|
|
80
|
-
class="w-4 h-4 rounded border-border text-primary focus:ring-primary/20"
|
|
81
|
-
${perm.checked || perm.required ? 'checked' : ''}
|
|
82
|
-
${perm.required ? 'disabled' : ''}
|
|
83
|
-
id="${id ? (0, base_1.escapeHtml)(id) : 'perm'}-${index}"
|
|
84
|
-
>`
|
|
85
|
-
: `<div class="w-5 h-5 rounded-full bg-success/10 text-success flex items-center justify-center">
|
|
86
|
-
<svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
87
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/>
|
|
88
|
-
</svg>
|
|
89
|
-
</div>`;
|
|
90
|
-
return `<div class="flex items-start gap-3 p-3 border ${sensitiveClasses} rounded-lg">
|
|
91
|
-
<div class="flex-shrink-0 mt-0.5 text-text-secondary">
|
|
92
|
-
${icon}
|
|
93
|
-
</div>
|
|
94
|
-
<div class="flex-1 min-w-0">
|
|
95
|
-
<div class="flex items-center">
|
|
96
|
-
<span class="font-medium text-text-primary">${(0, base_1.escapeHtml)(perm.name)}</span>
|
|
97
|
-
${perm.required ? '<span class="text-xs text-text-secondary ml-2">(Required)</span>' : ''}
|
|
98
|
-
${sensitiveLabel}
|
|
99
|
-
</div>
|
|
100
|
-
${perm.description ? `<p class="text-sm text-text-secondary mt-0.5">${(0, base_1.escapeHtml)(perm.description)}</p>` : ''}
|
|
101
|
-
</div>
|
|
102
|
-
<div class="flex-shrink-0">
|
|
103
|
-
${checkboxHtml}
|
|
104
|
-
</div>
|
|
105
|
-
</div>`;
|
|
106
|
-
})
|
|
107
|
-
.join('\n');
|
|
108
|
-
const idAttr = id ? `id="${(0, base_1.escapeHtml)(id)}"` : '';
|
|
109
|
-
return `<div class="permission-list ${className}" ${idAttr}>
|
|
110
|
-
${titleHtml}
|
|
111
|
-
<div class="space-y-2">
|
|
112
|
-
${itemsHtml}
|
|
113
|
-
</div>
|
|
114
|
-
</div>`;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Build a feature list
|
|
118
|
-
*/
|
|
119
|
-
function featureList(features, options = {}) {
|
|
120
|
-
const { style = 'check', includedIcon, excludedIcon, className = '' } = options;
|
|
121
|
-
const defaultIncludedIcon = `<svg class="w-5 h-5 text-success" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
122
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/>
|
|
123
|
-
</svg>`;
|
|
124
|
-
const defaultExcludedIcon = `<svg class="w-5 h-5 text-gray-300" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
125
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
|
|
126
|
-
</svg>`;
|
|
127
|
-
const itemsHtml = features
|
|
128
|
-
.map((feature, index) => {
|
|
129
|
-
const included = feature.included !== false;
|
|
130
|
-
let iconHtml;
|
|
131
|
-
if (style === 'check') {
|
|
132
|
-
iconHtml = included ? includedIcon || defaultIncludedIcon : excludedIcon || defaultExcludedIcon;
|
|
133
|
-
}
|
|
134
|
-
else if (style === 'bullet') {
|
|
135
|
-
iconHtml = `<span class="w-2 h-2 rounded-full ${included ? 'bg-primary' : 'bg-gray-300'}"></span>`;
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
iconHtml = `<span class="text-sm font-medium ${included ? 'text-primary' : 'text-gray-400'}">${index + 1}.</span>`;
|
|
139
|
-
}
|
|
140
|
-
const textClasses = included ? 'text-text-primary' : 'text-text-secondary line-through';
|
|
141
|
-
return `<li class="flex items-start gap-3">
|
|
142
|
-
<div class="flex-shrink-0 mt-0.5">${iconHtml}</div>
|
|
143
|
-
<div class="flex-1">
|
|
144
|
-
<span class="${textClasses}">${(0, base_1.escapeHtml)(feature.name)}</span>
|
|
145
|
-
${feature.description ? `<p class="text-sm text-text-secondary">${(0, base_1.escapeHtml)(feature.description)}</p>` : ''}
|
|
146
|
-
</div>
|
|
147
|
-
</li>`;
|
|
148
|
-
})
|
|
149
|
-
.join('\n');
|
|
150
|
-
return `<ul class="space-y-3 ${className}">${itemsHtml}</ul>`;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Build a description list
|
|
154
|
-
*/
|
|
155
|
-
function descriptionList(items, options = {}) {
|
|
156
|
-
const { layout = 'stacked', dividers = false, className = '' } = options;
|
|
157
|
-
const copyScript = `
|
|
158
|
-
<script>
|
|
159
|
-
function copyToClipboard(text, btn) {
|
|
160
|
-
navigator.clipboard.writeText(text).then(() => {
|
|
161
|
-
const originalText = btn.innerHTML;
|
|
162
|
-
btn.innerHTML = '<svg class="w-4 h-4 text-success" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/></svg>';
|
|
163
|
-
setTimeout(() => btn.innerHTML = originalText, 2000);
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
</script>
|
|
167
|
-
`;
|
|
168
|
-
const hasCopyable = items.some((item) => item.copyable);
|
|
169
|
-
if (layout === 'horizontal') {
|
|
170
|
-
const itemsHtml = items
|
|
171
|
-
.map((item) => {
|
|
172
|
-
const copyBtn = item.copyable
|
|
173
|
-
? `<button type="button" onclick="copyToClipboard('${(0, base_1.escapeHtml)(item.description)}', this)" class="ml-2 p-1 rounded hover:bg-gray-100 transition-colors">
|
|
174
|
-
<svg class="w-4 h-4 text-text-secondary" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
175
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"/>
|
|
176
|
-
</svg>
|
|
177
|
-
</button>`
|
|
178
|
-
: '';
|
|
179
|
-
return `<div class="py-3 sm:grid sm:grid-cols-3 sm:gap-4 ${dividers ? 'border-b border-divider' : ''}">
|
|
180
|
-
<dt class="text-sm font-medium text-text-secondary">${(0, base_1.escapeHtml)(item.term)}</dt>
|
|
181
|
-
<dd class="mt-1 sm:mt-0 sm:col-span-2 text-sm text-text-primary flex items-center">
|
|
182
|
-
${(0, base_1.escapeHtml)(item.description)}
|
|
183
|
-
${copyBtn}
|
|
184
|
-
</dd>
|
|
185
|
-
</div>`;
|
|
186
|
-
})
|
|
187
|
-
.join('\n');
|
|
188
|
-
return `<dl class="${className}">${itemsHtml}</dl>${hasCopyable ? copyScript : ''}`;
|
|
189
|
-
}
|
|
190
|
-
if (layout === 'grid') {
|
|
191
|
-
const itemsHtml = items
|
|
192
|
-
.map((item) => {
|
|
193
|
-
const copyBtn = item.copyable
|
|
194
|
-
? `<button type="button" onclick="copyToClipboard('${(0, base_1.escapeHtml)(item.description)}', this)" class="absolute top-2 right-2 p-1 rounded hover:bg-gray-100 transition-colors">
|
|
195
|
-
<svg class="w-4 h-4 text-text-secondary" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
196
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"/>
|
|
197
|
-
</svg>
|
|
198
|
-
</button>`
|
|
199
|
-
: '';
|
|
200
|
-
return `<div class="relative p-4 bg-gray-50 rounded-lg">
|
|
201
|
-
<dt class="text-sm font-medium text-text-secondary">${(0, base_1.escapeHtml)(item.term)}</dt>
|
|
202
|
-
<dd class="mt-1 text-sm text-text-primary font-medium">${(0, base_1.escapeHtml)(item.description)}</dd>
|
|
203
|
-
${copyBtn}
|
|
204
|
-
</div>`;
|
|
205
|
-
})
|
|
206
|
-
.join('\n');
|
|
207
|
-
return `<dl class="grid grid-cols-2 gap-4 ${className}">${itemsHtml}</dl>${hasCopyable ? copyScript : ''}`;
|
|
208
|
-
}
|
|
209
|
-
// Stacked layout (default)
|
|
210
|
-
const itemsHtml = items
|
|
211
|
-
.map((item) => {
|
|
212
|
-
const copyBtn = item.copyable
|
|
213
|
-
? `<button type="button" onclick="copyToClipboard('${(0, base_1.escapeHtml)(item.description)}', this)" class="ml-2 p-1 rounded hover:bg-gray-100 transition-colors">
|
|
214
|
-
<svg class="w-4 h-4 text-text-secondary" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
215
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"/>
|
|
216
|
-
</svg>
|
|
217
|
-
</button>`
|
|
218
|
-
: '';
|
|
219
|
-
return `<div class="${dividers ? 'py-3 border-b border-divider last:border-0' : 'py-2'}">
|
|
220
|
-
<dt class="text-sm text-text-secondary">${(0, base_1.escapeHtml)(item.term)}</dt>
|
|
221
|
-
<dd class="mt-1 text-sm text-text-primary font-medium flex items-center">
|
|
222
|
-
${(0, base_1.escapeHtml)(item.description)}
|
|
223
|
-
${copyBtn}
|
|
224
|
-
</dd>
|
|
225
|
-
</div>`;
|
|
226
|
-
})
|
|
227
|
-
.join('\n');
|
|
228
|
-
return `<dl class="${className}">${itemsHtml}</dl>${hasCopyable ? copyScript : ''}`;
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Build an action list (menu-like)
|
|
232
|
-
*/
|
|
233
|
-
function actionList(items, className = '') {
|
|
234
|
-
const itemsHtml = items
|
|
235
|
-
.map((item) => {
|
|
236
|
-
const baseClasses = [
|
|
237
|
-
'flex items-center gap-3 px-4 py-3 transition-colors',
|
|
238
|
-
item.disabled
|
|
239
|
-
? 'opacity-50 cursor-not-allowed'
|
|
240
|
-
: item.destructive
|
|
241
|
-
? 'hover:bg-danger/5 text-danger cursor-pointer'
|
|
242
|
-
: 'hover:bg-gray-50 cursor-pointer',
|
|
243
|
-
].join(' ');
|
|
244
|
-
const iconHtml = item.icon
|
|
245
|
-
? `<span class="flex-shrink-0 ${item.destructive ? 'text-danger' : 'text-text-secondary'}">${item.icon}</span>`
|
|
246
|
-
: '';
|
|
247
|
-
const contentHtml = `
|
|
248
|
-
${iconHtml}
|
|
249
|
-
<div class="flex-1 min-w-0">
|
|
250
|
-
<div class="font-medium ${item.destructive ? 'text-danger' : 'text-text-primary'}">${(0, base_1.escapeHtml)(item.label)}</div>
|
|
251
|
-
${item.description ? `<p class="text-sm text-text-secondary">${(0, base_1.escapeHtml)(item.description)}</p>` : ''}
|
|
252
|
-
</div>
|
|
253
|
-
<svg class="w-5 h-5 text-text-secondary" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
254
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
|
|
255
|
-
</svg>
|
|
256
|
-
`;
|
|
257
|
-
if (item.disabled) {
|
|
258
|
-
return `<div class="${baseClasses}">${contentHtml}</div>`;
|
|
259
|
-
}
|
|
260
|
-
const htmxAttrs = [];
|
|
261
|
-
if (item.htmx) {
|
|
262
|
-
if (item.htmx.get)
|
|
263
|
-
htmxAttrs.push(`hx-get="${(0, base_1.escapeHtml)(item.htmx.get)}"`);
|
|
264
|
-
if (item.htmx.post)
|
|
265
|
-
htmxAttrs.push(`hx-post="${(0, base_1.escapeHtml)(item.htmx.post)}"`);
|
|
266
|
-
if (item.htmx.target)
|
|
267
|
-
htmxAttrs.push(`hx-target="${(0, base_1.escapeHtml)(item.htmx.target)}"`);
|
|
268
|
-
if (item.htmx.swap)
|
|
269
|
-
htmxAttrs.push(`hx-swap="${(0, base_1.escapeHtml)(item.htmx.swap)}"`);
|
|
270
|
-
}
|
|
271
|
-
if (item.href) {
|
|
272
|
-
return `<a href="${(0, base_1.escapeHtml)(item.href)}" class="${baseClasses}" ${htmxAttrs.join(' ')}>${contentHtml}</a>`;
|
|
273
|
-
}
|
|
274
|
-
return `<div class="${baseClasses}" ${htmxAttrs.join(' ')}>${contentHtml}</div>`;
|
|
275
|
-
})
|
|
276
|
-
.join('\n');
|
|
277
|
-
return `<div class="divide-y divide-divider ${className}">${itemsHtml}</div>`;
|
|
278
|
-
}
|
|
279
|
-
//# sourceMappingURL=list.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/components/list.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * List Components\n *\n * Various list presentations including permission lists, feature lists, and data lists.\n */\n\nimport { escapeHtml } from '../layouts/base';\n\n// ============================================\n// List Item Types\n// ============================================\n\n/**\n * Permission/Scope item for OAuth consent\n */\nexport interface PermissionItem {\n /** Scope identifier */\n scope: string;\n /** Display name */\n name: string;\n /** Description */\n description?: string;\n /** Icon HTML */\n icon?: string;\n /** Required permission (cannot be unchecked) */\n required?: boolean;\n /** Checked by default */\n checked?: boolean;\n /** Sensitive/dangerous permission */\n sensitive?: boolean;\n}\n\n/**\n * Feature list item\n */\nexport interface FeatureItem {\n /** Feature name */\n name: string;\n /** Feature description */\n description?: string;\n /** Icon HTML */\n icon?: string;\n /** Included in plan */\n included?: boolean;\n}\n\n/**\n * Description list item\n */\nexport interface DescriptionItem {\n /** Term/label */\n term: string;\n /** Description/value */\n description: string;\n /** Copy button */\n copyable?: boolean;\n}\n\n// ============================================\n// Permission List (for OAuth consent)\n// ============================================\n\n/**\n * Permission list options\n */\nexport interface PermissionListOptions {\n /** List ID */\n id?: string;\n /** Checkable permissions */\n checkable?: boolean;\n /** Input name for checkable */\n inputName?: string;\n /** Group title */\n title?: string;\n /** Additional CSS classes */\n className?: string;\n}\n\n/**\n * Default permission icons\n */\nconst permissionIcons: Record<string, string> = {\n read: `<svg class=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 12a3 3 0 11-6 0 3 3 0 016 0z\"/>\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z\"/>\n </svg>`,\n write: `<svg class=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z\"/>\n </svg>`,\n delete: `<svg class=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16\"/>\n </svg>`,\n profile: `<svg class=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z\"/>\n </svg>`,\n email: `<svg class=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"/>\n </svg>`,\n settings: `<svg class=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z\"/>\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 12a3 3 0 11-6 0 3 3 0 016 0z\"/>\n </svg>`,\n default: `<svg class=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z\"/>\n </svg>`,\n};\n\n/**\n * Get icon for permission type\n */\nfunction getPermissionIcon(scope: string, customIcon?: string): string {\n if (customIcon) return customIcon;\n\n const scopeLower = scope.toLowerCase();\n if (scopeLower.includes('read')) return permissionIcons['read'];\n if (scopeLower.includes('write') || scopeLower.includes('create') || scopeLower.includes('update'))\n return permissionIcons['write'];\n if (scopeLower.includes('delete')) return permissionIcons['delete'];\n if (scopeLower.includes('profile')) return permissionIcons['profile'];\n if (scopeLower.includes('email')) return permissionIcons['email'];\n if (scopeLower.includes('settings') || scopeLower.includes('config')) return permissionIcons['settings'];\n\n return permissionIcons['default'];\n}\n\n/**\n * Build a permission list for OAuth consent\n */\nexport function permissionList(permissions: PermissionItem[], options: PermissionListOptions = {}): string {\n const { id, checkable = false, inputName = 'scopes', title, className = '' } = options;\n\n const titleHtml = title ? `<h4 class=\"font-medium text-text-primary mb-3\">${escapeHtml(title)}</h4>` : '';\n\n const itemsHtml = permissions\n .map((perm, index) => {\n const icon = getPermissionIcon(perm.scope, perm.icon);\n const sensitiveClasses = perm.sensitive ? 'border-warning/30 bg-warning/5' : 'border-border';\n const sensitiveLabel = perm.sensitive\n ? '<span class=\"text-xs text-warning font-medium ml-2\">Sensitive</span>'\n : '';\n\n const checkboxHtml = checkable\n ? `<input\n type=\"checkbox\"\n name=\"${escapeHtml(inputName)}[]\"\n value=\"${escapeHtml(perm.scope)}\"\n class=\"w-4 h-4 rounded border-border text-primary focus:ring-primary/20\"\n ${perm.checked || perm.required ? 'checked' : ''}\n ${perm.required ? 'disabled' : ''}\n id=\"${id ? escapeHtml(id) : 'perm'}-${index}\"\n >`\n : `<div class=\"w-5 h-5 rounded-full bg-success/10 text-success flex items-center justify-center\">\n <svg class=\"w-3 h-3\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"3\" d=\"M5 13l4 4L19 7\"/>\n </svg>\n </div>`;\n\n return `<div class=\"flex items-start gap-3 p-3 border ${sensitiveClasses} rounded-lg\">\n <div class=\"flex-shrink-0 mt-0.5 text-text-secondary\">\n ${icon}\n </div>\n <div class=\"flex-1 min-w-0\">\n <div class=\"flex items-center\">\n <span class=\"font-medium text-text-primary\">${escapeHtml(perm.name)}</span>\n ${perm.required ? '<span class=\"text-xs text-text-secondary ml-2\">(Required)</span>' : ''}\n ${sensitiveLabel}\n </div>\n ${perm.description ? `<p class=\"text-sm text-text-secondary mt-0.5\">${escapeHtml(perm.description)}</p>` : ''}\n </div>\n <div class=\"flex-shrink-0\">\n ${checkboxHtml}\n </div>\n </div>`;\n })\n .join('\\n');\n\n const idAttr = id ? `id=\"${escapeHtml(id)}\"` : '';\n\n return `<div class=\"permission-list ${className}\" ${idAttr}>\n ${titleHtml}\n <div class=\"space-y-2\">\n ${itemsHtml}\n </div>\n </div>`;\n}\n\n// ============================================\n// Feature List\n// ============================================\n\n/**\n * Feature list options\n */\nexport interface FeatureListOptions {\n /** List style */\n style?: 'check' | 'bullet' | 'number';\n /** Icon for included items */\n includedIcon?: string;\n /** Icon for excluded items */\n excludedIcon?: string;\n /** Additional CSS classes */\n className?: string;\n}\n\n/**\n * Build a feature list\n */\nexport function featureList(features: FeatureItem[], options: FeatureListOptions = {}): string {\n const { style = 'check', includedIcon, excludedIcon, className = '' } = options;\n\n const defaultIncludedIcon = `<svg class=\"w-5 h-5 text-success\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 13l4 4L19 7\"/>\n </svg>`;\n\n const defaultExcludedIcon = `<svg class=\"w-5 h-5 text-gray-300\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\"/>\n </svg>`;\n\n const itemsHtml = features\n .map((feature, index) => {\n const included = feature.included !== false;\n\n let iconHtml: string;\n if (style === 'check') {\n iconHtml = included ? includedIcon || defaultIncludedIcon : excludedIcon || defaultExcludedIcon;\n } else if (style === 'bullet') {\n iconHtml = `<span class=\"w-2 h-2 rounded-full ${included ? 'bg-primary' : 'bg-gray-300'}\"></span>`;\n } else {\n iconHtml = `<span class=\"text-sm font-medium ${included ? 'text-primary' : 'text-gray-400'}\">${\n index + 1\n }.</span>`;\n }\n\n const textClasses = included ? 'text-text-primary' : 'text-text-secondary line-through';\n\n return `<li class=\"flex items-start gap-3\">\n <div class=\"flex-shrink-0 mt-0.5\">${iconHtml}</div>\n <div class=\"flex-1\">\n <span class=\"${textClasses}\">${escapeHtml(feature.name)}</span>\n ${feature.description ? `<p class=\"text-sm text-text-secondary\">${escapeHtml(feature.description)}</p>` : ''}\n </div>\n </li>`;\n })\n .join('\\n');\n\n return `<ul class=\"space-y-3 ${className}\">${itemsHtml}</ul>`;\n}\n\n// ============================================\n// Description List\n// ============================================\n\n/**\n * Description list options\n */\nexport interface DescriptionListOptions {\n /** Layout style */\n layout?: 'stacked' | 'horizontal' | 'grid';\n /** Dividers between items */\n dividers?: boolean;\n /** Additional CSS classes */\n className?: string;\n}\n\n/**\n * Build a description list\n */\nexport function descriptionList(items: DescriptionItem[], options: DescriptionListOptions = {}): string {\n const { layout = 'stacked', dividers = false, className = '' } = options;\n\n const copyScript = `\n <script>\n function copyToClipboard(text, btn) {\n navigator.clipboard.writeText(text).then(() => {\n const originalText = btn.innerHTML;\n btn.innerHTML = '<svg class=\"w-4 h-4 text-success\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 13l4 4L19 7\"/></svg>';\n setTimeout(() => btn.innerHTML = originalText, 2000);\n });\n }\n </script>\n `;\n\n const hasCopyable = items.some((item) => item.copyable);\n\n if (layout === 'horizontal') {\n const itemsHtml = items\n .map((item) => {\n const copyBtn = item.copyable\n ? `<button type=\"button\" onclick=\"copyToClipboard('${escapeHtml(\n item.description,\n )}', this)\" class=\"ml-2 p-1 rounded hover:bg-gray-100 transition-colors\">\n <svg class=\"w-4 h-4 text-text-secondary\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/>\n </svg>\n </button>`\n : '';\n\n return `<div class=\"py-3 sm:grid sm:grid-cols-3 sm:gap-4 ${dividers ? 'border-b border-divider' : ''}\">\n <dt class=\"text-sm font-medium text-text-secondary\">${escapeHtml(item.term)}</dt>\n <dd class=\"mt-1 sm:mt-0 sm:col-span-2 text-sm text-text-primary flex items-center\">\n ${escapeHtml(item.description)}\n ${copyBtn}\n </dd>\n </div>`;\n })\n .join('\\n');\n\n return `<dl class=\"${className}\">${itemsHtml}</dl>${hasCopyable ? copyScript : ''}`;\n }\n\n if (layout === 'grid') {\n const itemsHtml = items\n .map((item) => {\n const copyBtn = item.copyable\n ? `<button type=\"button\" onclick=\"copyToClipboard('${escapeHtml(\n item.description,\n )}', this)\" class=\"absolute top-2 right-2 p-1 rounded hover:bg-gray-100 transition-colors\">\n <svg class=\"w-4 h-4 text-text-secondary\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/>\n </svg>\n </button>`\n : '';\n\n return `<div class=\"relative p-4 bg-gray-50 rounded-lg\">\n <dt class=\"text-sm font-medium text-text-secondary\">${escapeHtml(item.term)}</dt>\n <dd class=\"mt-1 text-sm text-text-primary font-medium\">${escapeHtml(item.description)}</dd>\n ${copyBtn}\n </div>`;\n })\n .join('\\n');\n\n return `<dl class=\"grid grid-cols-2 gap-4 ${className}\">${itemsHtml}</dl>${hasCopyable ? copyScript : ''}`;\n }\n\n // Stacked layout (default)\n const itemsHtml = items\n .map((item) => {\n const copyBtn = item.copyable\n ? `<button type=\"button\" onclick=\"copyToClipboard('${escapeHtml(\n item.description,\n )}', this)\" class=\"ml-2 p-1 rounded hover:bg-gray-100 transition-colors\">\n <svg class=\"w-4 h-4 text-text-secondary\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/>\n </svg>\n </button>`\n : '';\n\n return `<div class=\"${dividers ? 'py-3 border-b border-divider last:border-0' : 'py-2'}\">\n <dt class=\"text-sm text-text-secondary\">${escapeHtml(item.term)}</dt>\n <dd class=\"mt-1 text-sm text-text-primary font-medium flex items-center\">\n ${escapeHtml(item.description)}\n ${copyBtn}\n </dd>\n </div>`;\n })\n .join('\\n');\n\n return `<dl class=\"${className}\">${itemsHtml}</dl>${hasCopyable ? copyScript : ''}`;\n}\n\n// ============================================\n// Action List\n// ============================================\n\n/**\n * Action list item\n */\nexport interface ActionItem {\n /** Item label */\n label: string;\n /** Item description */\n description?: string;\n /** Icon HTML */\n icon?: string;\n /** Click URL */\n href?: string;\n /** HTMX attributes */\n htmx?: {\n get?: string;\n post?: string;\n target?: string;\n swap?: string;\n };\n /** Destructive action */\n destructive?: boolean;\n /** Disabled state */\n disabled?: boolean;\n}\n\n/**\n * Build an action list (menu-like)\n */\nexport function actionList(items: ActionItem[], className = ''): string {\n const itemsHtml = items\n .map((item) => {\n const baseClasses = [\n 'flex items-center gap-3 px-4 py-3 transition-colors',\n item.disabled\n ? 'opacity-50 cursor-not-allowed'\n : item.destructive\n ? 'hover:bg-danger/5 text-danger cursor-pointer'\n : 'hover:bg-gray-50 cursor-pointer',\n ].join(' ');\n\n const iconHtml = item.icon\n ? `<span class=\"flex-shrink-0 ${item.destructive ? 'text-danger' : 'text-text-secondary'}\">${item.icon}</span>`\n : '';\n\n const contentHtml = `\n ${iconHtml}\n <div class=\"flex-1 min-w-0\">\n <div class=\"font-medium ${item.destructive ? 'text-danger' : 'text-text-primary'}\">${escapeHtml(\n item.label,\n )}</div>\n ${item.description ? `<p class=\"text-sm text-text-secondary\">${escapeHtml(item.description)}</p>` : ''}\n </div>\n <svg class=\"w-5 h-5 text-text-secondary\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\"/>\n </svg>\n `;\n\n if (item.disabled) {\n return `<div class=\"${baseClasses}\">${contentHtml}</div>`;\n }\n\n const htmxAttrs: string[] = [];\n if (item.htmx) {\n if (item.htmx.get) htmxAttrs.push(`hx-get=\"${escapeHtml(item.htmx.get)}\"`);\n if (item.htmx.post) htmxAttrs.push(`hx-post=\"${escapeHtml(item.htmx.post)}\"`);\n if (item.htmx.target) htmxAttrs.push(`hx-target=\"${escapeHtml(item.htmx.target)}\"`);\n if (item.htmx.swap) htmxAttrs.push(`hx-swap=\"${escapeHtml(item.htmx.swap)}\"`);\n }\n\n if (item.href) {\n return `<a href=\"${escapeHtml(item.href)}\" class=\"${baseClasses}\" ${htmxAttrs.join(' ')}>${contentHtml}</a>`;\n }\n\n return `<div class=\"${baseClasses}\" ${htmxAttrs.join(' ')}>${contentHtml}</div>`;\n })\n .join('\\n');\n\n return `<div class=\"divide-y divide-divider ${className}\">${itemsHtml}</div>`;\n}\n"]}
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file list.schema.ts
|
|
3
|
-
* @description Zod schemas for List component options validation.
|
|
4
|
-
*
|
|
5
|
-
* Provides strict validation schemas for permission lists, feature lists,
|
|
6
|
-
* description lists, and action lists with HTMX support.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* import { PermissionItemSchema, PermissionListOptionsSchema } from '@frontmcp/ui';
|
|
11
|
-
*
|
|
12
|
-
* const itemResult = PermissionItemSchema.safeParse({
|
|
13
|
-
* scope: 'read:profile',
|
|
14
|
-
* name: 'Read Profile',
|
|
15
|
-
* });
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* @module @frontmcp/ui/components/list.schema
|
|
19
|
-
*/
|
|
20
|
-
import { z } from 'zod';
|
|
21
|
-
/**
|
|
22
|
-
* Permission/Scope item schema for OAuth consent
|
|
23
|
-
*/
|
|
24
|
-
export declare const PermissionItemSchema: z.ZodObject<{
|
|
25
|
-
scope: z.ZodString;
|
|
26
|
-
name: z.ZodString;
|
|
27
|
-
description: z.ZodOptional<z.ZodString>;
|
|
28
|
-
icon: z.ZodOptional<z.ZodString>;
|
|
29
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
30
|
-
checked: z.ZodOptional<z.ZodBoolean>;
|
|
31
|
-
sensitive: z.ZodOptional<z.ZodBoolean>;
|
|
32
|
-
}, z.core.$strict>;
|
|
33
|
-
/**
|
|
34
|
-
* Permission item type
|
|
35
|
-
*/
|
|
36
|
-
export type PermissionItem = z.infer<typeof PermissionItemSchema>;
|
|
37
|
-
/**
|
|
38
|
-
* Permission list options schema
|
|
39
|
-
*/
|
|
40
|
-
export declare const PermissionListOptionsSchema: z.ZodObject<{
|
|
41
|
-
id: z.ZodOptional<z.ZodString>;
|
|
42
|
-
checkable: z.ZodOptional<z.ZodBoolean>;
|
|
43
|
-
inputName: z.ZodOptional<z.ZodString>;
|
|
44
|
-
title: z.ZodOptional<z.ZodString>;
|
|
45
|
-
className: z.ZodOptional<z.ZodString>;
|
|
46
|
-
}, z.core.$strict>;
|
|
47
|
-
/**
|
|
48
|
-
* Permission list options type
|
|
49
|
-
*/
|
|
50
|
-
export type PermissionListOptions = z.infer<typeof PermissionListOptionsSchema>;
|
|
51
|
-
/**
|
|
52
|
-
* Feature list item schema
|
|
53
|
-
*/
|
|
54
|
-
export declare const FeatureItemSchema: z.ZodObject<{
|
|
55
|
-
name: z.ZodString;
|
|
56
|
-
description: z.ZodOptional<z.ZodString>;
|
|
57
|
-
icon: z.ZodOptional<z.ZodString>;
|
|
58
|
-
included: z.ZodOptional<z.ZodBoolean>;
|
|
59
|
-
}, z.core.$strict>;
|
|
60
|
-
/**
|
|
61
|
-
* Feature item type
|
|
62
|
-
*/
|
|
63
|
-
export type FeatureItem = z.infer<typeof FeatureItemSchema>;
|
|
64
|
-
/**
|
|
65
|
-
* Feature list options schema
|
|
66
|
-
*/
|
|
67
|
-
export declare const FeatureListOptionsSchema: z.ZodObject<{
|
|
68
|
-
title: z.ZodOptional<z.ZodString>;
|
|
69
|
-
showStatus: z.ZodOptional<z.ZodBoolean>;
|
|
70
|
-
className: z.ZodOptional<z.ZodString>;
|
|
71
|
-
}, z.core.$strict>;
|
|
72
|
-
/**
|
|
73
|
-
* Feature list options type
|
|
74
|
-
*/
|
|
75
|
-
export type FeatureListOptions = z.infer<typeof FeatureListOptionsSchema>;
|
|
76
|
-
/**
|
|
77
|
-
* Description list item schema
|
|
78
|
-
*/
|
|
79
|
-
export declare const DescriptionItemSchema: z.ZodObject<{
|
|
80
|
-
term: z.ZodString;
|
|
81
|
-
description: z.ZodString;
|
|
82
|
-
copyable: z.ZodOptional<z.ZodBoolean>;
|
|
83
|
-
}, z.core.$strict>;
|
|
84
|
-
/**
|
|
85
|
-
* Description item type
|
|
86
|
-
*/
|
|
87
|
-
export type DescriptionItem = z.infer<typeof DescriptionItemSchema>;
|
|
88
|
-
/**
|
|
89
|
-
* Description list options schema
|
|
90
|
-
*/
|
|
91
|
-
export declare const DescriptionListOptionsSchema: z.ZodObject<{
|
|
92
|
-
direction: z.ZodOptional<z.ZodEnum<{
|
|
93
|
-
horizontal: "horizontal";
|
|
94
|
-
vertical: "vertical";
|
|
95
|
-
}>>;
|
|
96
|
-
striped: z.ZodOptional<z.ZodBoolean>;
|
|
97
|
-
className: z.ZodOptional<z.ZodString>;
|
|
98
|
-
}, z.core.$strict>;
|
|
99
|
-
/**
|
|
100
|
-
* Description list options type
|
|
101
|
-
*/
|
|
102
|
-
export type DescriptionListOptions = z.infer<typeof DescriptionListOptionsSchema>;
|
|
103
|
-
/**
|
|
104
|
-
* Action list item schema
|
|
105
|
-
*/
|
|
106
|
-
export declare const ActionItemSchema: z.ZodObject<{
|
|
107
|
-
label: z.ZodString;
|
|
108
|
-
description: z.ZodOptional<z.ZodString>;
|
|
109
|
-
icon: z.ZodOptional<z.ZodString>;
|
|
110
|
-
href: z.ZodOptional<z.ZodString>;
|
|
111
|
-
htmx: z.ZodOptional<z.ZodObject<{
|
|
112
|
-
get: z.ZodOptional<z.ZodString>;
|
|
113
|
-
post: z.ZodOptional<z.ZodString>;
|
|
114
|
-
target: z.ZodOptional<z.ZodString>;
|
|
115
|
-
swap: z.ZodOptional<z.ZodString>;
|
|
116
|
-
}, z.core.$strict>>;
|
|
117
|
-
destructive: z.ZodOptional<z.ZodBoolean>;
|
|
118
|
-
disabled: z.ZodOptional<z.ZodBoolean>;
|
|
119
|
-
}, z.core.$strict>;
|
|
120
|
-
/**
|
|
121
|
-
* Action item type
|
|
122
|
-
*/
|
|
123
|
-
export type ActionItem = z.infer<typeof ActionItemSchema>;
|
|
124
|
-
/**
|
|
125
|
-
* Action list options schema
|
|
126
|
-
*/
|
|
127
|
-
export declare const ActionListOptionsSchema: z.ZodObject<{
|
|
128
|
-
divided: z.ZodOptional<z.ZodBoolean>;
|
|
129
|
-
className: z.ZodOptional<z.ZodString>;
|
|
130
|
-
}, z.core.$strict>;
|
|
131
|
-
/**
|
|
132
|
-
* Action list options type
|
|
133
|
-
*/
|
|
134
|
-
export type ActionListOptions = z.infer<typeof ActionListOptionsSchema>;
|