@classic-homes/theme-mcp 0.1.1 → 0.1.3
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/dist/cli.js +749 -2
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +749 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli.ts","../src/server.ts","../src/resources/components.ts","../src/data/component-catalog.json","../src/data/token-definitions.json","../src/resources/tokens.ts","../src/resources/layouts.ts","../src/data/pattern-library.json","../src/data/schema-catalog.json","../src/resources/schemas.ts","../src/resources/index.ts","../src/tools/searchComponents.ts","../src/tools/getComponentProps.ts","../src/tools/suggestPattern.ts","../src/tools/validateUsage.ts","../src/tools/index.ts","../src/prompts/buildForm.ts","../src/prompts/layoutPage.ts","../src/prompts/componentUsage.ts","../src/prompts/index.ts"],"sourcesContent":["#!/usr/bin/env node\n/**\n * Classic Theme MCP CLI\n *\n * Run this to start the MCP server for AI model integration.\n *\n * Usage:\n * classic-theme-mcp\n * node dist/cli.js\n */\n\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport { createServer } from './server.js';\n\nasync function main() {\n const server = createServer();\n const transport = new StdioServerTransport();\n await server.connect(transport);\n}\n\nmain().catch((error) => {\n console.error('Failed to start MCP server:', error);\n process.exit(1);\n});\n","/**\n * Classic Theme MCP Server\n *\n * Provides AI models with comprehensive design system knowledge including\n * components, design tokens, layout patterns, and validation schemas.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { registerResources } from './resources/index.js';\nimport { registerTools } from './tools/index.js';\nimport { registerPrompts } from './prompts/index.js';\n\n/**\n * Creates and configures the MCP server\n */\nexport function createServer(): McpServer {\n const server = new McpServer({\n name: 'classic-theme',\n version: '0.1.0',\n });\n\n // Register all MCP primitives\n registerResources(server);\n registerTools(server);\n registerPrompts(server);\n\n return server;\n}\n","/**\n * Component Resources\n *\n * Provides access to component catalog data.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport componentCatalog from '../data/component-catalog.json' with { type: 'json' };\nimport type { ComponentCatalog } from '../types.js';\n\nconst catalog = componentCatalog as ComponentCatalog;\n\n/**\n * Register component-related resources\n */\nexport function registerComponentResources(server: McpServer): void {\n // Full component catalog\n server.resource('Component Catalog', 'components://catalog', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(catalog, null, 2),\n },\n ],\n }));\n\n // Component list (names only, for quick lookup)\n server.resource('Component List', 'components://list', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(\n catalog.components.map((c) => ({\n name: c.name,\n category: c.category,\n description: c.description,\n })),\n null,\n 2\n ),\n },\n ],\n }));\n\n // Individual component resources via template\n server.resource(\n 'Component Details',\n new ResourceTemplate('components://{name}', { list: undefined }),\n async (uri, params) => {\n const name = params.name as string;\n const component = catalog.components.find((c) => c.name.toLowerCase() === name.toLowerCase());\n\n if (!component) {\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify({ error: `Component \"${name}\" not found` }),\n },\n ],\n };\n }\n\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(component, null, 2),\n },\n ],\n };\n }\n );\n\n // Components by category\n server.resource(\n 'Components by Category',\n new ResourceTemplate('components://category/{category}', { list: undefined }),\n async (uri, params) => {\n const category = params.category as string;\n const components = catalog.components.filter(\n (c) => c.category.toLowerCase() === category.toLowerCase()\n );\n\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(components, null, 2),\n },\n ],\n };\n }\n );\n}\n","{\n \"version\": \"0.1.0\",\n \"generated\": \"2026-01-14T23:23:18.723Z\",\n \"components\": [\n {\n \"name\": \"Alert\",\n \"description\": \"Contextual feedback messages for user actions and system status\",\n \"category\": \"feedback\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"variant\",\n \"type\": \"'default' | 'destructive' | 'error' | 'success' | 'warning' | 'info'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Alert style variant\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"default\",\n \"destructive\",\n \"error\",\n \"success\",\n \"warning\",\n \"info\"\n ],\n \"default\": \"default\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Alert>\\n <AlertTitle>Heads up!</AlertTitle>\\n <AlertDescription>This is a default alert message.</AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Default\",\n \"description\": \"Neutral information message:\",\n \"code\": \"<Alert variant=\\\"default\\\">\\n <AlertTitle>Note</AlertTitle>\\n <AlertDescription>This is a neutral informational message.</AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Success\",\n \"description\": \"Positive feedback for completed actions:\",\n \"code\": \"<Alert variant=\\\"success\\\">\\n <AlertTitle>Success!</AlertTitle>\\n <AlertDescription>Your changes have been saved successfully.</AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Warning\",\n \"description\": \"Caution about potential issues:\",\n \"code\": \"<Alert variant=\\\"warning\\\">\\n <AlertTitle>Warning</AlertTitle>\\n <AlertDescription>Your session will expire in 5 minutes.</AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Error / Destructive\",\n \"description\": \"Error messages and critical alerts:\",\n \"code\": \"<Alert variant=\\\"error\\\">\\n <AlertTitle>Error</AlertTitle>\\n <AlertDescription>There was a problem processing your request.</AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Info\",\n \"description\": \"Helpful information or tips:\",\n \"code\": \"<Alert variant=\\\"info\\\">\\n <AlertTitle>Did you know?</AlertTitle>\\n <AlertDescription>You can use keyboard shortcuts for faster navigation.</AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Form Validation Error\",\n \"code\": \"{#if formErrors.length > 0}\\n <Alert variant=\\\"error\\\">\\n <AlertTitle>Please fix the following errors:</AlertTitle>\\n <AlertDescription>\\n <ul class=\\\"list-disc pl-4 mt-2\\\">\\n {#each formErrors as error}\\n <li>{error}</li>\\n {/each}\\n </ul>\\n </AlertDescription>\\n </Alert>\\n{/if}\"\n },\n {\n \"title\": \"Dismissible Alert\",\n \"code\": \"<script>\\n let showAlert = $state(true);\\n</script>\\n\\n{#if showAlert}\\n <Alert variant=\\\"info\\\" class=\\\"relative\\\">\\n <AlertTitle>New Feature</AlertTitle>\\n <AlertDescription>Check out our new dashboard!</AlertDescription>\\n <button\\n class=\\\"absolute top-4 right-4 text-muted-foreground hover:text-foreground\\\"\\n onclick={() => (showAlert = false)}\\n aria-label=\\\"Dismiss\\\"\\n >\\n <svg class=\\\"h-4 w-4\\\" fill=\\\"none\\\" viewBox=\\\"0 0 24 24\\\" stroke=\\\"currentColor\\\">\\n <path\\n stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\"\\n stroke-width=\\\"2\\\"\\n d=\\\"M6 18L18 6M6 6l12 12\\\"\\n />\\n </svg>\\n </button>\\n </Alert>\\n{/if}\"\n },\n {\n \"title\": \"System Status\",\n \"code\": \"<Alert variant=\\\"warning\\\">\\n <svg class=\\\"h-4 w-4\\\" fill=\\\"none\\\" viewBox=\\\"0 0 24 24\\\" stroke=\\\"currentColor\\\">\\n <path\\n stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\"\\n stroke-width=\\\"2\\\"\\n d=\\\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\\\"\\n />\\n </svg>\\n <AlertTitle>Maintenance Scheduled</AlertTitle>\\n <AlertDescription>\\n The system will be unavailable on Sunday from 2:00 AM to 4:00 AM EST.\\n </AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Success with Action\",\n \"code\": \"<Alert variant=\\\"success\\\">\\n <AlertTitle>Order Confirmed</AlertTitle>\\n <AlertDescription>\\n <p>Your order #12345 has been placed successfully.</p>\\n <a href=\\\"/orders/12345\\\" class=\\\"underline font-medium mt-2 inline-block\\\"> View order details </a>\\n </AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Compact Alert (Title Only)\",\n \"code\": \"<Alert variant=\\\"info\\\">\\n <AlertDescription>Pro tip: Press Ctrl+K to open the command palette.</AlertDescription>\\n</Alert>\"\n }\n ],\n \"relatedComponents\": [\n \"Toast\",\n \"Badge\",\n \"Card\"\n ]\n },\n {\n \"name\": \"AlertDialog\",\n \"description\": \"Modal dialog for confirmations and important actions\",\n \"category\": \"overlay\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"open\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Open state (bindable)\"\n },\n {\n \"name\": \"onOpenChange\",\n \"type\": \"(open: boolean) => void\",\n \"required\": false,\n \"description\": \"Open change callback\"\n },\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Dialog title\"\n },\n {\n \"name\": \"description\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Description text\"\n },\n {\n \"name\": \"cancelText\",\n \"type\": \"string\",\n \"default\": \"'Cancel'\",\n \"required\": false,\n \"description\": \"Cancel button text\"\n },\n {\n \"name\": \"confirmText\",\n \"type\": \"string\",\n \"default\": \"'Continue'\",\n \"required\": false,\n \"description\": \"Confirm button text\"\n },\n {\n \"name\": \"confirmVariant\",\n \"type\": \"'default' | 'destructive' | 'outline' | 'ghost'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Confirm button style\"\n },\n {\n \"name\": \"onConfirm\",\n \"type\": \"() => void\",\n \"required\": false,\n \"description\": \"Confirm callback\"\n },\n {\n \"name\": \"onCancel\",\n \"type\": \"() => void\",\n \"required\": false,\n \"description\": \"Cancel callback\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n },\n {\n \"name\": \"trigger\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Optional trigger element\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom content\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"confirmVariant\",\n \"values\": [\n \"default\",\n \"destructive\",\n \"outline\",\n \"ghost\"\n ],\n \"default\": \"default\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let showDialog = $state(false);\\n</script>\\n\\n<Button onclick={() => (showDialog = true)}>Delete Item</Button>\\n\\n<AlertDialog\\n open={showDialog}\\n onOpenChange={(open) => (showDialog = open)}\\n title=\\\"Delete Item?\\\"\\n description=\\\"This action cannot be undone. This will permanently delete the item.\\\"\\n confirmText=\\\"Delete\\\"\\n confirmVariant=\\\"destructive\\\"\\n onConfirm={() => deleteItem()}\\n/>\"\n },\n {\n \"title\": \"Delete Confirmation\",\n \"code\": \"<AlertDialog\\n title=\\\"Delete Project\\\"\\n description={`Are you sure you want to delete \\\"${project.name}\\\"? All project data including files, tasks, and comments will be permanently removed.`}\\n confirmText=\\\"Delete Project\\\"\\n confirmVariant=\\\"destructive\\\"\\n onConfirm={() => deleteProject(project.id)}\\n>\\n {#snippet trigger()}\\n <Button variant=\\\"destructive\\\" size=\\\"sm\\\">\\n <TrashIcon class=\\\"mr-2 h-4 w-4\\\" />\\n Delete\\n </Button>\\n {/snippet}\\n</AlertDialog>\"\n },\n {\n \"title\": \"Unsaved Changes\",\n \"code\": \"<AlertDialog\\n title=\\\"Unsaved Changes\\\"\\n description=\\\"You have unsaved changes. Do you want to leave without saving?\\\"\\n cancelText=\\\"Stay\\\"\\n confirmText=\\\"Leave\\\"\\n confirmVariant=\\\"destructive\\\"\\n onConfirm={navigateAway}\\n>\\n {#snippet trigger()}\\n <Button variant=\\\"outline\\\">Cancel</Button>\\n {/snippet}\\n</AlertDialog>\"\n },\n {\n \"title\": \"Subscription Cancellation\",\n \"code\": \"<AlertDialog\\n title=\\\"Cancel Subscription\\\"\\n description=\\\"Your subscription will remain active until the end of the current billing period. You can resubscribe at any time.\\\"\\n cancelText=\\\"Keep Subscription\\\"\\n confirmText=\\\"Cancel Subscription\\\"\\n onConfirm={cancelSubscription}\\n>\\n {#snippet trigger()}\\n <Button variant=\\\"ghost\\\" class=\\\"text-destructive\\\">Cancel Subscription</Button>\\n {/snippet}\\n</AlertDialog>\"\n },\n {\n \"title\": \"Bulk Action\",\n \"code\": \"<AlertDialog\\n title={`Delete ${selectedItems.length} items?`}\\n description=\\\"This will permanently delete all selected items. This action cannot be undone.\\\"\\n confirmText={`Delete ${selectedItems.length} items`}\\n confirmVariant=\\\"destructive\\\"\\n onConfirm={deleteSelectedItems}\\n>\\n {#snippet trigger()}\\n <Button variant=\\\"destructive\\\" disabled={selectedItems.length === 0}>Delete Selected</Button>\\n {/snippet}\\n</AlertDialog>\"\n }\n ],\n \"relatedComponents\": [\n \"Dialog\",\n \"Button\",\n \"DropdownMenu\"\n ]\n },\n {\n \"name\": \"AppShell\",\n \"description\": \"Base wrapper component for applications with accessibility features\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"skipToId\",\n \"type\": \"string\",\n \"default\": \"'main-content'\",\n \"required\": false,\n \"description\": \"Target ID for skip link\"\n },\n {\n \"name\": \"skipToText\",\n \"type\": \"string\",\n \"default\": \"'Skip to main content'\",\n \"required\": false,\n \"description\": \"Skip link text\"\n },\n {\n \"name\": \"toastPosition\",\n \"type\": \"'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center'\",\n \"default\": \"'bottom-right'\",\n \"required\": false,\n \"description\": \"Toast container position\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Main content\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"toastPosition\",\n \"values\": [\n \"top-right\",\n \"top-left\",\n \"bottom-right\",\n \"bottom-left\",\n \"top-center\",\n \"bottom-center\"\n ],\n \"default\": \"bottom-right\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<AppShell>\\n <main>Your application content</main>\\n</AppShell>\"\n }\n ],\n \"relatedComponents\": [\n \"DashboardLayout\",\n \"PublicLayout\",\n \"Toast\"\n ]\n },\n {\n \"name\": \"AuthLayout\",\n \"description\": \"Centered card layout for authentication pages\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"logo\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom logo\"\n },\n {\n \"name\": \"logoSubtitle\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Subtitle for default logo\"\n },\n {\n \"name\": \"logoEnvironment\",\n \"type\": \"'local' | 'dev' | 'demo'\",\n \"required\": false,\n \"description\": \"Environment indicator\"\n },\n {\n \"name\": \"footerLinks\",\n \"type\": \"FooterLink[]\",\n \"default\": \"[]\",\n \"required\": false,\n \"description\": \"Footer links\"\n },\n {\n \"name\": \"footer\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom footer content\"\n },\n {\n \"name\": \"showBackground\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Show decorative background\"\n },\n {\n \"name\": \"backgroundVariant\",\n \"type\": \"'default' | 'gradient' | 'pattern'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Background style\"\n },\n {\n \"name\": \"maxWidth\",\n \"type\": \"'sm' | 'md' | 'lg'\",\n \"default\": \"'sm'\",\n \"required\": false,\n \"description\": \"Maximum card width\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Form content\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"logoEnvironment\",\n \"values\": [\n \"local\",\n \"dev\",\n \"demo\"\n ]\n },\n {\n \"name\": \"backgroundVariant\",\n \"values\": [\n \"default\",\n \"gradient\",\n \"pattern\"\n ],\n \"default\": \"default\"\n },\n {\n \"name\": \"maxWidth\",\n \"values\": [\n \"sm\",\n \"md\",\n \"lg\"\n ],\n \"default\": \"sm\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<AuthLayout>\\n <h2 class=\\\"text-2xl font-bold mb-4\\\">Sign In</h2>\\n <form>\\n <Input label=\\\"Email\\\" type=\\\"email\\\" />\\n <Input label=\\\"Password\\\" type=\\\"password\\\" class=\\\"mt-4\\\" />\\n <Button class=\\\"mt-6 w-full\\\">Sign In</Button>\\n </form>\\n</AuthLayout>\"\n },\n {\n \"title\": \"Gradient Background\",\n \"code\": \"<AuthLayout showBackground backgroundVariant=\\\"gradient\\\">\\n <h2>Create Account</h2>\\n <!-- Form content -->\\n</AuthLayout>\"\n },\n {\n \"title\": \"Pattern Background\",\n \"code\": \"<AuthLayout showBackground backgroundVariant=\\\"pattern\\\">\\n <h2>Reset Password</h2>\\n <!-- Form content -->\\n</AuthLayout>\"\n },\n {\n \"title\": \"Login Page\",\n \"code\": \"<script>\\n let email = $state('');\\n let password = $state('');\\n let loading = $state(false);\\n\\n async function handleSubmit() {\\n loading = true;\\n // Handle login\\n }\\n</script>\\n\\n<AuthLayout\\n logoSubtitle=\\\"Sign in to continue\\\"\\n footerLinks={[\\n { label: 'Privacy', href: '/privacy' },\\n { label: 'Terms', href: '/terms' },\\n ]}\\n>\\n <form onsubmit={handleSubmit} class=\\\"space-y-4\\\">\\n <Input label=\\\"Email\\\" type=\\\"email\\\" bind:value={email} required />\\n <Input label=\\\"Password\\\" type=\\\"password\\\" bind:value={password} required />\\n <div class=\\\"flex items-center justify-between\\\">\\n <Checkbox label=\\\"Remember me\\\" />\\n <a href=\\\"/forgot-password\\\" class=\\\"text-sm text-primary\\\"> Forgot password? </a>\\n </div>\\n <Button type=\\\"submit\\\" class=\\\"w-full\\\" disabled={loading}>\\n {loading ? 'Signing in...' : 'Sign In'}\\n </Button>\\n </form>\\n\\n <p class=\\\"mt-6 text-center text-sm text-muted-foreground\\\">\\n Don't have an account? <a href=\\\"/signup\\\" class=\\\"text-primary\\\">Sign up</a>\\n </p>\\n</AuthLayout>\"\n },\n {\n \"title\": \"Registration Page\",\n \"code\": \"<AuthLayout maxWidth=\\\"md\\\" showBackground backgroundVariant=\\\"gradient\\\">\\n <h2 class=\\\"text-2xl font-bold mb-6\\\">Create your account</h2>\\n\\n <form class=\\\"space-y-4\\\">\\n <div class=\\\"grid grid-cols-2 gap-4\\\">\\n <Input label=\\\"First Name\\\" required />\\n <Input label=\\\"Last Name\\\" required />\\n </div>\\n <Input label=\\\"Email\\\" type=\\\"email\\\" required />\\n <Input label=\\\"Password\\\" type=\\\"password\\\" required />\\n <Input label=\\\"Confirm Password\\\" type=\\\"password\\\" required />\\n\\n <Checkbox>\\n I agree to the <a href=\\\"/terms\\\">Terms of Service</a>\\n </Checkbox>\\n\\n <Button type=\\\"submit\\\" class=\\\"w-full\\\">Create Account</Button>\\n </form>\\n</AuthLayout>\"\n },\n {\n \"title\": \"Two-Factor Authentication\",\n \"code\": \"<AuthLayout logoSubtitle=\\\"Verify your identity\\\">\\n <div class=\\\"text-center mb-6\\\">\\n <p class=\\\"text-muted-foreground\\\">Enter the 6-digit code from your authenticator app</p>\\n </div>\\n\\n <OTPInput bind:value={code} autoFocus onComplete={verifyCode} />\\n\\n <p class=\\\"mt-6 text-center text-sm text-muted-foreground\\\">\\n Can't access your authenticator? <a href=\\\"/recovery\\\" class=\\\"text-primary\\\">Use recovery code</a>\\n </p>\\n</AuthLayout>\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"Button\",\n \"OTPInput\",\n \"ErrorLayout\"\n ]\n },\n {\n \"name\": \"Avatar\",\n \"description\": \"User profile image with fallback support\",\n \"category\": \"core\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"size\",\n \"type\": \"'xs' | 'sm' | 'md' | 'lg' | 'xl'\",\n \"default\": \"'md'\",\n \"required\": false,\n \"description\": \"Size of the avatar\"\n },\n {\n \"name\": \"delayMs\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"Delay before showing fallback\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"size\",\n \"values\": [\n \"xs\",\n \"sm\",\n \"md\",\n \"lg\",\n \"xl\"\n ],\n \"default\": \"md\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Avatar>\\n <AvatarImage src=\\\"/avatar.jpg\\\" alt=\\\"John Doe\\\" />\\n <AvatarFallback>JD</AvatarFallback>\\n</Avatar>\"\n },\n {\n \"title\": \"Fallback with Delay\",\n \"description\": \"Prevent flash of fallback for slow-loading images:\",\n \"code\": \"<Avatar delayMs={500}>\\n <AvatarImage src=\\\"/slow-image.jpg\\\" alt=\\\"User\\\" />\\n <AvatarFallback>AB</AvatarFallback>\\n</Avatar>\"\n },\n {\n \"title\": \"User Profile\",\n \"code\": \"<div class=\\\"flex items-center gap-3\\\">\\n <Avatar size=\\\"lg\\\">\\n <AvatarImage src={user.avatar} alt={user.name} />\\n <AvatarFallback>{getInitials(user.name)}</AvatarFallback>\\n </Avatar>\\n <div>\\n <p class=\\\"font-medium\\\">{user.name}</p>\\n <p class=\\\"text-sm text-muted-foreground\\\">{user.email}</p>\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Avatar Stack\",\n \"code\": \"<div class=\\\"flex -space-x-2\\\">\\n {#each users as user}\\n <Avatar size=\\\"sm\\\" class=\\\"border-2 border-background\\\">\\n <AvatarImage src={user.avatar} alt={user.name} />\\n <AvatarFallback>{getInitials(user.name)}</AvatarFallback>\\n </Avatar>\\n {/each}\\n {#if moreCount > 0}\\n <Avatar size=\\\"sm\\\" class=\\\"border-2 border-background\\\">\\n <AvatarFallback>+{moreCount}</AvatarFallback>\\n </Avatar>\\n {/if}\\n</div>\"\n },\n {\n \"title\": \"Comment Avatar\",\n \"code\": \"<div class=\\\"flex gap-3\\\">\\n <Avatar size=\\\"sm\\\">\\n <AvatarImage src={comment.author.avatar} alt={comment.author.name} />\\n <AvatarFallback>{getInitials(comment.author.name)}</AvatarFallback>\\n </Avatar>\\n <div class=\\\"flex-1\\\">\\n <p class=\\\"font-medium text-sm\\\">{comment.author.name}</p>\\n <p class=\\\"text-sm\\\">{comment.text}</p>\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Navigation Avatar\",\n \"code\": \"<button class=\\\"flex items-center gap-2\\\">\\n <Avatar size=\\\"sm\\\">\\n <AvatarImage src={currentUser.avatar} alt={currentUser.name} />\\n <AvatarFallback>{getInitials(currentUser.name)}</AvatarFallback>\\n </Avatar>\\n <span class=\\\"text-sm\\\">{currentUser.name}</span>\\n</button>\"\n },\n {\n \"title\": \"Colored Fallbacks\",\n \"code\": \"<script>\\n function getColorFromName(name: string): string {\\n const colors = ['bg-red-500', 'bg-blue-500', 'bg-green-500', 'bg-yellow-500', 'bg-purple-500'];\\n const index = name.charCodeAt(0) % colors.length;\\n return colors[index];\\n }\\n</script>\\n\\n<Avatar>\\n <AvatarImage src={user.avatar} alt={user.name} />\\n <AvatarFallback class={getColorFromName(user.name)}>\\n {getInitials(user.name)}\\n </AvatarFallback>\\n</Avatar>\"\n }\n ],\n \"relatedComponents\": [\n \"Badge\",\n \"Card\"\n ]\n },\n {\n \"name\": \"Badge\",\n \"description\": \"Small label component for status indicators and categorization\",\n \"category\": \"core\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"variant\",\n \"type\": \"'default' | 'secondary' | 'destructive' | 'outline' | 'success' | 'warning' | 'info'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Visual style variant\"\n },\n {\n \"name\": \"size\",\n \"type\": \"'default' | 'sm' | 'dot'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Size of the badge\"\n },\n {\n \"name\": \"clickable\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Enables hover effects for clickable badges\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"default\",\n \"secondary\",\n \"destructive\",\n \"outline\",\n \"success\",\n \"warning\",\n \"info\"\n ],\n \"default\": \"default\"\n },\n {\n \"name\": \"size\",\n \"values\": [\n \"default\",\n \"sm\",\n \"dot\"\n ],\n \"default\": \"default\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Badge>Default</Badge>\"\n },\n {\n \"title\": \"Default\",\n \"code\": \"<Badge variant=\\\"default\\\">Default</Badge>\"\n },\n {\n \"title\": \"Secondary\",\n \"code\": \"<Badge variant=\\\"secondary\\\">Secondary</Badge>\"\n },\n {\n \"title\": \"Destructive\",\n \"code\": \"<Badge variant=\\\"destructive\\\">Destructive</Badge>\"\n },\n {\n \"title\": \"Outline\",\n \"code\": \"<Badge variant=\\\"outline\\\">Outline</Badge>\"\n },\n {\n \"title\": \"Success\",\n \"code\": \"<Badge variant=\\\"success\\\">Success</Badge>\"\n },\n {\n \"title\": \"Warning\",\n \"code\": \"<Badge variant=\\\"warning\\\">Warning</Badge>\"\n },\n {\n \"title\": \"Info\",\n \"code\": \"<Badge variant=\\\"info\\\">Info</Badge>\"\n },\n {\n \"title\": \"Status Indicators\",\n \"code\": \"<Badge variant=\\\"success\\\">Active</Badge>\\n<Badge variant=\\\"warning\\\">Pending</Badge>\\n<Badge variant=\\\"destructive\\\">Expired</Badge>\"\n },\n {\n \"title\": \"Notification Counts\",\n \"code\": \"<Badge size=\\\"dot\\\" variant=\\\"destructive\\\">3</Badge>\"\n },\n {\n \"title\": \"Category Tags\",\n \"code\": \"<div class=\\\"flex gap-2\\\">\\n <Badge variant=\\\"secondary\\\">React</Badge>\\n <Badge variant=\\\"secondary\\\">Svelte</Badge>\\n <Badge variant=\\\"secondary\\\">TypeScript</Badge>\\n</div>\"\n },\n {\n \"title\": \"With Icons\",\n \"code\": \"<Badge>\\n <svg class=\\\"h-3 w-3\\\" fill=\\\"currentColor\\\" viewBox=\\\"0 0 20 20\\\">\\n <circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"5\\\" />\\n </svg>\\n Online\\n</Badge>\"\n },\n {\n \"title\": \"Table Status Column\",\n \"code\": \"<td>\\n {#if user.status === 'active'}\\n <Badge variant=\\\"success\\\">Active</Badge>\\n {:else if user.status === 'pending'}\\n <Badge variant=\\\"warning\\\">Pending</Badge>\\n {:else}\\n <Badge variant=\\\"destructive\\\">Inactive</Badge>\\n {/if}\\n</td>\"\n },\n {\n \"title\": \"Article Tags\",\n \"code\": \"<article>\\n <h2>Article Title</h2>\\n <div class=\\\"flex gap-1 mt-2\\\">\\n {#each article.tags as tag}\\n <Badge variant=\\\"outline\\\" size=\\\"sm\\\">{tag}</Badge>\\n {/each}\\n </div>\\n</article>\"\n },\n {\n \"title\": \"Version Badge\",\n \"code\": \"<Badge variant=\\\"info\\\">v2.0.0</Badge>\"\n },\n {\n \"title\": \"New Feature Badge\",\n \"code\": \"<h3>\\n Feature Name\\n <Badge variant=\\\"default\\\" size=\\\"sm\\\" class=\\\"ml-2\\\">New</Badge>\\n</h3>\"\n }\n ],\n \"relatedComponents\": [\n \"Alert\",\n \"Button\"\n ]\n },\n {\n \"name\": \"Button\",\n \"description\": \"Clickable button component with multiple variants, sizes, and loading states\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"variant\",\n \"type\": \"'default' | 'secondary' | 'destructive' | 'outline' | 'ghost' | 'link'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Visual style variant\"\n },\n {\n \"name\": \"size\",\n \"type\": \"'default' | 'sm' | 'lg' | 'icon'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Size of the button\"\n },\n {\n \"name\": \"type\",\n \"type\": \"'button' | 'submit' | 'reset'\",\n \"default\": \"'button'\",\n \"required\": false,\n \"description\": \"HTML button type\"\n },\n {\n \"name\": \"href\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"If provided, renders as an anchor link\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the button\"\n },\n {\n \"name\": \"loading\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Shows loading spinner\"\n },\n {\n \"name\": \"loadingText\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Text to show during loading (replaces children)\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onclick\",\n \"type\": \"(e: MouseEvent) => void\",\n \"required\": false,\n \"description\": \"Click handler\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"default\",\n \"secondary\",\n \"destructive\",\n \"outline\",\n \"ghost\",\n \"link\"\n ],\n \"default\": \"default\"\n },\n {\n \"name\": \"size\",\n \"values\": [\n \"default\",\n \"sm\",\n \"lg\",\n \"icon\"\n ],\n \"default\": \"default\"\n },\n {\n \"name\": \"type\",\n \"values\": [\n \"button\",\n \"submit\",\n \"reset\"\n ],\n \"default\": \"button\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Button>Click Me</Button>\"\n },\n {\n \"title\": \"Default\",\n \"description\": \"The primary action button with solid background.\",\n \"code\": \"<Button variant=\\\"default\\\">Default Button</Button>\"\n },\n {\n \"title\": \"Secondary\",\n \"description\": \"For secondary actions that need less visual emphasis.\",\n \"code\": \"<Button variant=\\\"secondary\\\">Secondary Button</Button>\"\n },\n {\n \"title\": \"Destructive\",\n \"description\": \"For dangerous or irreversible actions like delete.\",\n \"code\": \"<Button variant=\\\"destructive\\\">Delete</Button>\"\n },\n {\n \"title\": \"Outline\",\n \"description\": \"Bordered button with transparent background.\",\n \"code\": \"<Button variant=\\\"outline\\\">Outline Button</Button>\"\n },\n {\n \"title\": \"Ghost\",\n \"description\": \"Minimal button with no background until hovered.\",\n \"code\": \"<Button variant=\\\"ghost\\\">Ghost Button</Button>\"\n },\n {\n \"title\": \"Link\",\n \"description\": \"Styled as an inline text link.\",\n \"code\": \"<Button variant=\\\"link\\\">Link Button</Button>\"\n },\n {\n \"title\": \"Disabled\",\n \"code\": \"<Button disabled>Disabled</Button>\"\n },\n {\n \"title\": \"Loading\",\n \"description\": \"Shows a spinner and optionally replaces the text:\",\n \"code\": \"<Button loading>Submit</Button>\\n<Button loading loadingText=\\\"Saving...\\\">Save</Button>\"\n },\n {\n \"title\": \"Button Group\",\n \"code\": \"<div class=\\\"flex gap-2\\\">\\n <Button variant=\\\"outline\\\">Cancel</Button>\\n <Button>Save Changes</Button>\\n</div>\"\n },\n {\n \"title\": \"Full Width Button\",\n \"code\": \"<Button class=\\\"w-full\\\">Full Width Button</Button>\"\n },\n {\n \"title\": \"Async Action\",\n \"code\": \"<script>\\n let loading = $state(false);\\n\\n async function handleSave() {\\n loading = true;\\n try {\\n await saveData();\\n } finally {\\n loading = false;\\n }\\n }\\n</script>\\n\\n<Button {loading} loadingText=\\\"Saving...\\\" onclick={handleSave}>Save</Button>\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"FormField\",\n \"Dialog\"\n ]\n },\n {\n \"name\": \"Card\",\n \"description\": \"Container component for grouping related content\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Card>\\n <CardHeader>\\n <CardTitle>Card Title</CardTitle>\\n <CardDescription>Card description text</CardDescription>\\n </CardHeader>\\n <CardContent>\\n <p>Card content goes here.</p>\\n </CardContent>\\n <CardFooter>\\n <Button>Action</Button>\\n </CardFooter>\\n</Card>\"\n },\n {\n \"title\": \"Default\",\n \"description\": \"Standard card with 1px border:\",\n \"code\": \"<Card variant=\\\"default\\\">\\n <CardContent>Default card</CardContent>\\n</Card>\"\n },\n {\n \"title\": \"Featured\",\n \"description\": \"Emphasized card with 2px border:\",\n \"code\": \"<Card variant=\\\"featured\\\">\\n <CardContent>Featured card with thicker border</CardContent>\\n</Card>\"\n },\n {\n \"title\": \"Highlight\",\n \"description\": \"Positive/info callout with teal border:\",\n \"code\": \"<Card variant=\\\"highlight\\\">\\n <CardContent>Highlight card for important info</CardContent>\\n</Card>\"\n },\n {\n \"title\": \"Warning\",\n \"description\": \"Alert card with red border:\",\n \"code\": \"<Card variant=\\\"warning\\\">\\n <CardContent>Warning card for alerts</CardContent>\\n</Card>\"\n },\n {\n \"title\": \"Profile Card\",\n \"code\": \"<Card class=\\\"max-w-sm\\\">\\n <CardHeader>\\n <div class=\\\"flex items-center gap-4\\\">\\n <Avatar>\\n <AvatarImage src=\\\"/avatar.jpg\\\" alt=\\\"User\\\" />\\n <AvatarFallback>JD</AvatarFallback>\\n </Avatar>\\n <div>\\n <CardTitle>Jane Doe</CardTitle>\\n <CardDescription>Product Designer</CardDescription>\\n </div>\\n </div>\\n </CardHeader>\\n <CardContent>\\n <p class=\\\"text-sm\\\">Building beautiful interfaces at Acme Corp.</p>\\n </CardContent>\\n <CardFooter class=\\\"gap-2\\\">\\n <Button variant=\\\"outline\\\" size=\\\"sm\\\">Message</Button>\\n <Button size=\\\"sm\\\">Follow</Button>\\n </CardFooter>\\n</Card>\"\n },\n {\n \"title\": \"Pricing Card\",\n \"code\": \"<Card variant=\\\"featured\\\" class=\\\"max-w-sm text-center\\\">\\n <CardHeader>\\n <CardTitle>Pro Plan</CardTitle>\\n <CardDescription>For growing teams</CardDescription>\\n </CardHeader>\\n <CardContent>\\n <div class=\\\"text-4xl font-bold\\\">$29</div>\\n <p class=\\\"text-muted-foreground\\\">/month</p>\\n <ul class=\\\"mt-4 space-y-2 text-left\\\">\\n <li>Unlimited projects</li>\\n <li>Priority support</li>\\n <li>Advanced analytics</li>\\n </ul>\\n </CardContent>\\n <CardFooter>\\n <Button class=\\\"w-full\\\">Get Started</Button>\\n </CardFooter>\\n</Card>\"\n },\n {\n \"title\": \"Stats Card\",\n \"code\": \"<Card>\\n <CardHeader class=\\\"flex-row items-center justify-between pb-2\\\">\\n <CardTitle class=\\\"text-sm font-medium\\\">Total Revenue</CardTitle>\\n <svg class=\\\"h-4 w-4 text-muted-foreground\\\"><!-- icon --></svg>\\n </CardHeader>\\n <CardContent>\\n <div class=\\\"text-2xl font-bold\\\">$45,231.89</div>\\n <p class=\\\"text-xs text-muted-foreground\\\">+20.1% from last month</p>\\n </CardContent>\\n</Card>\"\n },\n {\n \"title\": \"Card Grid\",\n \"code\": \"<div class=\\\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\\\">\\n {#each items as item}\\n <Card interactive>\\n <CardHeader>\\n <CardTitle>{item.title}</CardTitle>\\n </CardHeader>\\n <CardContent>\\n <p>{item.description}</p>\\n </CardContent>\\n </Card>\\n {/each}\\n</div>\"\n },\n {\n \"title\": \"Simple Content Card\",\n \"code\": \"<Card>\\n <CardContent class=\\\"pt-6\\\">\\n <p>Simple card with just content, no header or footer.</p>\\n </CardContent>\\n</Card>\"\n }\n ],\n \"relatedComponents\": [\n \"Alert\",\n \"Dialog\"\n ]\n },\n {\n \"name\": \"Checkbox\",\n \"description\": \"Checkbox input for boolean selections and multiple choice options\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"checked\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Whether the checkbox is checked (bindable)\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the checkbox\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Name attribute for forms\"\n },\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Value attribute for forms\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Element ID for label association\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onCheckedChange\",\n \"type\": \"(checked: boolean) => void\",\n \"required\": false,\n \"description\": \"Callback when checked state changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let checked = $state(false);\\n</script>\\n\\n<Checkbox bind:checked />\"\n },\n {\n \"title\": \"Checked\",\n \"code\": \"<Checkbox checked />\"\n },\n {\n \"title\": \"Disabled\",\n \"code\": \"<Checkbox disabled />\\n<Checkbox disabled checked />\"\n },\n {\n \"title\": \"Required\",\n \"code\": \"<Checkbox required id=\\\"required-checkbox\\\" />\"\n },\n {\n \"title\": \"Terms Agreement\",\n \"code\": \"<script>\\n let agreed = $state(false);\\n</script>\\n\\n<div class=\\\"flex items-start gap-2\\\">\\n <Checkbox id=\\\"agree\\\" bind:checked={agreed} class=\\\"mt-1\\\" />\\n <Label for=\\\"agree\\\" class=\\\"leading-normal\\\">\\n I agree to the <a href=\\\"/terms\\\" class=\\\"text-primary underline\\\">Terms of Service</a>\\n and <a href=\\\"/privacy\\\" class=\\\"text-primary underline\\\">Privacy Policy</a>\\n </Label>\\n</div>\\n\\n<Button disabled={!agreed}>Continue</Button>\"\n },\n {\n \"title\": \"Feature Selection\",\n \"code\": \"<script>\\n let features = $state(['basic']);\\n\\n function toggleFeature(feature: string) {\\n if (features.includes(feature)) {\\n features = features.filter((f) => f !== feature);\\n } else {\\n features = [...features, feature];\\n }\\n }\\n</script>\\n\\n<div class=\\\"space-y-2\\\">\\n <div class=\\\"flex items-center gap-2\\\">\\n <Checkbox\\n id=\\\"basic\\\"\\n checked={features.includes('basic')}\\n onCheckedChange={() => toggleFeature('basic')}\\n />\\n <Label for=\\\"basic\\\">Basic features</Label>\\n </div>\\n <div class=\\\"flex items-center gap-2\\\">\\n <Checkbox\\n id=\\\"advanced\\\"\\n checked={features.includes('advanced')}\\n onCheckedChange={() => toggleFeature('advanced')}\\n />\\n <Label for=\\\"advanced\\\">Advanced features</Label>\\n </div>\\n <div class=\\\"flex items-center gap-2\\\">\\n <Checkbox\\n id=\\\"premium\\\"\\n checked={features.includes('premium')}\\n onCheckedChange={() => toggleFeature('premium')}\\n />\\n <Label for=\\\"premium\\\">Premium features</Label>\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Form Submission\",\n \"code\": \"<form onsubmit={handleSubmit}>\\n <Checkbox name=\\\"newsletter\\\" value=\\\"subscribed\\\" />\\n <button type=\\\"submit\\\">Submit</button>\\n</form>\"\n }\n ],\n \"relatedComponents\": [\n \"Switch\",\n \"RadioGroup\",\n \"Label\"\n ]\n },\n {\n \"name\": \"Combobox\",\n \"description\": \"Searchable select with async loading support\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"default\": \"''\",\n \"required\": false,\n \"description\": \"Current selected value (bindable)\"\n },\n {\n \"name\": \"options\",\n \"type\": \"SelectOption[]\",\n \"default\": \"Required\",\n \"required\": false,\n \"description\": \"Array of options\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"emptyMessage\",\n \"type\": \"string\",\n \"default\": \"'No results found.'\",\n \"required\": false,\n \"description\": \"Message when no options match\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the combobox\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Name attribute for forms\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Element ID\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message\"\n },\n {\n \"name\": \"loading\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Shows loading state\"\n },\n {\n \"name\": \"debounceMs\",\n \"type\": \"number\",\n \"default\": \"300\",\n \"required\": false,\n \"description\": \"Debounce time for search\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n },\n {\n \"name\": \"onSearch\",\n \"type\": \"(query: string) => void\",\n \"required\": false,\n \"description\": \"Callback for search queries\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let value = $state('');\\n\\n const options = [\\n { value: 'apple', label: 'Apple' },\\n { value: 'banana', label: 'Banana' },\\n { value: 'orange', label: 'Orange' },\\n ];\\n</script>\\n\\n<Combobox {options} bind:value placeholder=\\\"Select a fruit...\\\" />\"\n },\n {\n \"title\": \"User Search\",\n \"code\": \"<script>\\n let selectedUser = $state('');\\n let users = $state([]);\\n let loading = $state(false);\\n\\n async function searchUsers(query: string) {\\n if (!query) {\\n users = [];\\n return;\\n }\\n loading = true;\\n const response = await fetch(`/api/users?search=${query}`);\\n users = await response.json();\\n loading = false;\\n }\\n</script>\\n\\n<Combobox\\n options={users}\\n bind:value={selectedUser}\\n onSearch={searchUsers}\\n {loading}\\n placeholder=\\\"Search users...\\\"\\n emptyMessage=\\\"No users found\\\"\\n/>\"\n },\n {\n \"title\": \"Location Autocomplete\",\n \"code\": \"<Combobox\\n options={locations}\\n bind:value\\n onSearch={searchLocations}\\n placeholder=\\\"Enter city or zip code...\\\"\\n emptyMessage=\\\"No locations found\\\"\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"Select\",\n \"MultiSelect\"\n ]\n },\n {\n \"name\": \"DashboardLayout\",\n \"description\": \"Complete dashboard layout with responsive sidebar and header\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"navigation\",\n \"type\": \"NavSection[]\",\n \"required\": false,\n \"description\": \"Navigation sections for sidebar\"\n },\n {\n \"name\": \"user\",\n \"type\": \"User\",\n \"required\": false,\n \"description\": \"Current user data\"\n },\n {\n \"name\": \"appName\",\n \"type\": \"string\",\n \"default\": \"'Dashboard'\",\n \"required\": false,\n \"description\": \"Application name\"\n },\n {\n \"name\": \"pageTitle\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Page title in header\"\n },\n {\n \"name\": \"backLink\",\n \"type\": \"BackLink\",\n \"required\": false,\n \"description\": \"Back link at top of navigation\"\n },\n {\n \"name\": \"sidebarVariant\",\n \"type\": \"'light' | 'dark'\",\n \"default\": \"'light'\",\n \"required\": false,\n \"description\": \"Sidebar visual variant\"\n },\n {\n \"name\": \"sidebarCollapsed\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Initial collapsed state\"\n },\n {\n \"name\": \"showHeader\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Whether to show header\"\n },\n {\n \"name\": \"logo\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom logo\"\n },\n {\n \"name\": \"icon\",\n \"type\": \"Snippet<[NavItem]>\",\n \"required\": false,\n \"description\": \"Custom icon renderer\"\n },\n {\n \"name\": \"quickLinks\",\n \"type\": \"QuickLink[]\",\n \"required\": false,\n \"description\": \"Quick links at bottom\"\n },\n {\n \"name\": \"quickLinksDisplay\",\n \"type\": \"'list' | 'icons'\",\n \"default\": \"'list'\",\n \"required\": false,\n \"description\": \"Quick links display mode\"\n },\n {\n \"name\": \"onNavigate\",\n \"type\": \"(item: NavItem) => void\",\n \"required\": false,\n \"description\": \"Navigation callback\"\n },\n {\n \"name\": \"headerStart\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Content after toggle button\"\n },\n {\n \"name\": \"headerEnd\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Content at end of header\"\n },\n {\n \"name\": \"userMenu\",\n \"type\": \"Snippet<[User]>\",\n \"required\": false,\n \"description\": \"Custom user menu\"\n },\n {\n \"name\": \"sidebarFooter\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Sidebar footer content\"\n },\n {\n \"name\": \"expandedWidth\",\n \"type\": \"number\",\n \"default\": \"256\",\n \"required\": false,\n \"description\": \"Expanded sidebar width (px)\"\n },\n {\n \"name\": \"collapsedWidth\",\n \"type\": \"number\",\n \"default\": \"64\",\n \"required\": false,\n \"description\": \"Collapsed sidebar width (px)\"\n },\n {\n \"name\": \"searchable\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Enable navigation search\"\n },\n {\n \"name\": \"searchPlaceholder\",\n \"type\": \"string\",\n \"default\": \"'Search...'\",\n \"required\": false,\n \"description\": \"Search input placeholder\"\n },\n {\n \"name\": \"headerSearch\",\n \"type\": \"HeaderSearchConfig\",\n \"required\": false,\n \"description\": \"Header search configuration\"\n },\n {\n \"name\": \"mobileBreakpoint\",\n \"type\": \"'sm' | 'md' | 'lg'\",\n \"default\": \"'lg'\",\n \"required\": false,\n \"description\": \"Mobile/desktop breakpoint\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Main content\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"sidebarVariant\",\n \"values\": [\n \"light\",\n \"dark\"\n ],\n \"default\": \"light\"\n },\n {\n \"name\": \"quickLinksDisplay\",\n \"values\": [\n \"list\",\n \"icons\"\n ],\n \"default\": \"list\"\n },\n {\n \"name\": \"mobileBreakpoint\",\n \"values\": [\n \"sm\",\n \"md\",\n \"lg\"\n ],\n \"default\": \"lg\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n const navigation = [\\n {\\n id: 'main',\\n title: 'Main',\\n items: [\\n { id: 'dashboard', name: 'Dashboard', href: '/dashboard', icon: 'home' },\\n { id: 'projects', name: 'Projects', href: '/projects', icon: 'folder' },\\n ],\\n },\\n ];\\n</script>\\n\\n<DashboardLayout {navigation}>\\n <h1>Dashboard Content</h1>\\n</DashboardLayout>\"\n }\n ],\n \"relatedComponents\": [\n \"Sidebar\",\n \"Header\",\n \"AppShell\"\n ]\n },\n {\n \"name\": \"DataTable\",\n \"description\": \"Sortable, accessible data table with loading states\",\n \"category\": \"data\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"data\",\n \"type\": \"T[]\",\n \"required\": false,\n \"description\": \"Array of data rows\"\n },\n {\n \"name\": \"columns\",\n \"type\": \"DataTableColumn<T>[]\",\n \"required\": false,\n \"description\": \"Column definitions\"\n },\n {\n \"name\": \"loading\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Show loading state\"\n },\n {\n \"name\": \"loadingRows\",\n \"type\": \"number\",\n \"default\": \"5\",\n \"required\": false,\n \"description\": \"Number of skeleton rows\"\n },\n {\n \"name\": \"emptyMessage\",\n \"type\": \"string\",\n \"default\": \"'No data available'\",\n \"required\": false,\n \"description\": \"Empty state message\"\n },\n {\n \"name\": \"sortColumn\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Current sort column ID (bindable)\"\n },\n {\n \"name\": \"sortDirection\",\n \"type\": \"'asc' | 'desc'\",\n \"default\": \"'asc'\",\n \"required\": false,\n \"description\": \"Sort direction (bindable)\"\n },\n {\n \"name\": \"onSort\",\n \"type\": \"(column: string, direction: 'asc' | 'desc') => void\",\n \"required\": false,\n \"description\": \"Sort callback\"\n },\n {\n \"name\": \"onRowClick\",\n \"type\": \"(row: T) => void\",\n \"required\": false,\n \"description\": \"Row click callback\"\n },\n {\n \"name\": \"caption\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Accessible caption\"\n },\n {\n \"name\": \"row\",\n \"type\": \"Snippet<[T, number]>\",\n \"required\": false,\n \"description\": \"Custom row renderer\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"sortDirection\",\n \"values\": [\n \"asc\",\n \"desc\"\n ],\n \"default\": \"asc\"\n },\n {\n \"name\": \"onSort\",\n \"values\": [\n \"asc\",\n \"desc\"\n ]\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n const data = [\\n { id: 1, name: 'John Doe', email: 'john@example.com' },\\n { id: 2, name: 'Jane Smith', email: 'jane@example.com' },\\n ];\\n\\n const columns = [\\n { id: 'name', header: 'Name', accessor: 'name' },\\n { id: 'email', header: 'Email', accessor: 'email' },\\n ];\\n</script>\\n\\n<DataTable {data} {columns} />\"\n },\n {\n \"title\": \"User Management Table\",\n \"code\": \"<script>\\n const columns = [\\n { id: 'name', header: 'Name', accessor: 'name', sortable: true },\\n { id: 'email', header: 'Email', accessor: 'email', sortable: true },\\n { id: 'role', header: 'Role', accessor: 'role' },\\n {\\n id: 'joined',\\n header: 'Joined',\\n accessor: 'createdAt',\\n sortable: true,\\n format: (v) => new Date(v).toLocaleDateString(),\\n },\\n ];\\n</script>\\n\\n<DataTable\\n data={users}\\n {columns}\\n caption=\\\"User management table\\\"\\n onRowClick={(user) => goto(`/users/${user.id}`)}\\n/>\"\n },\n {\n \"title\": \"Product Inventory\",\n \"code\": \"<script>\\n const columns = [\\n { id: 'sku', header: 'SKU', accessor: 'sku', width: '120px' },\\n { id: 'name', header: 'Product', accessor: 'name', sortable: true },\\n {\\n id: 'stock',\\n header: 'Stock',\\n accessor: 'quantity',\\n align: 'right',\\n sortable: true,\\n },\\n {\\n id: 'price',\\n header: 'Price',\\n accessor: 'price',\\n align: 'right',\\n format: (v) => `$${v.toFixed(2)}`,\\n },\\n ];\\n</script>\\n\\n<DataTable data={products} {columns} emptyMessage=\\\"No products found\\\" />\"\n }\n ],\n \"relatedComponents\": [\n \"Skeleton\",\n \"Badge\",\n \"Button\"\n ]\n },\n {\n \"name\": \"DateTimePicker\",\n \"description\": \"Calendar-based date and time selection\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"Date | null\",\n \"default\": \"null\",\n \"required\": false,\n \"description\": \"Selected date (bindable)\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the picker\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"minDate\",\n \"type\": \"Date\",\n \"required\": false,\n \"description\": \"Earliest selectable date\"\n },\n {\n \"name\": \"maxDate\",\n \"type\": \"Date\",\n \"required\": false,\n \"description\": \"Latest selectable date\"\n },\n {\n \"name\": \"includeTime\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Include time selection\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Label text\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: Date | null) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let date = $state(null);\\n</script>\\n\\n<DateTimePicker bind:value={date} />\"\n },\n {\n \"title\": \"Event Scheduler\",\n \"code\": \"<DateTimePicker\\n label=\\\"Event date and time\\\"\\n bind:value={eventDate}\\n includeTime\\n minDate={new Date()}\\n/>\"\n },\n {\n \"title\": \"Birth Date\",\n \"code\": \"<DateTimePicker\\n label=\\\"Date of birth\\\"\\n bind:value={birthDate}\\n maxDate={new Date()}\\n placeholder=\\\"Select your birth date\\\"\\n/>\"\n },\n {\n \"title\": \"Booking Window\",\n \"code\": \"<script>\\n const today = new Date();\\n const maxDate = new Date();\\n maxDate.setMonth(maxDate.getMonth() + 3);\\n</script>\\n\\n<DateTimePicker label=\\\"Reservation date\\\" bind:value={reservationDate} minDate={today} {maxDate} />\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"FormField\"\n ]\n },\n {\n \"name\": \"Dialog\",\n \"description\": \"Modal window for focused interactions and confirmations\",\n \"category\": \"overlay\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"open\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Whether the dialog is open (bindable)\"\n },\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Dialog title displayed in header\"\n },\n {\n \"name\": \"description\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Description text below title\"\n },\n {\n \"name\": \"showClose\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Whether to show the close button\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes for content\"\n },\n {\n \"name\": \"onOpenChange\",\n \"type\": \"(open: boolean) => void\",\n \"required\": false,\n \"description\": \"Callback when open state changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let open = $state(false);\\n</script>\\n\\n<Button onclick={() => (open = true)}>Open Dialog</Button>\\n\\n<Dialog bind:open title=\\\"Dialog Title\\\" description=\\\"Dialog description text\\\">\\n <p>Dialog content goes here.</p>\\n</Dialog>\"\n },\n {\n \"title\": \"Confirmation Dialog\",\n \"code\": \"<script>\\n let deleteDialogOpen = $state(false);\\n\\n async function handleDelete() {\\n await deleteItem();\\n deleteDialogOpen = false;\\n }\\n</script>\\n\\n<Button variant=\\\"destructive\\\" onclick={() => (deleteDialogOpen = true)}>Delete</Button>\\n\\n<Dialog\\n bind:open={deleteDialogOpen}\\n title=\\\"Delete Item\\\"\\n description=\\\"This action cannot be undone.\\\"\\n>\\n <p>Are you sure you want to delete this item permanently?</p>\\n\\n {#snippet footer()}\\n <Button variant=\\\"outline\\\" onclick={() => (deleteDialogOpen = false)}>Cancel</Button>\\n <Button variant=\\\"destructive\\\" onclick={handleDelete}>Delete</Button>\\n {/snippet}\\n</Dialog>\"\n },\n {\n \"title\": \"Form Dialog\",\n \"code\": \"<Dialog bind:open title=\\\"Edit Profile\\\">\\n <form onsubmit|preventDefault={handleSubmit} class=\\\"space-y-4\\\">\\n <FormField label=\\\"Name\\\" id=\\\"name\\\" bind:value={name} required />\\n <FormField label=\\\"Email\\\" id=\\\"email\\\" type=\\\"email\\\" bind:value={email} required />\\n </form>\\n\\n {#snippet footer()}\\n <Button variant=\\\"outline\\\" onclick={() => (open = false)}>Cancel</Button>\\n <Button onclick={handleSubmit}>Save Changes</Button>\\n {/snippet}\\n</Dialog>\"\n },\n {\n \"title\": \"Info Dialog\",\n \"code\": \"<Dialog title=\\\"Keyboard Shortcuts\\\">\\n <dl class=\\\"space-y-2\\\">\\n <div class=\\\"flex justify-between\\\">\\n <dt class=\\\"font-medium\\\">Save</dt>\\n <dd><kbd class=\\\"px-2 py-1 bg-muted rounded text-sm\\\">Ctrl+S</kbd></dd>\\n </div>\\n <div class=\\\"flex justify-between\\\">\\n <dt class=\\\"font-medium\\\">Search</dt>\\n <dd><kbd class=\\\"px-2 py-1 bg-muted rounded text-sm\\\">Ctrl+K</kbd></dd>\\n </div>\\n </dl>\\n\\n {#snippet trigger()}\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\">\\n <HelpIcon class=\\\"h-4 w-4\\\" />\\n </Button>\\n {/snippet}\\n</Dialog>\"\n },\n {\n \"title\": \"Wide Dialog\",\n \"code\": \"<Dialog bind:open title=\\\"Preview\\\" class=\\\"max-w-4xl\\\">\\n <img src={previewUrl} alt=\\\"Preview\\\" class=\\\"w-full\\\" />\\n</Dialog>\"\n }\n ],\n \"relatedComponents\": [\n \"AlertDialog\",\n \"Tooltip\",\n \"DropdownMenu\"\n ]\n },\n {\n \"name\": \"DropdownMenu\",\n \"description\": \"Contextual menu with items, groups, and keyboard navigation\",\n \"category\": \"overlay\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"items\",\n \"type\": \"(DropdownMenuItem | DropdownMenuGroup)[]\",\n \"required\": false,\n \"description\": \"Menu items\"\n },\n {\n \"name\": \"trigger\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Trigger element\"\n },\n {\n \"name\": \"side\",\n \"type\": \"'top' | 'right' | 'bottom' | 'left'\",\n \"default\": \"'bottom'\",\n \"required\": false,\n \"description\": \"Menu position\"\n },\n {\n \"name\": \"align\",\n \"type\": \"'start' | 'center' | 'end'\",\n \"default\": \"'start'\",\n \"required\": false,\n \"description\": \"Menu alignment\"\n },\n {\n \"name\": \"open\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Controlled open state (bindable)\"\n },\n {\n \"name\": \"onOpenChange\",\n \"type\": \"(open: boolean) => void\",\n \"required\": false,\n \"description\": \"Open change callback\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"side\",\n \"values\": [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ],\n \"default\": \"bottom\"\n },\n {\n \"name\": \"align\",\n \"values\": [\n \"start\",\n \"center\",\n \"end\"\n ],\n \"default\": \"start\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n const items = [\\n { label: 'Profile', onSelect: () => goto('/profile') },\\n { label: 'Settings', onSelect: () => goto('/settings') },\\n { type: 'separator' },\\n { label: 'Log out', onSelect: logout, destructive: true },\\n ];\\n</script>\\n\\n<DropdownMenu {items}>\\n {#snippet trigger()}\\n <Button variant=\\\"outline\\\">Menu</Button>\\n {/snippet}\\n</DropdownMenu>\"\n },\n {\n \"title\": \"Regular Items\",\n \"code\": \"<script>\\n const items = [\\n { label: 'Edit', onSelect: handleEdit },\\n { label: 'Duplicate', onSelect: handleDuplicate },\\n { label: 'Delete', onSelect: handleDelete, destructive: true },\\n ];\\n</script>\"\n },\n {\n \"title\": \"With Separators\",\n \"code\": \"<script>\\n const items = [\\n { label: 'Cut', shortcut: '⌘X' },\\n { label: 'Copy', shortcut: '⌘C' },\\n { label: 'Paste', shortcut: '⌘V' },\\n { type: 'separator' },\\n { label: 'Select All', shortcut: '⌘A' },\\n ];\\n</script>\"\n },\n {\n \"title\": \"Labels\",\n \"code\": \"<script>\\n const items = [{ type: 'label', label: 'Actions' }, { label: 'Edit' }, { label: 'Delete' }];\\n</script>\"\n },\n {\n \"title\": \"Disabled Items\",\n \"code\": \"<script>\\n const items = [\\n { label: 'Save', disabled: !hasChanges },\\n { label: 'Publish', disabled: !canPublish },\\n ];\\n</script>\"\n },\n {\n \"title\": \"Side\",\n \"code\": \"<!-- Below trigger (default) -->\\n<DropdownMenu {items} side=\\\"bottom\\\">...</DropdownMenu>\\n\\n<!-- Above trigger -->\\n<DropdownMenu {items} side=\\\"top\\\">...</DropdownMenu>\\n\\n<!-- To the right -->\\n<DropdownMenu {items} side=\\\"right\\\">...</DropdownMenu>\\n\\n<!-- To the left -->\\n<DropdownMenu {items} side=\\\"left\\\">...</DropdownMenu>\"\n },\n {\n \"title\": \"Alignment\",\n \"code\": \"<!-- Align to start (default) -->\\n<DropdownMenu {items} align=\\\"start\\\">...</DropdownMenu>\\n\\n<!-- Center aligned -->\\n<DropdownMenu {items} align=\\\"center\\\">...</DropdownMenu>\\n\\n<!-- Align to end -->\\n<DropdownMenu {items} align=\\\"end\\\">...</DropdownMenu>\"\n },\n {\n \"title\": \"User Menu\",\n \"code\": \"<script>\\n const items = [\\n { type: 'label', label: user.email },\\n { type: 'separator' },\\n { label: 'Profile', onSelect: () => goto('/profile') },\\n { label: 'Settings', onSelect: () => goto('/settings') },\\n { label: 'Billing', onSelect: () => goto('/billing') },\\n { type: 'separator' },\\n { label: 'Help', onSelect: openHelp },\\n { type: 'separator' },\\n { label: 'Log out', onSelect: logout, destructive: true },\\n ];\\n</script>\\n\\n<DropdownMenu {items} align=\\\"end\\\">\\n {#snippet trigger()}\\n <Avatar>{user.initials}</Avatar>\\n {/snippet}\\n</DropdownMenu>\"\n },\n {\n \"title\": \"Context Actions\",\n \"code\": \"<script>\\n const items = [\\n { label: 'Open', onSelect: openItem },\\n { label: 'Open in new tab', onSelect: openInNewTab },\\n { type: 'separator' },\\n { label: 'Rename', shortcut: 'F2', onSelect: rename },\\n { label: 'Duplicate', shortcut: '⌘D', onSelect: duplicate },\\n { label: 'Move to...', onSelect: moveTo },\\n { type: 'separator' },\\n { label: 'Delete', destructive: true, onSelect: deleteItem },\\n ];\\n</script>\\n\\n<DropdownMenu {items}>\\n {#snippet trigger()}\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\">\\n <MoreHorizontalIcon />\\n </Button>\\n {/snippet}\\n</DropdownMenu>\"\n },\n {\n \"title\": \"Table Row Actions\",\n \"code\": \"{#each rows as row}\\n <tr>\\n <td>{row.name}</td>\\n <td>\\n <DropdownMenu items={getRowActions(row)}>\\n {#snippet trigger()}\\n <Button variant=\\\"ghost\\\" size=\\\"sm\\\">Actions</Button>\\n {/snippet}\\n </DropdownMenu>\\n </td>\\n </tr>\\n{/each}\"\n }\n ],\n \"relatedComponents\": [\n \"Button\",\n \"AlertDialog\",\n \"Tooltip\"\n ]\n },\n {\n \"name\": \"ErrorLayout\",\n \"description\": \"Layout for error pages with status codes and messaging\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"statusCode\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"HTTP status code (404, 500, etc.)\"\n },\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Custom title (overrides default)\"\n },\n {\n \"name\": \"description\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error description\"\n },\n {\n \"name\": \"showLogo\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Show logo at top\"\n },\n {\n \"name\": \"logo\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom logo\"\n },\n {\n \"name\": \"showHomeButton\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Show \\\"Go Home\\\" button\"\n },\n {\n \"name\": \"homeUrl\",\n \"type\": \"string\",\n \"default\": \"'/'\",\n \"required\": false,\n \"description\": \"Home button URL\"\n },\n {\n \"name\": \"homeText\",\n \"type\": \"string\",\n \"default\": \"'Go Home'\",\n \"required\": false,\n \"description\": \"Home button text\"\n },\n {\n \"name\": \"showBackButton\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Show \\\"Go Back\\\" button\"\n },\n {\n \"name\": \"backText\",\n \"type\": \"string\",\n \"default\": \"'Go Back'\",\n \"required\": false,\n \"description\": \"Back button text\"\n },\n {\n \"name\": \"illustration\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom illustration\"\n },\n {\n \"name\": \"actions\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Additional actions\"\n },\n {\n \"name\": \"footer\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Footer content\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom content\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<ErrorLayout statusCode={404} />\"\n },\n {\n \"title\": \"SvelteKit Error Page\",\n \"code\": \"<!-- src/routes/+error.svelte -->\\n<script>\\n import { page } from '$app/stores';\\n import { ErrorLayout } from '@classic-homes/theme-svelte';\\n</script>\\n\\n<ErrorLayout statusCode={$page.status} description={$page.error?.message} />\"\n },\n {\n \"title\": \"Access Denied\",\n \"code\": \"<ErrorLayout\\n statusCode={403}\\n title=\\\"Access Denied\\\"\\n description=\\\"You need additional permissions to view this page.\\\"\\n showBackButton={false}\\n>\\n {#snippet actions()}\\n <Button href=\\\"/request-access\\\">Request Access</Button>\\n <Button variant=\\\"outline\\\" href=\\\"/dashboard\\\">Back to Dashboard</Button>\\n {/snippet}\\n</ErrorLayout>\"\n },\n {\n \"title\": \"Session Expired\",\n \"code\": \"<ErrorLayout\\n statusCode={401}\\n title=\\\"Session Expired\\\"\\n description=\\\"Your session has expired. Please sign in again to continue.\\\"\\n showBackButton={false}\\n showHomeButton={false}\\n>\\n {#snippet actions()}\\n <Button href=\\\"/login\\\">Sign In Again</Button>\\n {/snippet}\\n</ErrorLayout>\"\n },\n {\n \"title\": \"Maintenance Mode\",\n \"code\": \"<ErrorLayout\\n title=\\\"Scheduled Maintenance\\\"\\n description=\\\"We're currently performing system upgrades. Expected completion: 2:00 PM EST\\\"\\n showBackButton={false}\\n>\\n {#snippet illustration()}\\n <svg class=\\\"w-32 h-32 text-muted-foreground\\\">\\n <!-- Maintenance icon -->\\n </svg>\\n {/snippet}\\n</ErrorLayout>\"\n }\n ],\n \"relatedComponents\": [\n \"AuthLayout\",\n \"Button\",\n \"AppShell\"\n ]\n },\n {\n \"name\": \"FileUpload\",\n \"description\": \"File upload component with drag-and-drop support\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"files\",\n \"type\": \"FileMetadata[]\",\n \"default\": \"[]\",\n \"required\": false,\n \"description\": \"Uploaded files (bindable)\"\n },\n {\n \"name\": \"accept\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Accepted file types\"\n },\n {\n \"name\": \"multiple\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Allow multiple files\"\n },\n {\n \"name\": \"maxSize\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"Max file size in bytes\"\n },\n {\n \"name\": \"maxFiles\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"Max number of files\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables upload\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message\"\n },\n {\n \"name\": \"onUpload\",\n \"type\": \"(file: File) => Promise<FileMetadata>\",\n \"required\": false,\n \"description\": \"Upload handler\"\n },\n {\n \"name\": \"onRemove\",\n \"type\": \"(file: FileMetadata) => void\",\n \"required\": false,\n \"description\": \"Remove handler\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let files = $state([]);\\n</script>\\n\\n<FileUpload bind:files />\"\n },\n {\n \"title\": \"Profile Picture\",\n \"code\": \"<FileUpload\\n accept=\\\"image/*\\\"\\n maxSize={2 * 1024 * 1024}\\n bind:files={avatar}\\n onUpload={uploadAvatar}\\n/>\"\n },\n {\n \"title\": \"Document Upload\",\n \"code\": \"<FileUpload\\n accept=\\\".pdf,.doc,.docx\\\"\\n multiple\\n maxFiles={10}\\n maxSize={10 * 1024 * 1024}\\n bind:files={documents}\\n onUpload={uploadDocument}\\n/>\"\n },\n {\n \"title\": \"With Progress\",\n \"description\": \"Files show upload progress:\",\n \"code\": \"<FileUpload\\n bind:files\\n onUpload={async (file) => {\\n // Upload with progress tracking\\n return await uploadWithProgress(file, (progress) => {\\n // Progress updates automatically\\n });\\n }}\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"Button\"\n ]\n },\n {\n \"name\": \"Footer\",\n \"description\": \"Site footer with link sections and branding\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"links\",\n \"type\": \"NavSection[]\",\n \"default\": \"[]\",\n \"required\": false,\n \"description\": \"Link sections\"\n },\n {\n \"name\": \"copyright\",\n \"type\": \"string\",\n \"default\": \"Auto-generated\",\n \"required\": false,\n \"description\": \"Copyright text\"\n },\n {\n \"name\": \"showLogo\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Show logo\"\n },\n {\n \"name\": \"strongBorder\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"10px accent border\"\n },\n {\n \"name\": \"variant\",\n \"type\": \"'default' | 'dark'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Visual variant\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom content\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"default\",\n \"dark\"\n ],\n \"default\": \"default\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Footer />\"\n },\n {\n \"title\": \"Marketing Site Footer\",\n \"code\": \"<script>\\n const links = [\\n {\\n id: 'product',\\n title: 'Product',\\n items: [\\n { id: 'features', name: 'Features', href: '/features' },\\n { id: 'pricing', name: 'Pricing', href: '/pricing' },\\n { id: 'integrations', name: 'Integrations', href: '/integrations' },\\n { id: 'changelog', name: 'Changelog', href: '/changelog' },\\n ],\\n },\\n {\\n id: 'company',\\n title: 'Company',\\n items: [\\n { id: 'about', name: 'About Us', href: '/about' },\\n { id: 'blog', name: 'Blog', href: '/blog' },\\n { id: 'careers', name: 'Careers', href: '/careers' },\\n { id: 'press', name: 'Press Kit', href: '/press' },\\n ],\\n },\\n {\\n id: 'support',\\n title: 'Support',\\n items: [\\n { id: 'help', name: 'Help Center', href: '/help' },\\n { id: 'contact', name: 'Contact Us', href: '/contact' },\\n { id: 'status', name: 'System Status', href: 'https://status.example.com', external: true },\\n ],\\n },\\n {\\n id: 'legal',\\n title: 'Legal',\\n items: [\\n { id: 'privacy', name: 'Privacy', href: '/privacy' },\\n { id: 'terms', name: 'Terms', href: '/terms' },\\n { id: 'security', name: 'Security', href: '/security' },\\n ],\\n },\\n ];\\n</script>\\n\\n<Footer {links} copyright=\\\"2024 Example Inc. All rights reserved.\\\" />\"\n },\n {\n \"title\": \"Minimal Footer\",\n \"code\": \"<Footer copyright=\\\"2024 Company Name\\\" showLogo={false} />\"\n },\n {\n \"title\": \"Branded Dark Footer\",\n \"code\": \"<Footer\\n {links}\\n variant=\\\"dark\\\"\\n strongBorder\\n copyright=\\\"2024 Classic Homes. Building quality since 1985.\\\"\\n>\\n <div class=\\\"grid grid-cols-3 gap-4 text-center\\\">\\n <div>\\n <p class=\\\"text-2xl font-bold\\\">500+</p>\\n <p class=\\\"text-sm text-gray-400\\\">Homes Built</p>\\n </div>\\n <div>\\n <p class=\\\"text-2xl font-bold\\\">25+</p>\\n <p class=\\\"text-sm text-gray-400\\\">Years Experience</p>\\n </div>\\n <div>\\n <p class=\\\"text-2xl font-bold\\\">98%</p>\\n <p class=\\\"text-sm text-gray-400\\\">Satisfaction</p>\\n </div>\\n </div>\\n</Footer>\"\n }\n ],\n \"relatedComponents\": [\n \"Header\",\n \"PublicLayout\",\n \"Separator\"\n ]\n },\n {\n \"name\": \"FormField\",\n \"description\": \"Complete form field component with label, input, and validation\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"default\": \"Required\",\n \"required\": false,\n \"description\": \"Label text\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"default\": \"Required\",\n \"required\": false,\n \"description\": \"Input ID for accessibility\"\n },\n {\n \"name\": \"type\",\n \"type\": \"'text' | 'email' | 'password' | 'tel' | 'url' | 'number' | 'date' | 'textarea'\",\n \"default\": \"'text'\",\n \"required\": false,\n \"description\": \"Input type\"\n },\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"default\": \"''\",\n \"required\": false,\n \"description\": \"Field value (bindable)\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message to display\"\n },\n {\n \"name\": \"hint\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Help text shown below input\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the field\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"autocomplete\",\n \"type\": \"AutoFill\",\n \"required\": false,\n \"description\": \"Browser autocomplete hint\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Name attribute for forms\"\n },\n {\n \"name\": \"rows\",\n \"type\": \"number\",\n \"default\": \"3\",\n \"required\": false,\n \"description\": \"Rows for textarea type\"\n },\n {\n \"name\": \"readonly\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Makes field read-only\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"type\",\n \"values\": [\n \"text\",\n \"email\",\n \"password\",\n \"tel\",\n \"url\",\n \"number\",\n \"date\",\n \"textarea\"\n ],\n \"default\": \"text\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let email = $state('');\\n</script>\\n\\n<FormField label=\\\"Email\\\" id=\\\"email\\\" type=\\\"email\\\" bind:value={email} placeholder=\\\"your@email.com\\\" />\"\n },\n {\n \"title\": \"Text (Default)\",\n \"code\": \"<FormField label=\\\"Name\\\" id=\\\"name\\\" bind:value={name} />\"\n },\n {\n \"title\": \"Email\",\n \"code\": \"<FormField label=\\\"Email\\\" id=\\\"email\\\" type=\\\"email\\\" autocomplete=\\\"email\\\" bind:value={email} />\"\n },\n {\n \"title\": \"Password\",\n \"code\": \"<FormField\\n label=\\\"Password\\\"\\n id=\\\"password\\\"\\n type=\\\"password\\\"\\n autocomplete=\\\"new-password\\\"\\n bind:value={password}\\n/>\"\n },\n {\n \"title\": \"Tel (Phone)\",\n \"code\": \"<FormField label=\\\"Phone\\\" id=\\\"phone\\\" type=\\\"tel\\\" autocomplete=\\\"tel\\\" bind:value={phone} />\"\n },\n {\n \"title\": \"Number\",\n \"code\": \"<FormField label=\\\"Age\\\" id=\\\"age\\\" type=\\\"number\\\" bind:value={age} />\"\n },\n {\n \"title\": \"Date\",\n \"code\": \"<FormField label=\\\"Birth Date\\\" id=\\\"birthdate\\\" type=\\\"date\\\" bind:value={birthdate} />\"\n },\n {\n \"title\": \"URL\",\n \"code\": \"<FormField label=\\\"Website\\\" id=\\\"website\\\" type=\\\"url\\\" placeholder=\\\"https://\\\" bind:value={website} />\"\n },\n {\n \"title\": \"Textarea\",\n \"code\": \"<FormField label=\\\"Description\\\" id=\\\"description\\\" type=\\\"textarea\\\" rows={5} bind:value={description} />\"\n },\n {\n \"title\": \"Error State\",\n \"description\": \"Display validation errors:\",\n \"code\": \"<FormField label=\\\"Email\\\" id=\\\"email\\\" type=\\\"email\\\" bind:value={email} error={emailError} />\"\n },\n {\n \"title\": \"With Hint\",\n \"description\": \"Provide helpful guidance:\",\n \"code\": \"<FormField\\n label=\\\"Password\\\"\\n id=\\\"password\\\"\\n type=\\\"password\\\"\\n bind:value={password}\\n hint=\\\"Must be at least 8 characters\\\"\\n/>\"\n },\n {\n \"title\": \"Disabled\",\n \"code\": \"<FormField label=\\\"Username\\\" id=\\\"username\\\" disabled value=\\\"johndoe\\\" />\"\n },\n {\n \"title\": \"Read-only\",\n \"code\": \"<FormField label=\\\"ID\\\" id=\\\"user-id\\\" readonly value=\\\"USR-12345\\\" />\"\n },\n {\n \"title\": \"Login Form\",\n \"code\": \"<script>\\n let email = $state('');\\n let password = $state('');\\n let errors = $state({ email: '', password: '' });\\n\\n function validate() {\\n errors = { email: '', password: '' };\\n\\n if (!email) errors.email = 'Email is required';\\n else if (!email.includes('@')) errors.email = 'Invalid email address';\\n\\n if (!password) errors.password = 'Password is required';\\n else if (password.length < 8) errors.password = 'Password must be at least 8 characters';\\n\\n return !errors.email && !errors.password;\\n }\\n</script>\\n\\n<form onsubmit|preventDefault={() => validate() && login()}>\\n <div class=\\\"space-y-4\\\">\\n <FormField\\n label=\\\"Email\\\"\\n id=\\\"email\\\"\\n type=\\\"email\\\"\\n required\\n autocomplete=\\\"email\\\"\\n bind:value={email}\\n error={errors.email}\\n />\\n <FormField\\n label=\\\"Password\\\"\\n id=\\\"password\\\"\\n type=\\\"password\\\"\\n required\\n autocomplete=\\\"current-password\\\"\\n bind:value={password}\\n error={errors.password}\\n />\\n <Button type=\\\"submit\\\" class=\\\"w-full\\\">Sign In</Button>\\n </div>\\n</form>\"\n },\n {\n \"title\": \"Contact Form\",\n \"code\": \"<form class=\\\"space-y-4\\\">\\n <FormField label=\\\"Full Name\\\" id=\\\"name\\\" required autocomplete=\\\"name\\\" bind:value={name} />\\n <FormField\\n label=\\\"Email\\\"\\n id=\\\"email\\\"\\n type=\\\"email\\\"\\n required\\n autocomplete=\\\"email\\\"\\n bind:value={email}\\n />\\n <FormField\\n label=\\\"Phone\\\"\\n id=\\\"phone\\\"\\n type=\\\"tel\\\"\\n autocomplete=\\\"tel\\\"\\n bind:value={phone}\\n hint=\\\"Optional\\\"\\n />\\n <FormField\\n label=\\\"Message\\\"\\n id=\\\"message\\\"\\n type=\\\"textarea\\\"\\n rows={5}\\n required\\n bind:value={message}\\n hint=\\\"Please describe your inquiry in detail\\\"\\n />\\n <Button type=\\\"submit\\\">Send Message</Button>\\n</form>\"\n },\n {\n \"title\": \"Controlled Field\",\n \"code\": \"<script>\\n let value = $state('');\\n\\n function handleChange(newValue: string) {\\n // Normalize phone number\\n value = newValue.replace(/\\\\D/g, '').slice(0, 10);\\n }\\n</script>\\n\\n<FormField\\n label=\\\"Phone\\\"\\n id=\\\"phone\\\"\\n type=\\\"tel\\\"\\n {value}\\n onValueChange={handleChange}\\n hint=\\\"10 digits only\\\"\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"Label\",\n \"Textarea\"\n ]\n },\n {\n \"name\": \"FormPageLayout\",\n \"description\": \"Specialized layout for form pages with optional sidebar\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Page title (h1)\"\n },\n {\n \"name\": \"description\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Page description text\"\n },\n {\n \"name\": \"helpText\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Footer help text (supports HTML)\"\n },\n {\n \"name\": \"showNotices\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Show notices section\"\n },\n {\n \"name\": \"sageBackground\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Use sage green background\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Main form content\"\n },\n {\n \"name\": \"notices\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Notices content\"\n },\n {\n \"name\": \"sidebar\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Sidebar content\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<FormPageLayout\\n title=\\\"Contact Us\\\"\\n description=\\\"Fill out the form below and we'll get back to you within 24 hours.\\\"\\n>\\n <form class=\\\"space-y-4\\\">\\n <Input label=\\\"Name\\\" required />\\n <Input label=\\\"Email\\\" type=\\\"email\\\" required />\\n <Textarea label=\\\"Message\\\" required />\\n <Button type=\\\"submit\\\">Send Message</Button>\\n </form>\\n</FormPageLayout>\"\n },\n {\n \"title\": \"Contact Form\",\n \"code\": \"<FormPageLayout\\n title=\\\"Get in Touch\\\"\\n description=\\\"We'd love to hear from you. Send us a message and we'll respond as soon as possible.\\\"\\n helpText=\\\"By submitting this form, you agree to our <a href='/privacy'>Privacy Policy</a>.\\\"\\n>\\n {#snippet sidebar()}\\n <div class=\\\"space-y-6\\\">\\n <Card>\\n <Card.Header>\\n <Card.Title>Contact Info</Card.Title>\\n </Card.Header>\\n <Card.Content class=\\\"space-y-3\\\">\\n <p class=\\\"text-sm\\\">\\n <strong>Email:</strong><br />\\n support@example.com\\n </p>\\n <p class=\\\"text-sm\\\">\\n <strong>Phone:</strong><br />\\n (555) 123-4567\\n </p>\\n </Card.Content>\\n </Card>\\n </div>\\n {/snippet}\\n\\n <Card>\\n <Card.Content class=\\\"pt-6\\\">\\n <form class=\\\"space-y-4\\\">\\n <div class=\\\"grid grid-cols-2 gap-4\\\">\\n <Input label=\\\"First Name\\\" required />\\n <Input label=\\\"Last Name\\\" required />\\n </div>\\n <Input label=\\\"Email\\\" type=\\\"email\\\" required />\\n <Input label=\\\"Phone\\\" type=\\\"tel\\\" />\\n <Select label=\\\"Subject\\\" required>\\n <option value=\\\"\\\">Select a topic...</option>\\n <option value=\\\"sales\\\">Sales Inquiry</option>\\n <option value=\\\"support\\\">Technical Support</option>\\n <option value=\\\"other\\\">Other</option>\\n </Select>\\n <Textarea label=\\\"Message\\\" rows={5} required />\\n <Button type=\\\"submit\\\" class=\\\"w-full\\\">Send Message</Button>\\n </form>\\n </Card.Content>\\n </Card>\\n</FormPageLayout>\"\n },\n {\n \"title\": \"Application Form\",\n \"code\": \"<FormPageLayout\\n title=\\\"Apply Now\\\"\\n description=\\\"Complete your application in just a few minutes.\\\"\\n sageBackground\\n>\\n {#snippet notices()}\\n <Alert variant=\\\"info\\\" class=\\\"mb-0\\\">\\n <strong>Save your progress:</strong> Your application will be saved automatically.\\n </Alert>\\n {/snippet}\\n\\n {#snippet sidebar()}\\n <div class=\\\"space-y-4\\\">\\n <Card>\\n <Card.Header>\\n <Card.Title>Progress</Card.Title>\\n </Card.Header>\\n <Card.Content>\\n <div class=\\\"space-y-2\\\">\\n <div class=\\\"flex justify-between text-sm\\\">\\n <span>Personal Info</span>\\n <Badge variant=\\\"success\\\">Complete</Badge>\\n </div>\\n <div class=\\\"flex justify-between text-sm\\\">\\n <span>Employment</span>\\n <Badge variant=\\\"warning\\\">In Progress</Badge>\\n </div>\\n <div class=\\\"flex justify-between text-sm\\\">\\n <span>Documents</span>\\n <Badge variant=\\\"outline\\\">Not Started</Badge>\\n </div>\\n </div>\\n </Card.Content>\\n </Card>\\n\\n <Card>\\n <Card.Header>\\n <Card.Title>Need Help?</Card.Title>\\n </Card.Header>\\n <Card.Content>\\n <p class=\\\"text-sm text-muted-foreground mb-4\\\">\\n Our team is here to assist you with your application.\\n </p>\\n <Button variant=\\\"outline\\\" class=\\\"w-full\\\">Chat with Us</Button>\\n </Card.Content>\\n </Card>\\n </div>\\n {/snippet}\\n\\n <Card>\\n <Card.Content class=\\\"pt-6\\\">\\n <!-- Multi-step form content -->\\n </Card.Content>\\n </Card>\\n</FormPageLayout>\"\n }\n ],\n \"relatedComponents\": [\n \"Card\",\n \"Alert\",\n \"Input\",\n \"PageHeader\"\n ]\n },\n {\n \"name\": \"Header\",\n \"description\": \"Flexible application header with navigation support\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"showMenuButton\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Show hamburger menu button\"\n },\n {\n \"name\": \"menuOpen\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Mobile menu state\"\n },\n {\n \"name\": \"onMenuClick\",\n \"type\": \"() => void\",\n \"required\": false,\n \"description\": \"Menu button callback\"\n },\n {\n \"name\": \"showCollapseButton\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Show sidebar collapse button\"\n },\n {\n \"name\": \"sidebarCollapsed\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Sidebar collapsed state\"\n },\n {\n \"name\": \"onCollapseClick\",\n \"type\": \"() => void\",\n \"required\": false,\n \"description\": \"Collapse button callback\"\n },\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Page title\"\n },\n {\n \"name\": \"start\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Content after buttons\"\n },\n {\n \"name\": \"nav\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Navigation content\"\n },\n {\n \"name\": \"end\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Right side content\"\n },\n {\n \"name\": \"mobileNav\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Mobile navigation drawer\"\n },\n {\n \"name\": \"mobileBreakpoint\",\n \"type\": \"'sm' | 'md' | 'lg'\",\n \"default\": \"'lg'\",\n \"required\": false,\n \"description\": \"Responsive breakpoint\"\n },\n {\n \"name\": \"strongBorder\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Thicker bottom border\"\n },\n {\n \"name\": \"backdropBlur\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Blur effect\"\n },\n {\n \"name\": \"elevated\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Higher z-index\"\n },\n {\n \"name\": \"maxWidth\",\n \"type\": \"'none' | 'sm' | ... | '7xl'\",\n \"default\": \"'none'\",\n \"required\": false,\n \"description\": \"Content max-width\"\n },\n {\n \"name\": \"search\",\n \"type\": \"HeaderSearchConfig\",\n \"required\": false,\n \"description\": \"Search configuration\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"mobileBreakpoint\",\n \"values\": [\n \"sm\",\n \"md\",\n \"lg\"\n ],\n \"default\": \"lg\"\n },\n {\n \"name\": \"maxWidth\",\n \"values\": [\n \"none\",\n \"sm\",\n \"7xl\"\n ],\n \"default\": \"none\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Header title=\\\"Dashboard\\\" />\"\n },\n {\n \"title\": \"E-commerce Header\",\n \"code\": \"<Header backdropBlur elevated maxWidth=\\\"7xl\\\">\\n {#snippet start()}\\n <a href=\\\"/\\\" class=\\\"font-bold text-xl\\\">Store</a>\\n {/snippet}\\n\\n {#snippet nav()}\\n <a href=\\\"/products\\\">Products</a>\\n <a href=\\\"/categories\\\">Categories</a>\\n <a href=\\\"/deals\\\">Deals</a>\\n {/snippet}\\n\\n {#snippet end()}\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\">\\n <SearchIcon />\\n </Button>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\">\\n <CartIcon />\\n <Badge class=\\\"absolute -top-1 -right-1\\\">3</Badge>\\n </Button>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\">\\n <UserIcon />\\n </Button>\\n {/snippet}\\n</Header>\"\n },\n {\n \"title\": \"Admin Header\",\n \"code\": \"<Header\\n showCollapseButton\\n sidebarCollapsed={!sidebarOpen}\\n onCollapseClick={() => (sidebarOpen = !sidebarOpen)}\\n title=\\\"Admin Panel\\\"\\n>\\n {#snippet end()}\\n <div class=\\\"flex items-center gap-4\\\">\\n <Badge variant=\\\"outline\\\">v2.1.0</Badge>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\">\\n <SettingsIcon />\\n </Button>\\n <DropdownMenu>\\n <DropdownMenu.Trigger>\\n <Avatar>AD</Avatar>\\n </DropdownMenu.Trigger>\\n <DropdownMenu.Content>\\n <DropdownMenu.Item>Profile</DropdownMenu.Item>\\n <DropdownMenu.Item>Settings</DropdownMenu.Item>\\n <DropdownMenu.Separator />\\n <DropdownMenu.Item>Log out</DropdownMenu.Item>\\n </DropdownMenu.Content>\\n </DropdownMenu>\\n </div>\\n {/snippet}\\n</Header>\"\n }\n ],\n \"relatedComponents\": [\n \"Sidebar\",\n \"DashboardLayout\",\n \"PublicLayout\"\n ]\n },\n {\n \"name\": \"Icon\",\n \"description\": \"A unified icon component with 50+ commonly used icons\",\n \"category\": \"core\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"name\",\n \"type\": \"IconName\",\n \"required\": false,\n \"description\": \"Name of the icon to display (required)\"\n },\n {\n \"name\": \"size\",\n \"type\": \"number\",\n \"default\": \"24\",\n \"required\": false,\n \"description\": \"Size of the icon in pixels\"\n },\n {\n \"name\": \"strokeWidth\",\n \"type\": \"number\",\n \"default\": \"2\",\n \"required\": false,\n \"description\": \"Stroke width for stroke-based icons\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Accessible label (renders as visually hidden text)\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Icon name=\\\"check\\\" />\\n<Icon name=\\\"close\\\" />\\n<Icon name=\\\"edit\\\" />\"\n },\n {\n \"title\": \"Navigation & Actions\",\n \"code\": \"<Icon name=\\\"close\\\" />\\n<!-- X mark -->\\n<Icon name=\\\"check\\\" />\\n<!-- Checkmark -->\\n<Icon name=\\\"plus\\\" />\\n<!-- Plus sign -->\\n<Icon name=\\\"minus\\\" />\\n<!-- Minus sign -->\\n<Icon name=\\\"menu\\\" />\\n<!-- Hamburger menu -->\\n<Icon name=\\\"search\\\" />\\n<!-- Magnifying glass -->\\n<Icon name=\\\"home\\\" />\\n<!-- House -->\\n<Icon name=\\\"settings\\\" />\\n<!-- Gear -->\\n<Icon name=\\\"refresh\\\" />\\n<!-- Refresh arrows -->\"\n },\n {\n \"title\": \"Arrows & Chevrons\",\n \"code\": \"<Icon name=\\\"chevron-down\\\" />\\n<Icon name=\\\"chevron-up\\\" />\\n<Icon name=\\\"chevron-left\\\" />\\n<Icon name=\\\"chevron-right\\\" />\\n<Icon name=\\\"arrow-left\\\" />\\n<Icon name=\\\"arrow-right\\\" />\\n<Icon name=\\\"external-link\\\" />\"\n },\n {\n \"title\": \"Editing & Files\",\n \"code\": \"<Icon name=\\\"edit\\\" />\\n<!-- Pencil -->\\n<Icon name=\\\"trash\\\" />\\n<!-- Trash can -->\\n<Icon name=\\\"copy\\\" />\\n<!-- Copy documents -->\\n<Icon name=\\\"download\\\" />\\n<!-- Download arrow -->\\n<Icon name=\\\"upload\\\" />\\n<!-- Upload arrow -->\\n<Icon name=\\\"file\\\" />\\n<!-- Document -->\\n<Icon name=\\\"folder\\\" />\\n<!-- Folder -->\\n<Icon name=\\\"image\\\" />\\n<!-- Image placeholder -->\"\n },\n {\n \"title\": \"Feedback & Status\",\n \"code\": \"<Icon name=\\\"info\\\" />\\n<!-- Info circle -->\\n<Icon name=\\\"alert-circle\\\" />\\n<!-- Alert circle -->\\n<Icon name=\\\"alert-triangle\\\" />\\n<!-- Warning triangle -->\\n<Icon name=\\\"loading\\\" />\\n<!-- Animated spinner -->\"\n },\n {\n \"title\": \"Communication\",\n \"code\": \"<Icon name=\\\"message\\\" />\\n<!-- Speech bubble -->\\n<Icon name=\\\"chat\\\" />\\n<!-- Simple chat bubble -->\\n<Icon name=\\\"mail\\\" />\\n<!-- Envelope -->\\n<Icon name=\\\"phone\\\" />\\n<!-- Phone -->\\n<Icon name=\\\"send\\\" />\\n<!-- Paper plane -->\"\n },\n {\n \"title\": \"User & Security\",\n \"code\": \"<Icon name=\\\"user\\\" />\\n<!-- User silhouette -->\\n<Icon name=\\\"lock\\\" />\\n<!-- Locked padlock -->\\n<Icon name=\\\"unlock\\\" />\\n<!-- Unlocked padlock -->\\n<Icon name=\\\"eye\\\" />\\n<!-- Visible eye -->\\n<Icon name=\\\"eye-off\\\" />\\n<!-- Hidden eye -->\"\n },\n {\n \"title\": \"UI & Interaction\",\n \"code\": \"<Icon name=\\\"more\\\" />\\n<!-- Vertical dots -->\\n<Icon name=\\\"more-horizontal\\\" />\\n<!-- Horizontal dots -->\\n<Icon name=\\\"grip\\\" />\\n<!-- Drag handle (6 dots) -->\\n<Icon name=\\\"filter\\\" />\\n<!-- Filter funnel -->\\n<Icon name=\\\"sort\\\" />\\n<!-- Sort arrows -->\\n<Icon name=\\\"link\\\" />\\n<!-- Chain link -->\"\n },\n {\n \"title\": \"Time & Date\",\n \"code\": \"<Icon name=\\\"calendar\\\" />\\n<!-- Calendar -->\\n<Icon name=\\\"clock\\\" />\\n<!-- Clock face -->\\n<Icon name=\\\"history\\\" />\\n<!-- Clock with history -->\"\n },\n {\n \"title\": \"Social & Favorites\",\n \"code\": \"<Icon name=\\\"star\\\" />\\n<!-- Star -->\\n<Icon name=\\\"heart\\\" />\\n<!-- Heart -->\\n<Icon name=\\\"bookmark\\\" />\\n<!-- Bookmark -->\"\n },\n {\n \"title\": \"Icon Buttons\",\n \"code\": \"<button class=\\\"p-2 rounded-md hover:bg-muted\\\">\\n <Icon name=\\\"close\\\" size={20} label=\\\"Close dialog\\\" />\\n</button>\\n\\n<button class=\\\"p-2 rounded-md hover:bg-muted\\\">\\n <Icon name=\\\"settings\\\" size={20} label=\\\"Open settings\\\" />\\n</button>\"\n },\n {\n \"title\": \"Button with Icon\",\n \"code\": \"<Button>\\n <Icon name=\\\"plus\\\" size={18} class=\\\"mr-2\\\" />\\n Add Item\\n</Button>\\n\\n<Button variant=\\\"destructive\\\">\\n <Icon name=\\\"trash\\\" size={18} class=\\\"mr-2\\\" />\\n Delete\\n</Button>\"\n },\n {\n \"title\": \"Status Indicators\",\n \"code\": \"<div class=\\\"flex items-center gap-2\\\">\\n <Icon name=\\\"check\\\" class=\\\"text-green-500\\\" size={20} />\\n <span>Completed</span>\\n</div>\\n\\n<div class=\\\"flex items-center gap-2\\\">\\n <Icon name=\\\"alert-circle\\\" class=\\\"text-yellow-500\\\" size={20} />\\n <span>Pending review</span>\\n</div>\\n\\n<div class=\\\"flex items-center gap-2\\\">\\n <Icon name=\\\"close\\\" class=\\\"text-red-500\\\" size={20} />\\n <span>Failed</span>\\n</div>\"\n },\n {\n \"title\": \"Loading State\",\n \"code\": \"<Button disabled>\\n <Icon name=\\\"loading\\\" size={18} class=\\\"mr-2\\\" />\\n Saving...\\n</Button>\"\n },\n {\n \"title\": \"Navigation Menu\",\n \"code\": \"<nav class=\\\"space-y-1\\\">\\n <a href=\\\"/\\\" class=\\\"flex items-center gap-3 px-3 py-2 rounded-md hover:bg-muted\\\">\\n <Icon name=\\\"home\\\" size={20} />\\n Home\\n </a>\\n <a href=\\\"/settings\\\" class=\\\"flex items-center gap-3 px-3 py-2 rounded-md hover:bg-muted\\\">\\n <Icon name=\\\"settings\\\" size={20} />\\n Settings\\n </a>\\n <a href=\\\"/profile\\\" class=\\\"flex items-center gap-3 px-3 py-2 rounded-md hover:bg-muted\\\">\\n <Icon name=\\\"user\\\" size={20} />\\n Profile\\n </a>\\n</nav>\"\n },\n {\n \"title\": \"Input with Icon\",\n \"code\": \"<div class=\\\"relative\\\">\\n <Icon\\n name=\\\"search\\\"\\n size={18}\\n class=\\\"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground\\\"\\n />\\n <Input class=\\\"pl-10\\\" placeholder=\\\"Search...\\\" />\\n</div>\"\n },\n {\n \"title\": \"Password Toggle\",\n \"code\": \"<script>\\n let showPassword = $state(false);\\n</script>\\n\\n<div class=\\\"relative\\\">\\n <Input type={showPassword ? 'text' : 'password'} />\\n <button\\n type=\\\"button\\\"\\n class=\\\"absolute right-3 top-1/2 -translate-y-1/2\\\"\\n onclick={() => (showPassword = !showPassword)}\\n >\\n <Icon\\n name={showPassword ? 'eye-off' : 'eye'}\\n size={18}\\n label={showPassword ? 'Hide password' : 'Show password'}\\n />\\n </button>\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"Button\",\n \"Spinner\"\n ]\n },\n {\n \"name\": \"Input\",\n \"description\": \"Text input field for single-line data entry with various input modes\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"type\",\n \"type\": \"string\",\n \"default\": \"'text'\",\n \"required\": false,\n \"description\": \"HTML input type\"\n },\n {\n \"name\": \"value\",\n \"type\": \"string | number\",\n \"default\": \"''\",\n \"required\": false,\n \"description\": \"Input value (bindable)\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the input\"\n },\n {\n \"name\": \"readonly\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Makes the input read-only\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Input name for forms\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Input ID for label association\"\n },\n {\n \"name\": \"autocomplete\",\n \"type\": \"AutoFill\",\n \"required\": false,\n \"description\": \"Browser autocomplete hint\"\n },\n {\n \"name\": \"inputmode\",\n \"type\": \"'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search'\",\n \"required\": false,\n \"description\": \"Mobile keyboard hint\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"inputmode\",\n \"values\": [\n \"none\",\n \"text\",\n \"tel\",\n \"url\",\n \"email\",\n \"numeric\",\n \"decimal\",\n \"search\"\n ]\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Input placeholder=\\\"Enter text...\\\" />\"\n },\n {\n \"title\": \"Text (Default)\",\n \"code\": \"<Input type=\\\"text\\\" placeholder=\\\"Enter name\\\" />\"\n },\n {\n \"title\": \"Email\",\n \"code\": \"<Input type=\\\"email\\\" placeholder=\\\"your@email.com\\\" autocomplete=\\\"email\\\" />\"\n },\n {\n \"title\": \"Password\",\n \"code\": \"<Input type=\\\"password\\\" placeholder=\\\"Enter password\\\" autocomplete=\\\"current-password\\\" />\"\n },\n {\n \"title\": \"Number\",\n \"code\": \"<Input type=\\\"number\\\" placeholder=\\\"0\\\" />\"\n },\n {\n \"title\": \"Search\",\n \"code\": \"<Input type=\\\"search\\\" placeholder=\\\"Search...\\\" />\"\n },\n {\n \"title\": \"Tel (Phone)\",\n \"code\": \"<Input type=\\\"tel\\\" placeholder=\\\"(555) 123-4567\\\" autocomplete=\\\"tel\\\" inputmode=\\\"tel\\\" />\"\n },\n {\n \"title\": \"URL\",\n \"code\": \"<Input type=\\\"url\\\" placeholder=\\\"https://example.com\\\" inputmode=\\\"url\\\" />\"\n },\n {\n \"title\": \"Disabled\",\n \"code\": \"<Input disabled value=\\\"Cannot edit\\\" />\"\n },\n {\n \"title\": \"Read-only\",\n \"code\": \"<Input readonly value=\\\"Read only value\\\" />\"\n },\n {\n \"title\": \"Required\",\n \"code\": \"<Input required placeholder=\\\"Required field\\\" />\"\n },\n {\n \"title\": \"Search Input\",\n \"code\": \"<div class=\\\"relative\\\">\\n <svg\\n class=\\\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\\\"\\n fill=\\\"none\\\"\\n viewBox=\\\"0 0 24 24\\\"\\n stroke=\\\"currentColor\\\"\\n >\\n <path\\n stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\"\\n stroke-width=\\\"2\\\"\\n d=\\\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\\\"\\n />\\n </svg>\\n <Input type=\\\"search\\\" placeholder=\\\"Search...\\\" class=\\\"pl-10\\\" />\\n</div>\"\n },\n {\n \"title\": \"Input with Button\",\n \"code\": \"<div class=\\\"flex gap-2\\\">\\n <Input placeholder=\\\"Enter email\\\" class=\\\"flex-1\\\" />\\n <Button>Subscribe</Button>\\n</div>\"\n },\n {\n \"title\": \"Custom Width\",\n \"code\": \"<Input class=\\\"w-64\\\" placeholder=\\\"Fixed width\\\" />\\n<Input class=\\\"max-w-sm\\\" placeholder=\\\"Max width\\\" />\"\n }\n ],\n \"relatedComponents\": [\n \"Label\",\n \"FormField\",\n \"Textarea\"\n ]\n },\n {\n \"name\": \"Label\",\n \"description\": \"Accessible label component for form inputs\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"for\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"ID of the associated input element\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Applies disabled styling\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Label for=\\\"email\\\">Email Address</Label>\"\n },\n {\n \"title\": \"Disabled\",\n \"description\": \"When the associated input is disabled, apply matching styles to the label:\",\n \"code\": \"<div class=\\\"space-y-2\\\">\\n <Label for=\\\"disabled-input\\\" disabled>Disabled Field</Label>\\n <Input id=\\\"disabled-input\\\" disabled value=\\\"Cannot edit\\\" />\\n</div>\"\n },\n {\n \"title\": \"With Peer Styling\",\n \"description\": \"Labels automatically style differently when their peer input is disabled:\",\n \"code\": \"<div class=\\\"grid gap-2\\\">\\n <Input id=\\\"peer-demo\\\" disabled class=\\\"peer\\\" />\\n <Label for=\\\"peer-demo\\\">This label fades when input is disabled</Label>\\n</div>\"\n },\n {\n \"title\": \"Visually Hidden Label\",\n \"description\": \"For inputs where a visible label is not desired (like search), use screen-reader-only styling:\",\n \"code\": \"<Label for=\\\"search\\\" class=\\\"sr-only\\\">Search</Label>\\n<Input id=\\\"search\\\" type=\\\"search\\\" placeholder=\\\"Search...\\\" />\"\n },\n {\n \"title\": \"Form Field Group\",\n \"code\": \"<div class=\\\"space-y-4\\\">\\n <div class=\\\"space-y-2\\\">\\n <Label for=\\\"first-name\\\">First Name</Label>\\n <Input id=\\\"first-name\\\" />\\n </div>\\n <div class=\\\"space-y-2\\\">\\n <Label for=\\\"last-name\\\">Last Name</Label>\\n <Input id=\\\"last-name\\\" />\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Horizontal Layout\",\n \"code\": \"<div class=\\\"flex items-center gap-4\\\">\\n <Label for=\\\"inline-input\\\" class=\\\"shrink-0 w-24\\\">Name</Label>\\n <Input id=\\\"inline-input\\\" class=\\\"flex-1\\\" />\\n</div>\"\n },\n {\n \"title\": \"With Checkbox\",\n \"code\": \"<script>\\n import { Label, Checkbox } from '@classic-homes/theme-svelte';\\n</script>\\n\\n<div class=\\\"flex items-center gap-2\\\">\\n <Checkbox id=\\\"terms\\\" />\\n <Label for=\\\"terms\\\">I agree to the terms and conditions</Label>\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"Checkbox\",\n \"FormField\"\n ]\n },\n {\n \"name\": \"LoadingLogo\",\n \"description\": \"Animated brand logo for loading states\",\n \"category\": \"branding\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"width\",\n \"type\": \"number\",\n \"default\": \"40\",\n \"required\": false,\n \"description\": \"Width in pixels\"\n },\n {\n \"name\": \"height\",\n \"type\": \"number\",\n \"default\": \"40\",\n \"required\": false,\n \"description\": \"Height in pixels\"\n },\n {\n \"name\": \"loading\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Enable loading animation\"\n },\n {\n \"name\": \"variant\",\n \"type\": \"'light' | 'dark'\",\n \"default\": \"'dark'\",\n \"required\": false,\n \"description\": \"Color variant\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"light\",\n \"dark\"\n ],\n \"default\": \"dark\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<LoadingLogo loading />\"\n },\n {\n \"title\": \"Dark (Default)\",\n \"description\": \"For light backgrounds:\",\n \"code\": \"<LoadingLogo variant=\\\"dark\\\" loading />\"\n },\n {\n \"title\": \"Light\",\n \"description\": \"For dark backgrounds:\",\n \"code\": \"<div class=\\\"bg-gray-900 p-8\\\">\\n <LoadingLogo variant=\\\"light\\\" loading />\\n</div>\"\n },\n {\n \"title\": \"Splash Screen\",\n \"code\": \"{#if loading}\\n <div class=\\\"fixed inset-0 flex items-center justify-center bg-background\\\">\\n <div class=\\\"flex flex-col items-center gap-4\\\">\\n <LoadingLogo width={64} height={64} loading />\\n <p class=\\\"text-sm text-muted-foreground\\\">Loading...</p>\\n </div>\\n </div>\\n{/if}\"\n },\n {\n \"title\": \"Page Loading\",\n \"code\": \"{#if pageLoading}\\n <div class=\\\"flex items-center justify-center min-h-[400px]\\\">\\n <LoadingLogo loading />\\n </div>\\n{:else}\\n <main>{pageContent}</main>\\n{/if}\"\n },\n {\n \"title\": \"Dark Background Splash\",\n \"code\": \"<div class=\\\"fixed inset-0 flex items-center justify-center bg-gray-900\\\">\\n <LoadingLogo variant=\\\"light\\\" width={80} height={80} loading />\\n</div>\"\n },\n {\n \"title\": \"Button Loading State\",\n \"code\": \"<Button disabled={submitting}>\\n {#if submitting}\\n <LoadingLogo width={20} height={20} loading class=\\\"mr-2\\\" />\\n Saving...\\n {:else}\\n Save\\n {/if}\\n</Button>\"\n },\n {\n \"title\": \"Initial App Load\",\n \"code\": \"<!-- +layout.svelte -->\\n<script>\\n let appReady = $state(false);\\n\\n onMount(() => {\\n // Initialize app\\n setTimeout(() => (appReady = true), 1500);\\n });\\n</script>\\n\\n{#if !appReady}\\n <div class=\\\"fixed inset-0 z-50 flex items-center justify-center bg-background\\\">\\n <LoadingLogo width={64} height={64} loading />\\n </div>\\n{/if}\\n\\n<div class={appReady ? '' : 'hidden'}>\\n <slot />\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"LogoMain\",\n \"Spinner\",\n \"Skeleton\"\n ]\n },\n {\n \"name\": \"LogoMain\",\n \"description\": \"Brand logo component with multiple layouts and variants\",\n \"category\": \"branding\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"variant\",\n \"type\": \"'horizontal' | 'stacked' | 'icon'\",\n \"default\": \"'horizontal'\",\n \"required\": false,\n \"description\": \"Layout variant\"\n },\n {\n \"name\": \"color\",\n \"type\": \"'dark' | 'light' | 'mono-dark' | 'mono-light'\",\n \"default\": \"'dark'\",\n \"required\": false,\n \"description\": \"Color scheme\"\n },\n {\n \"name\": \"subtitle\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Optional subtitle text\"\n },\n {\n \"name\": \"environment\",\n \"type\": \"'local' | 'dev' | 'demo'\",\n \"required\": false,\n \"description\": \"Environment indicator\"\n },\n {\n \"name\": \"size\",\n \"type\": \"'sm' | 'md' | 'lg'\",\n \"default\": \"'md'\",\n \"required\": false,\n \"description\": \"Size preset\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n },\n {\n \"name\": \"ariaLabel\",\n \"type\": \"string\",\n \"default\": \"'Classic Homes'\",\n \"required\": false,\n \"description\": \"Accessible label\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"horizontal\",\n \"stacked\",\n \"icon\"\n ],\n \"default\": \"horizontal\"\n },\n {\n \"name\": \"color\",\n \"values\": [\n \"dark\",\n \"light\",\n \"mono-dark\",\n \"mono-light\"\n ],\n \"default\": \"dark\"\n },\n {\n \"name\": \"environment\",\n \"values\": [\n \"local\",\n \"dev\",\n \"demo\"\n ]\n },\n {\n \"name\": \"size\",\n \"values\": [\n \"sm\",\n \"md\",\n \"lg\"\n ],\n \"default\": \"md\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<LogoMain />\"\n },\n {\n \"title\": \"Horizontal (Default)\",\n \"description\": \"Logo icon and text side by side:\",\n \"code\": \"<LogoMain variant=\\\"horizontal\\\" />\"\n },\n {\n \"title\": \"Stacked\",\n \"description\": \"Logo icon above text:\",\n \"code\": \"<LogoMain variant=\\\"stacked\\\" />\"\n },\n {\n \"title\": \"Icon Only\",\n \"description\": \"Just the logo icon:\",\n \"code\": \"<LogoMain variant=\\\"icon\\\" />\"\n },\n {\n \"title\": \"Dark (Default)\",\n \"description\": \"For light backgrounds:\",\n \"code\": \"<div class=\\\"bg-white p-4\\\">\\n <LogoMain color=\\\"dark\\\" />\\n</div>\"\n },\n {\n \"title\": \"Light\",\n \"description\": \"For dark backgrounds:\",\n \"code\": \"<div class=\\\"bg-gray-900 p-4\\\">\\n <LogoMain color=\\\"light\\\" />\\n</div>\"\n },\n {\n \"title\": \"Mono Dark\",\n \"description\": \"Navy monochrome for light backgrounds:\",\n \"code\": \"<LogoMain color=\\\"mono-dark\\\" />\"\n },\n {\n \"title\": \"Mono Light\",\n \"description\": \"White monochrome for dark backgrounds:\",\n \"code\": \"<div class=\\\"bg-primary p-4\\\">\\n <LogoMain color=\\\"mono-light\\\" />\\n</div>\"\n },\n {\n \"title\": \"Header Logo\",\n \"code\": \"<header class=\\\"flex items-center h-16 px-4 border-b\\\">\\n <a href=\\\"/\\\">\\n <LogoMain variant=\\\"horizontal\\\" size=\\\"md\\\" ariaLabel=\\\"\\\" />\\n </a>\\n</header>\"\n },\n {\n \"title\": \"Footer Logo\",\n \"code\": \"<footer class=\\\"bg-gray-900 py-8\\\">\\n <LogoMain color=\\\"light\\\" size=\\\"sm\\\" />\\n</footer>\"\n },\n {\n \"title\": \"Login Page Logo\",\n \"code\": \"<div class=\\\"flex flex-col items-center py-8\\\">\\n <LogoMain variant=\\\"stacked\\\" size=\\\"lg\\\" subtitle=\\\"MY HOME\\\" />\\n <h1 class=\\\"mt-4 text-2xl font-bold\\\">Sign In</h1>\\n</div>\"\n },\n {\n \"title\": \"Sidebar Collapsed Logo\",\n \"code\": \"<LogoMain variant={sidebarCollapsed ? 'icon' : 'horizontal'} size=\\\"md\\\" />\"\n },\n {\n \"title\": \"Development Environment\",\n \"code\": \"<LogoMain environment={import.meta.env.MODE === 'production' ? undefined : 'dev'} />\"\n }\n ],\n \"relatedComponents\": [\n \"LoadingLogo\",\n \"Header\",\n \"Sidebar\"\n ]\n },\n {\n \"name\": \"MultiSelect\",\n \"description\": \"Select multiple options from a dropdown list\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"string[]\",\n \"default\": \"[]\",\n \"required\": false,\n \"description\": \"Selected values (bindable)\"\n },\n {\n \"name\": \"options\",\n \"type\": \"SelectOption[]\",\n \"default\": \"Required\",\n \"required\": false,\n \"description\": \"Array of options\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the select\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"maxItems\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"Maximum selections allowed\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string[]) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let selected = $state([]);\\n\\n const options = [\\n { value: 'react', label: 'React' },\\n { value: 'svelte', label: 'Svelte' },\\n { value: 'vue', label: 'Vue' },\\n { value: 'angular', label: 'Angular' },\\n ];\\n</script>\\n\\n<MultiSelect {options} bind:value={selected} placeholder=\\\"Select frameworks...\\\" />\"\n },\n {\n \"title\": \"Tag Selector\",\n \"code\": \"<script>\\n let tags = $state([]);\\n const tagOptions = [\\n { value: 'urgent', label: 'Urgent' },\\n { value: 'bug', label: 'Bug' },\\n { value: 'feature', label: 'Feature' },\\n { value: 'docs', label: 'Documentation' },\\n ];\\n</script>\\n\\n<MultiSelect label=\\\"Tags\\\" options={tagOptions} bind:value={tags} placeholder=\\\"Add tags...\\\" />\"\n },\n {\n \"title\": \"Team Members\",\n \"code\": \"<MultiSelect\\n label=\\\"Assign to\\\"\\n options={teamMembers}\\n bind:value={assignees}\\n maxItems={5}\\n placeholder=\\\"Select team members...\\\"\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"Select\",\n \"Combobox\",\n \"Checkbox\"\n ]\n },\n {\n \"name\": \"NumberInput\",\n \"description\": \"Numeric input with increment/decrement controls\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"number\",\n \"default\": \"0\",\n \"required\": false,\n \"description\": \"Current value (bindable)\"\n },\n {\n \"name\": \"min\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"Minimum allowed value\"\n },\n {\n \"name\": \"max\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"Maximum allowed value\"\n },\n {\n \"name\": \"step\",\n \"type\": \"number\",\n \"default\": \"1\",\n \"required\": false,\n \"description\": \"Increment/decrement step\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the input\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Label text\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: number) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let quantity = $state(1);\\n</script>\\n\\n<NumberInput bind:value={quantity} />\"\n },\n {\n \"title\": \"Quantity Selector\",\n \"code\": \"<NumberInput label=\\\"Quantity\\\" bind:value={quantity} min={1} max={10} />\"\n },\n {\n \"title\": \"Price Input\",\n \"code\": \"<NumberInput label=\\\"Price\\\" bind:value={price} min={0} step={0.01} />\"\n },\n {\n \"title\": \"Age Input\",\n \"code\": \"<NumberInput label=\\\"Age\\\" bind:value={age} min={0} max={150} />\"\n }\n ],\n \"relatedComponents\": [\n \"Slider\",\n \"Input\"\n ]\n },\n {\n \"name\": \"OTPInput\",\n \"description\": \"One-time password input for verification codes\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"default\": \"''\",\n \"required\": false,\n \"description\": \"Current value (bindable)\"\n },\n {\n \"name\": \"length\",\n \"type\": \"number\",\n \"default\": \"6\",\n \"required\": false,\n \"description\": \"Number of digits\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the input\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message\"\n },\n {\n \"name\": \"autoFocus\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Auto-focus first input\"\n },\n {\n \"name\": \"onComplete\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when all digits entered\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let code = $state('');\\n</script>\\n\\n<OTPInput bind:value={code} />\"\n },\n {\n \"title\": \"Verification Flow\",\n \"code\": \"<script>\\n let code = $state('');\\n let error = $state('');\\n let verifying = $state(false);\\n\\n async function handleComplete(value: string) {\\n verifying = true;\\n error = '';\\n\\n try {\\n await verifyOTP(value);\\n // Success - redirect\\n } catch {\\n error = 'Invalid verification code';\\n code = '';\\n } finally {\\n verifying = false;\\n }\\n }\\n</script>\\n\\n<div class=\\\"text-center space-y-4\\\">\\n <p class=\\\"text-muted-foreground\\\">Enter the 6-digit code sent to your email</p>\\n <OTPInput bind:value={code} {error} autoFocus onComplete={handleComplete} />\\n {#if verifying}\\n <Spinner label=\\\"Verifying...\\\" />\\n {/if}\\n</div>\"\n },\n {\n \"title\": \"Two-Factor Authentication\",\n \"code\": \"<OTPInput bind:value={twoFactorCode} length={6} autoFocus onComplete={verify2FA} />\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"FormField\"\n ]\n },\n {\n \"name\": \"PageHeader\",\n \"description\": \"Hero and page title component with multiple variants\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Main title text\"\n },\n {\n \"name\": \"subtitle\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Optional subtitle\"\n },\n {\n \"name\": \"variant\",\n \"type\": \"'default' | 'hero' | 'centered' | 'form'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Visual variant\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n },\n {\n \"name\": \"actions\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Action buttons\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"default\",\n \"hero\",\n \"centered\",\n \"form\"\n ],\n \"default\": \"default\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<PageHeader title=\\\"Welcome\\\" subtitle=\\\"Get started with our platform\\\" />\"\n },\n {\n \"title\": \"Default\",\n \"description\": \"Standard page header:\",\n \"code\": \"<PageHeader title=\\\"Dashboard\\\" subtitle=\\\"Welcome back, John\\\" />\"\n },\n {\n \"title\": \"Hero\",\n \"description\": \"Bold, uppercase styling for landing pages:\",\n \"code\": \"<PageHeader\\n title=\\\"Build Something Great\\\"\\n subtitle=\\\"The modern way to create applications\\\"\\n variant=\\\"hero\\\"\\n/>\"\n },\n {\n \"title\": \"Centered\",\n \"description\": \"Centered text for content pages:\",\n \"code\": \"<PageHeader\\n title=\\\"About Us\\\"\\n subtitle=\\\"Learn more about our mission and values\\\"\\n variant=\\\"centered\\\"\\n/>\"\n },\n {\n \"title\": \"Form\",\n \"description\": \"Light, centered styling for form pages:\",\n \"code\": \"<PageHeader title=\\\"Create Account\\\" subtitle=\\\"Join thousands of users today\\\" variant=\\\"form\\\" />\"\n },\n {\n \"title\": \"Landing Page Hero\",\n \"code\": \"<section class=\\\"py-24 bg-gradient-to-b from-primary/5 to-background\\\">\\n <div class=\\\"container mx-auto px-4\\\">\\n <PageHeader\\n title=\\\"Ship Faster\\\"\\n subtitle=\\\"The complete toolkit for modern web development\\\"\\n variant=\\\"hero\\\"\\n >\\n {#snippet actions()}\\n <Button size=\\\"lg\\\">Get Started Free</Button>\\n <Button size=\\\"lg\\\" variant=\\\"outline\\\">View Demo</Button>\\n {/snippet}\\n </PageHeader>\\n </div>\\n</section>\"\n },\n {\n \"title\": \"Dashboard Page\",\n \"code\": \"<PageHeader title=\\\"Analytics\\\" subtitle=\\\"Track your performance metrics\\\">\\n {#snippet actions()}\\n <Button variant=\\\"outline\\\">Export</Button>\\n <Button>Add Widget</Button>\\n {/snippet}\\n</PageHeader>\"\n },\n {\n \"title\": \"Content Page\",\n \"code\": \"<div class=\\\"py-16\\\">\\n <PageHeader\\n title=\\\"Documentation\\\"\\n subtitle=\\\"Everything you need to build amazing applications with our component library.\\\"\\n variant=\\\"centered\\\"\\n >\\n {#snippet actions()}\\n <Button>Get Started</Button>\\n <Button variant=\\\"outline\\\">Browse Components</Button>\\n {/snippet}\\n </PageHeader>\\n</div>\"\n },\n {\n \"title\": \"Form Page\",\n \"code\": \"<PageHeader\\n title=\\\"Contact Us\\\"\\n subtitle=\\\"Fill out the form below and we'll get back to you within 24 hours.\\\"\\n variant=\\\"form\\\"\\n/>\\n\\n<form class=\\\"max-w-md mx-auto mt-8\\\">\\n <!-- Form fields -->\\n</form>\"\n },\n {\n \"title\": \"Settings Page\",\n \"code\": \"<PageHeader\\n title=\\\"Account Settings\\\"\\n subtitle=\\\"Manage your account preferences and security settings\\\"\\n>\\n {#snippet actions()}\\n <Button variant=\\\"outline\\\">Cancel</Button>\\n <Button>Save Changes</Button>\\n {/snippet}\\n</PageHeader>\\n\\n<Separator class=\\\"my-6\\\" />\\n\\n<div class=\\\"space-y-6\\\">\\n <Section title=\\\"Profile\\\">...</Section>\\n <Section title=\\\"Security\\\">...</Section>\\n</div>\"\n },\n {\n \"title\": \"Blog Post\",\n \"code\": \"<article>\\n <PageHeader\\n title=\\\"Getting Started with Svelte 5\\\"\\n subtitle=\\\"Learn the fundamentals of Svelte's new runes system\\\"\\n variant=\\\"centered\\\"\\n />\\n\\n <div class=\\\"prose mx-auto mt-8\\\">\\n <!-- Article content -->\\n </div>\\n</article>\"\n }\n ],\n \"relatedComponents\": [\n \"Section\",\n \"Button\",\n \"Separator\"\n ]\n },\n {\n \"name\": \"PublicLayout\",\n \"description\": \"Layout for public-facing marketing and content pages\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"navigation\",\n \"type\": \"NavItem[]\",\n \"default\": \"[]\",\n \"required\": false,\n \"description\": \"Header navigation items\"\n },\n {\n \"name\": \"showFooter\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Whether to show footer\"\n },\n {\n \"name\": \"footerLinks\",\n \"type\": \"NavSection[]\",\n \"default\": \"[]\",\n \"required\": false,\n \"description\": \"Footer link sections\"\n },\n {\n \"name\": \"copyright\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Footer copyright text\"\n },\n {\n \"name\": \"logo\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom logo\"\n },\n {\n \"name\": \"logoSubtitle\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Subtitle for default logo\"\n },\n {\n \"name\": \"logoEnvironment\",\n \"type\": \"'local' | 'dev' | 'demo'\",\n \"required\": false,\n \"description\": \"Environment indicator\"\n },\n {\n \"name\": \"headerEnd\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Content at end of header\"\n },\n {\n \"name\": \"strongFooterBorder\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Strong accent border on footer\"\n },\n {\n \"name\": \"darkFooter\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Dark footer variant\"\n },\n {\n \"name\": \"headerSearch\",\n \"type\": \"HeaderSearchConfig\",\n \"required\": false,\n \"description\": \"Header search config\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Main content\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"logoEnvironment\",\n \"values\": [\n \"local\",\n \"dev\",\n \"demo\"\n ]\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n const navigation = [\\n { id: 'home', name: 'Home', href: '/', active: true },\\n { id: 'about', name: 'About', href: '/about' },\\n { id: 'contact', name: 'Contact', href: '/contact' },\\n ];\\n</script>\\n\\n<PublicLayout {navigation}>\\n <section class=\\\"py-20\\\">\\n <h1>Welcome</h1>\\n </section>\\n</PublicLayout>\"\n },\n {\n \"title\": \"Landing Page\",\n \"code\": \"<PublicLayout {navigation} {footerLinks}>\\n <section class=\\\"py-24 text-center\\\">\\n <h1 class=\\\"text-5xl font-bold\\\">Build Better Products</h1>\\n <p class=\\\"mt-4 text-xl text-muted-foreground\\\">The modern way to build applications.</p>\\n <div class=\\\"mt-8 flex justify-center gap-4\\\">\\n <Button size=\\\"lg\\\">Get Started</Button>\\n <Button size=\\\"lg\\\" variant=\\\"outline\\\">Learn More</Button>\\n </div>\\n </section>\\n</PublicLayout>\"\n },\n {\n \"title\": \"Documentation Site\",\n \"code\": \"<PublicLayout\\n {navigation}\\n showFooter={false}\\n headerSearch={{ enabled: true, placeholder: 'Search docs...' }}\\n>\\n <div class=\\\"flex\\\">\\n <aside class=\\\"w-64\\\">Sidebar</aside>\\n <main class=\\\"flex-1\\\">Documentation content</main>\\n </div>\\n</PublicLayout>\"\n }\n ],\n \"relatedComponents\": [\n \"Header\",\n \"Footer\",\n \"DashboardLayout\"\n ]\n },\n {\n \"name\": \"RadioGroup\",\n \"description\": \"Radio button group for single selection from multiple options\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"default\": \"''\",\n \"required\": false,\n \"description\": \"Current selected value (bindable)\"\n },\n {\n \"name\": \"options\",\n \"type\": \"RadioOption[]\",\n \"default\": \"Required\",\n \"required\": false,\n \"description\": \"Array of radio options\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Group label\"\n },\n {\n \"name\": \"orientation\",\n \"type\": \"'horizontal' | 'vertical'\",\n \"default\": \"'vertical'\",\n \"required\": false,\n \"description\": \"Layout direction\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables all options\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Name attribute for forms\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message to display\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"orientation\",\n \"values\": [\n \"horizontal\",\n \"vertical\"\n ],\n \"default\": \"vertical\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let value = $state('');\\n\\n const options = [\\n { value: 'option1', label: 'Option 1' },\\n { value: 'option2', label: 'Option 2' },\\n { value: 'option3', label: 'Option 3' },\\n ];\\n</script>\\n\\n<RadioGroup {options} bind:value />\"\n },\n {\n \"title\": \"Vertical (Default)\",\n \"code\": \"<RadioGroup {options} bind:value orientation=\\\"vertical\\\" />\"\n },\n {\n \"title\": \"Horizontal\",\n \"code\": \"<RadioGroup {options} bind:value orientation=\\\"horizontal\\\" />\"\n },\n {\n \"title\": \"Shipping Method\",\n \"code\": \"<script>\\n let shipping = $state('');\\n\\n const shippingOptions = [\\n {\\n value: 'standard',\\n label: 'Standard',\\n description: '5-7 business days - Free',\\n },\\n {\\n value: 'express',\\n label: 'Express',\\n description: '2-3 business days - $9.99',\\n },\\n {\\n value: 'overnight',\\n label: 'Overnight',\\n description: 'Next business day - $24.99',\\n },\\n ];\\n</script>\\n\\n<RadioGroup\\n label=\\\"Shipping Method\\\"\\n name=\\\"shipping\\\"\\n options={shippingOptions}\\n bind:value={shipping}\\n required\\n/>\"\n },\n {\n \"title\": \"Payment Method\",\n \"code\": \"<RadioGroup\\n label=\\\"Payment Method\\\"\\n name=\\\"payment\\\"\\n options={[\\n { value: 'card', label: 'Credit Card' },\\n { value: 'paypal', label: 'PayPal' },\\n { value: 'bank', label: 'Bank Transfer' },\\n ]}\\n bind:value={payment}\\n orientation=\\\"horizontal\\\"\\n/>\"\n },\n {\n \"title\": \"Yes/No Question\",\n \"code\": \"<RadioGroup\\n label=\\\"Would you recommend this product?\\\"\\n name=\\\"recommend\\\"\\n options={[\\n { value: 'yes', label: 'Yes' },\\n { value: 'no', label: 'No' },\\n ]}\\n bind:value={recommend}\\n orientation=\\\"horizontal\\\"\\n/>\"\n },\n {\n \"title\": \"Survey Scale\",\n \"code\": \"<RadioGroup\\n label=\\\"How satisfied are you?\\\"\\n name=\\\"satisfaction\\\"\\n options={[\\n { value: '1', label: 'Very Dissatisfied' },\\n { value: '2', label: 'Dissatisfied' },\\n { value: '3', label: 'Neutral' },\\n { value: '4', label: 'Satisfied' },\\n { value: '5', label: 'Very Satisfied' },\\n ]}\\n bind:value={satisfaction}\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"Checkbox\",\n \"Select\",\n \"Switch\"\n ]\n },\n {\n \"name\": \"Section\",\n \"description\": \"Content section container for page organization\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Section title (h2)\"\n },\n {\n \"name\": \"description\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Description text\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Section content\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Section>\\n <p>Your content here</p>\\n</Section>\"\n },\n {\n \"title\": \"Settings Page\",\n \"code\": \"<div class=\\\"max-w-2xl mx-auto space-y-6\\\">\\n <Section title=\\\"Personal Information\\\" description=\\\"Update your personal details.\\\">\\n <form class=\\\"space-y-4\\\">\\n <div class=\\\"grid grid-cols-2 gap-4\\\">\\n <Input label=\\\"First Name\\\" value=\\\"John\\\" />\\n <Input label=\\\"Last Name\\\" value=\\\"Doe\\\" />\\n </div>\\n <Input label=\\\"Email\\\" type=\\\"email\\\" value=\\\"john@example.com\\\" />\\n <Input label=\\\"Phone\\\" type=\\\"tel\\\" />\\n <Button>Save Changes</Button>\\n </form>\\n </Section>\\n\\n <Section title=\\\"Password\\\" description=\\\"Update your password regularly for security.\\\">\\n <form class=\\\"space-y-4\\\">\\n <Input label=\\\"Current Password\\\" type=\\\"password\\\" />\\n <Input label=\\\"New Password\\\" type=\\\"password\\\" />\\n <Input label=\\\"Confirm Password\\\" type=\\\"password\\\" />\\n <Button>Update Password</Button>\\n </form>\\n </Section>\\n\\n <Section title=\\\"Preferences\\\">\\n <div class=\\\"space-y-4\\\">\\n <Select label=\\\"Language\\\">\\n <option value=\\\"en\\\">English</option>\\n <option value=\\\"es\\\">Spanish</option>\\n <option value=\\\"fr\\\">French</option>\\n </Select>\\n <Select label=\\\"Timezone\\\">\\n <option value=\\\"utc\\\">UTC</option>\\n <option value=\\\"est\\\">Eastern Time</option>\\n <option value=\\\"pst\\\">Pacific Time</option>\\n </Select>\\n </div>\\n </Section>\\n</div>\"\n },\n {\n \"title\": \"Dashboard Sections\",\n \"code\": \"<div class=\\\"space-y-6\\\">\\n <Section title=\\\"Quick Actions\\\">\\n <div class=\\\"flex gap-4\\\">\\n <Button>New Project</Button>\\n <Button variant=\\\"outline\\\">Import Data</Button>\\n <Button variant=\\\"outline\\\">Generate Report</Button>\\n </div>\\n </Section>\\n\\n <Section title=\\\"Recent Projects\\\" description=\\\"Your most recently accessed projects.\\\">\\n <DataTable data={recentProjects} columns={projectColumns} />\\n </Section>\\n\\n <Section title=\\\"Team Activity\\\">\\n <div class=\\\"space-y-3\\\">\\n {#each activities as activity}\\n <div class=\\\"flex items-center gap-3 p-3 rounded-lg bg-muted/50\\\">\\n <Avatar size=\\\"sm\\\">{activity.user.initials}</Avatar>\\n <div>\\n <p class=\\\"text-sm font-medium\\\">{activity.user.name}</p>\\n <p class=\\\"text-xs text-muted-foreground\\\">{activity.action}</p>\\n </div>\\n <span class=\\\"ml-auto text-xs text-muted-foreground\\\">\\n {activity.time}\\n </span>\\n </div>\\n {/each}\\n </div>\\n </Section>\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"Card\",\n \"PageHeader\",\n \"Separator\"\n ]\n },\n {\n \"name\": \"Select\",\n \"description\": \"Dropdown for selecting from a list of options with grouping support\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"default\": \"''\",\n \"required\": false,\n \"description\": \"Current selected value (bindable)\"\n },\n {\n \"name\": \"options\",\n \"type\": \"(SelectOption | SelectGroup)[]\",\n \"default\": \"Required\",\n \"required\": false,\n \"description\": \"Array of options or grouped options\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"default\": \"'Select an option...'\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the select\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Name attribute for forms\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Element ID for accessibility\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Optional label displayed above\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message to display\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let value = $state('');\\n\\n const options = [\\n { value: 'apple', label: 'Apple' },\\n { value: 'banana', label: 'Banana' },\\n { value: 'orange', label: 'Orange' },\\n ];\\n</script>\\n\\n<Select {options} bind:value placeholder=\\\"Select a fruit\\\" />\"\n },\n {\n \"title\": \"Disabled\",\n \"code\": \"<Select {options} disabled value=\\\"apple\\\" />\"\n },\n {\n \"title\": \"Required\",\n \"code\": \"<Select {options} bind:value label=\\\"Required Field\\\" required />\"\n },\n {\n \"title\": \"With Error\",\n \"code\": \"<Select {options} bind:value label=\\\"Category\\\" error=\\\"Please select a category\\\" />\"\n },\n {\n \"title\": \"Form Example\",\n \"code\": \"<script>\\n let department = $state('');\\n let departmentError = $state('');\\n\\n const departments = [\\n { value: 'sales', label: 'Sales' },\\n { value: 'marketing', label: 'Marketing' },\\n { value: 'engineering', label: 'Engineering' },\\n { value: 'support', label: 'Support' },\\n ];\\n\\n function validate() {\\n if (!department) {\\n departmentError = 'Please select a department';\\n return false;\\n }\\n departmentError = '';\\n return true;\\n }\\n</script>\\n\\n<Select\\n label=\\\"Department\\\"\\n options={departments}\\n bind:value={department}\\n error={departmentError}\\n required\\n/>\"\n },\n {\n \"title\": \"Controlled Select\",\n \"code\": \"<script>\\n let value = $state('');\\n\\n function handleChange(newValue: string) {\\n console.log('Selected:', newValue);\\n value = newValue;\\n }\\n</script>\\n\\n<Select {options} {value} onValueChange={handleChange} />\"\n },\n {\n \"title\": \"Country Selector\",\n \"code\": \"<script>\\n const countries = [\\n {\\n label: 'North America',\\n options: [\\n { value: 'us', label: 'United States' },\\n { value: 'ca', label: 'Canada' },\\n { value: 'mx', label: 'Mexico' },\\n ],\\n },\\n {\\n label: 'Europe',\\n options: [\\n { value: 'gb', label: 'United Kingdom' },\\n { value: 'de', label: 'Germany' },\\n { value: 'fr', label: 'France' },\\n ],\\n },\\n ];\\n</script>\\n\\n<Select label=\\\"Country\\\" options={countries} bind:value placeholder=\\\"Select your country\\\" />\"\n }\n ],\n \"relatedComponents\": [\n \"Combobox\",\n \"MultiSelect\",\n \"RadioGroup\"\n ]\n },\n {\n \"name\": \"Separator\",\n \"description\": \"Visual divider for separating content\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"orientation\",\n \"type\": \"'horizontal' | 'vertical'\",\n \"default\": \"'horizontal'\",\n \"required\": false,\n \"description\": \"Line direction\"\n },\n {\n \"name\": \"decorative\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"If decorative (no semantic meaning)\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"orientation\",\n \"values\": [\n \"horizontal\",\n \"vertical\"\n ],\n \"default\": \"horizontal\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<div>Content above</div>\\n<Separator />\\n<div>Content below</div>\"\n },\n {\n \"title\": \"Form Sections\",\n \"code\": \"<form class=\\\"space-y-6\\\">\\n <div class=\\\"space-y-4\\\">\\n <h3 class=\\\"font-medium\\\">Personal Information</h3>\\n <Input label=\\\"Name\\\" />\\n <Input label=\\\"Email\\\" type=\\\"email\\\" />\\n </div>\\n\\n <Separator />\\n\\n <div class=\\\"space-y-4\\\">\\n <h3 class=\\\"font-medium\\\">Address</h3>\\n <Input label=\\\"Street\\\" />\\n <Input label=\\\"City\\\" />\\n </div>\\n\\n <Separator />\\n\\n <Button type=\\\"submit\\\">Submit</Button>\\n</form>\"\n },\n {\n \"title\": \"Dropdown Menu\",\n \"code\": \"<DropdownMenu>\\n <DropdownMenu.Item>Profile</DropdownMenu.Item>\\n <DropdownMenu.Item>Settings</DropdownMenu.Item>\\n <Separator class=\\\"my-1\\\" />\\n <DropdownMenu.Item>Help</DropdownMenu.Item>\\n <DropdownMenu.Item>Feedback</DropdownMenu.Item>\\n <Separator class=\\\"my-1\\\" />\\n <DropdownMenu.Item>Log out</DropdownMenu.Item>\\n</DropdownMenu>\"\n },\n {\n \"title\": \"Login Divider\",\n \"code\": \"<div class=\\\"space-y-4\\\">\\n <Button class=\\\"w-full\\\">\\n <GoogleIcon class=\\\"mr-2\\\" />\\n Continue with Google\\n </Button>\\n\\n <div class=\\\"flex items-center gap-4\\\">\\n <Separator class=\\\"flex-1\\\" />\\n <span class=\\\"text-xs text-muted-foreground uppercase\\\">or continue with email</span>\\n <Separator class=\\\"flex-1\\\" />\\n </div>\\n\\n <form class=\\\"space-y-4\\\">\\n <Input label=\\\"Email\\\" type=\\\"email\\\" />\\n <Input label=\\\"Password\\\" type=\\\"password\\\" />\\n <Button type=\\\"submit\\\" class=\\\"w-full\\\">Sign In</Button>\\n </form>\\n</div>\"\n },\n {\n \"title\": \"Toolbar\",\n \"code\": \"<div class=\\\"flex items-center gap-2 p-2 border rounded-lg\\\">\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><BoldIcon /></Button>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><ItalicIcon /></Button>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><UnderlineIcon /></Button>\\n\\n <Separator orientation=\\\"vertical\\\" class=\\\"h-6\\\" />\\n\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><AlignLeftIcon /></Button>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><AlignCenterIcon /></Button>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><AlignRightIcon /></Button>\\n\\n <Separator orientation=\\\"vertical\\\" class=\\\"h-6\\\" />\\n\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><LinkIcon /></Button>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><ImageIcon /></Button>\\n</div>\"\n },\n {\n \"title\": \"Card Footer\",\n \"code\": \"<Card>\\n <Card.Header>\\n <Card.Title>Subscription</Card.Title>\\n </Card.Header>\\n <Card.Content>\\n <p>You are currently on the Pro plan.</p>\\n </Card.Content>\\n <Separator />\\n <Card.Footer>\\n <Button variant=\\\"outline\\\">Change Plan</Button>\\n <Button variant=\\\"ghost\\\" class=\\\"text-destructive\\\">Cancel</Button>\\n </Card.Footer>\\n</Card>\"\n }\n ],\n \"relatedComponents\": [\n \"Card\",\n \"Section\",\n \"DropdownMenu\"\n ]\n },\n {\n \"name\": \"Sidebar\",\n \"description\": \"Responsive sidebar navigation with collapsible sections\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"navigation\",\n \"type\": \"NavSection[]\",\n \"required\": false,\n \"description\": \"Navigation sections\"\n },\n {\n \"name\": \"userRoles\",\n \"type\": \"string[]\",\n \"required\": false,\n \"description\": \"User roles for filtering\"\n },\n {\n \"name\": \"collapsed\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Desktop collapsed state\"\n },\n {\n \"name\": \"isMobile\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Mobile mode\"\n },\n {\n \"name\": \"mobileOpen\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Mobile drawer open\"\n },\n {\n \"name\": \"onClose\",\n \"type\": \"() => void\",\n \"required\": false,\n \"description\": \"Mobile close callback\"\n },\n {\n \"name\": \"onNavigate\",\n \"type\": \"(item: NavItem) => void\",\n \"required\": false,\n \"description\": \"Navigation callback\"\n },\n {\n \"name\": \"logo\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom logo\"\n },\n {\n \"name\": \"icon\",\n \"type\": \"Snippet<[NavItem]>\",\n \"required\": false,\n \"description\": \"Custom icon renderer\"\n },\n {\n \"name\": \"quickLinks\",\n \"type\": \"QuickLink[]\",\n \"required\": false,\n \"description\": \"Quick links at bottom\"\n },\n {\n \"name\": \"quickLinksDisplay\",\n \"type\": \"'list' | 'icons'\",\n \"default\": \"'list'\",\n \"required\": false,\n \"description\": \"Quick links display\"\n },\n {\n \"name\": \"quickLinkIcon\",\n \"type\": \"Snippet<[QuickLink]>\",\n \"required\": false,\n \"description\": \"Quick link icon renderer\"\n },\n {\n \"name\": \"footer\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Footer content\"\n },\n {\n \"name\": \"variant\",\n \"type\": \"'light' | 'dark'\",\n \"default\": \"'light'\",\n \"required\": false,\n \"description\": \"Visual variant\"\n },\n {\n \"name\": \"strongBorder\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Thicker border\"\n },\n {\n \"name\": \"expandedWidth\",\n \"type\": \"number\",\n \"default\": \"256\",\n \"required\": false,\n \"description\": \"Expanded width (px)\"\n },\n {\n \"name\": \"collapsedWidth\",\n \"type\": \"number\",\n \"default\": \"64\",\n \"required\": false,\n \"description\": \"Collapsed width (px)\"\n },\n {\n \"name\": \"searchable\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Enable search\"\n },\n {\n \"name\": \"searchPlaceholder\",\n \"type\": \"string\",\n \"default\": \"'Search...'\",\n \"required\": false,\n \"description\": \"Search placeholder\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"quickLinksDisplay\",\n \"values\": [\n \"list\",\n \"icons\"\n ],\n \"default\": \"list\"\n },\n {\n \"name\": \"variant\",\n \"values\": [\n \"light\",\n \"dark\"\n ],\n \"default\": \"light\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n const navigation = [\\n {\\n id: 'main',\\n title: 'Main',\\n items: [\\n { id: 'home', name: 'Home', href: '/', icon: 'home' },\\n { id: 'projects', name: 'Projects', href: '/projects', icon: 'folder' },\\n ],\\n },\\n ];\\n</script>\\n\\n<Sidebar {navigation} />\"\n },\n {\n \"title\": \"Sections with Titles\",\n \"code\": \"<script>\\n const navigation = [\\n {\\n id: 'main',\\n title: 'Main',\\n items: [\\n { id: 'dashboard', name: 'Dashboard', href: '/dashboard' },\\n { id: 'projects', name: 'Projects', href: '/projects' },\\n ],\\n },\\n {\\n id: 'settings',\\n title: 'Settings',\\n collapsible: true,\\n items: [\\n { id: 'profile', name: 'Profile', href: '/profile' },\\n { id: 'account', name: 'Account', href: '/account' },\\n ],\\n },\\n ];\\n</script>\"\n },\n {\n \"title\": \"Nested Navigation\",\n \"code\": \"<script>\\n const navigation = [\\n {\\n id: 'docs',\\n items: [\\n {\\n id: 'components',\\n name: 'Components',\\n children: [\\n { id: 'button', name: 'Button', href: '/components/button' },\\n { id: 'input', name: 'Input', href: '/components/input' },\\n { id: 'card', name: 'Card', href: '/components/card' },\\n ],\\n },\\n ],\\n },\\n ];\\n</script>\"\n },\n {\n \"title\": \"Dashboard Sidebar\",\n \"code\": \"<script>\\n import { page } from '$app/stores';\\n\\n const navigation = [\\n {\\n id: 'overview',\\n items: [\\n { id: 'dashboard', name: 'Dashboard', href: '/dashboard', icon: 'home' },\\n { id: 'analytics', name: 'Analytics', href: '/analytics', icon: 'chart' },\\n ],\\n },\\n {\\n id: 'content',\\n title: 'Content',\\n items: [\\n { id: 'posts', name: 'Posts', href: '/posts', icon: 'file' },\\n { id: 'media', name: 'Media', href: '/media', icon: 'image' },\\n { id: 'pages', name: 'Pages', href: '/pages', icon: 'document' },\\n ],\\n },\\n {\\n id: 'settings',\\n title: 'Settings',\\n collapsible: true,\\n expanded: false,\\n items: [\\n { id: 'general', name: 'General', href: '/settings' },\\n { id: 'team', name: 'Team', href: '/settings/team' },\\n { id: 'billing', name: 'Billing', href: '/settings/billing' },\\n ],\\n },\\n ];\\n</script>\\n\\n<Sidebar\\n {navigation}\\n variant=\\\"dark\\\"\\n searchable\\n quickLinks={[{ id: 'help', name: 'Help Center', href: '/help', icon: 'help' }]}\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"Header\",\n \"DashboardLayout\",\n \"AppShell\"\n ]\n },\n {\n \"name\": \"Signature\",\n \"description\": \"Digital signature capture with draw and type modes\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"SignatureData | null\",\n \"default\": \"null\",\n \"required\": false,\n \"description\": \"Signature data (bindable)\"\n },\n {\n \"name\": \"mode\",\n \"type\": \"'draw' | 'type'\",\n \"default\": \"'draw'\",\n \"required\": false,\n \"description\": \"Capture mode\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables capture\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Label text\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message\"\n },\n {\n \"name\": \"strokeColor\",\n \"type\": \"string\",\n \"default\": \"'#000000'\",\n \"required\": false,\n \"description\": \"Drawing stroke color\"\n },\n {\n \"name\": \"strokeWidth\",\n \"type\": \"number\",\n \"default\": \"2\",\n \"required\": false,\n \"description\": \"Drawing stroke width\"\n },\n {\n \"name\": \"fonts\",\n \"type\": \"SignatureFont[]\",\n \"required\": false,\n \"description\": \"Available fonts for type mode\"\n },\n {\n \"name\": \"onValidate\",\n \"type\": \"(data: SignatureData) => SignatureValidationResult\",\n \"required\": false,\n \"description\": \"Validation handler\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"mode\",\n \"values\": [\n \"draw\",\n \"type\"\n ],\n \"default\": \"draw\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let signature = $state(null);\\n</script>\\n\\n<Signature bind:value={signature} />\"\n },\n {\n \"title\": \"Agreement Form\",\n \"code\": \"<script>\\n let signature = $state(null);\\n\\n function handleSubmit() {\\n if (!signature) {\\n // Handle missing signature\\n return;\\n }\\n // Submit form with signature\\n }\\n</script>\\n\\n<div class=\\\"space-y-4\\\">\\n <p class=\\\"text-sm text-muted-foreground\\\">\\n By signing below, you agree to the terms and conditions.\\n </p>\\n <Signature label=\\\"Your Signature\\\" bind:value={signature} required />\\n <Button onclick={handleSubmit} disabled={!signature}>Submit Agreement</Button>\\n</div>\"\n },\n {\n \"title\": \"Clear and Retry\",\n \"code\": \"<div class=\\\"space-y-4\\\">\\n <Signature bind:value={signature} />\\n <Button variant=\\\"outline\\\" onclick={() => (signature = null)} disabled={!signature}>\\n Clear Signature\\n </Button>\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"Button\"\n ]\n },\n {\n \"name\": \"Skeleton\",\n \"description\": \"Placeholder loading component that mimics content shape\",\n \"category\": \"feedback\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"variant\",\n \"type\": \"'default' | 'text' | 'avatar' | 'card' | 'button' | 'title'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Predefined shape variant\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"default\",\n \"text\",\n \"avatar\",\n \"card\",\n \"button\",\n \"title\"\n ],\n \"default\": \"default\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Skeleton class=\\\"h-4 w-full\\\" />\"\n },\n {\n \"title\": \"Default\",\n \"description\": \"Custom sizing with classes:\",\n \"code\": \"<Skeleton class=\\\"h-4 w-full\\\" />\\n<Skeleton class=\\\"h-8 w-64\\\" />\"\n },\n {\n \"title\": \"Text\",\n \"description\": \"Single line of text:\",\n \"code\": \"<Skeleton variant=\\\"text\\\" /> <!-- h-4 w-full -->\"\n },\n {\n \"title\": \"Title\",\n \"description\": \"Larger heading text:\",\n \"code\": \"<Skeleton variant=\\\"title\\\" /> <!-- h-6 w-3/4 -->\"\n },\n {\n \"title\": \"Avatar\",\n \"description\": \"Circular avatar placeholder:\",\n \"code\": \"<Skeleton variant=\\\"avatar\\\" /> <!-- h-12 w-12 rounded-full -->\"\n },\n {\n \"title\": \"Card\",\n \"description\": \"Card-sized placeholder:\",\n \"code\": \"<Skeleton variant=\\\"card\\\" /> <!-- h-32 w-full -->\"\n },\n {\n \"title\": \"Button\",\n \"description\": \"Button-sized placeholder:\",\n \"code\": \"<Skeleton variant=\\\"button\\\" /> <!-- h-10 w-24 -->\"\n },\n {\n \"title\": \"Text Content Loading\",\n \"code\": \"<div class=\\\"space-y-2\\\">\\n <Skeleton variant=\\\"title\\\" />\\n <Skeleton variant=\\\"text\\\" />\\n <Skeleton variant=\\\"text\\\" />\\n <Skeleton class=\\\"h-4 w-2/3\\\" />\\n</div>\"\n },\n {\n \"title\": \"User Card Loading\",\n \"code\": \"<div class=\\\"flex items-center gap-4\\\">\\n <Skeleton variant=\\\"avatar\\\" />\\n <div class=\\\"space-y-2 flex-1\\\">\\n <Skeleton class=\\\"h-4 w-32\\\" />\\n <Skeleton class=\\\"h-3 w-24\\\" />\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Card Loading\",\n \"code\": \"<Card>\\n <CardHeader>\\n <Skeleton variant=\\\"title\\\" />\\n <Skeleton variant=\\\"text\\\" class=\\\"mt-2\\\" />\\n </CardHeader>\\n <CardContent>\\n <Skeleton variant=\\\"card\\\" />\\n </CardContent>\\n <CardFooter>\\n <Skeleton variant=\\\"button\\\" />\\n </CardFooter>\\n</Card>\"\n },\n {\n \"title\": \"Table Row Loading\",\n \"code\": \"<tr>\\n <td><Skeleton class=\\\"h-4 w-8\\\" /></td>\\n <td><Skeleton class=\\\"h-4 w-32\\\" /></td>\\n <td><Skeleton class=\\\"h-4 w-48\\\" /></td>\\n <td><Skeleton class=\\\"h-4 w-24\\\" /></td>\\n</tr>\"\n },\n {\n \"title\": \"Grid Loading\",\n \"code\": \"<div class=\\\"grid grid-cols-3 gap-4\\\">\\n {#each Array(6) as _}\\n <div class=\\\"space-y-2\\\">\\n <Skeleton class=\\\"h-32 w-full\\\" />\\n <Skeleton variant=\\\"title\\\" />\\n <Skeleton variant=\\\"text\\\" />\\n </div>\\n {/each}\\n</div>\"\n },\n {\n \"title\": \"Profile Page Loading\",\n \"code\": \"<div class=\\\"space-y-6\\\">\\n <!-- Header -->\\n <div class=\\\"flex items-center gap-6\\\">\\n <Skeleton class=\\\"h-24 w-24 rounded-full\\\" />\\n <div class=\\\"space-y-2\\\">\\n <Skeleton class=\\\"h-8 w-48\\\" />\\n <Skeleton class=\\\"h-4 w-32\\\" />\\n </div>\\n </div>\\n\\n <!-- Stats -->\\n <div class=\\\"grid grid-cols-3 gap-4\\\">\\n {#each Array(3) as _}\\n <Skeleton class=\\\"h-20\\\" />\\n {/each}\\n </div>\\n\\n <!-- Content -->\\n <div class=\\\"space-y-2\\\">\\n <Skeleton variant=\\\"text\\\" />\\n <Skeleton variant=\\\"text\\\" />\\n <Skeleton class=\\\"h-4 w-3/4\\\" />\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Conditional Loading\",\n \"code\": \"{#if loading}\\n <div class=\\\"space-y-2\\\">\\n <Skeleton variant=\\\"title\\\" />\\n <Skeleton variant=\\\"text\\\" />\\n <Skeleton variant=\\\"text\\\" />\\n </div>\\n{:else}\\n <div>\\n <h2>{title}</h2>\\n <p>{content}</p>\\n </div>\\n{/if}\"\n },\n {\n \"title\": \"Image Loading\",\n \"code\": \"<div class=\\\"relative\\\">\\n {#if imageLoading}\\n <Skeleton class=\\\"h-64 w-full\\\" />\\n {/if}\\n <img\\n src={imageUrl}\\n onload={() => (imageLoading = false)}\\n class={imageLoading ? 'invisible absolute' : ''}\\n />\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"Spinner\",\n \"Card\"\n ]\n },\n {\n \"name\": \"Slider\",\n \"description\": \"Range slider for selecting numeric values\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"number[]\",\n \"default\": \"[50]\",\n \"required\": false,\n \"description\": \"Current value(s) (bindable)\"\n },\n {\n \"name\": \"min\",\n \"type\": \"number\",\n \"default\": \"0\",\n \"required\": false,\n \"description\": \"Minimum value\"\n },\n {\n \"name\": \"max\",\n \"type\": \"number\",\n \"default\": \"100\",\n \"required\": false,\n \"description\": \"Maximum value\"\n },\n {\n \"name\": \"step\",\n \"type\": \"number\",\n \"default\": \"1\",\n \"required\": false,\n \"description\": \"Step increment\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the slider\"\n },\n {\n \"name\": \"orientation\",\n \"type\": \"'horizontal' | 'vertical'\",\n \"default\": \"'horizontal'\",\n \"required\": false,\n \"description\": \"Slider direction\"\n },\n {\n \"name\": \"size\",\n \"type\": \"'sm' | 'md' | 'lg'\",\n \"default\": \"'md'\",\n \"required\": false,\n \"description\": \"Size variant\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Label text\"\n },\n {\n \"name\": \"showValue\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Shows current value\"\n },\n {\n \"name\": \"formatValue\",\n \"type\": \"(value: number) => string\",\n \"required\": false,\n \"description\": \"Value formatter\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: number[]) => void\",\n \"required\": false,\n \"description\": \"Callback during drag\"\n },\n {\n \"name\": \"onValueCommit\",\n \"type\": \"(value: number[]) => void\",\n \"required\": false,\n \"description\": \"Callback when drag ends\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"orientation\",\n \"values\": [\n \"horizontal\",\n \"vertical\"\n ],\n \"default\": \"horizontal\"\n },\n {\n \"name\": \"size\",\n \"values\": [\n \"sm\",\n \"md\",\n \"lg\"\n ],\n \"default\": \"md\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let value = $state([50]);\\n</script>\\n\\n<Slider bind:value />\"\n },\n {\n \"title\": \"Volume Control\",\n \"code\": \"<script>\\n let volume = $state([70]);\\n</script>\\n\\n<Slider\\n label=\\\"Volume\\\"\\n bind:value={volume}\\n min={0}\\n max={100}\\n showValue\\n formatValue={(v) => `${v}%`}\\n/>\"\n },\n {\n \"title\": \"Price Filter\",\n \"code\": \"<script>\\n let priceRange = $state([0, 500]);\\n</script>\\n\\n<Slider\\n label=\\\"Price Range\\\"\\n bind:value={priceRange}\\n min={0}\\n max={1000}\\n step={10}\\n showValue\\n formatValue={(v) => `$${v}`}\\n/>\"\n },\n {\n \"title\": \"Temperature\",\n \"code\": \"<script>\\n let temp = $state([72]);\\n</script>\\n\\n<Slider\\n label=\\\"Temperature\\\"\\n bind:value={temp}\\n min={60}\\n max={85}\\n showValue\\n formatValue={(v) => `${v}°F`}\\n/>\"\n },\n {\n \"title\": \"Opacity Control\",\n \"code\": \"<script>\\n let opacity = $state([100]);\\n</script>\\n\\n<Slider\\n label=\\\"Opacity\\\"\\n bind:value={opacity}\\n min={0}\\n max={100}\\n showValue\\n formatValue={(v) => `${v}%`}\\n onValueChange={(val) => {\\n element.style.opacity = val[0] / 100;\\n }}\\n/>\"\n },\n {\n \"title\": \"Discrete Steps\",\n \"code\": \"<script>\\n let rating = $state([3]);\\n const labels = ['Poor', 'Fair', 'Good', 'Very Good', 'Excellent'];\\n</script>\\n\\n<Slider\\n label=\\\"Rating\\\"\\n bind:value={rating}\\n min={1}\\n max={5}\\n step={1}\\n showValue\\n formatValue={(v) => labels[v - 1]}\\n/>\"\n },\n {\n \"title\": \"Commit on Release\",\n \"description\": \"Trigger action only when user finishes dragging:\",\n \"code\": \"<Slider\\n bind:value\\n onValueCommit={(val) => {\\n savePreference(val[0]);\\n }}\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"NumberInput\",\n \"Input\"\n ]\n },\n {\n \"name\": \"Spinner\",\n \"description\": \"Loading indicator for async operations\",\n \"category\": \"feedback\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"size\",\n \"type\": \"'sm' | 'md' | 'lg' | 'xl'\",\n \"default\": \"'md'\",\n \"required\": false,\n \"description\": \"Size of the spinner\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"default\": \"'Loading...'\",\n \"required\": false,\n \"description\": \"Accessible label for screen readers\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"size\",\n \"values\": [\n \"sm\",\n \"md\",\n \"lg\",\n \"xl\"\n ],\n \"default\": \"md\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Spinner />\"\n },\n {\n \"title\": \"Button Loading State\",\n \"code\": \"<Button disabled={loading}>\\n {#if loading}\\n <Spinner size=\\\"sm\\\" label=\\\"Submitting...\\\" class=\\\"mr-2\\\" />\\n Submitting...\\n {:else}\\n Submit\\n {/if}\\n</Button>\"\n },\n {\n \"title\": \"Centered Loading\",\n \"code\": \"<div class=\\\"flex items-center justify-center h-64\\\">\\n <Spinner size=\\\"lg\\\" label=\\\"Loading content...\\\" />\\n</div>\"\n },\n {\n \"title\": \"Full Page Loading\",\n \"code\": \"<div class=\\\"fixed inset-0 flex items-center justify-center bg-background/80 z-50\\\">\\n <div class=\\\"text-center\\\">\\n <Spinner size=\\\"xl\\\" label=\\\"Loading application...\\\" />\\n <p class=\\\"mt-4 text-muted-foreground\\\">Loading...</p>\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Inline Loading\",\n \"code\": \"<p>\\n Checking availability\\n <Spinner size=\\\"sm\\\" class=\\\"inline ml-2\\\" label=\\\"Checking...\\\" />\\n</p>\"\n },\n {\n \"title\": \"Card Loading State\",\n \"code\": \"<Card>\\n <CardContent class=\\\"flex items-center justify-center h-32\\\">\\n {#if loading}\\n <Spinner label=\\\"Loading data...\\\" />\\n {:else}\\n <p>{data}</p>\\n {/if}\\n </CardContent>\\n</Card>\"\n },\n {\n \"title\": \"With Loading Text\",\n \"code\": \"<div class=\\\"flex items-center gap-3\\\">\\n <Spinner size=\\\"md\\\" />\\n <span class=\\\"text-muted-foreground\\\">Loading your dashboard...</span>\\n</div>\"\n },\n {\n \"title\": \"Table Loading\",\n \"code\": \"<table>\\n <tbody>\\n {#if loading}\\n <tr>\\n <td colspan=\\\"4\\\" class=\\\"text-center py-8\\\">\\n <Spinner label=\\\"Loading data...\\\" />\\n </td>\\n </tr>\\n {:else}\\n {#each rows as row}\\n <tr><!-- row content --></tr>\\n {/each}\\n {/if}\\n </tbody>\\n</table>\"\n }\n ],\n \"relatedComponents\": [\n \"Skeleton\",\n \"Button\"\n ]\n },\n {\n \"name\": \"Switch\",\n \"description\": \"Toggle switch for binary on/off settings\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"checked\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Whether the switch is on (bindable)\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the switch\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Name attribute for forms\"\n },\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Value attribute for forms\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Element ID for label association\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onchange\",\n \"type\": \"(checked: boolean) => void\",\n \"required\": false,\n \"description\": \"Callback when checked state changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let enabled = $state(false);\\n</script>\\n\\n<Switch bind:checked={enabled} />\"\n },\n {\n \"title\": \"On (Checked)\",\n \"code\": \"<Switch checked />\"\n },\n {\n \"title\": \"Off (Unchecked)\",\n \"code\": \"<Switch />\"\n },\n {\n \"title\": \"Disabled\",\n \"code\": \"<Switch disabled />\\n<Switch disabled checked />\"\n },\n {\n \"title\": \"Feature Toggle\",\n \"code\": \"<script>\\n let betaFeatures = $state(false);\\n</script>\\n\\n<div class=\\\"p-4 border rounded-lg\\\">\\n <div class=\\\"flex items-center justify-between\\\">\\n <div>\\n <h3 class=\\\"font-medium\\\">Beta Features</h3>\\n <p class=\\\"text-sm text-muted-foreground\\\">Enable experimental features</p>\\n </div>\\n <Switch bind:checked={betaFeatures} />\\n </div>\\n\\n {#if betaFeatures}\\n <p class=\\\"mt-3 text-sm text-warning\\\">Beta features may be unstable.</p>\\n {/if}\\n</div>\"\n },\n {\n \"title\": \"Privacy Controls\",\n \"code\": \"<script>\\n let privacy = $state({\\n analytics: true,\\n personalization: false,\\n thirdParty: false,\\n });\\n</script>\\n\\n<div class=\\\"space-y-4\\\">\\n <h2 class=\\\"text-lg font-semibold\\\">Privacy Settings</h2>\\n\\n <div class=\\\"space-y-3\\\">\\n <div class=\\\"flex items-center justify-between\\\">\\n <Label for=\\\"analytics\\\">Analytics cookies</Label>\\n <Switch id=\\\"analytics\\\" bind:checked={privacy.analytics} />\\n </div>\\n\\n <div class=\\\"flex items-center justify-between\\\">\\n <Label for=\\\"personalization\\\">Personalization</Label>\\n <Switch id=\\\"personalization\\\" bind:checked={privacy.personalization} />\\n </div>\\n\\n <div class=\\\"flex items-center justify-between\\\">\\n <Label for=\\\"third-party\\\">Third-party cookies</Label>\\n <Switch id=\\\"third-party\\\" bind:checked={privacy.thirdParty} />\\n </div>\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Inline Switch\",\n \"code\": \"<p class=\\\"text-sm\\\">\\n Show completed tasks\\n <Switch bind:checked={showCompleted} class=\\\"ml-2 align-middle\\\" />\\n</p>\"\n }\n ],\n \"relatedComponents\": [\n \"Checkbox\",\n \"RadioGroup\",\n \"Label\"\n ]\n },\n {\n \"name\": \"Tabs\",\n \"description\": \"Tabbed interface for organizing content\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"tabs\",\n \"type\": \"Tab[]\",\n \"required\": false,\n \"description\": \"Array of tab definitions\"\n },\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"default\": \"First tab ID\",\n \"required\": false,\n \"description\": \"Active tab ID (bindable)\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"default\": \"Auto-generated\",\n \"required\": false,\n \"description\": \"Unique ID for ARIA\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Tab panel content\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Change callback\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n const tabs = [\\n { id: 'account', label: 'Account' },\\n { id: 'security', label: 'Security' },\\n { id: 'notifications', label: 'Notifications' },\\n ];\\n</script>\\n\\n<Tabs {tabs}>\\n <TabPanel id=\\\"account\\\">\\n <p>Account settings content</p>\\n </TabPanel>\\n <TabPanel id=\\\"security\\\">\\n <p>Security settings content</p>\\n </TabPanel>\\n <TabPanel id=\\\"notifications\\\">\\n <p>Notification preferences</p>\\n </TabPanel>\\n</Tabs>\"\n },\n {\n \"title\": \"Settings Page\",\n \"code\": \"<script>\\n const tabs = [\\n { id: 'profile', label: 'Profile' },\\n { id: 'account', label: 'Account' },\\n { id: 'security', label: 'Security' },\\n { id: 'billing', label: 'Billing' },\\n ];\\n</script>\\n\\n<Tabs {tabs}>\\n <TabPanel id=\\\"profile\\\">\\n <Section title=\\\"Personal Information\\\">\\n <form class=\\\"space-y-4\\\">\\n <Input label=\\\"Display Name\\\" />\\n <Textarea label=\\\"Bio\\\" />\\n <Button>Save Changes</Button>\\n </form>\\n </Section>\\n </TabPanel>\\n\\n <TabPanel id=\\\"account\\\">\\n <Section title=\\\"Email Settings\\\">\\n <Input label=\\\"Email Address\\\" type=\\\"email\\\" />\\n <Button>Update Email</Button>\\n </Section>\\n </TabPanel>\\n\\n <TabPanel id=\\\"security\\\">\\n <Section title=\\\"Password\\\">\\n <form class=\\\"space-y-4\\\">\\n <Input label=\\\"Current Password\\\" type=\\\"password\\\" />\\n <Input label=\\\"New Password\\\" type=\\\"password\\\" />\\n <Button>Change Password</Button>\\n </form>\\n </Section>\\n </TabPanel>\\n\\n <TabPanel id=\\\"billing\\\">\\n <Section title=\\\"Payment Methods\\\">\\n <p>Your payment methods will appear here.</p>\\n </Section>\\n </TabPanel>\\n</Tabs>\"\n },\n {\n \"title\": \"Product Details\",\n \"code\": \"<script>\\n const tabs = [\\n { id: 'description', label: 'Description' },\\n { id: 'specs', label: 'Specifications' },\\n { id: 'reviews', label: 'Reviews' },\\n ];\\n</script>\\n\\n<Tabs {tabs}>\\n <TabPanel id=\\\"description\\\">\\n <div class=\\\"prose\\\">\\n <p>{product.description}</p>\\n </div>\\n </TabPanel>\\n\\n <TabPanel id=\\\"specs\\\">\\n <DataTable data={product.specs} columns={specColumns} />\\n </TabPanel>\\n\\n <TabPanel id=\\\"reviews\\\">\\n {#each reviews as review}\\n <Card class=\\\"mb-4\\\">\\n <Card.Header>\\n <div class=\\\"flex items-center gap-2\\\">\\n <Avatar size=\\\"sm\\\">{review.author[0]}</Avatar>\\n <span>{review.author}</span>\\n </div>\\n </Card.Header>\\n <Card.Content>\\n <p>{review.content}</p>\\n </Card.Content>\\n </Card>\\n {/each}\\n </TabPanel>\\n</Tabs>\"\n },\n {\n \"title\": \"Code Examples\",\n \"code\": \"<script>\\n const tabs = [\\n { id: 'svelte', label: 'Svelte' },\\n { id: 'react', label: 'React' },\\n { id: 'vue', label: 'Vue' },\\n ];\\n</script>\\n\\n<Tabs {tabs}>\\n <TabPanel id=\\\"svelte\\\">\\n <pre><code>{svelteCode}</code></pre>\\n </TabPanel>\\n <TabPanel id=\\\"react\\\">\\n <pre><code>{reactCode}</code></pre>\\n </TabPanel>\\n <TabPanel id=\\\"vue\\\">\\n <pre><code>{vueCode}</code></pre>\\n </TabPanel>\\n</Tabs>\"\n }\n ],\n \"relatedComponents\": [\n \"Card\",\n \"Section\",\n \"Separator\"\n ]\n },\n {\n \"name\": \"Textarea\",\n \"description\": \"Multi-line text input for longer content like messages and descriptions\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"default\": \"''\",\n \"required\": false,\n \"description\": \"Textarea value (bindable)\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the textarea\"\n },\n {\n \"name\": \"readonly\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Makes the textarea read-only\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Textarea name for forms\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Textarea ID for label association\"\n },\n {\n \"name\": \"rows\",\n \"type\": \"number\",\n \"default\": \"3\",\n \"required\": false,\n \"description\": \"Number of visible text rows\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Textarea placeholder=\\\"Enter your message...\\\" />\"\n },\n {\n \"title\": \"Disabled\",\n \"code\": \"<Textarea disabled value=\\\"Cannot edit this content\\\" />\"\n },\n {\n \"title\": \"Read-only\",\n \"code\": \"<Textarea readonly value=\\\"This content is read-only\\\" />\"\n },\n {\n \"title\": \"Required\",\n \"code\": \"<Textarea required placeholder=\\\"Required field\\\" />\"\n },\n {\n \"title\": \"Character Counter\",\n \"code\": \"<script>\\n import { Textarea, Label } from '@classic-homes/theme-svelte';\\n\\n let bio = $state('');\\n const maxLength = 280;\\n</script>\\n\\n<div class=\\\"space-y-2\\\">\\n <Label for=\\\"bio\\\">Bio</Label>\\n <Textarea id=\\\"bio\\\" bind:value={bio} rows={4} placeholder=\\\"Tell us about yourself...\\\" />\\n <p class=\\\"text-sm text-muted-foreground text-right\\\">\\n {bio.length}/{maxLength}\\n </p>\\n</div>\"\n },\n {\n \"title\": \"With Help Text\",\n \"code\": \"<div class=\\\"space-y-2\\\">\\n <Label for=\\\"description\\\">Description</Label>\\n <Textarea id=\\\"description\\\" rows={4} placeholder=\\\"Describe your item...\\\" />\\n <p class=\\\"text-sm text-muted-foreground\\\">\\n Include key details to help buyers understand your item.\\n </p>\\n</div>\"\n },\n {\n \"title\": \"Fixed Height\",\n \"code\": \"<Textarea class=\\\"resize-none h-32\\\" placeholder=\\\"Fixed height textarea\\\" />\"\n },\n {\n \"title\": \"Full Width in Container\",\n \"code\": \"<div class=\\\"max-w-md\\\">\\n <Textarea placeholder=\\\"Constrained to container width\\\" />\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"Label\",\n \"FormField\"\n ]\n },\n {\n \"name\": \"Toast\",\n \"description\": \"Brief notification messages for user feedback\",\n \"category\": \"feedback\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Success\",\n \"description\": \"For successful operations:\",\n \"code\": \"toastStore.success('Changes saved successfully!');\"\n },\n {\n \"title\": \"Error\",\n \"description\": \"For errors and failures:\",\n \"code\": \"toastStore.error('Failed to save changes. Please try again.');\"\n },\n {\n \"title\": \"Warning\",\n \"description\": \"For warnings and cautions:\",\n \"code\": \"toastStore.warning('Your session will expire in 5 minutes.');\"\n },\n {\n \"title\": \"Info\",\n \"description\": \"For informational messages:\",\n \"code\": \"toastStore.info('New version available. Refresh to update.');\"\n },\n {\n \"title\": \"Custom\",\n \"description\": \"For custom styled toasts:\",\n \"code\": \"toastStore.show({\\n message: 'Custom message',\\n type: 'success',\\n duration: 5000,\\n});\"\n },\n {\n \"title\": \"Form Submission\",\n \"code\": \"<script>\\n async function handleSubmit() {\\n try {\\n await saveForm();\\n toastStore.success('Form submitted successfully!');\\n } catch (error) {\\n toastStore.error('Failed to submit form. Please try again.');\\n }\\n }\\n</script>\"\n },\n {\n \"title\": \"Action with Undo\",\n \"code\": \"<script>\\n function handleDelete(item) {\\n deleteItem(item.id);\\n toastStore.show({\\n message: `\\\"${item.name}\\\" deleted`,\\n type: 'info',\\n action: {\\n label: 'Undo',\\n onClick: () => restoreItem(item),\\n },\\n });\\n }\\n</script>\"\n },\n {\n \"title\": \"Network Status\",\n \"code\": \"<script>\\n $effect(() => {\\n if (!navigator.onLine) {\\n toastStore.warning('You are offline. Changes will sync when connected.');\\n } else {\\n toastStore.success('Back online!');\\n }\\n });\\n</script>\"\n },\n {\n \"title\": \"Async Operation\",\n \"code\": \"<script>\\n async function handleExport() {\\n toastStore.info('Starting export...');\\n try {\\n await exportData();\\n toastStore.success('Export completed! Check your downloads.');\\n } catch {\\n toastStore.error('Export failed. Please try again.');\\n }\\n }\\n</script>\"\n },\n {\n \"title\": \"Copy to Clipboard\",\n \"code\": \"<script>\\n async function copyLink() {\\n await navigator.clipboard.writeText(shareUrl);\\n toastStore.success('Link copied to clipboard!');\\n }\\n</script>\\n\\n<Button onclick={copyLink}>Copy Link</Button>\"\n },\n {\n \"title\": \"Multiple Toasts\",\n \"description\": \"Multiple toasts stack and are dismissed independently:\",\n \"code\": \"<Button\\n onclick={() => {\\n toastStore.success('First message');\\n toastStore.info('Second message');\\n toastStore.warning('Third message');\\n }}\\n>\\n Show Multiple\\n</Button>\"\n }\n ],\n \"relatedComponents\": [\n \"Alert\",\n \"Dialog\"\n ]\n },\n {\n \"name\": \"Tooltip\",\n \"description\": \"Contextual information displayed on hover\",\n \"category\": \"overlay\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"content\",\n \"type\": \"string\",\n \"default\": \"Required\",\n \"required\": false,\n \"description\": \"Text content of the tooltip\"\n },\n {\n \"name\": \"side\",\n \"type\": \"'top' | 'right' | 'bottom' | 'left'\",\n \"default\": \"'top'\",\n \"required\": false,\n \"description\": \"Preferred side for placement\"\n },\n {\n \"name\": \"align\",\n \"type\": \"'start' | 'center' | 'end'\",\n \"default\": \"'center'\",\n \"required\": false,\n \"description\": \"Alignment along the side\"\n },\n {\n \"name\": \"delayDuration\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"Delay before showing (ms)\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"side\",\n \"values\": [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ],\n \"default\": \"top\"\n },\n {\n \"name\": \"align\",\n \"values\": [\n \"start\",\n \"center\",\n \"end\"\n ],\n \"default\": \"center\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Tooltip content=\\\"This is a tooltip\\\">\\n {#snippet children()}\\n <Button>Hover me</Button>\\n {/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Side\",\n \"description\": \"Control which side the tooltip appears on:\",\n \"code\": \"<Tooltip content=\\\"Top tooltip\\\" side=\\\"top\\\">\\n {#snippet children()}<Button>Top</Button>{/snippet}\\n</Tooltip>\\n\\n<Tooltip content=\\\"Right tooltip\\\" side=\\\"right\\\">\\n {#snippet children()}<Button>Right</Button>{/snippet}\\n</Tooltip>\\n\\n<Tooltip content=\\\"Bottom tooltip\\\" side=\\\"bottom\\\">\\n {#snippet children()}<Button>Bottom</Button>{/snippet}\\n</Tooltip>\\n\\n<Tooltip content=\\\"Left tooltip\\\" side=\\\"left\\\">\\n {#snippet children()}<Button>Left</Button>{/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Alignment\",\n \"description\": \"Adjust alignment along the side:\",\n \"code\": \"<Tooltip content=\\\"Aligned to start\\\" side=\\\"top\\\" align=\\\"start\\\">\\n {#snippet children()}<Button>Start</Button>{/snippet}\\n</Tooltip>\\n\\n<Tooltip content=\\\"Aligned to center\\\" side=\\\"top\\\" align=\\\"center\\\">\\n {#snippet children()}<Button>Center</Button>{/snippet}\\n</Tooltip>\\n\\n<Tooltip content=\\\"Aligned to end\\\" side=\\\"top\\\" align=\\\"end\\\">\\n {#snippet children()}<Button>End</Button>{/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Icon Button with Tooltip\",\n \"code\": \"<Tooltip content=\\\"Edit item\\\">\\n {#snippet children()}\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\" aria-label=\\\"Edit\\\">\\n <svg class=\\\"h-4 w-4\\\"><!-- edit icon --></svg>\\n </Button>\\n {/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Form Field Help\",\n \"code\": \"<div class=\\\"flex items-center gap-2\\\">\\n <Label for=\\\"password\\\">Password</Label>\\n <Tooltip content=\\\"Password must be at least 8 characters with one uppercase letter\\\">\\n {#snippet children()}\\n <svg class=\\\"h-4 w-4 text-muted-foreground cursor-help\\\">\\n <circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"10\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" fill=\\\"none\\\" />\\n <path d=\\\"M12 16v-4M12 8h.01\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" />\\n </svg>\\n {/snippet}\\n </Tooltip>\\n</div>\"\n },\n {\n \"title\": \"Truncated Text\",\n \"code\": \"<Tooltip content={fullText}>\\n {#snippet children()}\\n <span class=\\\"truncate max-w-xs block\\\">{fullText}</span>\\n {/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Disabled Button Explanation\",\n \"code\": \"<Tooltip content=\\\"You need admin permissions to perform this action\\\">\\n {#snippet children()}\\n <span>\\n <Button disabled>Delete</Button>\\n </span>\\n {/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Status Indicator\",\n \"code\": \"<Tooltip content=\\\"Online - Last seen 2 minutes ago\\\" side=\\\"right\\\">\\n {#snippet children()}\\n <span class=\\\"inline-flex h-2 w-2 rounded-full bg-green-500\\\"></span>\\n {/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Keyboard Shortcut\",\n \"code\": \"<Tooltip content=\\\"Save (Ctrl+S)\\\">\\n {#snippet children()}\\n <Button>Save</Button>\\n {/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Multiple Tooltips\",\n \"code\": \"<div class=\\\"flex gap-2\\\">\\n <Tooltip content=\\\"Bold\\\">\\n {#snippet children()}<Button variant=\\\"ghost\\\" size=\\\"icon\\\">B</Button>{/snippet}\\n </Tooltip>\\n <Tooltip content=\\\"Italic\\\">\\n {#snippet children()}<Button variant=\\\"ghost\\\" size=\\\"icon\\\">I</Button>{/snippet}\\n </Tooltip>\\n <Tooltip content=\\\"Underline\\\">\\n {#snippet children()}<Button variant=\\\"ghost\\\" size=\\\"icon\\\">U</Button>{/snippet}\\n </Tooltip>\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"Dialog\",\n \"DropdownMenu\"\n ]\n }\n ]\n}","{\n \"version\": \"0.1.0\",\n \"colors\": {\n \"brand\": [\n {\n \"name\": \"gray\",\n \"description\": \"Neutral gray scale\",\n \"shades\": {\n \"50\": \"#f9fafb\",\n \"100\": \"#f3f4f6\",\n \"200\": \"#e5e7eb\",\n \"300\": \"#d1d5db\",\n \"400\": \"#9ca3af\",\n \"500\": \"#7a7a7a\",\n \"600\": \"#4f4f4f\",\n \"700\": \"#3d3d3d\",\n \"800\": \"#2a2a2a\",\n \"900\": \"#1a1a1a\",\n \"950\": \"#0a0a0a\"\n }\n },\n {\n \"name\": \"red\",\n \"description\": \"Brand red for logo and accents\",\n \"shades\": {\n \"50\": \"#fef2f2\",\n \"100\": \"#fee2e2\",\n \"200\": \"#fecaca\",\n \"300\": \"#fca5a5\",\n \"400\": \"#f87171\",\n \"500\": \"#e02726\",\n \"600\": \"#c81f1e\",\n \"700\": \"#a91c22\",\n \"800\": \"#7f1d1d\",\n \"900\": \"#5c1010\",\n \"950\": \"#3d0a0a\"\n }\n },\n {\n \"name\": \"teal\",\n \"description\": \"Core 1 - Primary brand accent\",\n \"shades\": {\n \"50\": \"#f0fafa\",\n \"100\": \"#d9f2f3\",\n \"200\": \"#b3e6e7\",\n \"300\": \"#8dd9db\",\n \"400\": \"#67cccf\",\n \"500\": \"#3ba4a7\",\n \"600\": \"#2f8386\",\n \"700\": \"#236265\",\n \"800\": \"#184144\",\n \"900\": \"#0c2123\",\n \"950\": \"#061012\"\n }\n },\n {\n \"name\": \"navy\",\n \"description\": \"Core 2 - Professional dark blue\",\n \"shades\": {\n \"50\": \"#f0f4f6\",\n \"100\": \"#d9e4ea\",\n \"200\": \"#b3c9d5\",\n \"300\": \"#8daebf\",\n \"400\": \"#6793aa\",\n \"500\": \"#417895\",\n \"600\": \"#2d5467\",\n \"700\": \"#002e3f\",\n \"800\": \"#00242f\",\n \"900\": \"#001a20\",\n \"950\": \"#000d10\"\n }\n },\n {\n \"name\": \"plum\",\n \"description\": \"Core 3 - Rich burgundy/purple\",\n \"shades\": {\n \"50\": \"#f8f4f6\",\n \"100\": \"#ede2e8\",\n \"200\": \"#dbc5d1\",\n \"300\": \"#c9a8ba\",\n \"400\": \"#b78ba3\",\n \"500\": \"#a56e8c\",\n \"600\": \"#7f4968\",\n \"700\": \"#5e2c41\",\n \"800\": \"#4b2334\",\n \"900\": \"#381a27\",\n \"950\": \"#1c0d13\"\n }\n },\n {\n \"name\": \"sage\",\n \"description\": \"Core 4 - Muted green/gray\",\n \"shades\": {\n \"50\": \"#f7f7f5\",\n \"100\": \"#eaebe6\",\n \"200\": \"#dddfd5\",\n \"300\": \"#d0d3c5\",\n \"400\": \"#c3c7b5\",\n \"500\": \"#b6baa4\",\n \"600\": \"#969a82\",\n \"700\": \"#757968\",\n \"800\": \"#54574e\",\n \"900\": \"#333634\",\n \"950\": \"#1a1b1a\"\n }\n },\n {\n \"name\": \"stone\",\n \"description\": \"Collection - Stone gray\",\n \"shades\": {\n \"50\": \"#f7f7f7\",\n \"100\": \"#ebebeb\",\n \"200\": \"#d7d8d7\",\n \"300\": \"#c3c5c3\",\n \"400\": \"#afb2af\",\n \"500\": \"#9b9f9b\",\n \"600\": \"#878c87\",\n \"700\": \"#676d69\",\n \"800\": \"#4d524f\",\n \"900\": \"#333735\",\n \"950\": \"#1a1b1b\"\n }\n },\n {\n \"name\": \"forest\",\n \"description\": \"Collection - Forest green\",\n \"shades\": {\n \"50\": \"#f4f7f5\",\n \"100\": \"#e1ebe4\",\n \"200\": \"#c3d7c9\",\n \"300\": \"#a5c3ae\",\n \"400\": \"#87af93\",\n \"500\": \"#6aa275\",\n \"600\": \"#55825d\",\n \"700\": \"#406146\",\n \"800\": \"#2b412e\",\n \"900\": \"#162017\",\n \"950\": \"#0b100c\"\n }\n },\n {\n \"name\": \"lavender\",\n \"description\": \"Collection - Lavender purple\",\n \"shades\": {\n \"50\": \"#f7f6f8\",\n \"100\": \"#ece9ed\",\n \"200\": \"#d9d3db\",\n \"300\": \"#c6bdc9\",\n \"400\": \"#b3a7b7\",\n \"500\": \"#a091a5\",\n \"600\": \"#8d7b93\",\n \"700\": \"#695a75\",\n \"800\": \"#51445a\",\n \"900\": \"#392e3f\",\n \"950\": \"#1d1720\"\n }\n },\n {\n \"name\": \"sky\",\n \"description\": \"Collection - Sky blue\",\n \"shades\": {\n \"50\": \"#f4f8fb\",\n \"100\": \"#e2ecf3\",\n \"200\": \"#c5d9e7\",\n \"300\": \"#a8c6db\",\n \"400\": \"#8bb3cf\",\n \"500\": \"#6ea0c3\",\n \"600\": \"#5f91b8\",\n \"700\": \"#4c7493\",\n \"800\": \"#39576e\",\n \"900\": \"#263a49\",\n \"950\": \"#131d25\"\n }\n },\n {\n \"name\": \"deepTeal\",\n \"description\": \"Collection - Deep teal\",\n \"shades\": {\n \"50\": \"#f2f5f5\",\n \"100\": \"#dce5e4\",\n \"200\": \"#b9cbc9\",\n \"300\": \"#96b1ae\",\n \"400\": \"#739793\",\n \"500\": \"#507d78\",\n \"600\": \"#306966\",\n \"800\": \"#18332f\",\n \"900\": \"#0c1918\",\n \"950\": \"#060c0c\"\n }\n },\n {\n \"name\": \"charcoal\",\n \"description\": \"Collection - Charcoal gray\",\n \"shades\": {\n \"50\": \"#f5f5f5\",\n \"100\": \"#e6e6e6\",\n \"200\": \"#cccccc\",\n \"300\": \"#b3b3b3\",\n \"400\": \"#999999\",\n \"500\": \"#808080\",\n \"600\": \"#666666\",\n \"700\": \"#4d4d4d\",\n \"800\": \"#333333\",\n \"900\": \"#292424\",\n \"950\": \"#141212\"\n }\n }\n ],\n \"semantic\": {\n \"background\": {\n \"light\": \"white\",\n \"dark\": \"charcoal-900\"\n },\n \"foreground\": {\n \"light\": \"gray-950\",\n \"dark\": \"gray-50\"\n },\n \"primary\": {\n \"light\": \"red-700\",\n \"dark\": \"red-500\"\n },\n \"secondary\": {\n \"light\": \"gray-100\",\n \"dark\": \"gray-800\"\n },\n \"accent\": {\n \"light\": \"teal-500\",\n \"dark\": \"teal-500\"\n },\n \"muted\": {\n \"light\": \"gray-100\",\n \"dark\": \"gray-800\"\n },\n \"destructive\": {\n \"light\": \"red-500\",\n \"dark\": \"red-900\"\n },\n \"success\": {\n \"light\": \"forest-500\",\n \"dark\": \"forest-500\"\n },\n \"warning\": {\n \"light\": \"amber-500\",\n \"dark\": \"amber-500\"\n },\n \"info\": {\n \"light\": \"sky-500\",\n \"dark\": \"sky-500\"\n }\n }\n },\n \"spacing\": [\n {\n \"key\": \"0\",\n \"value\": \"0\",\n \"pixels\": \"0\"\n },\n {\n \"key\": \"px\",\n \"value\": \"1px\",\n \"pixels\": \"1px\"\n },\n {\n \"key\": \"1\",\n \"value\": \"0.25rem\",\n \"pixels\": \"4px\"\n },\n {\n \"key\": \"2\",\n \"value\": \"0.5rem\",\n \"pixels\": \"8px\"\n },\n {\n \"key\": \"3\",\n \"value\": \"0.75rem\",\n \"pixels\": \"12px\"\n },\n {\n \"key\": \"4\",\n \"value\": \"1rem\",\n \"pixels\": \"16px\"\n },\n {\n \"key\": \"5\",\n \"value\": \"1.25rem\",\n \"pixels\": \"20px\"\n },\n {\n \"key\": \"6\",\n \"value\": \"1.5rem\",\n \"pixels\": \"24px\"\n },\n {\n \"key\": \"8\",\n \"value\": \"2rem\",\n \"pixels\": \"32px\"\n },\n {\n \"key\": \"10\",\n \"value\": \"2.5rem\",\n \"pixels\": \"40px\"\n },\n {\n \"key\": \"12\",\n \"value\": \"3rem\",\n \"pixels\": \"48px\"\n },\n {\n \"key\": \"16\",\n \"value\": \"4rem\",\n \"pixels\": \"64px\"\n },\n {\n \"key\": \"20\",\n \"value\": \"5rem\",\n \"pixels\": \"80px\"\n },\n {\n \"key\": \"24\",\n \"value\": \"6rem\",\n \"pixels\": \"96px\"\n }\n ],\n \"typography\": {\n \"fontFamilies\": {\n \"sans\": \"Figtree, system-ui, sans-serif\",\n \"serif\": \"Source Serif Variable, Georgia, serif\",\n \"mono\": \"ui-monospace, SFMono-Regular, monospace\"\n },\n \"fontSizes\": {\n \"xs\": {\n \"size\": \"0.75rem\",\n \"lineHeight\": \"1rem\"\n },\n \"sm\": {\n \"size\": \"0.875rem\",\n \"lineHeight\": \"1.25rem\"\n },\n \"base\": {\n \"size\": \"1rem\",\n \"lineHeight\": \"1.5rem\"\n },\n \"lg\": {\n \"size\": \"1.125rem\",\n \"lineHeight\": \"1.75rem\"\n },\n \"xl\": {\n \"size\": \"1.25rem\",\n \"lineHeight\": \"1.75rem\"\n },\n \"2xl\": {\n \"size\": \"1.5rem\",\n \"lineHeight\": \"2rem\"\n },\n \"3xl\": {\n \"size\": \"1.875rem\",\n \"lineHeight\": \"2.25rem\"\n },\n \"4xl\": {\n \"size\": \"2.25rem\",\n \"lineHeight\": \"2.5rem\"\n }\n },\n \"fontWeights\": {\n \"thin\": 100,\n \"light\": 300,\n \"normal\": 400,\n \"medium\": 500,\n \"semibold\": 600,\n \"bold\": 700,\n \"black\": 900\n }\n },\n \"borderRadius\": {\n \"none\": \"0\",\n \"sm\": \"0.125rem\",\n \"DEFAULT\": \"0.5rem\",\n \"md\": \"0.375rem\",\n \"lg\": \"0.5rem\",\n \"xl\": \"0.75rem\",\n \"2xl\": \"1rem\",\n \"full\": \"9999px\"\n },\n \"boxShadow\": {\n \"sm\": \"0 1px 2px rgba(0,0,0,0.05)\",\n \"DEFAULT\": \"0 1px 3px rgba(0,0,0,0.1)\",\n \"md\": \"0 4px 6px rgba(0,0,0,0.1)\",\n \"lg\": \"0 10px 15px rgba(0,0,0,0.1)\",\n \"xl\": \"0 20px 25px rgba(0,0,0,0.1)\"\n }\n}","/**\n * Token Resources\n *\n * Provides access to design token data.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport tokenDefinitions from '../data/token-definitions.json' with { type: 'json' };\nimport type { TokenDefinitions } from '../types.js';\n\nconst tokens = tokenDefinitions as TokenDefinitions;\n\n/**\n * Register token-related resources\n */\nexport function registerTokenResources(server: McpServer): void {\n // All tokens\n server.resource('tokens://all', 'tokens://all', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(tokens, null, 2),\n },\n ],\n }));\n\n // Color tokens\n server.resource('tokens://colors', 'tokens://colors', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(tokens.colors, null, 2),\n },\n ],\n }));\n\n // Spacing tokens\n server.resource('tokens://spacing', 'tokens://spacing', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(tokens.spacing, null, 2),\n },\n ],\n }));\n\n // Typography tokens\n server.resource('tokens://typography', 'tokens://typography', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(tokens.typography, null, 2),\n },\n ],\n }));\n}\n","/**\n * Layout Resources\n *\n * Provides access to layout and form pattern data.\n */\n\nimport { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport patternLibrary from '../data/pattern-library.json' with { type: 'json' };\nimport type { PatternLibrary } from '../types.js';\n\nconst patterns = patternLibrary as unknown as PatternLibrary;\n\n/**\n * Register layout and pattern resources\n */\nexport function registerLayoutResources(server: McpServer): void {\n // All patterns\n server.resource('All Patterns', 'patterns://all', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(patterns, null, 2),\n },\n ],\n }));\n\n // Layout patterns\n server.resource('Layout Patterns', 'patterns://layouts', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(patterns.layouts, null, 2),\n },\n ],\n }));\n\n // Form patterns\n server.resource('Form Patterns', 'patterns://forms', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(patterns.forms, null, 2),\n },\n ],\n }));\n\n // Individual pattern by ID\n server.resource(\n 'Pattern Details',\n new ResourceTemplate('patterns://{id}', { list: undefined }),\n async (uri, params) => {\n const id = params.id as string;\n const layout = patterns.layouts.find((l) => l.id === id);\n const form = patterns.forms.find((f) => f.id === id);\n const pattern = layout || form;\n\n if (!pattern) {\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify({ error: `Pattern \"${id}\" not found` }),\n },\n ],\n };\n }\n\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(pattern, null, 2),\n },\n ],\n };\n }\n );\n}\n","{\n \"version\": \"0.1.0\",\n \"layouts\": [\n {\n \"id\": \"dashboard-page\",\n \"name\": \"Dashboard Page\",\n \"description\": \"Full dashboard layout with sidebar navigation\",\n \"useCase\": \"Authenticated dashboard pages\",\n \"components\": [\n \"DashboardLayout\",\n \"Sidebar\",\n \"Header\"\n ],\n \"props\": {\n \"navigation\": \"NavSection[]\",\n \"user\": \"User\",\n \"sidebarVariant\": \"'light' | 'dark'\"\n },\n \"example\": \"<script lang=\\\"ts\\\">\\n import { DashboardLayout } from '@classic-homes/theme-svelte';\\n import type { NavSection, User } from '@classic-homes/theme-svelte';\\n\\n const navigation: NavSection[] = [\\n {\\n id: 'main',\\n items: [\\n { id: 'dashboard', name: 'Dashboard', href: '/dashboard', icon: 'home' },\\n { id: 'settings', name: 'Settings', href: '/settings', icon: 'settings' },\\n ],\\n },\\n ];\\n\\n const user: User = {\\n id: '1',\\n name: 'John Doe',\\n email: 'john@example.com',\\n };\\n</script>\\n\\n<DashboardLayout {navigation} {user} appName=\\\"My App\\\">\\n <h1>Welcome to Dashboard</h1>\\n</DashboardLayout>\"\n },\n {\n \"id\": \"public-page\",\n \"name\": \"Public Page\",\n \"description\": \"Public-facing page with header and footer\",\n \"useCase\": \"Marketing pages, landing pages\",\n \"components\": [\n \"PublicLayout\",\n \"Header\",\n \"Footer\"\n ],\n \"props\": {\n \"navigation\": \"NavItem[]\",\n \"footerLinks\": \"NavSection[]\",\n \"copyright\": \"string\"\n },\n \"example\": \"<script lang=\\\"ts\\\">\\n import { PublicLayout } from '@classic-homes/theme-svelte';\\n import type { NavItem } from '@classic-homes/theme-svelte';\\n\\n const navigation: NavItem[] = [\\n { id: 'home', name: 'Home', href: '/' },\\n { id: 'about', name: 'About', href: '/about' },\\n { id: 'contact', name: 'Contact', href: '/contact' },\\n ];\\n</script>\\n\\n<PublicLayout {navigation} showFooter copyright=\\\"© 2025 Company\\\">\\n <main>Page content</main>\\n</PublicLayout>\"\n },\n {\n \"id\": \"auth-page\",\n \"name\": \"Auth Page\",\n \"description\": \"Centered layout for authentication forms\",\n \"useCase\": \"Login, signup, password reset pages\",\n \"components\": [\n \"AuthLayout\"\n ],\n \"props\": {\n \"logoSubtitle\": \"string\",\n \"backgroundVariant\": \"'default' | 'gradient' | 'pattern'\",\n \"maxWidth\": \"'sm' | 'md' | 'lg'\"\n },\n \"example\": \"<script lang=\\\"ts\\\">\\n import { AuthLayout, Button, FormField } from '@classic-homes/theme-svelte';\\n</script>\\n\\n<AuthLayout logoSubtitle=\\\"Sign in to your account\\\">\\n <form>\\n <FormField label=\\\"Email\\\" type=\\\"email\\\" name=\\\"email\\\" />\\n <FormField label=\\\"Password\\\" type=\\\"password\\\" name=\\\"password\\\" />\\n <Button type=\\\"submit\\\" class=\\\"w-full\\\">Sign In</Button>\\n </form>\\n</AuthLayout>\"\n },\n {\n \"id\": \"error-page\",\n \"name\": \"Error Page\",\n \"description\": \"Centered error page layout\",\n \"useCase\": \"404, 500, and other error pages\",\n \"components\": [\n \"ErrorLayout\"\n ],\n \"props\": {\n \"statusCode\": \"number\",\n \"title\": \"string\",\n \"description\": \"string\"\n },\n \"example\": \"<script lang=\\\"ts\\\">\\n import { ErrorLayout } from '@classic-homes/theme-svelte';\\n</script>\\n\\n<ErrorLayout\\n statusCode={404}\\n title=\\\"Page Not Found\\\"\\n description=\\\"The page you're looking for doesn't exist.\\\"\\n showHomeButton\\n/>\"\n },\n {\n \"id\": \"form-page\",\n \"name\": \"Form Page\",\n \"description\": \"Form-focused page with optional sidebar\",\n \"useCase\": \"Multi-step forms, data entry\",\n \"components\": [\n \"FormPageLayout\"\n ],\n \"props\": {\n \"title\": \"string\",\n \"description\": \"string\",\n \"helpText\": \"string\"\n },\n \"example\": \"<script lang=\\\"ts\\\">\\n import { FormPageLayout, FormField, Button } from '@classic-homes/theme-svelte';\\n</script>\\n\\n<FormPageLayout\\n title=\\\"Create Account\\\"\\n description=\\\"Fill in the form to create your account\\\"\\n helpText=\\\"Need help? Contact support.\\\"\\n>\\n <form>\\n <!-- Form fields -->\\n </form>\\n</FormPageLayout>\"\n }\n ],\n \"forms\": [\n {\n \"id\": \"login-form\",\n \"name\": \"Login Form\",\n \"description\": \"Standard login form with email and password\",\n \"schema\": \"loginSchema\",\n \"components\": [\n \"FormField\",\n \"Button\",\n \"useForm\"\n ],\n \"example\": \"<script lang=\\\"ts\\\">\\n import { FormField, Button, useForm, loginSchema } from '@classic-homes/theme-svelte';\\n\\n const form = useForm({\\n schema: loginSchema,\\n initialValues: { email: '', password: '' },\\n onSubmit: async (data) => {\\n // Handle login\\n },\\n });\\n</script>\\n\\n<form onsubmit={form.handleSubmit}>\\n <FormField\\n label=\\\"Email\\\"\\n type=\\\"email\\\"\\n name=\\\"email\\\"\\n value={form.data.email}\\n error={form.errors.email}\\n onValueChange={(v) => form.setField('email', v)}\\n />\\n <FormField\\n label=\\\"Password\\\"\\n type=\\\"password\\\"\\n name=\\\"password\\\"\\n value={form.data.password}\\n error={form.errors.password}\\n onValueChange={(v) => form.setField('password', v)}\\n />\\n <Button type=\\\"submit\\\" loading={form.isSubmitting}>Sign In</Button>\\n</form>\"\n },\n {\n \"id\": \"registration-form\",\n \"name\": \"Registration Form\",\n \"description\": \"User registration form with validation\",\n \"schema\": \"registerSchema\",\n \"components\": [\n \"FormField\",\n \"Button\",\n \"useForm\"\n ],\n \"example\": \"<script lang=\\\"ts\\\">\\n import { FormField, Button, useForm, registerSchema } from '@classic-homes/theme-svelte';\\n\\n const form = useForm({\\n schema: registerSchema,\\n initialValues: { email: '', password: '', confirmPassword: '', fullName: '' },\\n onSubmit: async (data) => {\\n // Handle registration\\n },\\n });\\n</script>\\n\\n<form onsubmit={form.handleSubmit}>\\n <FormField label=\\\"Full Name\\\" name=\\\"fullName\\\" />\\n <FormField label=\\\"Email\\\" type=\\\"email\\\" name=\\\"email\\\" />\\n <FormField label=\\\"Password\\\" type=\\\"password\\\" name=\\\"password\\\" />\\n <FormField label=\\\"Confirm Password\\\" type=\\\"password\\\" name=\\\"confirmPassword\\\" />\\n <Button type=\\\"submit\\\" loading={form.isSubmitting}>Create Account</Button>\\n</form>\"\n },\n {\n \"id\": \"contact-form\",\n \"name\": \"Contact Form\",\n \"description\": \"Contact form with name, email, and message\",\n \"components\": [\n \"FormField\",\n \"Textarea\",\n \"Button\",\n \"useForm\"\n ],\n \"example\": \"<script lang=\\\"ts\\\">\\n import { FormField, Button, useForm } from '@classic-homes/theme-svelte';\\n import { z } from 'zod';\\n\\n const contactSchema = z.object({\\n name: z.string().min(2),\\n email: z.string().email(),\\n message: z.string().min(10),\\n });\\n\\n const form = useForm({\\n schema: contactSchema,\\n initialValues: { name: '', email: '', message: '' },\\n onSubmit: async (data) => {\\n // Handle contact form\\n },\\n });\\n</script>\\n\\n<form onsubmit={form.handleSubmit}>\\n <FormField label=\\\"Name\\\" name=\\\"name\\\" />\\n <FormField label=\\\"Email\\\" type=\\\"email\\\" name=\\\"email\\\" />\\n <FormField label=\\\"Message\\\" type=\\\"textarea\\\" name=\\\"message\\\" />\\n <Button type=\\\"submit\\\">Send Message</Button>\\n</form>\"\n }\n ]\n}","{\n \"auth\": [\n {\n \"name\": \"emailSchema\",\n \"description\": \"Email validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"passwordSchema\",\n \"description\": \"Strong password (8+ chars, mixed case, numbers, special)\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"loginPasswordSchema\",\n \"description\": \"Simpler password validation for login\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"usernameSchema\",\n \"description\": \"Username validation (3-30 chars, alphanumeric)\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"fullNameSchema\",\n \"description\": \"Full name validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"phoneSchema\",\n \"description\": \"Phone number validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"mfaCodeSchema\",\n \"description\": \"MFA code validation (6 digits)\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"loginSchema\",\n \"description\": \"Complete login form schema\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"registerSchema\",\n \"description\": \"Complete registration form schema\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"forgotPasswordSchema\",\n \"description\": \"Forgot password form schema\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"resetPasswordSchema\",\n \"description\": \"Reset password form schema\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"changePasswordSchema\",\n \"description\": \"Change password form schema\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n }\n ],\n \"common\": [\n {\n \"name\": \"nonEmptyString\",\n \"description\": \"Non-empty string validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"trimmedString\",\n \"description\": \"Trimmed string\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"urlSchema\",\n \"description\": \"URL validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"slugSchema\",\n \"description\": \"URL slug validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"positiveInt\",\n \"description\": \"Positive integer validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"nonNegativeInt\",\n \"description\": \"Non-negative integer\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"percentageSchema\",\n \"description\": \"Percentage (0-100)\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"priceSchema\",\n \"description\": \"Price validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"isoDateSchema\",\n \"description\": \"ISO date string validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"futureDateSchema\",\n \"description\": \"Future date validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"pastDateSchema\",\n \"description\": \"Past date validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n }\n ],\n \"file\": [\n {\n \"name\": \"maxFileSize\",\n \"description\": \"File size limit validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"allowedFileTypes\",\n \"description\": \"File type validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"imageFileSchema\",\n \"description\": \"Image file validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n }\n ],\n \"api\": [\n {\n \"name\": \"apiResponseSchema\",\n \"description\": \"Standard API response schema\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"paginatedResponseSchema\",\n \"description\": \"Paginated API response\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n }\n ]\n}","/**\n * Schema Resources\n *\n * Provides access to validation schema information.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport schemaCatalog from '../data/schema-catalog.json' with { type: 'json' };\nimport type { SchemaCatalog } from '../types.js';\n\nconst schemas = schemaCatalog as SchemaCatalog;\n\n/**\n * Register schema-related resources\n */\nexport function registerSchemaResources(server: McpServer): void {\n // All schemas\n server.resource('schemas://all', 'schemas://all', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(schemas, null, 2),\n },\n ],\n }));\n\n // Auth schemas\n server.resource('schemas://auth', 'schemas://auth', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(schemas.auth, null, 2),\n },\n ],\n }));\n\n // Common schemas\n server.resource('schemas://common', 'schemas://common', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(schemas.common, null, 2),\n },\n ],\n }));\n}\n","/**\n * MCP Resources Registration\n *\n * Resources provide read-only access to design system documentation.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { registerComponentResources } from './components.js';\nimport { registerTokenResources } from './tokens.js';\nimport { registerLayoutResources } from './layouts.js';\nimport { registerSchemaResources } from './schemas.js';\n\n/**\n * Register all resources with the MCP server\n */\nexport function registerResources(server: McpServer): void {\n registerComponentResources(server);\n registerTokenResources(server);\n registerLayoutResources(server);\n registerSchemaResources(server);\n}\n","/**\n * Search Components Tool\n *\n * Allows AI models to search for components by name, category, or functionality.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\nimport componentCatalog from '../data/component-catalog.json' with { type: 'json' };\nimport type { ComponentCatalog } from '../types.js';\n\nconst catalog = componentCatalog as ComponentCatalog;\n\nconst SearchComponentsSchema = z.object({\n query: z.string().describe('Search query (component name, description, or functionality)'),\n category: z\n .enum(['core', 'form', 'layout', 'feedback', 'data', 'overlay', 'navigation', 'branding'])\n .optional()\n .describe('Filter by component category'),\n limit: z.number().min(1).max(50).default(10).describe('Maximum number of results'),\n});\n\n/**\n * Register the search_components tool\n */\nexport function registerSearchComponentsTool(server: McpServer): void {\n server.tool(\n 'search_components',\n 'Search for components by name, category, or functionality',\n SearchComponentsSchema.shape,\n async (params) => {\n const { query, category, limit } = SearchComponentsSchema.parse(params);\n const queryLower = query.toLowerCase();\n\n const results = catalog.components\n .filter((component) => {\n // Category filter\n if (category && component.category !== category) {\n return false;\n }\n\n // Search in name, description, and tags\n const searchableText = [\n component.name,\n component.description,\n ...component.props.map((p) => p.name),\n ...component.relatedComponents,\n ]\n .join(' ')\n .toLowerCase();\n\n return searchableText.includes(queryLower);\n })\n .slice(0, limit)\n .map((c) => ({\n name: c.name,\n category: c.category,\n description: c.description,\n importPath: c.importPath,\n propsCount: c.props.length,\n variants: c.variants.map((v) => v.name),\n }));\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(\n {\n query,\n category: category || 'all',\n resultCount: results.length,\n results,\n hint:\n results.length === 0\n ? 'Try broader search terms or remove the category filter'\n : results.length === limit\n ? `Showing first ${limit} results. Refine your search for more specific results.`\n : undefined,\n },\n null,\n 2\n ),\n },\n ],\n };\n }\n );\n}\n","/**\n * Get Component Props Tool\n *\n * Provides detailed prop definitions for a specific component.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\nimport componentCatalog from '../data/component-catalog.json' with { type: 'json' };\nimport type { ComponentCatalog } from '../types.js';\n\nconst catalog = componentCatalog as ComponentCatalog;\n\nconst GetComponentPropsSchema = z.object({\n componentName: z.string().describe('Name of the component (e.g., \"Button\", \"DashboardLayout\")'),\n includeExamples: z.boolean().default(true).describe('Whether to include usage examples'),\n});\n\n/**\n * Register the get_component_props tool\n */\nexport function registerGetComponentPropsTool(server: McpServer): void {\n server.tool(\n 'get_component_props',\n 'Get detailed prop definitions for a specific component',\n GetComponentPropsSchema.shape,\n async (params) => {\n const { componentName, includeExamples } = GetComponentPropsSchema.parse(params);\n\n const component = catalog.components.find(\n (c) => c.name.toLowerCase() === componentName.toLowerCase()\n );\n\n if (!component) {\n // Suggest similar components\n const suggestions = catalog.components\n .filter((c) => c.name.toLowerCase().includes(componentName.toLowerCase().slice(0, 3)))\n .slice(0, 5)\n .map((c) => c.name);\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(\n {\n error: `Component \"${componentName}\" not found`,\n suggestions: suggestions.length > 0 ? suggestions : undefined,\n hint: 'Use search_components tool to find available components',\n },\n null,\n 2\n ),\n },\n ],\n };\n }\n\n const result: Record<string, unknown> = {\n name: component.name,\n description: component.description,\n category: component.category,\n importPath: component.importPath,\n props: component.props,\n variants: component.variants,\n slots: component.slots,\n events: component.events,\n accessibility: component.accessibility,\n relatedComponents: component.relatedComponents,\n };\n\n if (includeExamples) {\n result.examples = component.examples;\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result, null, 2),\n },\n ],\n };\n }\n );\n}\n","/**\n * Suggest Pattern Tool\n *\n * Recommends patterns for common use cases.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\nimport patternLibrary from '../data/pattern-library.json' with { type: 'json' };\nimport type { PatternLibrary } from '../types.js';\n\nconst patterns = patternLibrary as unknown as PatternLibrary;\n\nconst SuggestPatternSchema = z.object({\n useCase: z\n .enum([\n // Layout patterns\n 'dashboard-page',\n 'public-page',\n 'auth-page',\n 'error-page',\n 'form-page',\n // Form patterns\n 'login-form',\n 'registration-form',\n 'contact-form',\n ])\n .describe('The use case you need a pattern for'),\n requirements: z.array(z.string()).optional().describe('Additional requirements or constraints'),\n});\n\n/**\n * Register the suggest_pattern tool\n */\nexport function registerSuggestPatternTool(server: McpServer): void {\n server.tool(\n 'suggest_pattern',\n 'Get recommended patterns for common use cases',\n SuggestPatternSchema.shape,\n async (params) => {\n const { useCase, requirements } = SuggestPatternSchema.parse(params);\n\n // Find matching layout or form pattern\n const layout = patterns.layouts.find((l) => l.id === useCase || l.useCase === useCase);\n const form = patterns.forms.find((f) => f.id === useCase);\n const pattern = layout || form;\n\n if (!pattern) {\n // Suggest available patterns\n const availablePatterns = [\n ...patterns.layouts.map((l) => ({ id: l.id, type: 'layout', name: l.name })),\n ...patterns.forms.map((f) => ({ id: f.id, type: 'form', name: f.name })),\n ];\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(\n {\n error: `No pattern found for use case \"${useCase}\"`,\n availablePatterns,\n hint: 'Use one of the available pattern IDs',\n },\n null,\n 2\n ),\n },\n ],\n };\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(\n {\n pattern,\n requirements: requirements || [],\n implementationTips: [\n 'Import components from @classic-homes/theme-svelte',\n 'Use the provided example as a starting point',\n 'Customize props based on your specific requirements',\n 'Follow accessibility guidelines in component documentation',\n ],\n },\n null,\n 2\n ),\n },\n ],\n };\n }\n );\n}\n","/**\n * Validate Usage Tool\n *\n * Validates if component usage follows design system guidelines.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\nimport componentCatalog from '../data/component-catalog.json' with { type: 'json' };\nimport type { ComponentCatalog } from '../types.js';\n\nconst catalog = componentCatalog as ComponentCatalog;\n\nconst ValidateUsageSchema = z.object({\n componentName: z.string().describe('Name of the component being used'),\n props: z.record(z.unknown()).describe('Props being passed to the component'),\n context: z\n .string()\n .optional()\n .describe('Where the component is being used (e.g., \"inside a form\", \"in modal\")'),\n});\n\ninterface ValidationIssue {\n type: 'error' | 'warning' | 'suggestion';\n message: string;\n prop?: string;\n}\n\n/**\n * Register the validate_usage tool\n */\nexport function registerValidateUsageTool(server: McpServer): void {\n server.tool(\n 'validate_component_usage',\n 'Validate if component usage follows design system guidelines',\n ValidateUsageSchema.shape,\n async (params) => {\n const { componentName, props, context } = ValidateUsageSchema.parse(params);\n\n const component = catalog.components.find(\n (c) => c.name.toLowerCase() === componentName.toLowerCase()\n );\n\n if (!component) {\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(\n {\n valid: false,\n errors: [{ type: 'error', message: `Unknown component \"${componentName}\"` }],\n },\n null,\n 2\n ),\n },\n ],\n };\n }\n\n const issues: ValidationIssue[] = [];\n\n // Check for unknown props\n const knownProps = new Set(component.props.map((p) => p.name));\n for (const propName of Object.keys(props)) {\n if (!knownProps.has(propName) && propName !== 'class' && propName !== 'children') {\n issues.push({\n type: 'warning',\n message: `Unknown prop \"${propName}\" - not in component API`,\n prop: propName,\n });\n }\n }\n\n // Check for required props\n for (const propDef of component.props) {\n if (propDef.required && !(propDef.name in props)) {\n issues.push({\n type: 'error',\n message: `Missing required prop \"${propDef.name}\"`,\n prop: propDef.name,\n });\n }\n }\n\n // Check variant values\n for (const variant of component.variants) {\n const propValue = props[variant.name];\n if (propValue !== undefined && !variant.values.includes(String(propValue))) {\n issues.push({\n type: 'error',\n message: `Invalid value \"${propValue}\" for \"${variant.name}\". Valid values: ${variant.values.join(', ')}`,\n prop: variant.name,\n });\n }\n }\n\n // Context-specific suggestions\n if (context) {\n if (context.includes('form') && component.name === 'Button') {\n const buttonType = props['type'];\n if (!buttonType) {\n issues.push({\n type: 'suggestion',\n message: 'Consider setting type=\"submit\" for form submission buttons',\n prop: 'type',\n });\n }\n }\n\n if (context.includes('modal') || context.includes('dialog')) {\n if (component.category === 'layout') {\n issues.push({\n type: 'warning',\n message: `Layout component \"${component.name}\" is typically not used inside modals`,\n });\n }\n }\n }\n\n // Accessibility checks\n if (component.name === 'Button' && props['size'] === 'icon' && !props['aria-label']) {\n issues.push({\n type: 'error',\n message: 'Icon-only buttons must have an aria-label for accessibility',\n prop: 'aria-label',\n });\n }\n\n const errors = issues.filter((i) => i.type === 'error');\n const warnings = issues.filter((i) => i.type === 'warning');\n const suggestions = issues.filter((i) => i.type === 'suggestion');\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(\n {\n valid: errors.length === 0,\n component: component.name,\n errors,\n warnings,\n suggestions,\n propCount: Object.keys(props).length,\n availableProps: component.props.map((p) => p.name),\n },\n null,\n 2\n ),\n },\n ],\n };\n }\n );\n}\n","/**\n * MCP Tools Registration\n *\n * Tools allow AI models to query the design system.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { registerSearchComponentsTool } from './searchComponents.js';\nimport { registerGetComponentPropsTool } from './getComponentProps.js';\nimport { registerSuggestPatternTool } from './suggestPattern.js';\nimport { registerValidateUsageTool } from './validateUsage.js';\n\n/**\n * Register all tools with the MCP server\n */\nexport function registerTools(server: McpServer): void {\n registerSearchComponentsTool(server);\n registerGetComponentPropsTool(server);\n registerSuggestPatternTool(server);\n registerValidateUsageTool(server);\n}\n","/**\n * Build Form Prompt\n *\n * Helps create forms following Classic Theme patterns.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\n\nconst BuildFormSchema = z.object({\n formType: z.string().describe('Type of form (login, registration, contact, settings, custom)'),\n fields: z\n .string()\n .describe('Comma-separated list of field names (e.g., \"email, password, name\")'),\n includeValidation: z\n .string()\n .optional()\n .describe('Whether to include Zod validation schema (true/false)'),\n});\n\n/**\n * Register the build_form prompt\n */\nexport function registerBuildFormPrompt(server: McpServer): void {\n server.prompt(\n 'build_form',\n 'Create a form following Classic Theme patterns with proper validation',\n BuildFormSchema.shape,\n async (params) => {\n const parsed = BuildFormSchema.parse(params);\n const formType = parsed.formType || 'custom';\n const fields = (parsed.fields || '').split(',').map((f: string) => f.trim());\n const shouldIncludeValidation = parsed.includeValidation !== 'false';\n\n const fieldList = fields.map((f) => `- ${f}`).join('\\n');\n\n return {\n messages: [\n {\n role: 'user',\n content: {\n type: 'text',\n text: `Create a ${formType} form with these fields:\n${fieldList}\n\nRequirements:\n- Import components from '@classic-homes/theme-svelte'\n- Use the FormField component for each field\n- Use the useForm composable for state management\n${shouldIncludeValidation ? '- Include Zod schema validation using schemas from @classic-homes/theme-svelte' : ''}\n- Handle form submission with loading state\n- Show error messages for validation failures\n- Follow Svelte 5 runes syntax ($props, $state, $derived)\n\nAvailable form components:\n- FormField: Combines label, input, error message, and hint text\n- Input: Text input with value binding\n- Textarea: Multi-line text input\n- Select: Dropdown selection\n- Checkbox: Boolean checkbox\n- RadioGroup: Radio button group\n- DateTimePicker: Date and time selection\n- FileUpload: File upload with progress\n\nAvailable validation schemas (from @classic-homes/theme-svelte):\n- emailSchema: Email validation\n- passwordSchema: Strong password (8+ chars, mixed case, numbers, special)\n- loginPasswordSchema: Simpler password for login\n- usernameSchema: Username validation\n- fullNameSchema: Name validation\n- phoneSchema: Phone number validation\n\nExample structure:\n\\`\\`\\`svelte\n<script lang=\"ts\">\n import { FormField, Button, useForm } from '@classic-homes/theme-svelte';\n import { z } from 'zod';\n\n const schema = z.object({\n // field definitions\n });\n\n const form = useForm({\n schema,\n initialValues: { /* ... */ },\n onSubmit: async (data) => { /* ... */ },\n });\n</script>\n\n<form onsubmit={form.handleSubmit}>\n <!-- FormField components -->\n <Button type=\"submit\" loading={form.isSubmitting}>Submit</Button>\n</form>\n\\`\\`\\``,\n },\n },\n ],\n };\n }\n );\n}\n","/**\n * Layout Page Prompt\n *\n * Helps create page layouts using Classic Theme components.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\n\nconst LayoutPageSchema = z.object({\n pageType: z.string().describe('Type of page (dashboard, public, auth, error, form)'),\n features: z\n .string()\n .optional()\n .describe('Comma-separated features needed (e.g., \"sidebar, search, user-menu\")'),\n});\n\n/**\n * Register the layout_page prompt\n */\nexport function registerLayoutPagePrompt(server: McpServer): void {\n server.prompt(\n 'layout_page',\n 'Create a page layout using Classic Theme layout components',\n LayoutPageSchema.shape,\n async (params) => {\n const parsed = LayoutPageSchema.parse(params);\n const pageType = parsed.pageType || 'public';\n const features = (parsed.features || '')\n .split(',')\n .map((f: string) => f.trim())\n .filter(Boolean);\n\n const featureList = features.length > 0 ? `With features: ${features.join(', ')}` : '';\n\n const layoutGuide: Record<string, string> = {\n dashboard: `DashboardLayout - For authenticated dashboard pages with sidebar navigation\n- Props: navigation (NavSection[]), user (User), appName, pageTitle, sidebarVariant, headerSearch\n- Supports: collapsible sidebar, user menu, quick links, mobile responsive`,\n\n public: `PublicLayout - For public-facing pages with header and footer\n- Props: navigation (NavItem[]), footerLinks (NavSection[]), copyright, headerSearch\n- Supports: responsive header nav, footer link sections, logo customization`,\n\n auth: `AuthLayout - For authentication pages (login, signup, etc.)\n- Props: logoSubtitle, logoEnvironment, footerLinks, backgroundVariant, maxWidth\n- Supports: centered card layout, decorative backgrounds, footer links`,\n\n error: `ErrorLayout - For error pages (404, 500, etc.)\n- Props: statusCode, title, description, showHomeButton, showBackButton, illustration\n- Supports: custom error illustrations, action buttons, status codes`,\n\n form: `FormPageLayout - For multi-step forms or data entry pages\n- Props: title, description, helpText, showNotices\n- Supports: optional sidebar, notices section, help text`,\n };\n\n const layoutInfo = layoutGuide[pageType] || layoutGuide.public;\n\n return {\n messages: [\n {\n role: 'user',\n content: {\n type: 'text',\n text: `Create a ${pageType} page layout. ${featureList}\n\nLayout Component to Use:\n${layoutInfo}\n\nRequirements:\n- Import from '@classic-homes/theme-svelte'\n- Follow Svelte 5 runes syntax\n- Use TypeScript for type safety\n- Import and use proper types (NavSection, NavItem, User, etc.)\n\nKey Types:\n\\`\\`\\`typescript\ninterface NavItem {\n id: string;\n name: string;\n href?: string;\n icon?: string;\n badge?: string | number;\n children?: NavItem[];\n active?: boolean;\n}\n\ninterface NavSection {\n id: string;\n title?: string;\n items: NavItem[];\n}\n\ninterface User {\n id: string;\n name: string;\n email?: string;\n avatar?: string;\n roles?: string[];\n}\n\\`\\`\\`\n\nExample for ${pageType}Layout:\n\\`\\`\\`svelte\n<script lang=\"ts\">\n import { ${pageType.charAt(0).toUpperCase() + pageType.slice(1)}Layout } from '@classic-homes/theme-svelte';\n import type { NavSection, NavItem, User } from '@classic-homes/theme-svelte';\n\n // Define navigation, user data, etc.\n</script>\n\n<${pageType.charAt(0).toUpperCase() + pageType.slice(1)}Layout\n {/* props */}\n>\n <!-- Page content here -->\n</${pageType.charAt(0).toUpperCase() + pageType.slice(1)}Layout>\n\\`\\`\\``,\n },\n },\n ],\n };\n }\n );\n}\n","/**\n * Component Usage Prompt\n *\n * Helps generate correct component usage with proper props.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\nimport componentCatalog from '../data/component-catalog.json' with { type: 'json' };\nimport type { ComponentCatalog } from '../types.js';\n\nconst catalog = componentCatalog as ComponentCatalog;\n\nconst ComponentUsageSchema = z.object({\n componentName: z.string().describe('Name of the component (e.g., Button, Card, Select)'),\n variant: z.string().optional().describe('Desired variant (optional)'),\n useCase: z.string().optional().describe('Brief description of use case'),\n});\n\n/**\n * Register the component_usage prompt\n */\nexport function registerComponentUsagePrompt(server: McpServer): void {\n server.prompt(\n 'component_usage',\n 'Generate correct usage for a Classic Theme component',\n ComponentUsageSchema.shape,\n async (params) => {\n const parsed = ComponentUsageSchema.parse(params);\n const componentName = parsed.componentName || 'Button';\n const variant = parsed.variant || '';\n const useCase = parsed.useCase || '';\n\n const component = catalog.components.find(\n (c) => c.name.toLowerCase() === componentName.toLowerCase()\n );\n\n let componentInfo = '';\n if (component) {\n componentInfo = `\nComponent: ${component.name}\nDescription: ${component.description}\nCategory: ${component.category}\n\nProps:\n${component.props.map((p) => `- ${p.name}: ${p.type} ${p.required ? '(required)' : `(default: ${p.default || 'undefined'})`} - ${p.description}`).join('\\n')}\n\nVariants:\n${component.variants.map((v) => `- ${v.name}: ${v.values.join(' | ')} (default: ${v.default || v.values[0]})`).join('\\n')}\n\nExamples:\n${component.examples.map((e) => `### ${e.title}\\n\\`\\`\\`svelte\\n${e.code}\\n\\`\\`\\``).join('\\n\\n')}`;\n } else {\n componentInfo = `Component \"${componentName}\" not found in catalog. Available components: ${catalog.components.map((c) => c.name).join(', ')}`;\n }\n\n return {\n messages: [\n {\n role: 'user',\n content: {\n type: 'text',\n text: `Generate correct usage for the ${componentName} component from @classic-homes/theme-svelte.\n${variant ? `Desired variant: ${variant}` : ''}\n${useCase ? `Use case: ${useCase}` : ''}\n\n${componentInfo}\n\nRequirements:\n- Import from '@classic-homes/theme-svelte'\n- Use Svelte 5 runes syntax ($props, $state, etc.)\n- Include proper TypeScript types\n- Follow accessibility best practices\n- Add appropriate event handlers if needed`,\n },\n },\n ],\n };\n }\n );\n}\n","/**\n * MCP Prompts Registration\n *\n * Prompts provide templates for common development tasks.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { registerBuildFormPrompt } from './buildForm.js';\nimport { registerLayoutPagePrompt } from './layoutPage.js';\nimport { registerComponentUsagePrompt } from './componentUsage.js';\n\n/**\n * Register all prompts with the MCP server\n */\nexport function registerPrompts(server: McpServer): void {\n registerBuildFormPrompt(server);\n registerLayoutPagePrompt(server);\n registerComponentUsagePrompt(server);\n}\n"],"mappings":"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","names":["McpServer","ResourceTemplate","ResourceTemplate","catalog","z","catalog","z","z","patterns","z","z","catalog","z","z","z","z","catalog","z","McpServer"]}
|
|
1
|
+
{"version":3,"sources":["../src/cli.ts","../src/server.ts","../src/resources/components.ts","../src/data/component-catalog.json","../src/data/token-definitions.json","../src/resources/tokens.ts","../src/resources/layouts.ts","../src/data/pattern-library.json","../src/data/schema-catalog.json","../src/resources/schemas.ts","../src/resources/index.ts","../src/tools/searchComponents.ts","../src/tools/getComponentProps.ts","../src/tools/suggestPattern.ts","../src/tools/validateUsage.ts","../src/tools/index.ts","../src/prompts/buildForm.ts","../src/prompts/layoutPage.ts","../src/prompts/componentUsage.ts","../src/prompts/index.ts"],"sourcesContent":["#!/usr/bin/env node\n/**\n * Classic Theme MCP CLI\n *\n * Run this to start the MCP server for AI model integration.\n *\n * Usage:\n * classic-theme-mcp\n * node dist/cli.js\n */\n\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport { createServer } from './server.js';\n\nasync function main() {\n const server = createServer();\n const transport = new StdioServerTransport();\n await server.connect(transport);\n}\n\nmain().catch((error) => {\n console.error('Failed to start MCP server:', error);\n process.exit(1);\n});\n","/**\n * Classic Theme MCP Server\n *\n * Provides AI models with comprehensive design system knowledge including\n * components, design tokens, layout patterns, and validation schemas.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { registerResources } from './resources/index.js';\nimport { registerTools } from './tools/index.js';\nimport { registerPrompts } from './prompts/index.js';\n\n/**\n * Creates and configures the MCP server\n */\nexport function createServer(): McpServer {\n const server = new McpServer({\n name: 'classic-theme',\n version: '0.1.0',\n });\n\n // Register all MCP primitives\n registerResources(server);\n registerTools(server);\n registerPrompts(server);\n\n return server;\n}\n","/**\n * Component Resources\n *\n * Provides access to component catalog data.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport componentCatalog from '../data/component-catalog.json' with { type: 'json' };\nimport type { ComponentCatalog } from '../types.js';\n\nconst catalog = componentCatalog as ComponentCatalog;\n\n/**\n * Register component-related resources\n */\nexport function registerComponentResources(server: McpServer): void {\n // Full component catalog\n server.resource('Component Catalog', 'components://catalog', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(catalog, null, 2),\n },\n ],\n }));\n\n // Component list (names only, for quick lookup)\n server.resource('Component List', 'components://list', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(\n catalog.components.map((c) => ({\n name: c.name,\n category: c.category,\n description: c.description,\n })),\n null,\n 2\n ),\n },\n ],\n }));\n\n // Individual component resources via template\n server.resource(\n 'Component Details',\n new ResourceTemplate('components://{name}', { list: undefined }),\n async (uri, params) => {\n const name = params.name as string;\n const component = catalog.components.find((c) => c.name.toLowerCase() === name.toLowerCase());\n\n if (!component) {\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify({ error: `Component \"${name}\" not found` }),\n },\n ],\n };\n }\n\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(component, null, 2),\n },\n ],\n };\n }\n );\n\n // Components by category\n server.resource(\n 'Components by Category',\n new ResourceTemplate('components://category/{category}', { list: undefined }),\n async (uri, params) => {\n const category = params.category as string;\n const components = catalog.components.filter(\n (c) => c.category.toLowerCase() === category.toLowerCase()\n );\n\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(components, null, 2),\n },\n ],\n };\n }\n );\n}\n","{\n \"version\": \"0.1.0\",\n \"components\": [\n {\n \"name\": \"Alert\",\n \"description\": \"Contextual feedback messages for user actions and system status\",\n \"category\": \"feedback\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"variant\",\n \"type\": \"'default' | 'destructive' | 'error' | 'success' | 'warning' | 'info'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Alert style variant\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"default\",\n \"destructive\",\n \"error\",\n \"success\",\n \"warning\",\n \"info\"\n ],\n \"default\": \"default\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Alert>\\n <AlertTitle>Heads up!</AlertTitle>\\n <AlertDescription>This is a default alert message.</AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Default\",\n \"description\": \"Neutral information message:\",\n \"code\": \"<Alert variant=\\\"default\\\">\\n <AlertTitle>Note</AlertTitle>\\n <AlertDescription>This is a neutral informational message.</AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Success\",\n \"description\": \"Positive feedback for completed actions:\",\n \"code\": \"<Alert variant=\\\"success\\\">\\n <AlertTitle>Success!</AlertTitle>\\n <AlertDescription>Your changes have been saved successfully.</AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Warning\",\n \"description\": \"Caution about potential issues:\",\n \"code\": \"<Alert variant=\\\"warning\\\">\\n <AlertTitle>Warning</AlertTitle>\\n <AlertDescription>Your session will expire in 5 minutes.</AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Error / Destructive\",\n \"description\": \"Error messages and critical alerts:\",\n \"code\": \"<Alert variant=\\\"error\\\">\\n <AlertTitle>Error</AlertTitle>\\n <AlertDescription>There was a problem processing your request.</AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Info\",\n \"description\": \"Helpful information or tips:\",\n \"code\": \"<Alert variant=\\\"info\\\">\\n <AlertTitle>Did you know?</AlertTitle>\\n <AlertDescription>You can use keyboard shortcuts for faster navigation.</AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Form Validation Error\",\n \"code\": \"{#if formErrors.length > 0}\\n <Alert variant=\\\"error\\\">\\n <AlertTitle>Please fix the following errors:</AlertTitle>\\n <AlertDescription>\\n <ul class=\\\"list-disc pl-4 mt-2\\\">\\n {#each formErrors as error}\\n <li>{error}</li>\\n {/each}\\n </ul>\\n </AlertDescription>\\n </Alert>\\n{/if}\"\n },\n {\n \"title\": \"Dismissible Alert\",\n \"code\": \"<script>\\n let showAlert = $state(true);\\n</script>\\n\\n{#if showAlert}\\n <Alert variant=\\\"info\\\" class=\\\"relative\\\">\\n <AlertTitle>New Feature</AlertTitle>\\n <AlertDescription>Check out our new dashboard!</AlertDescription>\\n <button\\n class=\\\"absolute top-4 right-4 text-muted-foreground hover:text-foreground\\\"\\n onclick={() => (showAlert = false)}\\n aria-label=\\\"Dismiss\\\"\\n >\\n <svg class=\\\"h-4 w-4\\\" fill=\\\"none\\\" viewBox=\\\"0 0 24 24\\\" stroke=\\\"currentColor\\\">\\n <path\\n stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\"\\n stroke-width=\\\"2\\\"\\n d=\\\"M6 18L18 6M6 6l12 12\\\"\\n />\\n </svg>\\n </button>\\n </Alert>\\n{/if}\"\n },\n {\n \"title\": \"System Status\",\n \"code\": \"<Alert variant=\\\"warning\\\">\\n <svg class=\\\"h-4 w-4\\\" fill=\\\"none\\\" viewBox=\\\"0 0 24 24\\\" stroke=\\\"currentColor\\\">\\n <path\\n stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\"\\n stroke-width=\\\"2\\\"\\n d=\\\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\\\"\\n />\\n </svg>\\n <AlertTitle>Maintenance Scheduled</AlertTitle>\\n <AlertDescription>\\n The system will be unavailable on Sunday from 2:00 AM to 4:00 AM EST.\\n </AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Success with Action\",\n \"code\": \"<Alert variant=\\\"success\\\">\\n <AlertTitle>Order Confirmed</AlertTitle>\\n <AlertDescription>\\n <p>Your order #12345 has been placed successfully.</p>\\n <a href=\\\"/orders/12345\\\" class=\\\"underline font-medium mt-2 inline-block\\\"> View order details </a>\\n </AlertDescription>\\n</Alert>\"\n },\n {\n \"title\": \"Compact Alert (Title Only)\",\n \"code\": \"<Alert variant=\\\"info\\\">\\n <AlertDescription>Pro tip: Press Ctrl+K to open the command palette.</AlertDescription>\\n</Alert>\"\n }\n ],\n \"relatedComponents\": [\n \"Toast\",\n \"Badge\",\n \"Card\"\n ]\n },\n {\n \"name\": \"AlertDialog\",\n \"description\": \"Modal dialog for confirmations and important actions\",\n \"category\": \"overlay\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"open\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Open state (bindable)\"\n },\n {\n \"name\": \"onOpenChange\",\n \"type\": \"(open: boolean) => void\",\n \"required\": false,\n \"description\": \"Open change callback\"\n },\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Dialog title\"\n },\n {\n \"name\": \"description\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Description text\"\n },\n {\n \"name\": \"cancelText\",\n \"type\": \"string\",\n \"default\": \"'Cancel'\",\n \"required\": false,\n \"description\": \"Cancel button text\"\n },\n {\n \"name\": \"confirmText\",\n \"type\": \"string\",\n \"default\": \"'Continue'\",\n \"required\": false,\n \"description\": \"Confirm button text\"\n },\n {\n \"name\": \"confirmVariant\",\n \"type\": \"'default' | 'destructive' | 'outline' | 'ghost'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Confirm button style\"\n },\n {\n \"name\": \"onConfirm\",\n \"type\": \"() => void\",\n \"required\": false,\n \"description\": \"Confirm callback\"\n },\n {\n \"name\": \"onCancel\",\n \"type\": \"() => void\",\n \"required\": false,\n \"description\": \"Cancel callback\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n },\n {\n \"name\": \"trigger\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Optional trigger element\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom content\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"confirmVariant\",\n \"values\": [\n \"default\",\n \"destructive\",\n \"outline\",\n \"ghost\"\n ],\n \"default\": \"default\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let showDialog = $state(false);\\n</script>\\n\\n<Button onclick={() => (showDialog = true)}>Delete Item</Button>\\n\\n<AlertDialog\\n open={showDialog}\\n onOpenChange={(open) => (showDialog = open)}\\n title=\\\"Delete Item?\\\"\\n description=\\\"This action cannot be undone. This will permanently delete the item.\\\"\\n confirmText=\\\"Delete\\\"\\n confirmVariant=\\\"destructive\\\"\\n onConfirm={() => deleteItem()}\\n/>\"\n },\n {\n \"title\": \"Delete Confirmation\",\n \"code\": \"<AlertDialog\\n title=\\\"Delete Project\\\"\\n description={`Are you sure you want to delete \\\"${project.name}\\\"? All project data including files, tasks, and comments will be permanently removed.`}\\n confirmText=\\\"Delete Project\\\"\\n confirmVariant=\\\"destructive\\\"\\n onConfirm={() => deleteProject(project.id)}\\n>\\n {#snippet trigger()}\\n <Button variant=\\\"destructive\\\" size=\\\"sm\\\">\\n <TrashIcon class=\\\"mr-2 h-4 w-4\\\" />\\n Delete\\n </Button>\\n {/snippet}\\n</AlertDialog>\"\n },\n {\n \"title\": \"Unsaved Changes\",\n \"code\": \"<AlertDialog\\n title=\\\"Unsaved Changes\\\"\\n description=\\\"You have unsaved changes. Do you want to leave without saving?\\\"\\n cancelText=\\\"Stay\\\"\\n confirmText=\\\"Leave\\\"\\n confirmVariant=\\\"destructive\\\"\\n onConfirm={navigateAway}\\n>\\n {#snippet trigger()}\\n <Button variant=\\\"outline\\\">Cancel</Button>\\n {/snippet}\\n</AlertDialog>\"\n },\n {\n \"title\": \"Subscription Cancellation\",\n \"code\": \"<AlertDialog\\n title=\\\"Cancel Subscription\\\"\\n description=\\\"Your subscription will remain active until the end of the current billing period. You can resubscribe at any time.\\\"\\n cancelText=\\\"Keep Subscription\\\"\\n confirmText=\\\"Cancel Subscription\\\"\\n onConfirm={cancelSubscription}\\n>\\n {#snippet trigger()}\\n <Button variant=\\\"ghost\\\" class=\\\"text-destructive\\\">Cancel Subscription</Button>\\n {/snippet}\\n</AlertDialog>\"\n },\n {\n \"title\": \"Bulk Action\",\n \"code\": \"<AlertDialog\\n title={`Delete ${selectedItems.length} items?`}\\n description=\\\"This will permanently delete all selected items. This action cannot be undone.\\\"\\n confirmText={`Delete ${selectedItems.length} items`}\\n confirmVariant=\\\"destructive\\\"\\n onConfirm={deleteSelectedItems}\\n>\\n {#snippet trigger()}\\n <Button variant=\\\"destructive\\\" disabled={selectedItems.length === 0}>Delete Selected</Button>\\n {/snippet}\\n</AlertDialog>\"\n }\n ],\n \"relatedComponents\": [\n \"Dialog\",\n \"Button\",\n \"DropdownMenu\"\n ]\n },\n {\n \"name\": \"AppShell\",\n \"description\": \"Base wrapper component for applications with accessibility features\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"skipToId\",\n \"type\": \"string\",\n \"default\": \"'main-content'\",\n \"required\": false,\n \"description\": \"Target ID for skip link\"\n },\n {\n \"name\": \"skipToText\",\n \"type\": \"string\",\n \"default\": \"'Skip to main content'\",\n \"required\": false,\n \"description\": \"Skip link text\"\n },\n {\n \"name\": \"toastPosition\",\n \"type\": \"'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center'\",\n \"default\": \"'bottom-right'\",\n \"required\": false,\n \"description\": \"Toast container position\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Main content\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"toastPosition\",\n \"values\": [\n \"top-right\",\n \"top-left\",\n \"bottom-right\",\n \"bottom-left\",\n \"top-center\",\n \"bottom-center\"\n ],\n \"default\": \"bottom-right\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<AppShell>\\n <main>Your application content</main>\\n</AppShell>\"\n }\n ],\n \"relatedComponents\": [\n \"DashboardLayout\",\n \"PublicLayout\",\n \"Toast\"\n ]\n },\n {\n \"name\": \"AreaChart\",\n \"description\": \"Line chart with gradient fill and stacking support\",\n \"category\": \"chart\",\n \"importPath\": \"@classic-homes/charts-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n import { AreaChart } from '@classic-homes/charts-svelte';\\n\\n const data = {\\n categories: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],\\n series: [\\n { name: 'Email', data: [120, 132, 101, 134, 90, 230, 210] },\\n { name: 'Ads', data: [220, 182, 191, 234, 290, 330, 310] },\\n { name: 'Video', data: [150, 232, 201, 154, 190, 330, 410] },\\n ],\\n };\\n</script>\\n\\n<AreaChart title=\\\"Weekly Traffic\\\" {data} stacked smooth gradient height={400} />\"\n },\n {\n \"title\": \"Stacked Area with Gradient\",\n \"code\": \"<AreaChart title=\\\"Traffic Sources\\\" {data} stacked smooth gradient height={400} />\"\n },\n {\n \"title\": \"Simple Area Chart\",\n \"code\": \"<AreaChart\\n title=\\\"Single Series\\\"\\n data={{\\n categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May'],\\n series: [{ name: 'Revenue', data: [100, 150, 120, 180, 200] }],\\n }}\\n smooth\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"LineChart\",\n \"BarChart\"\n ]\n },\n {\n \"name\": \"AuthLayout\",\n \"description\": \"Centered card layout for authentication pages\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"logo\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom logo\"\n },\n {\n \"name\": \"logoSubtitle\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Subtitle for default logo\"\n },\n {\n \"name\": \"logoEnvironment\",\n \"type\": \"'local' | 'dev' | 'demo'\",\n \"required\": false,\n \"description\": \"Environment indicator\"\n },\n {\n \"name\": \"footerLinks\",\n \"type\": \"FooterLink[]\",\n \"default\": \"[]\",\n \"required\": false,\n \"description\": \"Footer links\"\n },\n {\n \"name\": \"footer\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom footer content\"\n },\n {\n \"name\": \"showBackground\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Show decorative background\"\n },\n {\n \"name\": \"backgroundVariant\",\n \"type\": \"'default' | 'gradient' | 'pattern'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Background style\"\n },\n {\n \"name\": \"maxWidth\",\n \"type\": \"'sm' | 'md' | 'lg'\",\n \"default\": \"'sm'\",\n \"required\": false,\n \"description\": \"Maximum card width\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Form content\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"logoEnvironment\",\n \"values\": [\n \"local\",\n \"dev\",\n \"demo\"\n ]\n },\n {\n \"name\": \"backgroundVariant\",\n \"values\": [\n \"default\",\n \"gradient\",\n \"pattern\"\n ],\n \"default\": \"default\"\n },\n {\n \"name\": \"maxWidth\",\n \"values\": [\n \"sm\",\n \"md\",\n \"lg\"\n ],\n \"default\": \"sm\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<AuthLayout>\\n <h2 class=\\\"text-2xl font-bold mb-4\\\">Sign In</h2>\\n <form>\\n <Input label=\\\"Email\\\" type=\\\"email\\\" />\\n <Input label=\\\"Password\\\" type=\\\"password\\\" class=\\\"mt-4\\\" />\\n <Button class=\\\"mt-6 w-full\\\">Sign In</Button>\\n </form>\\n</AuthLayout>\"\n },\n {\n \"title\": \"Gradient Background\",\n \"code\": \"<AuthLayout showBackground backgroundVariant=\\\"gradient\\\">\\n <h2>Create Account</h2>\\n <!-- Form content -->\\n</AuthLayout>\"\n },\n {\n \"title\": \"Pattern Background\",\n \"code\": \"<AuthLayout showBackground backgroundVariant=\\\"pattern\\\">\\n <h2>Reset Password</h2>\\n <!-- Form content -->\\n</AuthLayout>\"\n },\n {\n \"title\": \"Login Page\",\n \"code\": \"<script>\\n let email = $state('');\\n let password = $state('');\\n let loading = $state(false);\\n\\n async function handleSubmit() {\\n loading = true;\\n // Handle login\\n }\\n</script>\\n\\n<AuthLayout\\n logoSubtitle=\\\"Sign in to continue\\\"\\n footerLinks={[\\n { label: 'Privacy', href: '/privacy' },\\n { label: 'Terms', href: '/terms' },\\n ]}\\n>\\n <form onsubmit={handleSubmit} class=\\\"space-y-4\\\">\\n <Input label=\\\"Email\\\" type=\\\"email\\\" bind:value={email} required />\\n <Input label=\\\"Password\\\" type=\\\"password\\\" bind:value={password} required />\\n <div class=\\\"flex items-center justify-between\\\">\\n <Checkbox label=\\\"Remember me\\\" />\\n <a href=\\\"/forgot-password\\\" class=\\\"text-sm text-primary\\\"> Forgot password? </a>\\n </div>\\n <Button type=\\\"submit\\\" class=\\\"w-full\\\" disabled={loading}>\\n {loading ? 'Signing in...' : 'Sign In'}\\n </Button>\\n </form>\\n\\n <p class=\\\"mt-6 text-center text-sm text-muted-foreground\\\">\\n Don't have an account? <a href=\\\"/signup\\\" class=\\\"text-primary\\\">Sign up</a>\\n </p>\\n</AuthLayout>\"\n },\n {\n \"title\": \"Registration Page\",\n \"code\": \"<AuthLayout maxWidth=\\\"md\\\" showBackground backgroundVariant=\\\"gradient\\\">\\n <h2 class=\\\"text-2xl font-bold mb-6\\\">Create your account</h2>\\n\\n <form class=\\\"space-y-4\\\">\\n <div class=\\\"grid grid-cols-2 gap-4\\\">\\n <Input label=\\\"First Name\\\" required />\\n <Input label=\\\"Last Name\\\" required />\\n </div>\\n <Input label=\\\"Email\\\" type=\\\"email\\\" required />\\n <Input label=\\\"Password\\\" type=\\\"password\\\" required />\\n <Input label=\\\"Confirm Password\\\" type=\\\"password\\\" required />\\n\\n <Checkbox>\\n I agree to the <a href=\\\"/terms\\\">Terms of Service</a>\\n </Checkbox>\\n\\n <Button type=\\\"submit\\\" class=\\\"w-full\\\">Create Account</Button>\\n </form>\\n</AuthLayout>\"\n },\n {\n \"title\": \"Two-Factor Authentication\",\n \"code\": \"<AuthLayout logoSubtitle=\\\"Verify your identity\\\">\\n <div class=\\\"text-center mb-6\\\">\\n <p class=\\\"text-muted-foreground\\\">Enter the 6-digit code from your authenticator app</p>\\n </div>\\n\\n <OTPInput bind:value={code} autoFocus onComplete={verifyCode} />\\n\\n <p class=\\\"mt-6 text-center text-sm text-muted-foreground\\\">\\n Can't access your authenticator? <a href=\\\"/recovery\\\" class=\\\"text-primary\\\">Use recovery code</a>\\n </p>\\n</AuthLayout>\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"Button\",\n \"OTPInput\",\n \"ErrorLayout\"\n ]\n },\n {\n \"name\": \"Avatar\",\n \"description\": \"User profile image with fallback support\",\n \"category\": \"core\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"size\",\n \"type\": \"'xs' | 'sm' | 'md' | 'lg' | 'xl'\",\n \"default\": \"'md'\",\n \"required\": false,\n \"description\": \"Size of the avatar\"\n },\n {\n \"name\": \"delayMs\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"Delay before showing fallback\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"size\",\n \"values\": [\n \"xs\",\n \"sm\",\n \"md\",\n \"lg\",\n \"xl\"\n ],\n \"default\": \"md\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Avatar>\\n <AvatarImage src=\\\"/avatar.jpg\\\" alt=\\\"John Doe\\\" />\\n <AvatarFallback>JD</AvatarFallback>\\n</Avatar>\"\n },\n {\n \"title\": \"Fallback with Delay\",\n \"description\": \"Prevent flash of fallback for slow-loading images:\",\n \"code\": \"<Avatar delayMs={500}>\\n <AvatarImage src=\\\"/slow-image.jpg\\\" alt=\\\"User\\\" />\\n <AvatarFallback>AB</AvatarFallback>\\n</Avatar>\"\n },\n {\n \"title\": \"User Profile\",\n \"code\": \"<div class=\\\"flex items-center gap-3\\\">\\n <Avatar size=\\\"lg\\\">\\n <AvatarImage src={user.avatar} alt={user.name} />\\n <AvatarFallback>{getInitials(user.name)}</AvatarFallback>\\n </Avatar>\\n <div>\\n <p class=\\\"font-medium\\\">{user.name}</p>\\n <p class=\\\"text-sm text-muted-foreground\\\">{user.email}</p>\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Avatar Stack\",\n \"code\": \"<div class=\\\"flex -space-x-2\\\">\\n {#each users as user}\\n <Avatar size=\\\"sm\\\" class=\\\"border-2 border-background\\\">\\n <AvatarImage src={user.avatar} alt={user.name} />\\n <AvatarFallback>{getInitials(user.name)}</AvatarFallback>\\n </Avatar>\\n {/each}\\n {#if moreCount > 0}\\n <Avatar size=\\\"sm\\\" class=\\\"border-2 border-background\\\">\\n <AvatarFallback>+{moreCount}</AvatarFallback>\\n </Avatar>\\n {/if}\\n</div>\"\n },\n {\n \"title\": \"Comment Avatar\",\n \"code\": \"<div class=\\\"flex gap-3\\\">\\n <Avatar size=\\\"sm\\\">\\n <AvatarImage src={comment.author.avatar} alt={comment.author.name} />\\n <AvatarFallback>{getInitials(comment.author.name)}</AvatarFallback>\\n </Avatar>\\n <div class=\\\"flex-1\\\">\\n <p class=\\\"font-medium text-sm\\\">{comment.author.name}</p>\\n <p class=\\\"text-sm\\\">{comment.text}</p>\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Navigation Avatar\",\n \"code\": \"<button class=\\\"flex items-center gap-2\\\">\\n <Avatar size=\\\"sm\\\">\\n <AvatarImage src={currentUser.avatar} alt={currentUser.name} />\\n <AvatarFallback>{getInitials(currentUser.name)}</AvatarFallback>\\n </Avatar>\\n <span class=\\\"text-sm\\\">{currentUser.name}</span>\\n</button>\"\n },\n {\n \"title\": \"Colored Fallbacks\",\n \"code\": \"<script>\\n function getColorFromName(name: string): string {\\n const colors = ['bg-red-500', 'bg-blue-500', 'bg-green-500', 'bg-yellow-500', 'bg-purple-500'];\\n const index = name.charCodeAt(0) % colors.length;\\n return colors[index];\\n }\\n</script>\\n\\n<Avatar>\\n <AvatarImage src={user.avatar} alt={user.name} />\\n <AvatarFallback class={getColorFromName(user.name)}>\\n {getInitials(user.name)}\\n </AvatarFallback>\\n</Avatar>\"\n }\n ],\n \"relatedComponents\": [\n \"Badge\",\n \"Card\"\n ]\n },\n {\n \"name\": \"Badge\",\n \"description\": \"Small label component for status indicators and categorization\",\n \"category\": \"core\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"variant\",\n \"type\": \"'default' | 'secondary' | 'destructive' | 'outline' | 'success' | 'warning' | 'info'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Visual style variant\"\n },\n {\n \"name\": \"size\",\n \"type\": \"'default' | 'sm' | 'dot'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Size of the badge\"\n },\n {\n \"name\": \"clickable\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Enables hover effects for clickable badges\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"default\",\n \"secondary\",\n \"destructive\",\n \"outline\",\n \"success\",\n \"warning\",\n \"info\"\n ],\n \"default\": \"default\"\n },\n {\n \"name\": \"size\",\n \"values\": [\n \"default\",\n \"sm\",\n \"dot\"\n ],\n \"default\": \"default\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Badge>Default</Badge>\"\n },\n {\n \"title\": \"Default\",\n \"code\": \"<Badge variant=\\\"default\\\">Default</Badge>\"\n },\n {\n \"title\": \"Secondary\",\n \"code\": \"<Badge variant=\\\"secondary\\\">Secondary</Badge>\"\n },\n {\n \"title\": \"Destructive\",\n \"code\": \"<Badge variant=\\\"destructive\\\">Destructive</Badge>\"\n },\n {\n \"title\": \"Outline\",\n \"code\": \"<Badge variant=\\\"outline\\\">Outline</Badge>\"\n },\n {\n \"title\": \"Success\",\n \"code\": \"<Badge variant=\\\"success\\\">Success</Badge>\"\n },\n {\n \"title\": \"Warning\",\n \"code\": \"<Badge variant=\\\"warning\\\">Warning</Badge>\"\n },\n {\n \"title\": \"Info\",\n \"code\": \"<Badge variant=\\\"info\\\">Info</Badge>\"\n },\n {\n \"title\": \"Status Indicators\",\n \"code\": \"<Badge variant=\\\"success\\\">Active</Badge>\\n<Badge variant=\\\"warning\\\">Pending</Badge>\\n<Badge variant=\\\"destructive\\\">Expired</Badge>\"\n },\n {\n \"title\": \"Notification Counts\",\n \"code\": \"<Badge size=\\\"dot\\\" variant=\\\"destructive\\\">3</Badge>\"\n },\n {\n \"title\": \"Category Tags\",\n \"code\": \"<div class=\\\"flex gap-2\\\">\\n <Badge variant=\\\"secondary\\\">React</Badge>\\n <Badge variant=\\\"secondary\\\">Svelte</Badge>\\n <Badge variant=\\\"secondary\\\">TypeScript</Badge>\\n</div>\"\n },\n {\n \"title\": \"With Icons\",\n \"code\": \"<Badge>\\n <svg class=\\\"h-3 w-3\\\" fill=\\\"currentColor\\\" viewBox=\\\"0 0 20 20\\\">\\n <circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"5\\\" />\\n </svg>\\n Online\\n</Badge>\"\n },\n {\n \"title\": \"Table Status Column\",\n \"code\": \"<td>\\n {#if user.status === 'active'}\\n <Badge variant=\\\"success\\\">Active</Badge>\\n {:else if user.status === 'pending'}\\n <Badge variant=\\\"warning\\\">Pending</Badge>\\n {:else}\\n <Badge variant=\\\"destructive\\\">Inactive</Badge>\\n {/if}\\n</td>\"\n },\n {\n \"title\": \"Article Tags\",\n \"code\": \"<article>\\n <h2>Article Title</h2>\\n <div class=\\\"flex gap-1 mt-2\\\">\\n {#each article.tags as tag}\\n <Badge variant=\\\"outline\\\" size=\\\"sm\\\">{tag}</Badge>\\n {/each}\\n </div>\\n</article>\"\n },\n {\n \"title\": \"Version Badge\",\n \"code\": \"<Badge variant=\\\"info\\\">v2.0.0</Badge>\"\n },\n {\n \"title\": \"New Feature Badge\",\n \"code\": \"<h3>\\n Feature Name\\n <Badge variant=\\\"default\\\" size=\\\"sm\\\" class=\\\"ml-2\\\">New</Badge>\\n</h3>\"\n }\n ],\n \"relatedComponents\": [\n \"Alert\",\n \"Button\"\n ]\n },\n {\n \"name\": \"BarChart\",\n \"description\": \"Compare categories with vertical or horizontal bars\",\n \"category\": \"chart\",\n \"importPath\": \"@classic-homes/charts-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n import { BarChart } from '@classic-homes/charts-svelte';\\n\\n const data = {\\n categories: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'],\\n series: [\\n { name: 'Sales', data: [320, 332, 301, 334, 390] },\\n { name: 'Returns', data: [120, 132, 101, 134, 90] },\\n ],\\n };\\n</script>\\n\\n<BarChart title=\\\"Weekly Sales\\\" {data} height={400} />\"\n },\n {\n \"title\": \"Horizontal Bar Chart\",\n \"code\": \"<BarChart title=\\\"Sales by Region\\\" {data} orientation=\\\"horizontal\\\" height={400} />\"\n },\n {\n \"title\": \"Stacked Bar Chart\",\n \"code\": \"<BarChart title=\\\"Revenue Breakdown\\\" {data} stacked height={400} />\"\n },\n {\n \"title\": \"With Value Labels\",\n \"code\": \"<BarChart title=\\\"Monthly Performance\\\" {data} showValues height={400} />\"\n }\n ],\n \"relatedComponents\": [\n \"LineChart\",\n \"FunnelChart\"\n ]\n },\n {\n \"name\": \"Button\",\n \"description\": \"Clickable button component with multiple variants, sizes, and loading states\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"variant\",\n \"type\": \"'default' | 'secondary' | 'destructive' | 'outline' | 'ghost' | 'link'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Visual style variant\"\n },\n {\n \"name\": \"size\",\n \"type\": \"'default' | 'sm' | 'lg' | 'icon'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Size of the button\"\n },\n {\n \"name\": \"type\",\n \"type\": \"'button' | 'submit' | 'reset'\",\n \"default\": \"'button'\",\n \"required\": false,\n \"description\": \"HTML button type\"\n },\n {\n \"name\": \"href\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"If provided, renders as an anchor link\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the button\"\n },\n {\n \"name\": \"loading\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Shows loading spinner\"\n },\n {\n \"name\": \"loadingText\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Text to show during loading (replaces children)\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onclick\",\n \"type\": \"(e: MouseEvent) => void\",\n \"required\": false,\n \"description\": \"Click handler\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"default\",\n \"secondary\",\n \"destructive\",\n \"outline\",\n \"ghost\",\n \"link\"\n ],\n \"default\": \"default\"\n },\n {\n \"name\": \"size\",\n \"values\": [\n \"default\",\n \"sm\",\n \"lg\",\n \"icon\"\n ],\n \"default\": \"default\"\n },\n {\n \"name\": \"type\",\n \"values\": [\n \"button\",\n \"submit\",\n \"reset\"\n ],\n \"default\": \"button\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Button>Click Me</Button>\"\n },\n {\n \"title\": \"Default\",\n \"description\": \"The primary action button with solid background.\",\n \"code\": \"<Button variant=\\\"default\\\">Default Button</Button>\"\n },\n {\n \"title\": \"Secondary\",\n \"description\": \"For secondary actions that need less visual emphasis.\",\n \"code\": \"<Button variant=\\\"secondary\\\">Secondary Button</Button>\"\n },\n {\n \"title\": \"Destructive\",\n \"description\": \"For dangerous or irreversible actions like delete.\",\n \"code\": \"<Button variant=\\\"destructive\\\">Delete</Button>\"\n },\n {\n \"title\": \"Outline\",\n \"description\": \"Bordered button with transparent background.\",\n \"code\": \"<Button variant=\\\"outline\\\">Outline Button</Button>\"\n },\n {\n \"title\": \"Ghost\",\n \"description\": \"Minimal button with no background until hovered.\",\n \"code\": \"<Button variant=\\\"ghost\\\">Ghost Button</Button>\"\n },\n {\n \"title\": \"Link\",\n \"description\": \"Styled as an inline text link.\",\n \"code\": \"<Button variant=\\\"link\\\">Link Button</Button>\"\n },\n {\n \"title\": \"Disabled\",\n \"code\": \"<Button disabled>Disabled</Button>\"\n },\n {\n \"title\": \"Loading\",\n \"description\": \"Shows a spinner and optionally replaces the text:\",\n \"code\": \"<Button loading>Submit</Button>\\n<Button loading loadingText=\\\"Saving...\\\">Save</Button>\"\n },\n {\n \"title\": \"Button Group\",\n \"code\": \"<div class=\\\"flex gap-2\\\">\\n <Button variant=\\\"outline\\\">Cancel</Button>\\n <Button>Save Changes</Button>\\n</div>\"\n },\n {\n \"title\": \"Full Width Button\",\n \"code\": \"<Button class=\\\"w-full\\\">Full Width Button</Button>\"\n },\n {\n \"title\": \"Async Action\",\n \"code\": \"<script>\\n let loading = $state(false);\\n\\n async function handleSave() {\\n loading = true;\\n try {\\n await saveData();\\n } finally {\\n loading = false;\\n }\\n }\\n</script>\\n\\n<Button {loading} loadingText=\\\"Saving...\\\" onclick={handleSave}>Save</Button>\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"FormField\",\n \"Dialog\"\n ]\n },\n {\n \"name\": \"CandlestickChart\",\n \"description\": \"Financial OHLC data with volume bars\",\n \"category\": \"chart\",\n \"importPath\": \"@classic-homes/charts-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n import { CandlestickChart } from '@classic-homes/charts-svelte';\\n\\n const data = {\\n dates: ['2024-01', '2024-02', '2024-03', '2024-04'],\\n data: [\\n { open: 20, close: 34, low: 10, high: 38 },\\n { open: 40, close: 35, low: 30, high: 50 },\\n { open: 31, close: 38, low: 28, high: 48 },\\n { open: 38, close: 30, low: 25, high: 44 },\\n ],\\n volume: [100, 120, 90, 140],\\n };\\n</script>\\n\\n<CandlestickChart title=\\\"Stock Price\\\" {data} showVolume height={400} />\"\n },\n {\n \"title\": \"With Volume\",\n \"code\": \"<CandlestickChart title=\\\"AAPL Stock\\\" {data} showVolume height={500} />\"\n },\n {\n \"title\": \"Without Volume\",\n \"code\": \"<CandlestickChart\\n title=\\\"Price History\\\"\\n data={{\\n dates: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'],\\n data: [\\n { open: 100, close: 110, low: 95, high: 115 },\\n { open: 110, close: 105, low: 100, high: 120 },\\n { open: 105, close: 115, low: 102, high: 118 },\\n { open: 115, close: 108, low: 105, high: 120 },\\n { open: 108, close: 125, low: 105, high: 128 },\\n ],\\n }}\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"LineChart\",\n \"BarChart\"\n ]\n },\n {\n \"name\": \"Card\",\n \"description\": \"Container component for grouping related content\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Card>\\n <CardHeader>\\n <CardTitle>Card Title</CardTitle>\\n <CardDescription>Card description text</CardDescription>\\n </CardHeader>\\n <CardContent>\\n <p>Card content goes here.</p>\\n </CardContent>\\n <CardFooter>\\n <Button>Action</Button>\\n </CardFooter>\\n</Card>\"\n },\n {\n \"title\": \"Default\",\n \"description\": \"Standard card with 1px border:\",\n \"code\": \"<Card variant=\\\"default\\\">\\n <CardContent>Default card</CardContent>\\n</Card>\"\n },\n {\n \"title\": \"Featured\",\n \"description\": \"Emphasized card with 2px border:\",\n \"code\": \"<Card variant=\\\"featured\\\">\\n <CardContent>Featured card with thicker border</CardContent>\\n</Card>\"\n },\n {\n \"title\": \"Highlight\",\n \"description\": \"Positive/info callout with teal border:\",\n \"code\": \"<Card variant=\\\"highlight\\\">\\n <CardContent>Highlight card for important info</CardContent>\\n</Card>\"\n },\n {\n \"title\": \"Warning\",\n \"description\": \"Alert card with red border:\",\n \"code\": \"<Card variant=\\\"warning\\\">\\n <CardContent>Warning card for alerts</CardContent>\\n</Card>\"\n },\n {\n \"title\": \"Profile Card\",\n \"code\": \"<Card class=\\\"max-w-sm\\\">\\n <CardHeader>\\n <div class=\\\"flex items-center gap-4\\\">\\n <Avatar>\\n <AvatarImage src=\\\"/avatar.jpg\\\" alt=\\\"User\\\" />\\n <AvatarFallback>JD</AvatarFallback>\\n </Avatar>\\n <div>\\n <CardTitle>Jane Doe</CardTitle>\\n <CardDescription>Product Designer</CardDescription>\\n </div>\\n </div>\\n </CardHeader>\\n <CardContent>\\n <p class=\\\"text-sm\\\">Building beautiful interfaces at Acme Corp.</p>\\n </CardContent>\\n <CardFooter class=\\\"gap-2\\\">\\n <Button variant=\\\"outline\\\" size=\\\"sm\\\">Message</Button>\\n <Button size=\\\"sm\\\">Follow</Button>\\n </CardFooter>\\n</Card>\"\n },\n {\n \"title\": \"Pricing Card\",\n \"code\": \"<Card variant=\\\"featured\\\" class=\\\"max-w-sm text-center\\\">\\n <CardHeader>\\n <CardTitle>Pro Plan</CardTitle>\\n <CardDescription>For growing teams</CardDescription>\\n </CardHeader>\\n <CardContent>\\n <div class=\\\"text-4xl font-bold\\\">$29</div>\\n <p class=\\\"text-muted-foreground\\\">/month</p>\\n <ul class=\\\"mt-4 space-y-2 text-left\\\">\\n <li>Unlimited projects</li>\\n <li>Priority support</li>\\n <li>Advanced analytics</li>\\n </ul>\\n </CardContent>\\n <CardFooter>\\n <Button class=\\\"w-full\\\">Get Started</Button>\\n </CardFooter>\\n</Card>\"\n },\n {\n \"title\": \"Stats Card\",\n \"code\": \"<Card>\\n <CardHeader class=\\\"flex-row items-center justify-between pb-2\\\">\\n <CardTitle class=\\\"text-sm font-medium\\\">Total Revenue</CardTitle>\\n <svg class=\\\"h-4 w-4 text-muted-foreground\\\"><!-- icon --></svg>\\n </CardHeader>\\n <CardContent>\\n <div class=\\\"text-2xl font-bold\\\">$45,231.89</div>\\n <p class=\\\"text-xs text-muted-foreground\\\">+20.1% from last month</p>\\n </CardContent>\\n</Card>\"\n },\n {\n \"title\": \"Card Grid\",\n \"code\": \"<div class=\\\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\\\">\\n {#each items as item}\\n <Card interactive>\\n <CardHeader>\\n <CardTitle>{item.title}</CardTitle>\\n </CardHeader>\\n <CardContent>\\n <p>{item.description}</p>\\n </CardContent>\\n </Card>\\n {/each}\\n</div>\"\n },\n {\n \"title\": \"Simple Content Card\",\n \"code\": \"<Card>\\n <CardContent class=\\\"pt-6\\\">\\n <p>Simple card with just content, no header or footer.</p>\\n </CardContent>\\n</Card>\"\n }\n ],\n \"relatedComponents\": [\n \"Alert\",\n \"Dialog\"\n ]\n },\n {\n \"name\": \"Checkbox\",\n \"description\": \"Checkbox input for boolean selections and multiple choice options\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"checked\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Whether the checkbox is checked (bindable)\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the checkbox\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Name attribute for forms\"\n },\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Value attribute for forms\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Element ID for label association\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onCheckedChange\",\n \"type\": \"(checked: boolean) => void\",\n \"required\": false,\n \"description\": \"Callback when checked state changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let checked = $state(false);\\n</script>\\n\\n<Checkbox bind:checked />\"\n },\n {\n \"title\": \"Checked\",\n \"code\": \"<Checkbox checked />\"\n },\n {\n \"title\": \"Disabled\",\n \"code\": \"<Checkbox disabled />\\n<Checkbox disabled checked />\"\n },\n {\n \"title\": \"Required\",\n \"code\": \"<Checkbox required id=\\\"required-checkbox\\\" />\"\n },\n {\n \"title\": \"Terms Agreement\",\n \"code\": \"<script>\\n let agreed = $state(false);\\n</script>\\n\\n<div class=\\\"flex items-start gap-2\\\">\\n <Checkbox id=\\\"agree\\\" bind:checked={agreed} class=\\\"mt-1\\\" />\\n <Label for=\\\"agree\\\" class=\\\"leading-normal\\\">\\n I agree to the <a href=\\\"/terms\\\" class=\\\"text-primary underline\\\">Terms of Service</a>\\n and <a href=\\\"/privacy\\\" class=\\\"text-primary underline\\\">Privacy Policy</a>\\n </Label>\\n</div>\\n\\n<Button disabled={!agreed}>Continue</Button>\"\n },\n {\n \"title\": \"Feature Selection\",\n \"code\": \"<script>\\n let features = $state(['basic']);\\n\\n function toggleFeature(feature: string) {\\n if (features.includes(feature)) {\\n features = features.filter((f) => f !== feature);\\n } else {\\n features = [...features, feature];\\n }\\n }\\n</script>\\n\\n<div class=\\\"space-y-2\\\">\\n <div class=\\\"flex items-center gap-2\\\">\\n <Checkbox\\n id=\\\"basic\\\"\\n checked={features.includes('basic')}\\n onCheckedChange={() => toggleFeature('basic')}\\n />\\n <Label for=\\\"basic\\\">Basic features</Label>\\n </div>\\n <div class=\\\"flex items-center gap-2\\\">\\n <Checkbox\\n id=\\\"advanced\\\"\\n checked={features.includes('advanced')}\\n onCheckedChange={() => toggleFeature('advanced')}\\n />\\n <Label for=\\\"advanced\\\">Advanced features</Label>\\n </div>\\n <div class=\\\"flex items-center gap-2\\\">\\n <Checkbox\\n id=\\\"premium\\\"\\n checked={features.includes('premium')}\\n onCheckedChange={() => toggleFeature('premium')}\\n />\\n <Label for=\\\"premium\\\">Premium features</Label>\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Form Submission\",\n \"code\": \"<form onsubmit={handleSubmit}>\\n <Checkbox name=\\\"newsletter\\\" value=\\\"subscribed\\\" />\\n <button type=\\\"submit\\\">Submit</button>\\n</form>\"\n }\n ],\n \"relatedComponents\": [\n \"Switch\",\n \"RadioGroup\",\n \"Label\"\n ]\n },\n {\n \"name\": \"Combobox\",\n \"description\": \"Searchable select with async loading support\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"default\": \"''\",\n \"required\": false,\n \"description\": \"Current selected value (bindable)\"\n },\n {\n \"name\": \"options\",\n \"type\": \"SelectOption[]\",\n \"default\": \"Required\",\n \"required\": false,\n \"description\": \"Array of options\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"emptyMessage\",\n \"type\": \"string\",\n \"default\": \"'No results found.'\",\n \"required\": false,\n \"description\": \"Message when no options match\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the combobox\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Name attribute for forms\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Element ID\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message\"\n },\n {\n \"name\": \"loading\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Shows loading state\"\n },\n {\n \"name\": \"debounceMs\",\n \"type\": \"number\",\n \"default\": \"300\",\n \"required\": false,\n \"description\": \"Debounce time for search\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n },\n {\n \"name\": \"onSearch\",\n \"type\": \"(query: string) => void\",\n \"required\": false,\n \"description\": \"Callback for search queries\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let value = $state('');\\n\\n const options = [\\n { value: 'apple', label: 'Apple' },\\n { value: 'banana', label: 'Banana' },\\n { value: 'orange', label: 'Orange' },\\n ];\\n</script>\\n\\n<Combobox {options} bind:value placeholder=\\\"Select a fruit...\\\" />\"\n },\n {\n \"title\": \"User Search\",\n \"code\": \"<script>\\n let selectedUser = $state('');\\n let users = $state([]);\\n let loading = $state(false);\\n\\n async function searchUsers(query: string) {\\n if (!query) {\\n users = [];\\n return;\\n }\\n loading = true;\\n const response = await fetch(`/api/users?search=${query}`);\\n users = await response.json();\\n loading = false;\\n }\\n</script>\\n\\n<Combobox\\n options={users}\\n bind:value={selectedUser}\\n onSearch={searchUsers}\\n {loading}\\n placeholder=\\\"Search users...\\\"\\n emptyMessage=\\\"No users found\\\"\\n/>\"\n },\n {\n \"title\": \"Location Autocomplete\",\n \"code\": \"<Combobox\\n options={locations}\\n bind:value\\n onSearch={searchLocations}\\n placeholder=\\\"Enter city or zip code...\\\"\\n emptyMessage=\\\"No locations found\\\"\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"Select\",\n \"MultiSelect\"\n ]\n },\n {\n \"name\": \"DashboardLayout\",\n \"description\": \"Complete dashboard layout with responsive sidebar and header\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"navigation\",\n \"type\": \"NavSection[]\",\n \"required\": false,\n \"description\": \"Navigation sections for sidebar\"\n },\n {\n \"name\": \"user\",\n \"type\": \"User\",\n \"required\": false,\n \"description\": \"Current user data\"\n },\n {\n \"name\": \"appName\",\n \"type\": \"string\",\n \"default\": \"'Dashboard'\",\n \"required\": false,\n \"description\": \"Application name\"\n },\n {\n \"name\": \"pageTitle\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Page title in header\"\n },\n {\n \"name\": \"backLink\",\n \"type\": \"BackLink\",\n \"required\": false,\n \"description\": \"Back link at top of navigation\"\n },\n {\n \"name\": \"sidebarVariant\",\n \"type\": \"'light' | 'dark'\",\n \"default\": \"'light'\",\n \"required\": false,\n \"description\": \"Sidebar visual variant\"\n },\n {\n \"name\": \"sidebarCollapsed\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Initial collapsed state\"\n },\n {\n \"name\": \"showHeader\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Whether to show header\"\n },\n {\n \"name\": \"logo\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom logo\"\n },\n {\n \"name\": \"icon\",\n \"type\": \"Snippet<[NavItem]>\",\n \"required\": false,\n \"description\": \"Custom icon renderer\"\n },\n {\n \"name\": \"quickLinks\",\n \"type\": \"QuickLink[]\",\n \"required\": false,\n \"description\": \"Quick links at bottom\"\n },\n {\n \"name\": \"quickLinksDisplay\",\n \"type\": \"'list' | 'icons'\",\n \"default\": \"'list'\",\n \"required\": false,\n \"description\": \"Quick links display mode\"\n },\n {\n \"name\": \"onNavigate\",\n \"type\": \"(item: NavItem) => void\",\n \"required\": false,\n \"description\": \"Navigation callback\"\n },\n {\n \"name\": \"headerStart\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Content after toggle button\"\n },\n {\n \"name\": \"headerEnd\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Content at end of header\"\n },\n {\n \"name\": \"userMenu\",\n \"type\": \"Snippet<[User]>\",\n \"required\": false,\n \"description\": \"Custom user menu\"\n },\n {\n \"name\": \"sidebarFooter\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Sidebar footer content\"\n },\n {\n \"name\": \"expandedWidth\",\n \"type\": \"number\",\n \"default\": \"256\",\n \"required\": false,\n \"description\": \"Expanded sidebar width (px)\"\n },\n {\n \"name\": \"collapsedWidth\",\n \"type\": \"number\",\n \"default\": \"64\",\n \"required\": false,\n \"description\": \"Collapsed sidebar width (px)\"\n },\n {\n \"name\": \"searchable\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Enable navigation search\"\n },\n {\n \"name\": \"searchPlaceholder\",\n \"type\": \"string\",\n \"default\": \"'Search...'\",\n \"required\": false,\n \"description\": \"Search input placeholder\"\n },\n {\n \"name\": \"headerSearch\",\n \"type\": \"HeaderSearchConfig\",\n \"required\": false,\n \"description\": \"Header search configuration\"\n },\n {\n \"name\": \"mobileBreakpoint\",\n \"type\": \"'sm' | 'md' | 'lg'\",\n \"default\": \"'lg'\",\n \"required\": false,\n \"description\": \"Mobile/desktop breakpoint\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Main content\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"sidebarVariant\",\n \"values\": [\n \"light\",\n \"dark\"\n ],\n \"default\": \"light\"\n },\n {\n \"name\": \"quickLinksDisplay\",\n \"values\": [\n \"list\",\n \"icons\"\n ],\n \"default\": \"list\"\n },\n {\n \"name\": \"mobileBreakpoint\",\n \"values\": [\n \"sm\",\n \"md\",\n \"lg\"\n ],\n \"default\": \"lg\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n const navigation = [\\n {\\n id: 'main',\\n title: 'Main',\\n items: [\\n { id: 'dashboard', name: 'Dashboard', href: '/dashboard', icon: 'home' },\\n { id: 'projects', name: 'Projects', href: '/projects', icon: 'folder' },\\n ],\\n },\\n ];\\n</script>\\n\\n<DashboardLayout {navigation}>\\n <h1>Dashboard Content</h1>\\n</DashboardLayout>\"\n }\n ],\n \"relatedComponents\": [\n \"Sidebar\",\n \"Header\",\n \"AppShell\"\n ]\n },\n {\n \"name\": \"DataTable\",\n \"description\": \"Sortable, accessible data table with loading states\",\n \"category\": \"data\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"data\",\n \"type\": \"T[]\",\n \"required\": false,\n \"description\": \"Array of data rows\"\n },\n {\n \"name\": \"columns\",\n \"type\": \"DataTableColumn<T>[]\",\n \"required\": false,\n \"description\": \"Column definitions\"\n },\n {\n \"name\": \"loading\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Show loading state\"\n },\n {\n \"name\": \"loadingRows\",\n \"type\": \"number\",\n \"default\": \"5\",\n \"required\": false,\n \"description\": \"Number of skeleton rows\"\n },\n {\n \"name\": \"emptyMessage\",\n \"type\": \"string\",\n \"default\": \"'No data available'\",\n \"required\": false,\n \"description\": \"Empty state message\"\n },\n {\n \"name\": \"sortColumn\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Current sort column ID (bindable)\"\n },\n {\n \"name\": \"sortDirection\",\n \"type\": \"'asc' | 'desc'\",\n \"default\": \"'asc'\",\n \"required\": false,\n \"description\": \"Sort direction (bindable)\"\n },\n {\n \"name\": \"onSort\",\n \"type\": \"(column: string, direction: 'asc' | 'desc') => void\",\n \"required\": false,\n \"description\": \"Sort callback\"\n },\n {\n \"name\": \"onRowClick\",\n \"type\": \"(row: T) => void\",\n \"required\": false,\n \"description\": \"Row click callback\"\n },\n {\n \"name\": \"caption\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Accessible caption\"\n },\n {\n \"name\": \"row\",\n \"type\": \"Snippet<[T, number]>\",\n \"required\": false,\n \"description\": \"Custom row renderer\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"sortDirection\",\n \"values\": [\n \"asc\",\n \"desc\"\n ],\n \"default\": \"asc\"\n },\n {\n \"name\": \"onSort\",\n \"values\": [\n \"asc\",\n \"desc\"\n ]\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n const data = [\\n { id: 1, name: 'John Doe', email: 'john@example.com' },\\n { id: 2, name: 'Jane Smith', email: 'jane@example.com' },\\n ];\\n\\n const columns = [\\n { id: 'name', header: 'Name', accessor: 'name' },\\n { id: 'email', header: 'Email', accessor: 'email' },\\n ];\\n</script>\\n\\n<DataTable {data} {columns} />\"\n },\n {\n \"title\": \"User Management Table\",\n \"code\": \"<script>\\n const columns = [\\n { id: 'name', header: 'Name', accessor: 'name', sortable: true },\\n { id: 'email', header: 'Email', accessor: 'email', sortable: true },\\n { id: 'role', header: 'Role', accessor: 'role' },\\n {\\n id: 'joined',\\n header: 'Joined',\\n accessor: 'createdAt',\\n sortable: true,\\n format: (v) => new Date(v).toLocaleDateString(),\\n },\\n ];\\n</script>\\n\\n<DataTable\\n data={users}\\n {columns}\\n caption=\\\"User management table\\\"\\n onRowClick={(user) => goto(`/users/${user.id}`)}\\n/>\"\n },\n {\n \"title\": \"Product Inventory\",\n \"code\": \"<script>\\n const columns = [\\n { id: 'sku', header: 'SKU', accessor: 'sku', width: '120px' },\\n { id: 'name', header: 'Product', accessor: 'name', sortable: true },\\n {\\n id: 'stock',\\n header: 'Stock',\\n accessor: 'quantity',\\n align: 'right',\\n sortable: true,\\n },\\n {\\n id: 'price',\\n header: 'Price',\\n accessor: 'price',\\n align: 'right',\\n format: (v) => `$${v.toFixed(2)}`,\\n },\\n ];\\n</script>\\n\\n<DataTable data={products} {columns} emptyMessage=\\\"No products found\\\" />\"\n }\n ],\n \"relatedComponents\": [\n \"Skeleton\",\n \"Badge\",\n \"Button\"\n ]\n },\n {\n \"name\": \"DateTimePicker\",\n \"description\": \"Calendar-based date and time selection\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"Date | null\",\n \"default\": \"null\",\n \"required\": false,\n \"description\": \"Selected date (bindable)\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the picker\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"minDate\",\n \"type\": \"Date\",\n \"required\": false,\n \"description\": \"Earliest selectable date\"\n },\n {\n \"name\": \"maxDate\",\n \"type\": \"Date\",\n \"required\": false,\n \"description\": \"Latest selectable date\"\n },\n {\n \"name\": \"includeTime\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Include time selection\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Label text\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: Date | null) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let date = $state(null);\\n</script>\\n\\n<DateTimePicker bind:value={date} />\"\n },\n {\n \"title\": \"Event Scheduler\",\n \"code\": \"<DateTimePicker\\n label=\\\"Event date and time\\\"\\n bind:value={eventDate}\\n includeTime\\n minDate={new Date()}\\n/>\"\n },\n {\n \"title\": \"Birth Date\",\n \"code\": \"<DateTimePicker\\n label=\\\"Date of birth\\\"\\n bind:value={birthDate}\\n maxDate={new Date()}\\n placeholder=\\\"Select your birth date\\\"\\n/>\"\n },\n {\n \"title\": \"Booking Window\",\n \"code\": \"<script>\\n const today = new Date();\\n const maxDate = new Date();\\n maxDate.setMonth(maxDate.getMonth() + 3);\\n</script>\\n\\n<DateTimePicker label=\\\"Reservation date\\\" bind:value={reservationDate} minDate={today} {maxDate} />\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"FormField\"\n ]\n },\n {\n \"name\": \"Dialog\",\n \"description\": \"Modal window for focused interactions and confirmations\",\n \"category\": \"overlay\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"open\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Whether the dialog is open (bindable)\"\n },\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Dialog title displayed in header\"\n },\n {\n \"name\": \"description\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Description text below title\"\n },\n {\n \"name\": \"showClose\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Whether to show the close button\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes for content\"\n },\n {\n \"name\": \"onOpenChange\",\n \"type\": \"(open: boolean) => void\",\n \"required\": false,\n \"description\": \"Callback when open state changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let open = $state(false);\\n</script>\\n\\n<Button onclick={() => (open = true)}>Open Dialog</Button>\\n\\n<Dialog bind:open title=\\\"Dialog Title\\\" description=\\\"Dialog description text\\\">\\n <p>Dialog content goes here.</p>\\n</Dialog>\"\n },\n {\n \"title\": \"Confirmation Dialog\",\n \"code\": \"<script>\\n let deleteDialogOpen = $state(false);\\n\\n async function handleDelete() {\\n await deleteItem();\\n deleteDialogOpen = false;\\n }\\n</script>\\n\\n<Button variant=\\\"destructive\\\" onclick={() => (deleteDialogOpen = true)}>Delete</Button>\\n\\n<Dialog\\n bind:open={deleteDialogOpen}\\n title=\\\"Delete Item\\\"\\n description=\\\"This action cannot be undone.\\\"\\n>\\n <p>Are you sure you want to delete this item permanently?</p>\\n\\n {#snippet footer()}\\n <Button variant=\\\"outline\\\" onclick={() => (deleteDialogOpen = false)}>Cancel</Button>\\n <Button variant=\\\"destructive\\\" onclick={handleDelete}>Delete</Button>\\n {/snippet}\\n</Dialog>\"\n },\n {\n \"title\": \"Form Dialog\",\n \"code\": \"<Dialog bind:open title=\\\"Edit Profile\\\">\\n <form onsubmit|preventDefault={handleSubmit} class=\\\"space-y-4\\\">\\n <FormField label=\\\"Name\\\" id=\\\"name\\\" bind:value={name} required />\\n <FormField label=\\\"Email\\\" id=\\\"email\\\" type=\\\"email\\\" bind:value={email} required />\\n </form>\\n\\n {#snippet footer()}\\n <Button variant=\\\"outline\\\" onclick={() => (open = false)}>Cancel</Button>\\n <Button onclick={handleSubmit}>Save Changes</Button>\\n {/snippet}\\n</Dialog>\"\n },\n {\n \"title\": \"Info Dialog\",\n \"code\": \"<Dialog title=\\\"Keyboard Shortcuts\\\">\\n <dl class=\\\"space-y-2\\\">\\n <div class=\\\"flex justify-between\\\">\\n <dt class=\\\"font-medium\\\">Save</dt>\\n <dd><kbd class=\\\"px-2 py-1 bg-muted rounded text-sm\\\">Ctrl+S</kbd></dd>\\n </div>\\n <div class=\\\"flex justify-between\\\">\\n <dt class=\\\"font-medium\\\">Search</dt>\\n <dd><kbd class=\\\"px-2 py-1 bg-muted rounded text-sm\\\">Ctrl+K</kbd></dd>\\n </div>\\n </dl>\\n\\n {#snippet trigger()}\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\">\\n <HelpIcon class=\\\"h-4 w-4\\\" />\\n </Button>\\n {/snippet}\\n</Dialog>\"\n },\n {\n \"title\": \"Wide Dialog\",\n \"code\": \"<Dialog bind:open title=\\\"Preview\\\" class=\\\"max-w-4xl\\\">\\n <img src={previewUrl} alt=\\\"Preview\\\" class=\\\"w-full\\\" />\\n</Dialog>\"\n }\n ],\n \"relatedComponents\": [\n \"AlertDialog\",\n \"Tooltip\",\n \"DropdownMenu\"\n ]\n },\n {\n \"name\": \"DonutChart\",\n \"description\": \"Pie chart variant with center labels for key metrics\",\n \"category\": \"chart\",\n \"importPath\": \"@classic-homes/charts-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n import { DonutChart } from '@classic-homes/charts-svelte';\\n\\n const data = [\\n { name: 'Completed', value: 65 },\\n { name: 'In Progress', value: 25 },\\n { name: 'Pending', value: 10 },\\n ];\\n</script>\\n\\n<DonutChart title=\\\"Task Status\\\" {data} centerLabel=\\\"Total\\\" centerValue=\\\"100\\\" height={400} />\"\n },\n {\n \"title\": \"Dashboard KPI\",\n \"code\": \"<DonutChart title=\\\"Budget Usage\\\" {data} centerLabel=\\\"Spent\\\" centerValue=\\\"$45,000\\\" height={300} />\"\n },\n {\n \"title\": \"With Labels\",\n \"code\": \"<DonutChart title=\\\"Category Distribution\\\" {data} showLabels centerLabel=\\\"Items\\\" centerValue=\\\"156\\\" />\"\n },\n {\n \"title\": \"Custom Inner Radius\",\n \"code\": \"<DonutChart title=\\\"Thin Donut\\\" {data} innerRadius=\\\"70%\\\" />\"\n }\n ],\n \"relatedComponents\": [\n \"PieChart\",\n \"GaugeChart\"\n ]\n },\n {\n \"name\": \"DropdownMenu\",\n \"description\": \"Contextual menu with items, groups, and keyboard navigation\",\n \"category\": \"overlay\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"items\",\n \"type\": \"(DropdownMenuItem | DropdownMenuGroup)[]\",\n \"required\": false,\n \"description\": \"Menu items\"\n },\n {\n \"name\": \"trigger\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Trigger element\"\n },\n {\n \"name\": \"side\",\n \"type\": \"'top' | 'right' | 'bottom' | 'left'\",\n \"default\": \"'bottom'\",\n \"required\": false,\n \"description\": \"Menu position\"\n },\n {\n \"name\": \"align\",\n \"type\": \"'start' | 'center' | 'end'\",\n \"default\": \"'start'\",\n \"required\": false,\n \"description\": \"Menu alignment\"\n },\n {\n \"name\": \"open\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Controlled open state (bindable)\"\n },\n {\n \"name\": \"onOpenChange\",\n \"type\": \"(open: boolean) => void\",\n \"required\": false,\n \"description\": \"Open change callback\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"side\",\n \"values\": [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ],\n \"default\": \"bottom\"\n },\n {\n \"name\": \"align\",\n \"values\": [\n \"start\",\n \"center\",\n \"end\"\n ],\n \"default\": \"start\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n const items = [\\n { label: 'Profile', onSelect: () => goto('/profile') },\\n { label: 'Settings', onSelect: () => goto('/settings') },\\n { type: 'separator' },\\n { label: 'Log out', onSelect: logout, destructive: true },\\n ];\\n</script>\\n\\n<DropdownMenu {items}>\\n {#snippet trigger()}\\n <Button variant=\\\"outline\\\">Menu</Button>\\n {/snippet}\\n</DropdownMenu>\"\n },\n {\n \"title\": \"Regular Items\",\n \"code\": \"<script>\\n const items = [\\n { label: 'Edit', onSelect: handleEdit },\\n { label: 'Duplicate', onSelect: handleDuplicate },\\n { label: 'Delete', onSelect: handleDelete, destructive: true },\\n ];\\n</script>\"\n },\n {\n \"title\": \"With Separators\",\n \"code\": \"<script>\\n const items = [\\n { label: 'Cut', shortcut: '⌘X' },\\n { label: 'Copy', shortcut: '⌘C' },\\n { label: 'Paste', shortcut: '⌘V' },\\n { type: 'separator' },\\n { label: 'Select All', shortcut: '⌘A' },\\n ];\\n</script>\"\n },\n {\n \"title\": \"Labels\",\n \"code\": \"<script>\\n const items = [{ type: 'label', label: 'Actions' }, { label: 'Edit' }, { label: 'Delete' }];\\n</script>\"\n },\n {\n \"title\": \"Disabled Items\",\n \"code\": \"<script>\\n const items = [\\n { label: 'Save', disabled: !hasChanges },\\n { label: 'Publish', disabled: !canPublish },\\n ];\\n</script>\"\n },\n {\n \"title\": \"Side\",\n \"code\": \"<!-- Below trigger (default) -->\\n<DropdownMenu {items} side=\\\"bottom\\\">...</DropdownMenu>\\n\\n<!-- Above trigger -->\\n<DropdownMenu {items} side=\\\"top\\\">...</DropdownMenu>\\n\\n<!-- To the right -->\\n<DropdownMenu {items} side=\\\"right\\\">...</DropdownMenu>\\n\\n<!-- To the left -->\\n<DropdownMenu {items} side=\\\"left\\\">...</DropdownMenu>\"\n },\n {\n \"title\": \"Alignment\",\n \"code\": \"<!-- Align to start (default) -->\\n<DropdownMenu {items} align=\\\"start\\\">...</DropdownMenu>\\n\\n<!-- Center aligned -->\\n<DropdownMenu {items} align=\\\"center\\\">...</DropdownMenu>\\n\\n<!-- Align to end -->\\n<DropdownMenu {items} align=\\\"end\\\">...</DropdownMenu>\"\n },\n {\n \"title\": \"User Menu\",\n \"code\": \"<script>\\n const items = [\\n { type: 'label', label: user.email },\\n { type: 'separator' },\\n { label: 'Profile', onSelect: () => goto('/profile') },\\n { label: 'Settings', onSelect: () => goto('/settings') },\\n { label: 'Billing', onSelect: () => goto('/billing') },\\n { type: 'separator' },\\n { label: 'Help', onSelect: openHelp },\\n { type: 'separator' },\\n { label: 'Log out', onSelect: logout, destructive: true },\\n ];\\n</script>\\n\\n<DropdownMenu {items} align=\\\"end\\\">\\n {#snippet trigger()}\\n <Avatar>{user.initials}</Avatar>\\n {/snippet}\\n</DropdownMenu>\"\n },\n {\n \"title\": \"Context Actions\",\n \"code\": \"<script>\\n const items = [\\n { label: 'Open', onSelect: openItem },\\n { label: 'Open in new tab', onSelect: openInNewTab },\\n { type: 'separator' },\\n { label: 'Rename', shortcut: 'F2', onSelect: rename },\\n { label: 'Duplicate', shortcut: '⌘D', onSelect: duplicate },\\n { label: 'Move to...', onSelect: moveTo },\\n { type: 'separator' },\\n { label: 'Delete', destructive: true, onSelect: deleteItem },\\n ];\\n</script>\\n\\n<DropdownMenu {items}>\\n {#snippet trigger()}\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\">\\n <MoreHorizontalIcon />\\n </Button>\\n {/snippet}\\n</DropdownMenu>\"\n },\n {\n \"title\": \"Table Row Actions\",\n \"code\": \"{#each rows as row}\\n <tr>\\n <td>{row.name}</td>\\n <td>\\n <DropdownMenu items={getRowActions(row)}>\\n {#snippet trigger()}\\n <Button variant=\\\"ghost\\\" size=\\\"sm\\\">Actions</Button>\\n {/snippet}\\n </DropdownMenu>\\n </td>\\n </tr>\\n{/each}\"\n }\n ],\n \"relatedComponents\": [\n \"Button\",\n \"AlertDialog\",\n \"Tooltip\"\n ]\n },\n {\n \"name\": \"ErrorLayout\",\n \"description\": \"Layout for error pages with status codes and messaging\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"statusCode\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"HTTP status code (404, 500, etc.)\"\n },\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Custom title (overrides default)\"\n },\n {\n \"name\": \"description\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error description\"\n },\n {\n \"name\": \"showLogo\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Show logo at top\"\n },\n {\n \"name\": \"logo\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom logo\"\n },\n {\n \"name\": \"showHomeButton\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Show \\\"Go Home\\\" button\"\n },\n {\n \"name\": \"homeUrl\",\n \"type\": \"string\",\n \"default\": \"'/'\",\n \"required\": false,\n \"description\": \"Home button URL\"\n },\n {\n \"name\": \"homeText\",\n \"type\": \"string\",\n \"default\": \"'Go Home'\",\n \"required\": false,\n \"description\": \"Home button text\"\n },\n {\n \"name\": \"showBackButton\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Show \\\"Go Back\\\" button\"\n },\n {\n \"name\": \"backText\",\n \"type\": \"string\",\n \"default\": \"'Go Back'\",\n \"required\": false,\n \"description\": \"Back button text\"\n },\n {\n \"name\": \"illustration\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom illustration\"\n },\n {\n \"name\": \"actions\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Additional actions\"\n },\n {\n \"name\": \"footer\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Footer content\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom content\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<ErrorLayout statusCode={404} />\"\n },\n {\n \"title\": \"SvelteKit Error Page\",\n \"code\": \"<!-- src/routes/+error.svelte -->\\n<script>\\n import { page } from '$app/stores';\\n import { ErrorLayout } from '@classic-homes/theme-svelte';\\n</script>\\n\\n<ErrorLayout statusCode={$page.status} description={$page.error?.message} />\"\n },\n {\n \"title\": \"Access Denied\",\n \"code\": \"<ErrorLayout\\n statusCode={403}\\n title=\\\"Access Denied\\\"\\n description=\\\"You need additional permissions to view this page.\\\"\\n showBackButton={false}\\n>\\n {#snippet actions()}\\n <Button href=\\\"/request-access\\\">Request Access</Button>\\n <Button variant=\\\"outline\\\" href=\\\"/dashboard\\\">Back to Dashboard</Button>\\n {/snippet}\\n</ErrorLayout>\"\n },\n {\n \"title\": \"Session Expired\",\n \"code\": \"<ErrorLayout\\n statusCode={401}\\n title=\\\"Session Expired\\\"\\n description=\\\"Your session has expired. Please sign in again to continue.\\\"\\n showBackButton={false}\\n showHomeButton={false}\\n>\\n {#snippet actions()}\\n <Button href=\\\"/login\\\">Sign In Again</Button>\\n {/snippet}\\n</ErrorLayout>\"\n },\n {\n \"title\": \"Maintenance Mode\",\n \"code\": \"<ErrorLayout\\n title=\\\"Scheduled Maintenance\\\"\\n description=\\\"We're currently performing system upgrades. Expected completion: 2:00 PM EST\\\"\\n showBackButton={false}\\n>\\n {#snippet illustration()}\\n <svg class=\\\"w-32 h-32 text-muted-foreground\\\">\\n <!-- Maintenance icon -->\\n </svg>\\n {/snippet}\\n</ErrorLayout>\"\n }\n ],\n \"relatedComponents\": [\n \"AuthLayout\",\n \"Button\",\n \"AppShell\"\n ]\n },\n {\n \"name\": \"FileUpload\",\n \"description\": \"File upload component with drag-and-drop support\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"files\",\n \"type\": \"FileMetadata[]\",\n \"default\": \"[]\",\n \"required\": false,\n \"description\": \"Uploaded files (bindable)\"\n },\n {\n \"name\": \"accept\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Accepted file types\"\n },\n {\n \"name\": \"multiple\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Allow multiple files\"\n },\n {\n \"name\": \"maxSize\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"Max file size in bytes\"\n },\n {\n \"name\": \"maxFiles\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"Max number of files\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables upload\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message\"\n },\n {\n \"name\": \"onUpload\",\n \"type\": \"(file: File) => Promise<FileMetadata>\",\n \"required\": false,\n \"description\": \"Upload handler\"\n },\n {\n \"name\": \"onRemove\",\n \"type\": \"(file: FileMetadata) => void\",\n \"required\": false,\n \"description\": \"Remove handler\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let files = $state([]);\\n</script>\\n\\n<FileUpload bind:files />\"\n },\n {\n \"title\": \"Profile Picture\",\n \"code\": \"<FileUpload\\n accept=\\\"image/*\\\"\\n maxSize={2 * 1024 * 1024}\\n bind:files={avatar}\\n onUpload={uploadAvatar}\\n/>\"\n },\n {\n \"title\": \"Document Upload\",\n \"code\": \"<FileUpload\\n accept=\\\".pdf,.doc,.docx\\\"\\n multiple\\n maxFiles={10}\\n maxSize={10 * 1024 * 1024}\\n bind:files={documents}\\n onUpload={uploadDocument}\\n/>\"\n },\n {\n \"title\": \"With Progress\",\n \"description\": \"Files show upload progress:\",\n \"code\": \"<FileUpload\\n bind:files\\n onUpload={async (file) => {\\n // Upload with progress tracking\\n return await uploadWithProgress(file, (progress) => {\\n // Progress updates automatically\\n });\\n }}\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"Button\"\n ]\n },\n {\n \"name\": \"Footer\",\n \"description\": \"Site footer with link sections and branding\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"links\",\n \"type\": \"NavSection[]\",\n \"default\": \"[]\",\n \"required\": false,\n \"description\": \"Link sections\"\n },\n {\n \"name\": \"copyright\",\n \"type\": \"string\",\n \"default\": \"Auto-generated\",\n \"required\": false,\n \"description\": \"Copyright text\"\n },\n {\n \"name\": \"showLogo\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Show logo\"\n },\n {\n \"name\": \"strongBorder\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"10px accent border\"\n },\n {\n \"name\": \"variant\",\n \"type\": \"'default' | 'dark'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Visual variant\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom content\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"default\",\n \"dark\"\n ],\n \"default\": \"default\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Footer />\"\n },\n {\n \"title\": \"Marketing Site Footer\",\n \"code\": \"<script>\\n const links = [\\n {\\n id: 'product',\\n title: 'Product',\\n items: [\\n { id: 'features', name: 'Features', href: '/features' },\\n { id: 'pricing', name: 'Pricing', href: '/pricing' },\\n { id: 'integrations', name: 'Integrations', href: '/integrations' },\\n { id: 'changelog', name: 'Changelog', href: '/changelog' },\\n ],\\n },\\n {\\n id: 'company',\\n title: 'Company',\\n items: [\\n { id: 'about', name: 'About Us', href: '/about' },\\n { id: 'blog', name: 'Blog', href: '/blog' },\\n { id: 'careers', name: 'Careers', href: '/careers' },\\n { id: 'press', name: 'Press Kit', href: '/press' },\\n ],\\n },\\n {\\n id: 'support',\\n title: 'Support',\\n items: [\\n { id: 'help', name: 'Help Center', href: '/help' },\\n { id: 'contact', name: 'Contact Us', href: '/contact' },\\n { id: 'status', name: 'System Status', href: 'https://status.example.com', external: true },\\n ],\\n },\\n {\\n id: 'legal',\\n title: 'Legal',\\n items: [\\n { id: 'privacy', name: 'Privacy', href: '/privacy' },\\n { id: 'terms', name: 'Terms', href: '/terms' },\\n { id: 'security', name: 'Security', href: '/security' },\\n ],\\n },\\n ];\\n</script>\\n\\n<Footer {links} copyright=\\\"2024 Example Inc. All rights reserved.\\\" />\"\n },\n {\n \"title\": \"Minimal Footer\",\n \"code\": \"<Footer copyright=\\\"2024 Company Name\\\" showLogo={false} />\"\n },\n {\n \"title\": \"Branded Dark Footer\",\n \"code\": \"<Footer\\n {links}\\n variant=\\\"dark\\\"\\n strongBorder\\n copyright=\\\"2024 Classic Homes. Building quality since 1985.\\\"\\n>\\n <div class=\\\"grid grid-cols-3 gap-4 text-center\\\">\\n <div>\\n <p class=\\\"text-2xl font-bold\\\">500+</p>\\n <p class=\\\"text-sm text-gray-400\\\">Homes Built</p>\\n </div>\\n <div>\\n <p class=\\\"text-2xl font-bold\\\">25+</p>\\n <p class=\\\"text-sm text-gray-400\\\">Years Experience</p>\\n </div>\\n <div>\\n <p class=\\\"text-2xl font-bold\\\">98%</p>\\n <p class=\\\"text-sm text-gray-400\\\">Satisfaction</p>\\n </div>\\n </div>\\n</Footer>\"\n }\n ],\n \"relatedComponents\": [\n \"Header\",\n \"PublicLayout\",\n \"Separator\"\n ]\n },\n {\n \"name\": \"FormField\",\n \"description\": \"Complete form field component with label, input, and validation\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"default\": \"Required\",\n \"required\": false,\n \"description\": \"Label text\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"default\": \"Required\",\n \"required\": false,\n \"description\": \"Input ID for accessibility\"\n },\n {\n \"name\": \"type\",\n \"type\": \"'text' | 'email' | 'password' | 'tel' | 'url' | 'number' | 'date' | 'textarea'\",\n \"default\": \"'text'\",\n \"required\": false,\n \"description\": \"Input type\"\n },\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"default\": \"''\",\n \"required\": false,\n \"description\": \"Field value (bindable)\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message to display\"\n },\n {\n \"name\": \"hint\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Help text shown below input\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the field\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"autocomplete\",\n \"type\": \"AutoFill\",\n \"required\": false,\n \"description\": \"Browser autocomplete hint\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Name attribute for forms\"\n },\n {\n \"name\": \"rows\",\n \"type\": \"number\",\n \"default\": \"3\",\n \"required\": false,\n \"description\": \"Rows for textarea type\"\n },\n {\n \"name\": \"readonly\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Makes field read-only\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"type\",\n \"values\": [\n \"text\",\n \"email\",\n \"password\",\n \"tel\",\n \"url\",\n \"number\",\n \"date\",\n \"textarea\"\n ],\n \"default\": \"text\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let email = $state('');\\n</script>\\n\\n<FormField label=\\\"Email\\\" id=\\\"email\\\" type=\\\"email\\\" bind:value={email} placeholder=\\\"your@email.com\\\" />\"\n },\n {\n \"title\": \"Text (Default)\",\n \"code\": \"<FormField label=\\\"Name\\\" id=\\\"name\\\" bind:value={name} />\"\n },\n {\n \"title\": \"Email\",\n \"code\": \"<FormField label=\\\"Email\\\" id=\\\"email\\\" type=\\\"email\\\" autocomplete=\\\"email\\\" bind:value={email} />\"\n },\n {\n \"title\": \"Password\",\n \"code\": \"<FormField\\n label=\\\"Password\\\"\\n id=\\\"password\\\"\\n type=\\\"password\\\"\\n autocomplete=\\\"new-password\\\"\\n bind:value={password}\\n/>\"\n },\n {\n \"title\": \"Tel (Phone)\",\n \"code\": \"<FormField label=\\\"Phone\\\" id=\\\"phone\\\" type=\\\"tel\\\" autocomplete=\\\"tel\\\" bind:value={phone} />\"\n },\n {\n \"title\": \"Number\",\n \"code\": \"<FormField label=\\\"Age\\\" id=\\\"age\\\" type=\\\"number\\\" bind:value={age} />\"\n },\n {\n \"title\": \"Date\",\n \"code\": \"<FormField label=\\\"Birth Date\\\" id=\\\"birthdate\\\" type=\\\"date\\\" bind:value={birthdate} />\"\n },\n {\n \"title\": \"URL\",\n \"code\": \"<FormField label=\\\"Website\\\" id=\\\"website\\\" type=\\\"url\\\" placeholder=\\\"https://\\\" bind:value={website} />\"\n },\n {\n \"title\": \"Textarea\",\n \"code\": \"<FormField label=\\\"Description\\\" id=\\\"description\\\" type=\\\"textarea\\\" rows={5} bind:value={description} />\"\n },\n {\n \"title\": \"Error State\",\n \"description\": \"Display validation errors:\",\n \"code\": \"<FormField label=\\\"Email\\\" id=\\\"email\\\" type=\\\"email\\\" bind:value={email} error={emailError} />\"\n },\n {\n \"title\": \"With Hint\",\n \"description\": \"Provide helpful guidance:\",\n \"code\": \"<FormField\\n label=\\\"Password\\\"\\n id=\\\"password\\\"\\n type=\\\"password\\\"\\n bind:value={password}\\n hint=\\\"Must be at least 8 characters\\\"\\n/>\"\n },\n {\n \"title\": \"Disabled\",\n \"code\": \"<FormField label=\\\"Username\\\" id=\\\"username\\\" disabled value=\\\"johndoe\\\" />\"\n },\n {\n \"title\": \"Read-only\",\n \"code\": \"<FormField label=\\\"ID\\\" id=\\\"user-id\\\" readonly value=\\\"USR-12345\\\" />\"\n },\n {\n \"title\": \"Login Form\",\n \"code\": \"<script>\\n let email = $state('');\\n let password = $state('');\\n let errors = $state({ email: '', password: '' });\\n\\n function validate() {\\n errors = { email: '', password: '' };\\n\\n if (!email) errors.email = 'Email is required';\\n else if (!email.includes('@')) errors.email = 'Invalid email address';\\n\\n if (!password) errors.password = 'Password is required';\\n else if (password.length < 8) errors.password = 'Password must be at least 8 characters';\\n\\n return !errors.email && !errors.password;\\n }\\n</script>\\n\\n<form onsubmit|preventDefault={() => validate() && login()}>\\n <div class=\\\"space-y-4\\\">\\n <FormField\\n label=\\\"Email\\\"\\n id=\\\"email\\\"\\n type=\\\"email\\\"\\n required\\n autocomplete=\\\"email\\\"\\n bind:value={email}\\n error={errors.email}\\n />\\n <FormField\\n label=\\\"Password\\\"\\n id=\\\"password\\\"\\n type=\\\"password\\\"\\n required\\n autocomplete=\\\"current-password\\\"\\n bind:value={password}\\n error={errors.password}\\n />\\n <Button type=\\\"submit\\\" class=\\\"w-full\\\">Sign In</Button>\\n </div>\\n</form>\"\n },\n {\n \"title\": \"Contact Form\",\n \"code\": \"<form class=\\\"space-y-4\\\">\\n <FormField label=\\\"Full Name\\\" id=\\\"name\\\" required autocomplete=\\\"name\\\" bind:value={name} />\\n <FormField\\n label=\\\"Email\\\"\\n id=\\\"email\\\"\\n type=\\\"email\\\"\\n required\\n autocomplete=\\\"email\\\"\\n bind:value={email}\\n />\\n <FormField\\n label=\\\"Phone\\\"\\n id=\\\"phone\\\"\\n type=\\\"tel\\\"\\n autocomplete=\\\"tel\\\"\\n bind:value={phone}\\n hint=\\\"Optional\\\"\\n />\\n <FormField\\n label=\\\"Message\\\"\\n id=\\\"message\\\"\\n type=\\\"textarea\\\"\\n rows={5}\\n required\\n bind:value={message}\\n hint=\\\"Please describe your inquiry in detail\\\"\\n />\\n <Button type=\\\"submit\\\">Send Message</Button>\\n</form>\"\n },\n {\n \"title\": \"Controlled Field\",\n \"code\": \"<script>\\n let value = $state('');\\n\\n function handleChange(newValue: string) {\\n // Normalize phone number\\n value = newValue.replace(/\\\\D/g, '').slice(0, 10);\\n }\\n</script>\\n\\n<FormField\\n label=\\\"Phone\\\"\\n id=\\\"phone\\\"\\n type=\\\"tel\\\"\\n {value}\\n onValueChange={handleChange}\\n hint=\\\"10 digits only\\\"\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"Label\",\n \"Textarea\"\n ]\n },\n {\n \"name\": \"FormPageLayout\",\n \"description\": \"Specialized layout for form pages with optional sidebar\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Page title (h1)\"\n },\n {\n \"name\": \"description\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Page description text\"\n },\n {\n \"name\": \"helpText\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Footer help text (supports HTML)\"\n },\n {\n \"name\": \"showNotices\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Show notices section\"\n },\n {\n \"name\": \"sageBackground\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Use sage green background\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Main form content\"\n },\n {\n \"name\": \"notices\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Notices content\"\n },\n {\n \"name\": \"sidebar\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Sidebar content\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<FormPageLayout\\n title=\\\"Contact Us\\\"\\n description=\\\"Fill out the form below and we'll get back to you within 24 hours.\\\"\\n>\\n <form class=\\\"space-y-4\\\">\\n <Input label=\\\"Name\\\" required />\\n <Input label=\\\"Email\\\" type=\\\"email\\\" required />\\n <Textarea label=\\\"Message\\\" required />\\n <Button type=\\\"submit\\\">Send Message</Button>\\n </form>\\n</FormPageLayout>\"\n },\n {\n \"title\": \"Contact Form\",\n \"code\": \"<FormPageLayout\\n title=\\\"Get in Touch\\\"\\n description=\\\"We'd love to hear from you. Send us a message and we'll respond as soon as possible.\\\"\\n helpText=\\\"By submitting this form, you agree to our <a href='/privacy'>Privacy Policy</a>.\\\"\\n>\\n {#snippet sidebar()}\\n <div class=\\\"space-y-6\\\">\\n <Card>\\n <Card.Header>\\n <Card.Title>Contact Info</Card.Title>\\n </Card.Header>\\n <Card.Content class=\\\"space-y-3\\\">\\n <p class=\\\"text-sm\\\">\\n <strong>Email:</strong><br />\\n support@example.com\\n </p>\\n <p class=\\\"text-sm\\\">\\n <strong>Phone:</strong><br />\\n (555) 123-4567\\n </p>\\n </Card.Content>\\n </Card>\\n </div>\\n {/snippet}\\n\\n <Card>\\n <Card.Content class=\\\"pt-6\\\">\\n <form class=\\\"space-y-4\\\">\\n <div class=\\\"grid grid-cols-2 gap-4\\\">\\n <Input label=\\\"First Name\\\" required />\\n <Input label=\\\"Last Name\\\" required />\\n </div>\\n <Input label=\\\"Email\\\" type=\\\"email\\\" required />\\n <Input label=\\\"Phone\\\" type=\\\"tel\\\" />\\n <Select label=\\\"Subject\\\" required>\\n <option value=\\\"\\\">Select a topic...</option>\\n <option value=\\\"sales\\\">Sales Inquiry</option>\\n <option value=\\\"support\\\">Technical Support</option>\\n <option value=\\\"other\\\">Other</option>\\n </Select>\\n <Textarea label=\\\"Message\\\" rows={5} required />\\n <Button type=\\\"submit\\\" class=\\\"w-full\\\">Send Message</Button>\\n </form>\\n </Card.Content>\\n </Card>\\n</FormPageLayout>\"\n },\n {\n \"title\": \"Application Form\",\n \"code\": \"<FormPageLayout\\n title=\\\"Apply Now\\\"\\n description=\\\"Complete your application in just a few minutes.\\\"\\n sageBackground\\n>\\n {#snippet notices()}\\n <Alert variant=\\\"info\\\" class=\\\"mb-0\\\">\\n <strong>Save your progress:</strong> Your application will be saved automatically.\\n </Alert>\\n {/snippet}\\n\\n {#snippet sidebar()}\\n <div class=\\\"space-y-4\\\">\\n <Card>\\n <Card.Header>\\n <Card.Title>Progress</Card.Title>\\n </Card.Header>\\n <Card.Content>\\n <div class=\\\"space-y-2\\\">\\n <div class=\\\"flex justify-between text-sm\\\">\\n <span>Personal Info</span>\\n <Badge variant=\\\"success\\\">Complete</Badge>\\n </div>\\n <div class=\\\"flex justify-between text-sm\\\">\\n <span>Employment</span>\\n <Badge variant=\\\"warning\\\">In Progress</Badge>\\n </div>\\n <div class=\\\"flex justify-between text-sm\\\">\\n <span>Documents</span>\\n <Badge variant=\\\"outline\\\">Not Started</Badge>\\n </div>\\n </div>\\n </Card.Content>\\n </Card>\\n\\n <Card>\\n <Card.Header>\\n <Card.Title>Need Help?</Card.Title>\\n </Card.Header>\\n <Card.Content>\\n <p class=\\\"text-sm text-muted-foreground mb-4\\\">\\n Our team is here to assist you with your application.\\n </p>\\n <Button variant=\\\"outline\\\" class=\\\"w-full\\\">Chat with Us</Button>\\n </Card.Content>\\n </Card>\\n </div>\\n {/snippet}\\n\\n <Card>\\n <Card.Content class=\\\"pt-6\\\">\\n <!-- Multi-step form content -->\\n </Card.Content>\\n </Card>\\n</FormPageLayout>\"\n }\n ],\n \"relatedComponents\": [\n \"Card\",\n \"Alert\",\n \"Input\",\n \"PageHeader\"\n ]\n },\n {\n \"name\": \"FunnelChart\",\n \"description\": \"Visualize conversion rates and process flows\",\n \"category\": \"chart\",\n \"importPath\": \"@classic-homes/charts-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n import { FunnelChart } from '@classic-homes/charts-svelte';\\n\\n const data = [\\n { name: 'Visited', value: 100 },\\n { name: 'Inquired', value: 80 },\\n { name: 'Ordered', value: 60 },\\n { name: 'Paid', value: 40 },\\n { name: 'Completed', value: 20 },\\n ];\\n</script>\\n\\n<FunnelChart title=\\\"Conversion Funnel\\\" {data} sort=\\\"descending\\\" showLabels height={400} />\"\n },\n {\n \"title\": \"Sales Pipeline\",\n \"code\": \"<FunnelChart\\n title=\\\"Sales Pipeline\\\"\\n data={[\\n { name: 'Leads', value: 500 },\\n { name: 'Qualified', value: 350 },\\n { name: 'Proposal', value: 200 },\\n { name: 'Negotiation', value: 100 },\\n { name: 'Closed', value: 50 },\\n ]}\\n sort=\\\"descending\\\"\\n/>\"\n },\n {\n \"title\": \"Ascending Funnel\",\n \"code\": \"<FunnelChart title=\\\"Growth Funnel\\\" {data} sort=\\\"ascending\\\" />\"\n }\n ],\n \"relatedComponents\": [\n \"BarChart\",\n \"SankeyChart\"\n ]\n },\n {\n \"name\": \"GaugeChart\",\n \"description\": \"Display single value metrics with progress indicator\",\n \"category\": \"chart\",\n \"importPath\": \"@classic-homes/charts-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n import { GaugeChart } from '@classic-homes/charts-svelte';\\n</script>\\n\\n<GaugeChart title=\\\"Performance Score\\\" value={72} min={0} max={100} showProgress height={400} />\"\n },\n {\n \"title\": \"Performance Score\",\n \"code\": \"<GaugeChart title=\\\"Performance Score\\\" value={85} min={0} max={100} showProgress />\"\n },\n {\n \"title\": \"With Custom Formatter\",\n \"code\": \"<GaugeChart title=\\\"Completion Rate\\\" value={72} formatValue={(v) => `${v}%`} showProgress />\"\n },\n {\n \"title\": \"Temperature Gauge\",\n \"code\": \"<GaugeChart\\n title=\\\"CPU Temperature\\\"\\n value={65}\\n min={0}\\n max={100}\\n formatValue={(v) => `${v}°C`}\\n showProgress\\n/>\"\n },\n {\n \"title\": \"Revenue KPI\",\n \"code\": \"<GaugeChart\\n title=\\\"Monthly Target\\\"\\n value={85000}\\n min={0}\\n max={100000}\\n formatValue={(v) => `$${(v / 1000).toFixed(0)}K`}\\n showProgress\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"DonutChart\",\n \"RadarChart\"\n ]\n },\n {\n \"name\": \"Header\",\n \"description\": \"Flexible application header with navigation support\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"showMenuButton\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Show hamburger menu button\"\n },\n {\n \"name\": \"menuOpen\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Mobile menu state\"\n },\n {\n \"name\": \"onMenuClick\",\n \"type\": \"() => void\",\n \"required\": false,\n \"description\": \"Menu button callback\"\n },\n {\n \"name\": \"showCollapseButton\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Show sidebar collapse button\"\n },\n {\n \"name\": \"sidebarCollapsed\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Sidebar collapsed state\"\n },\n {\n \"name\": \"onCollapseClick\",\n \"type\": \"() => void\",\n \"required\": false,\n \"description\": \"Collapse button callback\"\n },\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Page title\"\n },\n {\n \"name\": \"start\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Content after buttons\"\n },\n {\n \"name\": \"nav\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Navigation content\"\n },\n {\n \"name\": \"end\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Right side content\"\n },\n {\n \"name\": \"mobileNav\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Mobile navigation drawer\"\n },\n {\n \"name\": \"mobileBreakpoint\",\n \"type\": \"'sm' | 'md' | 'lg'\",\n \"default\": \"'lg'\",\n \"required\": false,\n \"description\": \"Responsive breakpoint\"\n },\n {\n \"name\": \"strongBorder\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Thicker bottom border\"\n },\n {\n \"name\": \"backdropBlur\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Blur effect\"\n },\n {\n \"name\": \"elevated\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Higher z-index\"\n },\n {\n \"name\": \"maxWidth\",\n \"type\": \"'none' | 'sm' | ... | '7xl'\",\n \"default\": \"'none'\",\n \"required\": false,\n \"description\": \"Content max-width\"\n },\n {\n \"name\": \"search\",\n \"type\": \"HeaderSearchConfig\",\n \"required\": false,\n \"description\": \"Search configuration\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"mobileBreakpoint\",\n \"values\": [\n \"sm\",\n \"md\",\n \"lg\"\n ],\n \"default\": \"lg\"\n },\n {\n \"name\": \"maxWidth\",\n \"values\": [\n \"none\",\n \"sm\",\n \"7xl\"\n ],\n \"default\": \"none\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Header title=\\\"Dashboard\\\" />\"\n },\n {\n \"title\": \"E-commerce Header\",\n \"code\": \"<Header backdropBlur elevated maxWidth=\\\"7xl\\\">\\n {#snippet start()}\\n <a href=\\\"/\\\" class=\\\"font-bold text-xl\\\">Store</a>\\n {/snippet}\\n\\n {#snippet nav()}\\n <a href=\\\"/products\\\">Products</a>\\n <a href=\\\"/categories\\\">Categories</a>\\n <a href=\\\"/deals\\\">Deals</a>\\n {/snippet}\\n\\n {#snippet end()}\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\">\\n <SearchIcon />\\n </Button>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\">\\n <CartIcon />\\n <Badge class=\\\"absolute -top-1 -right-1\\\">3</Badge>\\n </Button>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\">\\n <UserIcon />\\n </Button>\\n {/snippet}\\n</Header>\"\n },\n {\n \"title\": \"Admin Header\",\n \"code\": \"<Header\\n showCollapseButton\\n sidebarCollapsed={!sidebarOpen}\\n onCollapseClick={() => (sidebarOpen = !sidebarOpen)}\\n title=\\\"Admin Panel\\\"\\n>\\n {#snippet end()}\\n <div class=\\\"flex items-center gap-4\\\">\\n <Badge variant=\\\"outline\\\">v2.1.0</Badge>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\">\\n <SettingsIcon />\\n </Button>\\n <DropdownMenu>\\n <DropdownMenu.Trigger>\\n <Avatar>AD</Avatar>\\n </DropdownMenu.Trigger>\\n <DropdownMenu.Content>\\n <DropdownMenu.Item>Profile</DropdownMenu.Item>\\n <DropdownMenu.Item>Settings</DropdownMenu.Item>\\n <DropdownMenu.Separator />\\n <DropdownMenu.Item>Log out</DropdownMenu.Item>\\n </DropdownMenu.Content>\\n </DropdownMenu>\\n </div>\\n {/snippet}\\n</Header>\"\n }\n ],\n \"relatedComponents\": [\n \"Sidebar\",\n \"DashboardLayout\",\n \"PublicLayout\"\n ]\n },\n {\n \"name\": \"HeatmapChart\",\n \"description\": \"Matrix data visualization with color intensity\",\n \"category\": \"chart\",\n \"importPath\": \"@classic-homes/charts-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n import { HeatmapChart } from '@classic-homes/charts-svelte';\\n\\n const xAxis = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\\n const yAxis = ['12a', '6a', '12p', '6p'];\\n\\n const data = {\\n data: [\\n [0, 0, 5],\\n [0, 1, 1],\\n [0, 2, 0],\\n [0, 3, 2],\\n [1, 0, 1],\\n [1, 1, 0],\\n [1, 2, 3],\\n [1, 3, 4],\\n // ... more data points\\n ],\\n min: 0,\\n max: 5,\\n };\\n</script>\\n\\n<HeatmapChart title=\\\"Activity Heatmap\\\" {data} {xAxis} {yAxis} showValues height={400} />\"\n },\n {\n \"title\": \"GitHub-style Activity\",\n \"code\": \"<HeatmapChart\\n title=\\\"Commit Activity\\\"\\n {data}\\n xAxis={['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']}\\n yAxis={['12a', '4a', '8a', '12p', '4p', '8p']}\\n/>\"\n },\n {\n \"title\": \"Correlation Matrix\",\n \"code\": \"<HeatmapChart\\n title=\\\"Feature Correlation\\\"\\n {data}\\n xAxis={['Price', 'Size', 'Age', 'Rooms']}\\n yAxis={['Price', 'Size', 'Age', 'Rooms']}\\n showValues\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"ScatterChart\",\n \"TreemapChart\"\n ]\n },\n {\n \"name\": \"Icon\",\n \"description\": \"A unified icon component with 50+ commonly used icons\",\n \"category\": \"core\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"name\",\n \"type\": \"IconName\",\n \"required\": false,\n \"description\": \"Name of the icon to display (required)\"\n },\n {\n \"name\": \"size\",\n \"type\": \"number\",\n \"default\": \"24\",\n \"required\": false,\n \"description\": \"Size of the icon in pixels\"\n },\n {\n \"name\": \"strokeWidth\",\n \"type\": \"number\",\n \"default\": \"2\",\n \"required\": false,\n \"description\": \"Stroke width for stroke-based icons\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Accessible label (renders as visually hidden text)\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Icon name=\\\"check\\\" />\\n<Icon name=\\\"close\\\" />\\n<Icon name=\\\"edit\\\" />\"\n },\n {\n \"title\": \"Navigation & Actions\",\n \"code\": \"<Icon name=\\\"close\\\" />\\n<!-- X mark -->\\n<Icon name=\\\"check\\\" />\\n<!-- Checkmark -->\\n<Icon name=\\\"plus\\\" />\\n<!-- Plus sign -->\\n<Icon name=\\\"minus\\\" />\\n<!-- Minus sign -->\\n<Icon name=\\\"menu\\\" />\\n<!-- Hamburger menu -->\\n<Icon name=\\\"search\\\" />\\n<!-- Magnifying glass -->\\n<Icon name=\\\"home\\\" />\\n<!-- House -->\\n<Icon name=\\\"settings\\\" />\\n<!-- Gear -->\\n<Icon name=\\\"refresh\\\" />\\n<!-- Refresh arrows -->\"\n },\n {\n \"title\": \"Arrows & Chevrons\",\n \"code\": \"<Icon name=\\\"chevron-down\\\" />\\n<Icon name=\\\"chevron-up\\\" />\\n<Icon name=\\\"chevron-left\\\" />\\n<Icon name=\\\"chevron-right\\\" />\\n<Icon name=\\\"arrow-left\\\" />\\n<Icon name=\\\"arrow-right\\\" />\\n<Icon name=\\\"external-link\\\" />\"\n },\n {\n \"title\": \"Editing & Files\",\n \"code\": \"<Icon name=\\\"edit\\\" />\\n<!-- Pencil -->\\n<Icon name=\\\"trash\\\" />\\n<!-- Trash can -->\\n<Icon name=\\\"copy\\\" />\\n<!-- Copy documents -->\\n<Icon name=\\\"download\\\" />\\n<!-- Download arrow -->\\n<Icon name=\\\"upload\\\" />\\n<!-- Upload arrow -->\\n<Icon name=\\\"file\\\" />\\n<!-- Document -->\\n<Icon name=\\\"folder\\\" />\\n<!-- Folder -->\\n<Icon name=\\\"image\\\" />\\n<!-- Image placeholder -->\"\n },\n {\n \"title\": \"Feedback & Status\",\n \"code\": \"<Icon name=\\\"info\\\" />\\n<!-- Info circle -->\\n<Icon name=\\\"alert-circle\\\" />\\n<!-- Alert circle -->\\n<Icon name=\\\"alert-triangle\\\" />\\n<!-- Warning triangle -->\\n<Icon name=\\\"loading\\\" />\\n<!-- Animated spinner -->\"\n },\n {\n \"title\": \"Communication\",\n \"code\": \"<Icon name=\\\"message\\\" />\\n<!-- Speech bubble -->\\n<Icon name=\\\"chat\\\" />\\n<!-- Simple chat bubble -->\\n<Icon name=\\\"mail\\\" />\\n<!-- Envelope -->\\n<Icon name=\\\"phone\\\" />\\n<!-- Phone -->\\n<Icon name=\\\"send\\\" />\\n<!-- Paper plane -->\"\n },\n {\n \"title\": \"User & Security\",\n \"code\": \"<Icon name=\\\"user\\\" />\\n<!-- User silhouette -->\\n<Icon name=\\\"lock\\\" />\\n<!-- Locked padlock -->\\n<Icon name=\\\"unlock\\\" />\\n<!-- Unlocked padlock -->\\n<Icon name=\\\"eye\\\" />\\n<!-- Visible eye -->\\n<Icon name=\\\"eye-off\\\" />\\n<!-- Hidden eye -->\"\n },\n {\n \"title\": \"UI & Interaction\",\n \"code\": \"<Icon name=\\\"more\\\" />\\n<!-- Vertical dots -->\\n<Icon name=\\\"more-horizontal\\\" />\\n<!-- Horizontal dots -->\\n<Icon name=\\\"grip\\\" />\\n<!-- Drag handle (6 dots) -->\\n<Icon name=\\\"filter\\\" />\\n<!-- Filter funnel -->\\n<Icon name=\\\"sort\\\" />\\n<!-- Sort arrows -->\\n<Icon name=\\\"link\\\" />\\n<!-- Chain link -->\"\n },\n {\n \"title\": \"Time & Date\",\n \"code\": \"<Icon name=\\\"calendar\\\" />\\n<!-- Calendar -->\\n<Icon name=\\\"clock\\\" />\\n<!-- Clock face -->\\n<Icon name=\\\"history\\\" />\\n<!-- Clock with history -->\"\n },\n {\n \"title\": \"Social & Favorites\",\n \"code\": \"<Icon name=\\\"star\\\" />\\n<!-- Star -->\\n<Icon name=\\\"heart\\\" />\\n<!-- Heart -->\\n<Icon name=\\\"bookmark\\\" />\\n<!-- Bookmark -->\"\n },\n {\n \"title\": \"Icon Buttons\",\n \"code\": \"<button class=\\\"p-2 rounded-md hover:bg-muted\\\">\\n <Icon name=\\\"close\\\" size={20} label=\\\"Close dialog\\\" />\\n</button>\\n\\n<button class=\\\"p-2 rounded-md hover:bg-muted\\\">\\n <Icon name=\\\"settings\\\" size={20} label=\\\"Open settings\\\" />\\n</button>\"\n },\n {\n \"title\": \"Button with Icon\",\n \"code\": \"<Button>\\n <Icon name=\\\"plus\\\" size={18} class=\\\"mr-2\\\" />\\n Add Item\\n</Button>\\n\\n<Button variant=\\\"destructive\\\">\\n <Icon name=\\\"trash\\\" size={18} class=\\\"mr-2\\\" />\\n Delete\\n</Button>\"\n },\n {\n \"title\": \"Status Indicators\",\n \"code\": \"<div class=\\\"flex items-center gap-2\\\">\\n <Icon name=\\\"check\\\" class=\\\"text-green-500\\\" size={20} />\\n <span>Completed</span>\\n</div>\\n\\n<div class=\\\"flex items-center gap-2\\\">\\n <Icon name=\\\"alert-circle\\\" class=\\\"text-yellow-500\\\" size={20} />\\n <span>Pending review</span>\\n</div>\\n\\n<div class=\\\"flex items-center gap-2\\\">\\n <Icon name=\\\"close\\\" class=\\\"text-red-500\\\" size={20} />\\n <span>Failed</span>\\n</div>\"\n },\n {\n \"title\": \"Loading State\",\n \"code\": \"<Button disabled>\\n <Icon name=\\\"loading\\\" size={18} class=\\\"mr-2\\\" />\\n Saving...\\n</Button>\"\n },\n {\n \"title\": \"Navigation Menu\",\n \"code\": \"<nav class=\\\"space-y-1\\\">\\n <a href=\\\"/\\\" class=\\\"flex items-center gap-3 px-3 py-2 rounded-md hover:bg-muted\\\">\\n <Icon name=\\\"home\\\" size={20} />\\n Home\\n </a>\\n <a href=\\\"/settings\\\" class=\\\"flex items-center gap-3 px-3 py-2 rounded-md hover:bg-muted\\\">\\n <Icon name=\\\"settings\\\" size={20} />\\n Settings\\n </a>\\n <a href=\\\"/profile\\\" class=\\\"flex items-center gap-3 px-3 py-2 rounded-md hover:bg-muted\\\">\\n <Icon name=\\\"user\\\" size={20} />\\n Profile\\n </a>\\n</nav>\"\n },\n {\n \"title\": \"Input with Icon\",\n \"code\": \"<div class=\\\"relative\\\">\\n <Icon\\n name=\\\"search\\\"\\n size={18}\\n class=\\\"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground\\\"\\n />\\n <Input class=\\\"pl-10\\\" placeholder=\\\"Search...\\\" />\\n</div>\"\n },\n {\n \"title\": \"Password Toggle\",\n \"code\": \"<script>\\n let showPassword = $state(false);\\n</script>\\n\\n<div class=\\\"relative\\\">\\n <Input type={showPassword ? 'text' : 'password'} />\\n <button\\n type=\\\"button\\\"\\n class=\\\"absolute right-3 top-1/2 -translate-y-1/2\\\"\\n onclick={() => (showPassword = !showPassword)}\\n >\\n <Icon\\n name={showPassword ? 'eye-off' : 'eye'}\\n size={18}\\n label={showPassword ? 'Hide password' : 'Show password'}\\n />\\n </button>\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"Button\",\n \"Spinner\"\n ]\n },\n {\n \"name\": \"Input\",\n \"description\": \"Text input field for single-line data entry with various input modes\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"type\",\n \"type\": \"string\",\n \"default\": \"'text'\",\n \"required\": false,\n \"description\": \"HTML input type\"\n },\n {\n \"name\": \"value\",\n \"type\": \"string | number\",\n \"default\": \"''\",\n \"required\": false,\n \"description\": \"Input value (bindable)\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the input\"\n },\n {\n \"name\": \"readonly\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Makes the input read-only\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Input name for forms\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Input ID for label association\"\n },\n {\n \"name\": \"autocomplete\",\n \"type\": \"AutoFill\",\n \"required\": false,\n \"description\": \"Browser autocomplete hint\"\n },\n {\n \"name\": \"inputmode\",\n \"type\": \"'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search'\",\n \"required\": false,\n \"description\": \"Mobile keyboard hint\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"inputmode\",\n \"values\": [\n \"none\",\n \"text\",\n \"tel\",\n \"url\",\n \"email\",\n \"numeric\",\n \"decimal\",\n \"search\"\n ]\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Input placeholder=\\\"Enter text...\\\" />\"\n },\n {\n \"title\": \"Text (Default)\",\n \"code\": \"<Input type=\\\"text\\\" placeholder=\\\"Enter name\\\" />\"\n },\n {\n \"title\": \"Email\",\n \"code\": \"<Input type=\\\"email\\\" placeholder=\\\"your@email.com\\\" autocomplete=\\\"email\\\" />\"\n },\n {\n \"title\": \"Password\",\n \"code\": \"<Input type=\\\"password\\\" placeholder=\\\"Enter password\\\" autocomplete=\\\"current-password\\\" />\"\n },\n {\n \"title\": \"Number\",\n \"code\": \"<Input type=\\\"number\\\" placeholder=\\\"0\\\" />\"\n },\n {\n \"title\": \"Search\",\n \"code\": \"<Input type=\\\"search\\\" placeholder=\\\"Search...\\\" />\"\n },\n {\n \"title\": \"Tel (Phone)\",\n \"code\": \"<Input type=\\\"tel\\\" placeholder=\\\"(555) 123-4567\\\" autocomplete=\\\"tel\\\" inputmode=\\\"tel\\\" />\"\n },\n {\n \"title\": \"URL\",\n \"code\": \"<Input type=\\\"url\\\" placeholder=\\\"https://example.com\\\" inputmode=\\\"url\\\" />\"\n },\n {\n \"title\": \"Disabled\",\n \"code\": \"<Input disabled value=\\\"Cannot edit\\\" />\"\n },\n {\n \"title\": \"Read-only\",\n \"code\": \"<Input readonly value=\\\"Read only value\\\" />\"\n },\n {\n \"title\": \"Required\",\n \"code\": \"<Input required placeholder=\\\"Required field\\\" />\"\n },\n {\n \"title\": \"Search Input\",\n \"code\": \"<div class=\\\"relative\\\">\\n <svg\\n class=\\\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\\\"\\n fill=\\\"none\\\"\\n viewBox=\\\"0 0 24 24\\\"\\n stroke=\\\"currentColor\\\"\\n >\\n <path\\n stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\"\\n stroke-width=\\\"2\\\"\\n d=\\\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\\\"\\n />\\n </svg>\\n <Input type=\\\"search\\\" placeholder=\\\"Search...\\\" class=\\\"pl-10\\\" />\\n</div>\"\n },\n {\n \"title\": \"Input with Button\",\n \"code\": \"<div class=\\\"flex gap-2\\\">\\n <Input placeholder=\\\"Enter email\\\" class=\\\"flex-1\\\" />\\n <Button>Subscribe</Button>\\n</div>\"\n },\n {\n \"title\": \"Custom Width\",\n \"code\": \"<Input class=\\\"w-64\\\" placeholder=\\\"Fixed width\\\" />\\n<Input class=\\\"max-w-sm\\\" placeholder=\\\"Max width\\\" />\"\n }\n ],\n \"relatedComponents\": [\n \"Label\",\n \"FormField\",\n \"Textarea\"\n ]\n },\n {\n \"name\": \"Label\",\n \"description\": \"Accessible label component for form inputs\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"for\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"ID of the associated input element\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Applies disabled styling\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Label for=\\\"email\\\">Email Address</Label>\"\n },\n {\n \"title\": \"Disabled\",\n \"description\": \"When the associated input is disabled, apply matching styles to the label:\",\n \"code\": \"<div class=\\\"space-y-2\\\">\\n <Label for=\\\"disabled-input\\\" disabled>Disabled Field</Label>\\n <Input id=\\\"disabled-input\\\" disabled value=\\\"Cannot edit\\\" />\\n</div>\"\n },\n {\n \"title\": \"With Peer Styling\",\n \"description\": \"Labels automatically style differently when their peer input is disabled:\",\n \"code\": \"<div class=\\\"grid gap-2\\\">\\n <Input id=\\\"peer-demo\\\" disabled class=\\\"peer\\\" />\\n <Label for=\\\"peer-demo\\\">This label fades when input is disabled</Label>\\n</div>\"\n },\n {\n \"title\": \"Visually Hidden Label\",\n \"description\": \"For inputs where a visible label is not desired (like search), use screen-reader-only styling:\",\n \"code\": \"<Label for=\\\"search\\\" class=\\\"sr-only\\\">Search</Label>\\n<Input id=\\\"search\\\" type=\\\"search\\\" placeholder=\\\"Search...\\\" />\"\n },\n {\n \"title\": \"Form Field Group\",\n \"code\": \"<div class=\\\"space-y-4\\\">\\n <div class=\\\"space-y-2\\\">\\n <Label for=\\\"first-name\\\">First Name</Label>\\n <Input id=\\\"first-name\\\" />\\n </div>\\n <div class=\\\"space-y-2\\\">\\n <Label for=\\\"last-name\\\">Last Name</Label>\\n <Input id=\\\"last-name\\\" />\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Horizontal Layout\",\n \"code\": \"<div class=\\\"flex items-center gap-4\\\">\\n <Label for=\\\"inline-input\\\" class=\\\"shrink-0 w-24\\\">Name</Label>\\n <Input id=\\\"inline-input\\\" class=\\\"flex-1\\\" />\\n</div>\"\n },\n {\n \"title\": \"With Checkbox\",\n \"code\": \"<script>\\n import { Label, Checkbox } from '@classic-homes/theme-svelte';\\n</script>\\n\\n<div class=\\\"flex items-center gap-2\\\">\\n <Checkbox id=\\\"terms\\\" />\\n <Label for=\\\"terms\\\">I agree to the terms and conditions</Label>\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"Checkbox\",\n \"FormField\"\n ]\n },\n {\n \"name\": \"LineChart\",\n \"description\": \"Display trends over time with smooth curves and area fill options\",\n \"category\": \"chart\",\n \"importPath\": \"@classic-homes/charts-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n import { LineChart } from '@classic-homes/charts-svelte';\\n\\n const data = {\\n categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],\\n series: [\\n { name: '2024', data: [120, 132, 101, 134, 90, 230] },\\n { name: '2025', data: [220, 182, 191, 234, 290, 330] },\\n ],\\n };\\n</script>\\n\\n<LineChart title=\\\"Monthly Revenue\\\" {data} smooth height={400} />\"\n },\n {\n \"title\": \"Smooth Line Chart\",\n \"code\": \"<LineChart title=\\\"Monthly Sales\\\" {data} smooth height={400} />\"\n },\n {\n \"title\": \"With Data Points\",\n \"code\": \"<LineChart title=\\\"Monthly Sales\\\" {data} smooth showDataPoints height={400} />\"\n },\n {\n \"title\": \"Stacked Lines\",\n \"code\": \"<LineChart title=\\\"Stacked Revenue\\\" {data} stacked smooth height={400} />\"\n },\n {\n \"title\": \"With Area Fill\",\n \"code\": \"<LineChart title=\\\"Revenue Trend\\\" {data} areaFilled smooth height={400} />\"\n },\n {\n \"title\": \"Handling Click Events\",\n \"code\": \"<script>\\n function handleClick(params) {\\n console.log('Clicked:', params.seriesName, params.name, params.value);\\n }\\n</script>\\n\\n<LineChart title=\\\"Interactive Chart\\\" {data} onClick={handleClick} />\"\n }\n ],\n \"relatedComponents\": [\n \"AreaChart\",\n \"BarChart\"\n ]\n },\n {\n \"name\": \"LoadingLogo\",\n \"description\": \"Animated brand logo for loading states\",\n \"category\": \"branding\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"width\",\n \"type\": \"number\",\n \"default\": \"40\",\n \"required\": false,\n \"description\": \"Width in pixels\"\n },\n {\n \"name\": \"height\",\n \"type\": \"number\",\n \"default\": \"40\",\n \"required\": false,\n \"description\": \"Height in pixels\"\n },\n {\n \"name\": \"loading\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Enable loading animation\"\n },\n {\n \"name\": \"variant\",\n \"type\": \"'light' | 'dark'\",\n \"default\": \"'dark'\",\n \"required\": false,\n \"description\": \"Color variant\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"light\",\n \"dark\"\n ],\n \"default\": \"dark\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<LoadingLogo loading />\"\n },\n {\n \"title\": \"Dark (Default)\",\n \"description\": \"For light backgrounds:\",\n \"code\": \"<LoadingLogo variant=\\\"dark\\\" loading />\"\n },\n {\n \"title\": \"Light\",\n \"description\": \"For dark backgrounds:\",\n \"code\": \"<div class=\\\"bg-gray-900 p-8\\\">\\n <LoadingLogo variant=\\\"light\\\" loading />\\n</div>\"\n },\n {\n \"title\": \"Splash Screen\",\n \"code\": \"{#if loading}\\n <div class=\\\"fixed inset-0 flex items-center justify-center bg-background\\\">\\n <div class=\\\"flex flex-col items-center gap-4\\\">\\n <LoadingLogo width={64} height={64} loading />\\n <p class=\\\"text-sm text-muted-foreground\\\">Loading...</p>\\n </div>\\n </div>\\n{/if}\"\n },\n {\n \"title\": \"Page Loading\",\n \"code\": \"{#if pageLoading}\\n <div class=\\\"flex items-center justify-center min-h-[400px]\\\">\\n <LoadingLogo loading />\\n </div>\\n{:else}\\n <main>{pageContent}</main>\\n{/if}\"\n },\n {\n \"title\": \"Dark Background Splash\",\n \"code\": \"<div class=\\\"fixed inset-0 flex items-center justify-center bg-gray-900\\\">\\n <LoadingLogo variant=\\\"light\\\" width={80} height={80} loading />\\n</div>\"\n },\n {\n \"title\": \"Button Loading State\",\n \"code\": \"<Button disabled={submitting}>\\n {#if submitting}\\n <LoadingLogo width={20} height={20} loading class=\\\"mr-2\\\" />\\n Saving...\\n {:else}\\n Save\\n {/if}\\n</Button>\"\n },\n {\n \"title\": \"Initial App Load\",\n \"code\": \"<!-- +layout.svelte -->\\n<script>\\n let appReady = $state(false);\\n\\n onMount(() => {\\n // Initialize app\\n setTimeout(() => (appReady = true), 1500);\\n });\\n</script>\\n\\n{#if !appReady}\\n <div class=\\\"fixed inset-0 z-50 flex items-center justify-center bg-background\\\">\\n <LoadingLogo width={64} height={64} loading />\\n </div>\\n{/if}\\n\\n<div class={appReady ? '' : 'hidden'}>\\n <slot />\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"LogoMain\",\n \"Spinner\",\n \"Skeleton\"\n ]\n },\n {\n \"name\": \"LogoMain\",\n \"description\": \"Brand logo component with multiple layouts and variants\",\n \"category\": \"branding\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"variant\",\n \"type\": \"'horizontal' | 'stacked' | 'icon'\",\n \"default\": \"'horizontal'\",\n \"required\": false,\n \"description\": \"Layout variant\"\n },\n {\n \"name\": \"color\",\n \"type\": \"'dark' | 'light' | 'mono-dark' | 'mono-light'\",\n \"default\": \"'dark'\",\n \"required\": false,\n \"description\": \"Color scheme\"\n },\n {\n \"name\": \"subtitle\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Optional subtitle text\"\n },\n {\n \"name\": \"environment\",\n \"type\": \"'local' | 'dev' | 'demo'\",\n \"required\": false,\n \"description\": \"Environment indicator\"\n },\n {\n \"name\": \"size\",\n \"type\": \"'sm' | 'md' | 'lg'\",\n \"default\": \"'md'\",\n \"required\": false,\n \"description\": \"Size preset\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n },\n {\n \"name\": \"ariaLabel\",\n \"type\": \"string\",\n \"default\": \"'Classic Homes'\",\n \"required\": false,\n \"description\": \"Accessible label\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"horizontal\",\n \"stacked\",\n \"icon\"\n ],\n \"default\": \"horizontal\"\n },\n {\n \"name\": \"color\",\n \"values\": [\n \"dark\",\n \"light\",\n \"mono-dark\",\n \"mono-light\"\n ],\n \"default\": \"dark\"\n },\n {\n \"name\": \"environment\",\n \"values\": [\n \"local\",\n \"dev\",\n \"demo\"\n ]\n },\n {\n \"name\": \"size\",\n \"values\": [\n \"sm\",\n \"md\",\n \"lg\"\n ],\n \"default\": \"md\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<LogoMain />\"\n },\n {\n \"title\": \"Horizontal (Default)\",\n \"description\": \"Logo icon and text side by side:\",\n \"code\": \"<LogoMain variant=\\\"horizontal\\\" />\"\n },\n {\n \"title\": \"Stacked\",\n \"description\": \"Logo icon above text:\",\n \"code\": \"<LogoMain variant=\\\"stacked\\\" />\"\n },\n {\n \"title\": \"Icon Only\",\n \"description\": \"Just the logo icon:\",\n \"code\": \"<LogoMain variant=\\\"icon\\\" />\"\n },\n {\n \"title\": \"Dark (Default)\",\n \"description\": \"For light backgrounds:\",\n \"code\": \"<div class=\\\"bg-white p-4\\\">\\n <LogoMain color=\\\"dark\\\" />\\n</div>\"\n },\n {\n \"title\": \"Light\",\n \"description\": \"For dark backgrounds:\",\n \"code\": \"<div class=\\\"bg-gray-900 p-4\\\">\\n <LogoMain color=\\\"light\\\" />\\n</div>\"\n },\n {\n \"title\": \"Mono Dark\",\n \"description\": \"Navy monochrome for light backgrounds:\",\n \"code\": \"<LogoMain color=\\\"mono-dark\\\" />\"\n },\n {\n \"title\": \"Mono Light\",\n \"description\": \"White monochrome for dark backgrounds:\",\n \"code\": \"<div class=\\\"bg-primary p-4\\\">\\n <LogoMain color=\\\"mono-light\\\" />\\n</div>\"\n },\n {\n \"title\": \"Header Logo\",\n \"code\": \"<header class=\\\"flex items-center h-16 px-4 border-b\\\">\\n <a href=\\\"/\\\">\\n <LogoMain variant=\\\"horizontal\\\" size=\\\"md\\\" ariaLabel=\\\"\\\" />\\n </a>\\n</header>\"\n },\n {\n \"title\": \"Footer Logo\",\n \"code\": \"<footer class=\\\"bg-gray-900 py-8\\\">\\n <LogoMain color=\\\"light\\\" size=\\\"sm\\\" />\\n</footer>\"\n },\n {\n \"title\": \"Login Page Logo\",\n \"code\": \"<div class=\\\"flex flex-col items-center py-8\\\">\\n <LogoMain variant=\\\"stacked\\\" size=\\\"lg\\\" subtitle=\\\"MY HOME\\\" />\\n <h1 class=\\\"mt-4 text-2xl font-bold\\\">Sign In</h1>\\n</div>\"\n },\n {\n \"title\": \"Sidebar Collapsed Logo\",\n \"code\": \"<LogoMain variant={sidebarCollapsed ? 'icon' : 'horizontal'} size=\\\"md\\\" />\"\n },\n {\n \"title\": \"Development Environment\",\n \"code\": \"<LogoMain environment={import.meta.env.MODE === 'production' ? undefined : 'dev'} />\"\n }\n ],\n \"relatedComponents\": [\n \"LoadingLogo\",\n \"Header\",\n \"Sidebar\"\n ]\n },\n {\n \"name\": \"MultiSelect\",\n \"description\": \"Select multiple options from a dropdown list\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"string[]\",\n \"default\": \"[]\",\n \"required\": false,\n \"description\": \"Selected values (bindable)\"\n },\n {\n \"name\": \"options\",\n \"type\": \"SelectOption[]\",\n \"default\": \"Required\",\n \"required\": false,\n \"description\": \"Array of options\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the select\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"maxItems\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"Maximum selections allowed\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string[]) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let selected = $state([]);\\n\\n const options = [\\n { value: 'react', label: 'React' },\\n { value: 'svelte', label: 'Svelte' },\\n { value: 'vue', label: 'Vue' },\\n { value: 'angular', label: 'Angular' },\\n ];\\n</script>\\n\\n<MultiSelect {options} bind:value={selected} placeholder=\\\"Select frameworks...\\\" />\"\n },\n {\n \"title\": \"Tag Selector\",\n \"code\": \"<script>\\n let tags = $state([]);\\n const tagOptions = [\\n { value: 'urgent', label: 'Urgent' },\\n { value: 'bug', label: 'Bug' },\\n { value: 'feature', label: 'Feature' },\\n { value: 'docs', label: 'Documentation' },\\n ];\\n</script>\\n\\n<MultiSelect label=\\\"Tags\\\" options={tagOptions} bind:value={tags} placeholder=\\\"Add tags...\\\" />\"\n },\n {\n \"title\": \"Team Members\",\n \"code\": \"<MultiSelect\\n label=\\\"Assign to\\\"\\n options={teamMembers}\\n bind:value={assignees}\\n maxItems={5}\\n placeholder=\\\"Select team members...\\\"\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"Select\",\n \"Combobox\",\n \"Checkbox\"\n ]\n },\n {\n \"name\": \"NumberInput\",\n \"description\": \"Numeric input with increment/decrement controls\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"number\",\n \"default\": \"0\",\n \"required\": false,\n \"description\": \"Current value (bindable)\"\n },\n {\n \"name\": \"min\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"Minimum allowed value\"\n },\n {\n \"name\": \"max\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"Maximum allowed value\"\n },\n {\n \"name\": \"step\",\n \"type\": \"number\",\n \"default\": \"1\",\n \"required\": false,\n \"description\": \"Increment/decrement step\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the input\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Label text\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: number) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let quantity = $state(1);\\n</script>\\n\\n<NumberInput bind:value={quantity} />\"\n },\n {\n \"title\": \"Quantity Selector\",\n \"code\": \"<NumberInput label=\\\"Quantity\\\" bind:value={quantity} min={1} max={10} />\"\n },\n {\n \"title\": \"Price Input\",\n \"code\": \"<NumberInput label=\\\"Price\\\" bind:value={price} min={0} step={0.01} />\"\n },\n {\n \"title\": \"Age Input\",\n \"code\": \"<NumberInput label=\\\"Age\\\" bind:value={age} min={0} max={150} />\"\n }\n ],\n \"relatedComponents\": [\n \"Slider\",\n \"Input\"\n ]\n },\n {\n \"name\": \"OTPInput\",\n \"description\": \"One-time password input for verification codes\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"default\": \"''\",\n \"required\": false,\n \"description\": \"Current value (bindable)\"\n },\n {\n \"name\": \"length\",\n \"type\": \"number\",\n \"default\": \"6\",\n \"required\": false,\n \"description\": \"Number of digits\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the input\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message\"\n },\n {\n \"name\": \"autoFocus\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Auto-focus first input\"\n },\n {\n \"name\": \"onComplete\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when all digits entered\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let code = $state('');\\n</script>\\n\\n<OTPInput bind:value={code} />\"\n },\n {\n \"title\": \"Verification Flow\",\n \"code\": \"<script>\\n let code = $state('');\\n let error = $state('');\\n let verifying = $state(false);\\n\\n async function handleComplete(value: string) {\\n verifying = true;\\n error = '';\\n\\n try {\\n await verifyOTP(value);\\n // Success - redirect\\n } catch {\\n error = 'Invalid verification code';\\n code = '';\\n } finally {\\n verifying = false;\\n }\\n }\\n</script>\\n\\n<div class=\\\"text-center space-y-4\\\">\\n <p class=\\\"text-muted-foreground\\\">Enter the 6-digit code sent to your email</p>\\n <OTPInput bind:value={code} {error} autoFocus onComplete={handleComplete} />\\n {#if verifying}\\n <Spinner label=\\\"Verifying...\\\" />\\n {/if}\\n</div>\"\n },\n {\n \"title\": \"Two-Factor Authentication\",\n \"code\": \"<OTPInput bind:value={twoFactorCode} length={6} autoFocus onComplete={verify2FA} />\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"FormField\"\n ]\n },\n {\n \"name\": \"PageHeader\",\n \"description\": \"Hero and page title component with multiple variants\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Main title text\"\n },\n {\n \"name\": \"subtitle\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Optional subtitle\"\n },\n {\n \"name\": \"variant\",\n \"type\": \"'default' | 'hero' | 'centered' | 'form'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Visual variant\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n },\n {\n \"name\": \"actions\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Action buttons\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"default\",\n \"hero\",\n \"centered\",\n \"form\"\n ],\n \"default\": \"default\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<PageHeader title=\\\"Welcome\\\" subtitle=\\\"Get started with our platform\\\" />\"\n },\n {\n \"title\": \"Default\",\n \"description\": \"Standard page header:\",\n \"code\": \"<PageHeader title=\\\"Dashboard\\\" subtitle=\\\"Welcome back, John\\\" />\"\n },\n {\n \"title\": \"Hero\",\n \"description\": \"Bold, uppercase styling for landing pages:\",\n \"code\": \"<PageHeader\\n title=\\\"Build Something Great\\\"\\n subtitle=\\\"The modern way to create applications\\\"\\n variant=\\\"hero\\\"\\n/>\"\n },\n {\n \"title\": \"Centered\",\n \"description\": \"Centered text for content pages:\",\n \"code\": \"<PageHeader\\n title=\\\"About Us\\\"\\n subtitle=\\\"Learn more about our mission and values\\\"\\n variant=\\\"centered\\\"\\n/>\"\n },\n {\n \"title\": \"Form\",\n \"description\": \"Light, centered styling for form pages:\",\n \"code\": \"<PageHeader title=\\\"Create Account\\\" subtitle=\\\"Join thousands of users today\\\" variant=\\\"form\\\" />\"\n },\n {\n \"title\": \"Landing Page Hero\",\n \"code\": \"<section class=\\\"py-24 bg-gradient-to-b from-primary/5 to-background\\\">\\n <div class=\\\"container mx-auto px-4\\\">\\n <PageHeader\\n title=\\\"Ship Faster\\\"\\n subtitle=\\\"The complete toolkit for modern web development\\\"\\n variant=\\\"hero\\\"\\n >\\n {#snippet actions()}\\n <Button size=\\\"lg\\\">Get Started Free</Button>\\n <Button size=\\\"lg\\\" variant=\\\"outline\\\">View Demo</Button>\\n {/snippet}\\n </PageHeader>\\n </div>\\n</section>\"\n },\n {\n \"title\": \"Dashboard Page\",\n \"code\": \"<PageHeader title=\\\"Analytics\\\" subtitle=\\\"Track your performance metrics\\\">\\n {#snippet actions()}\\n <Button variant=\\\"outline\\\">Export</Button>\\n <Button>Add Widget</Button>\\n {/snippet}\\n</PageHeader>\"\n },\n {\n \"title\": \"Content Page\",\n \"code\": \"<div class=\\\"py-16\\\">\\n <PageHeader\\n title=\\\"Documentation\\\"\\n subtitle=\\\"Everything you need to build amazing applications with our component library.\\\"\\n variant=\\\"centered\\\"\\n >\\n {#snippet actions()}\\n <Button>Get Started</Button>\\n <Button variant=\\\"outline\\\">Browse Components</Button>\\n {/snippet}\\n </PageHeader>\\n</div>\"\n },\n {\n \"title\": \"Form Page\",\n \"code\": \"<PageHeader\\n title=\\\"Contact Us\\\"\\n subtitle=\\\"Fill out the form below and we'll get back to you within 24 hours.\\\"\\n variant=\\\"form\\\"\\n/>\\n\\n<form class=\\\"max-w-md mx-auto mt-8\\\">\\n <!-- Form fields -->\\n</form>\"\n },\n {\n \"title\": \"Settings Page\",\n \"code\": \"<PageHeader\\n title=\\\"Account Settings\\\"\\n subtitle=\\\"Manage your account preferences and security settings\\\"\\n>\\n {#snippet actions()}\\n <Button variant=\\\"outline\\\">Cancel</Button>\\n <Button>Save Changes</Button>\\n {/snippet}\\n</PageHeader>\\n\\n<Separator class=\\\"my-6\\\" />\\n\\n<div class=\\\"space-y-6\\\">\\n <Section title=\\\"Profile\\\">...</Section>\\n <Section title=\\\"Security\\\">...</Section>\\n</div>\"\n },\n {\n \"title\": \"Blog Post\",\n \"code\": \"<article>\\n <PageHeader\\n title=\\\"Getting Started with Svelte 5\\\"\\n subtitle=\\\"Learn the fundamentals of Svelte's new runes system\\\"\\n variant=\\\"centered\\\"\\n />\\n\\n <div class=\\\"prose mx-auto mt-8\\\">\\n <!-- Article content -->\\n </div>\\n</article>\"\n }\n ],\n \"relatedComponents\": [\n \"Section\",\n \"Button\",\n \"Separator\"\n ]\n },\n {\n \"name\": \"PieChart\",\n \"description\": \"Show proportional data with interactive labels\",\n \"category\": \"chart\",\n \"importPath\": \"@classic-homes/charts-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n import { PieChart } from '@classic-homes/charts-svelte';\\n\\n const data = [\\n { name: 'Search Engine', value: 1048 },\\n { name: 'Direct', value: 735 },\\n { name: 'Email', value: 580 },\\n { name: 'Social Media', value: 484 },\\n ];\\n</script>\\n\\n<PieChart title=\\\"Traffic Sources\\\" {data} showLabels height={400} />\"\n },\n {\n \"title\": \"With Outside Labels\",\n \"code\": \"<PieChart title=\\\"Market Share\\\" {data} showLabels labelPosition=\\\"outside\\\" height={400} />\"\n },\n {\n \"title\": \"With Inside Labels\",\n \"code\": \"<PieChart title=\\\"Market Share\\\" {data} showLabels labelPosition=\\\"inside\\\" height={400} />\"\n },\n {\n \"title\": \"Handling Click Events\",\n \"code\": \"<script>\\n function handleClick(params) {\\n console.log('Clicked slice:', params.name, params.value);\\n }\\n</script>\\n\\n<PieChart title=\\\"Interactive Pie\\\" {data} onClick={handleClick} />\"\n }\n ],\n \"relatedComponents\": [\n \"DonutChart\",\n \"FunnelChart\"\n ]\n },\n {\n \"name\": \"PublicLayout\",\n \"description\": \"Layout for public-facing marketing and content pages\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"navigation\",\n \"type\": \"NavItem[]\",\n \"default\": \"[]\",\n \"required\": false,\n \"description\": \"Header navigation items\"\n },\n {\n \"name\": \"showFooter\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"Whether to show footer\"\n },\n {\n \"name\": \"footerLinks\",\n \"type\": \"NavSection[]\",\n \"default\": \"[]\",\n \"required\": false,\n \"description\": \"Footer link sections\"\n },\n {\n \"name\": \"copyright\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Footer copyright text\"\n },\n {\n \"name\": \"logo\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom logo\"\n },\n {\n \"name\": \"logoSubtitle\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Subtitle for default logo\"\n },\n {\n \"name\": \"logoEnvironment\",\n \"type\": \"'local' | 'dev' | 'demo'\",\n \"required\": false,\n \"description\": \"Environment indicator\"\n },\n {\n \"name\": \"headerEnd\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Content at end of header\"\n },\n {\n \"name\": \"strongFooterBorder\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Strong accent border on footer\"\n },\n {\n \"name\": \"darkFooter\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Dark footer variant\"\n },\n {\n \"name\": \"headerSearch\",\n \"type\": \"HeaderSearchConfig\",\n \"required\": false,\n \"description\": \"Header search config\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Main content\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"logoEnvironment\",\n \"values\": [\n \"local\",\n \"dev\",\n \"demo\"\n ]\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n const navigation = [\\n { id: 'home', name: 'Home', href: '/', active: true },\\n { id: 'about', name: 'About', href: '/about' },\\n { id: 'contact', name: 'Contact', href: '/contact' },\\n ];\\n</script>\\n\\n<PublicLayout {navigation}>\\n <section class=\\\"py-20\\\">\\n <h1>Welcome</h1>\\n </section>\\n</PublicLayout>\"\n },\n {\n \"title\": \"Landing Page\",\n \"code\": \"<PublicLayout {navigation} {footerLinks}>\\n <section class=\\\"py-24 text-center\\\">\\n <h1 class=\\\"text-5xl font-bold\\\">Build Better Products</h1>\\n <p class=\\\"mt-4 text-xl text-muted-foreground\\\">The modern way to build applications.</p>\\n <div class=\\\"mt-8 flex justify-center gap-4\\\">\\n <Button size=\\\"lg\\\">Get Started</Button>\\n <Button size=\\\"lg\\\" variant=\\\"outline\\\">Learn More</Button>\\n </div>\\n </section>\\n</PublicLayout>\"\n },\n {\n \"title\": \"Documentation Site\",\n \"code\": \"<PublicLayout\\n {navigation}\\n showFooter={false}\\n headerSearch={{ enabled: true, placeholder: 'Search docs...' }}\\n>\\n <div class=\\\"flex\\\">\\n <aside class=\\\"w-64\\\">Sidebar</aside>\\n <main class=\\\"flex-1\\\">Documentation content</main>\\n </div>\\n</PublicLayout>\"\n }\n ],\n \"relatedComponents\": [\n \"Header\",\n \"Footer\",\n \"DashboardLayout\"\n ]\n },\n {\n \"name\": \"RadarChart\",\n \"description\": \"Multi-dimensional comparison across categories\",\n \"category\": \"chart\",\n \"importPath\": \"@classic-homes/charts-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n import { RadarChart } from '@classic-homes/charts-svelte';\\n\\n const indicators = [\\n { name: 'Sales', max: 6500 },\\n { name: 'Administration', max: 16000 },\\n { name: 'IT', max: 30000 },\\n { name: 'Support', max: 38000 },\\n { name: 'Development', max: 52000 },\\n ];\\n\\n const data = {\\n series: [\\n { name: 'Budget', data: [4200, 3000, 20000, 35000, 50000] },\\n { name: 'Actual', data: [5000, 14000, 28000, 26000, 42000] },\\n ],\\n };\\n</script>\\n\\n<RadarChart title=\\\"Budget vs Actual\\\" {data} {indicators} shape=\\\"polygon\\\" height={400} />\"\n },\n {\n \"title\": \"Circle Shape\",\n \"code\": \"<RadarChart title=\\\"Skill Assessment\\\" {data} {indicators} shape=\\\"circle\\\" />\"\n },\n {\n \"title\": \"Single Series\",\n \"code\": \"<RadarChart\\n title=\\\"Performance Metrics\\\"\\n data={{\\n series: [{ name: 'Score', data: [80, 90, 70, 85, 95] }],\\n }}\\n indicators={[\\n { name: 'Speed', max: 100 },\\n { name: 'Quality', max: 100 },\\n { name: 'Teamwork', max: 100 },\\n { name: 'Innovation', max: 100 },\\n { name: 'Communication', max: 100 },\\n ]}\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"BarChart\",\n \"GaugeChart\"\n ]\n },\n {\n \"name\": \"RadioGroup\",\n \"description\": \"Radio button group for single selection from multiple options\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"default\": \"''\",\n \"required\": false,\n \"description\": \"Current selected value (bindable)\"\n },\n {\n \"name\": \"options\",\n \"type\": \"RadioOption[]\",\n \"default\": \"Required\",\n \"required\": false,\n \"description\": \"Array of radio options\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Group label\"\n },\n {\n \"name\": \"orientation\",\n \"type\": \"'horizontal' | 'vertical'\",\n \"default\": \"'vertical'\",\n \"required\": false,\n \"description\": \"Layout direction\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables all options\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Name attribute for forms\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message to display\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"orientation\",\n \"values\": [\n \"horizontal\",\n \"vertical\"\n ],\n \"default\": \"vertical\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let value = $state('');\\n\\n const options = [\\n { value: 'option1', label: 'Option 1' },\\n { value: 'option2', label: 'Option 2' },\\n { value: 'option3', label: 'Option 3' },\\n ];\\n</script>\\n\\n<RadioGroup {options} bind:value />\"\n },\n {\n \"title\": \"Vertical (Default)\",\n \"code\": \"<RadioGroup {options} bind:value orientation=\\\"vertical\\\" />\"\n },\n {\n \"title\": \"Horizontal\",\n \"code\": \"<RadioGroup {options} bind:value orientation=\\\"horizontal\\\" />\"\n },\n {\n \"title\": \"Shipping Method\",\n \"code\": \"<script>\\n let shipping = $state('');\\n\\n const shippingOptions = [\\n {\\n value: 'standard',\\n label: 'Standard',\\n description: '5-7 business days - Free',\\n },\\n {\\n value: 'express',\\n label: 'Express',\\n description: '2-3 business days - $9.99',\\n },\\n {\\n value: 'overnight',\\n label: 'Overnight',\\n description: 'Next business day - $24.99',\\n },\\n ];\\n</script>\\n\\n<RadioGroup\\n label=\\\"Shipping Method\\\"\\n name=\\\"shipping\\\"\\n options={shippingOptions}\\n bind:value={shipping}\\n required\\n/>\"\n },\n {\n \"title\": \"Payment Method\",\n \"code\": \"<RadioGroup\\n label=\\\"Payment Method\\\"\\n name=\\\"payment\\\"\\n options={[\\n { value: 'card', label: 'Credit Card' },\\n { value: 'paypal', label: 'PayPal' },\\n { value: 'bank', label: 'Bank Transfer' },\\n ]}\\n bind:value={payment}\\n orientation=\\\"horizontal\\\"\\n/>\"\n },\n {\n \"title\": \"Yes/No Question\",\n \"code\": \"<RadioGroup\\n label=\\\"Would you recommend this product?\\\"\\n name=\\\"recommend\\\"\\n options={[\\n { value: 'yes', label: 'Yes' },\\n { value: 'no', label: 'No' },\\n ]}\\n bind:value={recommend}\\n orientation=\\\"horizontal\\\"\\n/>\"\n },\n {\n \"title\": \"Survey Scale\",\n \"code\": \"<RadioGroup\\n label=\\\"How satisfied are you?\\\"\\n name=\\\"satisfaction\\\"\\n options={[\\n { value: '1', label: 'Very Dissatisfied' },\\n { value: '2', label: 'Dissatisfied' },\\n { value: '3', label: 'Neutral' },\\n { value: '4', label: 'Satisfied' },\\n { value: '5', label: 'Very Satisfied' },\\n ]}\\n bind:value={satisfaction}\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"Checkbox\",\n \"Select\",\n \"Switch\"\n ]\n },\n {\n \"name\": \"SankeyChart\",\n \"description\": \"Flow relationships between entities\",\n \"category\": \"chart\",\n \"importPath\": \"@classic-homes/charts-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n import { SankeyChart } from '@classic-homes/charts-svelte';\\n\\n const data = {\\n nodes: [{ name: 'Source A' }, { name: 'Source B' }, { name: 'Process' }, { name: 'Output' }],\\n links: [\\n { source: 'Source A', target: 'Process', value: 50 },\\n { source: 'Source B', target: 'Process', value: 30 },\\n { source: 'Process', target: 'Output', value: 80 },\\n ],\\n };\\n</script>\\n\\n<SankeyChart title=\\\"Energy Flow\\\" {data} orient=\\\"horizontal\\\" height={400} />\"\n },\n {\n \"title\": \"Website User Flow\",\n \"code\": \"<SankeyChart\\n title=\\\"User Journey\\\"\\n data={{\\n nodes: [\\n { name: 'Homepage' },\\n { name: 'Products' },\\n { name: 'Cart' },\\n { name: 'Checkout' },\\n { name: 'Purchase' },\\n { name: 'Exit' },\\n ],\\n links: [\\n { source: 'Homepage', target: 'Products', value: 1000 },\\n { source: 'Homepage', target: 'Exit', value: 300 },\\n { source: 'Products', target: 'Cart', value: 500 },\\n { source: 'Products', target: 'Exit', value: 200 },\\n { source: 'Cart', target: 'Checkout', value: 400 },\\n { source: 'Cart', target: 'Exit', value: 100 },\\n { source: 'Checkout', target: 'Purchase', value: 350 },\\n { source: 'Checkout', target: 'Exit', value: 50 },\\n ],\\n }}\\n/>\"\n },\n {\n \"title\": \"Budget Allocation\",\n \"code\": \"<SankeyChart\\n title=\\\"Budget Distribution\\\"\\n data={{\\n nodes: [\\n { name: 'Revenue' },\\n { name: 'Operations' },\\n { name: 'Marketing' },\\n { name: 'R&D' },\\n { name: 'Profit' },\\n ],\\n links: [\\n { source: 'Revenue', target: 'Operations', value: 40 },\\n { source: 'Revenue', target: 'Marketing', value: 25 },\\n { source: 'Revenue', target: 'R&D', value: 20 },\\n { source: 'Revenue', target: 'Profit', value: 15 },\\n ],\\n }}\\n/>\"\n },\n {\n \"title\": \"Vertical Orientation\",\n \"code\": \"<SankeyChart title=\\\"Process Flow\\\" {data} orient=\\\"vertical\\\" />\"\n }\n ],\n \"relatedComponents\": [\n \"FunnelChart\",\n \"TreemapChart\"\n ]\n },\n {\n \"name\": \"ScatterChart\",\n \"description\": \"Visualize X/Y relationships with optional trend lines\",\n \"category\": \"chart\",\n \"importPath\": \"@classic-homes/charts-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n import { ScatterChart } from '@classic-homes/charts-svelte';\\n\\n const data = {\\n series: [\\n {\\n name: 'Dataset A',\\n data: [\\n [10.0, 8.04],\\n [8.07, 6.95],\\n [13.0, 7.58],\\n [9.05, 8.81],\\n [11.0, 8.33],\\n [14.0, 7.66],\\n ],\\n },\\n {\\n name: 'Dataset B',\\n data: [\\n [8.0, 9.04],\\n [6.07, 7.95],\\n [11.0, 8.58],\\n [7.05, 9.81],\\n [9.0, 9.33],\\n [12.0, 8.66],\\n ],\\n },\\n ],\\n };\\n</script>\\n\\n<ScatterChart title=\\\"Data Correlation\\\" {data} showTrendLine height={400} />\"\n },\n {\n \"title\": \"With Trend Line\",\n \"code\": \"<ScatterChart title=\\\"Correlation Analysis\\\" {data} showTrendLine height={400} />\"\n },\n {\n \"title\": \"Dynamic Point Size\",\n \"code\": \"<ScatterChart title=\\\"Sized Points\\\" {data} symbolSize={(value) => Math.sqrt(value[1]) * 3} />\"\n }\n ],\n \"relatedComponents\": [\n \"LineChart\",\n \"HeatmapChart\"\n ]\n },\n {\n \"name\": \"Section\",\n \"description\": \"Content section container for page organization\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Section title (h2)\"\n },\n {\n \"name\": \"description\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Description text\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Section content\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Section>\\n <p>Your content here</p>\\n</Section>\"\n },\n {\n \"title\": \"Settings Page\",\n \"code\": \"<div class=\\\"max-w-2xl mx-auto space-y-6\\\">\\n <Section title=\\\"Personal Information\\\" description=\\\"Update your personal details.\\\">\\n <form class=\\\"space-y-4\\\">\\n <div class=\\\"grid grid-cols-2 gap-4\\\">\\n <Input label=\\\"First Name\\\" value=\\\"John\\\" />\\n <Input label=\\\"Last Name\\\" value=\\\"Doe\\\" />\\n </div>\\n <Input label=\\\"Email\\\" type=\\\"email\\\" value=\\\"john@example.com\\\" />\\n <Input label=\\\"Phone\\\" type=\\\"tel\\\" />\\n <Button>Save Changes</Button>\\n </form>\\n </Section>\\n\\n <Section title=\\\"Password\\\" description=\\\"Update your password regularly for security.\\\">\\n <form class=\\\"space-y-4\\\">\\n <Input label=\\\"Current Password\\\" type=\\\"password\\\" />\\n <Input label=\\\"New Password\\\" type=\\\"password\\\" />\\n <Input label=\\\"Confirm Password\\\" type=\\\"password\\\" />\\n <Button>Update Password</Button>\\n </form>\\n </Section>\\n\\n <Section title=\\\"Preferences\\\">\\n <div class=\\\"space-y-4\\\">\\n <Select label=\\\"Language\\\">\\n <option value=\\\"en\\\">English</option>\\n <option value=\\\"es\\\">Spanish</option>\\n <option value=\\\"fr\\\">French</option>\\n </Select>\\n <Select label=\\\"Timezone\\\">\\n <option value=\\\"utc\\\">UTC</option>\\n <option value=\\\"est\\\">Eastern Time</option>\\n <option value=\\\"pst\\\">Pacific Time</option>\\n </Select>\\n </div>\\n </Section>\\n</div>\"\n },\n {\n \"title\": \"Dashboard Sections\",\n \"code\": \"<div class=\\\"space-y-6\\\">\\n <Section title=\\\"Quick Actions\\\">\\n <div class=\\\"flex gap-4\\\">\\n <Button>New Project</Button>\\n <Button variant=\\\"outline\\\">Import Data</Button>\\n <Button variant=\\\"outline\\\">Generate Report</Button>\\n </div>\\n </Section>\\n\\n <Section title=\\\"Recent Projects\\\" description=\\\"Your most recently accessed projects.\\\">\\n <DataTable data={recentProjects} columns={projectColumns} />\\n </Section>\\n\\n <Section title=\\\"Team Activity\\\">\\n <div class=\\\"space-y-3\\\">\\n {#each activities as activity}\\n <div class=\\\"flex items-center gap-3 p-3 rounded-lg bg-muted/50\\\">\\n <Avatar size=\\\"sm\\\">{activity.user.initials}</Avatar>\\n <div>\\n <p class=\\\"text-sm font-medium\\\">{activity.user.name}</p>\\n <p class=\\\"text-xs text-muted-foreground\\\">{activity.action}</p>\\n </div>\\n <span class=\\\"ml-auto text-xs text-muted-foreground\\\">\\n {activity.time}\\n </span>\\n </div>\\n {/each}\\n </div>\\n </Section>\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"Card\",\n \"PageHeader\",\n \"Separator\"\n ]\n },\n {\n \"name\": \"Select\",\n \"description\": \"Dropdown for selecting from a list of options with grouping support\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"default\": \"''\",\n \"required\": false,\n \"description\": \"Current selected value (bindable)\"\n },\n {\n \"name\": \"options\",\n \"type\": \"(SelectOption | SelectGroup)[]\",\n \"default\": \"Required\",\n \"required\": false,\n \"description\": \"Array of options or grouped options\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"default\": \"'Select an option...'\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the select\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Name attribute for forms\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Element ID for accessibility\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Optional label displayed above\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message to display\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let value = $state('');\\n\\n const options = [\\n { value: 'apple', label: 'Apple' },\\n { value: 'banana', label: 'Banana' },\\n { value: 'orange', label: 'Orange' },\\n ];\\n</script>\\n\\n<Select {options} bind:value placeholder=\\\"Select a fruit\\\" />\"\n },\n {\n \"title\": \"Disabled\",\n \"code\": \"<Select {options} disabled value=\\\"apple\\\" />\"\n },\n {\n \"title\": \"Required\",\n \"code\": \"<Select {options} bind:value label=\\\"Required Field\\\" required />\"\n },\n {\n \"title\": \"With Error\",\n \"code\": \"<Select {options} bind:value label=\\\"Category\\\" error=\\\"Please select a category\\\" />\"\n },\n {\n \"title\": \"Form Example\",\n \"code\": \"<script>\\n let department = $state('');\\n let departmentError = $state('');\\n\\n const departments = [\\n { value: 'sales', label: 'Sales' },\\n { value: 'marketing', label: 'Marketing' },\\n { value: 'engineering', label: 'Engineering' },\\n { value: 'support', label: 'Support' },\\n ];\\n\\n function validate() {\\n if (!department) {\\n departmentError = 'Please select a department';\\n return false;\\n }\\n departmentError = '';\\n return true;\\n }\\n</script>\\n\\n<Select\\n label=\\\"Department\\\"\\n options={departments}\\n bind:value={department}\\n error={departmentError}\\n required\\n/>\"\n },\n {\n \"title\": \"Controlled Select\",\n \"code\": \"<script>\\n let value = $state('');\\n\\n function handleChange(newValue: string) {\\n console.log('Selected:', newValue);\\n value = newValue;\\n }\\n</script>\\n\\n<Select {options} {value} onValueChange={handleChange} />\"\n },\n {\n \"title\": \"Country Selector\",\n \"code\": \"<script>\\n const countries = [\\n {\\n label: 'North America',\\n options: [\\n { value: 'us', label: 'United States' },\\n { value: 'ca', label: 'Canada' },\\n { value: 'mx', label: 'Mexico' },\\n ],\\n },\\n {\\n label: 'Europe',\\n options: [\\n { value: 'gb', label: 'United Kingdom' },\\n { value: 'de', label: 'Germany' },\\n { value: 'fr', label: 'France' },\\n ],\\n },\\n ];\\n</script>\\n\\n<Select label=\\\"Country\\\" options={countries} bind:value placeholder=\\\"Select your country\\\" />\"\n }\n ],\n \"relatedComponents\": [\n \"Combobox\",\n \"MultiSelect\",\n \"RadioGroup\"\n ]\n },\n {\n \"name\": \"Separator\",\n \"description\": \"Visual divider for separating content\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"orientation\",\n \"type\": \"'horizontal' | 'vertical'\",\n \"default\": \"'horizontal'\",\n \"required\": false,\n \"description\": \"Line direction\"\n },\n {\n \"name\": \"decorative\",\n \"type\": \"boolean\",\n \"default\": \"true\",\n \"required\": false,\n \"description\": \"If decorative (no semantic meaning)\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"orientation\",\n \"values\": [\n \"horizontal\",\n \"vertical\"\n ],\n \"default\": \"horizontal\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<div>Content above</div>\\n<Separator />\\n<div>Content below</div>\"\n },\n {\n \"title\": \"Form Sections\",\n \"code\": \"<form class=\\\"space-y-6\\\">\\n <div class=\\\"space-y-4\\\">\\n <h3 class=\\\"font-medium\\\">Personal Information</h3>\\n <Input label=\\\"Name\\\" />\\n <Input label=\\\"Email\\\" type=\\\"email\\\" />\\n </div>\\n\\n <Separator />\\n\\n <div class=\\\"space-y-4\\\">\\n <h3 class=\\\"font-medium\\\">Address</h3>\\n <Input label=\\\"Street\\\" />\\n <Input label=\\\"City\\\" />\\n </div>\\n\\n <Separator />\\n\\n <Button type=\\\"submit\\\">Submit</Button>\\n</form>\"\n },\n {\n \"title\": \"Dropdown Menu\",\n \"code\": \"<DropdownMenu>\\n <DropdownMenu.Item>Profile</DropdownMenu.Item>\\n <DropdownMenu.Item>Settings</DropdownMenu.Item>\\n <Separator class=\\\"my-1\\\" />\\n <DropdownMenu.Item>Help</DropdownMenu.Item>\\n <DropdownMenu.Item>Feedback</DropdownMenu.Item>\\n <Separator class=\\\"my-1\\\" />\\n <DropdownMenu.Item>Log out</DropdownMenu.Item>\\n</DropdownMenu>\"\n },\n {\n \"title\": \"Login Divider\",\n \"code\": \"<div class=\\\"space-y-4\\\">\\n <Button class=\\\"w-full\\\">\\n <GoogleIcon class=\\\"mr-2\\\" />\\n Continue with Google\\n </Button>\\n\\n <div class=\\\"flex items-center gap-4\\\">\\n <Separator class=\\\"flex-1\\\" />\\n <span class=\\\"text-xs text-muted-foreground uppercase\\\">or continue with email</span>\\n <Separator class=\\\"flex-1\\\" />\\n </div>\\n\\n <form class=\\\"space-y-4\\\">\\n <Input label=\\\"Email\\\" type=\\\"email\\\" />\\n <Input label=\\\"Password\\\" type=\\\"password\\\" />\\n <Button type=\\\"submit\\\" class=\\\"w-full\\\">Sign In</Button>\\n </form>\\n</div>\"\n },\n {\n \"title\": \"Toolbar\",\n \"code\": \"<div class=\\\"flex items-center gap-2 p-2 border rounded-lg\\\">\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><BoldIcon /></Button>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><ItalicIcon /></Button>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><UnderlineIcon /></Button>\\n\\n <Separator orientation=\\\"vertical\\\" class=\\\"h-6\\\" />\\n\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><AlignLeftIcon /></Button>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><AlignCenterIcon /></Button>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><AlignRightIcon /></Button>\\n\\n <Separator orientation=\\\"vertical\\\" class=\\\"h-6\\\" />\\n\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><LinkIcon /></Button>\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\"><ImageIcon /></Button>\\n</div>\"\n },\n {\n \"title\": \"Card Footer\",\n \"code\": \"<Card>\\n <Card.Header>\\n <Card.Title>Subscription</Card.Title>\\n </Card.Header>\\n <Card.Content>\\n <p>You are currently on the Pro plan.</p>\\n </Card.Content>\\n <Separator />\\n <Card.Footer>\\n <Button variant=\\\"outline\\\">Change Plan</Button>\\n <Button variant=\\\"ghost\\\" class=\\\"text-destructive\\\">Cancel</Button>\\n </Card.Footer>\\n</Card>\"\n }\n ],\n \"relatedComponents\": [\n \"Card\",\n \"Section\",\n \"DropdownMenu\"\n ]\n },\n {\n \"name\": \"Sidebar\",\n \"description\": \"Responsive sidebar navigation with collapsible sections\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"navigation\",\n \"type\": \"NavSection[]\",\n \"required\": false,\n \"description\": \"Navigation sections\"\n },\n {\n \"name\": \"userRoles\",\n \"type\": \"string[]\",\n \"required\": false,\n \"description\": \"User roles for filtering\"\n },\n {\n \"name\": \"collapsed\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Desktop collapsed state\"\n },\n {\n \"name\": \"isMobile\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Mobile mode\"\n },\n {\n \"name\": \"mobileOpen\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Mobile drawer open\"\n },\n {\n \"name\": \"onClose\",\n \"type\": \"() => void\",\n \"required\": false,\n \"description\": \"Mobile close callback\"\n },\n {\n \"name\": \"onNavigate\",\n \"type\": \"(item: NavItem) => void\",\n \"required\": false,\n \"description\": \"Navigation callback\"\n },\n {\n \"name\": \"logo\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Custom logo\"\n },\n {\n \"name\": \"icon\",\n \"type\": \"Snippet<[NavItem]>\",\n \"required\": false,\n \"description\": \"Custom icon renderer\"\n },\n {\n \"name\": \"quickLinks\",\n \"type\": \"QuickLink[]\",\n \"required\": false,\n \"description\": \"Quick links at bottom\"\n },\n {\n \"name\": \"quickLinksDisplay\",\n \"type\": \"'list' | 'icons'\",\n \"default\": \"'list'\",\n \"required\": false,\n \"description\": \"Quick links display\"\n },\n {\n \"name\": \"quickLinkIcon\",\n \"type\": \"Snippet<[QuickLink]>\",\n \"required\": false,\n \"description\": \"Quick link icon renderer\"\n },\n {\n \"name\": \"footer\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Footer content\"\n },\n {\n \"name\": \"variant\",\n \"type\": \"'light' | 'dark'\",\n \"default\": \"'light'\",\n \"required\": false,\n \"description\": \"Visual variant\"\n },\n {\n \"name\": \"strongBorder\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Thicker border\"\n },\n {\n \"name\": \"expandedWidth\",\n \"type\": \"number\",\n \"default\": \"256\",\n \"required\": false,\n \"description\": \"Expanded width (px)\"\n },\n {\n \"name\": \"collapsedWidth\",\n \"type\": \"number\",\n \"default\": \"64\",\n \"required\": false,\n \"description\": \"Collapsed width (px)\"\n },\n {\n \"name\": \"searchable\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Enable search\"\n },\n {\n \"name\": \"searchPlaceholder\",\n \"type\": \"string\",\n \"default\": \"'Search...'\",\n \"required\": false,\n \"description\": \"Search placeholder\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"quickLinksDisplay\",\n \"values\": [\n \"list\",\n \"icons\"\n ],\n \"default\": \"list\"\n },\n {\n \"name\": \"variant\",\n \"values\": [\n \"light\",\n \"dark\"\n ],\n \"default\": \"light\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n const navigation = [\\n {\\n id: 'main',\\n title: 'Main',\\n items: [\\n { id: 'home', name: 'Home', href: '/', icon: 'home' },\\n { id: 'projects', name: 'Projects', href: '/projects', icon: 'folder' },\\n ],\\n },\\n ];\\n</script>\\n\\n<Sidebar {navigation} />\"\n },\n {\n \"title\": \"Sections with Titles\",\n \"code\": \"<script>\\n const navigation = [\\n {\\n id: 'main',\\n title: 'Main',\\n items: [\\n { id: 'dashboard', name: 'Dashboard', href: '/dashboard' },\\n { id: 'projects', name: 'Projects', href: '/projects' },\\n ],\\n },\\n {\\n id: 'settings',\\n title: 'Settings',\\n collapsible: true,\\n items: [\\n { id: 'profile', name: 'Profile', href: '/profile' },\\n { id: 'account', name: 'Account', href: '/account' },\\n ],\\n },\\n ];\\n</script>\"\n },\n {\n \"title\": \"Nested Navigation\",\n \"code\": \"<script>\\n const navigation = [\\n {\\n id: 'docs',\\n items: [\\n {\\n id: 'components',\\n name: 'Components',\\n children: [\\n { id: 'button', name: 'Button', href: '/components/button' },\\n { id: 'input', name: 'Input', href: '/components/input' },\\n { id: 'card', name: 'Card', href: '/components/card' },\\n ],\\n },\\n ],\\n },\\n ];\\n</script>\"\n },\n {\n \"title\": \"Dashboard Sidebar\",\n \"code\": \"<script>\\n import { page } from '$app/stores';\\n\\n const navigation = [\\n {\\n id: 'overview',\\n items: [\\n { id: 'dashboard', name: 'Dashboard', href: '/dashboard', icon: 'home' },\\n { id: 'analytics', name: 'Analytics', href: '/analytics', icon: 'chart' },\\n ],\\n },\\n {\\n id: 'content',\\n title: 'Content',\\n items: [\\n { id: 'posts', name: 'Posts', href: '/posts', icon: 'file' },\\n { id: 'media', name: 'Media', href: '/media', icon: 'image' },\\n { id: 'pages', name: 'Pages', href: '/pages', icon: 'document' },\\n ],\\n },\\n {\\n id: 'settings',\\n title: 'Settings',\\n collapsible: true,\\n expanded: false,\\n items: [\\n { id: 'general', name: 'General', href: '/settings' },\\n { id: 'team', name: 'Team', href: '/settings/team' },\\n { id: 'billing', name: 'Billing', href: '/settings/billing' },\\n ],\\n },\\n ];\\n</script>\\n\\n<Sidebar\\n {navigation}\\n variant=\\\"dark\\\"\\n searchable\\n quickLinks={[{ id: 'help', name: 'Help Center', href: '/help', icon: 'help' }]}\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"Header\",\n \"DashboardLayout\",\n \"AppShell\"\n ]\n },\n {\n \"name\": \"Signature\",\n \"description\": \"Digital signature capture with draw and type modes\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"SignatureData | null\",\n \"default\": \"null\",\n \"required\": false,\n \"description\": \"Signature data (bindable)\"\n },\n {\n \"name\": \"mode\",\n \"type\": \"'draw' | 'type'\",\n \"default\": \"'draw'\",\n \"required\": false,\n \"description\": \"Capture mode\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables capture\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Label text\"\n },\n {\n \"name\": \"error\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Error message\"\n },\n {\n \"name\": \"strokeColor\",\n \"type\": \"string\",\n \"default\": \"'#000000'\",\n \"required\": false,\n \"description\": \"Drawing stroke color\"\n },\n {\n \"name\": \"strokeWidth\",\n \"type\": \"number\",\n \"default\": \"2\",\n \"required\": false,\n \"description\": \"Drawing stroke width\"\n },\n {\n \"name\": \"fonts\",\n \"type\": \"SignatureFont[]\",\n \"required\": false,\n \"description\": \"Available fonts for type mode\"\n },\n {\n \"name\": \"onValidate\",\n \"type\": \"(data: SignatureData) => SignatureValidationResult\",\n \"required\": false,\n \"description\": \"Validation handler\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"mode\",\n \"values\": [\n \"draw\",\n \"type\"\n ],\n \"default\": \"draw\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let signature = $state(null);\\n</script>\\n\\n<Signature bind:value={signature} />\"\n },\n {\n \"title\": \"Agreement Form\",\n \"code\": \"<script>\\n let signature = $state(null);\\n\\n function handleSubmit() {\\n if (!signature) {\\n // Handle missing signature\\n return;\\n }\\n // Submit form with signature\\n }\\n</script>\\n\\n<div class=\\\"space-y-4\\\">\\n <p class=\\\"text-sm text-muted-foreground\\\">\\n By signing below, you agree to the terms and conditions.\\n </p>\\n <Signature label=\\\"Your Signature\\\" bind:value={signature} required />\\n <Button onclick={handleSubmit} disabled={!signature}>Submit Agreement</Button>\\n</div>\"\n },\n {\n \"title\": \"Clear and Retry\",\n \"code\": \"<div class=\\\"space-y-4\\\">\\n <Signature bind:value={signature} />\\n <Button variant=\\\"outline\\\" onclick={() => (signature = null)} disabled={!signature}>\\n Clear Signature\\n </Button>\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"Button\"\n ]\n },\n {\n \"name\": \"Skeleton\",\n \"description\": \"Placeholder loading component that mimics content shape\",\n \"category\": \"feedback\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"variant\",\n \"type\": \"'default' | 'text' | 'avatar' | 'card' | 'button' | 'title'\",\n \"default\": \"'default'\",\n \"required\": false,\n \"description\": \"Predefined shape variant\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"variant\",\n \"values\": [\n \"default\",\n \"text\",\n \"avatar\",\n \"card\",\n \"button\",\n \"title\"\n ],\n \"default\": \"default\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Skeleton class=\\\"h-4 w-full\\\" />\"\n },\n {\n \"title\": \"Default\",\n \"description\": \"Custom sizing with classes:\",\n \"code\": \"<Skeleton class=\\\"h-4 w-full\\\" />\\n<Skeleton class=\\\"h-8 w-64\\\" />\"\n },\n {\n \"title\": \"Text\",\n \"description\": \"Single line of text:\",\n \"code\": \"<Skeleton variant=\\\"text\\\" /> <!-- h-4 w-full -->\"\n },\n {\n \"title\": \"Title\",\n \"description\": \"Larger heading text:\",\n \"code\": \"<Skeleton variant=\\\"title\\\" /> <!-- h-6 w-3/4 -->\"\n },\n {\n \"title\": \"Avatar\",\n \"description\": \"Circular avatar placeholder:\",\n \"code\": \"<Skeleton variant=\\\"avatar\\\" /> <!-- h-12 w-12 rounded-full -->\"\n },\n {\n \"title\": \"Card\",\n \"description\": \"Card-sized placeholder:\",\n \"code\": \"<Skeleton variant=\\\"card\\\" /> <!-- h-32 w-full -->\"\n },\n {\n \"title\": \"Button\",\n \"description\": \"Button-sized placeholder:\",\n \"code\": \"<Skeleton variant=\\\"button\\\" /> <!-- h-10 w-24 -->\"\n },\n {\n \"title\": \"Text Content Loading\",\n \"code\": \"<div class=\\\"space-y-2\\\">\\n <Skeleton variant=\\\"title\\\" />\\n <Skeleton variant=\\\"text\\\" />\\n <Skeleton variant=\\\"text\\\" />\\n <Skeleton class=\\\"h-4 w-2/3\\\" />\\n</div>\"\n },\n {\n \"title\": \"User Card Loading\",\n \"code\": \"<div class=\\\"flex items-center gap-4\\\">\\n <Skeleton variant=\\\"avatar\\\" />\\n <div class=\\\"space-y-2 flex-1\\\">\\n <Skeleton class=\\\"h-4 w-32\\\" />\\n <Skeleton class=\\\"h-3 w-24\\\" />\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Card Loading\",\n \"code\": \"<Card>\\n <CardHeader>\\n <Skeleton variant=\\\"title\\\" />\\n <Skeleton variant=\\\"text\\\" class=\\\"mt-2\\\" />\\n </CardHeader>\\n <CardContent>\\n <Skeleton variant=\\\"card\\\" />\\n </CardContent>\\n <CardFooter>\\n <Skeleton variant=\\\"button\\\" />\\n </CardFooter>\\n</Card>\"\n },\n {\n \"title\": \"Table Row Loading\",\n \"code\": \"<tr>\\n <td><Skeleton class=\\\"h-4 w-8\\\" /></td>\\n <td><Skeleton class=\\\"h-4 w-32\\\" /></td>\\n <td><Skeleton class=\\\"h-4 w-48\\\" /></td>\\n <td><Skeleton class=\\\"h-4 w-24\\\" /></td>\\n</tr>\"\n },\n {\n \"title\": \"Grid Loading\",\n \"code\": \"<div class=\\\"grid grid-cols-3 gap-4\\\">\\n {#each Array(6) as _}\\n <div class=\\\"space-y-2\\\">\\n <Skeleton class=\\\"h-32 w-full\\\" />\\n <Skeleton variant=\\\"title\\\" />\\n <Skeleton variant=\\\"text\\\" />\\n </div>\\n {/each}\\n</div>\"\n },\n {\n \"title\": \"Profile Page Loading\",\n \"code\": \"<div class=\\\"space-y-6\\\">\\n <!-- Header -->\\n <div class=\\\"flex items-center gap-6\\\">\\n <Skeleton class=\\\"h-24 w-24 rounded-full\\\" />\\n <div class=\\\"space-y-2\\\">\\n <Skeleton class=\\\"h-8 w-48\\\" />\\n <Skeleton class=\\\"h-4 w-32\\\" />\\n </div>\\n </div>\\n\\n <!-- Stats -->\\n <div class=\\\"grid grid-cols-3 gap-4\\\">\\n {#each Array(3) as _}\\n <Skeleton class=\\\"h-20\\\" />\\n {/each}\\n </div>\\n\\n <!-- Content -->\\n <div class=\\\"space-y-2\\\">\\n <Skeleton variant=\\\"text\\\" />\\n <Skeleton variant=\\\"text\\\" />\\n <Skeleton class=\\\"h-4 w-3/4\\\" />\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Conditional Loading\",\n \"code\": \"{#if loading}\\n <div class=\\\"space-y-2\\\">\\n <Skeleton variant=\\\"title\\\" />\\n <Skeleton variant=\\\"text\\\" />\\n <Skeleton variant=\\\"text\\\" />\\n </div>\\n{:else}\\n <div>\\n <h2>{title}</h2>\\n <p>{content}</p>\\n </div>\\n{/if}\"\n },\n {\n \"title\": \"Image Loading\",\n \"code\": \"<div class=\\\"relative\\\">\\n {#if imageLoading}\\n <Skeleton class=\\\"h-64 w-full\\\" />\\n {/if}\\n <img\\n src={imageUrl}\\n onload={() => (imageLoading = false)}\\n class={imageLoading ? 'invisible absolute' : ''}\\n />\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"Spinner\",\n \"Card\"\n ]\n },\n {\n \"name\": \"Slider\",\n \"description\": \"Range slider for selecting numeric values\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"number[]\",\n \"default\": \"[50]\",\n \"required\": false,\n \"description\": \"Current value(s) (bindable)\"\n },\n {\n \"name\": \"min\",\n \"type\": \"number\",\n \"default\": \"0\",\n \"required\": false,\n \"description\": \"Minimum value\"\n },\n {\n \"name\": \"max\",\n \"type\": \"number\",\n \"default\": \"100\",\n \"required\": false,\n \"description\": \"Maximum value\"\n },\n {\n \"name\": \"step\",\n \"type\": \"number\",\n \"default\": \"1\",\n \"required\": false,\n \"description\": \"Step increment\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the slider\"\n },\n {\n \"name\": \"orientation\",\n \"type\": \"'horizontal' | 'vertical'\",\n \"default\": \"'horizontal'\",\n \"required\": false,\n \"description\": \"Slider direction\"\n },\n {\n \"name\": \"size\",\n \"type\": \"'sm' | 'md' | 'lg'\",\n \"default\": \"'md'\",\n \"required\": false,\n \"description\": \"Size variant\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Label text\"\n },\n {\n \"name\": \"showValue\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Shows current value\"\n },\n {\n \"name\": \"formatValue\",\n \"type\": \"(value: number) => string\",\n \"required\": false,\n \"description\": \"Value formatter\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: number[]) => void\",\n \"required\": false,\n \"description\": \"Callback during drag\"\n },\n {\n \"name\": \"onValueCommit\",\n \"type\": \"(value: number[]) => void\",\n \"required\": false,\n \"description\": \"Callback when drag ends\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"orientation\",\n \"values\": [\n \"horizontal\",\n \"vertical\"\n ],\n \"default\": \"horizontal\"\n },\n {\n \"name\": \"size\",\n \"values\": [\n \"sm\",\n \"md\",\n \"lg\"\n ],\n \"default\": \"md\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let value = $state([50]);\\n</script>\\n\\n<Slider bind:value />\"\n },\n {\n \"title\": \"Volume Control\",\n \"code\": \"<script>\\n let volume = $state([70]);\\n</script>\\n\\n<Slider\\n label=\\\"Volume\\\"\\n bind:value={volume}\\n min={0}\\n max={100}\\n showValue\\n formatValue={(v) => `${v}%`}\\n/>\"\n },\n {\n \"title\": \"Price Filter\",\n \"code\": \"<script>\\n let priceRange = $state([0, 500]);\\n</script>\\n\\n<Slider\\n label=\\\"Price Range\\\"\\n bind:value={priceRange}\\n min={0}\\n max={1000}\\n step={10}\\n showValue\\n formatValue={(v) => `$${v}`}\\n/>\"\n },\n {\n \"title\": \"Temperature\",\n \"code\": \"<script>\\n let temp = $state([72]);\\n</script>\\n\\n<Slider\\n label=\\\"Temperature\\\"\\n bind:value={temp}\\n min={60}\\n max={85}\\n showValue\\n formatValue={(v) => `${v}°F`}\\n/>\"\n },\n {\n \"title\": \"Opacity Control\",\n \"code\": \"<script>\\n let opacity = $state([100]);\\n</script>\\n\\n<Slider\\n label=\\\"Opacity\\\"\\n bind:value={opacity}\\n min={0}\\n max={100}\\n showValue\\n formatValue={(v) => `${v}%`}\\n onValueChange={(val) => {\\n element.style.opacity = val[0] / 100;\\n }}\\n/>\"\n },\n {\n \"title\": \"Discrete Steps\",\n \"code\": \"<script>\\n let rating = $state([3]);\\n const labels = ['Poor', 'Fair', 'Good', 'Very Good', 'Excellent'];\\n</script>\\n\\n<Slider\\n label=\\\"Rating\\\"\\n bind:value={rating}\\n min={1}\\n max={5}\\n step={1}\\n showValue\\n formatValue={(v) => labels[v - 1]}\\n/>\"\n },\n {\n \"title\": \"Commit on Release\",\n \"description\": \"Trigger action only when user finishes dragging:\",\n \"code\": \"<Slider\\n bind:value\\n onValueCommit={(val) => {\\n savePreference(val[0]);\\n }}\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"NumberInput\",\n \"Input\"\n ]\n },\n {\n \"name\": \"Spinner\",\n \"description\": \"Loading indicator for async operations\",\n \"category\": \"feedback\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"size\",\n \"type\": \"'sm' | 'md' | 'lg' | 'xl'\",\n \"default\": \"'md'\",\n \"required\": false,\n \"description\": \"Size of the spinner\"\n },\n {\n \"name\": \"label\",\n \"type\": \"string\",\n \"default\": \"'Loading...'\",\n \"required\": false,\n \"description\": \"Accessible label for screen readers\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"size\",\n \"values\": [\n \"sm\",\n \"md\",\n \"lg\",\n \"xl\"\n ],\n \"default\": \"md\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Spinner />\"\n },\n {\n \"title\": \"Button Loading State\",\n \"code\": \"<Button disabled={loading}>\\n {#if loading}\\n <Spinner size=\\\"sm\\\" label=\\\"Submitting...\\\" class=\\\"mr-2\\\" />\\n Submitting...\\n {:else}\\n Submit\\n {/if}\\n</Button>\"\n },\n {\n \"title\": \"Centered Loading\",\n \"code\": \"<div class=\\\"flex items-center justify-center h-64\\\">\\n <Spinner size=\\\"lg\\\" label=\\\"Loading content...\\\" />\\n</div>\"\n },\n {\n \"title\": \"Full Page Loading\",\n \"code\": \"<div class=\\\"fixed inset-0 flex items-center justify-center bg-background/80 z-50\\\">\\n <div class=\\\"text-center\\\">\\n <Spinner size=\\\"xl\\\" label=\\\"Loading application...\\\" />\\n <p class=\\\"mt-4 text-muted-foreground\\\">Loading...</p>\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Inline Loading\",\n \"code\": \"<p>\\n Checking availability\\n <Spinner size=\\\"sm\\\" class=\\\"inline ml-2\\\" label=\\\"Checking...\\\" />\\n</p>\"\n },\n {\n \"title\": \"Card Loading State\",\n \"code\": \"<Card>\\n <CardContent class=\\\"flex items-center justify-center h-32\\\">\\n {#if loading}\\n <Spinner label=\\\"Loading data...\\\" />\\n {:else}\\n <p>{data}</p>\\n {/if}\\n </CardContent>\\n</Card>\"\n },\n {\n \"title\": \"With Loading Text\",\n \"code\": \"<div class=\\\"flex items-center gap-3\\\">\\n <Spinner size=\\\"md\\\" />\\n <span class=\\\"text-muted-foreground\\\">Loading your dashboard...</span>\\n</div>\"\n },\n {\n \"title\": \"Table Loading\",\n \"code\": \"<table>\\n <tbody>\\n {#if loading}\\n <tr>\\n <td colspan=\\\"4\\\" class=\\\"text-center py-8\\\">\\n <Spinner label=\\\"Loading data...\\\" />\\n </td>\\n </tr>\\n {:else}\\n {#each rows as row}\\n <tr><!-- row content --></tr>\\n {/each}\\n {/if}\\n </tbody>\\n</table>\"\n }\n ],\n \"relatedComponents\": [\n \"Skeleton\",\n \"Button\"\n ]\n },\n {\n \"name\": \"Switch\",\n \"description\": \"Toggle switch for binary on/off settings\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"checked\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Whether the switch is on (bindable)\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the switch\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Name attribute for forms\"\n },\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Value attribute for forms\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Element ID for label association\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onchange\",\n \"type\": \"(checked: boolean) => void\",\n \"required\": false,\n \"description\": \"Callback when checked state changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n let enabled = $state(false);\\n</script>\\n\\n<Switch bind:checked={enabled} />\"\n },\n {\n \"title\": \"On (Checked)\",\n \"code\": \"<Switch checked />\"\n },\n {\n \"title\": \"Off (Unchecked)\",\n \"code\": \"<Switch />\"\n },\n {\n \"title\": \"Disabled\",\n \"code\": \"<Switch disabled />\\n<Switch disabled checked />\"\n },\n {\n \"title\": \"Feature Toggle\",\n \"code\": \"<script>\\n let betaFeatures = $state(false);\\n</script>\\n\\n<div class=\\\"p-4 border rounded-lg\\\">\\n <div class=\\\"flex items-center justify-between\\\">\\n <div>\\n <h3 class=\\\"font-medium\\\">Beta Features</h3>\\n <p class=\\\"text-sm text-muted-foreground\\\">Enable experimental features</p>\\n </div>\\n <Switch bind:checked={betaFeatures} />\\n </div>\\n\\n {#if betaFeatures}\\n <p class=\\\"mt-3 text-sm text-warning\\\">Beta features may be unstable.</p>\\n {/if}\\n</div>\"\n },\n {\n \"title\": \"Privacy Controls\",\n \"code\": \"<script>\\n let privacy = $state({\\n analytics: true,\\n personalization: false,\\n thirdParty: false,\\n });\\n</script>\\n\\n<div class=\\\"space-y-4\\\">\\n <h2 class=\\\"text-lg font-semibold\\\">Privacy Settings</h2>\\n\\n <div class=\\\"space-y-3\\\">\\n <div class=\\\"flex items-center justify-between\\\">\\n <Label for=\\\"analytics\\\">Analytics cookies</Label>\\n <Switch id=\\\"analytics\\\" bind:checked={privacy.analytics} />\\n </div>\\n\\n <div class=\\\"flex items-center justify-between\\\">\\n <Label for=\\\"personalization\\\">Personalization</Label>\\n <Switch id=\\\"personalization\\\" bind:checked={privacy.personalization} />\\n </div>\\n\\n <div class=\\\"flex items-center justify-between\\\">\\n <Label for=\\\"third-party\\\">Third-party cookies</Label>\\n <Switch id=\\\"third-party\\\" bind:checked={privacy.thirdParty} />\\n </div>\\n </div>\\n</div>\"\n },\n {\n \"title\": \"Inline Switch\",\n \"code\": \"<p class=\\\"text-sm\\\">\\n Show completed tasks\\n <Switch bind:checked={showCompleted} class=\\\"ml-2 align-middle\\\" />\\n</p>\"\n }\n ],\n \"relatedComponents\": [\n \"Checkbox\",\n \"RadioGroup\",\n \"Label\"\n ]\n },\n {\n \"name\": \"Tabs\",\n \"description\": \"Tabbed interface for organizing content\",\n \"category\": \"layout\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"tabs\",\n \"type\": \"Tab[]\",\n \"required\": false,\n \"description\": \"Array of tab definitions\"\n },\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"default\": \"First tab ID\",\n \"required\": false,\n \"description\": \"Active tab ID (bindable)\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"default\": \"Auto-generated\",\n \"required\": false,\n \"description\": \"Unique ID for ARIA\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional classes\"\n },\n {\n \"name\": \"children\",\n \"type\": \"Snippet\",\n \"required\": false,\n \"description\": \"Tab panel content\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Change callback\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n const tabs = [\\n { id: 'account', label: 'Account' },\\n { id: 'security', label: 'Security' },\\n { id: 'notifications', label: 'Notifications' },\\n ];\\n</script>\\n\\n<Tabs {tabs}>\\n <TabPanel id=\\\"account\\\">\\n <p>Account settings content</p>\\n </TabPanel>\\n <TabPanel id=\\\"security\\\">\\n <p>Security settings content</p>\\n </TabPanel>\\n <TabPanel id=\\\"notifications\\\">\\n <p>Notification preferences</p>\\n </TabPanel>\\n</Tabs>\"\n },\n {\n \"title\": \"Settings Page\",\n \"code\": \"<script>\\n const tabs = [\\n { id: 'profile', label: 'Profile' },\\n { id: 'account', label: 'Account' },\\n { id: 'security', label: 'Security' },\\n { id: 'billing', label: 'Billing' },\\n ];\\n</script>\\n\\n<Tabs {tabs}>\\n <TabPanel id=\\\"profile\\\">\\n <Section title=\\\"Personal Information\\\">\\n <form class=\\\"space-y-4\\\">\\n <Input label=\\\"Display Name\\\" />\\n <Textarea label=\\\"Bio\\\" />\\n <Button>Save Changes</Button>\\n </form>\\n </Section>\\n </TabPanel>\\n\\n <TabPanel id=\\\"account\\\">\\n <Section title=\\\"Email Settings\\\">\\n <Input label=\\\"Email Address\\\" type=\\\"email\\\" />\\n <Button>Update Email</Button>\\n </Section>\\n </TabPanel>\\n\\n <TabPanel id=\\\"security\\\">\\n <Section title=\\\"Password\\\">\\n <form class=\\\"space-y-4\\\">\\n <Input label=\\\"Current Password\\\" type=\\\"password\\\" />\\n <Input label=\\\"New Password\\\" type=\\\"password\\\" />\\n <Button>Change Password</Button>\\n </form>\\n </Section>\\n </TabPanel>\\n\\n <TabPanel id=\\\"billing\\\">\\n <Section title=\\\"Payment Methods\\\">\\n <p>Your payment methods will appear here.</p>\\n </Section>\\n </TabPanel>\\n</Tabs>\"\n },\n {\n \"title\": \"Product Details\",\n \"code\": \"<script>\\n const tabs = [\\n { id: 'description', label: 'Description' },\\n { id: 'specs', label: 'Specifications' },\\n { id: 'reviews', label: 'Reviews' },\\n ];\\n</script>\\n\\n<Tabs {tabs}>\\n <TabPanel id=\\\"description\\\">\\n <div class=\\\"prose\\\">\\n <p>{product.description}</p>\\n </div>\\n </TabPanel>\\n\\n <TabPanel id=\\\"specs\\\">\\n <DataTable data={product.specs} columns={specColumns} />\\n </TabPanel>\\n\\n <TabPanel id=\\\"reviews\\\">\\n {#each reviews as review}\\n <Card class=\\\"mb-4\\\">\\n <Card.Header>\\n <div class=\\\"flex items-center gap-2\\\">\\n <Avatar size=\\\"sm\\\">{review.author[0]}</Avatar>\\n <span>{review.author}</span>\\n </div>\\n </Card.Header>\\n <Card.Content>\\n <p>{review.content}</p>\\n </Card.Content>\\n </Card>\\n {/each}\\n </TabPanel>\\n</Tabs>\"\n },\n {\n \"title\": \"Code Examples\",\n \"code\": \"<script>\\n const tabs = [\\n { id: 'svelte', label: 'Svelte' },\\n { id: 'react', label: 'React' },\\n { id: 'vue', label: 'Vue' },\\n ];\\n</script>\\n\\n<Tabs {tabs}>\\n <TabPanel id=\\\"svelte\\\">\\n <pre><code>{svelteCode}</code></pre>\\n </TabPanel>\\n <TabPanel id=\\\"react\\\">\\n <pre><code>{reactCode}</code></pre>\\n </TabPanel>\\n <TabPanel id=\\\"vue\\\">\\n <pre><code>{vueCode}</code></pre>\\n </TabPanel>\\n</Tabs>\"\n }\n ],\n \"relatedComponents\": [\n \"Card\",\n \"Section\",\n \"Separator\"\n ]\n },\n {\n \"name\": \"Textarea\",\n \"description\": \"Multi-line text input for longer content like messages and descriptions\",\n \"category\": \"form\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"value\",\n \"type\": \"string\",\n \"default\": \"''\",\n \"required\": false,\n \"description\": \"Textarea value (bindable)\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Placeholder text\"\n },\n {\n \"name\": \"disabled\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Disables the textarea\"\n },\n {\n \"name\": \"readonly\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Makes the textarea read-only\"\n },\n {\n \"name\": \"required\",\n \"type\": \"boolean\",\n \"default\": \"false\",\n \"required\": false,\n \"description\": \"Marks as required\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Textarea name for forms\"\n },\n {\n \"name\": \"id\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Textarea ID for label association\"\n },\n {\n \"name\": \"rows\",\n \"type\": \"number\",\n \"default\": \"3\",\n \"required\": false,\n \"description\": \"Number of visible text rows\"\n },\n {\n \"name\": \"class\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Additional CSS classes\"\n },\n {\n \"name\": \"onValueChange\",\n \"type\": \"(value: string) => void\",\n \"required\": false,\n \"description\": \"Callback when value changes\"\n }\n ],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Textarea placeholder=\\\"Enter your message...\\\" />\"\n },\n {\n \"title\": \"Disabled\",\n \"code\": \"<Textarea disabled value=\\\"Cannot edit this content\\\" />\"\n },\n {\n \"title\": \"Read-only\",\n \"code\": \"<Textarea readonly value=\\\"This content is read-only\\\" />\"\n },\n {\n \"title\": \"Required\",\n \"code\": \"<Textarea required placeholder=\\\"Required field\\\" />\"\n },\n {\n \"title\": \"Character Counter\",\n \"code\": \"<script>\\n import { Textarea, Label } from '@classic-homes/theme-svelte';\\n\\n let bio = $state('');\\n const maxLength = 280;\\n</script>\\n\\n<div class=\\\"space-y-2\\\">\\n <Label for=\\\"bio\\\">Bio</Label>\\n <Textarea id=\\\"bio\\\" bind:value={bio} rows={4} placeholder=\\\"Tell us about yourself...\\\" />\\n <p class=\\\"text-sm text-muted-foreground text-right\\\">\\n {bio.length}/{maxLength}\\n </p>\\n</div>\"\n },\n {\n \"title\": \"With Help Text\",\n \"code\": \"<div class=\\\"space-y-2\\\">\\n <Label for=\\\"description\\\">Description</Label>\\n <Textarea id=\\\"description\\\" rows={4} placeholder=\\\"Describe your item...\\\" />\\n <p class=\\\"text-sm text-muted-foreground\\\">\\n Include key details to help buyers understand your item.\\n </p>\\n</div>\"\n },\n {\n \"title\": \"Fixed Height\",\n \"code\": \"<Textarea class=\\\"resize-none h-32\\\" placeholder=\\\"Fixed height textarea\\\" />\"\n },\n {\n \"title\": \"Full Width in Container\",\n \"code\": \"<div class=\\\"max-w-md\\\">\\n <Textarea placeholder=\\\"Constrained to container width\\\" />\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"Input\",\n \"Label\",\n \"FormField\"\n ]\n },\n {\n \"name\": \"Toast\",\n \"description\": \"Brief notification messages for user feedback\",\n \"category\": \"feedback\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Success\",\n \"description\": \"For successful operations:\",\n \"code\": \"toastStore.success('Changes saved successfully!');\"\n },\n {\n \"title\": \"Error\",\n \"description\": \"For errors and failures:\",\n \"code\": \"toastStore.error('Failed to save changes. Please try again.');\"\n },\n {\n \"title\": \"Warning\",\n \"description\": \"For warnings and cautions:\",\n \"code\": \"toastStore.warning('Your session will expire in 5 minutes.');\"\n },\n {\n \"title\": \"Info\",\n \"description\": \"For informational messages:\",\n \"code\": \"toastStore.info('New version available. Refresh to update.');\"\n },\n {\n \"title\": \"Custom\",\n \"description\": \"For custom styled toasts:\",\n \"code\": \"toastStore.show({\\n message: 'Custom message',\\n type: 'success',\\n duration: 5000,\\n});\"\n },\n {\n \"title\": \"Form Submission\",\n \"code\": \"<script>\\n async function handleSubmit() {\\n try {\\n await saveForm();\\n toastStore.success('Form submitted successfully!');\\n } catch (error) {\\n toastStore.error('Failed to submit form. Please try again.');\\n }\\n }\\n</script>\"\n },\n {\n \"title\": \"Action with Undo\",\n \"code\": \"<script>\\n function handleDelete(item) {\\n deleteItem(item.id);\\n toastStore.show({\\n message: `\\\"${item.name}\\\" deleted`,\\n type: 'info',\\n action: {\\n label: 'Undo',\\n onClick: () => restoreItem(item),\\n },\\n });\\n }\\n</script>\"\n },\n {\n \"title\": \"Network Status\",\n \"code\": \"<script>\\n $effect(() => {\\n if (!navigator.onLine) {\\n toastStore.warning('You are offline. Changes will sync when connected.');\\n } else {\\n toastStore.success('Back online!');\\n }\\n });\\n</script>\"\n },\n {\n \"title\": \"Async Operation\",\n \"code\": \"<script>\\n async function handleExport() {\\n toastStore.info('Starting export...');\\n try {\\n await exportData();\\n toastStore.success('Export completed! Check your downloads.');\\n } catch {\\n toastStore.error('Export failed. Please try again.');\\n }\\n }\\n</script>\"\n },\n {\n \"title\": \"Copy to Clipboard\",\n \"code\": \"<script>\\n async function copyLink() {\\n await navigator.clipboard.writeText(shareUrl);\\n toastStore.success('Link copied to clipboard!');\\n }\\n</script>\\n\\n<Button onclick={copyLink}>Copy Link</Button>\"\n },\n {\n \"title\": \"Multiple Toasts\",\n \"description\": \"Multiple toasts stack and are dismissed independently:\",\n \"code\": \"<Button\\n onclick={() => {\\n toastStore.success('First message');\\n toastStore.info('Second message');\\n toastStore.warning('Third message');\\n }}\\n>\\n Show Multiple\\n</Button>\"\n }\n ],\n \"relatedComponents\": [\n \"Alert\",\n \"Dialog\"\n ]\n },\n {\n \"name\": \"Tooltip\",\n \"description\": \"Contextual information displayed on hover\",\n \"category\": \"overlay\",\n \"importPath\": \"@classic-homes/theme-svelte\",\n \"props\": [\n {\n \"name\": \"content\",\n \"type\": \"string\",\n \"default\": \"Required\",\n \"required\": false,\n \"description\": \"Text content of the tooltip\"\n },\n {\n \"name\": \"side\",\n \"type\": \"'top' | 'right' | 'bottom' | 'left'\",\n \"default\": \"'top'\",\n \"required\": false,\n \"description\": \"Preferred side for placement\"\n },\n {\n \"name\": \"align\",\n \"type\": \"'start' | 'center' | 'end'\",\n \"default\": \"'center'\",\n \"required\": false,\n \"description\": \"Alignment along the side\"\n },\n {\n \"name\": \"delayDuration\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"Delay before showing (ms)\"\n }\n ],\n \"variants\": [\n {\n \"name\": \"side\",\n \"values\": [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ],\n \"default\": \"top\"\n },\n {\n \"name\": \"align\",\n \"values\": [\n \"start\",\n \"center\",\n \"end\"\n ],\n \"default\": \"center\"\n }\n ],\n \"slots\": [\n {\n \"name\": \"children\",\n \"description\": \"Main content\",\n \"required\": false\n }\n ],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<Tooltip content=\\\"This is a tooltip\\\">\\n {#snippet children()}\\n <Button>Hover me</Button>\\n {/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Side\",\n \"description\": \"Control which side the tooltip appears on:\",\n \"code\": \"<Tooltip content=\\\"Top tooltip\\\" side=\\\"top\\\">\\n {#snippet children()}<Button>Top</Button>{/snippet}\\n</Tooltip>\\n\\n<Tooltip content=\\\"Right tooltip\\\" side=\\\"right\\\">\\n {#snippet children()}<Button>Right</Button>{/snippet}\\n</Tooltip>\\n\\n<Tooltip content=\\\"Bottom tooltip\\\" side=\\\"bottom\\\">\\n {#snippet children()}<Button>Bottom</Button>{/snippet}\\n</Tooltip>\\n\\n<Tooltip content=\\\"Left tooltip\\\" side=\\\"left\\\">\\n {#snippet children()}<Button>Left</Button>{/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Alignment\",\n \"description\": \"Adjust alignment along the side:\",\n \"code\": \"<Tooltip content=\\\"Aligned to start\\\" side=\\\"top\\\" align=\\\"start\\\">\\n {#snippet children()}<Button>Start</Button>{/snippet}\\n</Tooltip>\\n\\n<Tooltip content=\\\"Aligned to center\\\" side=\\\"top\\\" align=\\\"center\\\">\\n {#snippet children()}<Button>Center</Button>{/snippet}\\n</Tooltip>\\n\\n<Tooltip content=\\\"Aligned to end\\\" side=\\\"top\\\" align=\\\"end\\\">\\n {#snippet children()}<Button>End</Button>{/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Icon Button with Tooltip\",\n \"code\": \"<Tooltip content=\\\"Edit item\\\">\\n {#snippet children()}\\n <Button variant=\\\"ghost\\\" size=\\\"icon\\\" aria-label=\\\"Edit\\\">\\n <svg class=\\\"h-4 w-4\\\"><!-- edit icon --></svg>\\n </Button>\\n {/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Form Field Help\",\n \"code\": \"<div class=\\\"flex items-center gap-2\\\">\\n <Label for=\\\"password\\\">Password</Label>\\n <Tooltip content=\\\"Password must be at least 8 characters with one uppercase letter\\\">\\n {#snippet children()}\\n <svg class=\\\"h-4 w-4 text-muted-foreground cursor-help\\\">\\n <circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"10\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" fill=\\\"none\\\" />\\n <path d=\\\"M12 16v-4M12 8h.01\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" />\\n </svg>\\n {/snippet}\\n </Tooltip>\\n</div>\"\n },\n {\n \"title\": \"Truncated Text\",\n \"code\": \"<Tooltip content={fullText}>\\n {#snippet children()}\\n <span class=\\\"truncate max-w-xs block\\\">{fullText}</span>\\n {/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Disabled Button Explanation\",\n \"code\": \"<Tooltip content=\\\"You need admin permissions to perform this action\\\">\\n {#snippet children()}\\n <span>\\n <Button disabled>Delete</Button>\\n </span>\\n {/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Status Indicator\",\n \"code\": \"<Tooltip content=\\\"Online - Last seen 2 minutes ago\\\" side=\\\"right\\\">\\n {#snippet children()}\\n <span class=\\\"inline-flex h-2 w-2 rounded-full bg-green-500\\\"></span>\\n {/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Keyboard Shortcut\",\n \"code\": \"<Tooltip content=\\\"Save (Ctrl+S)\\\">\\n {#snippet children()}\\n <Button>Save</Button>\\n {/snippet}\\n</Tooltip>\"\n },\n {\n \"title\": \"Multiple Tooltips\",\n \"code\": \"<div class=\\\"flex gap-2\\\">\\n <Tooltip content=\\\"Bold\\\">\\n {#snippet children()}<Button variant=\\\"ghost\\\" size=\\\"icon\\\">B</Button>{/snippet}\\n </Tooltip>\\n <Tooltip content=\\\"Italic\\\">\\n {#snippet children()}<Button variant=\\\"ghost\\\" size=\\\"icon\\\">I</Button>{/snippet}\\n </Tooltip>\\n <Tooltip content=\\\"Underline\\\">\\n {#snippet children()}<Button variant=\\\"ghost\\\" size=\\\"icon\\\">U</Button>{/snippet}\\n </Tooltip>\\n</div>\"\n }\n ],\n \"relatedComponents\": [\n \"Dialog\",\n \"DropdownMenu\"\n ]\n },\n {\n \"name\": \"TreemapChart\",\n \"description\": \"Hierarchical data as nested rectangles\",\n \"category\": \"chart\",\n \"importPath\": \"@classic-homes/charts-svelte\",\n \"props\": [],\n \"variants\": [],\n \"slots\": [],\n \"events\": [],\n \"examples\": [\n {\n \"title\": \"Basic Usage\",\n \"code\": \"<script>\\n import { TreemapChart } from '@classic-homes/charts-svelte';\\n\\n const data = [\\n {\\n name: 'Frontend',\\n children: [\\n { name: 'React', value: 40 },\\n { name: 'Vue', value: 30 },\\n { name: 'Svelte', value: 20 },\\n ],\\n },\\n {\\n name: 'Backend',\\n children: [\\n { name: 'Node.js', value: 35 },\\n { name: 'Python', value: 25 },\\n ],\\n },\\n ];\\n</script>\\n\\n<TreemapChart title=\\\"Tech Stack\\\" {data} height={400} />\"\n },\n {\n \"title\": \"File System\",\n \"code\": \"<TreemapChart\\n title=\\\"Disk Usage\\\"\\n data={[\\n {\\n name: 'Documents',\\n children: [\\n { name: 'PDFs', value: 500 },\\n { name: 'Images', value: 300 },\\n { name: 'Videos', value: 2000 },\\n ],\\n },\\n {\\n name: 'Applications',\\n children: [\\n { name: 'Development', value: 1500 },\\n { name: 'Productivity', value: 800 },\\n ],\\n },\\n ]}\\n/>\"\n },\n {\n \"title\": \"Budget Breakdown\",\n \"code\": \"<TreemapChart\\n title=\\\"Department Budget\\\"\\n data={[\\n {\\n name: 'Engineering',\\n children: [\\n { name: 'Salaries', value: 500000 },\\n { name: 'Equipment', value: 100000 },\\n { name: 'Training', value: 50000 },\\n ],\\n },\\n {\\n name: 'Marketing',\\n children: [\\n { name: 'Advertising', value: 200000 },\\n { name: 'Events', value: 75000 },\\n ],\\n },\\n ]}\\n/>\"\n }\n ],\n \"relatedComponents\": [\n \"PieChart\",\n \"SankeyChart\"\n ]\n }\n ]\n}","{\n \"version\": \"0.1.0\",\n \"colors\": {\n \"brand\": [\n {\n \"name\": \"gray\",\n \"description\": \"Neutral gray scale\",\n \"shades\": {\n \"50\": \"#f9fafb\",\n \"100\": \"#f3f4f6\",\n \"200\": \"#e5e7eb\",\n \"300\": \"#d1d5db\",\n \"400\": \"#9ca3af\",\n \"500\": \"#7a7a7a\",\n \"600\": \"#4f4f4f\",\n \"700\": \"#3d3d3d\",\n \"800\": \"#2a2a2a\",\n \"900\": \"#1a1a1a\",\n \"950\": \"#0a0a0a\"\n }\n },\n {\n \"name\": \"red\",\n \"description\": \"Brand red for logo and accents\",\n \"shades\": {\n \"50\": \"#fef2f2\",\n \"100\": \"#fee2e2\",\n \"200\": \"#fecaca\",\n \"300\": \"#fca5a5\",\n \"400\": \"#f87171\",\n \"500\": \"#e02726\",\n \"600\": \"#c81f1e\",\n \"700\": \"#a91c22\",\n \"800\": \"#7f1d1d\",\n \"900\": \"#5c1010\",\n \"950\": \"#3d0a0a\"\n }\n },\n {\n \"name\": \"teal\",\n \"description\": \"Core 1 - Primary brand accent\",\n \"shades\": {\n \"50\": \"#f0fafa\",\n \"100\": \"#d9f2f3\",\n \"200\": \"#b3e6e7\",\n \"300\": \"#8dd9db\",\n \"400\": \"#67cccf\",\n \"500\": \"#3ba4a7\",\n \"600\": \"#2f8386\",\n \"700\": \"#236265\",\n \"800\": \"#184144\",\n \"900\": \"#0c2123\",\n \"950\": \"#061012\"\n }\n },\n {\n \"name\": \"navy\",\n \"description\": \"Core 2 - Professional dark blue\",\n \"shades\": {\n \"50\": \"#f0f4f6\",\n \"100\": \"#d9e4ea\",\n \"200\": \"#b3c9d5\",\n \"300\": \"#8daebf\",\n \"400\": \"#6793aa\",\n \"500\": \"#417895\",\n \"600\": \"#2d5467\",\n \"700\": \"#002e3f\",\n \"800\": \"#00242f\",\n \"900\": \"#001a20\",\n \"950\": \"#000d10\"\n }\n },\n {\n \"name\": \"plum\",\n \"description\": \"Core 3 - Rich burgundy/purple\",\n \"shades\": {\n \"50\": \"#f8f4f6\",\n \"100\": \"#ede2e8\",\n \"200\": \"#dbc5d1\",\n \"300\": \"#c9a8ba\",\n \"400\": \"#b78ba3\",\n \"500\": \"#a56e8c\",\n \"600\": \"#7f4968\",\n \"700\": \"#5e2c41\",\n \"800\": \"#4b2334\",\n \"900\": \"#381a27\",\n \"950\": \"#1c0d13\"\n }\n },\n {\n \"name\": \"sage\",\n \"description\": \"Core 4 - Muted green/gray\",\n \"shades\": {\n \"50\": \"#f7f7f5\",\n \"100\": \"#eaebe6\",\n \"200\": \"#dddfd5\",\n \"300\": \"#d0d3c5\",\n \"400\": \"#c3c7b5\",\n \"500\": \"#b6baa4\",\n \"600\": \"#969a82\",\n \"700\": \"#757968\",\n \"800\": \"#54574e\",\n \"900\": \"#333634\",\n \"950\": \"#1a1b1a\"\n }\n },\n {\n \"name\": \"stone\",\n \"description\": \"Collection - Stone gray\",\n \"shades\": {\n \"50\": \"#f7f7f7\",\n \"100\": \"#ebebeb\",\n \"200\": \"#d7d8d7\",\n \"300\": \"#c3c5c3\",\n \"400\": \"#afb2af\",\n \"500\": \"#9b9f9b\",\n \"600\": \"#878c87\",\n \"700\": \"#676d69\",\n \"800\": \"#4d524f\",\n \"900\": \"#333735\",\n \"950\": \"#1a1b1b\"\n }\n },\n {\n \"name\": \"forest\",\n \"description\": \"Collection - Forest green\",\n \"shades\": {\n \"50\": \"#f4f7f5\",\n \"100\": \"#e1ebe4\",\n \"200\": \"#c3d7c9\",\n \"300\": \"#a5c3ae\",\n \"400\": \"#87af93\",\n \"500\": \"#6aa275\",\n \"600\": \"#55825d\",\n \"700\": \"#406146\",\n \"800\": \"#2b412e\",\n \"900\": \"#162017\",\n \"950\": \"#0b100c\"\n }\n },\n {\n \"name\": \"lavender\",\n \"description\": \"Collection - Lavender purple\",\n \"shades\": {\n \"50\": \"#f7f6f8\",\n \"100\": \"#ece9ed\",\n \"200\": \"#d9d3db\",\n \"300\": \"#c6bdc9\",\n \"400\": \"#b3a7b7\",\n \"500\": \"#a091a5\",\n \"600\": \"#8d7b93\",\n \"700\": \"#695a75\",\n \"800\": \"#51445a\",\n \"900\": \"#392e3f\",\n \"950\": \"#1d1720\"\n }\n },\n {\n \"name\": \"sky\",\n \"description\": \"Collection - Sky blue\",\n \"shades\": {\n \"50\": \"#f4f8fb\",\n \"100\": \"#e2ecf3\",\n \"200\": \"#c5d9e7\",\n \"300\": \"#a8c6db\",\n \"400\": \"#8bb3cf\",\n \"500\": \"#6ea0c3\",\n \"600\": \"#5f91b8\",\n \"700\": \"#4c7493\",\n \"800\": \"#39576e\",\n \"900\": \"#263a49\",\n \"950\": \"#131d25\"\n }\n },\n {\n \"name\": \"deepTeal\",\n \"description\": \"Collection - Deep teal\",\n \"shades\": {\n \"50\": \"#f2f5f5\",\n \"100\": \"#dce5e4\",\n \"200\": \"#b9cbc9\",\n \"300\": \"#96b1ae\",\n \"400\": \"#739793\",\n \"500\": \"#507d78\",\n \"600\": \"#306966\",\n \"800\": \"#18332f\",\n \"900\": \"#0c1918\",\n \"950\": \"#060c0c\"\n }\n },\n {\n \"name\": \"charcoal\",\n \"description\": \"Collection - Charcoal gray\",\n \"shades\": {\n \"50\": \"#f5f5f5\",\n \"100\": \"#e6e6e6\",\n \"200\": \"#cccccc\",\n \"300\": \"#b3b3b3\",\n \"400\": \"#999999\",\n \"500\": \"#808080\",\n \"600\": \"#666666\",\n \"700\": \"#4d4d4d\",\n \"800\": \"#333333\",\n \"900\": \"#292424\",\n \"950\": \"#141212\"\n }\n }\n ],\n \"semantic\": {\n \"background\": {\n \"light\": \"white\",\n \"dark\": \"charcoal-900\"\n },\n \"foreground\": {\n \"light\": \"gray-950\",\n \"dark\": \"gray-50\"\n },\n \"primary\": {\n \"light\": \"red-700\",\n \"dark\": \"red-500\"\n },\n \"secondary\": {\n \"light\": \"gray-100\",\n \"dark\": \"gray-800\"\n },\n \"accent\": {\n \"light\": \"teal-500\",\n \"dark\": \"teal-500\"\n },\n \"muted\": {\n \"light\": \"gray-100\",\n \"dark\": \"gray-800\"\n },\n \"destructive\": {\n \"light\": \"red-500\",\n \"dark\": \"red-900\"\n },\n \"success\": {\n \"light\": \"forest-500\",\n \"dark\": \"forest-500\"\n },\n \"warning\": {\n \"light\": \"amber-500\",\n \"dark\": \"amber-500\"\n },\n \"info\": {\n \"light\": \"sky-500\",\n \"dark\": \"sky-500\"\n }\n }\n },\n \"spacing\": [\n {\n \"key\": \"0\",\n \"value\": \"0\",\n \"pixels\": \"0\"\n },\n {\n \"key\": \"px\",\n \"value\": \"1px\",\n \"pixels\": \"1px\"\n },\n {\n \"key\": \"1\",\n \"value\": \"0.25rem\",\n \"pixels\": \"4px\"\n },\n {\n \"key\": \"2\",\n \"value\": \"0.5rem\",\n \"pixels\": \"8px\"\n },\n {\n \"key\": \"3\",\n \"value\": \"0.75rem\",\n \"pixels\": \"12px\"\n },\n {\n \"key\": \"4\",\n \"value\": \"1rem\",\n \"pixels\": \"16px\"\n },\n {\n \"key\": \"5\",\n \"value\": \"1.25rem\",\n \"pixels\": \"20px\"\n },\n {\n \"key\": \"6\",\n \"value\": \"1.5rem\",\n \"pixels\": \"24px\"\n },\n {\n \"key\": \"8\",\n \"value\": \"2rem\",\n \"pixels\": \"32px\"\n },\n {\n \"key\": \"10\",\n \"value\": \"2.5rem\",\n \"pixels\": \"40px\"\n },\n {\n \"key\": \"12\",\n \"value\": \"3rem\",\n \"pixels\": \"48px\"\n },\n {\n \"key\": \"16\",\n \"value\": \"4rem\",\n \"pixels\": \"64px\"\n },\n {\n \"key\": \"20\",\n \"value\": \"5rem\",\n \"pixels\": \"80px\"\n },\n {\n \"key\": \"24\",\n \"value\": \"6rem\",\n \"pixels\": \"96px\"\n }\n ],\n \"typography\": {\n \"fontFamilies\": {\n \"sans\": \"Figtree, system-ui, sans-serif\",\n \"serif\": \"Source Serif Variable, Georgia, serif\",\n \"mono\": \"ui-monospace, SFMono-Regular, monospace\"\n },\n \"fontSizes\": {\n \"xs\": {\n \"size\": \"0.75rem\",\n \"lineHeight\": \"1rem\"\n },\n \"sm\": {\n \"size\": \"0.875rem\",\n \"lineHeight\": \"1.25rem\"\n },\n \"base\": {\n \"size\": \"1rem\",\n \"lineHeight\": \"1.5rem\"\n },\n \"lg\": {\n \"size\": \"1.125rem\",\n \"lineHeight\": \"1.75rem\"\n },\n \"xl\": {\n \"size\": \"1.25rem\",\n \"lineHeight\": \"1.75rem\"\n },\n \"2xl\": {\n \"size\": \"1.5rem\",\n \"lineHeight\": \"2rem\"\n },\n \"3xl\": {\n \"size\": \"1.875rem\",\n \"lineHeight\": \"2.25rem\"\n },\n \"4xl\": {\n \"size\": \"2.25rem\",\n \"lineHeight\": \"2.5rem\"\n }\n },\n \"fontWeights\": {\n \"thin\": 100,\n \"light\": 300,\n \"normal\": 400,\n \"medium\": 500,\n \"semibold\": 600,\n \"bold\": 700,\n \"black\": 900\n }\n },\n \"borderRadius\": {\n \"none\": \"0\",\n \"sm\": \"0.125rem\",\n \"DEFAULT\": \"0.5rem\",\n \"md\": \"0.375rem\",\n \"lg\": \"0.5rem\",\n \"xl\": \"0.75rem\",\n \"2xl\": \"1rem\",\n \"full\": \"9999px\"\n },\n \"boxShadow\": {\n \"sm\": \"0 1px 2px rgba(0,0,0,0.05)\",\n \"DEFAULT\": \"0 1px 3px rgba(0,0,0,0.1)\",\n \"md\": \"0 4px 6px rgba(0,0,0,0.1)\",\n \"lg\": \"0 10px 15px rgba(0,0,0,0.1)\",\n \"xl\": \"0 20px 25px rgba(0,0,0,0.1)\"\n }\n}","/**\n * Token Resources\n *\n * Provides access to design token data.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport tokenDefinitions from '../data/token-definitions.json' with { type: 'json' };\nimport type { TokenDefinitions } from '../types.js';\n\nconst tokens = tokenDefinitions as TokenDefinitions;\n\n/**\n * Register token-related resources\n */\nexport function registerTokenResources(server: McpServer): void {\n // All tokens\n server.resource('tokens://all', 'tokens://all', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(tokens, null, 2),\n },\n ],\n }));\n\n // Color tokens\n server.resource('tokens://colors', 'tokens://colors', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(tokens.colors, null, 2),\n },\n ],\n }));\n\n // Spacing tokens\n server.resource('tokens://spacing', 'tokens://spacing', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(tokens.spacing, null, 2),\n },\n ],\n }));\n\n // Typography tokens\n server.resource('tokens://typography', 'tokens://typography', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(tokens.typography, null, 2),\n },\n ],\n }));\n}\n","/**\n * Layout Resources\n *\n * Provides access to layout and form pattern data.\n */\n\nimport { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport patternLibrary from '../data/pattern-library.json' with { type: 'json' };\nimport type { PatternLibrary } from '../types.js';\n\nconst patterns = patternLibrary as unknown as PatternLibrary;\n\n/**\n * Register layout and pattern resources\n */\nexport function registerLayoutResources(server: McpServer): void {\n // All patterns\n server.resource('All Patterns', 'patterns://all', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(patterns, null, 2),\n },\n ],\n }));\n\n // Layout patterns\n server.resource('Layout Patterns', 'patterns://layouts', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(patterns.layouts, null, 2),\n },\n ],\n }));\n\n // Form patterns\n server.resource('Form Patterns', 'patterns://forms', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(patterns.forms, null, 2),\n },\n ],\n }));\n\n // Individual pattern by ID\n server.resource(\n 'Pattern Details',\n new ResourceTemplate('patterns://{id}', { list: undefined }),\n async (uri, params) => {\n const id = params.id as string;\n const layout = patterns.layouts.find((l) => l.id === id);\n const form = patterns.forms.find((f) => f.id === id);\n const pattern = layout || form;\n\n if (!pattern) {\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify({ error: `Pattern \"${id}\" not found` }),\n },\n ],\n };\n }\n\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(pattern, null, 2),\n },\n ],\n };\n }\n );\n}\n","{\n \"version\": \"0.1.0\",\n \"layouts\": [\n {\n \"id\": \"dashboard-page\",\n \"name\": \"Dashboard Page\",\n \"description\": \"Full dashboard layout with sidebar navigation\",\n \"useCase\": \"Authenticated dashboard pages\",\n \"components\": [\n \"DashboardLayout\",\n \"Sidebar\",\n \"Header\"\n ],\n \"props\": {\n \"navigation\": \"NavSection[]\",\n \"user\": \"User\",\n \"sidebarVariant\": \"'light' | 'dark'\"\n },\n \"example\": \"<script lang=\\\"ts\\\">\\n import { DashboardLayout } from '@classic-homes/theme-svelte';\\n import type { NavSection, User } from '@classic-homes/theme-svelte';\\n\\n const navigation: NavSection[] = [\\n {\\n id: 'main',\\n items: [\\n { id: 'dashboard', name: 'Dashboard', href: '/dashboard', icon: 'home' },\\n { id: 'settings', name: 'Settings', href: '/settings', icon: 'settings' },\\n ],\\n },\\n ];\\n\\n const user: User = {\\n id: '1',\\n name: 'John Doe',\\n email: 'john@example.com',\\n };\\n</script>\\n\\n<DashboardLayout {navigation} {user} appName=\\\"My App\\\">\\n <h1>Welcome to Dashboard</h1>\\n</DashboardLayout>\"\n },\n {\n \"id\": \"public-page\",\n \"name\": \"Public Page\",\n \"description\": \"Public-facing page with header and footer\",\n \"useCase\": \"Marketing pages, landing pages\",\n \"components\": [\n \"PublicLayout\",\n \"Header\",\n \"Footer\"\n ],\n \"props\": {\n \"navigation\": \"NavItem[]\",\n \"footerLinks\": \"NavSection[]\",\n \"copyright\": \"string\"\n },\n \"example\": \"<script lang=\\\"ts\\\">\\n import { PublicLayout } from '@classic-homes/theme-svelte';\\n import type { NavItem } from '@classic-homes/theme-svelte';\\n\\n const navigation: NavItem[] = [\\n { id: 'home', name: 'Home', href: '/' },\\n { id: 'about', name: 'About', href: '/about' },\\n { id: 'contact', name: 'Contact', href: '/contact' },\\n ];\\n</script>\\n\\n<PublicLayout {navigation} showFooter copyright=\\\"© 2025 Company\\\">\\n <main>Page content</main>\\n</PublicLayout>\"\n },\n {\n \"id\": \"auth-page\",\n \"name\": \"Auth Page\",\n \"description\": \"Centered layout for authentication forms\",\n \"useCase\": \"Login, signup, password reset pages\",\n \"components\": [\n \"AuthLayout\"\n ],\n \"props\": {\n \"logoSubtitle\": \"string\",\n \"backgroundVariant\": \"'default' | 'gradient' | 'pattern'\",\n \"maxWidth\": \"'sm' | 'md' | 'lg'\"\n },\n \"example\": \"<script lang=\\\"ts\\\">\\n import { AuthLayout, Button, FormField } from '@classic-homes/theme-svelte';\\n</script>\\n\\n<AuthLayout logoSubtitle=\\\"Sign in to your account\\\">\\n <form>\\n <FormField label=\\\"Email\\\" type=\\\"email\\\" name=\\\"email\\\" />\\n <FormField label=\\\"Password\\\" type=\\\"password\\\" name=\\\"password\\\" />\\n <Button type=\\\"submit\\\" class=\\\"w-full\\\">Sign In</Button>\\n </form>\\n</AuthLayout>\"\n },\n {\n \"id\": \"error-page\",\n \"name\": \"Error Page\",\n \"description\": \"Centered error page layout\",\n \"useCase\": \"404, 500, and other error pages\",\n \"components\": [\n \"ErrorLayout\"\n ],\n \"props\": {\n \"statusCode\": \"number\",\n \"title\": \"string\",\n \"description\": \"string\"\n },\n \"example\": \"<script lang=\\\"ts\\\">\\n import { ErrorLayout } from '@classic-homes/theme-svelte';\\n</script>\\n\\n<ErrorLayout\\n statusCode={404}\\n title=\\\"Page Not Found\\\"\\n description=\\\"The page you're looking for doesn't exist.\\\"\\n showHomeButton\\n/>\"\n },\n {\n \"id\": \"form-page\",\n \"name\": \"Form Page\",\n \"description\": \"Form-focused page with optional sidebar\",\n \"useCase\": \"Multi-step forms, data entry\",\n \"components\": [\n \"FormPageLayout\"\n ],\n \"props\": {\n \"title\": \"string\",\n \"description\": \"string\",\n \"helpText\": \"string\"\n },\n \"example\": \"<script lang=\\\"ts\\\">\\n import { FormPageLayout, FormField, Button } from '@classic-homes/theme-svelte';\\n</script>\\n\\n<FormPageLayout\\n title=\\\"Create Account\\\"\\n description=\\\"Fill in the form to create your account\\\"\\n helpText=\\\"Need help? Contact support.\\\"\\n>\\n <form>\\n <!-- Form fields -->\\n </form>\\n</FormPageLayout>\"\n }\n ],\n \"forms\": [\n {\n \"id\": \"login-form\",\n \"name\": \"Login Form\",\n \"description\": \"Standard login form with email and password\",\n \"schema\": \"loginSchema\",\n \"components\": [\n \"FormField\",\n \"Button\",\n \"useForm\"\n ],\n \"example\": \"<script lang=\\\"ts\\\">\\n import { FormField, Button, useForm, loginSchema } from '@classic-homes/theme-svelte';\\n\\n const form = useForm({\\n schema: loginSchema,\\n initialValues: { email: '', password: '' },\\n onSubmit: async (data) => {\\n // Handle login\\n },\\n });\\n</script>\\n\\n<form onsubmit={form.handleSubmit}>\\n <FormField\\n label=\\\"Email\\\"\\n type=\\\"email\\\"\\n name=\\\"email\\\"\\n value={form.data.email}\\n error={form.errors.email}\\n onValueChange={(v) => form.setField('email', v)}\\n />\\n <FormField\\n label=\\\"Password\\\"\\n type=\\\"password\\\"\\n name=\\\"password\\\"\\n value={form.data.password}\\n error={form.errors.password}\\n onValueChange={(v) => form.setField('password', v)}\\n />\\n <Button type=\\\"submit\\\" loading={form.isSubmitting}>Sign In</Button>\\n</form>\"\n },\n {\n \"id\": \"registration-form\",\n \"name\": \"Registration Form\",\n \"description\": \"User registration form with validation\",\n \"schema\": \"registerSchema\",\n \"components\": [\n \"FormField\",\n \"Button\",\n \"useForm\"\n ],\n \"example\": \"<script lang=\\\"ts\\\">\\n import { FormField, Button, useForm, registerSchema } from '@classic-homes/theme-svelte';\\n\\n const form = useForm({\\n schema: registerSchema,\\n initialValues: { email: '', password: '', confirmPassword: '', fullName: '' },\\n onSubmit: async (data) => {\\n // Handle registration\\n },\\n });\\n</script>\\n\\n<form onsubmit={form.handleSubmit}>\\n <FormField label=\\\"Full Name\\\" name=\\\"fullName\\\" />\\n <FormField label=\\\"Email\\\" type=\\\"email\\\" name=\\\"email\\\" />\\n <FormField label=\\\"Password\\\" type=\\\"password\\\" name=\\\"password\\\" />\\n <FormField label=\\\"Confirm Password\\\" type=\\\"password\\\" name=\\\"confirmPassword\\\" />\\n <Button type=\\\"submit\\\" loading={form.isSubmitting}>Create Account</Button>\\n</form>\"\n },\n {\n \"id\": \"contact-form\",\n \"name\": \"Contact Form\",\n \"description\": \"Contact form with name, email, and message\",\n \"components\": [\n \"FormField\",\n \"Textarea\",\n \"Button\",\n \"useForm\"\n ],\n \"example\": \"<script lang=\\\"ts\\\">\\n import { FormField, Button, useForm } from '@classic-homes/theme-svelte';\\n import { z } from 'zod';\\n\\n const contactSchema = z.object({\\n name: z.string().min(2),\\n email: z.string().email(),\\n message: z.string().min(10),\\n });\\n\\n const form = useForm({\\n schema: contactSchema,\\n initialValues: { name: '', email: '', message: '' },\\n onSubmit: async (data) => {\\n // Handle contact form\\n },\\n });\\n</script>\\n\\n<form onsubmit={form.handleSubmit}>\\n <FormField label=\\\"Name\\\" name=\\\"name\\\" />\\n <FormField label=\\\"Email\\\" type=\\\"email\\\" name=\\\"email\\\" />\\n <FormField label=\\\"Message\\\" type=\\\"textarea\\\" name=\\\"message\\\" />\\n <Button type=\\\"submit\\\">Send Message</Button>\\n</form>\"\n }\n ]\n}","{\n \"auth\": [\n {\n \"name\": \"emailSchema\",\n \"description\": \"Email validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"passwordSchema\",\n \"description\": \"Strong password (8+ chars, mixed case, numbers, special)\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"loginPasswordSchema\",\n \"description\": \"Simpler password validation for login\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"usernameSchema\",\n \"description\": \"Username validation (3-30 chars, alphanumeric)\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"fullNameSchema\",\n \"description\": \"Full name validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"phoneSchema\",\n \"description\": \"Phone number validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"mfaCodeSchema\",\n \"description\": \"MFA code validation (6 digits)\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"loginSchema\",\n \"description\": \"Complete login form schema\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"registerSchema\",\n \"description\": \"Complete registration form schema\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"forgotPasswordSchema\",\n \"description\": \"Forgot password form schema\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"resetPasswordSchema\",\n \"description\": \"Reset password form schema\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"changePasswordSchema\",\n \"description\": \"Change password form schema\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n }\n ],\n \"common\": [\n {\n \"name\": \"nonEmptyString\",\n \"description\": \"Non-empty string validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"trimmedString\",\n \"description\": \"Trimmed string\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"urlSchema\",\n \"description\": \"URL validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"slugSchema\",\n \"description\": \"URL slug validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"positiveInt\",\n \"description\": \"Positive integer validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"nonNegativeInt\",\n \"description\": \"Non-negative integer\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"percentageSchema\",\n \"description\": \"Percentage (0-100)\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"priceSchema\",\n \"description\": \"Price validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"isoDateSchema\",\n \"description\": \"ISO date string validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"futureDateSchema\",\n \"description\": \"Future date validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"pastDateSchema\",\n \"description\": \"Past date validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n }\n ],\n \"file\": [\n {\n \"name\": \"maxFileSize\",\n \"description\": \"File size limit validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"allowedFileTypes\",\n \"description\": \"File type validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"imageFileSchema\",\n \"description\": \"Image file validation\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n }\n ],\n \"api\": [\n {\n \"name\": \"apiResponseSchema\",\n \"description\": \"Standard API response schema\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n },\n {\n \"name\": \"paginatedResponseSchema\",\n \"description\": \"Paginated API response\",\n \"importPath\": \"@classic-homes/theme-svelte\"\n }\n ]\n}","/**\n * Schema Resources\n *\n * Provides access to validation schema information.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport schemaCatalog from '../data/schema-catalog.json' with { type: 'json' };\nimport type { SchemaCatalog } from '../types.js';\n\nconst schemas = schemaCatalog as SchemaCatalog;\n\n/**\n * Register schema-related resources\n */\nexport function registerSchemaResources(server: McpServer): void {\n // All schemas\n server.resource('schemas://all', 'schemas://all', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(schemas, null, 2),\n },\n ],\n }));\n\n // Auth schemas\n server.resource('schemas://auth', 'schemas://auth', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(schemas.auth, null, 2),\n },\n ],\n }));\n\n // Common schemas\n server.resource('schemas://common', 'schemas://common', async (uri) => ({\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(schemas.common, null, 2),\n },\n ],\n }));\n}\n","/**\n * MCP Resources Registration\n *\n * Resources provide read-only access to design system documentation.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { registerComponentResources } from './components.js';\nimport { registerTokenResources } from './tokens.js';\nimport { registerLayoutResources } from './layouts.js';\nimport { registerSchemaResources } from './schemas.js';\n\n/**\n * Register all resources with the MCP server\n */\nexport function registerResources(server: McpServer): void {\n registerComponentResources(server);\n registerTokenResources(server);\n registerLayoutResources(server);\n registerSchemaResources(server);\n}\n","/**\n * Search Components Tool\n *\n * Allows AI models to search for components by name, category, or functionality.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\nimport componentCatalog from '../data/component-catalog.json' with { type: 'json' };\nimport type { ComponentCatalog } from '../types.js';\n\nconst catalog = componentCatalog as ComponentCatalog;\n\nconst SearchComponentsSchema = z.object({\n query: z.string().describe('Search query (component name, description, or functionality)'),\n category: z\n .enum([\n 'core',\n 'form',\n 'layout',\n 'feedback',\n 'data',\n 'overlay',\n 'navigation',\n 'branding',\n 'chart',\n ])\n .optional()\n .describe('Filter by component category'),\n limit: z.number().min(1).max(50).default(10).describe('Maximum number of results'),\n});\n\n/**\n * Register the search_components tool\n */\nexport function registerSearchComponentsTool(server: McpServer): void {\n server.tool(\n 'search_components',\n 'Search for components by name, category, or functionality',\n SearchComponentsSchema.shape,\n async (params) => {\n const { query, category, limit } = SearchComponentsSchema.parse(params);\n const queryLower = query.toLowerCase();\n\n const results = catalog.components\n .filter((component) => {\n // Category filter\n if (category && component.category !== category) {\n return false;\n }\n\n // Search in name, description, and tags\n const searchableText = [\n component.name,\n component.description,\n ...component.props.map((p) => p.name),\n ...component.relatedComponents,\n ]\n .join(' ')\n .toLowerCase();\n\n return searchableText.includes(queryLower);\n })\n .slice(0, limit)\n .map((c) => ({\n name: c.name,\n category: c.category,\n description: c.description,\n importPath: c.importPath,\n propsCount: c.props.length,\n variants: c.variants.map((v) => v.name),\n }));\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(\n {\n query,\n category: category || 'all',\n resultCount: results.length,\n results,\n hint:\n results.length === 0\n ? 'Try broader search terms or remove the category filter'\n : results.length === limit\n ? `Showing first ${limit} results. Refine your search for more specific results.`\n : undefined,\n },\n null,\n 2\n ),\n },\n ],\n };\n }\n );\n}\n","/**\n * Get Component Props Tool\n *\n * Provides detailed prop definitions for a specific component.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\nimport componentCatalog from '../data/component-catalog.json' with { type: 'json' };\nimport type { ComponentCatalog } from '../types.js';\n\nconst catalog = componentCatalog as ComponentCatalog;\n\nconst GetComponentPropsSchema = z.object({\n componentName: z.string().describe('Name of the component (e.g., \"Button\", \"DashboardLayout\")'),\n includeExamples: z.boolean().default(true).describe('Whether to include usage examples'),\n});\n\n/**\n * Register the get_component_props tool\n */\nexport function registerGetComponentPropsTool(server: McpServer): void {\n server.tool(\n 'get_component_props',\n 'Get detailed prop definitions for a specific component',\n GetComponentPropsSchema.shape,\n async (params) => {\n const { componentName, includeExamples } = GetComponentPropsSchema.parse(params);\n\n const component = catalog.components.find(\n (c) => c.name.toLowerCase() === componentName.toLowerCase()\n );\n\n if (!component) {\n // Suggest similar components\n const suggestions = catalog.components\n .filter((c) => c.name.toLowerCase().includes(componentName.toLowerCase().slice(0, 3)))\n .slice(0, 5)\n .map((c) => c.name);\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(\n {\n error: `Component \"${componentName}\" not found`,\n suggestions: suggestions.length > 0 ? suggestions : undefined,\n hint: 'Use search_components tool to find available components',\n },\n null,\n 2\n ),\n },\n ],\n };\n }\n\n const result: Record<string, unknown> = {\n name: component.name,\n description: component.description,\n category: component.category,\n importPath: component.importPath,\n props: component.props,\n variants: component.variants,\n slots: component.slots,\n events: component.events,\n accessibility: component.accessibility,\n relatedComponents: component.relatedComponents,\n };\n\n if (includeExamples) {\n result.examples = component.examples;\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result, null, 2),\n },\n ],\n };\n }\n );\n}\n","/**\n * Suggest Pattern Tool\n *\n * Recommends patterns for common use cases.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\nimport patternLibrary from '../data/pattern-library.json' with { type: 'json' };\nimport type { PatternLibrary } from '../types.js';\n\nconst patterns = patternLibrary as unknown as PatternLibrary;\n\nconst SuggestPatternSchema = z.object({\n useCase: z\n .enum([\n // Layout patterns\n 'dashboard-page',\n 'public-page',\n 'auth-page',\n 'error-page',\n 'form-page',\n // Form patterns\n 'login-form',\n 'registration-form',\n 'contact-form',\n ])\n .describe('The use case you need a pattern for'),\n requirements: z.array(z.string()).optional().describe('Additional requirements or constraints'),\n});\n\n/**\n * Register the suggest_pattern tool\n */\nexport function registerSuggestPatternTool(server: McpServer): void {\n server.tool(\n 'suggest_pattern',\n 'Get recommended patterns for common use cases',\n SuggestPatternSchema.shape,\n async (params) => {\n const { useCase, requirements } = SuggestPatternSchema.parse(params);\n\n // Find matching layout or form pattern\n const layout = patterns.layouts.find((l) => l.id === useCase || l.useCase === useCase);\n const form = patterns.forms.find((f) => f.id === useCase);\n const pattern = layout || form;\n\n if (!pattern) {\n // Suggest available patterns\n const availablePatterns = [\n ...patterns.layouts.map((l) => ({ id: l.id, type: 'layout', name: l.name })),\n ...patterns.forms.map((f) => ({ id: f.id, type: 'form', name: f.name })),\n ];\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(\n {\n error: `No pattern found for use case \"${useCase}\"`,\n availablePatterns,\n hint: 'Use one of the available pattern IDs',\n },\n null,\n 2\n ),\n },\n ],\n };\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(\n {\n pattern,\n requirements: requirements || [],\n implementationTips: [\n 'Import components from @classic-homes/theme-svelte',\n 'Use the provided example as a starting point',\n 'Customize props based on your specific requirements',\n 'Follow accessibility guidelines in component documentation',\n ],\n },\n null,\n 2\n ),\n },\n ],\n };\n }\n );\n}\n","/**\n * Validate Usage Tool\n *\n * Validates if component usage follows design system guidelines.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\nimport componentCatalog from '../data/component-catalog.json' with { type: 'json' };\nimport type { ComponentCatalog } from '../types.js';\n\nconst catalog = componentCatalog as ComponentCatalog;\n\nconst ValidateUsageSchema = z.object({\n componentName: z.string().describe('Name of the component being used'),\n props: z.record(z.unknown()).describe('Props being passed to the component'),\n context: z\n .string()\n .optional()\n .describe('Where the component is being used (e.g., \"inside a form\", \"in modal\")'),\n});\n\ninterface ValidationIssue {\n type: 'error' | 'warning' | 'suggestion';\n message: string;\n prop?: string;\n}\n\n/**\n * Register the validate_usage tool\n */\nexport function registerValidateUsageTool(server: McpServer): void {\n server.tool(\n 'validate_component_usage',\n 'Validate if component usage follows design system guidelines',\n ValidateUsageSchema.shape,\n async (params) => {\n const { componentName, props, context } = ValidateUsageSchema.parse(params);\n\n const component = catalog.components.find(\n (c) => c.name.toLowerCase() === componentName.toLowerCase()\n );\n\n if (!component) {\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(\n {\n valid: false,\n errors: [{ type: 'error', message: `Unknown component \"${componentName}\"` }],\n },\n null,\n 2\n ),\n },\n ],\n };\n }\n\n const issues: ValidationIssue[] = [];\n\n // Check for unknown props\n const knownProps = new Set(component.props.map((p) => p.name));\n for (const propName of Object.keys(props)) {\n if (!knownProps.has(propName) && propName !== 'class' && propName !== 'children') {\n issues.push({\n type: 'warning',\n message: `Unknown prop \"${propName}\" - not in component API`,\n prop: propName,\n });\n }\n }\n\n // Check for required props\n for (const propDef of component.props) {\n if (propDef.required && !(propDef.name in props)) {\n issues.push({\n type: 'error',\n message: `Missing required prop \"${propDef.name}\"`,\n prop: propDef.name,\n });\n }\n }\n\n // Check variant values\n for (const variant of component.variants) {\n const propValue = props[variant.name];\n if (propValue !== undefined && !variant.values.includes(String(propValue))) {\n issues.push({\n type: 'error',\n message: `Invalid value \"${propValue}\" for \"${variant.name}\". Valid values: ${variant.values.join(', ')}`,\n prop: variant.name,\n });\n }\n }\n\n // Context-specific suggestions\n if (context) {\n if (context.includes('form') && component.name === 'Button') {\n const buttonType = props['type'];\n if (!buttonType) {\n issues.push({\n type: 'suggestion',\n message: 'Consider setting type=\"submit\" for form submission buttons',\n prop: 'type',\n });\n }\n }\n\n if (context.includes('modal') || context.includes('dialog')) {\n if (component.category === 'layout') {\n issues.push({\n type: 'warning',\n message: `Layout component \"${component.name}\" is typically not used inside modals`,\n });\n }\n }\n }\n\n // Accessibility checks\n if (component.name === 'Button' && props['size'] === 'icon' && !props['aria-label']) {\n issues.push({\n type: 'error',\n message: 'Icon-only buttons must have an aria-label for accessibility',\n prop: 'aria-label',\n });\n }\n\n const errors = issues.filter((i) => i.type === 'error');\n const warnings = issues.filter((i) => i.type === 'warning');\n const suggestions = issues.filter((i) => i.type === 'suggestion');\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(\n {\n valid: errors.length === 0,\n component: component.name,\n errors,\n warnings,\n suggestions,\n propCount: Object.keys(props).length,\n availableProps: component.props.map((p) => p.name),\n },\n null,\n 2\n ),\n },\n ],\n };\n }\n );\n}\n","/**\n * MCP Tools Registration\n *\n * Tools allow AI models to query the design system.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { registerSearchComponentsTool } from './searchComponents.js';\nimport { registerGetComponentPropsTool } from './getComponentProps.js';\nimport { registerSuggestPatternTool } from './suggestPattern.js';\nimport { registerValidateUsageTool } from './validateUsage.js';\n\n/**\n * Register all tools with the MCP server\n */\nexport function registerTools(server: McpServer): void {\n registerSearchComponentsTool(server);\n registerGetComponentPropsTool(server);\n registerSuggestPatternTool(server);\n registerValidateUsageTool(server);\n}\n","/**\n * Build Form Prompt\n *\n * Helps create forms following Classic Theme patterns.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\n\nconst BuildFormSchema = z.object({\n formType: z.string().describe('Type of form (login, registration, contact, settings, custom)'),\n fields: z\n .string()\n .describe('Comma-separated list of field names (e.g., \"email, password, name\")'),\n includeValidation: z\n .string()\n .optional()\n .describe('Whether to include Zod validation schema (true/false)'),\n});\n\n/**\n * Register the build_form prompt\n */\nexport function registerBuildFormPrompt(server: McpServer): void {\n server.prompt(\n 'build_form',\n 'Create a form following Classic Theme patterns with proper validation',\n BuildFormSchema.shape,\n async (params) => {\n const parsed = BuildFormSchema.parse(params);\n const formType = parsed.formType || 'custom';\n const fields = (parsed.fields || '').split(',').map((f: string) => f.trim());\n const shouldIncludeValidation = parsed.includeValidation !== 'false';\n\n const fieldList = fields.map((f) => `- ${f}`).join('\\n');\n\n return {\n messages: [\n {\n role: 'user',\n content: {\n type: 'text',\n text: `Create a ${formType} form with these fields:\n${fieldList}\n\nRequirements:\n- Import components from '@classic-homes/theme-svelte'\n- Use the FormField component for each field\n- Use the useForm composable for state management\n${shouldIncludeValidation ? '- Include Zod schema validation using schemas from @classic-homes/theme-svelte' : ''}\n- Handle form submission with loading state\n- Show error messages for validation failures\n- Follow Svelte 5 runes syntax ($props, $state, $derived)\n\nAvailable form components:\n- FormField: Combines label, input, error message, and hint text\n- Input: Text input with value binding\n- Textarea: Multi-line text input\n- Select: Dropdown selection\n- Checkbox: Boolean checkbox\n- RadioGroup: Radio button group\n- DateTimePicker: Date and time selection\n- FileUpload: File upload with progress\n\nAvailable validation schemas (from @classic-homes/theme-svelte):\n- emailSchema: Email validation\n- passwordSchema: Strong password (8+ chars, mixed case, numbers, special)\n- loginPasswordSchema: Simpler password for login\n- usernameSchema: Username validation\n- fullNameSchema: Name validation\n- phoneSchema: Phone number validation\n\nExample structure:\n\\`\\`\\`svelte\n<script lang=\"ts\">\n import { FormField, Button, useForm } from '@classic-homes/theme-svelte';\n import { z } from 'zod';\n\n const schema = z.object({\n // field definitions\n });\n\n const form = useForm({\n schema,\n initialValues: { /* ... */ },\n onSubmit: async (data) => { /* ... */ },\n });\n</script>\n\n<form onsubmit={form.handleSubmit}>\n <!-- FormField components -->\n <Button type=\"submit\" loading={form.isSubmitting}>Submit</Button>\n</form>\n\\`\\`\\``,\n },\n },\n ],\n };\n }\n );\n}\n","/**\n * Layout Page Prompt\n *\n * Helps create page layouts using Classic Theme components.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\n\nconst LayoutPageSchema = z.object({\n pageType: z.string().describe('Type of page (dashboard, public, auth, error, form)'),\n features: z\n .string()\n .optional()\n .describe('Comma-separated features needed (e.g., \"sidebar, search, user-menu\")'),\n});\n\n/**\n * Register the layout_page prompt\n */\nexport function registerLayoutPagePrompt(server: McpServer): void {\n server.prompt(\n 'layout_page',\n 'Create a page layout using Classic Theme layout components',\n LayoutPageSchema.shape,\n async (params) => {\n const parsed = LayoutPageSchema.parse(params);\n const pageType = parsed.pageType || 'public';\n const features = (parsed.features || '')\n .split(',')\n .map((f: string) => f.trim())\n .filter(Boolean);\n\n const featureList = features.length > 0 ? `With features: ${features.join(', ')}` : '';\n\n const layoutGuide: Record<string, string> = {\n dashboard: `DashboardLayout - For authenticated dashboard pages with sidebar navigation\n- Props: navigation (NavSection[]), user (User), appName, pageTitle, sidebarVariant, headerSearch\n- Supports: collapsible sidebar, user menu, quick links, mobile responsive`,\n\n public: `PublicLayout - For public-facing pages with header and footer\n- Props: navigation (NavItem[]), footerLinks (NavSection[]), copyright, headerSearch\n- Supports: responsive header nav, footer link sections, logo customization`,\n\n auth: `AuthLayout - For authentication pages (login, signup, etc.)\n- Props: logoSubtitle, logoEnvironment, footerLinks, backgroundVariant, maxWidth\n- Supports: centered card layout, decorative backgrounds, footer links`,\n\n error: `ErrorLayout - For error pages (404, 500, etc.)\n- Props: statusCode, title, description, showHomeButton, showBackButton, illustration\n- Supports: custom error illustrations, action buttons, status codes`,\n\n form: `FormPageLayout - For multi-step forms or data entry pages\n- Props: title, description, helpText, showNotices\n- Supports: optional sidebar, notices section, help text`,\n };\n\n const layoutInfo = layoutGuide[pageType] || layoutGuide.public;\n\n return {\n messages: [\n {\n role: 'user',\n content: {\n type: 'text',\n text: `Create a ${pageType} page layout. ${featureList}\n\nLayout Component to Use:\n${layoutInfo}\n\nRequirements:\n- Import from '@classic-homes/theme-svelte'\n- Follow Svelte 5 runes syntax\n- Use TypeScript for type safety\n- Import and use proper types (NavSection, NavItem, User, etc.)\n\nKey Types:\n\\`\\`\\`typescript\ninterface NavItem {\n id: string;\n name: string;\n href?: string;\n icon?: string;\n badge?: string | number;\n children?: NavItem[];\n active?: boolean;\n}\n\ninterface NavSection {\n id: string;\n title?: string;\n items: NavItem[];\n}\n\ninterface User {\n id: string;\n name: string;\n email?: string;\n avatar?: string;\n roles?: string[];\n}\n\\`\\`\\`\n\nExample for ${pageType}Layout:\n\\`\\`\\`svelte\n<script lang=\"ts\">\n import { ${pageType.charAt(0).toUpperCase() + pageType.slice(1)}Layout } from '@classic-homes/theme-svelte';\n import type { NavSection, NavItem, User } from '@classic-homes/theme-svelte';\n\n // Define navigation, user data, etc.\n</script>\n\n<${pageType.charAt(0).toUpperCase() + pageType.slice(1)}Layout\n {/* props */}\n>\n <!-- Page content here -->\n</${pageType.charAt(0).toUpperCase() + pageType.slice(1)}Layout>\n\\`\\`\\``,\n },\n },\n ],\n };\n }\n );\n}\n","/**\n * Component Usage Prompt\n *\n * Helps generate correct component usage with proper props.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\nimport componentCatalog from '../data/component-catalog.json' with { type: 'json' };\nimport type { ComponentCatalog } from '../types.js';\n\nconst catalog = componentCatalog as ComponentCatalog;\n\nconst ComponentUsageSchema = z.object({\n componentName: z.string().describe('Name of the component (e.g., Button, Card, Select)'),\n variant: z.string().optional().describe('Desired variant (optional)'),\n useCase: z.string().optional().describe('Brief description of use case'),\n});\n\n/**\n * Register the component_usage prompt\n */\nexport function registerComponentUsagePrompt(server: McpServer): void {\n server.prompt(\n 'component_usage',\n 'Generate correct usage for a Classic Theme component',\n ComponentUsageSchema.shape,\n async (params) => {\n const parsed = ComponentUsageSchema.parse(params);\n const componentName = parsed.componentName || 'Button';\n const variant = parsed.variant || '';\n const useCase = parsed.useCase || '';\n\n const component = catalog.components.find(\n (c) => c.name.toLowerCase() === componentName.toLowerCase()\n );\n\n let componentInfo = '';\n if (component) {\n componentInfo = `\nComponent: ${component.name}\nDescription: ${component.description}\nCategory: ${component.category}\n\nProps:\n${component.props.map((p) => `- ${p.name}: ${p.type} ${p.required ? '(required)' : `(default: ${p.default || 'undefined'})`} - ${p.description}`).join('\\n')}\n\nVariants:\n${component.variants.map((v) => `- ${v.name}: ${v.values.join(' | ')} (default: ${v.default || v.values[0]})`).join('\\n')}\n\nExamples:\n${component.examples.map((e) => `### ${e.title}\\n\\`\\`\\`svelte\\n${e.code}\\n\\`\\`\\``).join('\\n\\n')}`;\n } else {\n componentInfo = `Component \"${componentName}\" not found in catalog. Available components: ${catalog.components.map((c) => c.name).join(', ')}`;\n }\n\n return {\n messages: [\n {\n role: 'user',\n content: {\n type: 'text',\n text: `Generate correct usage for the ${componentName} component from @classic-homes/theme-svelte.\n${variant ? `Desired variant: ${variant}` : ''}\n${useCase ? `Use case: ${useCase}` : ''}\n\n${componentInfo}\n\nRequirements:\n- Import from '@classic-homes/theme-svelte'\n- Use Svelte 5 runes syntax ($props, $state, etc.)\n- Include proper TypeScript types\n- Follow accessibility best practices\n- Add appropriate event handlers if needed`,\n },\n },\n ],\n };\n }\n );\n}\n","/**\n * MCP Prompts Registration\n *\n * Prompts provide templates for common development tasks.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { registerBuildFormPrompt } from './buildForm.js';\nimport { registerLayoutPagePrompt } from './layoutPage.js';\nimport { registerComponentUsagePrompt } from './componentUsage.js';\n\n/**\n * Register all prompts with the MCP server\n */\nexport function registerPrompts(server: McpServer): void {\n registerBuildFormPrompt(server);\n registerLayoutPagePrompt(server);\n registerComponentUsagePrompt(server);\n}\n"],"mappings":"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","names":["McpServer","ResourceTemplate","ResourceTemplate","catalog","z","catalog","z","z","patterns","z","z","catalog","z","z","z","z","catalog","z","McpServer"]}
|