@desktalk/miniapp-preference 0.1.0-alpha.1 → 0.1.0-alpha.2
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/frontend.js +31 -2994
- package/dist/frontend.js.map +1 -1
- package/package.json +5 -5
package/dist/frontend.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/frontend.tsx", "desktalk-global:react", "desktalk-global:react-dom/client", "../src/schema.ts", "../../ui/dist/raw-css:/Users/duzhongchen/Workspace/DeskTalk/packages/ui/src/styles/tooltip.css", "../../ui/src/dt-tooltip.ts", "../../ui/dist/raw-css:/Users/duzhongchen/Workspace/DeskTalk/packages/ui/src/styles/card.css", "../../ui/src/dt-card.ts", "../../ui/dist/raw-css:/Users/duzhongchen/Workspace/DeskTalk/packages/ui/src/styles/select-menu.css", "../../ui/dist/raw-css:/Users/duzhongchen/Workspace/DeskTalk/packages/ui/src/styles/select-trigger.css", "../../ui/src/dt-select.ts", "../../ui/dist/raw-css:/Users/duzhongchen/Workspace/DeskTalk/packages/ui/src/styles/grid.css", "../../ui/src/dt-grid.ts", "../../ui/dist/raw-css:/Users/duzhongchen/Workspace/DeskTalk/packages/ui/src/styles/stack.css", "../../ui/src/dt-stack.ts", "../../ui/dist/raw-css:/Users/duzhongchen/Workspace/DeskTalk/packages/ui/src/styles/stat.css", "../../ui/src/dt-stat.ts", "../../ui/dist/raw-css:/Users/duzhongchen/Workspace/DeskTalk/packages/ui/src/styles/badge.css", "../../ui/src/dt-badge.ts", "../../ui/dist/raw-css:/Users/duzhongchen/Workspace/DeskTalk/packages/ui/src/styles/button.css", "../../ui/src/dt-button.ts", "../../ui/dist/raw-css:/Users/duzhongchen/Workspace/DeskTalk/packages/ui/src/styles/divider.css", "../../ui/src/dt-divider.ts", "../../ui/dist/raw-css:/Users/duzhongchen/Workspace/DeskTalk/packages/ui/src/styles/table-view.css", "../../ui/src/lib/template-bind.ts", "../../ui/src/lib/virtualizer.ts", "../../ui/src/dt-table-view.ts", "../../ui/dist/raw-css:/Users/duzhongchen/Workspace/DeskTalk/packages/ui/src/styles/list-view.css", "../../ui/src/dt-list-view.ts", "../../ui/dist/raw-css:/Users/duzhongchen/Workspace/DeskTalk/packages/ui/src/styles/chart.css", "../../ui/src/lib/chart-loader.ts", "../../ui/src/dt-chart.ts", "../../ui/dist/raw-css:/Users/duzhongchen/Workspace/DeskTalk/packages/ui/src/styles/markdown.css", "../../ui/src/lib/marked-loader.ts", "../../ui/src/dt-markdown.ts", "../../ui/dist/raw-css:/Users/duzhongchen/Workspace/DeskTalk/packages/ui/src/styles/markdown-editor.css", "../../ui/src/lib/milkdown-loader.ts", "../../ui/src/dt-markdown-editor.ts", "../../ui/src/index.ts", "../src/styles/PreferenceApp.module.css", "desktalk-global:react/jsx-runtime", "../src/components/PreferenceCategoryList.tsx", "../src/components/AiProviderList.tsx", "../src/components/VoiceProviderList.tsx", "../src/components/PreferenceSection.tsx", "../src/components/PreferenceRow.tsx", "../src/components/PreferenceActions.tsx"],
|
|
4
4
|
"sourcesContent": ["import { __dtLocalize } from '@desktalk/sdk';\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport type { MiniAppFrontendActivation, MiniAppFrontendContext } from '@desktalk/sdk';\nimport { useCommand, useEvent, MiniAppIdProvider, WindowIdProvider } from '@desktalk/sdk';\nimport { CATEGORIES, getSchemasByCategory, getDefaultConfig } from './schema';\nimport type { Config } from './schema';\nimport { PreferenceCategoryList } from './components/PreferenceCategoryList';\nimport { AiProviderList } from './components/AiProviderList';\nimport { VoiceProviderList } from './components/VoiceProviderList';\nimport { PreferenceSection } from './components/PreferenceSection';\nimport { PreferenceRow } from './components/PreferenceRow';\nimport { PreferenceActions } from './components/PreferenceActions';\nimport styles from './styles/PreferenceApp.module.css';\n\nconst COMPACT_NAV_WIDTH = 720;\n\nfunction PreferenceApp() {\n // \u2500\u2500\u2500 State \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n const [config, setConfig] = useState<Config>(getDefaultConfig());\n const [activeCategory, setActiveCategory] = useState<string>(CATEGORIES[0]);\n const [notification, setNotification] = useState<string | null>(null);\n const [compactNav, setCompactNav] = useState(false);\n const notificationTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const rootRef = useRef<HTMLDivElement | null>(null);\n\n // \u2500\u2500\u2500 Backend commands \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n const getAllSettings = useCommand<void, Config>('preferences.getAll');\n const setSetting = useCommand<{ key: string; value: string | number | boolean }, void>(\n 'preferences.set',\n );\n\n // \u2500\u2500\u2500 Fetch config on mount \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n const fetchConfig = useCallback(async () => {\n try {\n const result = await getAllSettings();\n setConfig(result);\n } catch (err) {\n console.error('Failed to load preferences:', err);\n }\n }, [getAllSettings]);\n\n useEffect(() => {\n fetchConfig();\n }, [fetchConfig]);\n\n useEffect(() => {\n if (!rootRef.current) return;\n\n const updateLayout = (width: number) => {\n setCompactNav(width <= COMPACT_NAV_WIDTH);\n };\n\n updateLayout(rootRef.current.clientWidth);\n\n const observer = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (!entry) return;\n updateLayout(entry.contentRect.width);\n });\n\n observer.observe(rootRef.current);\n\n return () => observer.disconnect();\n }, []);\n\n // \u2500\u2500\u2500 Listen for change events \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n useEvent<{ key: string; value: string | number | boolean; requiresRestart: boolean }>(\n 'preferences:changed',\n (change) => {\n setConfig((prev) => ({ ...prev, [change.key]: change.value }));\n\n if (change.requiresRestart) {\n showNotification(\n __dtLocalize({ scope: \"preference\", key: \"notifications.restartRequired\", defaultText: \"This change requires a restart to take effect.\" }),\n );\n }\n },\n );\n\n useEvent<Record<string, never>>('preferences:resetAll', () => {\n fetchConfig();\n showNotification(__dtLocalize({ scope: \"preference\", key: \"notifications.resetAll\", defaultText: \"All settings have been reset to defaults.\" }));\n });\n\n // \u2500\u2500\u2500 Notification helper \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n const showNotification = useCallback((message: string) => {\n setNotification(message);\n if (notificationTimer.current) clearTimeout(notificationTimer.current);\n notificationTimer.current = setTimeout(() => setNotification(null), 4000);\n }, []);\n\n // \u2500\u2500\u2500 Setting change handler \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n const handleChange = useCallback(\n async (key: string, value: string | number | boolean) => {\n // Optimistic update\n setConfig((prev) => ({ ...prev, [key]: value }));\n try {\n await setSetting({ key, value });\n } catch (err) {\n console.error(`Failed to update ${key}:`, err);\n // Revert on error\n fetchConfig();\n }\n },\n [setSetting, fetchConfig],\n );\n\n // \u2500\u2500\u2500 Render \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n const categoriesToShow = CATEGORIES.filter((c) => c === activeCategory);\n\n const getVisibleSchemas = useCallback((category: string) => {\n const schemas = getSchemasByCategory(category);\n if (category !== 'AI' && category !== 'Voice') {\n return schemas;\n }\n\n return schemas.filter((schema) => {\n if (category === 'AI') {\n return (\n !schema.key.startsWith('ai.providers.') &&\n schema.key !== 'ai.defaultProvider' &&\n schema.key !== 'ai.enabledProviders'\n );\n }\n\n return (\n !schema.key.startsWith('voice.providers.') &&\n schema.key !== 'voice.defaultProvider' &&\n schema.key !== 'voice.enabledProviders'\n );\n });\n }, []);\n\n return (\n <PreferenceActions onConfigChanged={fetchConfig}>\n <div ref={rootRef} className={`${styles.root}${compactNav ? ` ${styles.rootCompact}` : ''}`}>\n {/* Sidebar */}\n <PreferenceCategoryList\n activeCategory={activeCategory}\n onSelect={setActiveCategory}\n compact={compactNav}\n />\n\n {/* Settings panel */}\n <div className={styles.settingsPanel}>\n {categoriesToShow.map((category) => {\n const schemas = getVisibleSchemas(category);\n return (\n <PreferenceSection key={category} title={category}>\n {category === 'AI' && <AiProviderList config={config} onChange={handleChange} />}\n {category === 'Voice' && (\n <VoiceProviderList config={config} onChange={handleChange} />\n )}\n {schemas.map((schema) => (\n <PreferenceRow\n key={schema.key}\n schema={schema}\n value={config[schema.key] ?? schema.default}\n onChange={handleChange}\n />\n ))}\n </PreferenceSection>\n );\n })}\n </div>\n\n {/* Notification toast */}\n {notification && <div className={styles.notification}>{notification}</div>}\n </div>\n </PreferenceActions>\n );\n}\n\nexport function activate(ctx: MiniAppFrontendContext): MiniAppFrontendActivation {\n const root = createRoot(ctx.root);\n root.render(\n <WindowIdProvider windowId={ctx.windowId}>\n <MiniAppIdProvider miniAppId={ctx.miniAppId}>\n <PreferenceApp />\n </MiniAppIdProvider>\n </WindowIdProvider>,\n );\n\n return {\n deactivate() {\n root.unmount();\n },\n };\n}\n", "var _mod = window.React;\nexport default _mod;\nexport var Children = _mod.Children;\nexport var Component = _mod.Component;\nexport var Fragment = _mod.Fragment;\nexport var Profiler = _mod.Profiler;\nexport var PureComponent = _mod.PureComponent;\nexport var StrictMode = _mod.StrictMode;\nexport var Suspense = _mod.Suspense;\nexport var cloneElement = _mod.cloneElement;\nexport var createContext = _mod.createContext;\nexport var createElement = _mod.createElement;\nexport var createRef = _mod.createRef;\nexport var forwardRef = _mod.forwardRef;\nexport var isValidElement = _mod.isValidElement;\nexport var lazy = _mod.lazy;\nexport var memo = _mod.memo;\nexport var startTransition = _mod.startTransition;\nexport var useCallback = _mod.useCallback;\nexport var useContext = _mod.useContext;\nexport var useDebugValue = _mod.useDebugValue;\nexport var useDeferredValue = _mod.useDeferredValue;\nexport var useEffect = _mod.useEffect;\nexport var useId = _mod.useId;\nexport var useImperativeHandle = _mod.useImperativeHandle;\nexport var useInsertionEffect = _mod.useInsertionEffect;\nexport var useLayoutEffect = _mod.useLayoutEffect;\nexport var useMemo = _mod.useMemo;\nexport var useReducer = _mod.useReducer;\nexport var useRef = _mod.useRef;\nexport var useState = _mod.useState;\nexport var useSyncExternalStore = _mod.useSyncExternalStore;\nexport var useTransition = _mod.useTransition;\nexport var version = _mod.version;", "var _mod = window.ReactDOM;\nexport default _mod;\nexport var createRoot = _mod.createRoot;\nexport var hydrateRoot = _mod.hydrateRoot;", "// \u2500\u2500\u2500 Preference Schema \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Shared between backend and frontend. Defines every configurable setting,\n// its type, default value, category, and UI constraints.\n\nexport interface PreferenceSchema {\n key: string;\n label: string;\n description: string;\n type: 'string' | 'number' | 'boolean';\n default: string | number | boolean;\n options?: string[]; // For enum-like string settings (renders a dropdown)\n min?: number; // For number settings\n max?: number; // For number settings\n category: string;\n requiresRestart?: boolean;\n sensitive?: boolean; // e.g. API keys \u2014 masked in UI\n}\n\nexport type Config = Record<string, string | number | boolean>;\n\nexport const CATEGORIES = ['General', 'Server', 'AI', 'Voice'] as const;\nexport type Category = (typeof CATEGORIES)[number];\n\nexport interface AiProviderDefinition {\n id: string;\n label: string;\n supportsApiKey: boolean;\n supportsBaseUrl: boolean;\n}\n\nexport interface VoiceProviderDefinition {\n id: string;\n label: string;\n supportsApiKey: boolean;\n supportsBaseUrl: boolean;\n supportsModel: boolean;\n supportsAzureDeployment: boolean;\n supportsAzureApiVersion: boolean;\n}\n\nexport const DEFAULT_AI_PROVIDER_ID = 'openai';\n\nexport const AI_PROVIDER_DEFINITIONS: AiProviderDefinition[] = [\n { id: 'anthropic', label: 'Anthropic', supportsApiKey: true, supportsBaseUrl: false },\n {\n id: 'azure-openai-responses',\n label: 'Azure OpenAI',\n supportsApiKey: true,\n supportsBaseUrl: true,\n },\n { id: DEFAULT_AI_PROVIDER_ID, label: 'OpenAI', supportsApiKey: true, supportsBaseUrl: true },\n { id: 'google', label: 'Google Gemini', supportsApiKey: true, supportsBaseUrl: false },\n {\n id: 'mistral',\n label: 'Mistral',\n supportsApiKey: true,\n supportsBaseUrl: true,\n },\n { id: 'groq', label: 'Groq', supportsApiKey: true, supportsBaseUrl: true },\n {\n id: 'cerebras',\n label: 'Cerebras',\n supportsApiKey: true,\n supportsBaseUrl: true,\n },\n { id: 'xai', label: 'xAI', supportsApiKey: true, supportsBaseUrl: true },\n {\n id: 'openrouter',\n label: 'OpenRouter',\n supportsApiKey: true,\n supportsBaseUrl: true,\n },\n {\n id: 'vercel-ai-gateway',\n label: 'Vercel AI Gateway',\n supportsApiKey: true,\n supportsBaseUrl: true,\n },\n { id: 'zai', label: 'ZAI', supportsApiKey: true, supportsBaseUrl: false },\n { id: 'opencode', label: 'OpenCode Zen', supportsApiKey: true, supportsBaseUrl: false },\n { id: 'opencode-go', label: 'OpenCode Go', supportsApiKey: true, supportsBaseUrl: false },\n {\n id: 'huggingface',\n label: 'Hugging Face',\n supportsApiKey: true,\n supportsBaseUrl: true,\n },\n {\n id: 'kimi-coding',\n label: 'Kimi For Coding',\n supportsApiKey: true,\n supportsBaseUrl: false,\n },\n { id: 'minimax', label: 'MiniMax', supportsApiKey: true, supportsBaseUrl: false },\n {\n id: 'minimax-cn',\n label: 'MiniMax China',\n supportsApiKey: true,\n supportsBaseUrl: false,\n },\n { id: 'ollama', label: 'Ollama', supportsApiKey: false, supportsBaseUrl: true },\n];\n\nexport const DEFAULT_VOICE_PROVIDER_ID = 'openai-whisper';\n\nexport const VOICE_PROVIDER_DEFINITIONS: VoiceProviderDefinition[] = [\n {\n id: DEFAULT_VOICE_PROVIDER_ID,\n label: 'OpenAI Whisper',\n supportsApiKey: true,\n supportsBaseUrl: true,\n supportsModel: true,\n supportsAzureDeployment: false,\n supportsAzureApiVersion: false,\n },\n {\n id: 'azure-openai-whisper',\n label: 'Azure OpenAI Whisper',\n supportsApiKey: true,\n supportsBaseUrl: true,\n supportsModel: false,\n supportsAzureDeployment: true,\n supportsAzureApiVersion: true,\n },\n];\n\nconst AI_PROVIDER_IDS = new Set(AI_PROVIDER_DEFINITIONS.map((provider) => provider.id));\nconst VOICE_PROVIDER_IDS = new Set(VOICE_PROVIDER_DEFINITIONS.map((provider) => provider.id));\n\nexport function getAiProviderDefinition(providerId: string): AiProviderDefinition | undefined {\n return AI_PROVIDER_DEFINITIONS.find((provider) => provider.id === providerId);\n}\n\nexport function getAiProviderConfigKeys(providerId: string): string[] {\n const definition = getAiProviderDefinition(providerId);\n if (!definition) {\n return [];\n }\n\n const keys = [`ai.providers.${providerId}.model`];\n if (definition.supportsApiKey) {\n keys.push(`ai.providers.${providerId}.apiKey`);\n }\n if (definition.supportsBaseUrl) {\n keys.push(`ai.providers.${providerId}.baseUrl`);\n }\n return keys;\n}\n\nexport function parseAiEnabledProviders(value: unknown): string[] {\n if (typeof value !== 'string') {\n return [DEFAULT_AI_PROVIDER_ID];\n }\n\n const providers = value\n .split(',')\n .map((item) => item.trim())\n .filter(\n (item, index, items) => item && items.indexOf(item) === index && AI_PROVIDER_IDS.has(item),\n );\n\n return providers.length > 0 ? providers : [DEFAULT_AI_PROVIDER_ID];\n}\n\nexport function serializeAiEnabledProviders(providerIds: string[]): string {\n return parseAiEnabledProviders(providerIds.join(',')).join(',');\n}\n\nexport function hasAiProviderConfig(config: Config, providerId: string): boolean {\n return getAiProviderConfigKeys(providerId).some((key) => {\n const value = config[key];\n return typeof value === 'string' && value.trim().length > 0;\n });\n}\n\nexport function getVoiceProviderDefinition(\n providerId: string,\n): VoiceProviderDefinition | undefined {\n return VOICE_PROVIDER_DEFINITIONS.find((provider) => provider.id === providerId);\n}\n\nexport function getVoiceProviderConfigKeys(providerId: string): string[] {\n const definition = getVoiceProviderDefinition(providerId);\n if (!definition) {\n return [];\n }\n\n const keys: string[] = [];\n if (definition.supportsApiKey) {\n keys.push(`voice.providers.${providerId}.apiKey`);\n }\n if (definition.supportsModel) {\n keys.push(`voice.providers.${providerId}.model`);\n }\n if (definition.supportsBaseUrl) {\n keys.push(`voice.providers.${providerId}.baseUrl`);\n }\n if (definition.supportsAzureDeployment) {\n keys.push(`voice.providers.${providerId}.azureDeployment`);\n }\n if (definition.supportsAzureApiVersion) {\n keys.push(`voice.providers.${providerId}.azureApiVersion`);\n }\n return keys;\n}\n\nexport function parseVoiceEnabledProviders(value: unknown): string[] {\n if (typeof value !== 'string') {\n return [DEFAULT_VOICE_PROVIDER_ID];\n }\n\n const providers = value\n .split(',')\n .map((item) => item.trim())\n .filter(\n (item, index, items) => item && items.indexOf(item) === index && VOICE_PROVIDER_IDS.has(item),\n );\n\n return providers.length > 0 ? providers : [DEFAULT_VOICE_PROVIDER_ID];\n}\n\nexport function serializeVoiceEnabledProviders(providerIds: string[]): string {\n return parseVoiceEnabledProviders(providerIds.join(',')).join(',');\n}\n\nexport function hasVoiceProviderConfig(config: Config, providerId: string): boolean {\n return getVoiceProviderConfigKeys(providerId).some((key) => {\n const value = config[key];\n return typeof value === 'string' && value.trim().length > 0;\n });\n}\n\nfunction getAiProviderPreferenceSchemas(): PreferenceSchema[] {\n const schemas: PreferenceSchema[] = [\n {\n key: 'ai.enabledProviders',\n label: 'Enabled Providers',\n description: 'Ordered list of configured AI providers.',\n type: 'string',\n default: DEFAULT_AI_PROVIDER_ID,\n category: 'AI',\n },\n {\n key: 'ai.defaultProvider',\n label: 'Default Provider',\n description: 'Provider selected by default for chat and tool execution.',\n type: 'string',\n default: DEFAULT_AI_PROVIDER_ID,\n options: AI_PROVIDER_DEFINITIONS.map((provider) => provider.id),\n category: 'AI',\n },\n ];\n\n for (const provider of AI_PROVIDER_DEFINITIONS) {\n schemas.push({\n key: `ai.providers.${provider.id}.model`,\n label: `${provider.label} Model`,\n description: `Model identifier to use when ${provider.label} is selected.`,\n type: 'string',\n default: '',\n category: 'AI',\n });\n\n if (provider.supportsApiKey) {\n schemas.push({\n key: `ai.providers.${provider.id}.apiKey`,\n label: `${provider.label} API Key`,\n description: `API key for ${provider.label}.`,\n type: 'string',\n default: '',\n category: 'AI',\n sensitive: true,\n });\n }\n\n if (provider.supportsBaseUrl) {\n schemas.push({\n key: `ai.providers.${provider.id}.baseUrl`,\n label: `${provider.label} Base URL`,\n description: `Optional custom API base URL for ${provider.label}.`,\n type: 'string',\n default: '',\n category: 'AI',\n });\n }\n }\n\n schemas.push({\n key: 'ai.maxTokens',\n label: 'Max Tokens',\n description: 'Maximum tokens per AI response.',\n type: 'number',\n default: 4096,\n min: 256,\n max: 128000,\n category: 'AI',\n });\n\n return schemas;\n}\n\nconst AI_PREFERENCE_SCHEMAS = getAiProviderPreferenceSchemas();\n\nfunction getVoiceProviderPreferenceSchemas(): PreferenceSchema[] {\n const schemas: PreferenceSchema[] = [\n {\n key: 'voice.enabledProviders',\n label: 'Enabled Providers',\n description: 'Ordered list of configured STT providers.',\n type: 'string',\n default: DEFAULT_VOICE_PROVIDER_ID,\n category: 'Voice',\n },\n {\n key: 'voice.defaultProvider',\n label: 'Default Provider',\n description: 'Provider selected by default for voice transcription.',\n type: 'string',\n default: DEFAULT_VOICE_PROVIDER_ID,\n options: VOICE_PROVIDER_DEFINITIONS.map((provider) => provider.id),\n category: 'Voice',\n },\n ];\n\n for (const provider of VOICE_PROVIDER_DEFINITIONS) {\n if (provider.supportsApiKey) {\n schemas.push({\n key: `voice.providers.${provider.id}.apiKey`,\n label: `${provider.label} API Key`,\n description: `API key for ${provider.label}.`,\n type: 'string',\n default: '',\n category: 'Voice',\n sensitive: true,\n });\n }\n\n if (provider.supportsModel) {\n schemas.push({\n key: `voice.providers.${provider.id}.model`,\n label: `${provider.label} Model`,\n description: `Model identifier to use when ${provider.label} is selected.`,\n type: 'string',\n default: 'whisper-1',\n category: 'Voice',\n });\n }\n\n if (provider.supportsBaseUrl) {\n schemas.push({\n key: `voice.providers.${provider.id}.baseUrl`,\n label: `${provider.label} Base URL`,\n description:\n provider.id === 'azure-openai-whisper'\n ? 'Base URL for Azure OpenAI Whisper requests.'\n : `Optional custom API base URL for ${provider.label}.`,\n type: 'string',\n default: provider.id === DEFAULT_VOICE_PROVIDER_ID ? 'https://api.openai.com/v1' : '',\n category: 'Voice',\n });\n }\n\n if (provider.supportsAzureDeployment) {\n schemas.push({\n key: `voice.providers.${provider.id}.azureDeployment`,\n label: `${provider.label} Deployment`,\n description: 'Azure OpenAI deployment name for Whisper transcription.',\n type: 'string',\n default: '',\n category: 'Voice',\n });\n }\n\n if (provider.supportsAzureApiVersion) {\n schemas.push({\n key: `voice.providers.${provider.id}.azureApiVersion`,\n label: `${provider.label} API Version`,\n description: 'Azure OpenAI API version used for transcription requests.',\n type: 'string',\n default: '2024-06-01',\n category: 'Voice',\n });\n }\n }\n\n return schemas;\n}\n\nconst VOICE_PREFERENCE_SCHEMAS = getVoiceProviderPreferenceSchemas();\n\nexport const PREFERENCE_SCHEMAS: PreferenceSchema[] = [\n // \u2500\u2500\u2500 General \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n {\n key: 'general.theme',\n label: 'Theme',\n description: 'UI theme: light or dark.',\n type: 'string',\n default: 'light',\n options: ['light', 'dark'],\n category: 'General',\n },\n {\n key: 'general.accentColor',\n label: 'Accent Color',\n description: 'Primary theme color. Accepts hex values or any CSS color string.',\n type: 'string',\n default: '#7c6ff7',\n category: 'General',\n },\n {\n key: 'general.language',\n label: 'Language',\n description: 'UI language/locale.',\n type: 'string',\n default: 'en',\n options: ['en', 'zh', 'ja', 'ko', 'es', 'fr', 'de'],\n category: 'General',\n },\n {\n key: 'general.dataDirectory',\n label: 'Data Directory',\n description:\n 'Override the base data directory. Leave empty for platform default (resolved via env-paths).',\n type: 'string',\n default: '',\n category: 'General',\n requiresRestart: true,\n },\n\n // \u2500\u2500\u2500 Server \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n {\n key: 'server.host',\n label: 'Host',\n description: 'Server bind address.',\n type: 'string',\n default: 'localhost',\n category: 'Server',\n requiresRestart: true,\n },\n {\n key: 'server.port',\n label: 'Port',\n description: 'Server listen port.',\n type: 'number',\n default: 3000,\n min: 1,\n max: 65535,\n category: 'Server',\n requiresRestart: true,\n },\n\n // \u2500\u2500\u2500 AI \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n ...AI_PREFERENCE_SCHEMAS,\n\n // \u2500\u2500\u2500 Voice \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n ...VOICE_PREFERENCE_SCHEMAS,\n {\n key: 'voice.silenceTimeoutMs',\n label: 'Silence Timeout',\n description: 'Silence duration (ms) before finalizing an utterance.',\n type: 'number',\n default: 800,\n min: 200,\n max: 5000,\n category: 'Voice',\n },\n {\n key: 'voice.energyThreshold',\n label: 'Energy Threshold',\n description: 'RMS energy threshold for voice activity detection (0\u201332767).',\n type: 'number',\n default: 500,\n min: 50,\n max: 10000,\n category: 'Voice',\n },\n];\n\n/** Build the default config from schemas */\nexport function getDefaultConfig(): Config {\n const config: Config = {};\n for (const schema of PREFERENCE_SCHEMAS) {\n config[schema.key] = schema.default;\n }\n return config;\n}\n\n/** Find schema by key */\nexport function getSchema(key: string): PreferenceSchema | undefined {\n return PREFERENCE_SCHEMAS.find((s) => s.key === key);\n}\n\n/** Get all schemas for a category */\nexport function getSchemasByCategory(category: string): PreferenceSchema[] {\n return PREFERENCE_SCHEMAS.filter((s) => s.category === category);\n}\n\n/** Mask a sensitive value \u2014 show only last 4 characters */\nexport function maskSensitive(value: string): string {\n if (value.length <= 4) return '****';\n return '*'.repeat(value.length - 4) + value.slice(-4);\n}\n", "export default \".dt-tooltip-popup {\\n position: fixed;\\n z-index: 2147483647;\\n padding: 6px 10px;\\n border: 1px solid var(--dt-accent);\\n border-radius: 2px;\\n background: var(--dt-surface);\\n color: var(--dt-text-secondary);\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;\\n font-size: 12px;\\n font-weight: 500;\\n line-height: 1.4;\\n white-space: nowrap;\\n pointer-events: none;\\n user-select: none;\\n box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);\\n}\\n\\n/* Tech corner accents */\\n.dt-tooltip-popup::before {\\n content: '';\\n position: absolute;\\n top: -1px;\\n left: -1px;\\n width: 4px;\\n height: 4px;\\n border-top: 1px solid var(--dt-accent);\\n border-left: 1px solid var(--dt-accent);\\n}\\n\\n.dt-tooltip-popup::after {\\n content: '';\\n position: absolute;\\n bottom: -1px;\\n right: -1px;\\n width: 4px;\\n height: 4px;\\n border-bottom: 1px solid var(--dt-accent);\\n border-right: 1px solid var(--dt-accent);\\n}\\n\\n/* Arrow styling - tech/minimal */\\n.dt-tooltip-popup[data-actual-placement='top'] {\\n transform: translateX(-50%);\\n}\\n\\n.dt-tooltip-popup[data-actual-placement='top']::before {\\n top: auto;\\n bottom: -4px;\\n left: 50%;\\n transform: translateX(-50%);\\n width: 0;\\n height: 0;\\n border: 4px solid transparent;\\n border-top-color: var(--dt-accent);\\n border-left: none;\\n border-right: none;\\n}\\n\\n.dt-tooltip-popup[data-actual-placement='bottom'] {\\n transform: translateX(-50%);\\n}\\n\\n.dt-tooltip-popup[data-actual-placement='bottom']::before {\\n bottom: auto;\\n top: -4px;\\n left: 50%;\\n transform: translateX(-50%);\\n width: 0;\\n height: 0;\\n border: 4px solid transparent;\\n border-bottom-color: var(--dt-accent);\\n border-left: none;\\n border-right: none;\\n}\\n\\n.dt-tooltip-popup[data-actual-placement='left'] {\\n transform: translateY(-50%);\\n}\\n\\n.dt-tooltip-popup[data-actual-placement='left']::before {\\n left: auto;\\n top: 50%;\\n right: -4px;\\n transform: translateY(-50%);\\n width: 0;\\n height: 0;\\n border: 4px solid transparent;\\n border-left-color: var(--dt-accent);\\n border-top: none;\\n border-bottom: none;\\n}\\n\\n.dt-tooltip-popup[data-actual-placement='right'] {\\n transform: translateY(-50%);\\n}\\n\\n.dt-tooltip-popup[data-actual-placement='right']::before {\\n right: auto;\\n top: 50%;\\n left: -4px;\\n transform: translateY(-50%);\\n width: 0;\\n height: 0;\\n border: 4px solid transparent;\\n border-right-color: var(--dt-accent);\\n border-top: none;\\n border-bottom: none;\\n}\\n\";", "import tooltipCss from './styles/tooltip.css?raw';\n\nconst CLS = 'dt-tooltip-popup';\n\ntype Placement = 'top' | 'bottom' | 'left' | 'right';\n\nconst ARROW_GAP = 8; // px gap between trigger and tooltip\n\n/** Ensure the shared popup stylesheet is injected exactly once. */\nlet styleInjected = false;\nfunction ensureStyles(): void {\n if (styleInjected) return;\n const style = document.createElement('style');\n style.setAttribute('data-dt-tooltip', '');\n style.textContent = tooltipCss;\n document.head.appendChild(style);\n styleInjected = true;\n}\n\n/**\n * `<dt-tooltip>` \u2014 framework-agnostic tooltip web component.\n *\n * Uses Shadow DOM with a `<slot>` for the trigger element. The tooltip popup\n * is appended to `document.body` so it can escape overflow/clip ancestors.\n *\n * ## Attributes\n * - `content` \u2014 tooltip text (required)\n * - `placement` \u2014 preferred side: top | bottom | left | right (default \"top\")\n * - `delay` \u2014 show delay in milliseconds (default 0)\n * - `disabled` \u2014 when present, tooltip is suppressed\n *\n * ## Usage\n * ```html\n * <dt-tooltip content=\"Save file\" placement=\"top\">\n * <button>Save</button>\n * </dt-tooltip>\n * ```\n */\nexport class DtTooltip extends HTMLElement {\n // \u2500\u2500 Private state \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n private _popup: HTMLDivElement | null = null;\n private _showTimeout: ReturnType<typeof setTimeout> | null = null;\n private _tooltipId = '';\n private _visible = false;\n\n // \u2500\u2500 Observed attributes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n static get observedAttributes(): string[] {\n return ['content', 'placement', 'delay', 'disabled'];\n }\n\n // \u2500\u2500 Attribute helpers (getters + setters so frameworks can set props) \u2500\u2500\u2500\n get content(): string {\n return this.getAttribute('content') ?? '';\n }\n set content(val: string) {\n this.setAttribute('content', val);\n }\n\n get placement(): Placement {\n const val = this.getAttribute('placement');\n if (val === 'bottom' || val === 'left' || val === 'right') return val;\n return 'top';\n }\n set placement(val: Placement) {\n this.setAttribute('placement', val);\n }\n\n get delay(): number {\n const val = Number(this.getAttribute('delay'));\n return Number.isFinite(val) && val > 0 ? val : 0;\n }\n set delay(val: number | string) {\n this.setAttribute('delay', String(val));\n }\n\n get disabled(): boolean {\n return this.hasAttribute('disabled');\n }\n set disabled(val: boolean) {\n if (val) {\n this.setAttribute('disabled', '');\n } else {\n this.removeAttribute('disabled');\n }\n }\n\n // \u2500\u2500 Lifecycle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n shadow.innerHTML = '<slot></slot>';\n\n this._tooltipId = `dt-tip-${Math.random().toString(36).slice(2, 9)}`;\n }\n\n connectedCallback(): void {\n ensureStyles();\n\n this.addEventListener('mouseenter', this._onEnter);\n this.addEventListener('mouseleave', this._onLeave);\n this.addEventListener('focusin', this._onEnter);\n this.addEventListener('focusout', this._onLeave);\n }\n\n disconnectedCallback(): void {\n this.removeEventListener('mouseenter', this._onEnter);\n this.removeEventListener('mouseleave', this._onLeave);\n this.removeEventListener('focusin', this._onEnter);\n this.removeEventListener('focusout', this._onLeave);\n this._hide();\n }\n\n attributeChangedCallback(name: string, _old: string | null, _next: string | null): void {\n if (name === 'disabled' && this.disabled) {\n this._hide();\n }\n if (name === 'content' && this._popup) {\n this._popup.textContent = this.content;\n }\n }\n\n // \u2500\u2500 Event handlers (arrow functions for stable `this`) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n private _onEnter = (): void => {\n if (this.disabled || !this.content) return;\n\n if (this._showTimeout !== null) clearTimeout(this._showTimeout);\n\n const show = (): void => {\n this._createPopup();\n this._position();\n this._visible = true;\n };\n\n if (this.delay > 0) {\n this._showTimeout = setTimeout(show, this.delay);\n } else {\n show();\n }\n };\n\n private _onLeave = (): void => {\n this._hide();\n };\n\n // \u2500\u2500 Popup management \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n private _createPopup(): void {\n if (this._popup) return;\n\n const popup = document.createElement('div');\n popup.className = CLS;\n popup.id = this._tooltipId;\n popup.setAttribute('role', 'tooltip');\n popup.textContent = this.content;\n document.body.appendChild(popup);\n this._popup = popup;\n\n // Wire ARIA on the first slotted child (the logical trigger)\n const trigger = this._getTrigger();\n if (trigger) {\n trigger.setAttribute('aria-describedby', this._tooltipId);\n }\n }\n\n private _hide(): void {\n if (this._showTimeout !== null) {\n clearTimeout(this._showTimeout);\n this._showTimeout = null;\n }\n if (this._popup) {\n // Remove ARIA from trigger\n const trigger = this._getTrigger();\n if (trigger) {\n trigger.removeAttribute('aria-describedby');\n }\n\n this._popup.remove();\n this._popup = null;\n this._visible = false;\n }\n }\n\n private _getTrigger(): Element | null {\n // First slotted child, or fall back to the host element itself\n const slot = this.shadowRoot?.querySelector('slot');\n const assigned = slot?.assignedElements();\n return assigned && assigned.length > 0 ? assigned[0] : null;\n }\n\n // \u2500\u2500 Positioning with flip logic \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n private _position(): void {\n const popup = this._popup;\n if (!popup) return;\n\n const triggerRect = this.getBoundingClientRect();\n const popupRect = popup.getBoundingClientRect();\n\n const vw = window.innerWidth;\n const vh = window.innerHeight;\n\n let actual = this.placement;\n\n // Flip if not enough space on the preferred side\n if (actual === 'top' && triggerRect.top - popupRect.height - ARROW_GAP < 0) {\n actual = 'bottom';\n } else if (actual === 'bottom' && triggerRect.bottom + popupRect.height + ARROW_GAP > vh) {\n actual = 'top';\n } else if (actual === 'left' && triggerRect.left - popupRect.width - ARROW_GAP < 0) {\n actual = 'right';\n } else if (actual === 'right' && triggerRect.right + popupRect.width + ARROW_GAP > vw) {\n actual = 'left';\n }\n\n popup.setAttribute('data-actual-placement', actual);\n\n let top: number;\n let left: number;\n\n switch (actual) {\n case 'top':\n left = triggerRect.left + triggerRect.width / 2;\n top = triggerRect.top - popupRect.height - ARROW_GAP;\n break;\n case 'bottom':\n left = triggerRect.left + triggerRect.width / 2;\n top = triggerRect.bottom + ARROW_GAP;\n break;\n case 'left':\n left = triggerRect.left - popupRect.width - ARROW_GAP;\n top = triggerRect.top + triggerRect.height / 2;\n break;\n case 'right':\n left = triggerRect.right + ARROW_GAP;\n top = triggerRect.top + triggerRect.height / 2;\n break;\n }\n\n popup.style.left = `${left}px`;\n popup.style.top = `${top}px`;\n }\n}\n", "export default \":host {\\n display: block;\\n margin-bottom: 12px;\\n}\\n\\n.dt-card-inner {\\n background: var(--dt-surface);\\n border: 1px solid var(--dt-accent);\\n border-radius: 2px;\\n padding: 12px;\\n color: var(--dt-text);\\n font-family: var(--font-ui, 'Work Sans', system-ui, sans-serif);\\n position: relative;\\n height: 100%;\\n}\\n\\n/* Corner accents for sci-fi feel */\\n.dt-card-inner::before {\\n content: '';\\n position: absolute;\\n top: -1px;\\n left: -1px;\\n width: 8px;\\n height: 8px;\\n border-top: 2px solid var(--dt-accent);\\n border-left: 2px solid var(--dt-accent);\\n}\\n\\n.dt-card-inner::after {\\n content: '';\\n position: absolute;\\n bottom: -1px;\\n right: -1px;\\n width: 8px;\\n height: 8px;\\n border-bottom: 2px solid var(--dt-accent);\\n border-right: 2px solid var(--dt-accent);\\n}\\n\\n:host([variant='outlined']) .dt-card-inner {\\n background: transparent;\\n border-style: dashed;\\n}\\n\\n:host([variant='filled']) .dt-card-inner {\\n background: var(--dt-accent-subtle);\\n border-style: solid;\\n}\\n\\n::slotted(h1),\\n::slotted(h2),\\n::slotted(h3),\\n::slotted(h4),\\n::slotted(h5),\\n::slotted(h6) {\\n color: var(--dt-accent);\\n margin: 0 0 6px;\\n line-height: 1.2;\\n font-family: var(--font-display, 'Sora', system-ui, sans-serif);\\n font-weight: 600;\\n text-transform: uppercase;\\n letter-spacing: 0.1em;\\n font-size: 0.85rem;\\n}\\n\\n::slotted(p) {\\n color: var(--dt-text-secondary);\\n margin: 0 0 6px;\\n line-height: 1.4;\\n font-family: var(--font-ui, 'Work Sans', system-ui, sans-serif);\\n font-size: 0.8125rem;\\n}\\n\\n::slotted(p:last-child) {\\n margin-bottom: 0;\\n}\\n\";", "import cardCss from './styles/card.css?raw';\n\nconst CARD_CLS = 'dt-card-inner';\n\ntype CardVariant = 'default' | 'outlined' | 'filled';\n\n/**\n * `<dt-card>` \u2014 framework-agnostic card web component.\n *\n * Renders a card container with a solid border using the theme accent color\n * and no border-radius.\n *\n * ## Attributes\n * - `variant` \u2014 visual style: default | outlined | filled (default \"default\")\n *\n * ## Usage\n * ```html\n * <dt-card>\n * <h3>Title</h3>\n * <p>Card content goes here.</p>\n * </dt-card>\n *\n * <dt-card variant=\"outlined\">\n * <p>Outlined card with transparent background.</p>\n * </dt-card>\n * ```\n */\nexport class DtCard extends HTMLElement {\n // \u2500\u2500 Observed attributes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n static get observedAttributes(): string[] {\n return ['variant'];\n }\n\n // \u2500\u2500 Attribute helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n get variant(): CardVariant {\n const val = this.getAttribute('variant');\n if (val === 'outlined' || val === 'filled') return val;\n return 'default';\n }\n\n set variant(val: CardVariant) {\n this.setAttribute('variant', val);\n }\n\n // \u2500\u2500 Lifecycle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = cardCss;\n shadow.appendChild(style);\n\n const wrapper = document.createElement('div');\n wrapper.className = CARD_CLS;\n wrapper.innerHTML = '<slot></slot>';\n shadow.appendChild(wrapper);\n }\n}\n", "export default \".dt-select-menu {\\n position: fixed;\\n z-index: 2147483646;\\n display: flex;\\n min-width: 200px;\\n max-width: min(300px, 72vw);\\n max-height: 240px;\\n flex-direction: column;\\n overflow-y: auto;\\n border: 1px solid var(--dt-accent);\\n border-radius: 2px;\\n background: var(--dt-surface);\\n box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);\\n opacity: 0;\\n pointer-events: none;\\n transition: opacity 100ms ease;\\n}\\n\\n.dt-select-menu[data-open] {\\n opacity: 1;\\n pointer-events: auto;\\n}\\n\\n.dt-select-option {\\n display: flex;\\n width: 100%;\\n align-items: center;\\n justify-content: space-between;\\n padding: 8px 10px;\\n border: 0;\\n border-bottom: 1px solid var(--dt-border-subtle);\\n background: transparent;\\n color: var(--dt-text);\\n font-family: var(\\n --font-mono,\\n 'SF Mono',\\n Monaco,\\n 'Cascadia Code',\\n 'Roboto Mono',\\n Consolas,\\n monospace\\n );\\n font-size: 0.8125rem;\\n font-weight: 600;\\n letter-spacing: 0.04em;\\n text-align: left;\\n cursor: pointer;\\n transition: all 0.1s ease;\\n user-select: none;\\n}\\n\\n.dt-select-option:last-child {\\n border-bottom: none;\\n}\\n\\n.dt-select-option:hover {\\n background: var(--dt-accent);\\n color: var(--dt-text-on-accent);\\n}\\n\\n.dt-select-option.dt-select-option--active {\\n background: var(--dt-accent-subtle);\\n color: var(--dt-accent);\\n}\\n\\n.dt-select-option span {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\";", "export default \":host {\\n display: block;\\n width: 100%;\\n min-width: 0;\\n position: relative;\\n}\\n\\n:host([disabled]) .dt-select-trigger {\\n cursor: not-allowed;\\n opacity: 0.4;\\n}\\n\\n.dt-select-trigger {\\n display: flex;\\n width: 100%;\\n min-width: 0;\\n max-width: 100%;\\n box-sizing: border-box;\\n align-items: center;\\n gap: 6px;\\n padding: 6px 10px;\\n border: 1px solid var(--dt-accent);\\n border-radius: 2px;\\n background: var(--dt-surface);\\n color: var(--dt-text);\\n font-family: var(\\n --font-mono,\\n 'SF Mono',\\n Monaco,\\n 'Cascadia Code',\\n 'Roboto Mono',\\n Consolas,\\n monospace\\n );\\n font-size: 0.8125rem;\\n font-weight: 600;\\n letter-spacing: 0.04em;\\n line-height: 1;\\n cursor: pointer;\\n transition: all 0.1s ease;\\n user-select: none;\\n position: relative;\\n}\\n\\n/* Corner accents */\\n.dt-select-trigger::before {\\n content: '';\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 4px;\\n height: 4px;\\n border-top: 1px solid var(--dt-accent);\\n border-left: 1px solid var(--dt-accent);\\n}\\n\\n.dt-select-trigger::after {\\n content: '';\\n position: absolute;\\n bottom: 0;\\n right: 0;\\n width: 4px;\\n height: 4px;\\n border-bottom: 1px solid var(--dt-accent);\\n border-right: 1px solid var(--dt-accent);\\n}\\n\\n.dt-select-trigger:hover:not([disabled]) {\\n background: var(--dt-accent);\\n color: var(--dt-text-on-accent);\\n}\\n\\n.dt-select-trigger:hover:not([disabled])::before,\\n.dt-select-trigger:hover:not([disabled])::after {\\n border-color: var(--dt-text-on-accent);\\n}\\n\\n.dt-select-trigger[aria-expanded='true'] {\\n background: var(--dt-accent);\\n color: var(--dt-text-on-accent);\\n}\\n\\n.dt-select-trigger[aria-expanded='true']::before,\\n.dt-select-trigger[aria-expanded='true']::after {\\n border-color: var(--dt-text-on-accent);\\n}\\n\\n.dt-select-label {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n.dt-select-chevron {\\n color: currentColor;\\n font-size: 10px;\\n transition: transform 140ms ease;\\n opacity: 0.7;\\n}\\n\\n.dt-select-trigger[aria-expanded='true'] .dt-select-chevron {\\n transform: rotate(180deg);\\n}\\n\";", "import selectMenuCss from './styles/select-menu.css?raw';\nimport selectTriggerCss from './styles/select-trigger.css?raw';\n\nconst TRIGGER_CLS = 'dt-select-trigger';\nconst LABEL_CLS = 'dt-select-label';\nconst CHEVRON_CLS = 'dt-select-chevron';\nconst MENU_CLS = 'dt-select-menu';\nconst OPTION_CLS = 'dt-select-option';\nconst OPTION_ACTIVE_CLS = 'dt-select-option--active';\n\n/** Shape of an option passed via the `options` property. */\nexport interface DtSelectOption {\n value: string;\n label: string;\n}\n\n/** Ensure the shared global menu stylesheet is injected exactly once. */\nlet menuStyleInjected = false;\nfunction ensureMenuStyles(): void {\n if (menuStyleInjected) return;\n const style = document.createElement('style');\n style.setAttribute('data-dt-select', '');\n style.textContent = selectMenuCss;\n document.head.appendChild(style);\n menuStyleInjected = true;\n}\n\nexport type DtSelectAlign = 'left' | 'right';\n\n/**\n * `<dt-select>` \u2014 framework-agnostic select/dropdown web component.\n *\n * Uses Shadow DOM for the trigger button and appends the dropdown menu to\n * `document.body` so it can escape overflow/clip ancestors.\n *\n * ## Attributes\n * - `value` \u2014 the currently selected option value\n * - `placeholder` \u2014 text shown when no value is selected (default \"Select...\")\n * - `disabled` \u2014 when present, interaction is suppressed\n * - `align` \u2014 horizontal alignment of the popup relative to the trigger:\n * \"left\" (default) or \"right\"\n *\n * ## Properties\n * - `options` \u2014 `Array<{ value: string; label: string }>` set via JS\n *\n * ## Events\n * - `dt-change` \u2014 fired when the user selects an option; `detail.value` is\n * the selected value\n *\n * ## Usage\n * ```html\n * <dt-select placeholder=\"Choose session\" value=\"s1\" align=\"right\"></dt-select>\n * <script>\n * const sel = document.querySelector('dt-select');\n * sel.options = [\n * { value: 's1', label: 'Session 1' },\n * { value: 's2', label: 'Session 2' },\n * ];\n * sel.addEventListener('dt-change', (e) => console.log(e.detail.value));\n * </script>\n * ```\n */\nexport class DtSelect extends HTMLElement {\n // \u2500\u2500 Private state \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n private _menu: HTMLDivElement | null = null;\n private _trigger: HTMLButtonElement | null = null;\n private _options: DtSelectOption[] = [];\n private _open = false;\n private _menuId = '';\n\n // \u2500\u2500 Observed attributes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n static get observedAttributes(): string[] {\n return ['value', 'placeholder', 'disabled', 'align'];\n }\n\n // \u2500\u2500 Attribute helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n get value(): string {\n return this.getAttribute('value') ?? '';\n }\n set value(val: string) {\n this.setAttribute('value', val);\n }\n\n get placeholder(): string {\n return this.getAttribute('placeholder') ?? 'Select\\u2026';\n }\n set placeholder(val: string) {\n this.setAttribute('placeholder', val);\n }\n\n get disabled(): boolean {\n return this.hasAttribute('disabled');\n }\n set disabled(val: boolean) {\n if (val) {\n this.setAttribute('disabled', '');\n } else {\n this.removeAttribute('disabled');\n }\n }\n\n get align(): DtSelectAlign {\n const val = this.getAttribute('align');\n if (val === 'right') return 'right';\n return 'left';\n }\n set align(val: DtSelectAlign) {\n this.setAttribute('align', val);\n }\n\n // \u2500\u2500 Options property (JS-only, not reflected as attribute) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n get options(): DtSelectOption[] {\n return this._options;\n }\n set options(val: DtSelectOption[]) {\n this._options = val;\n this._updateLabel();\n if (this._open) {\n this._renderMenuItems();\n }\n }\n\n // \u2500\u2500 Lifecycle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = selectTriggerCss;\n shadow.appendChild(style);\n\n const btn = document.createElement('button');\n btn.type = 'button';\n btn.className = TRIGGER_CLS;\n btn.setAttribute('aria-haspopup', 'listbox');\n btn.setAttribute('aria-expanded', 'false');\n\n const label = document.createElement('span');\n label.className = LABEL_CLS;\n btn.appendChild(label);\n\n const chevron = document.createElement('span');\n chevron.className = CHEVRON_CLS;\n chevron.setAttribute('aria-hidden', 'true');\n chevron.textContent = '\\u25BE'; // \u25BE small down-pointing triangle\n btn.appendChild(chevron);\n\n shadow.appendChild(btn);\n\n this._trigger = btn;\n this._menuId = `dt-sel-${Math.random().toString(36).slice(2, 9)}`;\n }\n\n connectedCallback(): void {\n ensureMenuStyles();\n this._trigger!.addEventListener('click', this._onTriggerClick);\n this._updateLabel();\n }\n\n disconnectedCallback(): void {\n this._trigger!.removeEventListener('click', this._onTriggerClick);\n this._close();\n }\n\n attributeChangedCallback(name: string): void {\n if (name === 'value') {\n this._updateLabel();\n if (this._open) {\n this._renderMenuItems();\n }\n }\n if (name === 'placeholder' && !this.value) {\n this._updateLabel();\n }\n if (name === 'disabled' && this.disabled) {\n this._close();\n }\n }\n\n // \u2500\u2500 Private helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n private _updateLabel(): void {\n const labelEl = this._trigger!.querySelector(`.${LABEL_CLS}`) as HTMLSpanElement;\n const selected = this._options.find((o) => o.value === this.value);\n labelEl.textContent = selected?.label ?? this.placeholder;\n }\n\n // \u2500\u2500 Toggle / open / close \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n private _onTriggerClick = (): void => {\n if (this.disabled) return;\n if (this._open) {\n this._close();\n } else {\n this._openMenu();\n }\n };\n\n private _openMenu(): void {\n if (this._open) return;\n\n const menu = document.createElement('div');\n menu.className = MENU_CLS;\n menu.id = this._menuId;\n menu.setAttribute('role', 'listbox');\n document.body.appendChild(menu);\n this._menu = menu;\n\n this._renderMenuItems();\n this._position();\n\n // Show after a microtask so the transition plays\n requestAnimationFrame(() => {\n menu.setAttribute('data-open', '');\n });\n\n this._open = true;\n this._trigger!.setAttribute('aria-expanded', 'true');\n\n // Close on outside click (next tick to avoid the current click)\n requestAnimationFrame(() => {\n document.addEventListener('mousedown', this._onOutsideClick);\n document.addEventListener('keydown', this._onKeyDown);\n });\n }\n\n private _close(): void {\n if (!this._open) return;\n\n document.removeEventListener('mousedown', this._onOutsideClick);\n document.removeEventListener('keydown', this._onKeyDown);\n\n if (this._menu) {\n this._menu.removeAttribute('data-open');\n // Remove after the fade-out transition\n const menu = this._menu;\n setTimeout(() => menu.remove(), 140);\n this._menu = null;\n }\n\n this._open = false;\n this._trigger!.setAttribute('aria-expanded', 'false');\n }\n\n private _onOutsideClick = (e: MouseEvent): void => {\n const target = e.target as Node;\n // Click inside the menu or on the trigger \u2014 ignore\n if (this._menu?.contains(target) || this.contains(target)) return;\n this._close();\n };\n\n private _onKeyDown = (e: KeyboardEvent): void => {\n if (e.key === 'Escape') {\n this._close();\n this._trigger!.focus();\n }\n };\n\n // \u2500\u2500 Menu rendering \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n private _renderMenuItems(): void {\n const menu = this._menu;\n if (!menu) return;\n\n menu.innerHTML = '';\n\n for (const opt of this._options) {\n const item = document.createElement('button');\n item.type = 'button';\n item.className = OPTION_CLS;\n item.setAttribute('role', 'option');\n item.setAttribute('aria-selected', String(opt.value === this.value));\n\n if (opt.value === this.value) {\n item.classList.add(OPTION_ACTIVE_CLS);\n }\n\n const label = document.createElement('span');\n label.textContent = opt.label;\n item.appendChild(label);\n\n item.addEventListener('click', () => {\n this._selectValue(opt.value);\n });\n\n menu.appendChild(item);\n }\n }\n\n private _selectValue(val: string): void {\n const prev = this.value;\n this.value = val;\n this._updateLabel();\n this._close();\n\n if (val !== prev) {\n this.dispatchEvent(\n new CustomEvent('dt-change', {\n detail: { value: val },\n bubbles: true,\n composed: true,\n }),\n );\n }\n }\n\n // \u2500\u2500 Positioning \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n private _position(): void {\n const menu = this._menu;\n if (!menu) return;\n\n const triggerRect = this.getBoundingClientRect();\n const gap = 10;\n const minW = Math.max(triggerRect.width, 240);\n\n // Place below the trigger by default\n let top = triggerRect.bottom + gap;\n\n // If the menu would overflow the viewport bottom, flip above\n const menuHeight = menu.scrollHeight || 260;\n const vh = window.innerHeight;\n if (top + menuHeight > vh && triggerRect.top - menuHeight - gap > 0) {\n top = triggerRect.top - menuHeight - gap;\n }\n\n menu.style.minWidth = `${minW}px`;\n\n // Horizontal alignment\n if (this.align === 'right') {\n // Anchor the menu's right edge to the trigger's right edge\n const vw = window.innerWidth;\n menu.style.right = `${vw - triggerRect.right}px`;\n menu.style.left = 'auto';\n } else {\n menu.style.left = `${triggerRect.left}px`;\n menu.style.right = 'auto';\n }\n\n menu.style.top = `${top}px`;\n }\n}\n", "export default \":host {\\n display: block;\\n margin-bottom: 12px;\\n}\\n\\n.dt-grid-inner {\\n display: grid;\\n gap: var(--grid-gap, 12px);\\n grid-template-columns: repeat(auto-fit, minmax(var(--min-width, 220px), 1fr));\\n}\\n\\n:host([cols='1']) .dt-grid-inner {\\n grid-template-columns: repeat(1, 1fr);\\n}\\n\\n:host([cols='2']) .dt-grid-inner {\\n grid-template-columns: repeat(2, 1fr);\\n}\\n\\n:host([cols='3']) .dt-grid-inner {\\n grid-template-columns: repeat(3, 1fr);\\n}\\n\\n:host([cols='4']) .dt-grid-inner {\\n grid-template-columns: repeat(4, 1fr);\\n}\\n\\n:host([cols='5']) .dt-grid-inner {\\n grid-template-columns: repeat(5, 1fr);\\n}\\n\\n:host([cols='6']) .dt-grid-inner {\\n grid-template-columns: repeat(6, 1fr);\\n}\\n\\n@media (max-width: 480px) {\\n :host([cols='2']) .dt-grid-inner,\\n :host([cols='3']) .dt-grid-inner,\\n :host([cols='4']) .dt-grid-inner,\\n :host([cols='5']) .dt-grid-inner,\\n :host([cols='6']) .dt-grid-inner {\\n grid-template-columns: 1fr;\\n }\\n}\\n\\n:host([gap='0']) .dt-grid-inner {\\n --grid-gap: 0;\\n}\\n:host([gap='4']) .dt-grid-inner {\\n --grid-gap: 4px;\\n}\\n:host([gap='8']) .dt-grid-inner {\\n --grid-gap: 8px;\\n}\\n:host([gap='12']) .dt-grid-inner {\\n --grid-gap: 12px;\\n}\\n:host([gap='16']) .dt-grid-inner {\\n --grid-gap: 16px;\\n}\\n:host([gap='20']) .dt-grid-inner {\\n --grid-gap: 20px;\\n}\\n:host([gap='24']) .dt-grid-inner {\\n --grid-gap: 24px;\\n}\\n:host([gap='32']) .dt-grid-inner {\\n --grid-gap: 32px;\\n}\\n\\n:host([min-width='150']) .dt-grid-inner {\\n --min-width: 150px;\\n}\\n:host([min-width='180']) .dt-grid-inner {\\n --min-width: 180px;\\n}\\n:host([min-width='200']) .dt-grid-inner {\\n --min-width: 200px;\\n}\\n:host([min-width='220']) .dt-grid-inner {\\n --min-width: 220px;\\n}\\n:host([min-width='260']) .dt-grid-inner {\\n --min-width: 260px;\\n}\\n:host([min-width='300']) .dt-grid-inner {\\n --min-width: 300px;\\n}\\n\\n::slotted(*) {\\n min-width: 0;\\n}\\n\";", "import gridCss from './styles/grid.css?raw';\n\nconst GRID_CLS = 'dt-grid-inner';\n\ntype GridCols = '1' | '2' | '3' | '4' | '5' | '6';\ntype GridGap = '0' | '4' | '8' | '12' | '16' | '20' | '24' | '32';\ntype GridMinWidth = '150' | '180' | '200' | '220' | '260' | '300';\n\n/**\n * `<dt-grid>` \u2014 framework-agnostic responsive grid web component.\n *\n * Provides a grid layout that auto-collapses to single column in narrow views.\n * Uses CSS Grid's repeat(auto-fit) pattern with minmax for responsive behavior.\n *\n * ## Attributes\n * - `cols` \u2014 fixed number of columns (1-6). Auto-fit responsive when omitted.\n * - `gap` \u2014 spacing between items: 0, 4, 8, 12, 16, 20, 24, 32 (default: 16)\n * - `min-width` \u2014 minimum width for auto-fit columns: 150, 180, 200, 220, 260, 300 (default: 220)\n *\n * ## Usage\n * ```html\n * <!-- Auto-responsive: columns collapse based on available space -->\n * <dt-grid>\n * <dt-card>Item 1</dt-card>\n * <dt-card>Item 2</dt-card>\n * <dt-card>Item 3</dt-card>\n * </dt-grid>\n *\n * <!-- Fixed 3 columns, collapses to 1 on mobile -->\n * <dt-grid cols=\"3\" gap=\"24\">\n * <dt-card>Item 1</dt-card>\n * <dt-card>Item 2</dt-card>\n * <dt-card>Item 3</dt-card>\n * </dt-grid>\n *\n * <!-- Narrow items: more columns fit side-by-side -->\n * <dt-grid min-width=\"150\">\n * <dt-stat label=\"CPU\" value=\"42%\"></dt-stat>\n * <dt-stat label=\"RAM\" value=\"8GB\"></dt-stat>\n * <dt-stat label=\"Disk\" value=\"256GB\"></dt-stat>\n * </dt-grid>\n * ```\n */\nexport class DtGrid extends HTMLElement {\n // \u2500\u2500 Observed attributes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n static get observedAttributes(): string[] {\n return ['cols', 'gap', 'min-width'];\n }\n\n // \u2500\u2500 Attribute helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n get cols(): GridCols | null {\n const val = this.getAttribute('cols');\n if (val === '1' || val === '2' || val === '3' || val === '4' || val === '5' || val === '6') {\n return val;\n }\n return null;\n }\n\n set cols(val: GridCols | null) {\n if (val === null) {\n this.removeAttribute('cols');\n } else {\n this.setAttribute('cols', val);\n }\n }\n\n get gap(): GridGap {\n const val = this.getAttribute('gap');\n if (\n val === '0' ||\n val === '4' ||\n val === '8' ||\n val === '12' ||\n val === '20' ||\n val === '24' ||\n val === '32'\n ) {\n return val;\n }\n return '16';\n }\n\n set gap(val: GridGap) {\n this.setAttribute('gap', val);\n }\n\n get minWidth(): GridMinWidth {\n const val = this.getAttribute('min-width');\n if (val === '150' || val === '180' || val === '200' || val === '260' || val === '300') {\n return val;\n }\n return '220';\n }\n\n set minWidth(val: GridMinWidth) {\n this.setAttribute('min-width', val);\n }\n\n // \u2500\u2500 Lifecycle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = gridCss;\n shadow.appendChild(style);\n\n const wrapper = document.createElement('div');\n wrapper.className = GRID_CLS;\n wrapper.innerHTML = '<slot></slot>';\n shadow.appendChild(wrapper);\n }\n}\n", "export default \":host {\\n display: block;\\n margin-bottom: 12px;\\n}\\n\\n.dt-stack-inner {\\n display: flex;\\n flex-direction: var(--flex-direction, column);\\n gap: var(--stack-gap, 12px);\\n align-items: var(--align-items, stretch);\\n}\\n\\n:host([direction='column']) .dt-stack-inner {\\n --flex-direction: column;\\n}\\n:host([direction='row']) .dt-stack-inner {\\n --flex-direction: row;\\n}\\n\\n:host([gap='0']) .dt-stack-inner {\\n --stack-gap: 0;\\n}\\n:host([gap='4']) .dt-stack-inner {\\n --stack-gap: 4px;\\n}\\n:host([gap='8']) .dt-stack-inner {\\n --stack-gap: 8px;\\n}\\n:host([gap='12']) .dt-stack-inner {\\n --stack-gap: 12px;\\n}\\n:host([gap='16']) .dt-stack-inner {\\n --stack-gap: 16px;\\n}\\n:host([gap='20']) .dt-stack-inner {\\n --stack-gap: 20px;\\n}\\n:host([gap='24']) .dt-stack-inner {\\n --stack-gap: 24px;\\n}\\n:host([gap='32']) .dt-stack-inner {\\n --stack-gap: 32px;\\n}\\n\\n:host([align='start']) .dt-stack-inner {\\n --align-items: flex-start;\\n}\\n:host([align='center']) .dt-stack-inner {\\n --align-items: center;\\n}\\n:host([align='end']) .dt-stack-inner {\\n --align-items: flex-end;\\n}\\n:host([align='stretch']) .dt-stack-inner {\\n --align-items: stretch;\\n}\\n\\n@media (max-width: 480px) {\\n :host([direction='row']) .dt-stack-inner {\\n --flex-direction: column;\\n }\\n}\\n\\n::slotted(*) {\\n min-width: 0;\\n}\\n\";", "import stackCss from './styles/stack.css?raw';\n\nconst STACK_CLS = 'dt-stack-inner';\n\ntype StackDirection = 'column' | 'row';\ntype StackGap = '0' | '4' | '8' | '12' | '16' | '20' | '24' | '32';\ntype StackAlign = 'start' | 'center' | 'end' | 'stretch';\n\nfunction normalizeDirection(value: string | null): StackDirection {\n if (value === 'row' || value === 'horizontal') {\n return 'row';\n }\n\n return 'column';\n}\n\n/**\n * `<dt-stack>` \u2014 framework-agnostic flexbox stack web component.\n *\n * Provides vertical or horizontal flexbox layout with responsive behavior.\n * Row stacks automatically wrap to column on narrow views.\n *\n * ## Attributes\n * - `direction` \u2014 stack direction: `column` (default) or `row`\n * - `gap` \u2014 spacing between items: 0, 4, 8, 12, 16, 20, 24, 32 (default: 16)\n * - `align` \u2014 cross-axis alignment: `start`, `center`, `end`, `stretch` (default: stretch)\n *\n * ## Usage\n * ```html\n * <!-- Vertical stack (default) -->\n * <dt-stack>\n * <dt-card>Item 1</dt-card>\n * <dt-card>Item 2</dt-card>\n * <dt-card>Item 3</dt-card>\n * </dt-stack>\n *\n * <!-- Horizontal row (wraps to column on narrow views) -->\n * <dt-stack direction=\"row\" gap=\"24\">\n * <dt-button>Save</dt-button>\n * <dt-button variant=\"secondary\">Cancel</dt-button>\n * </dt-stack>\n *\n * <!-- Centered horizontal row -->\n * <dt-stack direction=\"row\" align=\"center\" gap=\"8\">\n * <dt-badge variant=\"success\">Active</dt-badge>\n * <span>System running</span>\n * </dt-stack>\n * ```\n */\nexport class DtStack extends HTMLElement {\n // \u2500\u2500 Observed attributes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n static get observedAttributes(): string[] {\n return ['direction', 'gap', 'align'];\n }\n\n // \u2500\u2500 Attribute helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n get direction(): StackDirection {\n return normalizeDirection(this.getAttribute('direction'));\n }\n\n set direction(val: StackDirection) {\n this.setAttribute('direction', normalizeDirection(val));\n }\n\n get gap(): StackGap {\n const val = this.getAttribute('gap');\n if (\n val === '0' ||\n val === '4' ||\n val === '8' ||\n val === '12' ||\n val === '20' ||\n val === '24' ||\n val === '32'\n ) {\n return val;\n }\n return '16';\n }\n\n set gap(val: StackGap) {\n this.setAttribute('gap', val);\n }\n\n get align(): StackAlign {\n const val = this.getAttribute('align');\n if (val === 'start' || val === 'center' || val === 'end') {\n return val;\n }\n return 'stretch';\n }\n\n set align(val: StackAlign) {\n this.setAttribute('align', val);\n }\n\n // \u2500\u2500 Lifecycle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n connectedCallback() {\n this.#normalizeAttributes();\n }\n\n attributeChangedCallback(name: string): void {\n if (name === 'direction') {\n this.#normalizeAttributes();\n }\n }\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = stackCss;\n shadow.appendChild(style);\n\n const wrapper = document.createElement('div');\n wrapper.className = STACK_CLS;\n wrapper.innerHTML = '<slot></slot>';\n shadow.appendChild(wrapper);\n }\n\n #normalizeAttributes(): void {\n const rawDirection = this.getAttribute('direction');\n const normalizedDirection = normalizeDirection(rawDirection);\n if (rawDirection !== null && rawDirection !== normalizedDirection) {\n this.setAttribute('direction', normalizedDirection);\n }\n }\n}\n", "export default \":host {\\n display: block;\\n}\\n\\n.dt-stat-inner {\\n background: var(--dt-surface);\\n border: 1px solid var(--dt-accent);\\n border-radius: 2px;\\n padding: 12px;\\n font-family: var(--font-ui, 'Work Sans', system-ui, sans-serif);\\n display: flex;\\n flex-direction: column;\\n gap: 4px;\\n position: relative;\\n}\\n\\n/* Corner accents */\\n.dt-stat-inner::before {\\n content: '';\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 6px;\\n height: 6px;\\n border-top: 1px solid var(--dt-accent);\\n border-left: 1px solid var(--dt-accent);\\n}\\n\\n.dt-stat-inner .label {\\n font-size: 0.625rem;\\n font-weight: 600;\\n color: var(--dt-text-muted);\\n text-transform: uppercase;\\n letter-spacing: 0.12em;\\n}\\n\\n.dt-stat-inner .value {\\n font-size: 1.5rem;\\n font-weight: 600;\\n color: var(--dt-accent);\\n line-height: 1.1;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n font-family: var(--font-display, 'Sora', system-ui, sans-serif);\\n}\\n\\n.dt-stat-inner .description {\\n font-size: 0.75rem;\\n color: var(--dt-text-secondary);\\n line-height: 1.3;\\n}\\n\\n/* Size variants */\\n:host([size='sm']) .dt-stat-inner .value {\\n font-size: 1.125rem;\\n}\\n\\n:host([size='sm']) .dt-stat-inner {\\n padding: 8px;\\n}\\n\\n:host([size='lg']) .dt-stat-inner .value {\\n font-size: 2rem;\\n}\\n\\n:host([size='lg']) .dt-stat-inner {\\n padding: 16px;\\n}\\n\\n/* Variant: outlined */\\n:host([variant='outlined']) .dt-stat-inner {\\n background: transparent;\\n border-style: dashed;\\n}\\n\\n/* Variant: filled */\\n:host([variant='filled']) .dt-stat-inner {\\n background: var(--dt-accent-subtle);\\n border-style: solid;\\n}\\n\\n/* Trend indicators */\\n.dt-stat-inner .trend {\\n display: inline-flex;\\n align-items: center;\\n gap: 3px;\\n font-size: 0.6875rem;\\n font-weight: 600;\\n margin-top: 2px;\\n text-transform: uppercase;\\n letter-spacing: 0.05em;\\n}\\n\\n.dt-stat-inner .trend.positive {\\n color: var(--dt-success);\\n}\\n\\n.dt-stat-inner .trend.negative {\\n color: var(--dt-danger);\\n}\\n\\n.dt-stat-inner .trend.neutral {\\n color: var(--dt-text-muted);\\n}\\n\";", "import statCss from './styles/stat.css?raw';\n\nconst STAT_CLS = 'dt-stat-inner';\n\ntype StatSize = 'sm' | 'md' | 'lg';\ntype StatVariant = 'default' | 'outlined' | 'filled';\n\n/**\n * `<dt-stat>` \u2014 framework-agnostic statistic/metric display web component.\n *\n * Displays a metric/KPI with label, value, and optional description.\n * Designed for dashboards and system monitors.\n *\n * ## Attributes\n * - `label` \u2014 the metric label (e.g., \"CPU Usage\", \"Memory\")\n * - `value` \u2014 the metric value (e.g., \"42%\", \"8.2 GB\")\n * - `description` \u2014 optional descriptive text\n * - `size` \u2014 size variant: `sm`, `md` (default), `lg`\n * - `variant` \u2014 visual style: `default`, `outlined`, `filled`\n * - `trend` \u2014 optional trend indicator: `up`, `down`, `neutral` (shows +/\u2212 symbol)\n * - `trend-value` \u2014 value to display with trend (e.g., \"+5%\")\n *\n * ## Usage\n * ```html\n * <dt-stat label=\"CPU Usage\" value=\"42%\"></dt-stat>\n *\n * <dt-stat label=\"Memory\" value=\"8.2 GB\" description=\"of 16 GB used\"></dt-stat>\n *\n * <dt-stat label=\"Uptime\" value=\"99.9%\" size=\"lg\" variant=\"filled\"></dt-stat>\n *\n * <dt-stat\n * label=\"Traffic\"\n * value=\"12.5k\"\n * description=\"visitors today\"\n * trend=\"up\"\n * trend-value=\"+18%\"\n * ></dt-stat>\n * ```\n */\nexport class DtStat extends HTMLElement {\n // \u2500\u2500 Observed attributes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n static get observedAttributes(): string[] {\n return ['label', 'value', 'description', 'size', 'variant', 'trend', 'trend-value'];\n }\n\n // \u2500\u2500 Internal refs \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n private _container!: HTMLDivElement;\n private _labelEl!: HTMLDivElement;\n private _valueEl!: HTMLDivElement;\n private _descEl!: HTMLDivElement;\n private _trendEl!: HTMLDivElement;\n\n // \u2500\u2500 Attribute helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n get label(): string | null {\n return this.getAttribute('label');\n }\n\n set label(val: string | null) {\n if (val === null) {\n this.removeAttribute('label');\n } else {\n this.setAttribute('label', val);\n }\n }\n\n get value(): string | null {\n return this.getAttribute('value');\n }\n\n set value(val: string | null) {\n if (val === null) {\n this.removeAttribute('value');\n } else {\n this.setAttribute('value', val);\n }\n }\n\n get description(): string | null {\n return this.getAttribute('description');\n }\n\n set description(val: string | null) {\n if (val === null) {\n this.removeAttribute('description');\n } else {\n this.setAttribute('description', val);\n }\n }\n\n get size(): StatSize {\n const val = this.getAttribute('size');\n if (val === 'sm' || val === 'lg') return val;\n return 'md';\n }\n\n set size(val: StatSize) {\n this.setAttribute('size', val);\n }\n\n get variant(): StatVariant {\n const val = this.getAttribute('variant');\n if (val === 'outlined' || val === 'filled') return val;\n return 'default';\n }\n\n set variant(val: StatVariant) {\n this.setAttribute('variant', val);\n }\n\n get trend(): 'up' | 'down' | 'neutral' | null {\n const val = this.getAttribute('trend');\n if (val === 'up' || val === 'down' || val === 'neutral') return val;\n return null;\n }\n\n set trend(val: 'up' | 'down' | 'neutral' | null) {\n if (val === null) {\n this.removeAttribute('trend');\n } else {\n this.setAttribute('trend', val);\n }\n }\n\n get trendValue(): string | null {\n return this.getAttribute('trend-value');\n }\n\n set trendValue(val: string | null) {\n if (val === null) {\n this.removeAttribute('trend-value');\n } else {\n this.setAttribute('trend-value', val);\n }\n }\n\n // \u2500\u2500 Lifecycle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = statCss;\n shadow.appendChild(style);\n\n this._container = document.createElement('div');\n this._container.className = STAT_CLS;\n\n this._labelEl = document.createElement('div');\n this._labelEl.className = 'label';\n this._container.appendChild(this._labelEl);\n\n this._valueEl = document.createElement('div');\n this._valueEl.className = 'value';\n this._container.appendChild(this._valueEl);\n\n this._descEl = document.createElement('div');\n this._descEl.className = 'description';\n this._container.appendChild(this._descEl);\n\n this._trendEl = document.createElement('div');\n this._trendEl.className = 'trend';\n this._container.appendChild(this._trendEl);\n\n shadow.appendChild(this._container);\n\n this._render();\n }\n\n // \u2500\u2500 Updates \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n attributeChangedCallback(name: string, _oldVal: string | null, _newVal: string | null): void {\n if (\n name === 'label' ||\n name === 'value' ||\n name === 'description' ||\n name === 'size' ||\n name === 'variant' ||\n name === 'trend' ||\n name === 'trend-value'\n ) {\n this._render();\n }\n }\n\n private _render(): void {\n this._labelEl.textContent = this.label ?? '';\n this._labelEl.style.display = this.label ? 'block' : 'none';\n\n this._valueEl.textContent = this.value ?? '';\n this._valueEl.style.display = this.value ? 'block' : 'none';\n\n this._descEl.textContent = this.description ?? '';\n this._descEl.style.display = this.description ? 'block' : 'none';\n\n const trend = this.trend;\n const trendValue = this.trendValue;\n\n if (trend && trendValue) {\n this._trendEl.style.display = 'inline-flex';\n this._trendEl.className = `trend ${trend === 'up' ? 'positive' : trend === 'down' ? 'negative' : 'neutral'}`;\n\n let symbol = '';\n if (trend === 'up') symbol = '\u2191';\n else if (trend === 'down') symbol = '\u2193';\n else symbol = '\u2192';\n\n this._trendEl.textContent = `${symbol} ${trendValue}`;\n } else {\n this._trendEl.style.display = 'none';\n }\n }\n}\n", "export default \":host {\\n display: inline-flex;\\n vertical-align: middle;\\n}\\n\\n.dt-badge-inner {\\n display: inline-flex;\\n align-items: center;\\n padding: 2px 6px;\\n border: 1px solid;\\n border-radius: 2px;\\n font-size: 0.6875rem;\\n font-weight: 600;\\n font-family: var(\\n --font-mono,\\n 'SF Mono',\\n Monaco,\\n 'Cascadia Code',\\n 'Roboto Mono',\\n Consolas,\\n monospace\\n );\\n line-height: 1.2;\\n white-space: nowrap;\\n text-transform: uppercase;\\n letter-spacing: 0.1em;\\n}\\n\\n/* Variant: accent (default) */\\n:host([variant='accent']) .dt-badge-inner,\\n.dt-badge-inner {\\n background: var(--dt-accent-subtle);\\n border-color: var(--dt-accent);\\n color: var(--dt-accent);\\n}\\n\\n/* Variant: success */\\n:host([variant='success']) .dt-badge-inner {\\n background: var(--dt-success-subtle);\\n border-color: var(--dt-success);\\n color: var(--dt-success);\\n}\\n\\n/* Variant: danger */\\n:host([variant='danger']) .dt-badge-inner {\\n background: var(--dt-danger-subtle);\\n border-color: var(--dt-danger);\\n color: var(--dt-danger);\\n}\\n\\n/* Variant: warning */\\n:host([variant='warning']) .dt-badge-inner {\\n background: var(--dt-warning-subtle);\\n border-color: var(--dt-warning);\\n color: var(--dt-warning);\\n}\\n\\n/* Variant: info */\\n:host([variant='info']) .dt-badge-inner {\\n background: var(--dt-info-subtle);\\n border-color: var(--dt-info);\\n color: var(--dt-info);\\n}\\n\\n/* Variant: default/neutral */\\n:host([variant='default']) .dt-badge-inner,\\n:host([variant='neutral']) .dt-badge-inner {\\n background: transparent;\\n border-color: var(--dt-border);\\n color: var(--dt-text-secondary);\\n}\\n\\n/* Size variants */\\n:host([size='sm']) .dt-badge-inner {\\n padding: 1px 4px;\\n font-size: 0.625rem;\\n}\\n\\n:host([size='lg']) .dt-badge-inner {\\n padding: 3px 8px;\\n font-size: 0.75rem;\\n}\\n\";", "import badgeCss from './styles/badge.css?raw';\n\nconst BADGE_CLS = 'dt-badge-inner';\n\ntype BadgeVariant = 'accent' | 'success' | 'danger' | 'warning' | 'info' | 'default' | 'neutral';\ntype BadgeSize = 'sm' | 'md' | 'lg';\n\n/**\n * `<dt-badge>` \u2014 framework-agnostic status badge web component.\n *\n * Inline status pill/badge for labels and indicators.\n *\n * ## Attributes\n * - `variant` \u2014 status color: `accent` (default), `success`, `danger`, `warning`, `info`, `neutral`\n * - `size` \u2014 size: `sm`, `md` (default), `lg`\n * - `text` \u2014 the badge text (alternative to slot)\n *\n * ## Usage\n * ```html\n * <dt-badge>New</dt-badge>\n *\n * <dt-badge variant=\"success\">Active</dt-badge>\n *\n * <dt-badge variant=\"danger\" size=\"lg\">Error</dt-badge>\n *\n * <dt-badge variant=\"info\" size=\"sm\">Beta</dt-badge>\n * ```\n */\nexport class DtBadge extends HTMLElement {\n // \u2500\u2500 Observed attributes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n static get observedAttributes(): string[] {\n return ['variant', 'size', 'text'];\n }\n\n // \u2500\u2500 Internal refs \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n private _container!: HTMLSpanElement;\n private _slot!: HTMLSlotElement;\n\n // \u2500\u2500 Attribute helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n get variant(): BadgeVariant {\n const val = this.getAttribute('variant');\n if (\n val === 'success' ||\n val === 'danger' ||\n val === 'warning' ||\n val === 'info' ||\n val === 'default' ||\n val === 'neutral'\n ) {\n return val;\n }\n return 'accent';\n }\n\n set variant(val: BadgeVariant) {\n this.setAttribute('variant', val);\n }\n\n get size(): BadgeSize {\n const val = this.getAttribute('size');\n if (val === 'sm' || val === 'lg') return val;\n return 'md';\n }\n\n set size(val: BadgeSize) {\n this.setAttribute('size', val);\n }\n\n get text(): string | null {\n return this.getAttribute('text');\n }\n\n set text(val: string | null) {\n if (val === null) {\n this.removeAttribute('text');\n } else {\n this.setAttribute('text', val);\n }\n }\n\n // \u2500\u2500 Lifecycle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = badgeCss;\n shadow.appendChild(style);\n\n this._container = document.createElement('span');\n this._container.className = BADGE_CLS;\n\n // If text attribute is set, use it; otherwise use a slot\n const textAttr = this.text;\n if (textAttr !== null) {\n this._container.textContent = textAttr;\n } else {\n this._slot = document.createElement('slot');\n this._container.appendChild(this._slot);\n }\n\n shadow.appendChild(this._container);\n }\n\n // \u2500\u2500 Updates \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n attributeChangedCallback(name: string, _oldVal: string | null, _newVal: string | null): void {\n if (name === 'text') {\n this._render();\n }\n }\n\n private _render(): void {\n const textAttr = this.text;\n if (textAttr !== null) {\n this._container.textContent = textAttr;\n }\n }\n}\n", "export default \":host {\\n display: inline-flex;\\n vertical-align: middle;\\n}\\n\\n.dt-button-inner {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n gap: 4px;\\n padding: 6px 12px;\\n border: 1px solid var(--dt-accent);\\n border-radius: 2px;\\n font-size: 0.8125rem;\\n font-weight: 600;\\n font-family: var(--font-ui, 'Work Sans', system-ui, sans-serif);\\n line-height: 1.2;\\n cursor: pointer;\\n transition: all 0.1s ease;\\n background: var(--dt-surface);\\n color: var(--dt-accent);\\n text-transform: uppercase;\\n letter-spacing: 0.08em;\\n position: relative;\\n}\\n\\n/* Corner accents */\\n.dt-button-inner::before {\\n content: '';\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 4px;\\n height: 4px;\\n border-top: 1px solid var(--dt-accent);\\n border-left: 1px solid var(--dt-accent);\\n}\\n\\n.dt-button-inner::after {\\n content: '';\\n position: absolute;\\n bottom: 0;\\n right: 0;\\n width: 4px;\\n height: 4px;\\n border-bottom: 1px solid var(--dt-accent);\\n border-right: 1px solid var(--dt-accent);\\n}\\n\\n.dt-button-inner:hover:not(:disabled) {\\n background: var(--dt-accent);\\n color: var(--dt-text-on-accent);\\n}\\n\\n.dt-button-inner:hover:not(:disabled)::before,\\n.dt-button-inner:hover:not(:disabled)::after {\\n border-color: var(--dt-text-on-accent);\\n}\\n\\n.dt-button-inner:active:not(:disabled) {\\n background: var(--dt-accent-active);\\n}\\n\\n.dt-button-inner:disabled {\\n opacity: 0.4;\\n cursor: not-allowed;\\n border-color: var(--dt-border);\\n color: var(--dt-text-muted);\\n}\\n\\n.dt-button-inner:disabled::before,\\n.dt-button-inner:disabled::after {\\n border-color: var(--dt-border);\\n}\\n\\n/* Variant: primary - filled accent */\\n:host([variant='primary']) .dt-button-inner {\\n background: var(--dt-accent);\\n color: var(--dt-text-on-accent);\\n}\\n\\n:host([variant='primary']) .dt-button-inner:hover:not(:disabled) {\\n background: var(--dt-accent-hover);\\n}\\n\\n/* Variant: secondary - outlined */\\n:host([variant='secondary']) .dt-button-inner {\\n background: transparent;\\n border-color: var(--dt-border);\\n color: var(--dt-text);\\n}\\n\\n:host([variant='secondary']) .dt-button-inner:hover:not(:disabled) {\\n background: var(--dt-surface-hover);\\n border-color: var(--dt-accent);\\n color: var(--dt-accent);\\n}\\n\\n/* Variant: ghost - minimal */\\n:host([variant='ghost']) .dt-button-inner {\\n background: transparent;\\n border-color: transparent;\\n color: var(--dt-text-secondary);\\n}\\n\\n:host([variant='ghost']) .dt-button-inner:hover:not(:disabled) {\\n background: var(--dt-surface);\\n border-color: var(--dt-border);\\n color: var(--dt-text);\\n}\\n\\n:host([variant='ghost']) .dt-button-inner::before,\\n:host([variant='ghost']) .dt-button-inner::after {\\n display: none;\\n}\\n\\n/* Variant: danger */\\n:host([variant='danger']) .dt-button-inner {\\n background: transparent;\\n border-color: var(--dt-danger);\\n color: var(--dt-danger);\\n}\\n\\n:host([variant='danger']) .dt-button-inner:hover:not(:disabled) {\\n background: var(--dt-danger);\\n color: var(--dt-text-on-accent);\\n}\\n\\n:host([variant='danger']) .dt-button-inner::before,\\n:host([variant='danger']) .dt-button-inner::after {\\n border-color: var(--dt-danger);\\n}\\n\\n:host([variant='danger']) .dt-button-inner:hover:not(:disabled)::before,\\n:host([variant='danger']) .dt-button-inner:hover:not(:disabled)::after {\\n border-color: var(--dt-text-on-accent);\\n}\\n\\n/* Size: sm */\\n:host([size='sm']) .dt-button-inner {\\n padding: 4px 8px;\\n font-size: 0.75rem;\\n}\\n\\n/* Size: lg */\\n:host([size='lg']) .dt-button-inner {\\n padding: 8px 16px;\\n font-size: 0.875rem;\\n}\\n\\n:host([fullwidth]) .dt-button-inner {\\n width: 100%;\\n}\\n\\n::slotted([slot='icon']) {\\n display: inline-flex;\\n width: 1em;\\n height: 1em;\\n}\\n\";", "import buttonCss from './styles/button.css?raw';\n\nconst BUTTON_CLS = 'dt-button-inner';\n\ntype ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';\ntype ButtonSize = 'sm' | 'md' | 'lg';\n\n/**\n * `<dt-button>` \u2014 framework-agnostic button web component.\n *\n * Themed button with multiple variants and sizes. Automatically styles to match\n * the DeskTalk design system using CSS custom properties.\n *\n * ## Attributes\n * - `variant` \u2014 button style: `primary` (default), `secondary`, `ghost`, `danger`\n * - `size` \u2014 button size: `sm`, `md` (default), `lg`\n * - `disabled` \u2014 disables the button\n * - `fullwidth` \u2014 makes the button fill its container width\n * - `type` \u2014 HTML button type: `button` (default), `submit`, `reset`\n *\n * ## Slots\n * - default \u2014 button content (text, icons, etc.)\n * - `icon` \u2014 icon element positioned before the content\n *\n * ## Usage\n * ```html\n * <dt-button>Save</dt-button>\n *\n * <dt-button variant=\"secondary\">Cancel</dt-button>\n *\n * <dt-button variant=\"danger\" size=\"sm\">Delete</dt-button>\n *\n * <dt-button variant=\"ghost\" disabled>Disabled</dt-button>\n *\n * <dt-button fullwidth>Full Width Button</dt-button>\n * ```\n */\nexport class DtButton extends HTMLElement {\n // \u2500\u2500 Observed attributes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n static get observedAttributes(): string[] {\n return ['variant', 'size', 'disabled', 'fullwidth', 'type'];\n }\n\n // \u2500\u2500 Internal refs \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n private _button!: HTMLButtonElement;\n private _slot!: HTMLSlotElement;\n\n // \u2500\u2500 Attribute helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n get variant(): ButtonVariant {\n const val = this.getAttribute('variant');\n if (val === 'secondary' || val === 'ghost' || val === 'danger') return val;\n return 'primary';\n }\n\n set variant(val: ButtonVariant) {\n this.setAttribute('variant', val);\n }\n\n get size(): ButtonSize {\n const val = this.getAttribute('size');\n if (val === 'sm' || val === 'lg') return val;\n return 'md';\n }\n\n set size(val: ButtonSize) {\n this.setAttribute('size', val);\n }\n\n get disabled(): boolean {\n return this.hasAttribute('disabled');\n }\n\n set disabled(val: boolean) {\n if (val) {\n this.setAttribute('disabled', '');\n } else {\n this.removeAttribute('disabled');\n }\n }\n\n get fullwidth(): boolean {\n return this.hasAttribute('fullwidth');\n }\n\n set fullwidth(val: boolean) {\n if (val) {\n this.setAttribute('fullwidth', '');\n } else {\n this.removeAttribute('fullwidth');\n }\n }\n\n get type(): 'button' | 'submit' | 'reset' {\n const val = this.getAttribute('type');\n if (val === 'submit' || val === 'reset') return val;\n return 'button';\n }\n\n set type(val: 'button' | 'submit' | 'reset') {\n this.setAttribute('type', val);\n }\n\n // \u2500\u2500 Lifecycle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = buttonCss;\n shadow.appendChild(style);\n\n this._button = document.createElement('button');\n this._button.className = BUTTON_CLS;\n this._button.type = this.type;\n this._button.disabled = this.disabled;\n\n this._slot = document.createElement('slot');\n this._button.appendChild(this._slot);\n\n shadow.appendChild(this._button);\n }\n\n // \u2500\u2500 Updates \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n attributeChangedCallback(name: string, _oldVal: string | null, _newVal: string | null): void {\n switch (name) {\n case 'disabled':\n this._button.disabled = this.disabled;\n break;\n case 'type':\n this._button.type = this.type;\n break;\n }\n }\n}\n", "export default \":host {\\n display: block;\\n}\\n\\n.dt-divider-inner {\\n border: none;\\n margin: 0;\\n flex-shrink: 0;\\n}\\n\\n/* Horizontal (default) */\\n:host([direction='horizontal']) .dt-divider-inner,\\n.dt-divider-inner {\\n width: 100%;\\n height: 1px;\\n background: var(--dt-accent);\\n opacity: 0.5;\\n}\\n\\n/* Vertical */\\n:host([direction='vertical']) .dt-divider-inner {\\n width: 1px;\\n height: 100%;\\n min-height: 1em;\\n background: var(--dt-accent);\\n opacity: 0.5;\\n}\\n\\n/* Style variants */\\n:host([style-variant='subtle']) .dt-divider-inner {\\n background: var(--dt-border);\\n opacity: 1;\\n}\\n\\n:host([style-variant='strong']) .dt-divider-inner {\\n background: var(--dt-accent);\\n opacity: 1;\\n height: 2px;\\n}\\n\\n:host([direction='vertical'][style-variant='strong']) .dt-divider-inner {\\n width: 2px;\\n height: 100%;\\n}\\n\\n/* Spacing */\\n:host([spacing='sm']) .dt-divider-inner {\\n margin: 6px 0;\\n}\\n:host([spacing='md']) .dt-divider-inner {\\n margin: 12px 0;\\n}\\n:host([spacing='lg']) .dt-divider-inner {\\n margin: 18px 0;\\n}\\n\\n:host([direction='vertical'][spacing='sm']) .dt-divider-inner {\\n margin: 0 6px;\\n}\\n:host([direction='vertical'][spacing='md']) .dt-divider-inner {\\n margin: 0 12px;\\n}\\n:host([direction='vertical'][spacing='lg']) .dt-divider-inner {\\n margin: 0 18px;\\n}\\n\";", "import dividerCss from './styles/divider.css?raw';\n\nconst DIVIDER_CLS = 'dt-divider-inner';\n\ntype DividerDirection = 'horizontal' | 'vertical';\ntype DividerStyle = 'default' | 'subtle' | 'strong';\ntype DividerSpacing = 'sm' | 'md' | 'lg';\n\n/**\n * `<dt-divider>` \u2014 framework-agnostic divider/separator web component.\n *\n * Horizontal or vertical separator line for organizing content.\n *\n * ## Attributes\n * - `direction` \u2014 divider orientation: `horizontal` (default) or `vertical`\n * - `style-variant` \u2014 border style: `default`, `subtle`, `strong`\n * - `spacing` \u2014 margin around divider: `sm`, `md`, `lg`\n *\n * ## Usage\n * ```html\n * <!-- Horizontal divider (default) -->\n * <dt-divider></dt-divider>\n *\n * <!-- Subtle horizontal divider with spacing -->\n * <dt-divider style-variant=\"subtle\" spacing=\"md\"></dt-divider>\n *\n * <!-- Vertical divider in a row layout -->\n * <dt-stack direction=\"row\">\n * <span>Left</span>\n * <dt-divider direction=\"vertical\"></dt-divider>\n * <span>Right</span>\n * </dt-stack>\n * ```\n */\nexport class DtDivider extends HTMLElement {\n // \u2500\u2500 Observed attributes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n static get observedAttributes(): string[] {\n return ['direction', 'style-variant', 'spacing'];\n }\n\n // \u2500\u2500 Attribute helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n get direction(): DividerDirection {\n const val = this.getAttribute('direction');\n if (val === 'vertical') return 'vertical';\n return 'horizontal';\n }\n\n set direction(val: DividerDirection) {\n this.setAttribute('direction', val);\n }\n\n get styleVariant(): DividerStyle {\n const val = this.getAttribute('style-variant');\n if (val === 'subtle' || val === 'strong') return val;\n return 'default';\n }\n\n set styleVariant(val: DividerStyle) {\n this.setAttribute('style-variant', val);\n }\n\n get spacing(): DividerSpacing | null {\n const val = this.getAttribute('spacing');\n if (val === 'sm' || val === 'md' || val === 'lg') return val;\n return null;\n }\n\n set spacing(val: DividerSpacing | null) {\n if (val === null) {\n this.removeAttribute('spacing');\n } else {\n this.setAttribute('spacing', val);\n }\n }\n\n // \u2500\u2500 Lifecycle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = dividerCss;\n shadow.appendChild(style);\n\n const hr = document.createElement('hr');\n hr.className = DIVIDER_CLS;\n shadow.appendChild(hr);\n }\n}\n", "export default \":host {\\n display: block;\\n min-height: 180px;\\n color: var(--dt-text);\\n font-family: var(\\n --font-mono,\\n 'SF Mono',\\n Monaco,\\n 'Cascadia Code',\\n 'Roboto Mono',\\n Consolas,\\n monospace\\n );\\n}\\n\\n.dt-table-view {\\n display: flex;\\n flex-direction: column;\\n min-height: inherit;\\n height: 100%;\\n overflow: hidden;\\n background: var(--dt-surface);\\n border: 1px solid var(--dt-border);\\n border-radius: 2px;\\n position: relative;\\n}\\n\\n.dt-table-view::before,\\n.dt-table-view::after {\\n content: '';\\n position: absolute;\\n width: 8px;\\n height: 8px;\\n pointer-events: none;\\n z-index: 3;\\n}\\n\\n.dt-table-view::before {\\n top: -1px;\\n left: -1px;\\n border-top: 2px solid var(--dt-accent);\\n border-left: 2px solid var(--dt-accent);\\n}\\n\\n.dt-table-view::after {\\n right: -1px;\\n bottom: -1px;\\n border-right: 2px solid var(--dt-accent);\\n border-bottom: 2px solid var(--dt-accent);\\n}\\n\\n.dt-table-scroll {\\n min-height: inherit;\\n height: 100%;\\n overflow: auto;\\n}\\n\\n.dt-table-header,\\n.dt-table-row {\\n display: grid;\\n grid-template-columns: var(--dt-table-columns, minmax(0, 1fr));\\n min-width: fit-content;\\n}\\n\\n.dt-table-header {\\n position: sticky;\\n top: 0;\\n z-index: 2;\\n background: color-mix(in srgb, var(--dt-surface) 88%, var(--dt-accent) 12%);\\n border-bottom: 1px solid var(--dt-border);\\n}\\n\\n.dt-table-header-cell,\\n.dt-table-cell {\\n min-width: 0;\\n padding: 10px 12px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n font-size: 0.8125rem;\\n}\\n\\n.dt-table-header-cell {\\n color: var(--dt-accent);\\n font-size: 0.75rem;\\n font-weight: 600;\\n letter-spacing: 0.1em;\\n text-transform: uppercase;\\n}\\n\\n.dt-table-header-cell--sortable {\\n cursor: pointer;\\n user-select: none;\\n}\\n\\n.dt-table-header-cell--sortable:hover {\\n background: var(--dt-surface-hover);\\n}\\n\\n.dt-table-header-label {\\n display: inline-flex;\\n align-items: center;\\n gap: 6px;\\n}\\n\\n.dt-table-sort-indicator {\\n color: var(--dt-text-secondary);\\n font-size: 0.7rem;\\n}\\n\\n.dt-table-body {\\n position: relative;\\n}\\n\\n.dt-table-canvas {\\n position: relative;\\n}\\n\\n.dt-table-row {\\n position: absolute;\\n left: 0;\\n right: 0;\\n border-bottom: 1px solid var(--dt-border-subtle);\\n}\\n\\n.dt-table-row--clickable {\\n cursor: pointer;\\n}\\n\\n.dt-table-row--clickable:hover {\\n background: var(--dt-surface-hover);\\n}\\n\\n:host([striped]) .dt-table-row:nth-child(even) {\\n background: color-mix(in srgb, var(--dt-surface) 92%, var(--dt-accent) 8%);\\n}\\n\\n:host([bordered]) .dt-table-header-cell,\\n:host([bordered]) .dt-table-cell {\\n border-right: 1px solid var(--dt-border-subtle);\\n}\\n\\n:host([bordered]) .dt-table-header-cell:last-child,\\n:host([bordered]) .dt-table-cell:last-child {\\n border-right: 0;\\n}\\n\\n.dt-table-cell[data-align='center'],\\n.dt-table-header-cell[data-align='center'] {\\n text-align: center;\\n}\\n\\n.dt-table-cell[data-align='right'],\\n.dt-table-header-cell[data-align='right'] {\\n text-align: right;\\n}\\n\\n.dt-table-empty {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n min-height: 140px;\\n padding: 20px;\\n color: var(--dt-text-muted);\\n text-transform: uppercase;\\n letter-spacing: 0.08em;\\n font-size: 0.75rem;\\n}\\n\";", "function normalizeBoundValue(value: unknown): string | null {\n if (value === null || value === undefined || value === false) {\n return null;\n }\n\n if (value === true) {\n return '';\n }\n\n return String(value);\n}\n\nexport function bindTemplateFragment(\n fragment: DocumentFragment,\n data: Record<string, unknown>,\n): void {\n const elements = fragment.querySelectorAll<HTMLElement>('*');\n\n for (const element of elements) {\n const textField = element.getAttribute('data-field');\n if (textField) {\n const value = data[textField];\n element.textContent = value === null || value === undefined ? '' : String(value);\n }\n\n for (const attrName of element.getAttributeNames()) {\n if (attrName === 'data-field' || !attrName.startsWith('data-field-')) {\n continue;\n }\n\n const targetAttr = attrName.slice('data-field-'.length);\n if (!targetAttr) {\n continue;\n }\n\n const fieldName = element.getAttribute(attrName);\n if (!fieldName) {\n continue;\n }\n\n const boundValue = normalizeBoundValue(data[fieldName]);\n if (boundValue === null) {\n element.removeAttribute(targetAttr);\n } else {\n element.setAttribute(targetAttr, boundValue);\n }\n }\n }\n}\n\nexport function createBoundTemplate(\n template: HTMLTemplateElement,\n data: Record<string, unknown>,\n): DocumentFragment {\n const fragment = template.content.cloneNode(true) as DocumentFragment;\n bindTemplateFragment(fragment, data);\n return fragment;\n}\n", "export interface VirtualRange {\n start: number;\n end: number;\n paddingTop: number;\n paddingBottom: number;\n totalHeight: number;\n}\n\ninterface VirtualizerOptions {\n count?: number;\n estimateSize?: number;\n overscan?: number;\n fixedSize?: number | null;\n}\n\nexport class DtVirtualizer {\n private _count = 0;\n private _estimateSize = 56;\n private _overscan = 5;\n private _fixedSize: number | null = null;\n private _viewportHeight = 0;\n private _scrollTop = 0;\n private _sizes = new Map<number, number>();\n\n constructor(options: VirtualizerOptions = {}) {\n this._count = options.count ?? 0;\n this._estimateSize = options.estimateSize ?? 56;\n this._overscan = options.overscan ?? 5;\n this._fixedSize = options.fixedSize ?? null;\n }\n\n setCount(count: number): void {\n this._count = Math.max(0, count);\n for (const index of this._sizes.keys()) {\n if (index >= this._count) {\n this._sizes.delete(index);\n }\n }\n }\n\n setViewportHeight(height: number): void {\n this._viewportHeight = Math.max(0, height);\n }\n\n setScrollTop(scrollTop: number): void {\n this._scrollTop = Math.max(0, scrollTop);\n }\n\n setEstimateSize(size: number): void {\n this._estimateSize = Math.max(1, size);\n }\n\n setFixedSize(size: number | null): void {\n this._fixedSize = size && size > 0 ? size : null;\n }\n\n resetMeasurements(): void {\n this._sizes.clear();\n }\n\n measure(index: number, size: number): number {\n if (this._fixedSize !== null || index < 0 || index >= this._count) {\n return 0;\n }\n\n const normalized = Math.max(1, Math.round(size));\n const previous = this._sizes.get(index);\n if (previous === normalized) {\n return 0;\n }\n\n this._sizes.set(index, normalized);\n\n if (this.getOffset(index + 1) <= this._scrollTop) {\n return normalized - (previous ?? this._estimateSize);\n }\n\n return 0;\n }\n\n getOffset(index: number): number {\n if (index <= 0) {\n return 0;\n }\n\n const boundedIndex = Math.min(index, this._count);\n\n if (this._fixedSize !== null) {\n return boundedIndex * this._fixedSize;\n }\n\n let offset = 0;\n for (let i = 0; i < boundedIndex; i += 1) {\n offset += this._sizes.get(i) ?? this._estimateSize;\n }\n return offset;\n }\n\n getTotalHeight(): number {\n return this.getOffset(this._count);\n }\n\n getRange(): VirtualRange {\n if (this._count === 0) {\n return { start: 0, end: 0, paddingTop: 0, paddingBottom: 0, totalHeight: 0 };\n }\n\n if (this._fixedSize !== null) {\n const visibleCount = Math.max(1, Math.ceil(this._viewportHeight / this._fixedSize));\n const start = Math.max(0, Math.floor(this._scrollTop / this._fixedSize) - this._overscan);\n const end = Math.min(this._count, start + visibleCount + this._overscan * 2);\n const paddingTop = start * this._fixedSize;\n const totalHeight = this._count * this._fixedSize;\n const paddingBottom = Math.max(0, totalHeight - paddingTop - (end - start) * this._fixedSize);\n return { start, end, paddingTop, paddingBottom, totalHeight };\n }\n\n let start = 0;\n let offset = 0;\n while (start < this._count) {\n const size = this._sizes.get(start) ?? this._estimateSize;\n if (offset + size > this._scrollTop) {\n break;\n }\n offset += size;\n start += 1;\n }\n\n start = Math.max(0, start - this._overscan);\n const paddingTop = this.getOffset(start);\n\n let end = start;\n let renderedHeight = 0;\n while (end < this._count && renderedHeight < this._viewportHeight) {\n renderedHeight += this._sizes.get(end) ?? this._estimateSize;\n end += 1;\n }\n end = Math.min(this._count, end + this._overscan);\n\n const totalHeight = this.getTotalHeight();\n const paddingBottom = Math.max(0, totalHeight - this.getOffset(end));\n\n return { start, end, paddingTop, paddingBottom, totalHeight };\n }\n}\n", "import tableViewCss from './styles/table-view.css?raw';\nimport { createBoundTemplate } from './lib/template-bind';\nimport { DtVirtualizer } from './lib/virtualizer';\n\nexport type DtTableViewAlign = 'left' | 'center' | 'right';\nexport type DtTableViewSortDirection = 'asc' | 'desc';\n\nexport interface DtTableViewSortDetail {\n field: string;\n direction: DtTableViewSortDirection;\n}\n\nexport interface DtTableViewRowClickDetail<T = unknown> {\n row: T;\n index: number;\n}\n\ninterface DtTableColumnConfig {\n field: string;\n header: string;\n width: string;\n minWidth: string;\n align: DtTableViewAlign;\n template: HTMLTemplateElement | null;\n}\n\nfunction ensureRecord(row: unknown): Record<string, unknown> {\n if (row && typeof row === 'object') {\n return row as Record<string, unknown>;\n }\n return { value: row };\n}\n\nfunction normalizeAlign(value: string | null): DtTableViewAlign {\n if (value === 'center' || value === 'right') {\n return value;\n }\n return 'left';\n}\n\nexport class DtColumn extends HTMLElement {\n static get observedAttributes(): string[] {\n return ['field', 'header', 'width', 'min-width', 'align'];\n }\n\n get field(): string {\n return this.getAttribute('field') ?? '';\n }\n\n get header(): string {\n return this.getAttribute('header') ?? this.field;\n }\n\n get width(): string {\n return this.getAttribute('width') ?? 'auto';\n }\n\n get minWidth(): string {\n return this.getAttribute('min-width') ?? '0';\n }\n\n get align(): DtTableViewAlign {\n return normalizeAlign(this.getAttribute('align'));\n }\n\n connectedCallback(): void {\n this.hidden = true;\n }\n\n attributeChangedCallback(): void {\n this.dispatchEvent(new CustomEvent('dt-column-change', { bubbles: true, composed: true }));\n }\n}\n\n/**\n * `<dt-table-view>` \u2014 virtualized data table for structured row/column data.\n *\n * Columns are declared with child `<dt-column>` elements. Rows are provided via\n * the JS-only `rows` property. Sorting is event-driven: the component updates\n * header state and emits `dt-sort`, while the consumer is responsible for\n * reordering and reassigning `rows`.\n *\n * ## Attributes\n * - `row-height` \u2014 fixed row height in px\n * - `sortable` \u2014 when present, enables sortable header cells\n * - `striped` \u2014 when present, alternates row backgrounds\n * - `bordered` \u2014 when present, shows cell borders\n * - `empty-text` \u2014 text shown when there are no rows or no columns\n *\n * ## Properties\n * - `rows` \u2014 array of row objects to render\n *\n * ## `<dt-column>` attributes\n * - `field` \u2014 row field key\n * - `header` \u2014 header label; defaults to `field`\n * - `width` \u2014 column width in px or `auto`\n * - `min-width` \u2014 minimum column width\n * - `align` \u2014 `left`, `center`, or `right`\n *\n * If a `<dt-column>` contains a child `<template>`, that template is cloned for\n * each cell in the column. Template bindings work the same way as in\n * `<dt-list-view>`:\n * - `data-field=\"status\"` sets text content from `row.status`\n * - `data-field-variant=\"statusVariant\"` sets the `variant` attribute from `row.statusVariant`\n *\n * ## Events\n * - `dt-sort` \u2014 fired with `{ field, direction }` when a header is activated\n * - `dt-row-click` \u2014 fired with `{ row, index }` when a body row is clicked\n *\n * ## Usage\n * ```html\n * <dt-table-view id=\"processes\" row-height=\"40\" sortable striped>\n * <dt-column field=\"name\" header=\"Process\" width=\"220\"></dt-column>\n * <dt-column field=\"cpu\" header=\"CPU %\" width=\"100\" align=\"right\"></dt-column>\n * <dt-column field=\"status\" header=\"Status\" width=\"140\">\n * <template>\n * <dt-badge data-field=\"status\" data-field-variant=\"statusVariant\"></dt-badge>\n * </template>\n * </dt-column>\n * </dt-table-view>\n * <script>\n * const table = document.getElementById('processes');\n * const rows = [\n * { name: 'node', cpu: '12.4', status: 'running', statusVariant: 'success' },\n * { name: 'cron', cpu: '1.2', status: 'idle', statusVariant: 'neutral' },\n * ];\n * table.rows = rows;\n * table.addEventListener('dt-sort', (event) => {\n * const { field, direction } = event.detail;\n * table.rows = [...rows].sort((a, b) =>\n * direction === 'asc'\n * ? String(a[field]).localeCompare(String(b[field]), undefined, { numeric: true })\n * : String(b[field]).localeCompare(String(a[field]), undefined, { numeric: true }),\n * );\n * });\n * </script>\n * ```\n */\nexport class DtTableView extends HTMLElement {\n private _rows: unknown[] = [];\n private _columns: DtTableColumnConfig[] = [];\n private readonly _virtualizer = new DtVirtualizer({\n estimateSize: 40,\n overscan: 5,\n fixedSize: 40,\n });\n private readonly _root: HTMLDivElement;\n private readonly _scroll: HTMLDivElement;\n private readonly _header: HTMLDivElement;\n private readonly _body: HTMLDivElement;\n private readonly _canvas: HTMLDivElement;\n private readonly _emptyState: HTMLDivElement;\n private _resizeObserver: ResizeObserver | null = null;\n private _mutationObserver: MutationObserver | null = null;\n private _sortField: string | null = null;\n private _sortDirection: DtTableViewSortDirection = 'asc';\n\n static get observedAttributes(): string[] {\n return ['row-height', 'sortable', 'striped', 'bordered', 'empty-text'];\n }\n\n get rows(): unknown[] {\n return this._rows;\n }\n\n set rows(value: unknown[]) {\n this._rows = Array.isArray(value) ? value : [];\n this._virtualizer.setCount(this._rows.length);\n this._render();\n }\n\n get rowHeight(): number {\n const raw = Number(this.getAttribute('row-height') ?? '40');\n return Number.isFinite(raw) && raw > 0 ? raw : 40;\n }\n\n set rowHeight(value: number) {\n this.setAttribute('row-height', String(value));\n }\n\n get sortable(): boolean {\n return this.hasAttribute('sortable');\n }\n\n get emptyText(): string {\n return this.getAttribute('empty-text') ?? 'No data';\n }\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = tableViewCss;\n shadow.appendChild(style);\n\n this._root = document.createElement('div');\n this._root.className = 'dt-table-view';\n\n this._scroll = document.createElement('div');\n this._scroll.className = 'dt-table-scroll';\n this._scroll.addEventListener('scroll', this._onScroll, { passive: true });\n\n this._header = document.createElement('div');\n this._header.className = 'dt-table-header';\n\n this._body = document.createElement('div');\n this._body.className = 'dt-table-body';\n\n this._canvas = document.createElement('div');\n this._canvas.className = 'dt-table-canvas';\n\n this._emptyState = document.createElement('div');\n this._emptyState.className = 'dt-table-empty';\n\n this._body.append(this._canvas, this._emptyState);\n this._scroll.append(this._header, this._body);\n this._root.appendChild(this._scroll);\n shadow.appendChild(this._root);\n }\n\n connectedCallback(): void {\n this._virtualizer.setFixedSize(this.rowHeight);\n this._virtualizer.setEstimateSize(this.rowHeight);\n this._syncColumns();\n\n this._resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === this._scroll) {\n const headerHeight = this._header.offsetHeight;\n this._virtualizer.setViewportHeight(Math.max(0, entry.contentRect.height - headerHeight));\n this._render();\n }\n }\n });\n this._resizeObserver.observe(this._scroll);\n\n this._mutationObserver = new MutationObserver(() => {\n this._syncColumns();\n this._render();\n });\n this._mutationObserver.observe(this, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['field', 'header', 'width', 'min-width', 'align'],\n });\n\n this._virtualizer.setCount(this._rows.length);\n this._virtualizer.setViewportHeight(\n Math.max(0, this._scroll.clientHeight - this._header.offsetHeight),\n );\n this._render();\n }\n\n disconnectedCallback(): void {\n this._scroll.removeEventListener('scroll', this._onScroll);\n this._resizeObserver?.disconnect();\n this._mutationObserver?.disconnect();\n this._resizeObserver = null;\n this._mutationObserver = null;\n }\n\n attributeChangedCallback(name: string): void {\n if (name === 'row-height') {\n this._virtualizer.setFixedSize(this.rowHeight);\n this._virtualizer.setEstimateSize(this.rowHeight);\n }\n this._render();\n }\n\n private _onScroll = (): void => {\n this._virtualizer.setScrollTop(Math.max(0, this._scroll.scrollTop - this._header.offsetHeight));\n this._renderBody();\n };\n\n private _syncColumns(): void {\n this._columns = Array.from(this.children)\n .filter((child): child is DtColumn => child instanceof DtColumn)\n .map((column) => ({\n field: column.field,\n header: column.header,\n width: column.width,\n minWidth: column.minWidth,\n align: column.align,\n template:\n Array.from(column.children).find(\n (child): child is HTMLTemplateElement => child instanceof HTMLTemplateElement,\n ) ?? null,\n }))\n .filter((column) => column.field);\n }\n\n private _render(): void {\n if (!this.isConnected) {\n return;\n }\n\n this._emptyState.textContent = this.emptyText;\n const columnsTemplate =\n this._columns.length > 0\n ? this._columns.map((column) => this._toGridColumn(column)).join(' ')\n : 'minmax(0, 1fr)';\n this._header.style.setProperty('--dt-table-columns', columnsTemplate);\n this._canvas.style.setProperty('--dt-table-columns', columnsTemplate);\n\n this._renderHeader();\n this._renderBody();\n }\n\n private _renderHeader(): void {\n const fragment = document.createDocumentFragment();\n\n for (const column of this._columns) {\n const cell = document.createElement('div');\n cell.className = 'dt-table-header-cell';\n cell.dataset.align = column.align;\n\n if (this.sortable) {\n cell.classList.add('dt-table-header-cell--sortable');\n cell.tabIndex = 0;\n cell.setAttribute('role', 'button');\n cell.setAttribute('aria-label', `Sort by ${column.header}`);\n cell.addEventListener('click', () => this._requestSort(column.field));\n cell.addEventListener('keydown', (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this._requestSort(column.field);\n }\n });\n }\n\n const label = document.createElement('span');\n label.className = 'dt-table-header-label';\n label.textContent = column.header;\n\n if (this.sortable) {\n const indicator = document.createElement('span');\n indicator.className = 'dt-table-sort-indicator';\n if (this._sortField === column.field) {\n indicator.textContent = this._sortDirection === 'asc' ? '\u25B2' : '\u25BC';\n } else {\n indicator.textContent = '\u2195';\n }\n label.appendChild(indicator);\n }\n\n cell.appendChild(label);\n fragment.appendChild(cell);\n }\n\n this._header.replaceChildren(fragment);\n }\n\n private _renderBody(): void {\n if (this._rows.length === 0 || this._columns.length === 0) {\n this._emptyState.hidden = false;\n this._canvas.replaceChildren();\n this._body.style.height = '140px';\n this._canvas.style.height = '0px';\n return;\n }\n\n this._emptyState.hidden = true;\n this._virtualizer.setCount(this._rows.length);\n this._virtualizer.setScrollTop(Math.max(0, this._scroll.scrollTop - this._header.offsetHeight));\n this._virtualizer.setViewportHeight(\n Math.max(0, this._scroll.clientHeight - this._header.offsetHeight),\n );\n\n const range = this._virtualizer.getRange();\n this._body.style.height = `${Math.max(range.totalHeight, this._scroll.clientHeight - this._header.offsetHeight)}px`;\n this._canvas.style.height = `${range.totalHeight}px`;\n\n const fragment = document.createDocumentFragment();\n for (let index = range.start; index < range.end; index += 1) {\n fragment.appendChild(this._renderRow(index));\n }\n\n this._canvas.replaceChildren(fragment);\n }\n\n private _renderRow(index: number): HTMLElement {\n const row = this._rows[index];\n const rowElement = document.createElement('div');\n rowElement.className = 'dt-table-row dt-table-row--clickable';\n rowElement.style.top = `${this._virtualizer.getOffset(index)}px`;\n rowElement.style.height = `${this.rowHeight}px`;\n rowElement.style.setProperty(\n '--dt-table-columns',\n this._header.style.getPropertyValue('--dt-table-columns'),\n );\n rowElement.addEventListener('click', () => {\n this.dispatchEvent(\n new CustomEvent<DtTableViewRowClickDetail>('dt-row-click', {\n detail: { row, index },\n bubbles: true,\n composed: true,\n }),\n );\n });\n\n const record = ensureRecord(row);\n\n for (const column of this._columns) {\n const cell = document.createElement('div');\n cell.className = 'dt-table-cell';\n cell.dataset.align = column.align;\n\n if (column.template) {\n cell.appendChild(createBoundTemplate(column.template, record));\n } else {\n const value = record[column.field];\n cell.textContent = value === null || value === undefined ? '' : String(value);\n }\n\n rowElement.appendChild(cell);\n }\n\n return rowElement;\n }\n\n private _requestSort(field: string): void {\n if (this._sortField === field) {\n this._sortDirection = this._sortDirection === 'asc' ? 'desc' : 'asc';\n } else {\n this._sortField = field;\n this._sortDirection = 'asc';\n }\n\n this._renderHeader();\n this.dispatchEvent(\n new CustomEvent<DtTableViewSortDetail>('dt-sort', {\n detail: { field, direction: this._sortDirection },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _toGridColumn(column: DtTableColumnConfig): string {\n const minWidth = /^\\d+$/.test(column.minWidth) ? `${column.minWidth}px` : column.minWidth;\n if (column.width === 'auto') {\n return `minmax(${minWidth}, 1fr)`;\n }\n\n const width = /^\\d+$/.test(column.width) ? `${column.width}px` : column.width;\n return `minmax(${minWidth}, ${width})`;\n }\n}\n", "export default \":host {\\n display: block;\\n min-height: 120px;\\n color: var(--dt-text);\\n font-family: var(\\n --font-mono,\\n 'SF Mono',\\n Monaco,\\n 'Cascadia Code',\\n 'Roboto Mono',\\n Consolas,\\n monospace\\n );\\n}\\n\\n.dt-list-view {\\n position: relative;\\n display: block;\\n min-height: inherit;\\n height: 100%;\\n overflow: auto;\\n background: var(--dt-surface);\\n border: 1px solid var(--dt-border);\\n border-radius: 2px;\\n}\\n\\n.dt-list-view::before,\\n.dt-list-view::after {\\n content: '';\\n position: sticky;\\n z-index: 2;\\n width: 8px;\\n height: 8px;\\n pointer-events: none;\\n}\\n\\n.dt-list-view::before {\\n top: 0;\\n left: 0;\\n display: block;\\n border-top: 2px solid var(--dt-accent);\\n border-left: 2px solid var(--dt-accent);\\n}\\n\\n.dt-list-view::after {\\n right: 0;\\n bottom: 0;\\n float: right;\\n border-right: 2px solid var(--dt-accent);\\n border-bottom: 2px solid var(--dt-accent);\\n}\\n\\n.dt-list-spacer {\\n position: relative;\\n min-height: 100%;\\n}\\n\\n.dt-list-items {\\n position: relative;\\n}\\n\\n.dt-list-item {\\n box-sizing: border-box;\\n width: 100%;\\n padding: 12px;\\n color: inherit;\\n}\\n\\n.dt-list-item--interactive {\\n cursor: pointer;\\n}\\n\\n.dt-list-item--interactive:hover {\\n background: var(--dt-surface-hover);\\n}\\n\\n.dt-list-item--selected {\\n background: var(--dt-accent-subtle);\\n}\\n\\n:host([dividers]) .dt-list-item {\\n border-bottom: 1px solid var(--dt-border-subtle);\\n}\\n\\n:host([dividers]) .dt-list-item:last-child {\\n border-bottom: 0;\\n}\\n\\n.dt-list-empty {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n min-height: 120px;\\n padding: 20px;\\n color: var(--dt-text-muted);\\n text-transform: uppercase;\\n letter-spacing: 0.08em;\\n font-size: 0.75rem;\\n}\\n\";", "import listViewCss from './styles/list-view.css?raw';\nimport { createBoundTemplate } from './lib/template-bind';\nimport { DtVirtualizer } from './lib/virtualizer';\n\nexport type DtListViewSelectable = 'none' | 'single' | 'multi';\n\nexport interface DtListViewItemClickDetail<T = unknown> {\n item: T;\n index: number;\n}\n\nexport interface DtListViewSelectionChangeDetail<T = unknown> {\n selected: T[];\n}\n\nexport type DtListViewRenderItem<T = unknown> = (\n item: T,\n container: HTMLElement,\n index: number,\n) => void;\n\nconst DEFAULT_ESTIMATE = 56;\n\nfunction ensureRecord(item: unknown): Record<string, unknown> {\n if (item && typeof item === 'object') {\n return item as Record<string, unknown>;\n }\n return { value: item };\n}\n\n/**\n * `<dt-list-view>` \u2014 virtualized list web component for long collections.\n *\n * Supports two sizing modes:\n * - fixed-height mode via `item-height`\n * - variable-height mode when `item-height` is omitted\n *\n * ## Attributes\n * - `item-height` \u2014 fixed row height in px; omit for measured variable-height rows\n * - `dividers` \u2014 when present, shows dividers between items\n * - `selectable` \u2014 selection mode: `none`, `single`, or `multi`\n * - `empty-text` \u2014 text shown when the list has no items\n *\n * ## Properties\n * - `items` \u2014 array of item objects to render\n * - `renderItem` \u2014 optional custom renderer `(item, container, index) => void`\n * - `selectedItems` \u2014 readonly array of currently selected item objects\n *\n * ## Template binding\n * When using a child `<template>`, bindings are applied as follows:\n * - `data-field=\"title\"` sets `textContent` from `item.title`\n * - `data-field-variant=\"statusVariant\"` sets the `variant` attribute from `item.statusVariant`\n *\n * ## Events\n * - `dt-item-click` \u2014 fired when an item is clicked; `detail` contains `{ item, index }`\n * - `dt-selection-change` \u2014 fired when selection changes; `detail.selected` is the selected items array\n *\n * ## Usage\n * ```html\n * <dt-list-view id=\"tasks\" item-height=\"72\" dividers selectable=\"single\">\n * <template>\n * <dt-stack gap=\"8\">\n * <dt-stack direction=\"row\" align=\"center\" gap=\"8\">\n * <strong data-field=\"title\"></strong>\n * <dt-badge data-field=\"status\" data-field-variant=\"statusVariant\"></dt-badge>\n * </dt-stack>\n * <span class=\"text-muted\" data-field=\"summary\"></span>\n * </dt-stack>\n * </template>\n * </dt-list-view>\n * <script>\n * const list = document.getElementById('tasks');\n * list.items = [\n * { title: 'Review report', status: 'Queued', statusVariant: 'warning', summary: 'Waiting on CPU budget' },\n * { title: 'Ship release', status: 'Done', statusVariant: 'success', summary: 'Published 4 minutes ago' },\n * ];\n * </script>\n * ```\n */\nexport class DtListView extends HTMLElement {\n private _items: unknown[] = [];\n private _selectedIndices = new Set<number>();\n private _renderItem: DtListViewRenderItem | null = null;\n private readonly _virtualizer = new DtVirtualizer({\n estimateSize: DEFAULT_ESTIMATE,\n overscan: 5,\n });\n private readonly _viewport: HTMLDivElement;\n private readonly _spacer: HTMLDivElement;\n private readonly _itemsLayer: HTMLDivElement;\n private readonly _emptyState: HTMLDivElement;\n private _resizeObserver: ResizeObserver | null = null;\n private _itemResizeObserver: ResizeObserver | null = null;\n\n static get observedAttributes(): string[] {\n return ['item-height', 'dividers', 'selectable', 'empty-text'];\n }\n\n get items(): unknown[] {\n return this._items;\n }\n\n set items(value: unknown[]) {\n this._items = Array.isArray(value) ? value : [];\n this._selectedIndices = new Set(\n [...this._selectedIndices].filter((index) => index < this._items.length),\n );\n this._virtualizer.setCount(this._items.length);\n this._syncSizingMode(true);\n this._render();\n }\n\n get selectedItems(): unknown[] {\n return [...this._selectedIndices].sort((a, b) => a - b).map((index) => this._items[index]);\n }\n\n get renderItem(): DtListViewRenderItem | null {\n return this._renderItem;\n }\n\n set renderItem(value: DtListViewRenderItem | null) {\n this._renderItem = typeof value === 'function' ? value : null;\n this._render();\n }\n\n get itemHeight(): number | null {\n const raw = this.getAttribute('item-height');\n if (!raw) {\n return null;\n }\n const parsed = Number(raw);\n return Number.isFinite(parsed) && parsed > 0 ? parsed : null;\n }\n\n set itemHeight(value: number | null) {\n if (value === null || value <= 0) {\n this.removeAttribute('item-height');\n return;\n }\n this.setAttribute('item-height', String(value));\n }\n\n get selectable(): DtListViewSelectable {\n const value = this.getAttribute('selectable');\n if (value === 'single' || value === 'multi') {\n return value;\n }\n return 'none';\n }\n\n set selectable(value: DtListViewSelectable) {\n this.setAttribute('selectable', value);\n }\n\n get emptyText(): string {\n return this.getAttribute('empty-text') ?? 'No items';\n }\n\n set emptyText(value: string) {\n this.setAttribute('empty-text', value);\n }\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = listViewCss;\n shadow.appendChild(style);\n\n this._viewport = document.createElement('div');\n this._viewport.className = 'dt-list-view';\n this._viewport.addEventListener('scroll', this._onScroll, { passive: true });\n\n this._spacer = document.createElement('div');\n this._spacer.className = 'dt-list-spacer';\n\n this._itemsLayer = document.createElement('div');\n this._itemsLayer.className = 'dt-list-items';\n\n this._emptyState = document.createElement('div');\n this._emptyState.className = 'dt-list-empty';\n\n this._spacer.append(this._itemsLayer, this._emptyState);\n this._viewport.appendChild(this._spacer);\n shadow.appendChild(this._viewport);\n }\n\n connectedCallback(): void {\n this._resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === this._viewport) {\n this._virtualizer.setViewportHeight(entry.contentRect.height);\n this._render();\n }\n }\n });\n this._resizeObserver.observe(this._viewport);\n\n this._itemResizeObserver = new ResizeObserver((entries) => {\n let adjustment = 0;\n for (const entry of entries) {\n const target = entry.target as HTMLElement;\n const index = Number(target.dataset.index);\n if (!Number.isFinite(index)) {\n continue;\n }\n adjustment += this._virtualizer.measure(index, entry.contentRect.height);\n }\n\n if (adjustment !== 0) {\n this._viewport.scrollTop += adjustment;\n }\n\n if (entries.length > 0) {\n this._render();\n }\n });\n\n this._virtualizer.setCount(this._items.length);\n this._virtualizer.setViewportHeight(this._viewport.clientHeight);\n this._syncSizingMode(false);\n this._render();\n }\n\n disconnectedCallback(): void {\n this._viewport.removeEventListener('scroll', this._onScroll);\n this._resizeObserver?.disconnect();\n this._itemResizeObserver?.disconnect();\n this._resizeObserver = null;\n this._itemResizeObserver = null;\n }\n\n attributeChangedCallback(name: string): void {\n if (name === 'item-height') {\n this._syncSizingMode(true);\n }\n\n if (name === 'selectable' && this.selectable === 'none' && this._selectedIndices.size > 0) {\n this._selectedIndices.clear();\n this._emitSelectionChange();\n }\n\n this._render();\n }\n\n private _onScroll = (): void => {\n this._virtualizer.setScrollTop(this._viewport.scrollTop);\n this._render();\n };\n\n private _syncSizingMode(resetMeasurements: boolean): void {\n const fixedHeight = this.itemHeight;\n this._virtualizer.setFixedSize(fixedHeight);\n this._virtualizer.setEstimateSize(fixedHeight ?? DEFAULT_ESTIMATE);\n if (resetMeasurements) {\n this._virtualizer.resetMeasurements();\n }\n }\n\n private _render(): void {\n if (!this.isConnected) {\n return;\n }\n\n this._emptyState.textContent = this.emptyText;\n this._emptyState.hidden = this._items.length > 0;\n\n if (this._items.length === 0) {\n this._itemsLayer.replaceChildren();\n this._spacer.style.height = '100%';\n return;\n }\n\n this._virtualizer.setScrollTop(this._viewport.scrollTop);\n this._virtualizer.setViewportHeight(this._viewport.clientHeight);\n this._virtualizer.setCount(this._items.length);\n\n const range = this._virtualizer.getRange();\n this._spacer.style.height = `${Math.max(range.totalHeight, this._viewport.clientHeight)}px`;\n this._itemsLayer.style.transform = `translateY(${range.paddingTop}px)`;\n\n const fragment = document.createDocumentFragment();\n for (let index = range.start; index < range.end; index += 1) {\n fragment.appendChild(this._renderVisibleItem(index));\n }\n\n this._itemsLayer.replaceChildren(fragment);\n }\n\n private _renderVisibleItem(index: number): HTMLElement {\n const item = this._items[index];\n const itemElement = document.createElement('div');\n itemElement.className = 'dt-list-item';\n itemElement.dataset.index = String(index);\n\n if (this.selectable !== 'none') {\n itemElement.classList.add('dt-list-item--interactive');\n itemElement.setAttribute('role', 'option');\n itemElement.setAttribute('aria-selected', String(this._selectedIndices.has(index)));\n itemElement.tabIndex = 0;\n }\n\n if (this._selectedIndices.has(index)) {\n itemElement.classList.add('dt-list-item--selected');\n }\n\n if (this.itemHeight !== null) {\n itemElement.style.minHeight = `${this.itemHeight}px`;\n }\n\n if (this._renderItem) {\n this._renderItem(item, itemElement, index);\n } else {\n const template = this._getTemplate();\n if (template) {\n itemElement.appendChild(createBoundTemplate(template, ensureRecord(item)));\n } else {\n itemElement.textContent = String(item ?? '');\n }\n }\n\n itemElement.addEventListener('click', () => this._handleItemClick(index));\n itemElement.addEventListener('keydown', (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this._handleItemClick(index);\n }\n });\n\n if (this.itemHeight === null) {\n this._itemResizeObserver?.observe(itemElement);\n }\n\n return itemElement;\n }\n\n private _handleItemClick(index: number): void {\n const item = this._items[index];\n const selectable = this.selectable;\n\n if (selectable === 'single') {\n this._selectedIndices = new Set([index]);\n this._emitSelectionChange();\n this._render();\n } else if (selectable === 'multi') {\n if (this._selectedIndices.has(index)) {\n this._selectedIndices.delete(index);\n } else {\n this._selectedIndices.add(index);\n }\n this._emitSelectionChange();\n this._render();\n }\n\n this.dispatchEvent(\n new CustomEvent<DtListViewItemClickDetail>('dt-item-click', {\n detail: { item, index },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _emitSelectionChange(): void {\n this.dispatchEvent(\n new CustomEvent<DtListViewSelectionChangeDetail>('dt-selection-change', {\n detail: { selected: this.selectedItems },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _getTemplate(): HTMLTemplateElement | null {\n for (const child of Array.from(this.children)) {\n if (child instanceof HTMLTemplateElement) {\n return child;\n }\n }\n return null;\n }\n}\n", "export default \":host {\\n display: block;\\n min-height: 220px;\\n color: var(--dt-text);\\n font-family: var(\\n --font-mono,\\n 'SF Mono',\\n Monaco,\\n 'Cascadia Code',\\n 'Roboto Mono',\\n Consolas,\\n monospace\\n );\\n}\\n\\n.dt-chart {\\n position: relative;\\n display: block;\\n min-height: inherit;\\n height: 100%;\\n overflow: hidden;\\n border: 1px solid var(--dt-border);\\n border-radius: 2px;\\n background:\\n radial-gradient(\\n circle at top left,\\n color-mix(in srgb, var(--dt-accent) 16%, transparent),\\n transparent 42%\\n ),\\n linear-gradient(\\n 180deg,\\n color-mix(in srgb, var(--dt-surface) 90%, var(--dt-accent) 10%),\\n var(--dt-surface)\\n );\\n}\\n\\n.dt-chart::before,\\n.dt-chart::after {\\n content: '';\\n position: absolute;\\n z-index: 3;\\n width: 8px;\\n height: 8px;\\n pointer-events: none;\\n}\\n\\n.dt-chart::before {\\n top: -1px;\\n left: -1px;\\n border-top: 2px solid var(--dt-accent);\\n border-left: 2px solid var(--dt-accent);\\n}\\n\\n.dt-chart::after {\\n right: -1px;\\n bottom: -1px;\\n border-right: 2px solid var(--dt-accent);\\n border-bottom: 2px solid var(--dt-accent);\\n}\\n\\n.dt-chart__canvas {\\n position: relative;\\n z-index: 1;\\n display: block;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.dt-chart__status {\\n position: absolute;\\n inset: 0;\\n z-index: 2;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding: 20px;\\n color: var(--dt-text-muted);\\n font-size: 0.75rem;\\n letter-spacing: 0.08em;\\n text-align: center;\\n text-transform: uppercase;\\n background: color-mix(in srgb, var(--dt-surface) 72%, transparent);\\n}\\n\\n.dt-chart__status[hidden] {\\n display: none;\\n}\\n\";", "export interface DtChartRuntime {\n Chart: typeof import('chart.js').Chart;\n}\n\ndeclare global {\n interface Window {\n __DtChart?: DtChartRuntime;\n }\n}\n\nlet loadPromise: Promise<DtChartRuntime> | null = null;\n\nexport function loadChartJs(): Promise<DtChartRuntime> {\n if (window.__DtChart) {\n return Promise.resolve(window.__DtChart);\n }\n\n if (loadPromise) {\n return loadPromise;\n }\n\n loadPromise = new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = '/api/ui/chart.umd.js';\n script.async = true;\n script.dataset.dtChart = 'true';\n script.onload = () => {\n if (window.__DtChart) {\n resolve(window.__DtChart);\n return;\n }\n\n reject(new Error('Chart runtime loaded without a __DtChart export.'));\n };\n script.onerror = () => reject(new Error('Failed to load the Chart.js runtime bundle.'));\n document.head.appendChild(script);\n });\n\n return loadPromise;\n}\n", "import chartCss from './styles/chart.css?raw';\nimport { loadChartJs } from './lib/chart-loader';\nimport type { DtChartRuntime } from './lib/chart-loader';\n\ntype DtChartLegend = 'top' | 'bottom' | 'left' | 'right' | 'none';\ntype DtChartType = 'bar' | 'line' | 'area' | 'pie' | 'doughnut' | 'radar' | 'scatter' | 'bubble';\ntype DtChartCoreType = Exclude<DtChartType, 'area'>;\n\nexport interface DtChartDatasetInput {\n label?: string;\n data: Array<number | { x: number; y: number } | { x: number; y: number; r: number }>;\n color?: string;\n}\n\nexport interface DtChartDataInput {\n labels?: string[];\n datasets: DtChartDatasetInput[];\n}\n\nexport interface DtChartClickDetail {\n label: string | null;\n datasetIndex: number;\n index: number;\n value: unknown;\n}\n\ninterface HslColor {\n h: number;\n s: number;\n l: number;\n}\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, value));\n}\n\nfunction parseCsv(value: string | null): string[] {\n if (!value) {\n return [];\n }\n\n return value\n .split(',')\n .map((part) => part.trim())\n .filter(Boolean);\n}\n\nfunction parseColorToHsl(value: string): HslColor | null {\n const hex = value.trim().match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i);\n if (hex) {\n const raw = hex[1];\n const normalized =\n raw.length === 3\n ? raw\n .split('')\n .map((char) => `${char}${char}`)\n .join('')\n : raw;\n const r = parseInt(normalized.slice(0, 2), 16) / 255;\n const g = parseInt(normalized.slice(2, 4), 16) / 255;\n const b = parseInt(normalized.slice(4, 6), 16) / 255;\n return rgbToHsl(r, g, b);\n }\n\n const rgb = value\n .trim()\n .match(\n /^rgba?\\((\\d+(?:\\.\\d+)?)[,\\s]+(\\d+(?:\\.\\d+)?)[,\\s]+(\\d+(?:\\.\\d+)?)(?:[,/\\s]+[\\d.]+)?\\)$/i,\n );\n if (rgb) {\n return rgbToHsl(Number(rgb[1]) / 255, Number(rgb[2]) / 255, Number(rgb[3]) / 255);\n }\n\n const hsl = value\n .trim()\n .match(/^hsla?\\(([-\\d.]+)(?:deg)?[,\\s]+([\\d.]+)%[,\\s]+([\\d.]+)%(?:[,/\\s]+[\\d.]+)?\\)$/i);\n if (hsl) {\n return {\n h: ((Number(hsl[1]) % 360) + 360) % 360,\n s: clamp(Number(hsl[2]), 0, 100),\n l: clamp(Number(hsl[3]), 0, 100),\n };\n }\n\n return null;\n}\n\nfunction rgbToHsl(r: number, g: number, b: number): HslColor {\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const delta = max - min;\n let h = 0;\n const l = (max + min) / 2;\n const s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n\n if (delta !== 0) {\n switch (max) {\n case r:\n h = 60 * (((g - b) / delta) % 6);\n break;\n case g:\n h = 60 * ((b - r) / delta + 2);\n break;\n default:\n h = 60 * ((r - g) / delta + 4);\n break;\n }\n }\n\n return {\n h: (h + 360) % 360,\n s: Math.round(s * 100),\n l: Math.round(l * 100),\n };\n}\n\nfunction hslString(color: HslColor, alpha = 1): string {\n return `hsla(${Math.round(color.h)} ${Math.round(color.s)}% ${Math.round(color.l)}% / ${alpha})`;\n}\n\nfunction getPalette(accent: string): HslColor[] {\n const base = parseColorToHsl(accent) ?? { h: 185, s: 88, l: 56 };\n const offsets = [0, 32, 68, 118, 164, 212, 258, 304];\n return offsets.map((offset, index) => ({\n h: (base.h + offset) % 360,\n s: clamp(base.s - index * 2, 55, 90),\n l: clamp(base.l + (index % 2 === 0 ? 0 : 6) - index, 38, 66),\n }));\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction deepMerge<T>(base: T, override: unknown): T {\n if (!isPlainObject(base) || !isPlainObject(override)) {\n return (override as T) ?? base;\n }\n\n const result: Record<string, unknown> = { ...base };\n for (const [key, value] of Object.entries(override)) {\n const current = result[key];\n result[key] =\n isPlainObject(current) && isPlainObject(value) ? deepMerge(current, value) : value;\n }\n return result as T;\n}\n\nfunction normalizeLegend(value: string | null): DtChartLegend {\n if (value === 'top' || value === 'bottom' || value === 'left' || value === 'right') {\n return value;\n }\n return 'none';\n}\n\nfunction normalizeType(value: string | null): DtChartType {\n if (\n value === 'bar' ||\n value === 'line' ||\n value === 'area' ||\n value === 'pie' ||\n value === 'doughnut' ||\n value === 'radar' ||\n value === 'scatter' ||\n value === 'bubble'\n ) {\n return value;\n }\n return 'bar';\n}\n\nfunction isCartesianType(type: DtChartType): boolean {\n return (\n type === 'bar' || type === 'line' || type === 'area' || type === 'scatter' || type === 'bubble'\n );\n}\n\nfunction formatLabels(value: string[]): string[] {\n return value.map((item) => item.trim()).filter(Boolean);\n}\n\n/**\n * `<dt-chart>` \u2014 lazy-loaded Chart.js wrapper.\n *\n * Set the `.data` JS property to provide chart data. This is the only supported\n * method for filling data into the chart.\n */\nexport class DtChart extends HTMLElement {\n private readonly _canvas: HTMLCanvasElement;\n private readonly _status: HTMLDivElement;\n private _runtime: DtChartRuntime | null = null;\n private _loadPromise: Promise<DtChartRuntime> | null = null;\n private _chart: import('chart.js').Chart | null = null;\n private _renderedType: DtChartCoreType | null = null;\n private _dataInput: DtChartDataInput | null = null;\n private _optionsOverride: Record<string, unknown> | null = null;\n private _syncFrame = 0;\n\n static get observedAttributes(): string[] {\n return ['type', 'legend', 'stacked', 'labels'];\n }\n\n get type(): DtChartType {\n return normalizeType(this.getAttribute('type'));\n }\n\n set type(value: DtChartType) {\n this.setAttribute('type', value);\n }\n\n get legend(): DtChartLegend {\n return normalizeLegend(this.getAttribute('legend'));\n }\n\n set legend(value: DtChartLegend) {\n this.setAttribute('legend', value);\n }\n\n get stacked(): boolean {\n return this.hasAttribute('stacked');\n }\n\n set stacked(value: boolean) {\n this.toggleAttribute('stacked', value);\n }\n\n get labels(): string[] {\n return formatLabels(parseCsv(this.getAttribute('labels')));\n }\n\n set labels(value: string[]) {\n this.setAttribute('labels', value.join(','));\n }\n\n get data(): DtChartDataInput | null {\n return this._dataInput;\n }\n\n set data(value: DtChartDataInput | null) {\n this._dataInput = value ? structuredClone(value) : null;\n this._scheduleSync();\n }\n\n get options(): Record<string, unknown> | null {\n return this._optionsOverride;\n }\n\n set options(value: Record<string, unknown> | null) {\n this._optionsOverride = value ? structuredClone(value) : null;\n void this._renderChart();\n }\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = chartCss;\n shadow.appendChild(style);\n\n const root = document.createElement('div');\n root.className = 'dt-chart';\n\n this._canvas = document.createElement('canvas');\n this._canvas.className = 'dt-chart__canvas';\n\n this._status = document.createElement('div');\n this._status.className = 'dt-chart__status';\n this._status.textContent = 'Loading chart';\n\n root.append(this._canvas, this._status);\n shadow.appendChild(root);\n }\n\n connectedCallback(): void {\n this._canvas.addEventListener('click', this._handleCanvasClick);\n void this._ensureRuntime().then(() => this._renderChart());\n this._scheduleSync();\n }\n\n disconnectedCallback(): void {\n this._canvas.removeEventListener('click', this._handleCanvasClick);\n if (this._syncFrame !== 0) {\n cancelAnimationFrame(this._syncFrame);\n this._syncFrame = 0;\n }\n this._chart?.destroy();\n this._chart = null;\n this._renderedType = null;\n }\n\n attributeChangedCallback(): void {\n this._scheduleSync();\n }\n\n private _handleCanvasClick = (event: Event): void => {\n if (!this._chart) {\n return;\n }\n\n const points = this._chart.getElementsAtEventForMode(\n event as unknown as MouseEvent,\n 'nearest',\n { intersect: true },\n true,\n );\n const point = points[0];\n if (!point) {\n return;\n }\n\n const label = Array.isArray(this._chart.data.labels)\n ? ((this._chart.data.labels[point.index] as string | undefined) ?? null)\n : null;\n const dataset = this._chart.data.datasets[point.datasetIndex];\n const value = Array.isArray(dataset?.data) ? dataset.data[point.index] : undefined;\n\n this.dispatchEvent(\n new CustomEvent<DtChartClickDetail>('dt-chart-click', {\n bubbles: true,\n composed: true,\n detail: {\n label,\n datasetIndex: point.datasetIndex,\n index: point.index,\n value,\n },\n }),\n );\n };\n\n private _scheduleSync(): void {\n if (this._syncFrame !== 0) {\n return;\n }\n\n this._syncFrame = requestAnimationFrame(() => {\n this._syncFrame = 0;\n this._syncFromCurrentSource();\n });\n }\n\n private _syncFromCurrentSource(): void {\n void this._renderChart();\n }\n\n private async _ensureRuntime(): Promise<DtChartRuntime> {\n if (this._runtime) {\n return this._runtime;\n }\n\n if (!this._loadPromise) {\n this._loadPromise = loadChartJs().then((runtime) => {\n this._runtime = runtime;\n return runtime;\n });\n }\n\n return this._loadPromise;\n }\n\n private async _renderChart(): Promise<void> {\n const data = this._dataInput;\n if (!data) {\n this._setStatus('Waiting for data');\n return;\n }\n\n const runtime = await this._ensureRuntime();\n const config = this._buildConfig(runtime, data);\n const nextType = config.type as DtChartCoreType;\n\n if (!this._chart || this._renderedType !== nextType) {\n this._chart?.destroy();\n this._chart = new runtime.Chart(this._canvas, config as never);\n this._renderedType = nextType;\n } else {\n this._chart.data = config.data as never;\n this._chart.options = config.options as never;\n this._chart.update();\n }\n\n this._setStatus(data.datasets.length > 0 ? null : 'Waiting for data');\n }\n\n private _buildConfig(_runtime: DtChartRuntime, data: DtChartDataInput) {\n const computed = getComputedStyle(this);\n const accent = computed.getPropertyValue('--dt-accent').trim() || '#42d4ff';\n const text = computed.getPropertyValue('--dt-text').trim() || '#d6ebff';\n const muted = computed.getPropertyValue('--dt-text-muted').trim() || '#7b93a6';\n const border = computed.getPropertyValue('--dt-border').trim() || 'rgba(123, 147, 166, 0.3)';\n const font =\n computed.getPropertyValue('--font-mono').trim() ||\n \"'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, monospace\";\n const palette = getPalette(accent);\n const normalizedType = this.type === 'area' ? 'line' : this.type;\n const chartData = {\n labels: data.labels ?? this.labels,\n datasets: data.datasets.map((dataset, index) => {\n const tone = palette[index % palette.length];\n const color = dataset.color ?? hslString(tone, 1);\n const baseDataset = {\n label: dataset.label ?? '',\n data: dataset.data,\n backgroundColor:\n normalizedType === 'line' || normalizedType === 'radar' || normalizedType === 'scatter'\n ? hslString(tone, normalizedType === 'scatter' ? 0.95 : 0.24)\n : color,\n borderColor: color,\n pointBackgroundColor: color,\n pointBorderColor: color,\n pointHoverBackgroundColor: color,\n pointRadius: this.type === 'line' || this.type === 'area' ? 3 : 4,\n pointHoverRadius: this.type === 'line' || this.type === 'area' ? 5 : 6,\n borderWidth: normalizedType === 'radar' ? 2 : 2,\n tension: normalizedType === 'line' || this.type === 'area' ? 0.32 : undefined,\n fill: this.type === 'area',\n };\n\n if (normalizedType === 'pie' || normalizedType === 'doughnut') {\n return {\n ...baseDataset,\n backgroundColor: Array.isArray(dataset.data)\n ? dataset.data.map((_, itemIndex) =>\n hslString(palette[itemIndex % palette.length], 0.86),\n )\n : color,\n borderColor: Array.isArray(dataset.data)\n ? dataset.data.map((_, itemIndex) =>\n hslString(palette[itemIndex % palette.length], 1),\n )\n : color,\n borderWidth: 1,\n };\n }\n\n if (normalizedType === 'scatter' || normalizedType === 'bubble') {\n return {\n ...baseDataset,\n showLine: false,\n backgroundColor: hslString(tone, 0.78),\n };\n }\n\n return baseDataset;\n }),\n };\n\n const baseOptions = {\n responsive: true,\n maintainAspectRatio: false,\n animation: {\n duration: 320,\n },\n interaction: {\n mode: 'nearest',\n intersect: true,\n },\n plugins: {\n legend: {\n display: this.legend !== 'none',\n position: this.legend === 'none' ? 'top' : this.legend,\n labels: {\n color: text,\n boxWidth: 12,\n boxHeight: 12,\n padding: 14,\n font: {\n family: font,\n size: 11,\n },\n },\n },\n tooltip: {\n backgroundColor: 'rgba(10, 18, 24, 0.92)',\n borderColor: colorMix(border, accent, 0.35),\n borderWidth: 1,\n titleColor: text,\n bodyColor: text,\n footerColor: muted,\n titleFont: { family: font, size: 11 },\n bodyFont: { family: font, size: 11 },\n padding: 10,\n },\n },\n scales: isCartesianType(this.type)\n ? {\n x: {\n stacked: this.stacked,\n grid: { display: false, color: border },\n border: { color: border },\n ticks: {\n color: muted,\n font: { family: font, size: 11 },\n },\n },\n y: {\n stacked: this.stacked,\n beginAtZero: true,\n grid: { display: false, color: border },\n border: { color: border },\n ticks: {\n color: muted,\n font: { family: font, size: 11 },\n },\n },\n }\n : normalizedType === 'radar'\n ? {\n r: {\n angleLines: { color: border },\n grid: { color: border },\n pointLabels: {\n color: muted,\n font: { family: font, size: 11 },\n },\n ticks: {\n color: muted,\n backdropColor: 'transparent',\n font: { family: font, size: 10 },\n },\n },\n }\n : undefined,\n };\n\n return {\n type: normalizedType,\n data: chartData,\n options: deepMerge(baseOptions, this._optionsOverride ?? {}),\n };\n }\n\n private _setStatus(message: string | null): void {\n if (!message) {\n this._status.hidden = true;\n return;\n }\n\n this._status.hidden = false;\n this._status.textContent = message;\n }\n}\n\nfunction colorMix(primary: string, secondary: string, weight: number): string {\n const first = parseColorToHsl(primary);\n const second = parseColorToHsl(secondary);\n if (!first || !second) {\n return primary;\n }\n\n const ratio = clamp(weight, 0, 1);\n const hueDelta = ((((second.h - first.h) % 360) + 540) % 360) - 180;\n return hslString({\n h: (first.h + hueDelta * ratio + 360) % 360,\n s: first.s + (second.s - first.s) * ratio,\n l: first.l + (second.l - first.l) * ratio,\n });\n}\n", "export default \":host {\\n display: block;\\n color: var(--dt-text);\\n font-family: var(--font-sans, 'Inter', sans-serif);\\n}\\n\\n.dt-markdown {\\n color: inherit;\\n line-height: 1.7;\\n word-break: break-word;\\n}\\n\\n.dt-markdown > :first-child {\\n margin-top: 0;\\n}\\n\\n.dt-markdown > :last-child {\\n margin-bottom: 0;\\n}\\n\\n.dt-markdown :is(h1, h2, h3, h4, h5, h6) {\\n margin: 1.2em 0 0.55em;\\n color: var(--dt-text);\\n font-family: var(--font-sans, 'Inter', sans-serif);\\n line-height: 1.2;\\n}\\n\\n.dt-markdown h1 {\\n color: var(--dt-accent);\\n font-size: 1.6rem;\\n letter-spacing: 0.08em;\\n text-transform: uppercase;\\n}\\n\\n.dt-markdown h2 {\\n font-size: 1.3rem;\\n}\\n\\n.dt-markdown h3 {\\n font-size: 1.1rem;\\n}\\n\\n.dt-markdown p,\\n.dt-markdown ul,\\n.dt-markdown ol,\\n.dt-markdown blockquote,\\n.dt-markdown pre,\\n.dt-markdown table {\\n margin: 0.8em 0;\\n}\\n\\n.dt-markdown ul,\\n.dt-markdown ol {\\n padding-left: 1.4rem;\\n}\\n\\n.dt-markdown li + li {\\n margin-top: 0.28em;\\n}\\n\\n.dt-markdown strong {\\n color: var(--dt-text);\\n}\\n\\n.dt-markdown a,\\n.dt-markdown .dt-md-link {\\n color: var(--dt-accent);\\n text-decoration: none;\\n}\\n\\n.dt-markdown a:hover,\\n.dt-markdown .dt-md-link:hover {\\n text-decoration: underline;\\n}\\n\\n.dt-markdown code {\\n padding: 0.12rem 0.35rem;\\n border-radius: 2px;\\n background: color-mix(in srgb, var(--dt-surface) 88%, var(--dt-accent) 12%);\\n color: var(--dt-accent);\\n font-family: var(\\n --font-mono,\\n 'SF Mono',\\n Monaco,\\n 'Cascadia Code',\\n 'Roboto Mono',\\n Consolas,\\n monospace\\n );\\n font-size: 0.92em;\\n}\\n\\n.dt-md-pre {\\n overflow-x: auto;\\n padding: 14px 16px;\\n border: 1px solid var(--dt-border);\\n border-radius: 2px;\\n background: var(--dt-surface);\\n box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--dt-surface) 85%, var(--dt-accent) 15%);\\n}\\n\\n.dt-md-pre code {\\n display: block;\\n padding: 0;\\n background: transparent;\\n color: var(--dt-text);\\n}\\n\\n.dt-md-blockquote {\\n margin: 0.9em 0;\\n padding: 0.15rem 0 0.15rem 1rem;\\n border-left: 3px solid var(--dt-accent);\\n color: var(--dt-text-muted);\\n}\\n\\n.dt-md-table {\\n width: 100%;\\n border-collapse: collapse;\\n border: 1px solid var(--dt-border);\\n background: var(--dt-surface);\\n}\\n\\n.dt-md-table th,\\n.dt-md-table td {\\n padding: 0.6rem 0.8rem;\\n border: 1px solid var(--dt-border-subtle, var(--dt-border));\\n text-align: left;\\n vertical-align: top;\\n}\\n\\n.dt-md-table th {\\n color: var(--dt-accent);\\n background: color-mix(in srgb, var(--dt-surface) 88%, var(--dt-accent) 12%);\\n font-size: 0.75rem;\\n letter-spacing: 0.08em;\\n text-transform: uppercase;\\n}\\n\\n.dt-markdown hr {\\n border: 0;\\n border-top: 1px solid var(--dt-border);\\n}\\n\\n.dt-md-image {\\n display: block;\\n max-width: 100%;\\n border: 1px solid var(--dt-border);\\n border-radius: 2px;\\n}\\n\\n.dt-markdown__caret {\\n display: inline-block;\\n margin-left: 0.15rem;\\n color: var(--dt-accent);\\n animation: dt-markdown-caret 0.9s steps(1) infinite;\\n}\\n\\n.dt-markdown__caret[hidden] {\\n display: none;\\n}\\n\\n@keyframes dt-markdown-caret {\\n 0%,\\n 49% {\\n opacity: 1;\\n }\\n\\n 50%,\\n 100% {\\n opacity: 0;\\n }\\n}\\n\";", "export interface DtMarkedRenderOptions {\n unsafeHtml?: boolean;\n}\n\nexport interface DtMarkedRuntime {\n render(markdown: string, options?: DtMarkedRenderOptions): string;\n}\n\ndeclare global {\n interface Window {\n __DtMarked?: DtMarkedRuntime;\n }\n}\n\nlet loadPromise: Promise<DtMarkedRuntime> | null = null;\n\nexport function loadMarked(): Promise<DtMarkedRuntime> {\n if (window.__DtMarked) {\n return Promise.resolve(window.__DtMarked);\n }\n\n if (loadPromise) {\n return loadPromise;\n }\n\n loadPromise = new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = '/api/ui/marked.js';\n script.async = true;\n script.dataset.dtMarked = 'true';\n script.onload = () => {\n if (window.__DtMarked) {\n resolve(window.__DtMarked);\n return;\n }\n\n reject(new Error('Marked runtime loaded without a __DtMarked export.'));\n };\n script.onerror = () => reject(new Error('Failed to load the marked runtime bundle.'));\n document.head.appendChild(script);\n });\n\n return loadPromise;\n}\n", "import markdownCss from './styles/markdown.css?raw';\nimport { loadMarked } from './lib/marked-loader';\nimport type { DtMarkedRuntime } from './lib/marked-loader';\n\nexport interface DtMarkdownLinkClickDetail {\n href: string;\n}\n\nfunction normalizeLineEndings(value: string): string {\n return value.replaceAll('\\r\\n', '\\n');\n}\n\nfunction dedentBlock(value: string): string {\n const lines = normalizeLineEndings(value).split('\\n');\n\n while (lines.length > 0 && lines[0].trim() === '') {\n lines.shift();\n }\n\n while (lines.length > 0 && lines[lines.length - 1].trim() === '') {\n lines.pop();\n }\n\n const indents = lines\n .filter((line) => line.trim() !== '')\n .map((line) => line.match(/^\\s*/)?.[0].length ?? 0);\n const minIndent = indents.length > 0 ? Math.min(...indents) : 0;\n\n if (minIndent === 0) {\n return lines.join('\\n');\n }\n\n return lines.map((line) => line.slice(minIndent)).join('\\n');\n}\n\nfunction closeStreamingBlocks(value: string): string {\n const normalized = normalizeLineEndings(value);\n const fenceCount = (normalized.match(/(^|\\n)(```|~~~)/g) ?? []).length;\n if (fenceCount % 2 === 0) {\n return normalized;\n }\n\n const closingFence = normalized.includes('~~~') && !normalized.includes('```') ? '~~~' : '```';\n return `${normalized}\\n${closingFence}`;\n}\n\n/**\n * `<dt-markdown>` \u2014 themed markdown renderer for LiveApps.\n *\n * Markdown can be provided either inline between the tags or through the JS-only\n * `content` property. When `streaming` is present the component appends a live\n * caret and performs lightweight fence balancing for incomplete code blocks.\n *\n * ## Attributes\n * - `streaming` \u2014 when present, shows a blinking caret for in-progress content\n * - `unsafe-html` \u2014 when present, allows raw HTML in the markdown source\n *\n * ## Properties\n * - `content` \u2014 JS-only markdown source; overrides inline light-DOM text\n * - `streaming` \u2014 boolean reflection of the `streaming` attribute\n *\n * ## Events\n * - `dt-link-click` \u2014 fired with `{ href }` when a rendered link is activated\n */\nexport class DtMarkdown extends HTMLElement {\n private readonly _body: HTMLDivElement;\n private readonly _caret: HTMLSpanElement;\n private _contentOverride: string | null = null;\n private _runtime: DtMarkedRuntime | null = null;\n private _loadPromise: Promise<DtMarkedRuntime> | null = null;\n private _observer: MutationObserver | null = null;\n private _renderFrame = 0;\n\n static get observedAttributes(): string[] {\n return ['streaming', 'unsafe-html'];\n }\n\n get content(): string {\n return this._contentOverride ?? this._readInlineMarkdown();\n }\n\n set content(value: string) {\n this._contentOverride = String(value ?? '');\n this._scheduleRender();\n }\n\n get streaming(): boolean {\n return this.hasAttribute('streaming');\n }\n\n set streaming(value: boolean) {\n this.toggleAttribute('streaming', value);\n }\n\n get unsafeHtml(): boolean {\n return this.hasAttribute('unsafe-html');\n }\n\n set unsafeHtml(value: boolean) {\n this.toggleAttribute('unsafe-html', value);\n }\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = markdownCss;\n shadow.appendChild(style);\n\n this._body = document.createElement('div');\n this._body.className = 'dt-markdown';\n this._body.addEventListener('click', this._onLinkClick);\n\n this._caret = document.createElement('span');\n this._caret.className = 'dt-markdown__caret';\n this._caret.textContent = '\u258C';\n this._caret.hidden = true;\n\n shadow.append(this._body, this._caret);\n }\n\n connectedCallback(): void {\n if (!this._observer) {\n this._observer = new MutationObserver(() => {\n if (this._contentOverride === null) {\n this._scheduleRender();\n }\n });\n\n this._observer.observe(this, {\n childList: true,\n characterData: true,\n subtree: true,\n });\n }\n\n void this._ensureRuntime();\n this._scheduleRender();\n }\n\n disconnectedCallback(): void {\n this._observer?.disconnect();\n this._observer = null;\n if (this._renderFrame !== 0) {\n cancelAnimationFrame(this._renderFrame);\n this._renderFrame = 0;\n }\n }\n\n attributeChangedCallback(): void {\n this._scheduleRender();\n }\n\n private _onLinkClick = (event: Event): void => {\n const path = event.composedPath();\n const anchor = path.find((entry) => entry instanceof HTMLAnchorElement) as\n | HTMLAnchorElement\n | undefined;\n if (!anchor) {\n return;\n }\n\n event.preventDefault();\n this.dispatchEvent(\n new CustomEvent<DtMarkdownLinkClickDetail>('dt-link-click', {\n bubbles: true,\n composed: true,\n detail: { href: anchor.getAttribute('href') ?? '#' },\n }),\n );\n };\n\n private _readInlineMarkdown(): string {\n return dedentBlock(this.textContent ?? '');\n }\n\n private _scheduleRender(): void {\n if (this._renderFrame !== 0) {\n return;\n }\n\n this._renderFrame = requestAnimationFrame(() => {\n this._renderFrame = 0;\n void this._render();\n });\n }\n\n private async _ensureRuntime(): Promise<DtMarkedRuntime> {\n if (this._runtime) {\n return this._runtime;\n }\n\n if (!this._loadPromise) {\n this._loadPromise = loadMarked().then((runtime) => {\n this._runtime = runtime;\n return runtime;\n });\n }\n\n return this._loadPromise;\n }\n\n private async _render(): Promise<void> {\n const runtime = await this._ensureRuntime();\n let markdown = this.content;\n\n if (this.streaming) {\n markdown = closeStreamingBlocks(markdown);\n }\n\n this._body.innerHTML = runtime.render(markdown, {\n unsafeHtml: this.unsafeHtml,\n });\n this._caret.hidden = !this.streaming;\n }\n}\n", "export default \":host {\\n display: block;\\n min-height: 240px;\\n color: var(--dt-text);\\n font-family: var(--font-sans, 'Inter', sans-serif);\\n}\\n\\n.dt-markdown-editor {\\n position: relative;\\n height: 100%;\\n min-height: inherit;\\n overflow: hidden;\\n border: 1px solid var(--dt-border);\\n border-radius: 2px;\\n}\\n\\n.dt-markdown-editor::before,\\n.dt-markdown-editor::after {\\n content: '';\\n position: absolute;\\n z-index: 3;\\n width: 8px;\\n height: 8px;\\n pointer-events: none;\\n}\\n\\n.dt-markdown-editor::before {\\n top: -1px;\\n left: -1px;\\n border-top: 2px solid var(--dt-accent);\\n border-left: 2px solid var(--dt-accent);\\n}\\n\\n.dt-markdown-editor::after {\\n right: -1px;\\n bottom: -1px;\\n border-right: 2px solid var(--dt-accent);\\n border-bottom: 2px solid var(--dt-accent);\\n}\\n\\n.dt-markdown-editor__surface {\\n height: 100%;\\n min-height: inherit;\\n}\\n\\n.dt-markdown-editor__content {\\n height: 100%;\\n min-height: inherit;\\n}\\n\\n.dt-markdown-editor__status {\\n position: absolute;\\n inset: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding: 20px;\\n background: color-mix(in srgb, var(--dt-surface) 84%, transparent);\\n color: var(--dt-text-muted);\\n font-size: 0.75rem;\\n letter-spacing: 0.08em;\\n text-transform: uppercase;\\n}\\n\\n.dt-markdown-editor__status[hidden] {\\n display: none;\\n}\\n\\n.milkdown {\\n --crepe-color-background: transparent;\\n --crepe-color-on-background: var(--dt-text);\\n --crepe-color-surface: var(--dt-surface);\\n --crepe-color-surface-low: color-mix(in srgb, var(--dt-surface) 94%, var(--dt-accent) 6%);\\n --crepe-color-on-surface: var(--dt-text);\\n --crepe-color-on-surface-variant: var(--dt-text-muted);\\n --crepe-color-outline: var(--dt-border);\\n --crepe-color-primary: var(--dt-accent);\\n --crepe-color-secondary: color-mix(in srgb, var(--dt-surface) 84%, var(--dt-accent) 16%);\\n --crepe-color-on-secondary: var(--dt-text);\\n --crepe-color-inverse: var(--dt-text);\\n --crepe-color-on-inverse: var(--dt-surface);\\n --crepe-color-inline-code: var(--dt-accent);\\n --crepe-color-error: var(--dt-danger, #ff6a6a);\\n --crepe-color-hover: var(--dt-surface-hover);\\n --crepe-color-selected: color-mix(in srgb, var(--dt-surface) 82%, var(--dt-accent) 18%);\\n --crepe-color-inline-area: color-mix(in srgb, var(--dt-surface) 90%, var(--dt-accent) 10%);\\n --crepe-font-title: var(--font-sans, 'Inter', sans-serif);\\n --crepe-font-default: var(--font-sans, 'Inter', sans-serif);\\n --crepe-font-code: var(\\n --font-mono,\\n 'SF Mono',\\n Monaco,\\n 'Cascadia Code',\\n 'Roboto Mono',\\n Consolas,\\n monospace\\n );\\n --crepe-shadow-1: 0 0 0 1px color-mix(in srgb, var(--dt-surface) 82%, var(--dt-accent) 18%);\\n --crepe-shadow-2:\\n 0 0 0 1px color-mix(in srgb, var(--dt-surface) 78%, var(--dt-accent) 22%),\\n 0 8px 24px color-mix(in srgb, var(--dt-accent) 12%, transparent);\\n\\n height: 100%;\\n background: transparent;\\n color: var(--dt-text);\\n}\\n\\n.milkdown .editor {\\n min-height: 100%;\\n padding: 16px 18px 20px;\\n outline: none;\\n color: var(--dt-text);\\n font-family: var(--font-sans, 'Inter', sans-serif);\\n font-size: 14px;\\n line-height: 1.7;\\n}\\n\\n.milkdown .editor > :first-child {\\n margin-top: 0;\\n}\\n\\n.milkdown .editor h1,\\n.milkdown .editor h2,\\n.milkdown .editor h3,\\n.milkdown .editor h4,\\n.milkdown .editor h5,\\n.milkdown .editor h6 {\\n margin: 0.95em 0 0.45em;\\n line-height: 1.2;\\n}\\n\\n.milkdown .editor h1 {\\n color: var(--dt-accent);\\n font-size: 1.6rem;\\n letter-spacing: 0.08em;\\n text-transform: uppercase;\\n}\\n\\n.milkdown .editor h2 {\\n font-size: 1.28rem;\\n}\\n\\n.milkdown .editor h3 {\\n font-size: 1.08rem;\\n}\\n\\n.milkdown .editor p {\\n margin: 0.65em 0;\\n}\\n\\n.milkdown .editor code {\\n padding: 2px 5px;\\n border-radius: 2px;\\n background: color-mix(in srgb, var(--dt-surface) 88%, var(--dt-accent) 12%);\\n font-family: var(\\n --font-mono,\\n 'SF Mono',\\n Monaco,\\n 'Cascadia Code',\\n 'Roboto Mono',\\n Consolas,\\n monospace\\n );\\n font-size: 0.9em;\\n}\\n\\n.milkdown .editor pre {\\n overflow-x: auto;\\n margin: 0.9em 0;\\n padding: 12px 14px;\\n border: 1px solid var(--dt-border);\\n border-radius: 2px;\\n background: var(--dt-surface);\\n}\\n\\n.milkdown .editor pre code {\\n padding: 0;\\n background: transparent;\\n}\\n\\n.milkdown .editor blockquote {\\n margin: 0.9em 0;\\n padding-left: 12px;\\n border-left: 3px solid var(--dt-accent);\\n color: var(--dt-text-muted);\\n}\\n\\n.milkdown .editor a {\\n color: var(--dt-accent);\\n text-decoration: none;\\n}\\n\\n.milkdown .editor a:hover {\\n text-decoration: underline;\\n}\\n\\n.milkdown .editor hr {\\n border: 0;\\n border-top: 1px solid var(--dt-border);\\n}\\n\\n.milkdown .editor ul,\\n.milkdown .editor ol {\\n padding-left: 1.5rem;\\n}\\n\\n.milkdown .editor img {\\n max-width: 100%;\\n border-radius: 2px;\\n}\\n\\n.milkdown .editor table {\\n width: 100%;\\n border-collapse: collapse;\\n}\\n\\n.milkdown .editor th,\\n.milkdown .editor td {\\n border: 1px solid var(--dt-border);\\n}\\n\";", "export interface DtMilkdownRuntime {\n Crepe: typeof import('@milkdown/crepe').Crepe;\n replaceAll: typeof import('@milkdown/kit/utils').replaceAll;\n cssText: string;\n}\n\ndeclare global {\n interface Window {\n __DtMilkdown?: DtMilkdownRuntime;\n }\n}\n\nlet loadPromise: Promise<DtMilkdownRuntime> | null = null;\n\nexport function loadMilkdown(): Promise<DtMilkdownRuntime> {\n if (window.__DtMilkdown) {\n return Promise.resolve(window.__DtMilkdown);\n }\n\n if (loadPromise) {\n return loadPromise;\n }\n\n loadPromise = new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = '/api/ui/milkdown.umd.js';\n script.async = true;\n script.dataset.dtMilkdown = 'true';\n script.onload = () => {\n if (window.__DtMilkdown) {\n resolve(window.__DtMilkdown);\n return;\n }\n\n reject(new Error('Milkdown runtime loaded without a __DtMilkdown export.'));\n };\n script.onerror = () => reject(new Error('Failed to load the Milkdown runtime bundle.'));\n document.head.appendChild(script);\n });\n\n return loadPromise;\n}\n", "import markdownEditorCss from './styles/markdown-editor.css?raw';\nimport { loadMilkdown } from './lib/milkdown-loader';\nimport type { DtMilkdownRuntime } from './lib/milkdown-loader';\n\nexport interface DtMarkdownEditorChangeDetail {\n value: string;\n}\n\n/**\n * `<dt-markdown-editor>` \u2014 full WYSIWYG markdown editor powered by Milkdown.\n *\n * The component lazy-loads Milkdown on first use, injects the required editor\n * styles into its shadow root, and exposes a simple `value` property that reads\n * and writes markdown.\n *\n * ## Attributes\n * - `placeholder` \u2014 empty-state hint text\n * - `readonly` \u2014 when present, disables editing\n *\n * ## Properties\n * - `value` \u2014 JS-only markdown value for get/set access\n * - `readonly` \u2014 boolean reflection of the `readonly` attribute\n *\n * ## Events\n * - `dt-change` \u2014 debounced content updates with `{ value }`\n * - `dt-focus` \u2014 fired when the editor gains focus\n * - `dt-blur` \u2014 fired when the editor loses focus\n */\nexport class DtMarkdownEditor extends HTMLElement {\n private readonly _runtimeStyle: HTMLStyleElement;\n private readonly _surface: HTMLDivElement;\n private readonly _content: HTMLDivElement;\n private readonly _status: HTMLDivElement;\n private _runtime: DtMilkdownRuntime | null = null;\n private _loadPromise: Promise<DtMilkdownRuntime> | null = null;\n private _editor: import('@milkdown/crepe').Crepe | null = null;\n private _pendingValue = '';\n private _changeTimer: ReturnType<typeof setTimeout> | null = null;\n private _setupToken = 0;\n private _suppressNextChange = false;\n\n static get observedAttributes(): string[] {\n return ['placeholder', 'readonly'];\n }\n\n get placeholder(): string {\n return this.getAttribute('placeholder') ?? '';\n }\n\n set placeholder(value: string) {\n this.setAttribute('placeholder', value);\n }\n\n get readonly(): boolean {\n return this.hasAttribute('readonly');\n }\n\n set readonly(value: boolean) {\n this.toggleAttribute('readonly', value);\n }\n\n get value(): string {\n if (this._editor) {\n this._pendingValue = this._editor.getMarkdown();\n }\n\n return this._pendingValue;\n }\n\n set value(value: string) {\n const nextValue = String(value ?? '');\n this._pendingValue = nextValue;\n\n if (this._editor && this._runtime && this._editor.getMarkdown() !== nextValue) {\n this._suppressNextChange = true;\n this._editor.editor.action(this._runtime.replaceAll(nextValue));\n }\n }\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = markdownEditorCss;\n shadow.appendChild(style);\n\n this._runtimeStyle = document.createElement('style');\n shadow.appendChild(this._runtimeStyle);\n\n this._surface = document.createElement('div');\n this._surface.className = 'dt-markdown-editor';\n\n this._content = document.createElement('div');\n this._content.className = 'dt-markdown-editor__surface';\n\n const mount = document.createElement('div');\n mount.className = 'dt-markdown-editor__content';\n this._content.appendChild(mount);\n\n this._status = document.createElement('div');\n this._status.className = 'dt-markdown-editor__status';\n this._status.textContent = 'Loading editor';\n\n this._surface.append(this._content, this._status);\n shadow.appendChild(this._surface);\n }\n\n connectedCallback(): void {\n void this._initializeEditor();\n }\n\n disconnectedCallback(): void {\n this._setupToken += 1;\n this._clearChangeTimer();\n void this._destroyEditor();\n }\n\n attributeChangedCallback(name: string): void {\n if (name === 'readonly') {\n this._editor?.setReadonly(this.readonly);\n return;\n }\n\n if (name === 'placeholder' && this.isConnected) {\n void this._initializeEditor(true);\n }\n }\n\n private async _ensureRuntime(): Promise<DtMilkdownRuntime> {\n if (this._runtime) {\n return this._runtime;\n }\n\n if (!this._loadPromise) {\n this._loadPromise = loadMilkdown().then((runtime) => {\n this._runtime = runtime;\n this._runtimeStyle.textContent = runtime.cssText;\n return runtime;\n });\n }\n\n return this._loadPromise;\n }\n\n private async _initializeEditor(force = false): Promise<void> {\n const setupToken = ++this._setupToken;\n this._setStatus('Loading editor');\n\n if (force) {\n await this._destroyEditor();\n } else if (this._editor) {\n this._setStatus(null);\n return;\n }\n\n try {\n const runtime = await this._ensureRuntime();\n if (!this.isConnected || setupToken !== this._setupToken) {\n return;\n }\n\n this._content.replaceChildren();\n const mount = document.createElement('div');\n mount.className = 'dt-markdown-editor__content';\n this._content.appendChild(mount);\n\n const editor = new runtime.Crepe({\n root: mount,\n defaultValue: this._pendingValue,\n features: {\n [runtime.Crepe.Feature.CodeMirror]: false,\n [runtime.Crepe.Feature.ImageBlock]: false,\n [runtime.Crepe.Feature.Latex]: false,\n },\n featureConfigs: {\n [runtime.Crepe.Feature.Placeholder]: {\n text: this.placeholder,\n mode: 'doc',\n },\n },\n });\n\n editor.on((listener) => {\n listener.markdownUpdated((_ctx, markdown) => {\n this._pendingValue = markdown;\n if (this._suppressNextChange) {\n this._suppressNextChange = false;\n return;\n }\n this._queueChange(markdown);\n });\n listener.focus(() => {\n this.dispatchEvent(new CustomEvent('dt-focus', { bubbles: true, composed: true }));\n });\n listener.blur(() => {\n this.dispatchEvent(new CustomEvent('dt-blur', { bubbles: true, composed: true }));\n });\n });\n\n await editor.create();\n\n if (!this.isConnected || setupToken !== this._setupToken) {\n await editor.destroy();\n return;\n }\n\n this._editor = editor;\n this._editor.setReadonly(this.readonly);\n this._pendingValue = this._editor.getMarkdown();\n this._setStatus(null);\n } catch {\n if (setupToken === this._setupToken) {\n this._setStatus('Failed to load editor');\n }\n }\n }\n\n private async _destroyEditor(): Promise<void> {\n const editor = this._editor;\n this._editor = null;\n if (!editor) {\n return;\n }\n\n try {\n await editor.destroy();\n } catch {\n // Ignore teardown errors while the host is disconnecting.\n }\n }\n\n private _queueChange(markdown: string): void {\n this._clearChangeTimer();\n this._changeTimer = setTimeout(() => {\n this._changeTimer = null;\n this.dispatchEvent(\n new CustomEvent<DtMarkdownEditorChangeDetail>('dt-change', {\n bubbles: true,\n composed: true,\n detail: { value: markdown },\n }),\n );\n }, 300);\n }\n\n private _clearChangeTimer(): void {\n if (this._changeTimer) {\n clearTimeout(this._changeTimer);\n this._changeTimer = null;\n }\n }\n\n private _setStatus(message: string | null): void {\n if (message) {\n this._status.hidden = false;\n this._status.textContent = message;\n return;\n }\n\n this._status.hidden = true;\n }\n}\n", "/**\n * @desktalk/ui \u2014 Framework-agnostic web components for the DeskTalk design system.\n *\n * Importing this module registers all custom elements. The shell loads it once;\n * every miniapp gets the elements for free because they share the same document.\n */\n\nimport { DtTooltip } from './dt-tooltip';\nimport { DtCard } from './dt-card';\nimport { DtSelect } from './dt-select';\nimport { DtGrid } from './dt-grid';\nimport { DtStack } from './dt-stack';\nimport { DtStat } from './dt-stat';\nimport { DtBadge } from './dt-badge';\nimport { DtButton } from './dt-button';\nimport { DtDivider } from './dt-divider';\nimport { DtColumn, DtTableView } from './dt-table-view';\nimport { DtListView } from './dt-list-view';\nimport { DtChart } from './dt-chart';\nimport { DtMarkdown } from './dt-markdown';\nimport { DtMarkdownEditor } from './dt-markdown-editor';\nimport './ui-elements';\n\nexport {\n DtTooltip,\n DtCard,\n DtSelect,\n DtGrid,\n DtStack,\n DtStat,\n DtBadge,\n DtButton,\n DtDivider,\n DtListView,\n DtTableView,\n DtColumn,\n DtChart,\n DtMarkdown,\n DtMarkdownEditor,\n};\n\n// \u2500\u2500 Auto-register \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nif (!customElements.get('dt-tooltip')) {\n customElements.define('dt-tooltip', DtTooltip);\n}\n\nif (!customElements.get('dt-card')) {\n customElements.define('dt-card', DtCard);\n}\n\nif (!customElements.get('dt-select')) {\n customElements.define('dt-select', DtSelect);\n}\n\nif (!customElements.get('dt-grid')) {\n customElements.define('dt-grid', DtGrid);\n}\n\nif (!customElements.get('dt-stack')) {\n customElements.define('dt-stack', DtStack);\n}\n\nif (!customElements.get('dt-stat')) {\n customElements.define('dt-stat', DtStat);\n}\n\nif (!customElements.get('dt-badge')) {\n customElements.define('dt-badge', DtBadge);\n}\n\nif (!customElements.get('dt-button')) {\n customElements.define('dt-button', DtButton);\n}\n\nif (!customElements.get('dt-divider')) {\n customElements.define('dt-divider', DtDivider);\n}\n\nif (!customElements.get('dt-list-view')) {\n customElements.define('dt-list-view', DtListView);\n}\n\nif (!customElements.get('dt-table-view')) {\n customElements.define('dt-table-view', DtTableView);\n}\n\nif (!customElements.get('dt-column')) {\n customElements.define('dt-column', DtColumn);\n}\n\nif (!customElements.get('dt-chart')) {\n customElements.define('dt-chart', DtChart);\n}\n\nif (!customElements.get('dt-markdown')) {\n customElements.define('dt-markdown', DtMarkdown);\n}\n\nif (!customElements.get('dt-markdown-editor')) {\n customElements.define('dt-markdown-editor', DtMarkdownEditor);\n}\n", ".root {\n display: flex;\n height: 100%;\n overflow: hidden;\n background: var(--dt-window-body);\n color: var(--dt-text);\n font-family: var(--font-ui, 'Work Sans', system-ui, -apple-system, sans-serif);\n}\n\n.rootCompact {\n flex-direction: column;\n}\n\n.sidebar {\n width: 180px;\n min-width: 180px;\n display: flex;\n flex-direction: column;\n align-self: stretch;\n overflow-y: auto;\n padding: 8px 0;\n border-right: 1px solid var(--dt-border);\n}\n\n.sidebarHeader {\n padding: 12px 16px 8px;\n color: var(--dt-text-muted);\n font-size: 11px;\n font-weight: 600;\n font-family: var(--font-display, 'Sora', system-ui, -apple-system, sans-serif);\n letter-spacing: 0.05em;\n text-transform: uppercase;\n}\n\n.categoryItem {\n display: flex;\n width: 100%;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n border: none;\n background: none;\n color: var(--dt-text);\n cursor: pointer;\n font-family: inherit;\n font-size: 13px;\n text-align: left;\n transition: background 0.1s;\n}\n\n.categoryItem:hover {\n background: var(--dt-surface-hover);\n}\n\n.categoryItemActive {\n composes: categoryItem;\n background: var(--dt-surface);\n border-left: 3px solid var(--dt-accent);\n color: var(--dt-accent);\n font-weight: 500;\n padding-left: 13px;\n}\n\n.categoryIcon {\n width: 20px;\n font-size: 15px;\n text-align: center;\n}\n\n.categoryText {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.settingsPanel {\n flex: 1;\n min-width: 0;\n overflow-y: auto;\n padding: 0;\n}\n\n.section {\n padding: 20px 24px 8px;\n}\n\n.sectionTitle {\n margin-bottom: 4px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--dt-border);\n color: var(--dt-text-muted);\n font-size: 13px;\n font-weight: 600;\n font-family: var(--font-display, 'Sora', system-ui, -apple-system, sans-serif);\n letter-spacing: 0.04em;\n text-transform: uppercase;\n}\n\n.row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n padding: 12px 0;\n border-bottom: 1px solid var(--dt-border-subtle);\n}\n\n.row:last-child {\n border-bottom: none;\n}\n\n.rowInfo {\n flex: 1;\n min-width: 0;\n}\n\n.rowLabel {\n margin-bottom: 2px;\n font-size: 14px;\n font-weight: 500;\n font-family: var(--font-ui, 'Work Sans', system-ui, -apple-system, sans-serif);\n}\n\n.rowDescription {\n color: var(--dt-text-muted);\n font-size: 12px;\n line-height: 1.4;\n}\n\n.rowRestartBadge {\n display: inline-block;\n margin-left: 6px;\n padding: 1px 5px;\n border-radius: 3px;\n background: var(--dt-warning-subtle);\n color: var(--dt-warning);\n font-size: 10px;\n font-weight: 600;\n letter-spacing: 0.03em;\n text-transform: uppercase;\n}\n\n.rowControl {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 8px;\n}\n\n.providerGroup {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px 0 18px;\n border-bottom: 1px solid var(--dt-border-subtle);\n}\n\n.providerGroupHeader {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n}\n\n.providerList {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.providerCard {\n margin: 0;\n}\n\n.providerCard :global(dt-card) {\n display: block;\n margin: 0;\n}\n\n.providerCardBody {\n display: flex;\n flex-direction: column;\n gap: 14px;\n}\n\n.providerCardHeader {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n}\n\n.providerCardTitleRow {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.providerCardTitle {\n font-size: 14px;\n font-weight: 600;\n font-family: var(--font-display, 'Sora', system-ui, -apple-system, sans-serif);\n letter-spacing: -0.01em;\n}\n\n.providerDefaultBadge {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border-radius: 999px;\n background: var(--dt-accent-ghost);\n color: var(--dt-accent);\n font-size: 11px;\n font-weight: 600;\n}\n\n.providerCardActions {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: 8px;\n}\n\n.providerActionButtonWrap,\n.providerButtonWrap {\n display: inline-flex;\n}\n\n.providerActionButtonWrap :global(dt-button),\n.providerButtonWrap :global(dt-button) {\n display: inline-flex;\n}\n\n.providerFieldGrid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 12px;\n}\n\n.providerField {\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: 6px;\n}\n\n.providerFieldLabel {\n color: var(--dt-text-muted);\n font-size: 11px;\n font-weight: 600;\n font-family: var(--font-display, 'Sora', system-ui, -apple-system, sans-serif);\n letter-spacing: 0.04em;\n text-transform: uppercase;\n}\n\n.providerSelectWrap {\n width: 100%;\n}\n\n.providerSelectWrap :global(dt-select) {\n display: block;\n width: 100%;\n}\n\n.selectWrap {\n min-width: 120px;\n}\n\n.selectWrap :global(dt-select) {\n display: block;\n min-width: 120px;\n}\n\n.textInput,\n.numberInput,\n.dropdown {\n padding: 6px 10px;\n border: 1px solid var(--dt-border);\n border-radius: 6px;\n background: var(--dt-surface);\n color: var(--dt-text);\n font-family: var(--font-ui, 'Work Sans', system-ui, -apple-system, sans-serif);\n font-size: 13px;\n outline: none;\n transition:\n border-color 0.15s,\n box-shadow 0.15s,\n background 0.15s;\n}\n\n.textInput:focus,\n.numberInput:focus,\n.dropdown:focus {\n border-color: var(--dt-accent);\n box-shadow: 0 0 0 3px var(--dt-accent-ghost);\n}\n\n.textInput {\n width: 220px;\n}\n\n.textInput::placeholder {\n color: var(--dt-text-muted);\n}\n\n.textInputSensitive {\n composes: textInput;\n font-family: var(--font-mono);\n letter-spacing: 0.05em;\n}\n\n.numberInput {\n width: 100px;\n -moz-appearance: textfield;\n}\n\n.numberInput::-webkit-inner-spin-button,\n.numberInput::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n.dropdown {\n min-width: 120px;\n cursor: pointer;\n}\n\n.colorControl {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.colorInput {\n width: 40px;\n height: 36px;\n padding: 2px;\n border: 1px solid var(--dt-border);\n border-radius: 8px;\n background: var(--dt-surface);\n cursor: pointer;\n}\n\n.toggle {\n position: relative;\n width: 42px;\n height: 24px;\n flex-shrink: 0;\n cursor: pointer;\n}\n\n.toggleInput {\n position: absolute;\n width: 0;\n height: 0;\n opacity: 0;\n}\n\n.toggleTrack {\n position: absolute;\n inset: 0;\n border: 1px solid var(--dt-border);\n border-radius: 12px;\n background: var(--dt-surface);\n transition:\n background 0.2s,\n border-color 0.2s;\n}\n\n.toggleInput:checked + .toggleTrack {\n border-color: var(--dt-accent);\n background: var(--dt-accent);\n}\n\n.toggleKnob {\n position: absolute;\n top: 3px;\n left: 3px;\n width: 18px;\n height: 18px;\n border-radius: 50%;\n background: var(--dt-text-on-accent);\n transition: transform 0.2s;\n pointer-events: none;\n}\n\n.toggleInput:checked ~ .toggleKnob {\n transform: translateX(18px);\n}\n\n.notification {\n position: fixed;\n bottom: 80px;\n left: 50%;\n z-index: 1000;\n padding: 10px 20px;\n border: 1px solid color-mix(in oklab, var(--dt-warning) 40%, var(--dt-border));\n border-radius: 8px;\n background: color-mix(in oklab, var(--dt-warning) 20%, var(--dt-surface));\n box-shadow: 0 14px 28px var(--dt-shadow-color);\n color: var(--dt-text);\n font-size: 13px;\n font-weight: 500;\n transform: translateX(-50%);\n animation: slideUp 0.3s ease-out;\n}\n\n.rootCompact .sidebar {\n width: 100%;\n min-width: 0;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n overflow-x: auto;\n overflow-y: visible;\n padding: 10px 12px;\n border-right: none;\n border-bottom: 1px solid var(--dt-border);\n background: color-mix(in oklab, var(--dt-surface) 72%, transparent);\n}\n\n.rootCompact .sidebarHeader {\n flex: 0 0 auto;\n padding: 0 10px 0 0;\n border-right: 1px solid var(--dt-border-subtle);\n white-space: nowrap;\n}\n\n.rootCompact .categoryItem,\n.rootCompact .categoryItemActive {\n position: relative;\n width: 40px;\n min-width: 40px;\n height: 40px;\n justify-content: center;\n gap: 0;\n padding: 0;\n border: 1px solid transparent;\n border-radius: 10px;\n flex-shrink: 0;\n}\n\n.rootCompact .categoryItemActive {\n border-left: 1px solid color-mix(in oklab, var(--dt-accent) 45%, var(--dt-border));\n background: color-mix(in oklab, var(--dt-accent) 12%, var(--dt-surface));\n box-shadow: 0 0 0 1px var(--dt-accent-ghost) inset;\n padding-left: 0;\n}\n\n.rootCompact .settingsPanel {\n padding-bottom: 12px;\n}\n\n.rootCompact .section {\n padding: 16px 16px 8px;\n}\n\n.rootCompact .row {\n align-items: stretch;\n flex-direction: column;\n gap: 12px;\n}\n\n.rootCompact .rowControl {\n width: 100%;\n min-width: 0;\n}\n\n.rootCompact .providerGroupHeader,\n.rootCompact .providerCardHeader {\n flex-direction: column;\n}\n\n.rootCompact .providerCardActions {\n justify-content: flex-start;\n}\n\n.rootCompact .providerActionButtonWrap,\n.rootCompact .providerButtonWrap {\n width: 100%;\n}\n\n.rootCompact .providerFieldGrid {\n grid-template-columns: 1fr;\n}\n\n.rootCompact .textInput,\n.rootCompact .textInputSensitive,\n.rootCompact .numberInput,\n.rootCompact .dropdown,\n.rootCompact .providerActionButtonWrap :global(dt-button),\n.rootCompact .providerButtonWrap :global(dt-button) {\n width: 100%;\n min-width: 0;\n}\n\n.rootCompact .colorControl {\n width: 100%;\n}\n\n.rootCompact .colorInput {\n flex: 0 0 44px;\n}\n\n@keyframes slideUp {\n from {\n opacity: 0;\n transform: translateX(-50%) translateY(10px);\n }\n\n to {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n }\n}\n", "var _mod = window.__desktalk_jsx_runtime;\nexport default _mod;\nexport var jsx = _mod.jsx;\nexport var jsxs = _mod.jsxs;\nexport var jsxDEV = _mod.jsxDEV;\nexport var Fragment = _mod.Fragment;", "import React from 'react';\nimport '@desktalk/ui'; // global JSX types for <dt-tooltip>\nimport { CATEGORIES, type Category } from '../schema';\nimport styles from '../styles/PreferenceApp.module.css';\n\nconst CATEGORY_ICONS: Record<Category, string> = {\n General: '\\u2699',\n Server: '\\uD83C\\uDF10',\n AI: '\\uD83E\\uDD16',\n Voice: '\\uD83C\\uDF99',\n};\n\ninterface PreferenceCategoryListProps {\n activeCategory: string;\n onSelect: (category: string) => void;\n compact?: boolean;\n}\n\nexport function PreferenceCategoryList({\n activeCategory,\n onSelect,\n compact = false,\n}: PreferenceCategoryListProps) {\n return (\n <nav className={styles.sidebar}>\n <div className={styles.sidebarHeader}>Settings</div>\n {CATEGORIES.map((category) => {\n const button = (\n <button\n key={category}\n className={\n category === activeCategory ? styles.categoryItemActive : styles.categoryItem\n }\n onClick={() => onSelect(category)}\n type=\"button\"\n aria-label={compact ? category : undefined}\n >\n <span className={styles.categoryIcon}>{CATEGORY_ICONS[category]}</span>\n {!compact && <span className={styles.categoryText}>{category}</span>}\n </button>\n );\n\n if (compact) {\n return (\n <dt-tooltip key={category} content={category} placement=\"bottom\">\n {button}\n </dt-tooltip>\n );\n }\n\n return button;\n })}\n </nav>\n );\n}\n", "import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport type { Config } from '../schema';\nimport {\n AI_PROVIDER_DEFINITIONS,\n DEFAULT_AI_PROVIDER_ID,\n getAiProviderConfigKeys,\n getAiProviderDefinition,\n parseAiEnabledProviders,\n serializeAiEnabledProviders,\n} from '../schema';\nimport styles from '../styles/PreferenceApp.module.css';\n\ninterface AiProviderListProps {\n config: Config;\n onChange: (key: string, value: string | number | boolean) => Promise<void> | void;\n}\n\nexport function AiProviderList({ config, onChange }: AiProviderListProps) {\n const enabledProviders = useMemo(() => {\n const providers = parseAiEnabledProviders(config['ai.enabledProviders']);\n const defaultProvider =\n typeof config['ai.defaultProvider'] === 'string' && config['ai.defaultProvider']\n ? String(config['ai.defaultProvider'])\n : DEFAULT_AI_PROVIDER_ID;\n\n if (!providers.includes(defaultProvider)) {\n providers.unshift(defaultProvider);\n }\n\n return providers;\n }, [config]);\n\n const updateOrder = useCallback(\n async (providerIds: string[]) => {\n const nextProviders = providerIds.length > 0 ? providerIds : [DEFAULT_AI_PROVIDER_ID];\n await onChange('ai.enabledProviders', serializeAiEnabledProviders(nextProviders));\n await onChange('ai.defaultProvider', nextProviders[0]);\n },\n [onChange],\n );\n\n const handleAddProvider = useCallback(async () => {\n const nextProvider = AI_PROVIDER_DEFINITIONS.find(\n (provider) => !enabledProviders.includes(provider.id),\n );\n if (!nextProvider) {\n return;\n }\n\n await updateOrder([...enabledProviders, nextProvider.id]);\n }, [enabledProviders, updateOrder]);\n\n const handleProviderChange = useCallback(\n async (providerId: string, nextProviderId: string) => {\n if (providerId === nextProviderId || enabledProviders.includes(nextProviderId)) {\n return;\n }\n\n const nextProviders = enabledProviders.map((currentProviderId) =>\n currentProviderId === providerId ? nextProviderId : currentProviderId,\n );\n await updateOrder(nextProviders);\n },\n [enabledProviders, updateOrder],\n );\n\n const handleDeleteProvider = useCallback(\n async (providerId: string) => {\n if (enabledProviders.length === 1) {\n return;\n }\n\n const nextProviders = enabledProviders.filter(\n (currentProviderId) => currentProviderId !== providerId,\n );\n await updateOrder(nextProviders);\n\n for (const key of getAiProviderConfigKeys(providerId)) {\n await onChange(key, '');\n }\n },\n [enabledProviders, onChange, updateOrder],\n );\n\n const handleSetDefault = useCallback(\n async (providerId: string) => {\n if (enabledProviders[0] === providerId) {\n return;\n }\n\n const nextProviders = [\n providerId,\n ...enabledProviders.filter((currentProviderId) => currentProviderId !== providerId),\n ];\n await updateOrder(nextProviders);\n },\n [enabledProviders, updateOrder],\n );\n\n return (\n <div className={styles.providerGroup}>\n <div className={styles.providerGroupHeader}>\n <div>\n <div className={styles.rowLabel}>Providers</div>\n <div className={styles.rowDescription}>\n Add providers, keep your default at the top, and remove anything you no longer use.\n </div>\n </div>\n <div className={styles.providerActionButtonWrap}>\n <ProviderButton\n onPress={handleAddProvider}\n disabled={enabledProviders.length >= AI_PROVIDER_DEFINITIONS.length}\n variant=\"secondary\"\n >\n Add provider\n </ProviderButton>\n </div>\n </div>\n\n <div className={styles.providerList}>\n {enabledProviders.map((providerId, index) => {\n const definition = getAiProviderDefinition(providerId);\n if (!definition) {\n return null;\n }\n\n const availableOptions = AI_PROVIDER_DEFINITIONS.filter(\n (provider) => provider.id === providerId || !enabledProviders.includes(provider.id),\n );\n\n return (\n <div key={providerId} className={styles.providerCard}>\n <dt-card variant=\"outlined\">\n <div className={styles.providerCardBody}>\n <div className={styles.providerCardHeader}>\n <div className={styles.providerCardTitleRow}>\n <div className={styles.providerCardTitle}>{definition.label}</div>\n {index === 0 && <span className={styles.providerDefaultBadge}>Default</span>}\n </div>\n <div className={styles.providerCardActions}>\n <div className={styles.providerButtonWrap}>\n <ProviderButton\n onPress={() => handleSetDefault(providerId)}\n disabled={index === 0}\n variant=\"secondary\"\n size=\"sm\"\n >\n Set as default\n </ProviderButton>\n </div>\n <div className={styles.providerButtonWrap}>\n <ProviderButton\n onPress={() => handleDeleteProvider(providerId)}\n disabled={enabledProviders.length === 1}\n variant=\"danger\"\n size=\"sm\"\n >\n Delete\n </ProviderButton>\n </div>\n </div>\n </div>\n\n <div className={styles.providerFieldGrid}>\n <div className={styles.providerField}>\n <label\n className={styles.providerFieldLabel}\n htmlFor={`ai-provider-${providerId}`}\n >\n Provider\n </label>\n <ProviderSelect\n value={providerId}\n options={availableOptions.map((provider) => ({\n value: provider.id,\n label: provider.label,\n }))}\n onChange={(nextValue) => handleProviderChange(providerId, nextValue)}\n />\n </div>\n\n {definition.supportsApiKey && (\n <ProviderTextField\n id={`ai-provider-key-${providerId}`}\n label=\"API Key\"\n value={String(config[`ai.providers.${providerId}.apiKey`] ?? '')}\n sensitive\n onCommit={(value) => onChange(`ai.providers.${providerId}.apiKey`, value)}\n />\n )}\n\n <ProviderTextField\n id={`ai-provider-model-${providerId}`}\n label=\"Model\"\n value={String(config[`ai.providers.${providerId}.model`] ?? '')}\n onCommit={(value) => onChange(`ai.providers.${providerId}.model`, value)}\n />\n\n {definition.supportsBaseUrl && (\n <ProviderTextField\n id={`ai-provider-base-url-${providerId}`}\n label=\"Base URL\"\n value={String(config[`ai.providers.${providerId}.baseUrl`] ?? '')}\n onCommit={(value) => onChange(`ai.providers.${providerId}.baseUrl`, value)}\n />\n )}\n </div>\n </div>\n </dt-card>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\ninterface ProviderButtonProps {\n children: React.ReactNode;\n disabled?: boolean;\n variant?: 'primary' | 'secondary' | 'ghost' | 'danger';\n size?: 'sm' | 'md' | 'lg';\n onPress: () => Promise<void> | void;\n}\n\ninterface DtSelectElement extends HTMLElement {\n options: Array<{ value: string; label: string }>;\n value: string;\n disabled: boolean;\n}\n\nfunction ProviderButton({\n children,\n disabled = false,\n variant = 'primary',\n size = 'md',\n onPress,\n}: ProviderButtonProps) {\n const [buttonElement, setButtonElement] = useState<HTMLElement | null>(null);\n\n useEffect(() => {\n if (!buttonElement) {\n return;\n }\n\n const handleClick = () => {\n void onPress();\n };\n\n buttonElement.addEventListener('click', handleClick);\n return () => buttonElement.removeEventListener('click', handleClick);\n }, [buttonElement, onPress]);\n\n return (\n <dt-button\n ref={(element: HTMLElement | null) => setButtonElement(element)}\n disabled={disabled}\n variant={variant}\n size={size}\n >\n {children}\n </dt-button>\n );\n}\n\ninterface ProviderSelectProps {\n value: string;\n options: Array<{ value: string; label: string }>;\n disabled?: boolean;\n onChange: (value: string) => Promise<void> | void;\n}\n\nfunction ProviderSelect({ value, options, disabled = false, onChange }: ProviderSelectProps) {\n const [selectElement, setSelectElement] = useState<DtSelectElement | null>(null);\n\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n\n selectElement.options = options;\n }, [options, selectElement]);\n\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n\n selectElement.value = value;\n }, [selectElement, value]);\n\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n\n selectElement.disabled = disabled;\n }, [disabled, selectElement]);\n\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n\n const handleChange = (event: Event) => {\n void onChange((event as CustomEvent<{ value: string }>).detail.value);\n };\n\n selectElement.addEventListener('dt-change', handleChange);\n return () => selectElement.removeEventListener('dt-change', handleChange);\n }, [onChange, selectElement]);\n\n return (\n <div className={styles.providerSelectWrap}>\n <dt-select ref={(element: DtSelectElement | null) => setSelectElement(element)} />\n </div>\n );\n}\n\ninterface ProviderTextFieldProps {\n id: string;\n label: string;\n value: string;\n sensitive?: boolean;\n onCommit: (value: string) => Promise<void> | void;\n}\n\nfunction ProviderTextField({\n id,\n label,\n value,\n sensitive = false,\n onCommit,\n}: ProviderTextFieldProps) {\n const [localValue, setLocalValue] = useState(value);\n\n useEffect(() => {\n setLocalValue(value);\n }, [value]);\n\n const commit = useCallback(() => {\n if (localValue !== value) {\n void onCommit(localValue);\n }\n }, [localValue, onCommit, value]);\n\n return (\n <div className={styles.providerField}>\n <label className={styles.providerFieldLabel} htmlFor={id}>\n {label}\n </label>\n <input\n id={id}\n type={sensitive ? 'password' : 'text'}\n className={sensitive ? styles.textInputSensitive : styles.textInput}\n value={localValue}\n onChange={(event) => setLocalValue(event.target.value)}\n onBlur={commit}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n commit();\n }\n }}\n />\n </div>\n );\n}\n", "import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport type { Config } from '../schema';\nimport {\n DEFAULT_VOICE_PROVIDER_ID,\n VOICE_PROVIDER_DEFINITIONS,\n getVoiceProviderConfigKeys,\n getVoiceProviderDefinition,\n parseVoiceEnabledProviders,\n serializeVoiceEnabledProviders,\n} from '../schema';\nimport styles from '../styles/PreferenceApp.module.css';\n\ninterface DtSelectElement extends HTMLElement {\n options: Array<{ value: string; label: string }>;\n value: string;\n disabled: boolean;\n}\n\ninterface VoiceProviderListProps {\n config: Config;\n onChange: (key: string, value: string | number | boolean) => Promise<void> | void;\n}\n\nexport function VoiceProviderList({ config, onChange }: VoiceProviderListProps) {\n const enabledProviders = useMemo(() => {\n const providers = parseVoiceEnabledProviders(config['voice.enabledProviders']);\n const defaultProvider =\n typeof config['voice.defaultProvider'] === 'string' && config['voice.defaultProvider']\n ? String(config['voice.defaultProvider'])\n : DEFAULT_VOICE_PROVIDER_ID;\n\n if (!providers.includes(defaultProvider)) {\n providers.unshift(defaultProvider);\n }\n\n return providers;\n }, [config]);\n\n const updateOrder = useCallback(\n async (providerIds: string[]) => {\n const nextProviders = providerIds.length > 0 ? providerIds : [DEFAULT_VOICE_PROVIDER_ID];\n await onChange('voice.enabledProviders', serializeVoiceEnabledProviders(nextProviders));\n await onChange('voice.defaultProvider', nextProviders[0]);\n },\n [onChange],\n );\n\n const handleAddProvider = useCallback(async () => {\n const nextProvider = VOICE_PROVIDER_DEFINITIONS.find(\n (provider) => !enabledProviders.includes(provider.id),\n );\n if (!nextProvider) {\n return;\n }\n\n await updateOrder([...enabledProviders, nextProvider.id]);\n }, [enabledProviders, updateOrder]);\n\n const handleProviderChange = useCallback(\n async (providerId: string, nextProviderId: string) => {\n if (providerId === nextProviderId || enabledProviders.includes(nextProviderId)) {\n return;\n }\n\n const nextProviders = enabledProviders.map((currentProviderId) =>\n currentProviderId === providerId ? nextProviderId : currentProviderId,\n );\n await updateOrder(nextProviders);\n },\n [enabledProviders, updateOrder],\n );\n\n const handleDeleteProvider = useCallback(\n async (providerId: string) => {\n if (enabledProviders.length === 1) {\n return;\n }\n\n const nextProviders = enabledProviders.filter(\n (currentProviderId) => currentProviderId !== providerId,\n );\n await updateOrder(nextProviders);\n\n for (const key of getVoiceProviderConfigKeys(providerId)) {\n await onChange(key, '');\n }\n },\n [enabledProviders, onChange, updateOrder],\n );\n\n const handleSetDefault = useCallback(\n async (providerId: string) => {\n if (enabledProviders[0] === providerId) {\n return;\n }\n\n const nextProviders = [\n providerId,\n ...enabledProviders.filter((currentProviderId) => currentProviderId !== providerId),\n ];\n await updateOrder(nextProviders);\n },\n [enabledProviders, updateOrder],\n );\n\n return (\n <div className={styles.providerGroup}>\n <div className={styles.providerGroupHeader}>\n <div>\n <div className={styles.rowLabel}>Providers</div>\n <div className={styles.rowDescription}>\n Add STT providers, keep your default at the top, and remove unused items.\n </div>\n </div>\n <div className={styles.providerActionButtonWrap}>\n <ProviderButton\n onPress={handleAddProvider}\n disabled={enabledProviders.length >= VOICE_PROVIDER_DEFINITIONS.length}\n variant=\"secondary\"\n >\n Add provider\n </ProviderButton>\n </div>\n </div>\n\n <div className={styles.providerList}>\n {enabledProviders.map((providerId, index) => {\n const definition = getVoiceProviderDefinition(providerId);\n if (!definition) {\n return null;\n }\n\n const availableOptions = VOICE_PROVIDER_DEFINITIONS.filter(\n (provider) => provider.id === providerId || !enabledProviders.includes(provider.id),\n );\n\n return (\n <div key={providerId} className={styles.providerCard}>\n <dt-card variant=\"outlined\">\n <div className={styles.providerCardBody}>\n <div className={styles.providerCardHeader}>\n <div className={styles.providerCardTitleRow}>\n <div className={styles.providerCardTitle}>{definition.label}</div>\n {index === 0 && <span className={styles.providerDefaultBadge}>Default</span>}\n </div>\n <div className={styles.providerCardActions}>\n <div className={styles.providerButtonWrap}>\n <ProviderButton\n onPress={() => handleSetDefault(providerId)}\n disabled={index === 0}\n variant=\"secondary\"\n size=\"sm\"\n >\n Set as default\n </ProviderButton>\n </div>\n <div className={styles.providerButtonWrap}>\n <ProviderButton\n onPress={() => handleDeleteProvider(providerId)}\n disabled={enabledProviders.length === 1}\n variant=\"danger\"\n size=\"sm\"\n >\n Delete\n </ProviderButton>\n </div>\n </div>\n </div>\n\n <div className={styles.providerFieldGrid}>\n <ProviderSelectField\n label=\"Provider\"\n value={providerId}\n options={availableOptions.map((provider) => ({\n value: provider.id,\n label: provider.label,\n }))}\n onChange={(nextValue) => handleProviderChange(providerId, nextValue)}\n />\n\n {definition.supportsApiKey && (\n <ProviderTextField\n id={`voice-provider-key-${providerId}`}\n label=\"API Key\"\n value={String(config[`voice.providers.${providerId}.apiKey`] ?? '')}\n sensitive\n onCommit={(value) =>\n onChange(`voice.providers.${providerId}.apiKey`, value)\n }\n />\n )}\n\n {definition.supportsModel && (\n <ProviderTextField\n id={`voice-provider-model-${providerId}`}\n label=\"Model\"\n value={String(config[`voice.providers.${providerId}.model`] ?? '')}\n onCommit={(value) => onChange(`voice.providers.${providerId}.model`, value)}\n />\n )}\n\n {definition.supportsBaseUrl && (\n <ProviderTextField\n id={`voice-provider-base-url-${providerId}`}\n label=\"Base URL\"\n value={String(config[`voice.providers.${providerId}.baseUrl`] ?? '')}\n onCommit={(value) =>\n onChange(`voice.providers.${providerId}.baseUrl`, value)\n }\n />\n )}\n\n {definition.supportsAzureDeployment && (\n <ProviderTextField\n id={`voice-provider-deployment-${providerId}`}\n label=\"Azure Deployment\"\n value={String(\n config[`voice.providers.${providerId}.azureDeployment`] ?? '',\n )}\n onCommit={(value) =>\n onChange(`voice.providers.${providerId}.azureDeployment`, value)\n }\n />\n )}\n\n {definition.supportsAzureApiVersion && (\n <ProviderTextField\n id={`voice-provider-api-version-${providerId}`}\n label=\"Azure API Version\"\n value={String(\n config[`voice.providers.${providerId}.azureApiVersion`] ?? '',\n )}\n onCommit={(value) =>\n onChange(`voice.providers.${providerId}.azureApiVersion`, value)\n }\n />\n )}\n </div>\n </div>\n </dt-card>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\nfunction ProviderButton({\n children,\n disabled = false,\n variant = 'primary',\n size = 'md',\n onPress,\n}: {\n children: React.ReactNode;\n disabled?: boolean;\n variant?: 'primary' | 'secondary' | 'ghost' | 'danger';\n size?: 'sm' | 'md' | 'lg';\n onPress: () => Promise<void> | void;\n}) {\n const [buttonElement, setButtonElement] = useState<HTMLElement | null>(null);\n\n useEffect(() => {\n if (!buttonElement) {\n return;\n }\n\n const handleClick = () => {\n void onPress();\n };\n\n buttonElement.addEventListener('click', handleClick);\n return () => buttonElement.removeEventListener('click', handleClick);\n }, [buttonElement, onPress]);\n\n return (\n <dt-button\n ref={(element: HTMLElement | null) => setButtonElement(element)}\n disabled={disabled}\n variant={variant}\n size={size}\n >\n {children}\n </dt-button>\n );\n}\n\nfunction ProviderSelectField({\n label,\n value,\n options,\n onChange,\n}: {\n label: string;\n value: string;\n options: Array<{ value: string; label: string }>;\n onChange: (value: string) => Promise<void> | void;\n}) {\n const [selectElement, setSelectElement] = useState<DtSelectElement | null>(null);\n\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n\n selectElement.options = options;\n }, [options, selectElement]);\n\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n\n selectElement.value = value;\n }, [selectElement, value]);\n\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n\n const handleChange = (event: Event) => {\n void onChange((event as CustomEvent<{ value: string }>).detail.value);\n };\n\n selectElement.addEventListener('dt-change', handleChange);\n return () => selectElement.removeEventListener('dt-change', handleChange);\n }, [onChange, selectElement]);\n\n return (\n <div className={styles.providerField}>\n <label className={styles.providerFieldLabel}>{label}</label>\n <div className={styles.providerSelectWrap}>\n <dt-select ref={(element: DtSelectElement | null) => setSelectElement(element)} />\n </div>\n </div>\n );\n}\n\nfunction ProviderTextField({\n id,\n label,\n value,\n sensitive = false,\n onCommit,\n}: {\n id: string;\n label: string;\n value: string;\n sensitive?: boolean;\n onCommit: (value: string) => Promise<void> | void;\n}) {\n const [localValue, setLocalValue] = useState(value);\n\n useEffect(() => {\n setLocalValue(value);\n }, [value]);\n\n const commit = useCallback(() => {\n if (localValue !== value) {\n void onCommit(localValue);\n }\n }, [localValue, onCommit, value]);\n\n return (\n <div className={styles.providerField}>\n <label className={styles.providerFieldLabel} htmlFor={id}>\n {label}\n </label>\n <input\n id={id}\n type={sensitive ? 'password' : 'text'}\n className={sensitive ? styles.textInputSensitive : styles.textInput}\n value={localValue}\n onChange={(event) => setLocalValue(event.target.value)}\n onBlur={commit}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n commit();\n }\n }}\n />\n </div>\n );\n}\n", "import React from 'react';\nimport styles from '../styles/PreferenceApp.module.css';\n\ninterface PreferenceSectionProps {\n title: string;\n children: React.ReactNode;\n}\n\nexport function PreferenceSection({ title, children }: PreferenceSectionProps) {\n return (\n <section className={styles.section}>\n <h3 className={styles.sectionTitle}>{title}</h3>\n {children}\n </section>\n );\n}\n", "import React, { useCallback, useState, useEffect } from 'react';\nimport type { PreferenceSchema } from '../schema';\nimport styles from '../styles/PreferenceApp.module.css';\n\ninterface DtSelectElement extends HTMLElement {\n options: Array<{ value: string; label: string }>;\n value: string;\n disabled: boolean;\n}\n\ninterface PreferenceRowProps {\n schema: PreferenceSchema;\n value: string | number | boolean;\n onChange: (key: string, value: string | number | boolean) => void;\n}\n\nexport function PreferenceRow({ schema, value, onChange }: PreferenceRowProps) {\n return (\n <div className={styles.row}>\n <div className={styles.rowInfo}>\n <div className={styles.rowLabel}>\n {schema.label}\n {schema.requiresRestart && <span className={styles.rowRestartBadge}>restart</span>}\n </div>\n <div className={styles.rowDescription}>{schema.description}</div>\n </div>\n <div className={styles.rowControl}>\n <Control schema={schema} value={value} onChange={onChange} />\n </div>\n </div>\n );\n}\n\n// \u2500\u2500\u2500 Control dispatcher \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction Control({\n schema,\n value,\n onChange,\n}: {\n schema: PreferenceSchema;\n value: string | number | boolean;\n onChange: (key: string, value: string | number | boolean) => void;\n}) {\n if (schema.key === 'general.accentColor' && schema.type === 'string') {\n return <ColorControl schema={schema} value={value as string} onChange={onChange} />;\n }\n if (schema.type === 'boolean') {\n return <ToggleControl schema={schema} value={value as boolean} onChange={onChange} />;\n }\n if (schema.type === 'string' && schema.options) {\n return <DropdownControl schema={schema} value={value as string} onChange={onChange} />;\n }\n if (schema.type === 'string') {\n return <TextControl schema={schema} value={value as string} onChange={onChange} />;\n }\n if (schema.type === 'number') {\n return <NumberControl schema={schema} value={value as number} onChange={onChange} />;\n }\n return null;\n}\n\nfunction isHexColor(value: string): boolean {\n return /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(value);\n}\n\nfunction ColorControl({\n schema,\n value,\n onChange,\n}: {\n schema: PreferenceSchema;\n value: string;\n onChange: (key: string, value: string) => void;\n}) {\n const [localValue, setLocalValue] = useState(value);\n\n useEffect(() => {\n setLocalValue(value);\n }, [value]);\n\n const commit = useCallback(\n (nextValue?: string) => {\n const resolvedValue = (nextValue ?? localValue).trim();\n if (resolvedValue !== value) {\n onChange(schema.key, resolvedValue);\n }\n },\n [localValue, onChange, schema.key, value],\n );\n\n const handlePickerInput = useCallback((e: React.FormEvent<HTMLInputElement>) => {\n setLocalValue(e.currentTarget.value);\n }, []);\n\n const handlePickerChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const nextValue = e.target.value;\n setLocalValue(nextValue);\n commit(nextValue);\n },\n [commit],\n );\n\n const handleTextChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n setLocalValue(e.target.value);\n }, []);\n\n const handleTextKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n commit();\n }\n },\n [commit],\n );\n\n const handleTextBlur = useCallback(() => {\n commit();\n }, [commit]);\n\n const pickerValue = isHexColor(localValue) ? localValue : '#7c6ff7';\n\n return (\n <div className={styles.colorControl}>\n <input\n type=\"color\"\n className={styles.colorInput}\n value={pickerValue}\n onInput={handlePickerInput}\n onChange={handlePickerChange}\n aria-label={`${schema.label} picker`}\n />\n <input\n type=\"text\"\n className={styles.textInput}\n value={localValue}\n onChange={handleTextChange}\n onBlur={handleTextBlur}\n onKeyDown={handleTextKeyDown}\n placeholder=\"#7c6ff7\"\n />\n </div>\n );\n}\n\n// \u2500\u2500\u2500 Toggle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction ToggleControl({\n schema,\n value,\n onChange,\n}: {\n schema: PreferenceSchema;\n value: boolean;\n onChange: (key: string, value: boolean) => void;\n}) {\n const handleChange = useCallback(() => {\n onChange(schema.key, !value);\n }, [schema.key, value, onChange]);\n\n return (\n <label className={styles.toggle}>\n <input\n type=\"checkbox\"\n className={styles.toggleInput}\n checked={value}\n onChange={handleChange}\n />\n <span className={styles.toggleTrack} />\n <span className={styles.toggleKnob} />\n </label>\n );\n}\n\n// \u2500\u2500\u2500 Dropdown \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction DropdownControl({\n schema,\n value,\n onChange,\n}: {\n schema: PreferenceSchema;\n value: string;\n onChange: (key: string, value: string) => void;\n}) {\n const handleChange = useCallback(\n (nextValue: string) => {\n onChange(schema.key, nextValue);\n },\n [schema.key, onChange],\n );\n\n return (\n <DtSelectControl\n value={value}\n options={(schema.options ?? []).map((opt) => ({ value: opt, label: opt }))}\n onChange={handleChange}\n />\n );\n}\n\nfunction DtSelectControl({\n value,\n options,\n disabled = false,\n onChange,\n}: {\n value: string;\n options: Array<{ value: string; label: string }>;\n disabled?: boolean;\n onChange: (value: string) => void;\n}) {\n const [selectElement, setSelectElement] = useState<DtSelectElement | null>(null);\n\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n\n selectElement.options = options;\n }, [options, selectElement]);\n\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n\n selectElement.value = value;\n selectElement.disabled = disabled;\n }, [disabled, selectElement, value]);\n\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n\n const handleSelectChange = (event: Event) => {\n onChange((event as CustomEvent<{ value: string }>).detail.value);\n };\n\n selectElement.addEventListener('dt-change', handleSelectChange);\n return () => selectElement.removeEventListener('dt-change', handleSelectChange);\n }, [onChange, selectElement]);\n\n return (\n <div className={styles.selectWrap}>\n <dt-select ref={(element: DtSelectElement | null) => setSelectElement(element)} />\n </div>\n );\n}\n\n// \u2500\u2500\u2500 Text Input \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction TextControl({\n schema,\n value,\n onChange,\n}: {\n schema: PreferenceSchema;\n value: string;\n onChange: (key: string, value: string) => void;\n}) {\n const [localValue, setLocalValue] = useState(value);\n\n useEffect(() => {\n setLocalValue(value);\n }, [value]);\n\n const handleBlur = useCallback(() => {\n if (localValue !== value) {\n onChange(schema.key, localValue);\n }\n }, [schema.key, localValue, value, onChange]);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n onChange(schema.key, localValue);\n }\n },\n [schema.key, localValue, onChange],\n );\n\n return (\n <input\n type={schema.sensitive ? 'password' : 'text'}\n className={schema.sensitive ? styles.textInputSensitive : styles.textInput}\n value={localValue}\n onChange={(e) => setLocalValue(e.target.value)}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n placeholder={schema.sensitive ? 'Enter API key...' : undefined}\n />\n );\n}\n\n// \u2500\u2500\u2500 Number Input \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction NumberControl({\n schema,\n value,\n onChange,\n}: {\n schema: PreferenceSchema;\n value: number;\n onChange: (key: string, value: number) => void;\n}) {\n const [localValue, setLocalValue] = useState(String(value));\n\n useEffect(() => {\n setLocalValue(String(value));\n }, [value]);\n\n const commit = useCallback(() => {\n let num = Number(localValue);\n if (Number.isNaN(num)) {\n setLocalValue(String(value));\n return;\n }\n if (schema.min !== undefined) num = Math.max(schema.min, num);\n if (schema.max !== undefined) num = Math.min(schema.max, num);\n setLocalValue(String(num));\n if (num !== value) {\n onChange(schema.key, num);\n }\n }, [schema.key, schema.min, schema.max, localValue, value, onChange]);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') commit();\n },\n [commit],\n );\n\n return (\n <input\n type=\"number\"\n className={styles.numberInput}\n value={localValue}\n min={schema.min}\n max={schema.max}\n onChange={(e) => setLocalValue(e.target.value)}\n onBlur={commit}\n onKeyDown={handleKeyDown}\n />\n );\n}\n", "import React, { useCallback } from 'react';\nimport { ActionsProvider, Action, useCommand } from '@desktalk/sdk';\nimport { getSchema } from '../schema';\n\ninterface PreferenceActionsProps {\n children: React.ReactNode;\n onConfigChanged: () => void;\n}\n\nexport function PreferenceActions({ children, onConfigChanged }: PreferenceActionsProps) {\n const getSetting = useCommand<{ key: string }, { value: string | number | boolean }>(\n 'preferences.get',\n );\n const setSetting = useCommand<{ key: string; value: string | number | boolean }, void>(\n 'preferences.set',\n );\n const resetSetting = useCommand<{ key: string }, void>('preferences.reset');\n const resetAllSettings = useCommand<void, void>('preferences.resetAll');\n\n const handleGetSetting = useCallback(\n async (params?: Record<string, unknown>) => {\n const key = params?.key as string;\n if (!key) throw new Error('Missing required parameter: key');\n const result = await getSetting({ key });\n return result;\n },\n [getSetting],\n );\n\n const handleSetSetting = useCallback(\n async (params?: Record<string, unknown>) => {\n const key = params?.key as string;\n if (!key) throw new Error('Missing required parameter: key');\n\n let value = params?.value;\n if (value === undefined) throw new Error('Missing required parameter: value');\n\n // Coerce the value to the expected type\n const schema = getSchema(key);\n if (schema) {\n if (schema.type === 'number' && typeof value === 'string') {\n value = Number(value);\n } else if (schema.type === 'boolean' && typeof value === 'string') {\n value = value === 'true';\n }\n }\n\n await setSetting({ key, value: value as string | number | boolean });\n onConfigChanged();\n return { success: true };\n },\n [setSetting, onConfigChanged],\n );\n\n const handleResetSetting = useCallback(\n async (params?: Record<string, unknown>) => {\n const key = params?.key as string;\n if (!key) throw new Error('Missing required parameter: key');\n await resetSetting({ key });\n onConfigChanged();\n return { success: true };\n },\n [resetSetting, onConfigChanged],\n );\n\n const handleResetAll = useCallback(async () => {\n await resetAllSettings();\n onConfigChanged();\n return { success: true };\n }, [resetAllSettings, onConfigChanged]);\n\n return (\n <ActionsProvider>\n <Action\n name=\"Get Setting\"\n description=\"Read the current value of a setting\"\n params={{\n key: {\n type: 'string' as const,\n description: 'Setting key (e.g. general.theme)',\n required: true,\n },\n }}\n handler={handleGetSetting}\n />\n <Action\n name=\"Set Setting\"\n description=\"Update a setting value\"\n params={{\n key: {\n type: 'string' as const,\n description: 'Setting key (e.g. general.theme)',\n required: true,\n },\n value: {\n type: 'string' as const,\n description: 'New value for the setting',\n required: true,\n },\n }}\n handler={handleSetSetting}\n />\n <Action\n name=\"Reset Setting\"\n description=\"Reset a setting to its default value\"\n params={{\n key: {\n type: 'string' as const,\n description: 'Setting key to reset',\n required: true,\n },\n }}\n handler={handleResetSetting}\n />\n <Action\n name=\"Reset All\"\n description=\"Reset all settings to their default values\"\n handler={handleResetAll}\n />\n {children}\n </ActionsProvider>\n );\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
5
|
+
"mappings": ";AAAA,SAAS,oBAAoB;;;ACA7B,IAAI,OAAO,OAAO;AAEX,IAAI,WAAW,KAAK;AACpB,IAAI,YAAY,KAAK;AACrB,IAAI,WAAW,KAAK;AACpB,IAAI,WAAW,KAAK;AACpB,IAAI,gBAAgB,KAAK;AACzB,IAAI,aAAa,KAAK;AACtB,IAAI,WAAW,KAAK;AACpB,IAAI,eAAe,KAAK;AACxB,IAAI,gBAAgB,KAAK;AACzB,IAAI,gBAAgB,KAAK;AACzB,IAAI,YAAY,KAAK;AACrB,IAAI,aAAa,KAAK;AACtB,IAAI,iBAAiB,KAAK;AAC1B,IAAI,OAAO,KAAK;AAChB,IAAI,OAAO,KAAK;AAChB,IAAI,kBAAkB,KAAK;AAC3B,IAAI,cAAc,KAAK;AACvB,IAAI,aAAa,KAAK;AACtB,IAAI,gBAAgB,KAAK;AACzB,IAAI,mBAAmB,KAAK;AAC5B,IAAI,YAAY,KAAK;AACrB,IAAI,QAAQ,KAAK;AACjB,IAAI,sBAAsB,KAAK;AAC/B,IAAI,qBAAqB,KAAK;AAC9B,IAAI,kBAAkB,KAAK;AAC3B,IAAI,UAAU,KAAK;AACnB,IAAI,aAAa,KAAK;AACtB,IAAI,SAAS,KAAK;AAClB,IAAI,WAAW,KAAK;AACpB,IAAI,uBAAuB,KAAK;AAChC,IAAI,gBAAgB,KAAK;AACzB,IAAI,UAAU,KAAK;;;ACjC1B,IAAIA,QAAO,OAAO;AAEX,IAAI,aAAaC,MAAK;AACtB,IAAI,cAAcA,MAAK;;;AFC9B,SAAS,cAAAC,aAAY,UAAU,mBAAmB,wBAAwB;;;AGgBnE,IAAM,aAAa,CAAC,WAAW,UAAU,MAAM,OAAO;AAoBtD,IAAM,yBAAyB;AAE/B,IAAM,0BAAkD;AAAA,EAC7D,EAAE,IAAI,aAAa,OAAO,aAAa,gBAAgB,MAAM,iBAAiB,MAAM;AAAA,EACpF;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,EACnB;AAAA,EACA,EAAE,IAAI,wBAAwB,OAAO,UAAU,gBAAgB,MAAM,iBAAiB,KAAK;AAAA,EAC3F,EAAE,IAAI,UAAU,OAAO,iBAAiB,gBAAgB,MAAM,iBAAiB,MAAM;AAAA,EACrF;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,EACnB;AAAA,EACA,EAAE,IAAI,QAAQ,OAAO,QAAQ,gBAAgB,MAAM,iBAAiB,KAAK;AAAA,EACzE;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,EACnB;AAAA,EACA,EAAE,IAAI,OAAO,OAAO,OAAO,gBAAgB,MAAM,iBAAiB,KAAK;AAAA,EACvE;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,EACnB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,EACnB;AAAA,EACA,EAAE,IAAI,OAAO,OAAO,OAAO,gBAAgB,MAAM,iBAAiB,MAAM;AAAA,EACxE,EAAE,IAAI,YAAY,OAAO,gBAAgB,gBAAgB,MAAM,iBAAiB,MAAM;AAAA,EACtF,EAAE,IAAI,eAAe,OAAO,eAAe,gBAAgB,MAAM,iBAAiB,MAAM;AAAA,EACxF;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,EACnB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,EACnB;AAAA,EACA,EAAE,IAAI,WAAW,OAAO,WAAW,gBAAgB,MAAM,iBAAiB,MAAM;AAAA,EAChF;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,EACnB;AAAA,EACA,EAAE,IAAI,UAAU,OAAO,UAAU,gBAAgB,OAAO,iBAAiB,KAAK;AAChF;AAEO,IAAM,4BAA4B;AAElC,IAAM,6BAAwD;AAAA,EACnE;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,eAAe;AAAA,IACf,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,EAC3B;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,eAAe;AAAA,IACf,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,EAC3B;AACF;AAEA,IAAM,kBAAkB,IAAI,IAAI,wBAAwB,IAAI,CAAC,aAAa,SAAS,EAAE,CAAC;AACtF,IAAM,qBAAqB,IAAI,IAAI,2BAA2B,IAAI,CAAC,aAAa,SAAS,EAAE,CAAC;AAErF,SAAS,wBAAwB,YAAsD;AAC5F,SAAO,wBAAwB,KAAK,CAAC,aAAa,SAAS,OAAO,UAAU;AAC9E;AAEO,SAAS,wBAAwB,YAA8B;AACpE,QAAM,aAAa,wBAAwB,UAAU;AACrD,MAAI,CAAC,YAAY;AACf,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,OAAO,CAAC,gBAAgB,UAAU,QAAQ;AAChD,MAAI,WAAW,gBAAgB;AAC7B,SAAK,KAAK,gBAAgB,UAAU,SAAS;AAAA,EAC/C;AACA,MAAI,WAAW,iBAAiB;AAC9B,SAAK,KAAK,gBAAgB,UAAU,UAAU;AAAA,EAChD;AACA,SAAO;AACT;AAEO,SAAS,wBAAwB,OAA0B;AAChE,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,CAAC,sBAAsB;AAAA,EAChC;AAEA,QAAM,YAAY,MACf,MAAM,GAAG,EACT,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,EACzB;AAAA,IACC,CAAC,MAAM,OAAO,UAAU,QAAQ,MAAM,QAAQ,IAAI,MAAM,SAAS,gBAAgB,IAAI,IAAI;AAAA,EAC3F;AAEF,SAAO,UAAU,SAAS,IAAI,YAAY,CAAC,sBAAsB;AACnE;AAEO,SAAS,4BAA4B,aAA+B;AACzE,SAAO,wBAAwB,YAAY,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG;AAChE;AASO,SAAS,2BACd,YACqC;AACrC,SAAO,2BAA2B,KAAK,CAAC,aAAa,SAAS,OAAO,UAAU;AACjF;AAEO,SAAS,2BAA2B,YAA8B;AACvE,QAAM,aAAa,2BAA2B,UAAU;AACxD,MAAI,CAAC,YAAY;AACf,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,OAAiB,CAAC;AACxB,MAAI,WAAW,gBAAgB;AAC7B,SAAK,KAAK,mBAAmB,UAAU,SAAS;AAAA,EAClD;AACA,MAAI,WAAW,eAAe;AAC5B,SAAK,KAAK,mBAAmB,UAAU,QAAQ;AAAA,EACjD;AACA,MAAI,WAAW,iBAAiB;AAC9B,SAAK,KAAK,mBAAmB,UAAU,UAAU;AAAA,EACnD;AACA,MAAI,WAAW,yBAAyB;AACtC,SAAK,KAAK,mBAAmB,UAAU,kBAAkB;AAAA,EAC3D;AACA,MAAI,WAAW,yBAAyB;AACtC,SAAK,KAAK,mBAAmB,UAAU,kBAAkB;AAAA,EAC3D;AACA,SAAO;AACT;AAEO,SAAS,2BAA2B,OAA0B;AACnE,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,CAAC,yBAAyB;AAAA,EACnC;AAEA,QAAM,YAAY,MACf,MAAM,GAAG,EACT,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,EACzB;AAAA,IACC,CAAC,MAAM,OAAO,UAAU,QAAQ,MAAM,QAAQ,IAAI,MAAM,SAAS,mBAAmB,IAAI,IAAI;AAAA,EAC9F;AAEF,SAAO,UAAU,SAAS,IAAI,YAAY,CAAC,yBAAyB;AACtE;AAEO,SAAS,+BAA+B,aAA+B;AAC5E,SAAO,2BAA2B,YAAY,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG;AACnE;AASA,SAAS,iCAAqD;AAC5D,QAAM,UAA8B;AAAA,IAClC;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,aAAa;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,aAAa;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS,wBAAwB,IAAI,CAAC,aAAa,SAAS,EAAE;AAAA,MAC9D,UAAU;AAAA,IACZ;AAAA,EACF;AAEA,aAAW,YAAY,yBAAyB;AAC9C,YAAQ,KAAK;AAAA,MACX,KAAK,gBAAgB,SAAS,EAAE;AAAA,MAChC,OAAO,GAAG,SAAS,KAAK;AAAA,MACxB,aAAa,gCAAgC,SAAS,KAAK;AAAA,MAC3D,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACZ,CAAC;AAED,QAAI,SAAS,gBAAgB;AAC3B,cAAQ,KAAK;AAAA,QACX,KAAK,gBAAgB,SAAS,EAAE;AAAA,QAChC,OAAO,GAAG,SAAS,KAAK;AAAA,QACxB,aAAa,eAAe,SAAS,KAAK;AAAA,QAC1C,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,QACV,WAAW;AAAA,MACb,CAAC;AAAA,IACH;AAEA,QAAI,SAAS,iBAAiB;AAC5B,cAAQ,KAAK;AAAA,QACX,KAAK,gBAAgB,SAAS,EAAE;AAAA,QAChC,OAAO,GAAG,SAAS,KAAK;AAAA,QACxB,aAAa,oCAAoC,SAAS,KAAK;AAAA,QAC/D,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,EACF;AAEA,UAAQ,KAAK;AAAA,IACX,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,UAAU;AAAA,EACZ,CAAC;AAED,SAAO;AACT;AAEA,IAAM,wBAAwB,+BAA+B;AAE7D,SAAS,oCAAwD;AAC/D,QAAM,UAA8B;AAAA,IAClC;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,aAAa;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,aAAa;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS,2BAA2B,IAAI,CAAC,aAAa,SAAS,EAAE;AAAA,MACjE,UAAU;AAAA,IACZ;AAAA,EACF;AAEA,aAAW,YAAY,4BAA4B;AACjD,QAAI,SAAS,gBAAgB;AAC3B,cAAQ,KAAK;AAAA,QACX,KAAK,mBAAmB,SAAS,EAAE;AAAA,QACnC,OAAO,GAAG,SAAS,KAAK;AAAA,QACxB,aAAa,eAAe,SAAS,KAAK;AAAA,QAC1C,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,QACV,WAAW;AAAA,MACb,CAAC;AAAA,IACH;AAEA,QAAI,SAAS,eAAe;AAC1B,cAAQ,KAAK;AAAA,QACX,KAAK,mBAAmB,SAAS,EAAE;AAAA,QACnC,OAAO,GAAG,SAAS,KAAK;AAAA,QACxB,aAAa,gCAAgC,SAAS,KAAK;AAAA,QAC3D,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAEA,QAAI,SAAS,iBAAiB;AAC5B,cAAQ,KAAK;AAAA,QACX,KAAK,mBAAmB,SAAS,EAAE;AAAA,QACnC,OAAO,GAAG,SAAS,KAAK;AAAA,QACxB,aACE,SAAS,OAAO,yBACZ,gDACA,oCAAoC,SAAS,KAAK;AAAA,QACxD,MAAM;AAAA,QACN,SAAS,SAAS,OAAO,4BAA4B,8BAA8B;AAAA,QACnF,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAEA,QAAI,SAAS,yBAAyB;AACpC,cAAQ,KAAK;AAAA,QACX,KAAK,mBAAmB,SAAS,EAAE;AAAA,QACnC,OAAO,GAAG,SAAS,KAAK;AAAA,QACxB,aAAa;AAAA,QACb,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAEA,QAAI,SAAS,yBAAyB;AACpC,cAAQ,KAAK;AAAA,QACX,KAAK,mBAAmB,SAAS,EAAE;AAAA,QACnC,OAAO,GAAG,SAAS,KAAK;AAAA,QACxB,aAAa;AAAA,QACb,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAM,2BAA2B,kCAAkC;AAE5D,IAAM,qBAAyC;AAAA;AAAA,EAEpD;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS,CAAC,SAAS,MAAM;AAAA,IACzB,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,IAClD,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aACE;AAAA,IACF,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,iBAAiB;AAAA,EACnB;AAAA;AAAA,EAGA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,iBAAiB;AAAA,EACnB;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,UAAU;AAAA,IACV,iBAAiB;AAAA,EACnB;AAAA;AAAA,EAGA,GAAG;AAAA;AAAA,EAGH,GAAG;AAAA,EACH;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,UAAU;AAAA,EACZ;AACF;AAGO,SAAS,mBAA2B;AACzC,QAAM,SAAiB,CAAC;AACxB,aAAW,UAAU,oBAAoB;AACvC,WAAO,OAAO,GAAG,IAAI,OAAO;AAAA,EAC9B;AACA,SAAO;AACT;AAGO,SAAS,UAAU,KAA2C;AACnE,SAAO,mBAAmB,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG;AACrD;AAGO,SAAS,qBAAqB,UAAsC;AACzE,SAAO,mBAAmB,OAAO,CAAC,MAAM,EAAE,aAAa,QAAQ;AACjE;;;AC/eA,IAAOC,IAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACEf,IAAMC,KAAM;AAAZ,IAIMC,IAAY;AAJlB,IAOIC,IAAgB;AACpB,SAASC,KAAqB;AAC5B,MAAID,EAAe;AACnB,MAAME,IAAQ,SAAS,cAAc,OAAO;AAC5CA,IAAM,aAAa,mBAAmB,EAAE,GACxCA,EAAM,cAAcL,GACpB,SAAS,KAAK,YAAYK,CAAK,GAC/BF,IAAgB;AAClB;AAqBO,IAAMG,IAAN,cAAwB,YAAY;EAEjC,SAAgC;EAChC,eAAqD;EACrD,aAAa;EACb,WAAW;EAGnB,WAAW,qBAA+B;AACxC,WAAO,CAAC,WAAW,aAAa,SAAS,UAAU;EACrD;EAGA,IAAI,UAAkB;AACpB,WAAO,KAAK,aAAa,SAAS,KAAK;EACzC;EACA,IAAI,QAAQC,GAAa;AACvB,SAAK,aAAa,WAAWA,CAAG;EAClC;EAEA,IAAI,YAAuB;AACzB,QAAMA,IAAM,KAAK,aAAa,WAAW;AACzC,WAAIA,MAAQ,YAAYA,MAAQ,UAAUA,MAAQ,UAAgBA,IAC3D;EACT;EACA,IAAI,UAAUA,GAAgB;AAC5B,SAAK,aAAa,aAAaA,CAAG;EACpC;EAEA,IAAI,QAAgB;AAClB,QAAMA,IAAM,OAAO,KAAK,aAAa,OAAO,CAAC;AAC7C,WAAO,OAAO,SAASA,CAAG,KAAKA,IAAM,IAAIA,IAAM;EACjD;EACA,IAAI,MAAMA,GAAsB;AAC9B,SAAK,aAAa,SAAS,OAAOA,CAAG,CAAC;EACxC;EAEA,IAAI,WAAoB;AACtB,WAAO,KAAK,aAAa,UAAU;EACrC;EACA,IAAI,SAASA,GAAc;AACrBA,QACF,KAAK,aAAa,YAAY,EAAE,IAEhC,KAAK,gBAAgB,UAAU;EAEnC;EAIA,cAAc;AACZ,UAAM;AACN,QAAMC,IAAS,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AACjDA,MAAO,YAAY,iBAEnB,KAAK,aAAa,UAAU,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC;EACpE;EAEA,oBAA0B;AACxBJ,OAAa,GAEb,KAAK,iBAAiB,cAAc,KAAK,QAAQ,GACjD,KAAK,iBAAiB,cAAc,KAAK,QAAQ,GACjD,KAAK,iBAAiB,WAAW,KAAK,QAAQ,GAC9C,KAAK,iBAAiB,YAAY,KAAK,QAAQ;EACjD;EAEA,uBAA6B;AAC3B,SAAK,oBAAoB,cAAc,KAAK,QAAQ,GACpD,KAAK,oBAAoB,cAAc,KAAK,QAAQ,GACpD,KAAK,oBAAoB,WAAW,KAAK,QAAQ,GACjD,KAAK,oBAAoB,YAAY,KAAK,QAAQ,GAClD,KAAK,MAAM;EACb;EAEA,yBAAyBK,GAAcC,GAAqBC,GAA4B;AAClFF,UAAS,cAAc,KAAK,YAC9B,KAAK,MAAM,GAETA,MAAS,aAAa,KAAK,WAC7B,KAAK,OAAO,cAAc,KAAK;EAEnC;EAIQ,WAAW,MAAY;AAC7B,QAAI,KAAK,YAAY,CAAC,KAAK,QAAS;AAEhC,SAAK,iBAAiB,QAAM,aAAa,KAAK,YAAY;AAE9D,QAAMG,IAAO,MAAY;AACvB,WAAK,aAAa,GAClB,KAAK,UAAU,GACf,KAAK,WAAW;IAClB;AAEI,SAAK,QAAQ,IACf,KAAK,eAAe,WAAWA,GAAM,KAAK,KAAK,IAE/CA,EAAK;EAET;EAEQ,WAAW,MAAY;AAC7B,SAAK,MAAM;EACb;EAIQ,eAAqB;AAC3B,QAAI,KAAK,OAAQ;AAEjB,QAAMC,IAAQ,SAAS,cAAc,KAAK;AAC1CA,MAAM,YAAYZ,IAClBY,EAAM,KAAK,KAAK,YAChBA,EAAM,aAAa,QAAQ,SAAS,GACpCA,EAAM,cAAc,KAAK,SACzB,SAAS,KAAK,YAAYA,CAAK,GAC/B,KAAK,SAASA;AAGd,QAAMC,IAAU,KAAK,YAAY;AAC7BA,SACFA,EAAQ,aAAa,oBAAoB,KAAK,UAAU;EAE5D;EAEQ,QAAc;AAKpB,QAJI,KAAK,iBAAiB,SACxB,aAAa,KAAK,YAAY,GAC9B,KAAK,eAAe,OAElB,KAAK,QAAQ;AAEf,UAAMA,IAAU,KAAK,YAAY;AAC7BA,WACFA,EAAQ,gBAAgB,kBAAkB,GAG5C,KAAK,OAAO,OAAO,GACnB,KAAK,SAAS,MACd,KAAK,WAAW;IAClB;EACF;EAEQ,cAA8B;AAGpC,QAAMC,IADO,KAAK,YAAY,cAAc,MAAM,GAC3B,iBAAiB;AACxC,WAAOA,KAAYA,EAAS,SAAS,IAAIA,EAAS,CAAC,IAAI;EACzD;EAIQ,YAAkB;AACxB,QAAMF,IAAQ,KAAK;AACnB,QAAI,CAACA,EAAO;AAEZ,QAAMG,IAAc,KAAK,sBAAsB,GACzCC,IAAYJ,EAAM,sBAAsB,GAExCK,IAAK,OAAO,YACZC,IAAK,OAAO,aAEdC,IAAS,KAAK;AAGdA,UAAW,SAASJ,EAAY,MAAMC,EAAU,SAASf,IAAY,IACvEkB,IAAS,WACAA,MAAW,YAAYJ,EAAY,SAASC,EAAU,SAASf,IAAYiB,IACpFC,IAAS,QACAA,MAAW,UAAUJ,EAAY,OAAOC,EAAU,QAAQf,IAAY,IAC/EkB,IAAS,UACAA,MAAW,WAAWJ,EAAY,QAAQC,EAAU,QAAQf,IAAYgB,MACjFE,IAAS,SAGXP,EAAM,aAAa,yBAAyBO,CAAM;AAElD,QAAIC,GACAC;AAEJ,YAAQF,GAAQ;MACd,KAAK;AACHE,YAAON,EAAY,OAAOA,EAAY,QAAQ,GAC9CK,IAAML,EAAY,MAAMC,EAAU,SAASf;AAC3C;MACF,KAAK;AACHoB,YAAON,EAAY,OAAOA,EAAY,QAAQ,GAC9CK,IAAML,EAAY,SAASd;AAC3B;MACF,KAAK;AACHoB,YAAON,EAAY,OAAOC,EAAU,QAAQf,GAC5CmB,IAAML,EAAY,MAAMA,EAAY,SAAS;AAC7C;MACF,KAAK;AACHM,YAAON,EAAY,QAAQd,GAC3BmB,IAAML,EAAY,MAAMA,EAAY,SAAS;AAC7C;IACJ;AAEAH,MAAM,MAAM,OAAO,GAAGS,CAAI,MAC1BT,EAAM,MAAM,MAAM,GAAGQ,CAAG;EAC1B;AACF;ACnPA,IAAOE,IAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACEf,IAAMC,KAAW;AAAjB,IAyBaC,IAAN,cAAqB,YAAY;EAEtC,WAAW,qBAA+B;AACxC,WAAO,CAAC,SAAS;EACnB;EAGA,IAAI,UAAuB;AACzB,QAAMlB,IAAM,KAAK,aAAa,SAAS;AACvC,WAAIA,MAAQ,cAAcA,MAAQ,WAAiBA,IAC5C;EACT;EAEA,IAAI,QAAQA,GAAkB;AAC5B,SAAK,aAAa,WAAWA,CAAG;EAClC;EAIA,cAAc;AACZ,UAAM;AACN,QAAMC,IAAS,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC,GAE3CH,IAAQ,SAAS,cAAc,OAAO;AAC5CA,MAAM,cAAckB,GACpBf,EAAO,YAAYH,CAAK;AAExB,QAAMqB,IAAU,SAAS,cAAc,KAAK;AAC5CA,MAAQ,YAAYF,IACpBE,EAAQ,YAAY,iBACpBlB,EAAO,YAAYkB,CAAO;EAC5B;AACF;AC3DA,IAAOC,IAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAf,IAAOC,IAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACGf,IAAMC,KAAc;AAApB,IACMC,IAAY;AADlB,IAEMC,KAAc;AAFpB,IAGMC,KAAW;AAHjB,IAIMC,KAAa;AAJnB,IAKMC,KAAoB;AAL1B,IAcIC,IAAoB;AACxB,SAASC,KAAyB;AAChC,MAAID,EAAmB;AACvB,MAAM9B,IAAQ,SAAS,cAAc,OAAO;AAC5CA,IAAM,aAAa,kBAAkB,EAAE,GACvCA,EAAM,cAAcsB,GACpB,SAAS,KAAK,YAAYtB,CAAK,GAC/B8B,IAAoB;AACtB;AAqCO,IAAME,IAAN,cAAuB,YAAY;EAEhC,QAA+B;EAC/B,WAAqC;EACrC,WAA6B,CAAC;EAC9B,QAAQ;EACR,UAAU;EAGlB,WAAW,qBAA+B;AACxC,WAAO,CAAC,SAAS,eAAe,YAAY,OAAO;EACrD;EAIA,IAAI,QAAgB;AAClB,WAAO,KAAK,aAAa,OAAO,KAAK;EACvC;EACA,IAAI,MAAM9B,GAAa;AACrB,SAAK,aAAa,SAASA,CAAG;EAChC;EAEA,IAAI,cAAsB;AACxB,WAAO,KAAK,aAAa,aAAa,KAAK;EAC7C;EACA,IAAI,YAAYA,GAAa;AAC3B,SAAK,aAAa,eAAeA,CAAG;EACtC;EAEA,IAAI,WAAoB;AACtB,WAAO,KAAK,aAAa,UAAU;EACrC;EACA,IAAI,SAASA,GAAc;AACrBA,QACF,KAAK,aAAa,YAAY,EAAE,IAEhC,KAAK,gBAAgB,UAAU;EAEnC;EAEA,IAAI,QAAuB;AAEzB,WADY,KAAK,aAAa,OAAO,MACzB,UAAgB,UACrB;EACT;EACA,IAAI,MAAMA,GAAoB;AAC5B,SAAK,aAAa,SAASA,CAAG;EAChC;EAIA,IAAI,UAA4B;AAC9B,WAAO,KAAK;EACd;EACA,IAAI,QAAQA,GAAuB;AACjC,SAAK,WAAWA,GAChB,KAAK,aAAa,GACd,KAAK,SACP,KAAK,iBAAiB;EAE1B;EAIA,cAAc;AACZ,UAAM;AACN,QAAMC,IAAS,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC,GAE3CH,IAAQ,SAAS,cAAc,OAAO;AAC5CA,MAAM,cAAcuB,GACpBpB,EAAO,YAAYH,CAAK;AAExB,QAAMiC,IAAM,SAAS,cAAc,QAAQ;AAC3CA,MAAI,OAAO,UACXA,EAAI,YAAYT,IAChBS,EAAI,aAAa,iBAAiB,SAAS,GAC3CA,EAAI,aAAa,iBAAiB,OAAO;AAEzC,QAAMC,IAAQ,SAAS,cAAc,MAAM;AAC3CA,MAAM,YAAYT,GAClBQ,EAAI,YAAYC,CAAK;AAErB,QAAMC,IAAU,SAAS,cAAc,MAAM;AAC7CA,MAAQ,YAAYT,IACpBS,EAAQ,aAAa,eAAe,MAAM,GAC1CA,EAAQ,cAAc,UACtBF,EAAI,YAAYE,CAAO,GAEvBhC,EAAO,YAAY8B,CAAG,GAEtB,KAAK,WAAWA,GAChB,KAAK,UAAU,UAAU,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC;EACjE;EAEA,oBAA0B;AACxBF,OAAiB,GACjB,KAAK,SAAU,iBAAiB,SAAS,KAAK,eAAe,GAC7D,KAAK,aAAa;EACpB;EAEA,uBAA6B;AAC3B,SAAK,SAAU,oBAAoB,SAAS,KAAK,eAAe,GAChE,KAAK,OAAO;EACd;EAEA,yBAAyB3B,GAAoB;AACvCA,UAAS,YACX,KAAK,aAAa,GACd,KAAK,SACP,KAAK,iBAAiB,IAGtBA,MAAS,iBAAiB,CAAC,KAAK,SAClC,KAAK,aAAa,GAEhBA,MAAS,cAAc,KAAK,YAC9B,KAAK,OAAO;EAEhB;EAIQ,eAAqB;AAC3B,QAAMgC,IAAU,KAAK,SAAU,cAAc,IAAIX,CAAS,EAAE,GACtDY,IAAW,KAAK,SAAS,KAAMC,OAAMA,EAAE,UAAU,KAAK,KAAK;AACjEF,MAAQ,cAAcC,GAAU,SAAS,KAAK;EAChD;EAIQ,kBAAkB,MAAY;AAChC,SAAK,aACL,KAAK,QACP,KAAK,OAAO,IAEZ,KAAK,UAAU;EAEnB;EAEQ,YAAkB;AACxB,QAAI,KAAK,MAAO;AAEhB,QAAME,IAAO,SAAS,cAAc,KAAK;AACzCA,MAAK,YAAYZ,IACjBY,EAAK,KAAK,KAAK,SACfA,EAAK,aAAa,QAAQ,SAAS,GACnC,SAAS,KAAK,YAAYA,CAAI,GAC9B,KAAK,QAAQA,GAEb,KAAK,iBAAiB,GACtB,KAAK,UAAU,GAGf,sBAAsB,MAAM;AAC1BA,QAAK,aAAa,aAAa,EAAE;IACnC,CAAC,GAED,KAAK,QAAQ,MACb,KAAK,SAAU,aAAa,iBAAiB,MAAM,GAGnD,sBAAsB,MAAM;AAC1B,eAAS,iBAAiB,aAAa,KAAK,eAAe,GAC3D,SAAS,iBAAiB,WAAW,KAAK,UAAU;IACtD,CAAC;EACH;EAEQ,SAAe;AACrB,QAAK,KAAK,OAKV;AAAA,UAHA,SAAS,oBAAoB,aAAa,KAAK,eAAe,GAC9D,SAAS,oBAAoB,WAAW,KAAK,UAAU,GAEnD,KAAK,OAAO;AACd,aAAK,MAAM,gBAAgB,WAAW;AAEtC,YAAMA,IAAO,KAAK;AAClB,mBAAW,MAAMA,EAAK,OAAO,GAAG,GAAG,GACnC,KAAK,QAAQ;MACf;AAEA,WAAK,QAAQ,OACb,KAAK,SAAU,aAAa,iBAAiB,OAAO;IAAA;EACtD;EAEQ,kBAAmBC,OAAwB;AACjD,QAAMC,IAASD,EAAE;AAEb,SAAK,OAAO,SAASC,CAAM,KAAK,KAAK,SAASA,CAAM,KACxD,KAAK,OAAO;EACd;EAEQ,aAAcD,OAA2B;AAC3CA,MAAE,QAAQ,aACZ,KAAK,OAAO,GACZ,KAAK,SAAU,MAAM;EAEzB;EAIQ,mBAAyB;AAC/B,QAAMD,IAAO,KAAK;AAClB,QAAKA,GAEL;AAAAA,QAAK,YAAY;AAEjB,eAAWG,KAAO,KAAK,UAAU;AAC/B,YAAMC,IAAO,SAAS,cAAc,QAAQ;AAC5CA,UAAK,OAAO,UACZA,EAAK,YAAYf,IACjBe,EAAK,aAAa,QAAQ,QAAQ,GAClCA,EAAK,aAAa,iBAAiB,OAAOD,EAAI,UAAU,KAAK,KAAK,CAAC,GAE/DA,EAAI,UAAU,KAAK,SACrBC,EAAK,UAAU,IAAId,EAAiB;AAGtC,YAAMK,IAAQ,SAAS,cAAc,MAAM;AAC3CA,UAAM,cAAcQ,EAAI,OACxBC,EAAK,YAAYT,CAAK,GAEtBS,EAAK,iBAAiB,SAAS,MAAM;AACnC,eAAK,aAAaD,EAAI,KAAK;QAC7B,CAAC,GAEDH,EAAK,YAAYI,CAAI;MACvB;IAAA;EACF;EAEQ,aAAazC,GAAmB;AACtC,QAAM0C,IAAO,KAAK;AAClB,SAAK,QAAQ1C,GACb,KAAK,aAAa,GAClB,KAAK,OAAO,GAERA,MAAQ0C,KACV,KAAK,cACH,IAAI,YAAY,aAAa,EAC3B,QAAQ,EAAE,OAAO1C,EAAI,GACrB,SAAS,MACT,UAAU,KACZ,CAAC,CACH;EAEJ;EAIQ,YAAkB;AACxB,QAAMqC,IAAO,KAAK;AAClB,QAAI,CAACA,EAAM;AAEX,QAAM5B,IAAc,KAAK,sBAAsB,GACzCkC,IAAM,IACNC,IAAO,KAAK,IAAInC,EAAY,OAAO,GAAG,GAGxCK,IAAML,EAAY,SAASkC,GAGzBE,IAAaR,EAAK,gBAAgB,KAClCzB,IAAK,OAAO;AAQlB,QAPIE,IAAM+B,IAAajC,KAAMH,EAAY,MAAMoC,IAAaF,IAAM,MAChE7B,IAAML,EAAY,MAAMoC,IAAaF,IAGvCN,EAAK,MAAM,WAAW,GAAGO,CAAI,MAGzB,KAAK,UAAU,SAAS;AAE1B,UAAMjC,IAAK,OAAO;AAClB0B,QAAK,MAAM,QAAQ,GAAG1B,IAAKF,EAAY,KAAK,MAC5C4B,EAAK,MAAM,OAAO;IACpB,MACEA,GAAK,MAAM,OAAO,GAAG5B,EAAY,IAAI,MACrC4B,EAAK,MAAM,QAAQ;AAGrBA,MAAK,MAAM,MAAM,GAAGvB,CAAG;EACzB;AACF;ACxVA,IAAOgC,IAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACEf,IAAMC,KAAW;AAAjB,IAyCaC,IAAN,cAAqB,YAAY;EAEtC,WAAW,qBAA+B;AACxC,WAAO,CAAC,QAAQ,OAAO,WAAW;EACpC;EAGA,IAAI,OAAwB;AAC1B,QAAMhD,IAAM,KAAK,aAAa,MAAM;AACpC,WAAIA,MAAQ,OAAOA,MAAQ,OAAOA,MAAQ,OAAOA,MAAQ,OAAOA,MAAQ,OAAOA,MAAQ,MAC9EA,IAEF;EACT;EAEA,IAAI,KAAKA,GAAsB;AACzBA,UAAQ,OACV,KAAK,gBAAgB,MAAM,IAE3B,KAAK,aAAa,QAAQA,CAAG;EAEjC;EAEA,IAAI,MAAe;AACjB,QAAMA,IAAM,KAAK,aAAa,KAAK;AACnC,WACEA,MAAQ,OACRA,MAAQ,OACRA,MAAQ,OACRA,MAAQ,QACRA,MAAQ,QACRA,MAAQ,QACRA,MAAQ,OAEDA,IAEF;EACT;EAEA,IAAI,IAAIA,GAAc;AACpB,SAAK,aAAa,OAAOA,CAAG;EAC9B;EAEA,IAAI,WAAyB;AAC3B,QAAMA,IAAM,KAAK,aAAa,WAAW;AACzC,WAAIA,MAAQ,SAASA,MAAQ,SAASA,MAAQ,SAASA,MAAQ,SAASA,MAAQ,QACvEA,IAEF;EACT;EAEA,IAAI,SAASA,GAAmB;AAC9B,SAAK,aAAa,aAAaA,CAAG;EACpC;EAIA,cAAc;AACZ,UAAM;AACN,QAAMC,IAAS,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC,GAE3CH,IAAQ,SAAS,cAAc,OAAO;AAC5CA,MAAM,cAAcgD,GACpB7C,EAAO,YAAYH,CAAK;AAExB,QAAMqB,IAAU,SAAS,cAAc,KAAK;AAC5CA,MAAQ,YAAY4B,IACpB5B,EAAQ,YAAY,iBACpBlB,EAAO,YAAYkB,CAAO;EAC5B;AACF;ACjHA,IAAO8B,IAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACEf,IAAMC,KAAY;AAMlB,SAASC,EAAmBC,GAAsC;AAChE,SAAIA,MAAU,SAASA,MAAU,eACxB,QAGF;AACT;AAmCO,IAAMC,IAAN,cAAsB,YAAY;EAEvC,WAAW,qBAA+B;AACxC,WAAO,CAAC,aAAa,OAAO,OAAO;EACrC;EAGA,IAAI,YAA4B;AAC9B,WAAOF,EAAmB,KAAK,aAAa,WAAW,CAAC;EAC1D;EAEA,IAAI,UAAUnD,GAAqB;AACjC,SAAK,aAAa,aAAamD,EAAmBnD,CAAG,CAAC;EACxD;EAEA,IAAI,MAAgB;AAClB,QAAMA,IAAM,KAAK,aAAa,KAAK;AACnC,WACEA,MAAQ,OACRA,MAAQ,OACRA,MAAQ,OACRA,MAAQ,QACRA,MAAQ,QACRA,MAAQ,QACRA,MAAQ,OAEDA,IAEF;EACT;EAEA,IAAI,IAAIA,GAAe;AACrB,SAAK,aAAa,OAAOA,CAAG;EAC9B;EAEA,IAAI,QAAoB;AACtB,QAAMA,IAAM,KAAK,aAAa,OAAO;AACrC,WAAIA,MAAQ,WAAWA,MAAQ,YAAYA,MAAQ,QAC1CA,IAEF;EACT;EAEA,IAAI,MAAMA,GAAiB;AACzB,SAAK,aAAa,SAASA,CAAG;EAChC;EAIA,oBAAoB;AAClB,SAAKsD,GAAqB;EAC5B;EAEA,yBAAyBpD,GAAoB;AACvCA,UAAS,eACX,KAAKoD,GAAqB;EAE9B;EAEA,cAAc;AACZ,UAAM;AACN,QAAMrD,IAAS,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC,GAE3CH,IAAQ,SAAS,cAAc,OAAO;AAC5CA,MAAM,cAAcmD,GACpBhD,EAAO,YAAYH,CAAK;AAExB,QAAMqB,IAAU,SAAS,cAAc,KAAK;AAC5CA,MAAQ,YAAY+B,IACpB/B,EAAQ,YAAY,iBACpBlB,EAAO,YAAYkB,CAAO;EAC5B;EAEAmC,KAA6B;AAC3B,QAAMC,IAAe,KAAK,aAAa,WAAW,GAC5CC,IAAsBL,EAAmBI,CAAY;AACvDA,UAAiB,QAAQA,MAAiBC,KAC5C,KAAK,aAAa,aAAaA,CAAmB;EAEtD;AACF;ACjIA,IAAOC,IAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACEf,IAAMC,KAAW;AAAjB,IAqCaC,IAAN,cAAqB,YAAY;EAEtC,WAAW,qBAA+B;AACxC,WAAO,CAAC,SAAS,SAAS,eAAe,QAAQ,WAAW,SAAS,aAAa;EACpF;EAGQ;EACA;EACA;EACA;EACA;EAGR,IAAI,QAAuB;AACzB,WAAO,KAAK,aAAa,OAAO;EAClC;EAEA,IAAI,MAAM3D,GAAoB;AACxBA,UAAQ,OACV,KAAK,gBAAgB,OAAO,IAE5B,KAAK,aAAa,SAASA,CAAG;EAElC;EAEA,IAAI,QAAuB;AACzB,WAAO,KAAK,aAAa,OAAO;EAClC;EAEA,IAAI,MAAMA,GAAoB;AACxBA,UAAQ,OACV,KAAK,gBAAgB,OAAO,IAE5B,KAAK,aAAa,SAASA,CAAG;EAElC;EAEA,IAAI,cAA6B;AAC/B,WAAO,KAAK,aAAa,aAAa;EACxC;EAEA,IAAI,YAAYA,GAAoB;AAC9BA,UAAQ,OACV,KAAK,gBAAgB,aAAa,IAElC,KAAK,aAAa,eAAeA,CAAG;EAExC;EAEA,IAAI,OAAiB;AACnB,QAAMA,IAAM,KAAK,aAAa,MAAM;AACpC,WAAIA,MAAQ,QAAQA,MAAQ,OAAaA,IAClC;EACT;EAEA,IAAI,KAAKA,GAAe;AACtB,SAAK,aAAa,QAAQA,CAAG;EAC/B;EAEA,IAAI,UAAuB;AACzB,QAAMA,IAAM,KAAK,aAAa,SAAS;AACvC,WAAIA,MAAQ,cAAcA,MAAQ,WAAiBA,IAC5C;EACT;EAEA,IAAI,QAAQA,GAAkB;AAC5B,SAAK,aAAa,WAAWA,CAAG;EAClC;EAEA,IAAI,QAA0C;AAC5C,QAAMA,IAAM,KAAK,aAAa,OAAO;AACrC,WAAIA,MAAQ,QAAQA,MAAQ,UAAUA,MAAQ,YAAkBA,IACzD;EACT;EAEA,IAAI,MAAMA,GAAuC;AAC3CA,UAAQ,OACV,KAAK,gBAAgB,OAAO,IAE5B,KAAK,aAAa,SAASA,CAAG;EAElC;EAEA,IAAI,aAA4B;AAC9B,WAAO,KAAK,aAAa,aAAa;EACxC;EAEA,IAAI,WAAWA,GAAoB;AAC7BA,UAAQ,OACV,KAAK,gBAAgB,aAAa,IAElC,KAAK,aAAa,eAAeA,CAAG;EAExC;EAIA,cAAc;AACZ,UAAM;AACN,QAAMC,IAAS,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC,GAE3CH,IAAQ,SAAS,cAAc,OAAO;AAC5CA,MAAM,cAAc2D,GACpBxD,EAAO,YAAYH,CAAK,GAExB,KAAK,aAAa,SAAS,cAAc,KAAK,GAC9C,KAAK,WAAW,YAAY4D,IAE5B,KAAK,WAAW,SAAS,cAAc,KAAK,GAC5C,KAAK,SAAS,YAAY,SAC1B,KAAK,WAAW,YAAY,KAAK,QAAQ,GAEzC,KAAK,WAAW,SAAS,cAAc,KAAK,GAC5C,KAAK,SAAS,YAAY,SAC1B,KAAK,WAAW,YAAY,KAAK,QAAQ,GAEzC,KAAK,UAAU,SAAS,cAAc,KAAK,GAC3C,KAAK,QAAQ,YAAY,eACzB,KAAK,WAAW,YAAY,KAAK,OAAO,GAExC,KAAK,WAAW,SAAS,cAAc,KAAK,GAC5C,KAAK,SAAS,YAAY,SAC1B,KAAK,WAAW,YAAY,KAAK,QAAQ,GAEzCzD,EAAO,YAAY,KAAK,UAAU,GAElC,KAAK,QAAQ;EACf;EAIA,yBAAyBC,GAAc0D,GAAwBC,GAA8B;AAAA,KAEzF3D,MAAS,WACTA,MAAS,WACTA,MAAS,iBACTA,MAAS,UACTA,MAAS,aACTA,MAAS,WACTA,MAAS,kBAET,KAAK,QAAQ;EAEjB;EAEQ,UAAgB;AACtB,SAAK,SAAS,cAAc,KAAK,SAAS,IAC1C,KAAK,SAAS,MAAM,UAAU,KAAK,QAAQ,UAAU,QAErD,KAAK,SAAS,cAAc,KAAK,SAAS,IAC1C,KAAK,SAAS,MAAM,UAAU,KAAK,QAAQ,UAAU,QAErD,KAAK,QAAQ,cAAc,KAAK,eAAe,IAC/C,KAAK,QAAQ,MAAM,UAAU,KAAK,cAAc,UAAU;AAE1D,QAAM4D,IAAQ,KAAK,OACbC,IAAa,KAAK;AAExB,QAAID,KAASC,GAAY;AACvB,WAAK,SAAS,MAAM,UAAU,eAC9B,KAAK,SAAS,YAAY,SAASD,MAAU,OAAO,aAAaA,MAAU,SAAS,aAAa,SAAS;AAE1G,UAAIE,IAAS;AACTF,YAAU,OAAME,IAAS,WACpBF,MAAU,SAAQE,IAAS,WAC/BA,IAAS,UAEd,KAAK,SAAS,cAAc,GAAGA,CAAM,IAAID,CAAU;IACrD,MACE,MAAK,SAAS,MAAM,UAAU;EAElC;AACF;ACpNA,IAAOE,KAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACEf,IAAMC,KAAY;AAAlB,IA0BaC,IAAN,cAAsB,YAAY;EAEvC,WAAW,qBAA+B;AACxC,WAAO,CAAC,WAAW,QAAQ,MAAM;EACnC;EAGQ;EACA;EAGR,IAAI,UAAwB;AAC1B,QAAMnE,IAAM,KAAK,aAAa,SAAS;AACvC,WACEA,MAAQ,aACRA,MAAQ,YACRA,MAAQ,aACRA,MAAQ,UACRA,MAAQ,aACRA,MAAQ,YAEDA,IAEF;EACT;EAEA,IAAI,QAAQA,GAAmB;AAC7B,SAAK,aAAa,WAAWA,CAAG;EAClC;EAEA,IAAI,OAAkB;AACpB,QAAMA,IAAM,KAAK,aAAa,MAAM;AACpC,WAAIA,MAAQ,QAAQA,MAAQ,OAAaA,IAClC;EACT;EAEA,IAAI,KAAKA,GAAgB;AACvB,SAAK,aAAa,QAAQA,CAAG;EAC/B;EAEA,IAAI,OAAsB;AACxB,WAAO,KAAK,aAAa,MAAM;EACjC;EAEA,IAAI,KAAKA,GAAoB;AACvBA,UAAQ,OACV,KAAK,gBAAgB,MAAM,IAE3B,KAAK,aAAa,QAAQA,CAAG;EAEjC;EAIA,cAAc;AACZ,UAAM;AACN,QAAMC,IAAS,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC,GAE3CH,IAAQ,SAAS,cAAc,OAAO;AAC5CA,MAAM,cAAcmE,IACpBhE,EAAO,YAAYH,CAAK,GAExB,KAAK,aAAa,SAAS,cAAc,MAAM,GAC/C,KAAK,WAAW,YAAYoE;AAG5B,QAAME,IAAW,KAAK;AAClBA,UAAa,OACf,KAAK,WAAW,cAAcA,KAE9B,KAAK,QAAQ,SAAS,cAAc,MAAM,GAC1C,KAAK,WAAW,YAAY,KAAK,KAAK,IAGxCnE,EAAO,YAAY,KAAK,UAAU;EACpC;EAIA,yBAAyBC,GAAc0D,GAAwBC,GAA8B;AACvF3D,UAAS,UACX,KAAK,QAAQ;EAEjB;EAEQ,UAAgB;AACtB,QAAMkE,IAAW,KAAK;AAClBA,UAAa,SACf,KAAK,WAAW,cAAcA;EAElC;AACF;ACvHA,IAAOC,KAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACEf,IAAMC,KAAa;AAAnB,IAmCaC,IAAN,cAAuB,YAAY;EAExC,WAAW,qBAA+B;AACxC,WAAO,CAAC,WAAW,QAAQ,YAAY,aAAa,MAAM;EAC5D;EAGQ;EACA;EAGR,IAAI,UAAyB;AAC3B,QAAMvE,IAAM,KAAK,aAAa,SAAS;AACvC,WAAIA,MAAQ,eAAeA,MAAQ,WAAWA,MAAQ,WAAiBA,IAChE;EACT;EAEA,IAAI,QAAQA,GAAoB;AAC9B,SAAK,aAAa,WAAWA,CAAG;EAClC;EAEA,IAAI,OAAmB;AACrB,QAAMA,IAAM,KAAK,aAAa,MAAM;AACpC,WAAIA,MAAQ,QAAQA,MAAQ,OAAaA,IAClC;EACT;EAEA,IAAI,KAAKA,GAAiB;AACxB,SAAK,aAAa,QAAQA,CAAG;EAC/B;EAEA,IAAI,WAAoB;AACtB,WAAO,KAAK,aAAa,UAAU;EACrC;EAEA,IAAI,SAASA,GAAc;AACrBA,QACF,KAAK,aAAa,YAAY,EAAE,IAEhC,KAAK,gBAAgB,UAAU;EAEnC;EAEA,IAAI,YAAqB;AACvB,WAAO,KAAK,aAAa,WAAW;EACtC;EAEA,IAAI,UAAUA,GAAc;AACtBA,QACF,KAAK,aAAa,aAAa,EAAE,IAEjC,KAAK,gBAAgB,WAAW;EAEpC;EAEA,IAAI,OAAsC;AACxC,QAAMA,IAAM,KAAK,aAAa,MAAM;AACpC,WAAIA,MAAQ,YAAYA,MAAQ,UAAgBA,IACzC;EACT;EAEA,IAAI,KAAKA,GAAoC;AAC3C,SAAK,aAAa,QAAQA,CAAG;EAC/B;EAIA,cAAc;AACZ,UAAM;AACN,QAAMC,IAAS,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC,GAE3CH,IAAQ,SAAS,cAAc,OAAO;AAC5CA,MAAM,cAAcuE,IACpBpE,EAAO,YAAYH,CAAK,GAExB,KAAK,UAAU,SAAS,cAAc,QAAQ,GAC9C,KAAK,QAAQ,YAAYwE,IACzB,KAAK,QAAQ,OAAO,KAAK,MACzB,KAAK,QAAQ,WAAW,KAAK,UAE7B,KAAK,QAAQ,SAAS,cAAc,MAAM,GAC1C,KAAK,QAAQ,YAAY,KAAK,KAAK,GAEnCrE,EAAO,YAAY,KAAK,OAAO;EACjC;EAIA,yBAAyBC,GAAc0D,GAAwBC,GAA8B;AAC3F,YAAQ3D,GAAM;MACZ,KAAK;AACH,aAAK,QAAQ,WAAW,KAAK;AAC7B;MACF,KAAK;AACH,aAAK,QAAQ,OAAO,KAAK;AACzB;IACJ;EACF;AACF;ACvIA,IAAOsE,KAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACEf,IAAMC,KAAc;AAApB,IAgCaC,IAAN,cAAwB,YAAY;EAEzC,WAAW,qBAA+B;AACxC,WAAO,CAAC,aAAa,iBAAiB,SAAS;EACjD;EAGA,IAAI,YAA8B;AAEhC,WADY,KAAK,aAAa,WAAW,MAC7B,aAAmB,aACxB;EACT;EAEA,IAAI,UAAU1E,GAAuB;AACnC,SAAK,aAAa,aAAaA,CAAG;EACpC;EAEA,IAAI,eAA6B;AAC/B,QAAMA,IAAM,KAAK,aAAa,eAAe;AAC7C,WAAIA,MAAQ,YAAYA,MAAQ,WAAiBA,IAC1C;EACT;EAEA,IAAI,aAAaA,GAAmB;AAClC,SAAK,aAAa,iBAAiBA,CAAG;EACxC;EAEA,IAAI,UAAiC;AACnC,QAAMA,IAAM,KAAK,aAAa,SAAS;AACvC,WAAIA,MAAQ,QAAQA,MAAQ,QAAQA,MAAQ,OAAaA,IAClD;EACT;EAEA,IAAI,QAAQA,GAA4B;AAClCA,UAAQ,OACV,KAAK,gBAAgB,SAAS,IAE9B,KAAK,aAAa,WAAWA,CAAG;EAEpC;EAIA,cAAc;AACZ,UAAM;AACN,QAAMC,IAAS,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC,GAE3CH,IAAQ,SAAS,cAAc,OAAO;AAC5CA,MAAM,cAAc0E,IACpBvE,EAAO,YAAYH,CAAK;AAExB,QAAM6E,IAAK,SAAS,cAAc,IAAI;AACtCA,MAAG,YAAYF,IACfxE,EAAO,YAAY0E,CAAE;EACvB;AACF;ACzFA,IAAOC,KAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAf,SAASC,GAAoBzB,GAA+B;AAC1D,SAAIA,KAAU,QAA+BA,MAAU,QAC9C,OAGLA,MAAU,OACL,KAGF,OAAOA,CAAK;AACrB;AAEO,SAAS0B,GACdC,GACAC,GACM;AACN,MAAMC,IAAWF,EAAS,iBAA8B,GAAG;AAE3D,WAAWG,KAAWD,GAAU;AAC9B,QAAME,IAAYD,EAAQ,aAAa,YAAY;AACnD,QAAIC,GAAW;AACb,UAAM/B,IAAQ4B,EAAKG,CAAS;AAC5BD,QAAQ,cAAc9B,KAAU,OAA8B,KAAK,OAAOA,CAAK;IACjF;AAEA,aAAWgC,KAAYF,EAAQ,kBAAkB,GAAG;AAClD,UAAIE,MAAa,gBAAgB,CAACA,EAAS,WAAW,aAAa,EACjE;AAGF,UAAMC,IAAaD,EAAS,MAAM,EAAoB;AACtD,UAAI,CAACC,EACH;AAGF,UAAMC,IAAYJ,EAAQ,aAAaE,CAAQ;AAC/C,UAAI,CAACE,EACH;AAGF,UAAMC,IAAaV,GAAoBG,EAAKM,CAAS,CAAC;AAClDC,YAAe,OACjBL,EAAQ,gBAAgBG,CAAU,IAElCH,EAAQ,aAAaG,GAAYE,CAAU;IAE/C;EACF;AACF;AAEO,SAASC,EACdC,GACAT,GACkB;AAClB,MAAMD,IAAWU,EAAS,QAAQ,UAAU,IAAI;AAChD,SAAAX,GAAqBC,GAAUC,CAAI,GAC5BD;AACT;AC1CO,IAAMW,IAAN,MAAoB;EACjB,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,aAA4B;EAC5B,kBAAkB;EAClB,aAAa;EACb,SAAS,oBAAI;EAErB,YAAYC,IAA8B,CAAC,GAAG;AAC5C,SAAK,SAASA,EAAQ,SAAS,GAC/B,KAAK,gBAAgBA,EAAQ,gBAAgB,IAC7C,KAAK,YAAYA,EAAQ,YAAY,GACrC,KAAK,aAAaA,EAAQ,aAAa;EACzC;EAEA,SAASC,GAAqB;AAC5B,SAAK,SAAS,KAAK,IAAI,GAAGA,CAAK;AAC/B,aAAWC,KAAS,KAAK,OAAO,KAAK,EAC/BA,MAAS,KAAK,UAChB,KAAK,OAAO,OAAOA,CAAK;EAG9B;EAEA,kBAAkBC,GAAsB;AACtC,SAAK,kBAAkB,KAAK,IAAI,GAAGA,CAAM;EAC3C;EAEA,aAAaC,GAAyB;AACpC,SAAK,aAAa,KAAK,IAAI,GAAGA,CAAS;EACzC;EAEA,gBAAgBC,GAAoB;AAClC,SAAK,gBAAgB,KAAK,IAAI,GAAGA,CAAI;EACvC;EAEA,aAAaA,GAA2B;AACtC,SAAK,aAAaA,KAAQA,IAAO,IAAIA,IAAO;EAC9C;EAEA,oBAA0B;AACxB,SAAK,OAAO,MAAM;EACpB;EAEA,QAAQH,GAAeG,GAAsB;AAC3C,QAAI,KAAK,eAAe,QAAQH,IAAQ,KAAKA,KAAS,KAAK,OACzD,QAAO;AAGT,QAAMI,IAAa,KAAK,IAAI,GAAG,KAAK,MAAMD,CAAI,CAAC,GACzCE,IAAW,KAAK,OAAO,IAAIL,CAAK;AACtC,WAAIK,MAAaD,IACR,KAGT,KAAK,OAAO,IAAIJ,GAAOI,CAAU,GAE7B,KAAK,UAAUJ,IAAQ,CAAC,KAAK,KAAK,aAC7BI,KAAcC,KAAY,KAAK,iBAGjC;EACT;EAEA,UAAUL,GAAuB;AAC/B,QAAIA,KAAS,EACX,QAAO;AAGT,QAAMM,IAAe,KAAK,IAAIN,GAAO,KAAK,MAAM;AAEhD,QAAI,KAAK,eAAe,KACtB,QAAOM,IAAe,KAAK;AAG7B,QAAIC,IAAS;AACb,aAAS,IAAI,GAAG,IAAID,GAAc,KAAK,EACrCC,MAAU,KAAK,OAAO,IAAI,CAAC,KAAK,KAAK;AAEvC,WAAOA;EACT;EAEA,iBAAyB;AACvB,WAAO,KAAK,UAAU,KAAK,MAAM;EACnC;EAEA,WAAyB;AACvB,QAAI,KAAK,WAAW,EAClB,QAAO,EAAE,OAAO,GAAG,KAAK,GAAG,YAAY,GAAG,eAAe,GAAG,aAAa,EAAE;AAG7E,QAAI,KAAK,eAAe,MAAM;AAC5B,UAAMC,IAAe,KAAK,IAAI,GAAG,KAAK,KAAK,KAAK,kBAAkB,KAAK,UAAU,CAAC,GAC5EC,IAAQ,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,aAAa,KAAK,UAAU,IAAI,KAAK,SAAS,GAClFC,IAAM,KAAK,IAAI,KAAK,QAAQD,IAAQD,IAAe,KAAK,YAAY,CAAC,GACrEG,IAAaF,IAAQ,KAAK,YAC1BG,IAAc,KAAK,SAAS,KAAK,YACjCC,IAAgB,KAAK,IAAI,GAAGD,IAAcD,KAAcD,IAAMD,KAAS,KAAK,UAAU;AAC5F,aAAO,EAAE,OAAAA,GAAO,KAAAC,GAAK,YAAAC,GAAY,eAAAE,GAAe,aAAAD,EAAY;IAC9D;AAEA,QAAIH,IAAQ,GACRF,IAAS;AACb,WAAOE,IAAQ,KAAK,UAAQ;AAC1B,UAAMN,IAAO,KAAK,OAAO,IAAIM,CAAK,KAAK,KAAK;AAC5C,UAAIF,IAASJ,IAAO,KAAK,WACvB;AAEFI,WAAUJ,GACVM,KAAS;IACX;AAEAA,QAAQ,KAAK,IAAI,GAAGA,IAAQ,KAAK,SAAS;AAC1C,QAAME,IAAa,KAAK,UAAUF,CAAK,GAEnCC,IAAMD,GACNK,IAAiB;AACrB,WAAOJ,IAAM,KAAK,UAAUI,IAAiB,KAAK,kBAChDA,MAAkB,KAAK,OAAO,IAAIJ,CAAG,KAAK,KAAK,eAC/CA,KAAO;AAETA,QAAM,KAAK,IAAI,KAAK,QAAQA,IAAM,KAAK,SAAS;AAEhD,QAAME,IAAc,KAAK,eAAe,GAClCC,IAAgB,KAAK,IAAI,GAAGD,IAAc,KAAK,UAAUF,CAAG,CAAC;AAEnE,WAAO,EAAE,OAAAD,GAAO,KAAAC,GAAK,YAAAC,GAAY,eAAAE,GAAe,aAAAD,EAAY;EAC9D;AACF;ACtHA,SAASG,GAAaC,GAAuC;AAC3D,SAAIA,KAAO,OAAOA,KAAQ,WACjBA,IAEF,EAAE,OAAOA,EAAI;AACtB;AAEA,SAASC,GAAe1D,GAAwC;AAC9D,SAAIA,MAAU,YAAYA,MAAU,UAC3BA,IAEF;AACT;AAEO,IAAM2D,IAAN,cAAuB,YAAY;EACxC,WAAW,qBAA+B;AACxC,WAAO,CAAC,SAAS,UAAU,SAAS,aAAa,OAAO;EAC1D;EAEA,IAAI,QAAgB;AAClB,WAAO,KAAK,aAAa,OAAO,KAAK;EACvC;EAEA,IAAI,SAAiB;AACnB,WAAO,KAAK,aAAa,QAAQ,KAAK,KAAK;EAC7C;EAEA,IAAI,QAAgB;AAClB,WAAO,KAAK,aAAa,OAAO,KAAK;EACvC;EAEA,IAAI,WAAmB;AACrB,WAAO,KAAK,aAAa,WAAW,KAAK;EAC3C;EAEA,IAAI,QAA0B;AAC5B,WAAOD,GAAe,KAAK,aAAa,OAAO,CAAC;EAClD;EAEA,oBAA0B;AACxB,SAAK,SAAS;EAChB;EAEA,2BAAiC;AAC/B,SAAK,cAAc,IAAI,YAAY,oBAAoB,EAAE,SAAS,MAAM,UAAU,KAAK,CAAC,CAAC;EAC3F;AACF;AAhCO,IAkGME,IAAN,cAA0B,YAAY;EACnC,QAAmB,CAAC;EACpB,WAAkC,CAAC;EAC1B,eAAe,IAAItB,EAAc,EAChD,cAAc,IACd,UAAU,GACV,WAAW,GACb,CAAC;EACgB;EACA;EACA;EACA;EACA;EACA;EACT,kBAAyC;EACzC,oBAA6C;EAC7C,aAA4B;EAC5B,iBAA2C;EAEnD,WAAW,qBAA+B;AACxC,WAAO,CAAC,cAAc,YAAY,WAAW,YAAY,YAAY;EACvE;EAEA,IAAI,OAAkB;AACpB,WAAO,KAAK;EACd;EAEA,IAAI,KAAKtC,GAAkB;AACzB,SAAK,QAAQ,MAAM,QAAQA,CAAK,IAAIA,IAAQ,CAAC,GAC7C,KAAK,aAAa,SAAS,KAAK,MAAM,MAAM,GAC5C,KAAK,QAAQ;EACf;EAEA,IAAI,YAAoB;AACtB,QAAM6D,IAAM,OAAO,KAAK,aAAa,YAAY,KAAK,IAAI;AAC1D,WAAO,OAAO,SAASA,CAAG,KAAKA,IAAM,IAAIA,IAAM;EACjD;EAEA,IAAI,UAAU7D,GAAe;AAC3B,SAAK,aAAa,cAAc,OAAOA,CAAK,CAAC;EAC/C;EAEA,IAAI,WAAoB;AACtB,WAAO,KAAK,aAAa,UAAU;EACrC;EAEA,IAAI,YAAoB;AACtB,WAAO,KAAK,aAAa,YAAY,KAAK;EAC5C;EAEA,cAAc;AACZ,UAAM;AACN,QAAMnD,IAAS,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC,GAE3CH,IAAQ,SAAS,cAAc,OAAO;AAC5CA,MAAM,cAAc8E,IACpB3E,EAAO,YAAYH,CAAK,GAExB,KAAK,QAAQ,SAAS,cAAc,KAAK,GACzC,KAAK,MAAM,YAAY,iBAEvB,KAAK,UAAU,SAAS,cAAc,KAAK,GAC3C,KAAK,QAAQ,YAAY,mBACzB,KAAK,QAAQ,iBAAiB,UAAU,KAAK,WAAW,EAAE,SAAS,KAAK,CAAC,GAEzE,KAAK,UAAU,SAAS,cAAc,KAAK,GAC3C,KAAK,QAAQ,YAAY,mBAEzB,KAAK,QAAQ,SAAS,cAAc,KAAK,GACzC,KAAK,MAAM,YAAY,iBAEvB,KAAK,UAAU,SAAS,cAAc,KAAK,GAC3C,KAAK,QAAQ,YAAY,mBAEzB,KAAK,cAAc,SAAS,cAAc,KAAK,GAC/C,KAAK,YAAY,YAAY,kBAE7B,KAAK,MAAM,OAAO,KAAK,SAAS,KAAK,WAAW,GAChD,KAAK,QAAQ,OAAO,KAAK,SAAS,KAAK,KAAK,GAC5C,KAAK,MAAM,YAAY,KAAK,OAAO,GACnCG,EAAO,YAAY,KAAK,KAAK;EAC/B;EAEA,oBAA0B;AACxB,SAAK,aAAa,aAAa,KAAK,SAAS,GAC7C,KAAK,aAAa,gBAAgB,KAAK,SAAS,GAChD,KAAK,aAAa,GAElB,KAAK,kBAAkB,IAAI,eAAgBiH,OAAY;AACrD,eAAWC,KAASD,EAClB,KAAIC,EAAM,WAAW,KAAK,SAAS;AACjC,YAAMC,IAAe,KAAK,QAAQ;AAClC,aAAK,aAAa,kBAAkB,KAAK,IAAI,GAAGD,EAAM,YAAY,SAASC,CAAY,CAAC,GACxF,KAAK,QAAQ;MACf;IAEJ,CAAC,GACD,KAAK,gBAAgB,QAAQ,KAAK,OAAO,GAEzC,KAAK,oBAAoB,IAAI,iBAAiB,MAAM;AAClD,WAAK,aAAa,GAClB,KAAK,QAAQ;IACf,CAAC,GACD,KAAK,kBAAkB,QAAQ,MAAM,EACnC,WAAW,MACX,SAAS,MACT,YAAY,MACZ,iBAAiB,CAAC,SAAS,UAAU,SAAS,aAAa,OAAO,EACpE,CAAC,GAED,KAAK,aAAa,SAAS,KAAK,MAAM,MAAM,GAC5C,KAAK,aAAa,kBAChB,KAAK,IAAI,GAAG,KAAK,QAAQ,eAAe,KAAK,QAAQ,YAAY,CACnE,GACA,KAAK,QAAQ;EACf;EAEA,uBAA6B;AAC3B,SAAK,QAAQ,oBAAoB,UAAU,KAAK,SAAS,GACzD,KAAK,iBAAiB,WAAW,GACjC,KAAK,mBAAmB,WAAW,GACnC,KAAK,kBAAkB,MACvB,KAAK,oBAAoB;EAC3B;EAEA,yBAAyBlH,GAAoB;AACvCA,UAAS,iBACX,KAAK,aAAa,aAAa,KAAK,SAAS,GAC7C,KAAK,aAAa,gBAAgB,KAAK,SAAS,IAElD,KAAK,QAAQ;EACf;EAEQ,YAAY,MAAY;AAC9B,SAAK,aAAa,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,YAAY,KAAK,QAAQ,YAAY,CAAC,GAC9F,KAAK,YAAY;EACnB;EAEQ,eAAqB;AAC3B,SAAK,WAAW,MAAM,KAAK,KAAK,QAAQ,EACrC,OAAQmH,OAA6BA,aAAiBN,CAAQ,EAC9D,IAAKO,QAAY,EAChB,OAAOA,EAAO,OACd,QAAQA,EAAO,QACf,OAAOA,EAAO,OACd,UAAUA,EAAO,UACjB,OAAOA,EAAO,OACd,UACE,MAAM,KAAKA,EAAO,QAAQ,EAAE,KACzBD,OAAwCA,aAAiB,mBAC5D,KAAK,KACT,EAAE,EACD,OAAQC,OAAWA,EAAO,KAAK;EACpC;EAEQ,UAAgB;AACtB,QAAI,CAAC,KAAK,YACR;AAGF,SAAK,YAAY,cAAc,KAAK;AACpC,QAAMC,IACJ,KAAK,SAAS,SAAS,IACnB,KAAK,SAAS,IAAKD,OAAW,KAAK,cAAcA,CAAM,CAAC,EAAE,KAAK,GAAG,IAClE;AACN,SAAK,QAAQ,MAAM,YAAY,sBAAsBC,CAAe,GACpE,KAAK,QAAQ,MAAM,YAAY,sBAAsBA,CAAe,GAEpE,KAAK,cAAc,GACnB,KAAK,YAAY;EACnB;EAEQ,gBAAsB;AAC5B,QAAMxC,IAAW,SAAS,uBAAuB;AAEjD,aAAWuC,KAAU,KAAK,UAAU;AAClC,UAAME,IAAO,SAAS,cAAc,KAAK;AACzCA,QAAK,YAAY,wBACjBA,EAAK,QAAQ,QAAQF,EAAO,OAExB,KAAK,aACPE,EAAK,UAAU,IAAI,gCAAgC,GACnDA,EAAK,WAAW,GAChBA,EAAK,aAAa,QAAQ,QAAQ,GAClCA,EAAK,aAAa,cAAc,WAAWF,EAAO,MAAM,EAAE,GAC1DE,EAAK,iBAAiB,SAAS,MAAM,KAAK,aAAaF,EAAO,KAAK,CAAC,GACpEE,EAAK,iBAAiB,WAAYC,OAAU;AAAA,SACtCA,EAAM,QAAQ,WAAWA,EAAM,QAAQ,SACzCA,EAAM,eAAe,GACrB,KAAK,aAAaH,EAAO,KAAK;MAElC,CAAC;AAGH,UAAMtF,IAAQ,SAAS,cAAc,MAAM;AAI3C,UAHAA,EAAM,YAAY,yBAClBA,EAAM,cAAcsF,EAAO,QAEvB,KAAK,UAAU;AACjB,YAAMI,IAAY,SAAS,cAAc,MAAM;AAC/CA,UAAU,YAAY,2BAClB,KAAK,eAAeJ,EAAO,QAC7BI,EAAU,cAAc,KAAK,mBAAmB,QAAQ,WAAM,WAE9DA,EAAU,cAAc,UAE1B1F,EAAM,YAAY0F,CAAS;MAC7B;AAEAF,QAAK,YAAYxF,CAAK,GACtB+C,EAAS,YAAYyC,CAAI;IAC3B;AAEA,SAAK,QAAQ,gBAAgBzC,CAAQ;EACvC;EAEQ,cAAoB;AAC1B,QAAI,KAAK,MAAM,WAAW,KAAK,KAAK,SAAS,WAAW,GAAG;AACzD,WAAK,YAAY,SAAS,OAC1B,KAAK,QAAQ,gBAAgB,GAC7B,KAAK,MAAM,MAAM,SAAS,SAC1B,KAAK,QAAQ,MAAM,SAAS;AAC5B;IACF;AAEA,SAAK,YAAY,SAAS,MAC1B,KAAK,aAAa,SAAS,KAAK,MAAM,MAAM,GAC5C,KAAK,aAAa,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,YAAY,KAAK,QAAQ,YAAY,CAAC,GAC9F,KAAK,aAAa,kBAChB,KAAK,IAAI,GAAG,KAAK,QAAQ,eAAe,KAAK,QAAQ,YAAY,CACnE;AAEA,QAAM4C,IAAQ,KAAK,aAAa,SAAS;AACzC,SAAK,MAAM,MAAM,SAAS,GAAG,KAAK,IAAIA,EAAM,aAAa,KAAK,QAAQ,eAAe,KAAK,QAAQ,YAAY,CAAC,MAC/G,KAAK,QAAQ,MAAM,SAAS,GAAGA,EAAM,WAAW;AAEhD,QAAM5C,IAAW,SAAS,uBAAuB;AACjD,aAASc,IAAQ8B,EAAM,OAAO9B,IAAQ8B,EAAM,KAAK9B,KAAS,EACxDd,GAAS,YAAY,KAAK,WAAWc,CAAK,CAAC;AAG7C,SAAK,QAAQ,gBAAgBd,CAAQ;EACvC;EAEQ,WAAWc,GAA4B;AAC7C,QAAMgB,IAAM,KAAK,MAAMhB,CAAK,GACtB+B,IAAa,SAAS,cAAc,KAAK;AAC/CA,MAAW,YAAY,wCACvBA,EAAW,MAAM,MAAM,GAAG,KAAK,aAAa,UAAU/B,CAAK,CAAC,MAC5D+B,EAAW,MAAM,SAAS,GAAG,KAAK,SAAS,MAC3CA,EAAW,MAAM,YACf,sBACA,KAAK,QAAQ,MAAM,iBAAiB,oBAAoB,CAC1D,GACAA,EAAW,iBAAiB,SAAS,MAAM;AACzC,WAAK,cACH,IAAI,YAAuC,gBAAgB,EACzD,QAAQ,EAAE,KAAAf,GAAK,OAAAhB,EAAM,GACrB,SAAS,MACT,UAAU,KACZ,CAAC,CACH;IACF,CAAC;AAED,QAAMgC,IAASjB,GAAaC,CAAG;AAE/B,aAAWS,KAAU,KAAK,UAAU;AAClC,UAAME,IAAO,SAAS,cAAc,KAAK;AAIzC,UAHAA,EAAK,YAAY,iBACjBA,EAAK,QAAQ,QAAQF,EAAO,OAExBA,EAAO,SACTE,GAAK,YAAYhC,EAAoB8B,EAAO,UAAUO,CAAM,CAAC;WACxD;AACL,YAAMzE,IAAQyE,EAAOP,EAAO,KAAK;AACjCE,UAAK,cAAcpE,KAAU,OAA8B,KAAK,OAAOA,CAAK;MAC9E;AAEAwE,QAAW,YAAYJ,CAAI;IAC7B;AAEA,WAAOI;EACT;EAEQ,aAAaE,GAAqB;AACpC,SAAK,eAAeA,IACtB,KAAK,iBAAiB,KAAK,mBAAmB,QAAQ,SAAS,SAE/D,KAAK,aAAaA,GAClB,KAAK,iBAAiB,QAGxB,KAAK,cAAc,GACnB,KAAK,cACH,IAAI,YAAmC,WAAW,EAChD,QAAQ,EAAE,OAAAA,GAAO,WAAW,KAAK,eAAe,GAChD,SAAS,MACT,UAAU,KACZ,CAAC,CACH;EACF;EAEQ,cAAcR,GAAqC;AACzD,QAAMS,IAAW,QAAQ,KAAKT,EAAO,QAAQ,IAAI,GAAGA,EAAO,QAAQ,OAAOA,EAAO;AACjF,QAAIA,EAAO,UAAU,OACnB,QAAO,UAAUS,CAAQ;AAG3B,QAAMC,IAAQ,QAAQ,KAAKV,EAAO,KAAK,IAAI,GAAGA,EAAO,KAAK,OAAOA,EAAO;AACxE,WAAO,UAAUS,CAAQ,KAAKC,CAAK;EACrC;AACF;ACjcA,IAAOC,KAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqBf,IAAMC,KAAmB;AAEzB,SAAStB,GAAanE,GAAwC;AAC5D,SAAIA,KAAQ,OAAOA,KAAS,WACnBA,IAEF,EAAE,OAAOA,EAAK;AACvB;AAmDO,IAAM0F,IAAN,cAAyB,YAAY;EAClC,SAAoB,CAAC;EACrB,mBAAmB,oBAAI;EACvB,cAA2C;EAClC,eAAe,IAAIzC,EAAc,EAChD,cAAcwC,IACd,UAAU,EACZ,CAAC;EACgB;EACA;EACA;EACA;EACT,kBAAyC;EACzC,sBAA6C;EAErD,WAAW,qBAA+B;AACxC,WAAO,CAAC,eAAe,YAAY,cAAc,YAAY;EAC/D;EAEA,IAAI,QAAmB;AACrB,WAAO,KAAK;EACd;EAEA,IAAI,MAAM9E,GAAkB;AAC1B,SAAK,SAAS,MAAM,QAAQA,CAAK,IAAIA,IAAQ,CAAC,GAC9C,KAAK,mBAAmB,IAAI,IAC1B,CAAC,GAAG,KAAK,gBAAgB,EAAE,OAAQyC,OAAUA,IAAQ,KAAK,OAAO,MAAM,CACzE,GACA,KAAK,aAAa,SAAS,KAAK,OAAO,MAAM,GAC7C,KAAK,gBAAgB,IAAI,GACzB,KAAK,QAAQ;EACf;EAEA,IAAI,gBAA2B;AAC7B,WAAO,CAAC,GAAG,KAAK,gBAAgB,EAAE,KAAK,CAACuC,GAAGC,MAAMD,IAAIC,CAAC,EAAE,IAAKxC,OAAU,KAAK,OAAOA,CAAK,CAAC;EAC3F;EAEA,IAAI,aAA0C;AAC5C,WAAO,KAAK;EACd;EAEA,IAAI,WAAWzC,GAAoC;AACjD,SAAK,cAAc,OAAOA,KAAU,aAAaA,IAAQ,MACzD,KAAK,QAAQ;EACf;EAEA,IAAI,aAA4B;AAC9B,QAAM6D,IAAM,KAAK,aAAa,aAAa;AAC3C,QAAI,CAACA,EACH,QAAO;AAET,QAAMqB,IAAS,OAAOrB,CAAG;AACzB,WAAO,OAAO,SAASqB,CAAM,KAAKA,IAAS,IAAIA,IAAS;EAC1D;EAEA,IAAI,WAAWlF,GAAsB;AACnC,QAAIA,MAAU,QAAQA,KAAS,GAAG;AAChC,WAAK,gBAAgB,aAAa;AAClC;IACF;AACA,SAAK,aAAa,eAAe,OAAOA,CAAK,CAAC;EAChD;EAEA,IAAI,aAAmC;AACrC,QAAMA,IAAQ,KAAK,aAAa,YAAY;AAC5C,WAAIA,MAAU,YAAYA,MAAU,UAC3BA,IAEF;EACT;EAEA,IAAI,WAAWA,GAA6B;AAC1C,SAAK,aAAa,cAAcA,CAAK;EACvC;EAEA,IAAI,YAAoB;AACtB,WAAO,KAAK,aAAa,YAAY,KAAK;EAC5C;EAEA,IAAI,UAAUA,GAAe;AAC3B,SAAK,aAAa,cAAcA,CAAK;EACvC;EAEA,cAAc;AACZ,UAAM;AACN,QAAMnD,IAAS,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC,GAE3CH,IAAQ,SAAS,cAAc,OAAO;AAC5CA,MAAM,cAAcmI,IACpBhI,EAAO,YAAYH,CAAK,GAExB,KAAK,YAAY,SAAS,cAAc,KAAK,GAC7C,KAAK,UAAU,YAAY,gBAC3B,KAAK,UAAU,iBAAiB,UAAU,KAAK,WAAW,EAAE,SAAS,KAAK,CAAC,GAE3E,KAAK,UAAU,SAAS,cAAc,KAAK,GAC3C,KAAK,QAAQ,YAAY,kBAEzB,KAAK,cAAc,SAAS,cAAc,KAAK,GAC/C,KAAK,YAAY,YAAY,iBAE7B,KAAK,cAAc,SAAS,cAAc,KAAK,GAC/C,KAAK,YAAY,YAAY,iBAE7B,KAAK,QAAQ,OAAO,KAAK,aAAa,KAAK,WAAW,GACtD,KAAK,UAAU,YAAY,KAAK,OAAO,GACvCG,EAAO,YAAY,KAAK,SAAS;EACnC;EAEA,oBAA0B;AACxB,SAAK,kBAAkB,IAAI,eAAgBiH,OAAY;AACrD,eAAWC,KAASD,EACdC,GAAM,WAAW,KAAK,cACxB,KAAK,aAAa,kBAAkBA,EAAM,YAAY,MAAM,GAC5D,KAAK,QAAQ;IAGnB,CAAC,GACD,KAAK,gBAAgB,QAAQ,KAAK,SAAS,GAE3C,KAAK,sBAAsB,IAAI,eAAgBD,OAAY;AACzD,UAAIqB,IAAa;AACjB,eAAWpB,KAASD,GAAS;AAC3B,YAAM3E,IAAS4E,EAAM,QACftB,IAAQ,OAAOtD,EAAO,QAAQ,KAAK;AACpC,eAAO,SAASsD,CAAK,MAG1B0C,KAAc,KAAK,aAAa,QAAQ1C,GAAOsB,EAAM,YAAY,MAAM;MACzE;AAEIoB,YAAe,MACjB,KAAK,UAAU,aAAaA,IAG1BrB,EAAQ,SAAS,KACnB,KAAK,QAAQ;IAEjB,CAAC,GAED,KAAK,aAAa,SAAS,KAAK,OAAO,MAAM,GAC7C,KAAK,aAAa,kBAAkB,KAAK,UAAU,YAAY,GAC/D,KAAK,gBAAgB,KAAK,GAC1B,KAAK,QAAQ;EACf;EAEA,uBAA6B;AAC3B,SAAK,UAAU,oBAAoB,UAAU,KAAK,SAAS,GAC3D,KAAK,iBAAiB,WAAW,GACjC,KAAK,qBAAqB,WAAW,GACrC,KAAK,kBAAkB,MACvB,KAAK,sBAAsB;EAC7B;EAEA,yBAAyBhH,GAAoB;AACvCA,UAAS,iBACX,KAAK,gBAAgB,IAAI,GAGvBA,MAAS,gBAAgB,KAAK,eAAe,UAAU,KAAK,iBAAiB,OAAO,MACtF,KAAK,iBAAiB,MAAM,GAC5B,KAAK,qBAAqB,IAG5B,KAAK,QAAQ;EACf;EAEQ,YAAY,MAAY;AAC9B,SAAK,aAAa,aAAa,KAAK,UAAU,SAAS,GACvD,KAAK,QAAQ;EACf;EAEQ,gBAAgBsI,GAAkC;AACxD,QAAMC,IAAc,KAAK;AACzB,SAAK,aAAa,aAAaA,CAAW,GAC1C,KAAK,aAAa,gBAAgBA,KAAeP,EAAgB,GAC7DM,KACF,KAAK,aAAa,kBAAkB;EAExC;EAEQ,UAAgB;AACtB,QAAI,CAAC,KAAK,YACR;AAMF,QAHA,KAAK,YAAY,cAAc,KAAK,WACpC,KAAK,YAAY,SAAS,KAAK,OAAO,SAAS,GAE3C,KAAK,OAAO,WAAW,GAAG;AAC5B,WAAK,YAAY,gBAAgB,GACjC,KAAK,QAAQ,MAAM,SAAS;AAC5B;IACF;AAEA,SAAK,aAAa,aAAa,KAAK,UAAU,SAAS,GACvD,KAAK,aAAa,kBAAkB,KAAK,UAAU,YAAY,GAC/D,KAAK,aAAa,SAAS,KAAK,OAAO,MAAM;AAE7C,QAAMb,IAAQ,KAAK,aAAa,SAAS;AACzC,SAAK,QAAQ,MAAM,SAAS,GAAG,KAAK,IAAIA,EAAM,aAAa,KAAK,UAAU,YAAY,CAAC,MACvF,KAAK,YAAY,MAAM,YAAY,cAAcA,EAAM,UAAU;AAEjE,QAAM5C,IAAW,SAAS,uBAAuB;AACjD,aAASc,IAAQ8B,EAAM,OAAO9B,IAAQ8B,EAAM,KAAK9B,KAAS,EACxDd,GAAS,YAAY,KAAK,mBAAmBc,CAAK,CAAC;AAGrD,SAAK,YAAY,gBAAgBd,CAAQ;EAC3C;EAEQ,mBAAmBc,GAA4B;AACrD,QAAMpD,IAAO,KAAK,OAAOoD,CAAK,GACxB6C,IAAc,SAAS,cAAc,KAAK;AAmBhD,QAlBAA,EAAY,YAAY,gBACxBA,EAAY,QAAQ,QAAQ,OAAO7C,CAAK,GAEpC,KAAK,eAAe,WACtB6C,EAAY,UAAU,IAAI,2BAA2B,GACrDA,EAAY,aAAa,QAAQ,QAAQ,GACzCA,EAAY,aAAa,iBAAiB,OAAO,KAAK,iBAAiB,IAAI7C,CAAK,CAAC,CAAC,GAClF6C,EAAY,WAAW,IAGrB,KAAK,iBAAiB,IAAI7C,CAAK,KACjC6C,EAAY,UAAU,IAAI,wBAAwB,GAGhD,KAAK,eAAe,SACtBA,EAAY,MAAM,YAAY,GAAG,KAAK,UAAU,OAG9C,KAAK,YACP,MAAK,YAAYjG,GAAMiG,GAAa7C,CAAK;SACpC;AACL,UAAMJ,IAAW,KAAK,aAAa;AAC/BA,UACFiD,EAAY,YAAYlD,EAAoBC,GAAUmB,GAAanE,CAAI,CAAC,CAAC,IAEzEiG,EAAY,cAAc,OAAOjG,KAAQ,EAAE;IAE/C;AAEA,WAAAiG,EAAY,iBAAiB,SAAS,MAAM,KAAK,iBAAiB7C,CAAK,CAAC,GACxE6C,EAAY,iBAAiB,WAAYjB,OAAU;AAAA,OAC7CA,EAAM,QAAQ,WAAWA,EAAM,QAAQ,SACzCA,EAAM,eAAe,GACrB,KAAK,iBAAiB5B,CAAK;IAE/B,CAAC,GAEG,KAAK,eAAe,QACtB,KAAK,qBAAqB,QAAQ6C,CAAW,GAGxCA;EACT;EAEQ,iBAAiB7C,GAAqB;AAC5C,QAAMpD,IAAO,KAAK,OAAOoD,CAAK,GACxB8C,IAAa,KAAK;AAEpBA,UAAe,YACjB,KAAK,mBAAmB,oBAAI,IAAI,CAAC9C,CAAK,CAAC,GACvC,KAAK,qBAAqB,GAC1B,KAAK,QAAQ,KACJ8C,MAAe,YACpB,KAAK,iBAAiB,IAAI9C,CAAK,IACjC,KAAK,iBAAiB,OAAOA,CAAK,IAElC,KAAK,iBAAiB,IAAIA,CAAK,GAEjC,KAAK,qBAAqB,GAC1B,KAAK,QAAQ,IAGf,KAAK,cACH,IAAI,YAAuC,iBAAiB,EAC1D,QAAQ,EAAE,MAAApD,GAAM,OAAAoD,EAAM,GACtB,SAAS,MACT,UAAU,KACZ,CAAC,CACH;EACF;EAEQ,uBAA6B;AACnC,SAAK,cACH,IAAI,YAA6C,uBAAuB,EACtE,QAAQ,EAAE,UAAU,KAAK,cAAc,GACvC,SAAS,MACT,UAAU,KACZ,CAAC,CACH;EACF;EAEQ,eAA2C;AACjD,aAAWwB,KAAS,MAAM,KAAK,KAAK,QAAQ,EAC1C,KAAIA,aAAiB,oBACnB,QAAOA;AAGX,WAAO;EACT;AACF;AC9XA,IAAOuB,KAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACUf,IAAIC,IAA8C;AAE3C,SAASC,KAAuC;AACrD,SAAI,OAAO,YACF,QAAQ,QAAQ,OAAO,SAAS,IAGrCD,MAIJA,IAAc,IAAI,QAAQ,CAACE,GAASC,MAAW;AAC7C,QAAMC,IAAS,SAAS,cAAc,QAAQ;AAC9CA,MAAO,MAAM,wBACbA,EAAO,QAAQ,MACfA,EAAO,QAAQ,UAAU,QACzBA,EAAO,SAAS,MAAM;AACpB,UAAI,OAAO,WAAW;AACpBF,UAAQ,OAAO,SAAS;AACxB;MACF;AAEAC,QAAO,IAAI,MAAM,kDAAkD,CAAC;IACtE,GACAC,EAAO,UAAU,MAAMD,EAAO,IAAI,MAAM,6CAA6C,CAAC,GACtF,SAAS,KAAK,YAAYC,CAAM;EAClC,CAAC,GAEMJ;AACT;ACPA,SAASK,EAAM9F,GAAe+F,GAAaC,GAAqB;AAC9D,SAAO,KAAK,IAAIA,GAAK,KAAK,IAAID,GAAK/F,CAAK,CAAC;AAC3C;AAEA,SAASiG,GAASjG,GAAgC;AAChD,SAAKA,IAIEA,EACJ,MAAM,GAAG,EACT,IAAKkG,OAASA,EAAK,KAAK,CAAC,EACzB,OAAO,OAAO,IANR,CAAC;AAOZ;AAEA,SAASC,EAAgBnG,GAAgC;AACvD,MAAMoG,IAAMpG,EAAM,KAAK,EAAE,MAAM,+BAA+B;AAC9D,MAAIoG,GAAK;AACP,QAAMvC,IAAMuC,EAAI,CAAC,GACXvD,IACJgB,EAAI,WAAW,IACXA,EACG,MAAM,EAAE,EACR,IAAKwC,OAAS,GAAGA,CAAI,GAAGA,CAAI,EAAE,EAC9B,KAAK,EAAE,IACVxC,GACAyC,IAAI,SAASzD,EAAW,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,KAC3C0D,IAAI,SAAS1D,EAAW,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,KAC3CoC,IAAI,SAASpC,EAAW,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI;AACjD,WAAO2D,GAASF,GAAGC,GAAGtB,CAAC;EACzB;AAEA,MAAMwB,IAAMzG,EACT,KAAK,EACL,MACC,yFACF;AACF,MAAIyG,EACF,QAAOD,GAAS,OAAOC,EAAI,CAAC,CAAC,IAAI,KAAK,OAAOA,EAAI,CAAC,CAAC,IAAI,KAAK,OAAOA,EAAI,CAAC,CAAC,IAAI,GAAG;AAGlF,MAAMC,IAAM1G,EACT,KAAK,EACL,MAAM,+EAA+E;AACxF,SAAI0G,IACK,EACL,IAAK,OAAOA,EAAI,CAAC,CAAC,IAAI,MAAO,OAAO,KACpC,GAAGZ,EAAM,OAAOY,EAAI,CAAC,CAAC,GAAG,GAAG,GAAG,GAC/B,GAAGZ,EAAM,OAAOY,EAAI,CAAC,CAAC,GAAG,GAAG,GAAG,EACjC,IAGK;AACT;AAEA,SAASF,GAAS,GAAWD,GAAWtB,GAAqB;AAC3D,MAAMe,IAAM,KAAK,IAAI,GAAGO,GAAGtB,CAAC,GACtBc,IAAM,KAAK,IAAI,GAAGQ,GAAGtB,CAAC,GACtB0B,IAAQX,IAAMD,GAChBa,IAAI,GACFC,KAAKb,IAAMD,KAAO,GAClBe,IAAIH,MAAU,IAAI,IAAIA,KAAS,IAAI,KAAK,IAAI,IAAIE,IAAI,CAAC;AAE3D,MAAIF,MAAU,EACZ,SAAQX,GAAK;IACX,KAAK;AACHY,UAAI,OAAQL,IAAItB,KAAK0B,IAAS;AAC9B;IACF,KAAKJ;AACHK,UAAI,OAAO3B,IAAI,KAAK0B,IAAQ;AAC5B;IACF;AACEC,UAAI,OAAO,IAAIL,KAAKI,IAAQ;AAC5B;EACJ;AAGF,SAAO,EACL,IAAIC,IAAI,OAAO,KACf,GAAG,KAAK,MAAME,IAAI,GAAG,GACrB,GAAG,KAAK,MAAMD,IAAI,GAAG,EACvB;AACF;AAEA,SAASE,EAAUC,GAAiBC,IAAQ,GAAW;AACrD,SAAO,QAAQ,KAAK,MAAMD,EAAM,CAAC,CAAC,IAAI,KAAK,MAAMA,EAAM,CAAC,CAAC,KAAK,KAAK,MAAMA,EAAM,CAAC,CAAC,OAAOC,CAAK;AAC/F;AAEA,SAASC,GAAWC,GAA4B;AAC9C,MAAMC,IAAOjB,EAAgBgB,CAAM,KAAK,EAAE,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG;AAE/D,SADgB,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EACpC,IAAI,CAACnE,GAAQP,OAAW,EACrC,IAAI2E,EAAK,IAAIpE,KAAU,KACvB,GAAG8C,EAAMsB,EAAK,IAAI3E,IAAQ,GAAG,IAAI,EAAE,GACnC,GAAGqD,EAAMsB,EAAK,KAAK3E,IAAQ,MAAM,IAAI,IAAI,KAAKA,GAAO,IAAI,EAAE,EAC7D,EAAE;AACJ;AAEA,SAAS4E,EAAcrH,GAAkD;AACvE,SAAO,CAAA,CAAQA,KAAU,OAAOA,KAAU,YAAY,CAAC,MAAM,QAAQA,CAAK;AAC5E;AAEA,SAASsH,GAAaF,GAASG,GAAsB;AACnD,MAAI,CAACF,EAAcD,CAAI,KAAK,CAACC,EAAcE,CAAQ,EACjD,QAAQA,KAAkBH;AAG5B,MAAMI,IAAkC,EAAE,GAAGJ,EAAK;AAClD,WAAW,CAACK,GAAKzH,CAAK,KAAK,OAAO,QAAQuH,CAAQ,GAAG;AACnD,QAAMG,IAAUF,EAAOC,CAAG;AAC1BD,MAAOC,CAAG,IACRJ,EAAcK,CAAO,KAAKL,EAAcrH,CAAK,IAAIsH,GAAUI,GAAS1H,CAAK,IAAIA;EACjF;AACA,SAAOwH;AACT;AAEA,SAASG,GAAgB3H,GAAqC;AAC5D,SAAIA,MAAU,SAASA,MAAU,YAAYA,MAAU,UAAUA,MAAU,UAClEA,IAEF;AACT;AAEA,SAAS4H,GAAc5H,GAAmC;AACxD,SACEA,MAAU,SACVA,MAAU,UACVA,MAAU,UACVA,MAAU,SACVA,MAAU,cACVA,MAAU,WACVA,MAAU,aACVA,MAAU,WAEHA,IAEF;AACT;AAEA,SAAS6H,GAAgBC,GAA4B;AACnD,SACEA,MAAS,SAASA,MAAS,UAAUA,MAAS,UAAUA,MAAS,aAAaA,MAAS;AAE3F;AAEA,SAASC,GAAa/H,GAA2B;AAC/C,SAAOA,EAAM,IAAKX,OAASA,EAAK,KAAK,CAAC,EAAE,OAAO,OAAO;AACxD;AAQO,IAAM2I,IAAN,cAAsB,YAAY;EACtB;EACA;EACT,WAAkC;EAClC,eAA+C;EAC/C,SAA0C;EAC1C,gBAAwC;EACxC,aAAsC;EACtC,mBAAmD;EACnD,aAAa;EAErB,WAAW,qBAA+B;AACxC,WAAO,CAAC,QAAQ,UAAU,WAAW,QAAQ;EAC/C;EAEA,IAAI,OAAoB;AACtB,WAAOJ,GAAc,KAAK,aAAa,MAAM,CAAC;EAChD;EAEA,IAAI,KAAK5H,GAAoB;AAC3B,SAAK,aAAa,QAAQA,CAAK;EACjC;EAEA,IAAI,SAAwB;AAC1B,WAAO2H,GAAgB,KAAK,aAAa,QAAQ,CAAC;EACpD;EAEA,IAAI,OAAO3H,GAAsB;AAC/B,SAAK,aAAa,UAAUA,CAAK;EACnC;EAEA,IAAI,UAAmB;AACrB,WAAO,KAAK,aAAa,SAAS;EACpC;EAEA,IAAI,QAAQA,GAAgB;AAC1B,SAAK,gBAAgB,WAAWA,CAAK;EACvC;EAEA,IAAI,SAAmB;AACrB,WAAO+H,GAAa9B,GAAS,KAAK,aAAa,QAAQ,CAAC,CAAC;EAC3D;EAEA,IAAI,OAAOjG,GAAiB;AAC1B,SAAK,aAAa,UAAUA,EAAM,KAAK,GAAG,CAAC;EAC7C;EAEA,IAAI,OAAgC;AAClC,WAAO,KAAK;EACd;EAEA,IAAI,KAAKA,GAAgC;AACvC,SAAK,aAAaA,IAAQ,gBAAgBA,CAAK,IAAI,MACnD,KAAK,cAAc;EACrB;EAEA,IAAI,UAA0C;AAC5C,WAAO,KAAK;EACd;EAEA,IAAI,QAAQA,GAAuC;AACjD,SAAK,mBAAmBA,IAAQ,gBAAgBA,CAAK,IAAI,MACpD,KAAK,aAAa;EACzB;EAEA,cAAc;AACZ,UAAM;AACN,QAAMnD,IAAS,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC,GAE3CH,IAAQ,SAAS,cAAc,OAAO;AAC5CA,MAAM,cAAc8I,IACpB3I,EAAO,YAAYH,CAAK;AAExB,QAAMuL,IAAO,SAAS,cAAc,KAAK;AACzCA,MAAK,YAAY,YAEjB,KAAK,UAAU,SAAS,cAAc,QAAQ,GAC9C,KAAK,QAAQ,YAAY,oBAEzB,KAAK,UAAU,SAAS,cAAc,KAAK,GAC3C,KAAK,QAAQ,YAAY,oBACzB,KAAK,QAAQ,cAAc,iBAE3BA,EAAK,OAAO,KAAK,SAAS,KAAK,OAAO,GACtCpL,EAAO,YAAYoL,CAAI;EACzB;EAEA,oBAA0B;AACxB,SAAK,QAAQ,iBAAiB,SAAS,KAAK,kBAAkB,GACzD,KAAK,eAAe,EAAE,KAAK,MAAM,KAAK,aAAa,CAAC,GACzD,KAAK,cAAc;EACrB;EAEA,uBAA6B;AAC3B,SAAK,QAAQ,oBAAoB,SAAS,KAAK,kBAAkB,GAC7D,KAAK,eAAe,MACtB,qBAAqB,KAAK,UAAU,GACpC,KAAK,aAAa,IAEpB,KAAK,QAAQ,QAAQ,GACrB,KAAK,SAAS,MACd,KAAK,gBAAgB;EACvB;EAEA,2BAAiC;AAC/B,SAAK,cAAc;EACrB;EAEQ,qBAAsB5D,OAAuB;AACnD,QAAI,CAAC,KAAK,OACR;AASF,QAAM6D,IANS,KAAK,OAAO,0BACzB7D,GACA,WACA,EAAE,WAAW,KAAK,GAClB,IACF,EACqB,CAAC;AACtB,QAAI,CAAC6D,EACH;AAGF,QAAMtJ,IAAQ,MAAM,QAAQ,KAAK,OAAO,KAAK,MAAM,IAC7C,KAAK,OAAO,KAAK,OAAOsJ,EAAM,KAAK,KAA4B,OACjE,MACEC,IAAU,KAAK,OAAO,KAAK,SAASD,EAAM,YAAY,GACtDlI,IAAQ,MAAM,QAAQmI,GAAS,IAAI,IAAIA,EAAQ,KAAKD,EAAM,KAAK,IAAI;AAEzE,SAAK,cACH,IAAI,YAAgC,kBAAkB,EACpD,SAAS,MACT,UAAU,MACV,QAAQ,EACN,OAAAtJ,GACA,cAAcsJ,EAAM,cACpB,OAAOA,EAAM,OACb,OAAAlI,EACF,EACF,CAAC,CACH;EACF;EAEQ,gBAAsB;AACxB,SAAK,eAAe,MAIxB,KAAK,aAAa,sBAAsB,MAAM;AAC5C,WAAK,aAAa,GAClB,KAAK,uBAAuB;IAC9B,CAAC;EACH;EAEQ,yBAA+B;AAChC,SAAK,aAAa;EACzB;EAEA,MAAc,iBAA0C;AACtD,WAAI,KAAK,WACA,KAAK,YAGT,KAAK,iBACR,KAAK,eAAe0F,GAAY,EAAE,KAAM0C,QACtC,KAAK,WAAWA,GACTA,EACR,IAGI,KAAK;EACd;EAEA,MAAc,eAA8B;AAC1C,QAAMxG,IAAO,KAAK;AAClB,QAAI,CAACA,GAAM;AACT,WAAK,WAAW,kBAAkB;AAClC;IACF;AAEA,QAAMwG,IAAU,MAAM,KAAK,eAAe,GACpCC,IAAS,KAAK,aAAaD,GAASxG,CAAI,GACxC0G,IAAWD,EAAO;AAEpB,KAAC,KAAK,UAAU,KAAK,kBAAkBC,KACzC,KAAK,QAAQ,QAAQ,GACrB,KAAK,SAAS,IAAIF,EAAQ,MAAM,KAAK,SAASC,CAAe,GAC7D,KAAK,gBAAgBC,MAErB,KAAK,OAAO,OAAOD,EAAO,MAC1B,KAAK,OAAO,UAAUA,EAAO,SAC7B,KAAK,OAAO,OAAO,IAGrB,KAAK,WAAWzG,EAAK,SAAS,SAAS,IAAI,OAAO,kBAAkB;EACtE;EAEQ,aAAa2G,GAA0B3G,GAAwB;AACrE,QAAM4G,IAAW,iBAAiB,IAAI,GAChCrB,IAASqB,EAAS,iBAAiB,aAAa,EAAE,KAAK,KAAK,WAC5DC,IAAOD,EAAS,iBAAiB,WAAW,EAAE,KAAK,KAAK,WACxDE,IAAQF,EAAS,iBAAiB,iBAAiB,EAAE,KAAK,KAAK,WAC/DG,IAASH,EAAS,iBAAiB,aAAa,EAAE,KAAK,KAAK,4BAC5DI,IACJJ,EAAS,iBAAiB,aAAa,EAAE,KAAK,KAC9C,0EACIK,IAAU3B,GAAWC,CAAM,GAC3B2B,IAAiB,KAAK,SAAS,SAAS,SAAS,KAAK,MACtDC,IAAY,EAChB,QAAQnH,EAAK,UAAU,KAAK,QAC5B,UAAUA,EAAK,SAAS,IAAI,CAACuG,GAAS1F,OAAU;AAC9C,UAAMuG,IAAOH,EAAQpG,KAAQoG,EAAQ,MAAM,GACrC7B,IAAQmB,EAAQ,SAASpB,EAAUiC,GAAM,CAAC,GAC1CC,IAAc,EAClB,OAAOd,EAAQ,SAAS,IACxB,MAAMA,EAAQ,MACd,iBACEW,MAAmB,UAAUA,MAAmB,WAAWA,MAAmB,YAC1E/B,EAAUiC,GAAMF,MAAmB,YAAY,OAAO,IAAI,IAC1D9B,GACN,aAAaA,GACb,sBAAsBA,GACtB,kBAAkBA,GAClB,2BAA2BA,GAC3B,aAAa,KAAK,SAAS,UAAU,KAAK,SAAS,SAAS,IAAI,GAChE,kBAAkB,KAAK,SAAS,UAAU,KAAK,SAAS,SAAS,IAAI,GACrE,aAA0C,GAC1C,SAAS8B,MAAmB,UAAU,KAAK,SAAS,SAAS,OAAO,QACpE,MAAM,KAAK,SAAS,OACtB;AAEA,aAAIA,MAAmB,SAASA,MAAmB,aAC1C,EACL,GAAGG,GACH,iBAAiB,MAAM,QAAQd,EAAQ,IAAI,IACvCA,EAAQ,KAAK,IAAI,CAACe,IAAGC,MACnBpC,EAAU8B,EAAQM,IAAYN,EAAQ,MAAM,GAAG,IAAI,CACrD,IACA7B,GACJ,aAAa,MAAM,QAAQmB,EAAQ,IAAI,IACnCA,EAAQ,KAAK,IAAI,CAACe,IAAGC,MACnBpC,EAAU8B,EAAQM,IAAYN,EAAQ,MAAM,GAAG,CAAC,CAClD,IACA7B,GACJ,aAAa,EACf,IAGE8B,MAAmB,aAAaA,MAAmB,WAC9C,EACL,GAAGG,GACH,UAAU,OACV,iBAAiBlC,EAAUiC,GAAM,IAAI,EACvC,IAGKC;IACT,CAAC,EACH,GAEMG,IAAc,EAClB,YAAY,MACZ,qBAAqB,OACrB,WAAW,EACT,UAAU,IACZ,GACA,aAAa,EACX,MAAM,WACN,WAAW,KACb,GACA,SAAS,EACP,QAAQ,EACN,SAAS,KAAK,WAAW,QACzB,UAAU,KAAK,WAAW,SAAS,QAAQ,KAAK,QAChD,QAAQ,EACN,OAAOX,GACP,UAAU,IACV,WAAW,IACX,SAAS,IACT,MAAM,EACJ,QAAQG,GACR,MAAM,GACR,EACF,EACF,GACA,SAAS,EACP,iBAAiB,0BACjB,aAAaS,GAASV,GAAQxB,GAAQ,IAAI,GAC1C,aAAa,GACb,YAAYsB,GACZ,WAAWA,GACX,aAAaC,GACb,WAAW,EAAE,QAAQE,GAAM,MAAM,GAAG,GACpC,UAAU,EAAE,QAAQA,GAAM,MAAM,GAAG,GACnC,SAAS,GACX,EACF,GACA,QAAQf,GAAgB,KAAK,IAAI,IAC7B,EACE,GAAG,EACD,SAAS,KAAK,SACd,MAAM,EAAE,SAAS,OAAO,OAAOc,EAAO,GACtC,QAAQ,EAAE,OAAOA,EAAO,GACxB,OAAO,EACL,OAAOD,GACP,MAAM,EAAE,QAAQE,GAAM,MAAM,GAAG,EACjC,EACF,GACA,GAAG,EACD,SAAS,KAAK,SACd,aAAa,MACb,MAAM,EAAE,SAAS,OAAO,OAAOD,EAAO,GACtC,QAAQ,EAAE,OAAOA,EAAO,GACxB,OAAO,EACL,OAAOD,GACP,MAAM,EAAE,QAAQE,GAAM,MAAM,GAAG,EACjC,EACF,EACF,IACAE,MAAmB,UACjB,EACE,GAAG,EACD,YAAY,EAAE,OAAOH,EAAO,GAC5B,MAAM,EAAE,OAAOA,EAAO,GACtB,aAAa,EACX,OAAOD,GACP,MAAM,EAAE,QAAQE,GAAM,MAAM,GAAG,EACjC,GACA,OAAO,EACL,OAAOF,GACP,eAAe,eACf,MAAM,EAAE,QAAQE,GAAM,MAAM,GAAG,EACjC,EACF,EACF,IACA,OACR;AAEA,WAAO,EACL,MAAME,GACN,MAAMC,GACN,SAASzB,GAAU8B,GAAa,KAAK,oBAAoB,CAAC,CAAC,EAC7D;EACF;EAEQ,WAAWE,GAA8B;AAC/C,QAAI,CAACA,GAAS;AACZ,WAAK,QAAQ,SAAS;AACtB;IACF;AAEA,SAAK,QAAQ,SAAS,OACtB,KAAK,QAAQ,cAAcA;EAC7B;AACF;AAEA,SAASD,GAASE,GAAiBC,GAAmBC,GAAwB;AAC5E,MAAMC,IAAQvD,EAAgBoD,CAAO,GAC/BI,IAASxD,EAAgBqD,CAAS;AACxC,MAAI,CAACE,KAAS,CAACC,EACb,QAAOJ;AAGT,MAAMK,IAAQ9D,EAAM2D,GAAQ,GAAG,CAAC,GAC1BI,MAAeF,EAAO,IAAID,EAAM,KAAK,MAAO,OAAO,MAAO;AAChE,SAAO3C,EAAU,EACf,IAAI2C,EAAM,IAAIG,IAAWD,IAAQ,OAAO,KACxC,GAAGF,EAAM,KAAKC,EAAO,IAAID,EAAM,KAAKE,GACpC,GAAGF,EAAM,KAAKC,EAAO,IAAID,EAAM,KAAKE,EACtC,CAAC;AACH;AC9iBA,IAAOE,KAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACcf,IAAIrE,IAA+C;AAE5C,SAASsE,KAAuC;AACrD,SAAI,OAAO,aACF,QAAQ,QAAQ,OAAO,UAAU,IAGtCtE,MAIJA,IAAc,IAAI,QAAQ,CAACE,GAASC,MAAW;AAC7C,QAAMC,IAAS,SAAS,cAAc,QAAQ;AAC9CA,MAAO,MAAM,qBACbA,EAAO,QAAQ,MACfA,EAAO,QAAQ,WAAW,QAC1BA,EAAO,SAAS,MAAM;AACpB,UAAI,OAAO,YAAY;AACrBF,UAAQ,OAAO,UAAU;AACzB;MACF;AAEAC,QAAO,IAAI,MAAM,oDAAoD,CAAC;IACxE,GACAC,EAAO,UAAU,MAAMD,EAAO,IAAI,MAAM,2CAA2C,CAAC,GACpF,SAAS,KAAK,YAAYC,CAAM;EAClC,CAAC,GAEMJ;AACT;ACnCA,SAASuE,GAAqBhK,GAAuB;AACnD,SAAOA,EAAM,WAAW;GAAQ;CAAI;AACtC;AAEA,SAASiK,GAAYjK,GAAuB;AAC1C,MAAMkK,IAAQF,GAAqBhK,CAAK,EAAE,MAAM;CAAI;AAEpD,SAAOkK,EAAM,SAAS,KAAKA,EAAM,CAAC,EAAE,KAAK,MAAM,KAC7CA,GAAM,MAAM;AAGd,SAAOA,EAAM,SAAS,KAAKA,EAAMA,EAAM,SAAS,CAAC,EAAE,KAAK,MAAM,KAC5DA,GAAM,IAAI;AAGZ,MAAMC,IAAUD,EACb,OAAQE,OAASA,EAAK,KAAK,MAAM,EAAE,EACnC,IAAKA,OAASA,EAAK,MAAM,MAAM,IAAI,CAAC,EAAE,UAAU,CAAC,GAC9CC,IAAYF,EAAQ,SAAS,IAAI,KAAK,IAAI,GAAGA,CAAO,IAAI;AAE9D,SAAIE,MAAc,IACTH,EAAM,KAAK;CAAI,IAGjBA,EAAM,IAAKE,OAASA,EAAK,MAAMC,CAAS,CAAC,EAAE,KAAK;CAAI;AAC7D;AAEA,SAASC,GAAqBtK,GAAuB;AACnD,MAAM6C,IAAamH,GAAqBhK,CAAK;AAE7C,OADoB6C,EAAW,MAAM,kBAAkB,KAAK,CAAC,GAAG,SAC/C,MAAM,EACrB,QAAOA;AAGT,MAAM0H,IAAe1H,EAAW,SAAS,KAAK,KAAK,CAACA,EAAW,SAAS,KAAK,IAAI,QAAQ;AACzF,SAAO,GAAGA,CAAU;EAAK0H,CAAY;AACvC;AAoBO,IAAMC,IAAN,cAAyB,YAAY;EACzB;EACA;EACT,mBAAkC;EAClC,WAAmC;EACnC,eAAgD;EAChD,YAAqC;EACrC,eAAe;EAEvB,WAAW,qBAA+B;AACxC,WAAO,CAAC,aAAa,aAAa;EACpC;EAEA,IAAI,UAAkB;AACpB,WAAO,KAAK,oBAAoB,KAAK,oBAAoB;EAC3D;EAEA,IAAI,QAAQxK,GAAe;AACzB,SAAK,mBAAmB,OAAOA,KAAS,EAAE,GAC1C,KAAK,gBAAgB;EACvB;EAEA,IAAI,YAAqB;AACvB,WAAO,KAAK,aAAa,WAAW;EACtC;EAEA,IAAI,UAAUA,GAAgB;AAC5B,SAAK,gBAAgB,aAAaA,CAAK;EACzC;EAEA,IAAI,aAAsB;AACxB,WAAO,KAAK,aAAa,aAAa;EACxC;EAEA,IAAI,WAAWA,GAAgB;AAC7B,SAAK,gBAAgB,eAAeA,CAAK;EAC3C;EAEA,cAAc;AACZ,UAAM;AACN,QAAMnD,IAAS,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC,GAE3CH,IAAQ,SAAS,cAAc,OAAO;AAC5CA,MAAM,cAAcoN,IACpBjN,EAAO,YAAYH,CAAK,GAExB,KAAK,QAAQ,SAAS,cAAc,KAAK,GACzC,KAAK,MAAM,YAAY,eACvB,KAAK,MAAM,iBAAiB,SAAS,KAAK,YAAY,GAEtD,KAAK,SAAS,SAAS,cAAc,MAAM,GAC3C,KAAK,OAAO,YAAY,sBACxB,KAAK,OAAO,cAAc,UAC1B,KAAK,OAAO,SAAS,MAErBG,EAAO,OAAO,KAAK,OAAO,KAAK,MAAM;EACvC;EAEA,oBAA0B;AACnB,SAAK,cACR,KAAK,YAAY,IAAI,iBAAiB,MAAM;AACtC,WAAK,qBAAqB,QAC5B,KAAK,gBAAgB;IAEzB,CAAC,GAED,KAAK,UAAU,QAAQ,MAAM,EAC3B,WAAW,MACX,eAAe,MACf,SAAS,KACX,CAAC,IAGE,KAAK,eAAe,GACzB,KAAK,gBAAgB;EACvB;EAEA,uBAA6B;AAC3B,SAAK,WAAW,WAAW,GAC3B,KAAK,YAAY,MACb,KAAK,iBAAiB,MACxB,qBAAqB,KAAK,YAAY,GACtC,KAAK,eAAe;EAExB;EAEA,2BAAiC;AAC/B,SAAK,gBAAgB;EACvB;EAEQ,eAAgBwH,OAAuB;AAE7C,QAAMoG,IADOpG,EAAM,aAAa,EACZ,KAAMN,OAAUA,aAAiB,iBAAiB;AAGjE0G,UAILpG,EAAM,eAAe,GACrB,KAAK,cACH,IAAI,YAAuC,iBAAiB,EAC1D,SAAS,MACT,UAAU,MACV,QAAQ,EAAE,MAAMoG,EAAO,aAAa,MAAM,KAAK,IAAI,EACrD,CAAC,CACH;EACF;EAEQ,sBAA8B;AACpC,WAAOR,GAAY,KAAK,eAAe,EAAE;EAC3C;EAEQ,kBAAwB;AAC1B,SAAK,iBAAiB,MAI1B,KAAK,eAAe,sBAAsB,MAAM;AAC9C,WAAK,eAAe,GACf,KAAK,QAAQ;IACpB,CAAC;EACH;EAEA,MAAc,iBAA2C;AACvD,WAAI,KAAK,WACA,KAAK,YAGT,KAAK,iBACR,KAAK,eAAeF,GAAW,EAAE,KAAM3B,QACrC,KAAK,WAAWA,GACTA,EACR,IAGI,KAAK;EACd;EAEA,MAAc,UAAyB;AACrC,QAAMA,IAAU,MAAM,KAAK,eAAe,GACtCsC,IAAW,KAAK;AAEhB,SAAK,cACPA,IAAWJ,GAAqBI,CAAQ,IAG1C,KAAK,MAAM,YAAYtC,EAAQ,OAAOsC,GAAU,EAC9C,YAAY,KAAK,WACnB,CAAC,GACD,KAAK,OAAO,SAAS,CAAC,KAAK;EAC7B;AACF;ACxNA,IAAOC,KAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACYf,IAAIlF,IAAiD;AAE9C,SAASmF,KAA2C;AACzD,SAAI,OAAO,eACF,QAAQ,QAAQ,OAAO,YAAY,IAGxCnF,MAIJA,IAAc,IAAI,QAAQ,CAACE,GAASC,MAAW;AAC7C,QAAMC,IAAS,SAAS,cAAc,QAAQ;AAC9CA,MAAO,MAAM,2BACbA,EAAO,QAAQ,MACfA,EAAO,QAAQ,aAAa,QAC5BA,EAAO,SAAS,MAAM;AACpB,UAAI,OAAO,cAAc;AACvBF,UAAQ,OAAO,YAAY;AAC3B;MACF;AAEAC,QAAO,IAAI,MAAM,wDAAwD,CAAC;IAC5E,GACAC,EAAO,UAAU,MAAMD,EAAO,IAAI,MAAM,6CAA6C,CAAC,GACtF,SAAS,KAAK,YAAYC,CAAM;EAClC,CAAC,GAEMJ;AACT;ACbO,IAAMoF,IAAN,cAA+B,YAAY;EAC/B;EACA;EACA;EACA;EACT,WAAqC;EACrC,eAAkD;EAClD,UAAkD;EAClD,gBAAgB;EAChB,eAAqD;EACrD,cAAc;EACd,sBAAsB;EAE9B,WAAW,qBAA+B;AACxC,WAAO,CAAC,eAAe,UAAU;EACnC;EAEA,IAAI,cAAsB;AACxB,WAAO,KAAK,aAAa,aAAa,KAAK;EAC7C;EAEA,IAAI,YAAY7K,GAAe;AAC7B,SAAK,aAAa,eAAeA,CAAK;EACxC;EAEA,IAAI,WAAoB;AACtB,WAAO,KAAK,aAAa,UAAU;EACrC;EAEA,IAAI,SAASA,GAAgB;AAC3B,SAAK,gBAAgB,YAAYA,CAAK;EACxC;EAEA,IAAI,QAAgB;AAClB,WAAI,KAAK,YACP,KAAK,gBAAgB,KAAK,QAAQ,YAAY,IAGzC,KAAK;EACd;EAEA,IAAI,MAAMA,GAAe;AACvB,QAAM8K,IAAY,OAAO9K,KAAS,EAAE;AACpC,SAAK,gBAAgB8K,GAEjB,KAAK,WAAW,KAAK,YAAY,KAAK,QAAQ,YAAY,MAAMA,MAClE,KAAK,sBAAsB,MAC3B,KAAK,QAAQ,OAAO,OAAO,KAAK,SAAS,WAAWA,CAAS,CAAC;EAElE;EAEA,cAAc;AACZ,UAAM;AACN,QAAMjO,IAAS,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC,GAE3CH,IAAQ,SAAS,cAAc,OAAO;AAC5CA,MAAM,cAAciO,IACpB9N,EAAO,YAAYH,CAAK,GAExB,KAAK,gBAAgB,SAAS,cAAc,OAAO,GACnDG,EAAO,YAAY,KAAK,aAAa,GAErC,KAAK,WAAW,SAAS,cAAc,KAAK,GAC5C,KAAK,SAAS,YAAY,sBAE1B,KAAK,WAAW,SAAS,cAAc,KAAK,GAC5C,KAAK,SAAS,YAAY;AAE1B,QAAMkO,IAAQ,SAAS,cAAc,KAAK;AAC1CA,MAAM,YAAY,+BAClB,KAAK,SAAS,YAAYA,CAAK,GAE/B,KAAK,UAAU,SAAS,cAAc,KAAK,GAC3C,KAAK,QAAQ,YAAY,8BACzB,KAAK,QAAQ,cAAc,kBAE3B,KAAK,SAAS,OAAO,KAAK,UAAU,KAAK,OAAO,GAChDlO,EAAO,YAAY,KAAK,QAAQ;EAClC;EAEA,oBAA0B;AACnB,SAAK,kBAAkB;EAC9B;EAEA,uBAA6B;AAC3B,SAAK,eAAe,GACpB,KAAK,kBAAkB,GAClB,KAAK,eAAe;EAC3B;EAEA,yBAAyBC,GAAoB;AAC3C,QAAIA,MAAS,YAAY;AACvB,WAAK,SAAS,YAAY,KAAK,QAAQ;AACvC;IACF;AAEIA,UAAS,iBAAiB,KAAK,eAC5B,KAAK,kBAAkB,IAAI;EAEpC;EAEA,MAAc,iBAA6C;AACzD,WAAI,KAAK,WACA,KAAK,YAGT,KAAK,iBACR,KAAK,eAAe8N,GAAa,EAAE,KAAMxC,QACvC,KAAK,WAAWA,GAChB,KAAK,cAAc,cAAcA,EAAQ,SAClCA,EACR,IAGI,KAAK;EACd;EAEA,MAAc,kBAAkB4C,IAAQ,OAAsB;AAC5D,QAAMC,IAAa,EAAE,KAAK;AAG1B,QAFA,KAAK,WAAW,gBAAgB,GAE5BD,EACF,OAAM,KAAK,eAAe;aACjB,KAAK,SAAS;AACvB,WAAK,WAAW,IAAI;AACpB;IACF;AAEA,QAAI;AACF,UAAM5C,IAAU,MAAM,KAAK,eAAe;AAC1C,UAAI,CAAC,KAAK,eAAe6C,MAAe,KAAK,YAC3C;AAGF,WAAK,SAAS,gBAAgB;AAC9B,UAAMF,IAAQ,SAAS,cAAc,KAAK;AAC1CA,QAAM,YAAY,+BAClB,KAAK,SAAS,YAAYA,CAAK;AAE/B,UAAMG,IAAS,IAAI9C,EAAQ,MAAM,EAC/B,MAAM2C,GACN,cAAc,KAAK,eACnB,UAAU,EACR,CAAC3C,EAAQ,MAAM,QAAQ,UAAU,GAAG,OACpC,CAACA,EAAQ,MAAM,QAAQ,UAAU,GAAG,OACpC,CAACA,EAAQ,MAAM,QAAQ,KAAK,GAAG,MACjC,GACA,gBAAgB,EACd,CAACA,EAAQ,MAAM,QAAQ,WAAW,GAAG,EACnC,MAAM,KAAK,aACX,MAAM,MACR,EACF,EACF,CAAC;AAqBD,UAnBA8C,EAAO,GAAIC,OAAa;AACtBA,UAAS,gBAAgB,CAACC,GAAMV,MAAa;AAE3C,cADA,KAAK,gBAAgBA,GACjB,KAAK,qBAAqB;AAC5B,iBAAK,sBAAsB;AAC3B;UACF;AACA,eAAK,aAAaA,CAAQ;QAC5B,CAAC,GACDS,EAAS,MAAM,MAAM;AACnB,eAAK,cAAc,IAAI,YAAY,YAAY,EAAE,SAAS,MAAM,UAAU,KAAK,CAAC,CAAC;QACnF,CAAC,GACDA,EAAS,KAAK,MAAM;AAClB,eAAK,cAAc,IAAI,YAAY,WAAW,EAAE,SAAS,MAAM,UAAU,KAAK,CAAC,CAAC;QAClF,CAAC;MACH,CAAC,GAED,MAAMD,EAAO,OAAO,GAEhB,CAAC,KAAK,eAAeD,MAAe,KAAK,aAAa;AACxD,cAAMC,EAAO,QAAQ;AACrB;MACF;AAEA,WAAK,UAAUA,GACf,KAAK,QAAQ,YAAY,KAAK,QAAQ,GACtC,KAAK,gBAAgB,KAAK,QAAQ,YAAY,GAC9C,KAAK,WAAW,IAAI;IACtB,QAAQ;AACFD,YAAe,KAAK,eACtB,KAAK,WAAW,uBAAuB;IAE3C;EACF;EAEA,MAAc,iBAAgC;AAC5C,QAAMC,IAAS,KAAK;AAEpB,QADA,KAAK,UAAU,MACX,CAAA,CAACA,EAIL,KAAI;AACF,YAAMA,EAAO,QAAQ;IACvB,QAAQ;IAER;EACF;EAEQ,aAAaR,GAAwB;AAC3C,SAAK,kBAAkB,GACvB,KAAK,eAAe,WAAW,MAAM;AACnC,WAAK,eAAe,MACpB,KAAK,cACH,IAAI,YAA0C,aAAa,EACzD,SAAS,MACT,UAAU,MACV,QAAQ,EAAE,OAAOA,EAAS,EAC5B,CAAC,CACH;IACF,GAAG,GAAG;EACR;EAEQ,oBAA0B;AAC5B,SAAK,iBACP,aAAa,KAAK,YAAY,GAC9B,KAAK,eAAe;EAExB;EAEQ,WAAWpB,GAA8B;AAC/C,QAAIA,GAAS;AACX,WAAK,QAAQ,SAAS,OACtB,KAAK,QAAQ,cAAcA;AAC3B;IACF;AAEA,SAAK,QAAQ,SAAS;EACxB;AACF;AC3NK,eAAe,IAAI,YAAY,KAClC,eAAe,OAAO,cAAc3M,CAAS;AAG1C,eAAe,IAAI,SAAS,KAC/B,eAAe,OAAO,WAAWmB,CAAM;AAGpC,eAAe,IAAI,WAAW,KACjC,eAAe,OAAO,aAAaY,CAAQ;AAGxC,eAAe,IAAI,SAAS,KAC/B,eAAe,OAAO,WAAWkB,CAAM;AAGpC,eAAe,IAAI,UAAU,KAChC,eAAe,OAAO,YAAYK,CAAO;AAGtC,eAAe,IAAI,SAAS,KAC/B,eAAe,OAAO,WAAWM,CAAM;AAGpC,eAAe,IAAI,UAAU,KAChC,eAAe,OAAO,YAAYQ,CAAO;AAGtC,eAAe,IAAI,WAAW,KACjC,eAAe,OAAO,aAAaI,CAAQ;AAGxC,eAAe,IAAI,YAAY,KAClC,eAAe,OAAO,cAAcG,CAAS;AAG1C,eAAe,IAAI,cAAc,KACpC,eAAe,OAAO,gBAAgByD,CAAU;AAG7C,eAAe,IAAI,eAAe,KACrC,eAAe,OAAO,iBAAiBnB,CAAW;AAG/C,eAAe,IAAI,WAAW,KACjC,eAAe,OAAO,aAAaD,CAAQ;AAGxC,eAAe,IAAI,UAAU,KAChC,eAAe,OAAO,YAAYqE,CAAO;AAGtC,eAAe,IAAI,aAAa,KACnC,eAAe,OAAO,eAAewC,CAAU;AAG5C,eAAe,IAAI,oBAAoB,KAC1C,eAAe,OAAO,sBAAsBK,CAAgB;;;ACpG9D;AAAA,EAAC,MAAAQ;AAAA,EASA,aAAAC;AAAA,EAIA,SAAAC;AAAA,EAWA,eAAAC;AAAA,EAUA,cAAAC;AAAA,EAoBA;AAAA,EASA,cAAAC;AAAA,EAMA,cAAAC;AAAA,EAOA,eAAAC;AAAA,EAOA,SAAAC;AAAA,EAIA,cAAAC;AAAA,EAYA,KAAAC;AAAA,EAaA,SAAAC;AAAA,EAKA,UAAAC;AAAA,EAOA,gBAAAC;AAAA,EAMA,iBAAAC;AAAA,EAaA,YAAAC;AAAA,EAOA,eAAAC;AAAA,EAQA,qBAAAC;AAAA,EAOA,cAAAC;AAAA,EAMA,cAAAC;AAAA,EASA,kBAAAC;AAAA,EAMA,oBAAAC;AAAA,EAOA,sBAAAC;AAAA,EAMA,mBAAAC;AAAA,EAOA,sBAAAC;AAAA,EAWA,qBAAAC;AAAA,EAOA,0BAAAC;AAAA,EACA,oBAAAC;AAAA,EASA,mBAAAC;AAAA,EAMA,eAAAC;AAAA,EAOA,oBAAAC;AAAA,EASA,oBAAAC;AAAA,EASA,YAAAC;AAAA,EASA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EA8BA;AAAA,EAsBA,cAAAC;AAAA,EAMA,YAAAC;AAAA,EAUA,QAAAC;AAAA,EAQA,aAAAC;AAAA,EAOA,aAAAC;AAAA,EAgBA,YAAAC;AAAA,EAgBA,cAAAC;AAAA,EAcY,SAAAC;AAAA;;;ACrZb,IAAIC,QAAO,OAAO;AAEX,IAAI,MAAMC,MAAK;AACf,IAAI,OAAOA,MAAK;AAChB,IAAI,SAASA,MAAK;AAClB,IAAIC,YAAWD,MAAK;;;ACA3B,IAAM,iBAA2C;AAAA,EAC/C,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,IAAI;AAAA,EACJ,OAAO;AACT;AAQO,SAAS,uBAAuB;AAAA,EACrC;AAAA,EACA;AAAA,EACA,UAAU;AACZ,GAAgC;AAC9B,SACE,qBAAC,SAAI,WAAW,sBAAO,SACrB;AAAA,wBAAC,SAAI,WAAW,sBAAO,eAAe,sBAAQ;AAAA,IAC7C,WAAW,IAAI,CAAC,aAAa;AAC5B,YAAM,SACJ;AAAA,QAAC;AAAA;AAAA,UAEC,WACE,aAAa,iBAAiB,sBAAO,qBAAqB,sBAAO;AAAA,UAEnE,SAAS,MAAM,SAAS,QAAQ;AAAA,UAChC,MAAK;AAAA,UACL,cAAY,UAAU,WAAW;AAAA,UAEjC;AAAA,gCAAC,UAAK,WAAW,sBAAO,cAAe,yBAAe,QAAQ,GAAE;AAAA,YAC/D,CAAC,WAAW,oBAAC,UAAK,WAAW,sBAAO,cAAe,oBAAS;AAAA;AAAA;AAAA,QATxD;AAAA,MAUP;AAGF,UAAI,SAAS;AACX,eACE,oBAAC,gBAA0B,SAAS,UAAU,WAAU,UACrD,oBADc,QAEjB;AAAA,MAEJ;AAEA,aAAO;AAAA,IACT,CAAC;AAAA,KACH;AAEJ;;;ACrCO,SAAS,eAAe,EAAE,QAAQ,SAAS,GAAwB;AACxE,QAAM,mBAAmB,QAAQ,MAAM;AACrC,UAAM,YAAY,wBAAwB,OAAO,qBAAqB,CAAC;AACvE,UAAM,kBACJ,OAAO,OAAO,oBAAoB,MAAM,YAAY,OAAO,oBAAoB,IAC3E,OAAO,OAAO,oBAAoB,CAAC,IACnC;AAEN,QAAI,CAAC,UAAU,SAAS,eAAe,GAAG;AACxC,gBAAU,QAAQ,eAAe;AAAA,IACnC;AAEA,WAAO;AAAA,EACT,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,cAAc;AAAA,IAClB,OAAO,gBAA0B;AAC/B,YAAM,gBAAgB,YAAY,SAAS,IAAI,cAAc,CAAC,sBAAsB;AACpF,YAAM,SAAS,uBAAuB,4BAA4B,aAAa,CAAC;AAChF,YAAM,SAAS,sBAAsB,cAAc,CAAC,CAAC;AAAA,IACvD;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,QAAM,oBAAoB,YAAY,YAAY;AAChD,UAAM,eAAe,wBAAwB;AAAA,MAC3C,CAAC,aAAa,CAAC,iBAAiB,SAAS,SAAS,EAAE;AAAA,IACtD;AACA,QAAI,CAAC,cAAc;AACjB;AAAA,IACF;AAEA,UAAM,YAAY,CAAC,GAAG,kBAAkB,aAAa,EAAE,CAAC;AAAA,EAC1D,GAAG,CAAC,kBAAkB,WAAW,CAAC;AAElC,QAAM,uBAAuB;AAAA,IAC3B,OAAO,YAAoB,mBAA2B;AACpD,UAAI,eAAe,kBAAkB,iBAAiB,SAAS,cAAc,GAAG;AAC9E;AAAA,MACF;AAEA,YAAM,gBAAgB,iBAAiB;AAAA,QAAI,CAAC,sBAC1C,sBAAsB,aAAa,iBAAiB;AAAA,MACtD;AACA,YAAM,YAAY,aAAa;AAAA,IACjC;AAAA,IACA,CAAC,kBAAkB,WAAW;AAAA,EAChC;AAEA,QAAM,uBAAuB;AAAA,IAC3B,OAAO,eAAuB;AAC5B,UAAI,iBAAiB,WAAW,GAAG;AACjC;AAAA,MACF;AAEA,YAAM,gBAAgB,iBAAiB;AAAA,QACrC,CAAC,sBAAsB,sBAAsB;AAAA,MAC/C;AACA,YAAM,YAAY,aAAa;AAE/B,iBAAW,OAAO,wBAAwB,UAAU,GAAG;AACrD,cAAM,SAAS,KAAK,EAAE;AAAA,MACxB;AAAA,IACF;AAAA,IACA,CAAC,kBAAkB,UAAU,WAAW;AAAA,EAC1C;AAEA,QAAM,mBAAmB;AAAA,IACvB,OAAO,eAAuB;AAC5B,UAAI,iBAAiB,CAAC,MAAM,YAAY;AACtC;AAAA,MACF;AAEA,YAAM,gBAAgB;AAAA,QACpB;AAAA,QACA,GAAG,iBAAiB,OAAO,CAAC,sBAAsB,sBAAsB,UAAU;AAAA,MACpF;AACA,YAAM,YAAY,aAAa;AAAA,IACjC;AAAA,IACA,CAAC,kBAAkB,WAAW;AAAA,EAChC;AAEA,SACE,qBAAC,SAAI,WAAW,sBAAO,eACrB;AAAA,yBAAC,SAAI,WAAW,sBAAO,qBACrB;AAAA,2BAAC,SACC;AAAA,4BAAC,SAAI,WAAW,sBAAO,UAAU,uBAAS;AAAA,QAC1C,oBAAC,SAAI,WAAW,sBAAO,gBAAgB,iGAEvC;AAAA,SACF;AAAA,MACA,oBAAC,SAAI,WAAW,sBAAO,0BACrB;AAAA,QAAC;AAAA;AAAA,UACC,SAAS;AAAA,UACT,UAAU,iBAAiB,UAAU,wBAAwB;AAAA,UAC7D,SAAQ;AAAA,UACT;AAAA;AAAA,MAED,GACF;AAAA,OACF;AAAA,IAEA,oBAAC,SAAI,WAAW,sBAAO,cACpB,2BAAiB,IAAI,CAAC,YAAY,UAAU;AAC3C,YAAM,aAAa,wBAAwB,UAAU;AACrD,UAAI,CAAC,YAAY;AACf,eAAO;AAAA,MACT;AAEA,YAAM,mBAAmB,wBAAwB;AAAA,QAC/C,CAAC,aAAa,SAAS,OAAO,cAAc,CAAC,iBAAiB,SAAS,SAAS,EAAE;AAAA,MACpF;AAEA,aACE,oBAAC,SAAqB,WAAW,sBAAO,cACtC,8BAAC,aAAQ,SAAQ,YACf,+BAAC,SAAI,WAAW,sBAAO,kBACrB;AAAA,6BAAC,SAAI,WAAW,sBAAO,oBACrB;AAAA,+BAAC,SAAI,WAAW,sBAAO,sBACrB;AAAA,gCAAC,SAAI,WAAW,sBAAO,mBAAoB,qBAAW,OAAM;AAAA,YAC3D,UAAU,KAAK,oBAAC,UAAK,WAAW,sBAAO,sBAAsB,qBAAO;AAAA,aACvE;AAAA,UACA,qBAAC,SAAI,WAAW,sBAAO,qBACrB;AAAA,gCAAC,SAAI,WAAW,sBAAO,oBACrB;AAAA,cAAC;AAAA;AAAA,gBACC,SAAS,MAAM,iBAAiB,UAAU;AAAA,gBAC1C,UAAU,UAAU;AAAA,gBACpB,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACN;AAAA;AAAA,YAED,GACF;AAAA,YACA,oBAAC,SAAI,WAAW,sBAAO,oBACrB;AAAA,cAAC;AAAA;AAAA,gBACC,SAAS,MAAM,qBAAqB,UAAU;AAAA,gBAC9C,UAAU,iBAAiB,WAAW;AAAA,gBACtC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACN;AAAA;AAAA,YAED,GACF;AAAA,aACF;AAAA,WACF;AAAA,QAEA,qBAAC,SAAI,WAAW,sBAAO,mBACrB;AAAA,+BAAC,SAAI,WAAW,sBAAO,eACrB;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAW,sBAAO;AAAA,gBAClB,SAAS,eAAe,UAAU;AAAA,gBACnC;AAAA;AAAA,YAED;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO;AAAA,gBACP,SAAS,iBAAiB,IAAI,CAAC,cAAc;AAAA,kBAC3C,OAAO,SAAS;AAAA,kBAChB,OAAO,SAAS;AAAA,gBAClB,EAAE;AAAA,gBACF,UAAU,CAAC,cAAc,qBAAqB,YAAY,SAAS;AAAA;AAAA,YACrE;AAAA,aACF;AAAA,UAEC,WAAW,kBACV;AAAA,YAAC;AAAA;AAAA,cACC,IAAI,mBAAmB,UAAU;AAAA,cACjC,OAAM;AAAA,cACN,OAAO,OAAO,OAAO,gBAAgB,UAAU,SAAS,KAAK,EAAE;AAAA,cAC/D,WAAS;AAAA,cACT,UAAU,CAAC,UAAU,SAAS,gBAAgB,UAAU,WAAW,KAAK;AAAA;AAAA,UAC1E;AAAA,UAGF;AAAA,YAAC;AAAA;AAAA,cACC,IAAI,qBAAqB,UAAU;AAAA,cACnC,OAAM;AAAA,cACN,OAAO,OAAO,OAAO,gBAAgB,UAAU,QAAQ,KAAK,EAAE;AAAA,cAC9D,UAAU,CAAC,UAAU,SAAS,gBAAgB,UAAU,UAAU,KAAK;AAAA;AAAA,UACzE;AAAA,UAEC,WAAW,mBACV;AAAA,YAAC;AAAA;AAAA,cACC,IAAI,wBAAwB,UAAU;AAAA,cACtC,OAAM;AAAA,cACN,OAAO,OAAO,OAAO,gBAAgB,UAAU,UAAU,KAAK,EAAE;AAAA,cAChE,UAAU,CAAC,UAAU,SAAS,gBAAgB,UAAU,YAAY,KAAK;AAAA;AAAA,UAC3E;AAAA,WAEJ;AAAA,SACF,GACF,KA7EQ,UA8EV;AAAA,IAEJ,CAAC,GACH;AAAA,KACF;AAEJ;AAgBA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA,WAAW;AAAA,EACX,UAAU;AAAA,EACV,OAAO;AAAA,EACP;AACF,GAAwB;AACtB,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAA6B,IAAI;AAE3E,YAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AAEA,UAAM,cAAc,MAAM;AACxB,WAAK,QAAQ;AAAA,IACf;AAEA,kBAAc,iBAAiB,SAAS,WAAW;AACnD,WAAO,MAAM,cAAc,oBAAoB,SAAS,WAAW;AAAA,EACrE,GAAG,CAAC,eAAe,OAAO,CAAC;AAE3B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,KAAK,CAAC,YAAgC,iBAAiB,OAAO;AAAA,MAC9D;AAAA,MACA;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;AASA,SAAS,eAAe,EAAE,OAAO,SAAS,WAAW,OAAO,SAAS,GAAwB;AAC3F,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAiC,IAAI;AAE/E,YAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AAEA,kBAAc,UAAU;AAAA,EAC1B,GAAG,CAAC,SAAS,aAAa,CAAC;AAE3B,YAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AAEA,kBAAc,QAAQ;AAAA,EACxB,GAAG,CAAC,eAAe,KAAK,CAAC;AAEzB,YAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AAEA,kBAAc,WAAW;AAAA,EAC3B,GAAG,CAAC,UAAU,aAAa,CAAC;AAE5B,YAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AAEA,UAAM,eAAe,CAAC,UAAiB;AACrC,WAAK,SAAU,MAAyC,OAAO,KAAK;AAAA,IACtE;AAEA,kBAAc,iBAAiB,aAAa,YAAY;AACxD,WAAO,MAAM,cAAc,oBAAoB,aAAa,YAAY;AAAA,EAC1E,GAAG,CAAC,UAAU,aAAa,CAAC;AAE5B,SACE,oBAAC,SAAI,WAAW,sBAAO,oBACrB,8BAAC,eAAU,KAAK,CAAC,YAAoC,iBAAiB,OAAO,GAAG,GAClF;AAEJ;AAUA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ;AACF,GAA2B;AACzB,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAElD,YAAU,MAAM;AACd,kBAAc,KAAK;AAAA,EACrB,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,SAAS,YAAY,MAAM;AAC/B,QAAI,eAAe,OAAO;AACxB,WAAK,SAAS,UAAU;AAAA,IAC1B;AAAA,EACF,GAAG,CAAC,YAAY,UAAU,KAAK,CAAC;AAEhC,SACE,qBAAC,SAAI,WAAW,sBAAO,eACrB;AAAA,wBAAC,WAAM,WAAW,sBAAO,oBAAoB,SAAS,IACnD,iBACH;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAM,YAAY,aAAa;AAAA,QAC/B,WAAW,YAAY,sBAAO,qBAAqB,sBAAO;AAAA,QAC1D,OAAO;AAAA,QACP,UAAU,CAAC,UAAU,cAAc,MAAM,OAAO,KAAK;AAAA,QACrD,QAAQ;AAAA,QACR,WAAW,CAAC,UAAU;AACpB,cAAI,MAAM,QAAQ,SAAS;AACzB,mBAAO;AAAA,UACT;AAAA,QACF;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;;;ACvVO,SAAS,kBAAkB,EAAE,QAAQ,SAAS,GAA2B;AAC9E,QAAM,mBAAmB,QAAQ,MAAM;AACrC,UAAM,YAAY,2BAA2B,OAAO,wBAAwB,CAAC;AAC7E,UAAM,kBACJ,OAAO,OAAO,uBAAuB,MAAM,YAAY,OAAO,uBAAuB,IACjF,OAAO,OAAO,uBAAuB,CAAC,IACtC;AAEN,QAAI,CAAC,UAAU,SAAS,eAAe,GAAG;AACxC,gBAAU,QAAQ,eAAe;AAAA,IACnC;AAEA,WAAO;AAAA,EACT,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,cAAc;AAAA,IAClB,OAAO,gBAA0B;AAC/B,YAAM,gBAAgB,YAAY,SAAS,IAAI,cAAc,CAAC,yBAAyB;AACvF,YAAM,SAAS,0BAA0B,+BAA+B,aAAa,CAAC;AACtF,YAAM,SAAS,yBAAyB,cAAc,CAAC,CAAC;AAAA,IAC1D;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,QAAM,oBAAoB,YAAY,YAAY;AAChD,UAAM,eAAe,2BAA2B;AAAA,MAC9C,CAAC,aAAa,CAAC,iBAAiB,SAAS,SAAS,EAAE;AAAA,IACtD;AACA,QAAI,CAAC,cAAc;AACjB;AAAA,IACF;AAEA,UAAM,YAAY,CAAC,GAAG,kBAAkB,aAAa,EAAE,CAAC;AAAA,EAC1D,GAAG,CAAC,kBAAkB,WAAW,CAAC;AAElC,QAAM,uBAAuB;AAAA,IAC3B,OAAO,YAAoB,mBAA2B;AACpD,UAAI,eAAe,kBAAkB,iBAAiB,SAAS,cAAc,GAAG;AAC9E;AAAA,MACF;AAEA,YAAM,gBAAgB,iBAAiB;AAAA,QAAI,CAAC,sBAC1C,sBAAsB,aAAa,iBAAiB;AAAA,MACtD;AACA,YAAM,YAAY,aAAa;AAAA,IACjC;AAAA,IACA,CAAC,kBAAkB,WAAW;AAAA,EAChC;AAEA,QAAM,uBAAuB;AAAA,IAC3B,OAAO,eAAuB;AAC5B,UAAI,iBAAiB,WAAW,GAAG;AACjC;AAAA,MACF;AAEA,YAAM,gBAAgB,iBAAiB;AAAA,QACrC,CAAC,sBAAsB,sBAAsB;AAAA,MAC/C;AACA,YAAM,YAAY,aAAa;AAE/B,iBAAW,OAAO,2BAA2B,UAAU,GAAG;AACxD,cAAM,SAAS,KAAK,EAAE;AAAA,MACxB;AAAA,IACF;AAAA,IACA,CAAC,kBAAkB,UAAU,WAAW;AAAA,EAC1C;AAEA,QAAM,mBAAmB;AAAA,IACvB,OAAO,eAAuB;AAC5B,UAAI,iBAAiB,CAAC,MAAM,YAAY;AACtC;AAAA,MACF;AAEA,YAAM,gBAAgB;AAAA,QACpB;AAAA,QACA,GAAG,iBAAiB,OAAO,CAAC,sBAAsB,sBAAsB,UAAU;AAAA,MACpF;AACA,YAAM,YAAY,aAAa;AAAA,IACjC;AAAA,IACA,CAAC,kBAAkB,WAAW;AAAA,EAChC;AAEA,SACE,qBAAC,SAAI,WAAW,sBAAO,eACrB;AAAA,yBAAC,SAAI,WAAW,sBAAO,qBACrB;AAAA,2BAAC,SACC;AAAA,4BAAC,SAAI,WAAW,sBAAO,UAAU,uBAAS;AAAA,QAC1C,oBAAC,SAAI,WAAW,sBAAO,gBAAgB,uFAEvC;AAAA,SACF;AAAA,MACA,oBAAC,SAAI,WAAW,sBAAO,0BACrB;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,SAAS;AAAA,UACT,UAAU,iBAAiB,UAAU,2BAA2B;AAAA,UAChE,SAAQ;AAAA,UACT;AAAA;AAAA,MAED,GACF;AAAA,OACF;AAAA,IAEA,oBAAC,SAAI,WAAW,sBAAO,cACpB,2BAAiB,IAAI,CAAC,YAAY,UAAU;AAC3C,YAAM,aAAa,2BAA2B,UAAU;AACxD,UAAI,CAAC,YAAY;AACf,eAAO;AAAA,MACT;AAEA,YAAM,mBAAmB,2BAA2B;AAAA,QAClD,CAAC,aAAa,SAAS,OAAO,cAAc,CAAC,iBAAiB,SAAS,SAAS,EAAE;AAAA,MACpF;AAEA,aACE,oBAAC,SAAqB,WAAW,sBAAO,cACtC,8BAAC,aAAQ,SAAQ,YACf,+BAAC,SAAI,WAAW,sBAAO,kBACrB;AAAA,6BAAC,SAAI,WAAW,sBAAO,oBACrB;AAAA,+BAAC,SAAI,WAAW,sBAAO,sBACrB;AAAA,gCAAC,SAAI,WAAW,sBAAO,mBAAoB,qBAAW,OAAM;AAAA,YAC3D,UAAU,KAAK,oBAAC,UAAK,WAAW,sBAAO,sBAAsB,qBAAO;AAAA,aACvE;AAAA,UACA,qBAAC,SAAI,WAAW,sBAAO,qBACrB;AAAA,gCAAC,SAAI,WAAW,sBAAO,oBACrB;AAAA,cAACA;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM,iBAAiB,UAAU;AAAA,gBAC1C,UAAU,UAAU;AAAA,gBACpB,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACN;AAAA;AAAA,YAED,GACF;AAAA,YACA,oBAAC,SAAI,WAAW,sBAAO,oBACrB;AAAA,cAACA;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM,qBAAqB,UAAU;AAAA,gBAC9C,UAAU,iBAAiB,WAAW;AAAA,gBACtC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACN;AAAA;AAAA,YAED,GACF;AAAA,aACF;AAAA,WACF;AAAA,QAEA,qBAAC,SAAI,WAAW,sBAAO,mBACrB;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,OAAO;AAAA,cACP,SAAS,iBAAiB,IAAI,CAAC,cAAc;AAAA,gBAC3C,OAAO,SAAS;AAAA,gBAChB,OAAO,SAAS;AAAA,cAClB,EAAE;AAAA,cACF,UAAU,CAAC,cAAc,qBAAqB,YAAY,SAAS;AAAA;AAAA,UACrE;AAAA,UAEC,WAAW,kBACV;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,IAAI,sBAAsB,UAAU;AAAA,cACpC,OAAM;AAAA,cACN,OAAO,OAAO,OAAO,mBAAmB,UAAU,SAAS,KAAK,EAAE;AAAA,cAClE,WAAS;AAAA,cACT,UAAU,CAAC,UACT,SAAS,mBAAmB,UAAU,WAAW,KAAK;AAAA;AAAA,UAE1D;AAAA,UAGD,WAAW,iBACV;AAAA,YAACA;AAAA,YAAA;AAAA,cACC,IAAI,wBAAwB,UAAU;AAAA,cACtC,OAAM;AAAA,cACN,OAAO,OAAO,OAAO,mBAAmB,UAAU,QAAQ,KAAK,EAAE;AAAA,cACjE,UAAU,CAAC,UAAU,SAAS,mBAAmB,UAAU,UAAU,KAAK;AAAA;AAAA,UAC5E;AAAA,UAGD,WAAW,mBACV;AAAA,YAACA;AAAA,YAAA;AAAA,cACC,IAAI,2BAA2B,UAAU;AAAA,cACzC,OAAM;AAAA,cACN,OAAO,OAAO,OAAO,mBAAmB,UAAU,UAAU,KAAK,EAAE;AAAA,cACnE,UAAU,CAAC,UACT,SAAS,mBAAmB,UAAU,YAAY,KAAK;AAAA;AAAA,UAE3D;AAAA,UAGD,WAAW,2BACV;AAAA,YAACA;AAAA,YAAA;AAAA,cACC,IAAI,6BAA6B,UAAU;AAAA,cAC3C,OAAM;AAAA,cACN,OAAO;AAAA,gBACL,OAAO,mBAAmB,UAAU,kBAAkB,KAAK;AAAA,cAC7D;AAAA,cACA,UAAU,CAAC,UACT,SAAS,mBAAmB,UAAU,oBAAoB,KAAK;AAAA;AAAA,UAEnE;AAAA,UAGD,WAAW,2BACV;AAAA,YAACA;AAAA,YAAA;AAAA,cACC,IAAI,8BAA8B,UAAU;AAAA,cAC5C,OAAM;AAAA,cACN,OAAO;AAAA,gBACL,OAAO,mBAAmB,UAAU,kBAAkB,KAAK;AAAA,cAC7D;AAAA,cACA,UAAU,CAAC,UACT,SAAS,mBAAmB,UAAU,oBAAoB,KAAK;AAAA;AAAA,UAEnE;AAAA,WAEJ;AAAA,SACF,GACF,KAtGQ,UAuGV;AAAA,IAEJ,CAAC,GACH;AAAA,KACF;AAEJ;AAEA,SAASD,gBAAe;AAAA,EACtB;AAAA,EACA,WAAW;AAAA,EACX,UAAU;AAAA,EACV,OAAO;AAAA,EACP;AACF,GAMG;AACD,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAA6B,IAAI;AAE3E,YAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AAEA,UAAM,cAAc,MAAM;AACxB,WAAK,QAAQ;AAAA,IACf;AAEA,kBAAc,iBAAiB,SAAS,WAAW;AACnD,WAAO,MAAM,cAAc,oBAAoB,SAAS,WAAW;AAAA,EACrE,GAAG,CAAC,eAAe,OAAO,CAAC;AAE3B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,KAAK,CAAC,YAAgC,iBAAiB,OAAO;AAAA,MAC9D;AAAA,MACA;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;AAEA,SAAS,oBAAoB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAiC,IAAI;AAE/E,YAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AAEA,kBAAc,UAAU;AAAA,EAC1B,GAAG,CAAC,SAAS,aAAa,CAAC;AAE3B,YAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AAEA,kBAAc,QAAQ;AAAA,EACxB,GAAG,CAAC,eAAe,KAAK,CAAC;AAEzB,YAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AAEA,UAAM,eAAe,CAAC,UAAiB;AACrC,WAAK,SAAU,MAAyC,OAAO,KAAK;AAAA,IACtE;AAEA,kBAAc,iBAAiB,aAAa,YAAY;AACxD,WAAO,MAAM,cAAc,oBAAoB,aAAa,YAAY;AAAA,EAC1E,GAAG,CAAC,UAAU,aAAa,CAAC;AAE5B,SACE,qBAAC,SAAI,WAAW,sBAAO,eACrB;AAAA,wBAAC,WAAM,WAAW,sBAAO,oBAAqB,iBAAM;AAAA,IACpD,oBAAC,SAAI,WAAW,sBAAO,oBACrB,8BAAC,eAAU,KAAK,CAAC,YAAoC,iBAAiB,OAAO,GAAG,GAClF;AAAA,KACF;AAEJ;AAEA,SAASC,mBAAkB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ;AACF,GAMG;AACD,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAElD,YAAU,MAAM;AACd,kBAAc,KAAK;AAAA,EACrB,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,SAAS,YAAY,MAAM;AAC/B,QAAI,eAAe,OAAO;AACxB,WAAK,SAAS,UAAU;AAAA,IAC1B;AAAA,EACF,GAAG,CAAC,YAAY,UAAU,KAAK,CAAC;AAEhC,SACE,qBAAC,SAAI,WAAW,sBAAO,eACrB;AAAA,wBAAC,WAAM,WAAW,sBAAO,oBAAoB,SAAS,IACnD,iBACH;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAM,YAAY,aAAa;AAAA,QAC/B,WAAW,YAAY,sBAAO,qBAAqB,sBAAO;AAAA,QAC1D,OAAO;AAAA,QACP,UAAU,CAAC,UAAU,cAAc,MAAM,OAAO,KAAK;AAAA,QACrD,QAAQ;AAAA,QACR,WAAW,CAAC,UAAU;AACpB,cAAI,MAAM,QAAQ,SAAS;AACzB,mBAAO;AAAA,UACT;AAAA,QACF;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;;;ACzXO,SAAS,kBAAkB,EAAE,OAAO,SAAS,GAA2B;AAC7E,SACE,qBAAC,aAAQ,WAAW,sBAAO,SACzB;AAAA,wBAAC,QAAG,WAAW,sBAAO,cAAe,iBAAM;AAAA,IAC1C;AAAA,KACH;AAEJ;;;ACCO,SAAS,cAAc,EAAE,QAAQ,OAAO,SAAS,GAAuB;AAC7E,SACE,qBAAC,SAAI,WAAW,sBAAO,KACrB;AAAA,yBAAC,SAAI,WAAW,sBAAO,SACrB;AAAA,2BAAC,SAAI,WAAW,sBAAO,UACpB;AAAA,eAAO;AAAA,QACP,OAAO,mBAAmB,oBAAC,UAAK,WAAW,sBAAO,iBAAiB,qBAAO;AAAA,SAC7E;AAAA,MACA,oBAAC,SAAI,WAAW,sBAAO,gBAAiB,iBAAO,aAAY;AAAA,OAC7D;AAAA,IACA,oBAAC,SAAI,WAAW,sBAAO,YACrB,8BAAC,WAAQ,QAAgB,OAAc,UAAoB,GAC7D;AAAA,KACF;AAEJ;AAIA,SAAS,QAAQ;AAAA,EACf;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,MAAI,OAAO,QAAQ,yBAAyB,OAAO,SAAS,UAAU;AACpE,WAAO,oBAAC,gBAAa,QAAgB,OAAwB,UAAoB;AAAA,EACnF;AACA,MAAI,OAAO,SAAS,WAAW;AAC7B,WAAO,oBAAC,iBAAc,QAAgB,OAAyB,UAAoB;AAAA,EACrF;AACA,MAAI,OAAO,SAAS,YAAY,OAAO,SAAS;AAC9C,WAAO,oBAAC,mBAAgB,QAAgB,OAAwB,UAAoB;AAAA,EACtF;AACA,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO,oBAAC,eAAY,QAAgB,OAAwB,UAAoB;AAAA,EAClF;AACA,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO,oBAAC,iBAAc,QAAgB,OAAwB,UAAoB;AAAA,EACpF;AACA,SAAO;AACT;AAEA,SAAS,WAAW,OAAwB;AAC1C,SAAO,uCAAuC,KAAK,KAAK;AAC1D;AAEA,SAAS,aAAa;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAElD,YAAU,MAAM;AACd,kBAAc,KAAK;AAAA,EACrB,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,SAAS;AAAA,IACb,CAAC,cAAuB;AACtB,YAAM,iBAAiB,aAAa,YAAY,KAAK;AACrD,UAAI,kBAAkB,OAAO;AAC3B,iBAAS,OAAO,KAAK,aAAa;AAAA,MACpC;AAAA,IACF;AAAA,IACA,CAAC,YAAY,UAAU,OAAO,KAAK,KAAK;AAAA,EAC1C;AAEA,QAAM,oBAAoB,YAAY,CAAC,MAAyC;AAC9E,kBAAc,EAAE,cAAc,KAAK;AAAA,EACrC,GAAG,CAAC,CAAC;AAEL,QAAM,qBAAqB;AAAA,IACzB,CAAC,MAA2C;AAC1C,YAAM,YAAY,EAAE,OAAO;AAC3B,oBAAc,SAAS;AACvB,aAAO,SAAS;AAAA,IAClB;AAAA,IACA,CAAC,MAAM;AAAA,EACT;AAEA,QAAM,mBAAmB,YAAY,CAAC,MAA2C;AAC/E,kBAAc,EAAE,OAAO,KAAK;AAAA,EAC9B,GAAG,CAAC,CAAC;AAEL,QAAM,oBAAoB;AAAA,IACxB,CAAC,MAA6C;AAC5C,UAAI,EAAE,QAAQ,SAAS;AACrB,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,CAAC,MAAM;AAAA,EACT;AAEA,QAAM,iBAAiB,YAAY,MAAM;AACvC,WAAO;AAAA,EACT,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,cAAc,WAAW,UAAU,IAAI,aAAa;AAE1D,SACE,qBAAC,SAAI,WAAW,sBAAO,cACrB;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAW,sBAAO;AAAA,QAClB,OAAO;AAAA,QACP,SAAS;AAAA,QACT,UAAU;AAAA,QACV,cAAY,GAAG,OAAO,KAAK;AAAA;AAAA,IAC7B;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAW,sBAAO;AAAA,QAClB,OAAO;AAAA,QACP,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,aAAY;AAAA;AAAA,IACd;AAAA,KACF;AAEJ;AAIA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,eAAe,YAAY,MAAM;AACrC,aAAS,OAAO,KAAK,CAAC,KAAK;AAAA,EAC7B,GAAG,CAAC,OAAO,KAAK,OAAO,QAAQ,CAAC;AAEhC,SACE,qBAAC,WAAM,WAAW,sBAAO,QACvB;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAW,sBAAO;AAAA,QAClB,SAAS;AAAA,QACT,UAAU;AAAA;AAAA,IACZ;AAAA,IACA,oBAAC,UAAK,WAAW,sBAAO,aAAa;AAAA,IACrC,oBAAC,UAAK,WAAW,sBAAO,YAAY;AAAA,KACtC;AAEJ;AAIA,SAAS,gBAAgB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,eAAe;AAAA,IACnB,CAAC,cAAsB;AACrB,eAAS,OAAO,KAAK,SAAS;AAAA,IAChC;AAAA,IACA,CAAC,OAAO,KAAK,QAAQ;AAAA,EACvB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,UAAU,OAAO,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,KAAK,OAAO,IAAI,EAAE;AAAA,MACzE,UAAU;AAAA;AAAA,EACZ;AAEJ;AAEA,SAAS,gBAAgB;AAAA,EACvB;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AACF,GAKG;AACD,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAiC,IAAI;AAE/E,YAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AAEA,kBAAc,UAAU;AAAA,EAC1B,GAAG,CAAC,SAAS,aAAa,CAAC;AAE3B,YAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AAEA,kBAAc,QAAQ;AACtB,kBAAc,WAAW;AAAA,EAC3B,GAAG,CAAC,UAAU,eAAe,KAAK,CAAC;AAEnC,YAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AAEA,UAAM,qBAAqB,CAAC,UAAiB;AAC3C,eAAU,MAAyC,OAAO,KAAK;AAAA,IACjE;AAEA,kBAAc,iBAAiB,aAAa,kBAAkB;AAC9D,WAAO,MAAM,cAAc,oBAAoB,aAAa,kBAAkB;AAAA,EAChF,GAAG,CAAC,UAAU,aAAa,CAAC;AAE5B,SACE,oBAAC,SAAI,WAAW,sBAAO,YACrB,8BAAC,eAAU,KAAK,CAAC,YAAoC,iBAAiB,OAAO,GAAG,GAClF;AAEJ;AAIA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAElD,YAAU,MAAM;AACd,kBAAc,KAAK;AAAA,EACrB,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,aAAa,YAAY,MAAM;AACnC,QAAI,eAAe,OAAO;AACxB,eAAS,OAAO,KAAK,UAAU;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,OAAO,KAAK,YAAY,OAAO,QAAQ,CAAC;AAE5C,QAAM,gBAAgB;AAAA,IACpB,CAAC,MAA2B;AAC1B,UAAI,EAAE,QAAQ,SAAS;AACrB,iBAAS,OAAO,KAAK,UAAU;AAAA,MACjC;AAAA,IACF;AAAA,IACA,CAAC,OAAO,KAAK,YAAY,QAAQ;AAAA,EACnC;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM,OAAO,YAAY,aAAa;AAAA,MACtC,WAAW,OAAO,YAAY,sBAAO,qBAAqB,sBAAO;AAAA,MACjE,OAAO;AAAA,MACP,UAAU,CAAC,MAAM,cAAc,EAAE,OAAO,KAAK;AAAA,MAC7C,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa,OAAO,YAAY,qBAAqB;AAAA;AAAA,EACvD;AAEJ;AAIA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,OAAO,KAAK,CAAC;AAE1D,YAAU,MAAM;AACd,kBAAc,OAAO,KAAK,CAAC;AAAA,EAC7B,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,SAAS,YAAY,MAAM;AAC/B,QAAI,MAAM,OAAO,UAAU;AAC3B,QAAI,OAAO,MAAM,GAAG,GAAG;AACrB,oBAAc,OAAO,KAAK,CAAC;AAC3B;AAAA,IACF;AACA,QAAI,OAAO,QAAQ,OAAW,OAAM,KAAK,IAAI,OAAO,KAAK,GAAG;AAC5D,QAAI,OAAO,QAAQ,OAAW,OAAM,KAAK,IAAI,OAAO,KAAK,GAAG;AAC5D,kBAAc,OAAO,GAAG,CAAC;AACzB,QAAI,QAAQ,OAAO;AACjB,eAAS,OAAO,KAAK,GAAG;AAAA,IAC1B;AAAA,EACF,GAAG,CAAC,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,YAAY,OAAO,QAAQ,CAAC;AAEpE,QAAM,gBAAgB;AAAA,IACpB,CAAC,MAA2B;AAC1B,UAAI,EAAE,QAAQ,QAAS,QAAO;AAAA,IAChC;AAAA,IACA,CAAC,MAAM;AAAA,EACT;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAW,sBAAO;AAAA,MAClB,OAAO;AAAA,MACP,KAAK,OAAO;AAAA,MACZ,KAAK,OAAO;AAAA,MACZ,UAAU,CAAC,MAAM,cAAc,EAAE,OAAO,KAAK;AAAA,MAC7C,QAAQ;AAAA,MACR,WAAW;AAAA;AAAA,EACb;AAEJ;;;AC1VA,SAAS,iBAAiB,QAAQ,kBAAkB;AAQ7C,SAAS,kBAAkB,EAAE,UAAU,gBAAgB,GAA2B;AACvF,QAAM,aAAa;AAAA,IACjB;AAAA,EACF;AACA,QAAM,aAAa;AAAA,IACjB;AAAA,EACF;AACA,QAAM,eAAe,WAAkC,mBAAmB;AAC1E,QAAM,mBAAmB,WAAuB,sBAAsB;AAEtE,QAAM,mBAAmB;AAAA,IACvB,OAAO,WAAqC;AAC1C,YAAM,MAAM,QAAQ;AACpB,UAAI,CAAC,IAAK,OAAM,IAAI,MAAM,iCAAiC;AAC3D,YAAM,SAAS,MAAM,WAAW,EAAE,IAAI,CAAC;AACvC,aAAO;AAAA,IACT;AAAA,IACA,CAAC,UAAU;AAAA,EACb;AAEA,QAAM,mBAAmB;AAAA,IACvB,OAAO,WAAqC;AAC1C,YAAM,MAAM,QAAQ;AACpB,UAAI,CAAC,IAAK,OAAM,IAAI,MAAM,iCAAiC;AAE3D,UAAI,QAAQ,QAAQ;AACpB,UAAI,UAAU,OAAW,OAAM,IAAI,MAAM,mCAAmC;AAG5E,YAAM,SAAS,UAAU,GAAG;AAC5B,UAAI,QAAQ;AACV,YAAI,OAAO,SAAS,YAAY,OAAO,UAAU,UAAU;AACzD,kBAAQ,OAAO,KAAK;AAAA,QACtB,WAAW,OAAO,SAAS,aAAa,OAAO,UAAU,UAAU;AACjE,kBAAQ,UAAU;AAAA,QACpB;AAAA,MACF;AAEA,YAAM,WAAW,EAAE,KAAK,MAA0C,CAAC;AACnE,sBAAgB;AAChB,aAAO,EAAE,SAAS,KAAK;AAAA,IACzB;AAAA,IACA,CAAC,YAAY,eAAe;AAAA,EAC9B;AAEA,QAAM,qBAAqB;AAAA,IACzB,OAAO,WAAqC;AAC1C,YAAM,MAAM,QAAQ;AACpB,UAAI,CAAC,IAAK,OAAM,IAAI,MAAM,iCAAiC;AAC3D,YAAM,aAAa,EAAE,IAAI,CAAC;AAC1B,sBAAgB;AAChB,aAAO,EAAE,SAAS,KAAK;AAAA,IACzB;AAAA,IACA,CAAC,cAAc,eAAe;AAAA,EAChC;AAEA,QAAM,iBAAiB,YAAY,YAAY;AAC7C,UAAM,iBAAiB;AACvB,oBAAgB;AAChB,WAAO,EAAE,SAAS,KAAK;AAAA,EACzB,GAAG,CAAC,kBAAkB,eAAe,CAAC;AAEtC,SACE,qBAAC,mBACC;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,aAAY;AAAA,QACZ,QAAQ;AAAA,UACN,KAAK;AAAA,YACH,MAAM;AAAA,YACN,aAAa;AAAA,YACb,UAAU;AAAA,UACZ;AAAA,QACF;AAAA,QACA,SAAS;AAAA;AAAA,IACX;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,aAAY;AAAA,QACZ,QAAQ;AAAA,UACN,KAAK;AAAA,YACH,MAAM;AAAA,YACN,aAAa;AAAA,YACb,UAAU;AAAA,UACZ;AAAA,UACA,OAAO;AAAA,YACL,MAAM;AAAA,YACN,aAAa;AAAA,YACb,UAAU;AAAA,UACZ;AAAA,QACF;AAAA,QACA,SAAS;AAAA;AAAA,IACX;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,aAAY;AAAA,QACZ,QAAQ;AAAA,UACN,KAAK;AAAA,YACH,MAAM;AAAA,YACN,aAAa;AAAA,YACb,UAAU;AAAA,UACZ;AAAA,QACF;AAAA,QACA,SAAS;AAAA;AAAA,IACX;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,aAAY;AAAA,QACZ,SAAS;AAAA;AAAA,IACX;AAAA,IACC;AAAA,KACH;AAEJ;;;A9C3GA,IAAM,oBAAoB;AAE1B,SAAS,gBAAgB;AAEvB,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAiB,iBAAiB,CAAC;AAC/D,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAiB,WAAW,CAAC,CAAC;AAC1E,QAAM,CAAC,cAAc,eAAe,IAAI,SAAwB,IAAI;AACpE,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAClD,QAAM,oBAAoB,OAA6C,IAAI;AAC3E,QAAM,UAAU,OAA8B,IAAI;AAGlD,QAAM,iBAAiBC,YAAyB,oBAAoB;AACpE,QAAM,aAAaA;AAAA,IACjB;AAAA,EACF;AAGA,QAAM,cAAc,YAAY,YAAY;AAC1C,QAAI;AACF,YAAM,SAAS,MAAM,eAAe;AACpC,gBAAU,MAAM;AAAA,IAClB,SAAS,KAAK;AACZ,cAAQ,MAAM,+BAA+B,GAAG;AAAA,IAClD;AAAA,EACF,GAAG,CAAC,cAAc,CAAC;AAEnB,YAAU,MAAM;AACd,gBAAY;AAAA,EACd,GAAG,CAAC,WAAW,CAAC;AAEhB,YAAU,MAAM;AACd,QAAI,CAAC,QAAQ,QAAS;AAEtB,UAAM,eAAe,CAAC,UAAkB;AACtC,oBAAc,SAAS,iBAAiB;AAAA,IAC1C;AAEA,iBAAa,QAAQ,QAAQ,WAAW;AAExC,UAAM,WAAW,IAAI,eAAe,CAAC,YAAY;AAC/C,YAAM,QAAQ,QAAQ,CAAC;AACvB,UAAI,CAAC,MAAO;AACZ,mBAAa,MAAM,YAAY,KAAK;AAAA,IACtC,CAAC;AAED,aAAS,QAAQ,QAAQ,OAAO;AAEhC,WAAO,MAAM,SAAS,WAAW;AAAA,EACnC,GAAG,CAAC,CAAC;AAGL;AAAA,IACE;AAAA,IACA,CAAC,WAAW;AACV,gBAAU,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,OAAO,GAAG,GAAG,OAAO,MAAM,EAAE;AAE7D,UAAI,OAAO,iBAAiB;AAC1B;AAAA,UACE,aAAa,EAAE,OAAO,cAAc,KAAK,iCAAiC,aAAa,iDAAiD,CAAC;AAAA,QAC3I;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,WAAgC,wBAAwB,MAAM;AAC5D,gBAAY;AACZ,qBAAiB,aAAa,EAAE,OAAO,cAAc,KAAK,0BAA0B,aAAa,4CAA4C,CAAC,CAAC;AAAA,EACjJ,CAAC;AAGD,QAAM,mBAAmB,YAAY,CAAC,YAAoB;AACxD,oBAAgB,OAAO;AACvB,QAAI,kBAAkB,QAAS,cAAa,kBAAkB,OAAO;AACrE,sBAAkB,UAAU,WAAW,MAAM,gBAAgB,IAAI,GAAG,GAAI;AAAA,EAC1E,GAAG,CAAC,CAAC;AAGL,QAAM,eAAe;AAAA,IACnB,OAAO,KAAa,UAAqC;AAEvD,gBAAU,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,EAAE;AAC/C,UAAI;AACF,cAAM,WAAW,EAAE,KAAK,MAAM,CAAC;AAAA,MACjC,SAAS,KAAK;AACZ,gBAAQ,MAAM,oBAAoB,GAAG,KAAK,GAAG;AAE7C,oBAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA,CAAC,YAAY,WAAW;AAAA,EAC1B;AAGA,QAAM,mBAAmB,WAAW,OAAO,CAAC,MAAM,MAAM,cAAc;AAEtE,QAAM,oBAAoB,YAAY,CAAC,aAAqB;AAC1D,UAAM,UAAU,qBAAqB,QAAQ;AAC7C,QAAI,aAAa,QAAQ,aAAa,SAAS;AAC7C,aAAO;AAAA,IACT;AAEA,WAAO,QAAQ,OAAO,CAAC,WAAW;AAChC,UAAI,aAAa,MAAM;AACrB,eACE,CAAC,OAAO,IAAI,WAAW,eAAe,KACtC,OAAO,QAAQ,wBACf,OAAO,QAAQ;AAAA,MAEnB;AAEA,aACE,CAAC,OAAO,IAAI,WAAW,kBAAkB,KACzC,OAAO,QAAQ,2BACf,OAAO,QAAQ;AAAA,IAEnB,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,SACE,oBAAC,qBAAkB,iBAAiB,aAClC,+BAAC,SAAI,KAAK,SAAS,WAAW,GAAG,sBAAO,IAAI,GAAG,aAAa,IAAI,sBAAO,WAAW,KAAK,EAAE,IAEvF;AAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,UAAU;AAAA,QACV,SAAS;AAAA;AAAA,IACX;AAAA,IAGA,oBAAC,SAAI,WAAW,sBAAO,eACpB,2BAAiB,IAAI,CAAC,aAAa;AAClC,YAAM,UAAU,kBAAkB,QAAQ;AAC1C,aACE,qBAAC,qBAAiC,OAAO,UACtC;AAAA,qBAAa,QAAQ,oBAAC,kBAAe,QAAgB,UAAU,cAAc;AAAA,QAC7E,aAAa,WACZ,oBAAC,qBAAkB,QAAgB,UAAU,cAAc;AAAA,QAE5D,QAAQ,IAAI,CAAC,WACZ;AAAA,UAAC;AAAA;AAAA,YAEC;AAAA,YACA,OAAO,OAAO,OAAO,GAAG,KAAK,OAAO;AAAA,YACpC,UAAU;AAAA;AAAA,UAHL,OAAO;AAAA,QAId,CACD;AAAA,WAZqB,QAaxB;AAAA,IAEJ,CAAC,GACH;AAAA,IAGC,gBAAgB,oBAAC,SAAI,WAAW,sBAAO,cAAe,wBAAa;AAAA,KACtE,GACF;AAEJ;AAEO,SAAS,SAAS,KAAwD;AAC/E,QAAM,OAAO,WAAW,IAAI,IAAI;AAChC,OAAK;AAAA,IACH,oBAAC,oBAAiB,UAAU,IAAI,UAC9B,8BAAC,qBAAkB,WAAW,IAAI,WAChC,8BAAC,iBAAc,GACjB,GACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL,aAAa;AACX,WAAK,QAAQ;AAAA,IACf;AAAA,EACF;AACF;",
|
|
6
6
|
"names": ["_mod", "_mod", "useCommand", "tooltip_default", "CLS", "ARROW_GAP", "styleInjected", "ensureStyles", "style", "DtTooltip", "val", "shadow", "name", "_old", "_next", "show", "popup", "trigger", "assigned", "triggerRect", "popupRect", "vw", "vh", "actual", "top", "left", "card_default", "CARD_CLS", "DtCard", "wrapper", "select_menu_default", "select_trigger_default", "TRIGGER_CLS", "LABEL_CLS", "CHEVRON_CLS", "MENU_CLS", "OPTION_CLS", "OPTION_ACTIVE_CLS", "menuStyleInjected", "ensureMenuStyles", "DtSelect", "btn", "label", "chevron", "labelEl", "selected", "o", "menu", "e", "target", "opt", "item", "prev", "gap", "minW", "menuHeight", "grid_default", "GRID_CLS", "DtGrid", "stack_default", "STACK_CLS", "normalizeDirection", "value", "DtStack", "#normalizeAttributes", "rawDirection", "normalizedDirection", "stat_default", "STAT_CLS", "DtStat", "_oldVal", "_newVal", "trend", "trendValue", "symbol", "badge_default", "BADGE_CLS", "DtBadge", "textAttr", "button_default", "BUTTON_CLS", "DtButton", "divider_default", "DIVIDER_CLS", "DtDivider", "hr", "table_view_default", "normalizeBoundValue", "bindTemplateFragment", "fragment", "data", "elements", "element", "textField", "attrName", "targetAttr", "fieldName", "boundValue", "createBoundTemplate", "template", "DtVirtualizer", "options", "count", "index", "height", "scrollTop", "size", "normalized", "previous", "boundedIndex", "offset", "visibleCount", "start", "end", "paddingTop", "totalHeight", "paddingBottom", "renderedHeight", "ensureRecord", "row", "normalizeAlign", "DtColumn", "DtTableView", "raw", "entries", "entry", "headerHeight", "child", "column", "columnsTemplate", "cell", "event", "indicator", "range", "rowElement", "record", "field", "minWidth", "width", "list_view_default", "DEFAULT_ESTIMATE", "DtListView", "a", "b", "parsed", "adjustment", "resetMeasurements", "fixedHeight", "itemElement", "selectable", "chart_default", "loadPromise", "loadChartJs", "resolve", "reject", "script", "clamp", "min", "max", "parseCsv", "part", "parseColorToHsl", "hex", "char", "r", "g", "rgbToHsl", "rgb", "hsl", "delta", "h", "l", "s", "hslString", "color", "alpha", "getPalette", "accent", "base", "isPlainObject", "deepMerge", "override", "result", "key", "current", "normalizeLegend", "normalizeType", "isCartesianType", "type", "formatLabels", "DtChart", "root", "point", "dataset", "runtime", "config", "nextType", "_runtime", "computed", "text", "muted", "border", "font", "palette", "normalizedType", "chartData", "tone", "baseDataset", "_", "itemIndex", "baseOptions", "colorMix", "message", "primary", "secondary", "weight", "first", "second", "ratio", "hueDelta", "markdown_default", "loadMarked", "normalizeLineEndings", "dedentBlock", "lines", "indents", "line", "minIndent", "closeStreamingBlocks", "closingFence", "DtMarkdown", "anchor", "markdown", "markdown_editor_default", "loadMilkdown", "DtMarkdownEditor", "nextValue", "mount", "force", "setupToken", "editor", "listener", "_ctx", "root", "rootCompact", "sidebar", "sidebarHeader", "categoryItem", "categoryIcon", "categoryText", "settingsPanel", "section", "sectionTitle", "row", "rowInfo", "rowLabel", "rowDescription", "rowRestartBadge", "rowControl", "providerGroup", "providerGroupHeader", "providerList", "providerCard", "providerCardBody", "providerCardHeader", "providerCardTitleRow", "providerCardTitle", "providerDefaultBadge", "providerCardActions", "providerActionButtonWrap", "providerButtonWrap", "providerFieldGrid", "providerField", "providerFieldLabel", "providerSelectWrap", "selectWrap", "textInput", "numberInput", "dropdown", "colorControl", "colorInput", "toggle", "toggleInput", "toggleTrack", "toggleKnob", "notification", "slideUp", "_mod", "_mod", "Fragment", "ProviderButton", "ProviderTextField", "useCommand"]
|
|
7
7
|
}
|