@desktalk/core 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +82 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/frontend/assets/frontend-B3QNYf3p.js +413 -0
- package/dist/frontend/assets/frontend-B3QNYf3p.js.map +1 -0
- package/dist/frontend/assets/frontend-B4aeXn9d.js +416 -0
- package/dist/frontend/assets/frontend-B4aeXn9d.js.map +1 -0
- package/dist/frontend/assets/frontend-BwyRSlHp.js +6513 -0
- package/dist/frontend/assets/frontend-BwyRSlHp.js.map +1 -0
- package/dist/frontend/assets/frontend-Dix2OWTT.js +229 -0
- package/dist/frontend/assets/frontend-Dix2OWTT.js.map +1 -0
- package/dist/frontend/assets/frontend-Dx41dEM9.js +407 -0
- package/dist/frontend/assets/frontend-Dx41dEM9.js.map +1 -0
- package/dist/frontend/assets/frontend-WpQng8Mt.js +1991 -0
- package/dist/frontend/assets/frontend-WpQng8Mt.js.map +1 -0
- package/dist/frontend/assets/frontend-rTwBdJbn.js +2123 -0
- package/dist/frontend/assets/frontend-rTwBdJbn.js.map +1 -0
- package/dist/frontend/assets/highlighted-body-TPN3WLV5-DD4wpkf4.js +2 -0
- package/dist/frontend/assets/highlighted-body-TPN3WLV5-DD4wpkf4.js.map +1 -0
- package/dist/frontend/assets/index-C5-XUOS7.js +1863 -0
- package/dist/frontend/assets/index-C5-XUOS7.js.map +1 -0
- package/dist/frontend/assets/index-C_e3_6yE.css +1 -0
- package/dist/frontend/index.html +22 -0
- package/dist/frontend/pcm-capture-processor.js +65 -0
- package/dist/i18n/manifest.json +34 -0
- package/dist/i18n/zh-CN.json +7 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/server/admin-routes.d.ts +14 -0
- package/dist/server/admin-routes.d.ts.map +1 -0
- package/dist/server/admin-routes.js +118 -0
- package/dist/server/admin-routes.js.map +1 -0
- package/dist/server/api-routes.d.ts +8 -0
- package/dist/server/api-routes.d.ts.map +1 -0
- package/dist/server/api-routes.js +203 -0
- package/dist/server/api-routes.js.map +1 -0
- package/dist/server/auth-routes.d.ts +19 -0
- package/dist/server/auth-routes.d.ts.map +1 -0
- package/dist/server/auth-routes.js +155 -0
- package/dist/server/auth-routes.js.map +1 -0
- package/dist/server/dtfs-routes.d.ts +3 -0
- package/dist/server/dtfs-routes.d.ts.map +1 -0
- package/dist/server/dtfs-routes.js +183 -0
- package/dist/server/dtfs-routes.js.map +1 -0
- package/dist/server/index.d.ts +15 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +158 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/monaco-routes.d.ts +3 -0
- package/dist/server/monaco-routes.d.ts.map +1 -0
- package/dist/server/monaco-routes.js +45 -0
- package/dist/server/monaco-routes.js.map +1 -0
- package/dist/server/voice-routes.d.ts +7 -0
- package/dist/server/voice-routes.d.ts.map +1 -0
- package/dist/server/voice-routes.js +142 -0
- package/dist/server/voice-routes.js.map +1 -0
- package/dist/server/ws-routes.d.ts +29 -0
- package/dist/server/ws-routes.d.ts.map +1 -0
- package/dist/server/ws-routes.js +334 -0
- package/dist/server/ws-routes.js.map +1 -0
- package/dist/services/ai/action-tool.d.ts +9 -0
- package/dist/services/ai/action-tool.d.ts.map +1 -0
- package/dist/services/ai/action-tool.js +51 -0
- package/dist/services/ai/action-tool.js.map +1 -0
- package/dist/services/ai/app-tools.d.ts +15 -0
- package/dist/services/ai/app-tools.d.ts.map +1 -0
- package/dist/services/ai/app-tools.js +119 -0
- package/dist/services/ai/app-tools.js.map +1 -0
- package/dist/services/ai/chat-service.d.ts +27 -0
- package/dist/services/ai/chat-service.d.ts.map +1 -0
- package/dist/services/ai/chat-service.js +213 -0
- package/dist/services/ai/chat-service.js.map +1 -0
- package/dist/services/ai/create-liveapp-tool.d.ts +15 -0
- package/dist/services/ai/create-liveapp-tool.d.ts.map +1 -0
- package/dist/services/ai/create-liveapp-tool.js +142 -0
- package/dist/services/ai/create-liveapp-tool.js.map +1 -0
- package/dist/services/ai/desktop-tool.d.ts +27 -0
- package/dist/services/ai/desktop-tool.d.ts.map +1 -0
- package/dist/services/ai/desktop-tool.js +106 -0
- package/dist/services/ai/desktop-tool.js.map +1 -0
- package/dist/services/ai/edit-history.d.ts +16 -0
- package/dist/services/ai/edit-history.d.ts.map +1 -0
- package/dist/services/ai/edit-history.js +137 -0
- package/dist/services/ai/edit-history.js.map +1 -0
- package/dist/services/ai/edit-tool.d.ts +9 -0
- package/dist/services/ai/edit-tool.d.ts.map +1 -0
- package/dist/services/ai/edit-tool.js +113 -0
- package/dist/services/ai/edit-tool.js.map +1 -0
- package/dist/services/ai/generate-html-tool.d.ts +15 -0
- package/dist/services/ai/generate-html-tool.d.ts.map +1 -0
- package/dist/services/ai/generate-html-tool.js +140 -0
- package/dist/services/ai/generate-html-tool.js.map +1 -0
- package/dist/services/ai/generate-icon-tool.d.ts +10 -0
- package/dist/services/ai/generate-icon-tool.d.ts.map +1 -0
- package/dist/services/ai/generate-icon-tool.js +58 -0
- package/dist/services/ai/generate-icon-tool.js.map +1 -0
- package/dist/services/ai/html-bridge-script.d.ts +2 -0
- package/dist/services/ai/html-bridge-script.d.ts.map +1 -0
- package/dist/services/ai/html-bridge-script.js +2 -0
- package/dist/services/ai/html-bridge-script.js.map +1 -0
- package/dist/services/ai/html-guidelines-tool.d.ts +3 -0
- package/dist/services/ai/html-guidelines-tool.d.ts.map +1 -0
- package/dist/services/ai/html-guidelines-tool.js +157 -0
- package/dist/services/ai/html-guidelines-tool.js.map +1 -0
- package/dist/services/ai/html-stream-coordinator.d.ts +92 -0
- package/dist/services/ai/html-stream-coordinator.d.ts.map +1 -0
- package/dist/services/ai/html-stream-coordinator.js +314 -0
- package/dist/services/ai/html-stream-coordinator.js.map +1 -0
- package/dist/services/ai/html-theme-link.d.ts +9 -0
- package/dist/services/ai/html-theme-link.d.ts.map +1 -0
- package/dist/services/ai/html-theme-link.js +12 -0
- package/dist/services/ai/html-theme-link.js.map +1 -0
- package/dist/services/ai/html-ui-script.d.ts +9 -0
- package/dist/services/ai/html-ui-script.d.ts.map +1 -0
- package/dist/services/ai/html-ui-script.js +9 -0
- package/dist/services/ai/html-ui-script.js.map +1 -0
- package/dist/services/ai/image-generation-service.d.ts +26 -0
- package/dist/services/ai/image-generation-service.d.ts.map +1 -0
- package/dist/services/ai/image-generation-service.js +205 -0
- package/dist/services/ai/image-generation-service.js.map +1 -0
- package/dist/services/ai/manual-pages/desktop-actions.md +36 -0
- package/dist/services/ai/manual-pages/desktop-windows.md +24 -0
- package/dist/services/ai/manual-pages/dt-badge.md +36 -0
- package/dist/services/ai/manual-pages/dt-button.md +38 -0
- package/dist/services/ai/manual-pages/dt-card.md +22 -0
- package/dist/services/ai/manual-pages/dt-chart.md +261 -0
- package/dist/services/ai/manual-pages/dt-divider.md +25 -0
- package/dist/services/ai/manual-pages/dt-grid.md +29 -0
- package/dist/services/ai/manual-pages/dt-list-view.md +96 -0
- package/dist/services/ai/manual-pages/dt-markdown-editor.md +90 -0
- package/dist/services/ai/manual-pages/dt-markdown.md +86 -0
- package/dist/services/ai/manual-pages/dt-select.md +21 -0
- package/dist/services/ai/manual-pages/dt-stack.md +31 -0
- package/dist/services/ai/manual-pages/dt-stat.md +43 -0
- package/dist/services/ai/manual-pages/dt-table-view.md +120 -0
- package/dist/services/ai/manual-pages/dt-tooltip.md +18 -0
- package/dist/services/ai/manual-pages/editing-preview.md +25 -0
- package/dist/services/ai/manual-pages/html-actions.md +74 -0
- package/dist/services/ai/manual-pages/html-bridge.md +187 -0
- package/dist/services/ai/manual-pages/html-components.md +66 -0
- package/dist/services/ai/manual-pages/html-examples.md +185 -0
- package/dist/services/ai/manual-pages/html-layouts.md +128 -0
- package/dist/services/ai/manual-pages/html-storage.md +153 -0
- package/dist/services/ai/manual-pages/html-tokens.md +26 -0
- package/dist/services/ai/manual-pages/index.d.ts +10 -0
- package/dist/services/ai/manual-pages/index.d.ts.map +1 -0
- package/dist/services/ai/manual-pages/index.js +186 -0
- package/dist/services/ai/manual-pages/index.js.map +1 -0
- package/dist/services/ai/manual-tool.d.ts +3 -0
- package/dist/services/ai/manual-tool.d.ts.map +1 -0
- package/dist/services/ai/manual-tool.js +104 -0
- package/dist/services/ai/manual-tool.js.map +1 -0
- package/dist/services/ai/pi-session-service.d.ts +101 -0
- package/dist/services/ai/pi-session-service.d.ts.map +1 -0
- package/dist/services/ai/pi-session-service.js +697 -0
- package/dist/services/ai/pi-session-service.js.map +1 -0
- package/dist/services/ai/providers.d.ts +21 -0
- package/dist/services/ai/providers.d.ts.map +1 -0
- package/dist/services/ai/providers.js +93 -0
- package/dist/services/ai/providers.js.map +1 -0
- package/dist/services/ai/redo-edit-tool.d.ts +9 -0
- package/dist/services/ai/redo-edit-tool.d.ts.map +1 -0
- package/dist/services/ai/redo-edit-tool.js +44 -0
- package/dist/services/ai/redo-edit-tool.js.map +1 -0
- package/dist/services/ai/system-prompt.d.ts +7 -0
- package/dist/services/ai/system-prompt.d.ts.map +1 -0
- package/dist/services/ai/system-prompt.js +72 -0
- package/dist/services/ai/system-prompt.js.map +1 -0
- package/dist/services/ai/undo-edit-tool.d.ts +9 -0
- package/dist/services/ai/undo-edit-tool.d.ts.map +1 -0
- package/dist/services/ai/undo-edit-tool.js +44 -0
- package/dist/services/ai/undo-edit-tool.js.map +1 -0
- package/dist/services/ai/window-tools.d.ts +27 -0
- package/dist/services/ai/window-tools.d.ts.map +1 -0
- package/dist/services/ai/window-tools.js +155 -0
- package/dist/services/ai/window-tools.js.map +1 -0
- package/dist/services/backend-host.d.ts +10 -0
- package/dist/services/backend-host.d.ts.map +1 -0
- package/dist/services/backend-host.js +117 -0
- package/dist/services/backend-host.js.map +1 -0
- package/dist/services/backend-ipc.d.ts +60 -0
- package/dist/services/backend-ipc.d.ts.map +1 -0
- package/dist/services/backend-ipc.js +2 -0
- package/dist/services/backend-ipc.js.map +1 -0
- package/dist/services/backend-process-manager.d.ts +60 -0
- package/dist/services/backend-process-manager.d.ts.map +1 -0
- package/dist/services/backend-process-manager.js +203 -0
- package/dist/services/backend-process-manager.js.map +1 -0
- package/dist/services/filesystem.d.ts +8 -0
- package/dist/services/filesystem.d.ts.map +1 -0
- package/dist/services/filesystem.js +94 -0
- package/dist/services/filesystem.js.map +1 -0
- package/dist/services/i18n.d.ts +28 -0
- package/dist/services/i18n.d.ts.map +1 -0
- package/dist/services/i18n.js +76 -0
- package/dist/services/i18n.js.map +1 -0
- package/dist/services/liveapp-icon.d.ts +9 -0
- package/dist/services/liveapp-icon.d.ts.map +1 -0
- package/dist/services/liveapp-icon.js +28 -0
- package/dist/services/liveapp-icon.js.map +1 -0
- package/dist/services/liveapps.d.ts +12 -0
- package/dist/services/liveapps.d.ts.map +1 -0
- package/dist/services/liveapps.js +84 -0
- package/dist/services/liveapps.js.map +1 -0
- package/dist/services/logger.d.ts +34 -0
- package/dist/services/logger.d.ts.map +1 -0
- package/dist/services/logger.js +74 -0
- package/dist/services/logger.js.map +1 -0
- package/dist/services/messaging.d.ts +14 -0
- package/dist/services/messaging.d.ts.map +1 -0
- package/dist/services/messaging.js +41 -0
- package/dist/services/messaging.js.map +1 -0
- package/dist/services/miniapp-icon.d.ts +9 -0
- package/dist/services/miniapp-icon.d.ts.map +1 -0
- package/dist/services/miniapp-icon.js +25 -0
- package/dist/services/miniapp-icon.js.map +1 -0
- package/dist/services/miniapp-registry.d.ts +73 -0
- package/dist/services/miniapp-registry.d.ts.map +1 -0
- package/dist/services/miniapp-registry.js +144 -0
- package/dist/services/miniapp-registry.js.map +1 -0
- package/dist/services/onboarding-config.d.ts +37 -0
- package/dist/services/onboarding-config.d.ts.map +1 -0
- package/dist/services/onboarding-config.js +76 -0
- package/dist/services/onboarding-config.js.map +1 -0
- package/dist/services/preferences.d.ts +10 -0
- package/dist/services/preferences.d.ts.map +1 -0
- package/dist/services/preferences.js +48 -0
- package/dist/services/preferences.js.map +1 -0
- package/dist/services/proxy-dispatcher.d.ts +18 -0
- package/dist/services/proxy-dispatcher.d.ts.map +1 -0
- package/dist/services/proxy-dispatcher.js +33 -0
- package/dist/services/proxy-dispatcher.js.map +1 -0
- package/dist/services/storage.d.ts +7 -0
- package/dist/services/storage.d.ts.map +1 -0
- package/dist/services/storage.js +55 -0
- package/dist/services/storage.js.map +1 -0
- package/dist/services/theme-css.d.ts +21 -0
- package/dist/services/theme-css.d.ts.map +1 -0
- package/dist/services/theme-css.js +213 -0
- package/dist/services/theme-css.js.map +1 -0
- package/dist/services/user-db.d.ts +69 -0
- package/dist/services/user-db.d.ts.map +1 -0
- package/dist/services/user-db.js +175 -0
- package/dist/services/user-db.js.map +1 -0
- package/dist/services/voice/audio-format.d.ts +5 -0
- package/dist/services/voice/audio-format.d.ts.map +1 -0
- package/dist/services/voice/audio-format.js +27 -0
- package/dist/services/voice/audio-format.js.map +1 -0
- package/dist/services/voice/azure-openai-whisper-adapter.d.ts +23 -0
- package/dist/services/voice/azure-openai-whisper-adapter.d.ts.map +1 -0
- package/dist/services/voice/azure-openai-whisper-adapter.js +60 -0
- package/dist/services/voice/azure-openai-whisper-adapter.js.map +1 -0
- package/dist/services/voice/openai-whisper-adapter.d.ts +22 -0
- package/dist/services/voice/openai-whisper-adapter.d.ts.map +1 -0
- package/dist/services/voice/openai-whisper-adapter.js +61 -0
- package/dist/services/voice/openai-whisper-adapter.js.map +1 -0
- package/dist/services/voice/stt-adapter.d.ts +31 -0
- package/dist/services/voice/stt-adapter.d.ts.map +1 -0
- package/dist/services/voice/stt-adapter.js +8 -0
- package/dist/services/voice/stt-adapter.js.map +1 -0
- package/dist/services/voice/vad-segmenter.d.ts +68 -0
- package/dist/services/voice/vad-segmenter.d.ts.map +1 -0
- package/dist/services/voice/vad-segmenter.js +159 -0
- package/dist/services/voice/vad-segmenter.js.map +1 -0
- package/dist/services/voice/voice-session.d.ts +54 -0
- package/dist/services/voice/voice-session.d.ts.map +1 -0
- package/dist/services/voice/voice-session.js +137 -0
- package/dist/services/voice/voice-session.js.map +1 -0
- package/dist/services/window-manager.d.ts +94 -0
- package/dist/services/window-manager.d.ts.map +1 -0
- package/dist/services/window-manager.js +282 -0
- package/dist/services/window-manager.js.map +1 -0
- package/dist/services/workspace.d.ts +51 -0
- package/dist/services/workspace.d.ts.map +1 -0
- package/dist/services/workspace.js +144 -0
- package/dist/services/workspace.js.map +1 -0
- package/package.json +89 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-rTwBdJbn.js","sources":["../../../../miniapp-preference/dist/frontend.js"],"sourcesContent":["(() => {\n if (typeof document === 'undefined') return;\n const styleId = \"desktalk-style-desktalk-miniapp-preference-19q4gw2\";\n if (document.getElementById(styleId)) return;\n const style = document.createElement('style');\n style.id = styleId;\n style.textContent = \"/* src/styles/PreferenceApp.module.css */\\n.PreferenceApp_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.PreferenceApp_rootCompact {\\n flex-direction: column;\\n}\\n.PreferenceApp_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.PreferenceApp_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.PreferenceApp_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.PreferenceApp_categoryItem:hover {\\n background: var(--dt-surface-hover);\\n}\\n.PreferenceApp_categoryItemActive {\\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.PreferenceApp_categoryIcon {\\n width: 20px;\\n font-size: 15px;\\n text-align: center;\\n}\\n.PreferenceApp_categoryText {\\n min-width: 0;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.PreferenceApp_settingsPanel {\\n flex: 1;\\n min-width: 0;\\n overflow-y: auto;\\n padding: 0;\\n}\\n.PreferenceApp_section {\\n padding: 20px 24px 8px;\\n}\\n.PreferenceApp_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.PreferenceApp_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.PreferenceApp_row:last-child {\\n border-bottom: none;\\n}\\n.PreferenceApp_rowInfo {\\n flex: 1;\\n min-width: 0;\\n}\\n.PreferenceApp_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.PreferenceApp_rowDescription {\\n color: var(--dt-text-muted);\\n font-size: 12px;\\n line-height: 1.4;\\n}\\n.PreferenceApp_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.PreferenceApp_rowControl {\\n display: flex;\\n flex-shrink: 0;\\n align-items: center;\\n gap: 8px;\\n}\\n.PreferenceApp_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.PreferenceApp_providerGroupHeader {\\n display: flex;\\n align-items: flex-start;\\n justify-content: space-between;\\n gap: 12px;\\n}\\n.PreferenceApp_providerList {\\n display: flex;\\n flex-direction: column;\\n gap: 12px;\\n}\\n.PreferenceApp_providerCard {\\n margin: 0;\\n}\\n.PreferenceApp_providerCard dt-card {\\n display: block;\\n margin: 0;\\n}\\n.PreferenceApp_providerCardBody {\\n display: flex;\\n flex-direction: column;\\n gap: 14px;\\n}\\n.PreferenceApp_providerCardHeader {\\n display: flex;\\n align-items: flex-start;\\n justify-content: space-between;\\n gap: 12px;\\n}\\n.PreferenceApp_providerCardTitleRow {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n}\\n.PreferenceApp_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.PreferenceApp_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.PreferenceApp_providerCardActions {\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: flex-end;\\n gap: 8px;\\n}\\n.PreferenceApp_providerActionButtonWrap,\\n.PreferenceApp_providerButtonWrap {\\n display: inline-flex;\\n}\\n.PreferenceApp_providerActionButtonWrap dt-button,\\n.PreferenceApp_providerButtonWrap dt-button {\\n display: inline-flex;\\n}\\n.PreferenceApp_providerFieldGrid {\\n display: grid;\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n gap: 12px;\\n}\\n.PreferenceApp_providerField {\\n display: flex;\\n min-width: 0;\\n flex-direction: column;\\n gap: 6px;\\n}\\n.PreferenceApp_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.PreferenceApp_providerSelectWrap {\\n width: 100%;\\n}\\n.PreferenceApp_providerSelectWrap dt-select {\\n display: block;\\n width: 100%;\\n}\\n.PreferenceApp_selectWrap {\\n min-width: 120px;\\n}\\n.PreferenceApp_selectWrap dt-select {\\n display: block;\\n min-width: 120px;\\n}\\n.PreferenceApp_textInput,\\n.PreferenceApp_numberInput,\\n.PreferenceApp_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.PreferenceApp_textInput:focus,\\n.PreferenceApp_numberInput:focus,\\n.PreferenceApp_dropdown:focus {\\n border-color: var(--dt-accent);\\n box-shadow: 0 0 0 3px var(--dt-accent-ghost);\\n}\\n.PreferenceApp_textInput {\\n width: 220px;\\n}\\n.PreferenceApp_textInput::placeholder {\\n color: var(--dt-text-muted);\\n}\\n.PreferenceApp_textInputSensitive {\\n font-family: var(--font-mono);\\n letter-spacing: 0.05em;\\n}\\n.PreferenceApp_numberInput {\\n width: 100px;\\n -moz-appearance: textfield;\\n}\\n.PreferenceApp_numberInput::-webkit-inner-spin-button,\\n.PreferenceApp_numberInput::-webkit-outer-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n.PreferenceApp_dropdown {\\n min-width: 120px;\\n cursor: pointer;\\n}\\n.PreferenceApp_colorControl {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n}\\n.PreferenceApp_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.PreferenceApp_toggle {\\n position: relative;\\n width: 42px;\\n height: 24px;\\n flex-shrink: 0;\\n cursor: pointer;\\n}\\n.PreferenceApp_toggleInput {\\n position: absolute;\\n width: 0;\\n height: 0;\\n opacity: 0;\\n}\\n.PreferenceApp_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: background 0.2s, border-color 0.2s;\\n}\\n.PreferenceApp_toggleInput:checked + .PreferenceApp_toggleTrack {\\n border-color: var(--dt-accent);\\n background: var(--dt-accent);\\n}\\n.PreferenceApp_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.PreferenceApp_toggleInput:checked ~ .PreferenceApp_toggleKnob {\\n transform: translateX(18px);\\n}\\n.PreferenceApp_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: PreferenceApp_slideUp 0.3s ease-out;\\n}\\n.PreferenceApp_rootCompact .PreferenceApp_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.PreferenceApp_rootCompact .PreferenceApp_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.PreferenceApp_rootCompact .PreferenceApp_categoryItem,\\n.PreferenceApp_rootCompact .PreferenceApp_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.PreferenceApp_rootCompact .PreferenceApp_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.PreferenceApp_rootCompact .PreferenceApp_settingsPanel {\\n padding-bottom: 12px;\\n}\\n.PreferenceApp_rootCompact .PreferenceApp_section {\\n padding: 16px 16px 8px;\\n}\\n.PreferenceApp_rootCompact .PreferenceApp_row {\\n align-items: stretch;\\n flex-direction: column;\\n gap: 12px;\\n}\\n.PreferenceApp_rootCompact .PreferenceApp_rowControl {\\n width: 100%;\\n min-width: 0;\\n}\\n.PreferenceApp_rootCompact .PreferenceApp_providerGroupHeader,\\n.PreferenceApp_rootCompact .PreferenceApp_providerCardHeader {\\n flex-direction: column;\\n}\\n.PreferenceApp_rootCompact .PreferenceApp_providerCardActions {\\n justify-content: flex-start;\\n}\\n.PreferenceApp_rootCompact .PreferenceApp_providerActionButtonWrap,\\n.PreferenceApp_rootCompact .PreferenceApp_providerButtonWrap {\\n width: 100%;\\n}\\n.PreferenceApp_rootCompact .PreferenceApp_providerFieldGrid {\\n grid-template-columns: 1fr;\\n}\\n.PreferenceApp_rootCompact .PreferenceApp_textInput,\\n.PreferenceApp_rootCompact .PreferenceApp_textInputSensitive,\\n.PreferenceApp_rootCompact .PreferenceApp_numberInput,\\n.PreferenceApp_rootCompact .PreferenceApp_dropdown,\\n.PreferenceApp_rootCompact .PreferenceApp_providerActionButtonWrap dt-button,\\n.PreferenceApp_rootCompact .PreferenceApp_providerButtonWrap dt-button {\\n width: 100%;\\n min-width: 0;\\n}\\n.PreferenceApp_rootCompact .PreferenceApp_colorControl {\\n width: 100%;\\n}\\n.PreferenceApp_rootCompact .PreferenceApp_colorInput {\\n flex: 0 0 44px;\\n}\\n@keyframes PreferenceApp_slideUp {\\n from {\\n opacity: 0;\\n transform: translateX(-50%) translateY(10px);\\n }\\n to {\\n opacity: 1;\\n transform: translateX(-50%) translateY(0);\\n }\\n}\\n/*# sourceMappingURL=frontend.css.map */\\n\";\n document.head.appendChild(style);\n})();\n\n// src/frontend.tsx\nimport { __dtLocalize } from \"@desktalk/sdk\";\n\n// desktalk-global:react\nvar _mod = window.React;\nvar Children = _mod.Children;\nvar Component = _mod.Component;\nvar Fragment = _mod.Fragment;\nvar Profiler = _mod.Profiler;\nvar PureComponent = _mod.PureComponent;\nvar StrictMode = _mod.StrictMode;\nvar Suspense = _mod.Suspense;\nvar cloneElement = _mod.cloneElement;\nvar createContext = _mod.createContext;\nvar createElement = _mod.createElement;\nvar createRef = _mod.createRef;\nvar forwardRef = _mod.forwardRef;\nvar isValidElement = _mod.isValidElement;\nvar lazy = _mod.lazy;\nvar memo = _mod.memo;\nvar startTransition = _mod.startTransition;\nvar useCallback = _mod.useCallback;\nvar useContext = _mod.useContext;\nvar useDebugValue = _mod.useDebugValue;\nvar useDeferredValue = _mod.useDeferredValue;\nvar useEffect = _mod.useEffect;\nvar useId = _mod.useId;\nvar useImperativeHandle = _mod.useImperativeHandle;\nvar useInsertionEffect = _mod.useInsertionEffect;\nvar useLayoutEffect = _mod.useLayoutEffect;\nvar useMemo = _mod.useMemo;\nvar useReducer = _mod.useReducer;\nvar useRef = _mod.useRef;\nvar useState = _mod.useState;\nvar useSyncExternalStore = _mod.useSyncExternalStore;\nvar useTransition = _mod.useTransition;\nvar version = _mod.version;\n\n// desktalk-global:react-dom/client\nvar _mod2 = window.ReactDOM;\nvar createRoot = _mod2.createRoot;\nvar hydrateRoot = _mod2.hydrateRoot;\n\n// src/frontend.tsx\nimport { useCommand as useCommand2, useEvent, MiniAppIdProvider, WindowIdProvider } from \"@desktalk/sdk\";\n\n// src/schema.ts\nvar CATEGORIES = [\"General\", \"Server\", \"AI\", \"Voice\"];\nvar DEFAULT_AI_PROVIDER_ID = \"openai\";\nvar AI_PROVIDER_DEFINITIONS = [\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];\nvar DEFAULT_VOICE_PROVIDER_ID = \"openai-whisper\";\nvar VOICE_PROVIDER_DEFINITIONS = [\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];\nvar AI_PROVIDER_IDS = new Set(AI_PROVIDER_DEFINITIONS.map((provider) => provider.id));\nvar VOICE_PROVIDER_IDS = new Set(VOICE_PROVIDER_DEFINITIONS.map((provider) => provider.id));\nfunction getAiProviderDefinition(providerId) {\n return AI_PROVIDER_DEFINITIONS.find((provider) => provider.id === providerId);\n}\nfunction getAiProviderConfigKeys(providerId) {\n const definition = getAiProviderDefinition(providerId);\n if (!definition) {\n return [];\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}\nfunction parseAiEnabledProviders(value) {\n if (typeof value !== \"string\") {\n return [DEFAULT_AI_PROVIDER_ID];\n }\n const providers = value.split(\",\").map((item) => item.trim()).filter(\n (item, index, items) => item && items.indexOf(item) === index && AI_PROVIDER_IDS.has(item)\n );\n return providers.length > 0 ? providers : [DEFAULT_AI_PROVIDER_ID];\n}\nfunction serializeAiEnabledProviders(providerIds) {\n return parseAiEnabledProviders(providerIds.join(\",\")).join(\",\");\n}\nfunction getVoiceProviderDefinition(providerId) {\n return VOICE_PROVIDER_DEFINITIONS.find((provider) => provider.id === providerId);\n}\nfunction getVoiceProviderConfigKeys(providerId) {\n const definition = getVoiceProviderDefinition(providerId);\n if (!definition) {\n return [];\n }\n const keys = [];\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}\nfunction parseVoiceEnabledProviders(value) {\n if (typeof value !== \"string\") {\n return [DEFAULT_VOICE_PROVIDER_ID];\n }\n const providers = value.split(\",\").map((item) => item.trim()).filter(\n (item, index, items) => item && items.indexOf(item) === index && VOICE_PROVIDER_IDS.has(item)\n );\n return providers.length > 0 ? providers : [DEFAULT_VOICE_PROVIDER_ID];\n}\nfunction serializeVoiceEnabledProviders(providerIds) {\n return parseVoiceEnabledProviders(providerIds.join(\",\")).join(\",\");\n}\nfunction getAiProviderPreferenceSchemas() {\n const schemas = [\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 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 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 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 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: 128e3,\n category: \"AI\"\n });\n return schemas;\n}\nvar AI_PREFERENCE_SCHEMAS = getAiProviderPreferenceSchemas();\nfunction getVoiceProviderPreferenceSchemas() {\n const schemas = [\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 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 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 if (provider.supportsBaseUrl) {\n schemas.push({\n key: `voice.providers.${provider.id}.baseUrl`,\n label: `${provider.label} Base URL`,\n description: provider.id === \"azure-openai-whisper\" ? \"Base URL for Azure OpenAI Whisper requests.\" : `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 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 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 return schemas;\n}\nvar VOICE_PREFERENCE_SCHEMAS = getVoiceProviderPreferenceSchemas();\nvar PREFERENCE_SCHEMAS = [\n // ─── General ─────────────────────────────────────────────────────────────\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: \"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 // ─── Server ──────────────────────────────────────────────────────────────\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: 3e3,\n min: 1,\n max: 65535,\n category: \"Server\",\n requiresRestart: true\n },\n // ─── AI ──────────────────────────────────────────────────────────────────\n ...AI_PREFERENCE_SCHEMAS,\n // ─── Voice ────────────────────────────────────────────────────────────\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: 5e3,\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: 1e4,\n category: \"Voice\"\n }\n];\nfunction getDefaultConfig() {\n const config = {};\n for (const schema of PREFERENCE_SCHEMAS) {\n config[schema.key] = schema.default;\n }\n return config;\n}\nfunction getSchema(key) {\n return PREFERENCE_SCHEMAS.find((s) => s.key === key);\n}\nfunction getSchemasByCategory(category) {\n return PREFERENCE_SCHEMAS.filter((s) => s.category === category);\n}\n\n// ../ui/dist/index.js\nvar J = `.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`;\nvar vt = \"dt-tooltip-popup\";\nvar u = 8;\nvar W = false;\nfunction ft() {\n if (W) return;\n let r = document.createElement(\"style\");\n r.setAttribute(\"data-dt-tooltip\", \"\"), r.textContent = J, document.head.appendChild(r), W = true;\n}\nvar x = class extends HTMLElement {\n _popup = null;\n _showTimeout = null;\n _tooltipId = \"\";\n _visible = false;\n static get observedAttributes() {\n return [\"content\", \"placement\", \"delay\", \"disabled\"];\n }\n get content() {\n return this.getAttribute(\"content\") ?? \"\";\n }\n set content(t) {\n this.setAttribute(\"content\", t);\n }\n get placement() {\n let t = this.getAttribute(\"placement\");\n return t === \"bottom\" || t === \"left\" || t === \"right\" ? t : \"top\";\n }\n set placement(t) {\n this.setAttribute(\"placement\", t);\n }\n get delay() {\n let t = Number(this.getAttribute(\"delay\"));\n return Number.isFinite(t) && t > 0 ? t : 0;\n }\n set delay(t) {\n this.setAttribute(\"delay\", String(t));\n }\n get disabled() {\n return this.hasAttribute(\"disabled\");\n }\n set disabled(t) {\n t ? this.setAttribute(\"disabled\", \"\") : this.removeAttribute(\"disabled\");\n }\n constructor() {\n super();\n let t = this.attachShadow({ mode: \"open\" });\n t.innerHTML = \"<slot></slot>\", this._tooltipId = `dt-tip-${Math.random().toString(36).slice(2, 9)}`;\n }\n connectedCallback() {\n ft(), this.addEventListener(\"mouseenter\", this._onEnter), this.addEventListener(\"mouseleave\", this._onLeave), this.addEventListener(\"focusin\", this._onEnter), this.addEventListener(\"focusout\", this._onLeave);\n }\n disconnectedCallback() {\n this.removeEventListener(\"mouseenter\", this._onEnter), this.removeEventListener(\"mouseleave\", this._onLeave), this.removeEventListener(\"focusin\", this._onEnter), this.removeEventListener(\"focusout\", this._onLeave), this._hide();\n }\n attributeChangedCallback(t, e, n) {\n t === \"disabled\" && this.disabled && this._hide(), t === \"content\" && this._popup && (this._popup.textContent = this.content);\n }\n _onEnter = () => {\n if (this.disabled || !this.content) return;\n this._showTimeout !== null && clearTimeout(this._showTimeout);\n let t = () => {\n this._createPopup(), this._position(), this._visible = true;\n };\n this.delay > 0 ? this._showTimeout = setTimeout(t, this.delay) : t();\n };\n _onLeave = () => {\n this._hide();\n };\n _createPopup() {\n if (this._popup) return;\n let t = document.createElement(\"div\");\n t.className = vt, t.id = this._tooltipId, t.setAttribute(\"role\", \"tooltip\"), t.textContent = this.content, document.body.appendChild(t), this._popup = t;\n let e = this._getTrigger();\n e && e.setAttribute(\"aria-describedby\", this._tooltipId);\n }\n _hide() {\n if (this._showTimeout !== null && (clearTimeout(this._showTimeout), this._showTimeout = null), this._popup) {\n let t = this._getTrigger();\n t && t.removeAttribute(\"aria-describedby\"), this._popup.remove(), this._popup = null, this._visible = false;\n }\n }\n _getTrigger() {\n let e = this.shadowRoot?.querySelector(\"slot\")?.assignedElements();\n return e && e.length > 0 ? e[0] : null;\n }\n _position() {\n let t = this._popup;\n if (!t) return;\n let e = this.getBoundingClientRect(), n = t.getBoundingClientRect(), i = window.innerWidth, s = window.innerHeight, o = this.placement;\n o === \"top\" && e.top - n.height - u < 0 ? o = \"bottom\" : o === \"bottom\" && e.bottom + n.height + u > s ? o = \"top\" : o === \"left\" && e.left - n.width - u < 0 ? o = \"right\" : o === \"right\" && e.right + n.width + u > i && (o = \"left\"), t.setAttribute(\"data-actual-placement\", o);\n let a, d;\n switch (o) {\n case \"top\":\n d = e.left + e.width / 2, a = e.top - n.height - u;\n break;\n case \"bottom\":\n d = e.left + e.width / 2, a = e.bottom + u;\n break;\n case \"left\":\n d = e.left - n.width - u, a = e.top + e.height / 2;\n break;\n case \"right\":\n d = e.right + u, a = e.top + e.height / 2;\n break;\n }\n t.style.left = `${d}px`, t.style.top = `${a}px`;\n }\n};\nvar G = `: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`;\nvar _t = \"dt-card-inner\";\nvar w = class extends HTMLElement {\n static get observedAttributes() {\n return [\"variant\"];\n }\n get variant() {\n let t = this.getAttribute(\"variant\");\n return t === \"outlined\" || t === \"filled\" ? t : \"default\";\n }\n set variant(t) {\n this.setAttribute(\"variant\", t);\n }\n constructor() {\n super();\n let t = this.attachShadow({ mode: \"open\" }), e = document.createElement(\"style\");\n e.textContent = G, t.appendChild(e);\n let n = document.createElement(\"div\");\n n.className = _t, n.innerHTML = \"<slot></slot>\", t.appendChild(n);\n }\n};\nvar j = `.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`;\nvar q = `: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`;\nvar xt = \"dt-select-trigger\";\nvar K = \"dt-select-label\";\nvar wt = \"dt-select-chevron\";\nvar yt = \"dt-select-menu\";\nvar kt = \"dt-select-option\";\nvar Ct = \"dt-select-option--active\";\nvar U = false;\nfunction Et() {\n if (U) return;\n let r = document.createElement(\"style\");\n r.setAttribute(\"data-dt-select\", \"\"), r.textContent = j, document.head.appendChild(r), U = true;\n}\nvar y = class extends HTMLElement {\n _menu = null;\n _trigger = null;\n _options = [];\n _open = false;\n _menuId = \"\";\n static get observedAttributes() {\n return [\"value\", \"placeholder\", \"disabled\", \"align\"];\n }\n get value() {\n return this.getAttribute(\"value\") ?? \"\";\n }\n set value(t) {\n this.setAttribute(\"value\", t);\n }\n get placeholder() {\n return this.getAttribute(\"placeholder\") ?? \"Select\\u2026\";\n }\n set placeholder(t) {\n this.setAttribute(\"placeholder\", t);\n }\n get disabled() {\n return this.hasAttribute(\"disabled\");\n }\n set disabled(t) {\n t ? this.setAttribute(\"disabled\", \"\") : this.removeAttribute(\"disabled\");\n }\n get align() {\n return this.getAttribute(\"align\") === \"right\" ? \"right\" : \"left\";\n }\n set align(t) {\n this.setAttribute(\"align\", t);\n }\n get options() {\n return this._options;\n }\n set options(t) {\n this._options = t, this._updateLabel(), this._open && this._renderMenuItems();\n }\n constructor() {\n super();\n let t = this.attachShadow({ mode: \"open\" }), e = document.createElement(\"style\");\n e.textContent = q, t.appendChild(e);\n let n = document.createElement(\"button\");\n n.type = \"button\", n.className = xt, n.setAttribute(\"aria-haspopup\", \"listbox\"), n.setAttribute(\"aria-expanded\", \"false\");\n let i = document.createElement(\"span\");\n i.className = K, n.appendChild(i);\n let s = document.createElement(\"span\");\n s.className = wt, s.setAttribute(\"aria-hidden\", \"true\"), s.textContent = \"\\u25BE\", n.appendChild(s), t.appendChild(n), this._trigger = n, this._menuId = `dt-sel-${Math.random().toString(36).slice(2, 9)}`;\n }\n connectedCallback() {\n Et(), this._trigger.addEventListener(\"click\", this._onTriggerClick), this._updateLabel();\n }\n disconnectedCallback() {\n this._trigger.removeEventListener(\"click\", this._onTriggerClick), this._close();\n }\n attributeChangedCallback(t) {\n t === \"value\" && (this._updateLabel(), this._open && this._renderMenuItems()), t === \"placeholder\" && !this.value && this._updateLabel(), t === \"disabled\" && this.disabled && this._close();\n }\n _updateLabel() {\n let t = this._trigger.querySelector(`.${K}`), e = this._options.find((n) => n.value === this.value);\n t.textContent = e?.label ?? this.placeholder;\n }\n _onTriggerClick = () => {\n this.disabled || (this._open ? this._close() : this._openMenu());\n };\n _openMenu() {\n if (this._open) return;\n let t = document.createElement(\"div\");\n t.className = yt, t.id = this._menuId, t.setAttribute(\"role\", \"listbox\"), document.body.appendChild(t), this._menu = t, this._renderMenuItems(), this._position(), requestAnimationFrame(() => {\n t.setAttribute(\"data-open\", \"\");\n }), this._open = true, this._trigger.setAttribute(\"aria-expanded\", \"true\"), requestAnimationFrame(() => {\n document.addEventListener(\"mousedown\", this._onOutsideClick), document.addEventListener(\"keydown\", this._onKeyDown);\n });\n }\n _close() {\n if (this._open) {\n if (document.removeEventListener(\"mousedown\", this._onOutsideClick), document.removeEventListener(\"keydown\", this._onKeyDown), this._menu) {\n this._menu.removeAttribute(\"data-open\");\n let t = this._menu;\n setTimeout(() => t.remove(), 140), this._menu = null;\n }\n this._open = false, this._trigger.setAttribute(\"aria-expanded\", \"false\");\n }\n }\n _onOutsideClick = (t) => {\n let e = t.target;\n this._menu?.contains(e) || this.contains(e) || this._close();\n };\n _onKeyDown = (t) => {\n t.key === \"Escape\" && (this._close(), this._trigger.focus());\n };\n _renderMenuItems() {\n let t = this._menu;\n if (t) {\n t.innerHTML = \"\";\n for (let e of this._options) {\n let n = document.createElement(\"button\");\n n.type = \"button\", n.className = kt, n.setAttribute(\"role\", \"option\"), n.setAttribute(\"aria-selected\", String(e.value === this.value)), e.value === this.value && n.classList.add(Ct);\n let i = document.createElement(\"span\");\n i.textContent = e.label, n.appendChild(i), n.addEventListener(\"click\", () => {\n this._selectValue(e.value);\n }), t.appendChild(n);\n }\n }\n }\n _selectValue(t) {\n let e = this.value;\n this.value = t, this._updateLabel(), this._close(), t !== e && this.dispatchEvent(new CustomEvent(\"dt-change\", { detail: { value: t }, bubbles: true, composed: true }));\n }\n _position() {\n let t = this._menu;\n if (!t) return;\n let e = this.getBoundingClientRect(), n = 10, i = Math.max(e.width, 240), s = e.bottom + n, o = t.scrollHeight || 260, a = window.innerHeight;\n if (s + o > a && e.top - o - n > 0 && (s = e.top - o - n), t.style.minWidth = `${i}px`, this.align === \"right\") {\n let d = window.innerWidth;\n t.style.right = `${d - e.right}px`, t.style.left = \"auto\";\n } else t.style.left = `${e.left}px`, t.style.right = \"auto\";\n t.style.top = `${s}px`;\n }\n};\nvar Y = `: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`;\nvar St = \"dt-grid-inner\";\nvar k = class extends HTMLElement {\n static get observedAttributes() {\n return [\"cols\", \"gap\", \"min-width\"];\n }\n get cols() {\n let t = this.getAttribute(\"cols\");\n return t === \"1\" || t === \"2\" || t === \"3\" || t === \"4\" || t === \"5\" || t === \"6\" ? t : null;\n }\n set cols(t) {\n t === null ? this.removeAttribute(\"cols\") : this.setAttribute(\"cols\", t);\n }\n get gap() {\n let t = this.getAttribute(\"gap\");\n return t === \"0\" || t === \"4\" || t === \"8\" || t === \"12\" || t === \"20\" || t === \"24\" || t === \"32\" ? t : \"16\";\n }\n set gap(t) {\n this.setAttribute(\"gap\", t);\n }\n get minWidth() {\n let t = this.getAttribute(\"min-width\");\n return t === \"150\" || t === \"180\" || t === \"200\" || t === \"260\" || t === \"300\" ? t : \"220\";\n }\n set minWidth(t) {\n this.setAttribute(\"min-width\", t);\n }\n constructor() {\n super();\n let t = this.attachShadow({ mode: \"open\" }), e = document.createElement(\"style\");\n e.textContent = Y, t.appendChild(e);\n let n = document.createElement(\"div\");\n n.className = St, n.innerHTML = \"<slot></slot>\", t.appendChild(n);\n }\n};\nvar Z = `: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`;\nvar Dt = \"dt-stack-inner\";\nfunction $(r) {\n return r === \"row\" || r === \"horizontal\" ? \"row\" : \"column\";\n}\nvar C = class extends HTMLElement {\n static get observedAttributes() {\n return [\"direction\", \"gap\", \"align\"];\n }\n get direction() {\n return $(this.getAttribute(\"direction\"));\n }\n set direction(t) {\n this.setAttribute(\"direction\", $(t));\n }\n get gap() {\n let t = this.getAttribute(\"gap\");\n return t === \"0\" || t === \"4\" || t === \"8\" || t === \"12\" || t === \"20\" || t === \"24\" || t === \"32\" ? t : \"16\";\n }\n set gap(t) {\n this.setAttribute(\"gap\", t);\n }\n get align() {\n let t = this.getAttribute(\"align\");\n return t === \"start\" || t === \"center\" || t === \"end\" ? t : \"stretch\";\n }\n set align(t) {\n this.setAttribute(\"align\", t);\n }\n connectedCallback() {\n this.#t();\n }\n attributeChangedCallback(t) {\n t === \"direction\" && this.#t();\n }\n constructor() {\n super();\n let t = this.attachShadow({ mode: \"open\" }), e = document.createElement(\"style\");\n e.textContent = Z, t.appendChild(e);\n let n = document.createElement(\"div\");\n n.className = Dt, n.innerHTML = \"<slot></slot>\", t.appendChild(n);\n }\n #t() {\n let t = this.getAttribute(\"direction\"), e = $(t);\n t !== null && t !== e && this.setAttribute(\"direction\", e);\n }\n};\nvar Q = `: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`;\nvar At = \"dt-stat-inner\";\nvar E = class extends HTMLElement {\n static get observedAttributes() {\n return [\"label\", \"value\", \"description\", \"size\", \"variant\", \"trend\", \"trend-value\"];\n }\n _container;\n _labelEl;\n _valueEl;\n _descEl;\n _trendEl;\n get label() {\n return this.getAttribute(\"label\");\n }\n set label(t) {\n t === null ? this.removeAttribute(\"label\") : this.setAttribute(\"label\", t);\n }\n get value() {\n return this.getAttribute(\"value\");\n }\n set value(t) {\n t === null ? this.removeAttribute(\"value\") : this.setAttribute(\"value\", t);\n }\n get description() {\n return this.getAttribute(\"description\");\n }\n set description(t) {\n t === null ? this.removeAttribute(\"description\") : this.setAttribute(\"description\", t);\n }\n get size() {\n let t = this.getAttribute(\"size\");\n return t === \"sm\" || t === \"lg\" ? t : \"md\";\n }\n set size(t) {\n this.setAttribute(\"size\", t);\n }\n get variant() {\n let t = this.getAttribute(\"variant\");\n return t === \"outlined\" || t === \"filled\" ? t : \"default\";\n }\n set variant(t) {\n this.setAttribute(\"variant\", t);\n }\n get trend() {\n let t = this.getAttribute(\"trend\");\n return t === \"up\" || t === \"down\" || t === \"neutral\" ? t : null;\n }\n set trend(t) {\n t === null ? this.removeAttribute(\"trend\") : this.setAttribute(\"trend\", t);\n }\n get trendValue() {\n return this.getAttribute(\"trend-value\");\n }\n set trendValue(t) {\n t === null ? this.removeAttribute(\"trend-value\") : this.setAttribute(\"trend-value\", t);\n }\n constructor() {\n super();\n let t = this.attachShadow({ mode: \"open\" }), e = document.createElement(\"style\");\n e.textContent = Q, t.appendChild(e), this._container = document.createElement(\"div\"), this._container.className = At, this._labelEl = document.createElement(\"div\"), this._labelEl.className = \"label\", this._container.appendChild(this._labelEl), this._valueEl = document.createElement(\"div\"), this._valueEl.className = \"value\", this._container.appendChild(this._valueEl), this._descEl = document.createElement(\"div\"), this._descEl.className = \"description\", this._container.appendChild(this._descEl), this._trendEl = document.createElement(\"div\"), this._trendEl.className = \"trend\", this._container.appendChild(this._trendEl), t.appendChild(this._container), this._render();\n }\n attributeChangedCallback(t, e, n) {\n (t === \"label\" || t === \"value\" || t === \"description\" || t === \"size\" || t === \"variant\" || t === \"trend\" || t === \"trend-value\") && this._render();\n }\n _render() {\n this._labelEl.textContent = this.label ?? \"\", this._labelEl.style.display = this.label ? \"block\" : \"none\", this._valueEl.textContent = this.value ?? \"\", this._valueEl.style.display = this.value ? \"block\" : \"none\", this._descEl.textContent = this.description ?? \"\", this._descEl.style.display = this.description ? \"block\" : \"none\";\n let t = this.trend, e = this.trendValue;\n if (t && e) {\n this._trendEl.style.display = \"inline-flex\", this._trendEl.className = `trend ${t === \"up\" ? \"positive\" : t === \"down\" ? \"negative\" : \"neutral\"}`;\n let n = \"\";\n t === \"up\" ? n = \"\\u2191\" : t === \"down\" ? n = \"\\u2193\" : n = \"\\u2192\", this._trendEl.textContent = `${n} ${e}`;\n } else this._trendEl.style.display = \"none\";\n }\n};\nvar tt = `: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`;\nvar Mt = \"dt-badge-inner\";\nvar S = class extends HTMLElement {\n static get observedAttributes() {\n return [\"variant\", \"size\", \"text\"];\n }\n _container;\n _slot;\n get variant() {\n let t = this.getAttribute(\"variant\");\n return t === \"success\" || t === \"danger\" || t === \"warning\" || t === \"info\" || t === \"default\" || t === \"neutral\" ? t : \"accent\";\n }\n set variant(t) {\n this.setAttribute(\"variant\", t);\n }\n get size() {\n let t = this.getAttribute(\"size\");\n return t === \"sm\" || t === \"lg\" ? t : \"md\";\n }\n set size(t) {\n this.setAttribute(\"size\", t);\n }\n get text() {\n return this.getAttribute(\"text\");\n }\n set text(t) {\n t === null ? this.removeAttribute(\"text\") : this.setAttribute(\"text\", t);\n }\n constructor() {\n super();\n let t = this.attachShadow({ mode: \"open\" }), e = document.createElement(\"style\");\n e.textContent = tt, t.appendChild(e), this._container = document.createElement(\"span\"), this._container.className = Mt;\n let n = this.text;\n n !== null ? this._container.textContent = n : (this._slot = document.createElement(\"slot\"), this._container.appendChild(this._slot)), t.appendChild(this._container);\n }\n attributeChangedCallback(t, e, n) {\n t === \"text\" && this._render();\n }\n _render() {\n let t = this.text;\n t !== null && (this._container.textContent = t);\n }\n};\nvar et = `: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`;\nvar Tt = \"dt-button-inner\";\nvar D = class extends HTMLElement {\n static get observedAttributes() {\n return [\"variant\", \"size\", \"disabled\", \"fullwidth\", \"type\"];\n }\n _button;\n _slot;\n get variant() {\n let t = this.getAttribute(\"variant\");\n return t === \"secondary\" || t === \"ghost\" || t === \"danger\" ? t : \"primary\";\n }\n set variant(t) {\n this.setAttribute(\"variant\", t);\n }\n get size() {\n let t = this.getAttribute(\"size\");\n return t === \"sm\" || t === \"lg\" ? t : \"md\";\n }\n set size(t) {\n this.setAttribute(\"size\", t);\n }\n get disabled() {\n return this.hasAttribute(\"disabled\");\n }\n set disabled(t) {\n t ? this.setAttribute(\"disabled\", \"\") : this.removeAttribute(\"disabled\");\n }\n get fullwidth() {\n return this.hasAttribute(\"fullwidth\");\n }\n set fullwidth(t) {\n t ? this.setAttribute(\"fullwidth\", \"\") : this.removeAttribute(\"fullwidth\");\n }\n get type() {\n let t = this.getAttribute(\"type\");\n return t === \"submit\" || t === \"reset\" ? t : \"button\";\n }\n set type(t) {\n this.setAttribute(\"type\", t);\n }\n constructor() {\n super();\n let t = this.attachShadow({ mode: \"open\" }), e = document.createElement(\"style\");\n e.textContent = et, t.appendChild(e), this._button = document.createElement(\"button\"), this._button.className = Tt, this._button.type = this.type, this._button.disabled = this.disabled, this._slot = document.createElement(\"slot\"), this._button.appendChild(this._slot), t.appendChild(this._button);\n }\n attributeChangedCallback(t, e, n) {\n switch (t) {\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};\nvar nt = `: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`;\nvar zt = \"dt-divider-inner\";\nvar A = class extends HTMLElement {\n static get observedAttributes() {\n return [\"direction\", \"style-variant\", \"spacing\"];\n }\n get direction() {\n return this.getAttribute(\"direction\") === \"vertical\" ? \"vertical\" : \"horizontal\";\n }\n set direction(t) {\n this.setAttribute(\"direction\", t);\n }\n get styleVariant() {\n let t = this.getAttribute(\"style-variant\");\n return t === \"subtle\" || t === \"strong\" ? t : \"default\";\n }\n set styleVariant(t) {\n this.setAttribute(\"style-variant\", t);\n }\n get spacing() {\n let t = this.getAttribute(\"spacing\");\n return t === \"sm\" || t === \"md\" || t === \"lg\" ? t : null;\n }\n set spacing(t) {\n t === null ? this.removeAttribute(\"spacing\") : this.setAttribute(\"spacing\", t);\n }\n constructor() {\n super();\n let t = this.attachShadow({ mode: \"open\" }), e = document.createElement(\"style\");\n e.textContent = nt, t.appendChild(e);\n let n = document.createElement(\"hr\");\n n.className = zt, t.appendChild(n);\n }\n};\nvar rt = `: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`;\nfunction Lt(r) {\n return r == null || r === false ? null : r === true ? \"\" : String(r);\n}\nfunction Ht(r, t) {\n let e = r.querySelectorAll(\"*\");\n for (let n of e) {\n let i = n.getAttribute(\"data-field\");\n if (i) {\n let s = t[i];\n n.textContent = s == null ? \"\" : String(s);\n }\n for (let s of n.getAttributeNames()) {\n if (s === \"data-field\" || !s.startsWith(\"data-field-\")) continue;\n let o = s.slice(11);\n if (!o) continue;\n let a = n.getAttribute(s);\n if (!a) continue;\n let d = Lt(t[a]);\n d === null ? n.removeAttribute(o) : n.setAttribute(o, d);\n }\n }\n}\nfunction M(r, t) {\n let e = r.content.cloneNode(true);\n return Ht(e, t), e;\n}\nvar m = class {\n _count = 0;\n _estimateSize = 56;\n _overscan = 5;\n _fixedSize = null;\n _viewportHeight = 0;\n _scrollTop = 0;\n _sizes = /* @__PURE__ */ new Map();\n constructor(t = {}) {\n this._count = t.count ?? 0, this._estimateSize = t.estimateSize ?? 56, this._overscan = t.overscan ?? 5, this._fixedSize = t.fixedSize ?? null;\n }\n setCount(t) {\n this._count = Math.max(0, t);\n for (let e of this._sizes.keys()) e >= this._count && this._sizes.delete(e);\n }\n setViewportHeight(t) {\n this._viewportHeight = Math.max(0, t);\n }\n setScrollTop(t) {\n this._scrollTop = Math.max(0, t);\n }\n setEstimateSize(t) {\n this._estimateSize = Math.max(1, t);\n }\n setFixedSize(t) {\n this._fixedSize = t && t > 0 ? t : null;\n }\n resetMeasurements() {\n this._sizes.clear();\n }\n measure(t, e) {\n if (this._fixedSize !== null || t < 0 || t >= this._count) return 0;\n let n = Math.max(1, Math.round(e)), i = this._sizes.get(t);\n return i === n ? 0 : (this._sizes.set(t, n), this.getOffset(t + 1) <= this._scrollTop ? n - (i ?? this._estimateSize) : 0);\n }\n getOffset(t) {\n if (t <= 0) return 0;\n let e = Math.min(t, this._count);\n if (this._fixedSize !== null) return e * this._fixedSize;\n let n = 0;\n for (let i = 0; i < e; i += 1) n += this._sizes.get(i) ?? this._estimateSize;\n return n;\n }\n getTotalHeight() {\n return this.getOffset(this._count);\n }\n getRange() {\n if (this._count === 0) return { start: 0, end: 0, paddingTop: 0, paddingBottom: 0, totalHeight: 0 };\n if (this._fixedSize !== null) {\n let d = Math.max(1, Math.ceil(this._viewportHeight / this._fixedSize)), c = Math.max(0, Math.floor(this._scrollTop / this._fixedSize) - this._overscan), l = Math.min(this._count, c + d + this._overscan * 2), f = c * this._fixedSize, _ = this._count * this._fixedSize, h = Math.max(0, _ - f - (l - c) * this._fixedSize);\n return { start: c, end: l, paddingTop: f, paddingBottom: h, totalHeight: _ };\n }\n let t = 0, e = 0;\n for (; t < this._count; ) {\n let d = this._sizes.get(t) ?? this._estimateSize;\n if (e + d > this._scrollTop) break;\n e += d, t += 1;\n }\n t = Math.max(0, t - this._overscan);\n let n = this.getOffset(t), i = t, s = 0;\n for (; i < this._count && s < this._viewportHeight; ) s += this._sizes.get(i) ?? this._estimateSize, i += 1;\n i = Math.min(this._count, i + this._overscan);\n let o = this.getTotalHeight(), a = Math.max(0, o - this.getOffset(i));\n return { start: t, end: i, paddingTop: n, paddingBottom: a, totalHeight: o };\n }\n};\nfunction Rt(r) {\n return r && typeof r == \"object\" ? r : { value: r };\n}\nfunction Vt(r) {\n return r === \"center\" || r === \"right\" ? r : \"left\";\n}\nvar b = class extends HTMLElement {\n static get observedAttributes() {\n return [\"field\", \"header\", \"width\", \"min-width\", \"align\"];\n }\n get field() {\n return this.getAttribute(\"field\") ?? \"\";\n }\n get header() {\n return this.getAttribute(\"header\") ?? this.field;\n }\n get width() {\n return this.getAttribute(\"width\") ?? \"auto\";\n }\n get minWidth() {\n return this.getAttribute(\"min-width\") ?? \"0\";\n }\n get align() {\n return Vt(this.getAttribute(\"align\"));\n }\n connectedCallback() {\n this.hidden = true;\n }\n attributeChangedCallback() {\n this.dispatchEvent(new CustomEvent(\"dt-column-change\", { bubbles: true, composed: true }));\n }\n};\nvar T = class extends HTMLElement {\n _rows = [];\n _columns = [];\n _virtualizer = new m({ estimateSize: 40, overscan: 5, fixedSize: 40 });\n _root;\n _scroll;\n _header;\n _body;\n _canvas;\n _emptyState;\n _resizeObserver = null;\n _mutationObserver = null;\n _sortField = null;\n _sortDirection = \"asc\";\n static get observedAttributes() {\n return [\"row-height\", \"sortable\", \"striped\", \"bordered\", \"empty-text\"];\n }\n get rows() {\n return this._rows;\n }\n set rows(t) {\n this._rows = Array.isArray(t) ? t : [], this._virtualizer.setCount(this._rows.length), this._render();\n }\n get rowHeight() {\n let t = Number(this.getAttribute(\"row-height\") ?? \"40\");\n return Number.isFinite(t) && t > 0 ? t : 40;\n }\n set rowHeight(t) {\n this.setAttribute(\"row-height\", String(t));\n }\n get sortable() {\n return this.hasAttribute(\"sortable\");\n }\n get emptyText() {\n return this.getAttribute(\"empty-text\") ?? \"No data\";\n }\n constructor() {\n super();\n let t = this.attachShadow({ mode: \"open\" }), e = document.createElement(\"style\");\n e.textContent = rt, t.appendChild(e), this._root = document.createElement(\"div\"), this._root.className = \"dt-table-view\", this._scroll = document.createElement(\"div\"), this._scroll.className = \"dt-table-scroll\", this._scroll.addEventListener(\"scroll\", this._onScroll, { passive: true }), this._header = document.createElement(\"div\"), this._header.className = \"dt-table-header\", this._body = document.createElement(\"div\"), this._body.className = \"dt-table-body\", this._canvas = document.createElement(\"div\"), this._canvas.className = \"dt-table-canvas\", this._emptyState = document.createElement(\"div\"), this._emptyState.className = \"dt-table-empty\", this._body.append(this._canvas, this._emptyState), this._scroll.append(this._header, this._body), this._root.appendChild(this._scroll), t.appendChild(this._root);\n }\n connectedCallback() {\n this._virtualizer.setFixedSize(this.rowHeight), this._virtualizer.setEstimateSize(this.rowHeight), this._syncColumns(), this._resizeObserver = new ResizeObserver((t) => {\n for (let e of t) if (e.target === this._scroll) {\n let n = this._header.offsetHeight;\n this._virtualizer.setViewportHeight(Math.max(0, e.contentRect.height - n)), this._render();\n }\n }), this._resizeObserver.observe(this._scroll), this._mutationObserver = new MutationObserver(() => {\n this._syncColumns(), this._render();\n }), this._mutationObserver.observe(this, { childList: true, subtree: true, attributes: true, attributeFilter: [\"field\", \"header\", \"width\", \"min-width\", \"align\"] }), this._virtualizer.setCount(this._rows.length), this._virtualizer.setViewportHeight(Math.max(0, this._scroll.clientHeight - this._header.offsetHeight)), this._render();\n }\n disconnectedCallback() {\n this._scroll.removeEventListener(\"scroll\", this._onScroll), this._resizeObserver?.disconnect(), this._mutationObserver?.disconnect(), this._resizeObserver = null, this._mutationObserver = null;\n }\n attributeChangedCallback(t) {\n t === \"row-height\" && (this._virtualizer.setFixedSize(this.rowHeight), this._virtualizer.setEstimateSize(this.rowHeight)), this._render();\n }\n _onScroll = () => {\n this._virtualizer.setScrollTop(Math.max(0, this._scroll.scrollTop - this._header.offsetHeight)), this._renderBody();\n };\n _syncColumns() {\n this._columns = Array.from(this.children).filter((t) => t instanceof b).map((t) => ({ field: t.field, header: t.header, width: t.width, minWidth: t.minWidth, align: t.align, template: Array.from(t.children).find((e) => e instanceof HTMLTemplateElement) ?? null })).filter((t) => t.field);\n }\n _render() {\n if (!this.isConnected) return;\n this._emptyState.textContent = this.emptyText;\n let t = this._columns.length > 0 ? this._columns.map((e) => this._toGridColumn(e)).join(\" \") : \"minmax(0, 1fr)\";\n this._header.style.setProperty(\"--dt-table-columns\", t), this._canvas.style.setProperty(\"--dt-table-columns\", t), this._renderHeader(), this._renderBody();\n }\n _renderHeader() {\n let t = document.createDocumentFragment();\n for (let e of this._columns) {\n let n = document.createElement(\"div\");\n n.className = \"dt-table-header-cell\", n.dataset.align = e.align, this.sortable && (n.classList.add(\"dt-table-header-cell--sortable\"), n.tabIndex = 0, n.setAttribute(\"role\", \"button\"), n.setAttribute(\"aria-label\", `Sort by ${e.header}`), n.addEventListener(\"click\", () => this._requestSort(e.field)), n.addEventListener(\"keydown\", (s) => {\n (s.key === \"Enter\" || s.key === \" \") && (s.preventDefault(), this._requestSort(e.field));\n }));\n let i = document.createElement(\"span\");\n if (i.className = \"dt-table-header-label\", i.textContent = e.header, this.sortable) {\n let s = document.createElement(\"span\");\n s.className = \"dt-table-sort-indicator\", this._sortField === e.field ? s.textContent = this._sortDirection === \"asc\" ? \"\\u25B2\" : \"\\u25BC\" : s.textContent = \"\\u2195\", i.appendChild(s);\n }\n n.appendChild(i), t.appendChild(n);\n }\n this._header.replaceChildren(t);\n }\n _renderBody() {\n if (this._rows.length === 0 || this._columns.length === 0) {\n this._emptyState.hidden = false, this._canvas.replaceChildren(), this._body.style.height = \"140px\", this._canvas.style.height = \"0px\";\n return;\n }\n this._emptyState.hidden = true, this._virtualizer.setCount(this._rows.length), this._virtualizer.setScrollTop(Math.max(0, this._scroll.scrollTop - this._header.offsetHeight)), this._virtualizer.setViewportHeight(Math.max(0, this._scroll.clientHeight - this._header.offsetHeight));\n let t = this._virtualizer.getRange();\n this._body.style.height = `${Math.max(t.totalHeight, this._scroll.clientHeight - this._header.offsetHeight)}px`, this._canvas.style.height = `${t.totalHeight}px`;\n let e = document.createDocumentFragment();\n for (let n = t.start; n < t.end; n += 1) e.appendChild(this._renderRow(n));\n this._canvas.replaceChildren(e);\n }\n _renderRow(t) {\n let e = this._rows[t], n = document.createElement(\"div\");\n n.className = \"dt-table-row dt-table-row--clickable\", n.style.top = `${this._virtualizer.getOffset(t)}px`, n.style.height = `${this.rowHeight}px`, n.style.setProperty(\"--dt-table-columns\", this._header.style.getPropertyValue(\"--dt-table-columns\")), n.addEventListener(\"click\", () => {\n this.dispatchEvent(new CustomEvent(\"dt-row-click\", { detail: { row: e, index: t }, bubbles: true, composed: true }));\n });\n let i = Rt(e);\n for (let s of this._columns) {\n let o = document.createElement(\"div\");\n if (o.className = \"dt-table-cell\", o.dataset.align = s.align, s.template) o.appendChild(M(s.template, i));\n else {\n let a = i[s.field];\n o.textContent = a == null ? \"\" : String(a);\n }\n n.appendChild(o);\n }\n return n;\n }\n _requestSort(t) {\n this._sortField === t ? this._sortDirection = this._sortDirection === \"asc\" ? \"desc\" : \"asc\" : (this._sortField = t, this._sortDirection = \"asc\"), this._renderHeader(), this.dispatchEvent(new CustomEvent(\"dt-sort\", { detail: { field: t, direction: this._sortDirection }, bubbles: true, composed: true }));\n }\n _toGridColumn(t) {\n let e = /^\\d+$/.test(t.minWidth) ? `${t.minWidth}px` : t.minWidth;\n if (t.width === \"auto\") return `minmax(${e}, 1fr)`;\n let n = /^\\d+$/.test(t.width) ? `${t.width}px` : t.width;\n return `minmax(${e}, ${n})`;\n }\n};\nvar it = `: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`;\nvar st = 56;\nfunction Pt(r) {\n return r && typeof r == \"object\" ? r : { value: r };\n}\nvar z = class extends HTMLElement {\n _items = [];\n _selectedIndices = /* @__PURE__ */ new Set();\n _renderItem = null;\n _virtualizer = new m({ estimateSize: st, overscan: 5 });\n _viewport;\n _spacer;\n _itemsLayer;\n _emptyState;\n _resizeObserver = null;\n _itemResizeObserver = null;\n static get observedAttributes() {\n return [\"item-height\", \"dividers\", \"selectable\", \"empty-text\"];\n }\n get items() {\n return this._items;\n }\n set items(t) {\n this._items = Array.isArray(t) ? t : [], this._selectedIndices = new Set([...this._selectedIndices].filter((e) => e < this._items.length)), this._virtualizer.setCount(this._items.length), this._syncSizingMode(true), this._render();\n }\n get selectedItems() {\n return [...this._selectedIndices].sort((t, e) => t - e).map((t) => this._items[t]);\n }\n get renderItem() {\n return this._renderItem;\n }\n set renderItem(t) {\n this._renderItem = typeof t == \"function\" ? t : null, this._render();\n }\n get itemHeight() {\n let t = this.getAttribute(\"item-height\");\n if (!t) return null;\n let e = Number(t);\n return Number.isFinite(e) && e > 0 ? e : null;\n }\n set itemHeight(t) {\n if (t === null || t <= 0) {\n this.removeAttribute(\"item-height\");\n return;\n }\n this.setAttribute(\"item-height\", String(t));\n }\n get selectable() {\n let t = this.getAttribute(\"selectable\");\n return t === \"single\" || t === \"multi\" ? t : \"none\";\n }\n set selectable(t) {\n this.setAttribute(\"selectable\", t);\n }\n get emptyText() {\n return this.getAttribute(\"empty-text\") ?? \"No items\";\n }\n set emptyText(t) {\n this.setAttribute(\"empty-text\", t);\n }\n constructor() {\n super();\n let t = this.attachShadow({ mode: \"open\" }), e = document.createElement(\"style\");\n e.textContent = it, t.appendChild(e), this._viewport = document.createElement(\"div\"), this._viewport.className = \"dt-list-view\", this._viewport.addEventListener(\"scroll\", this._onScroll, { passive: true }), this._spacer = document.createElement(\"div\"), this._spacer.className = \"dt-list-spacer\", this._itemsLayer = document.createElement(\"div\"), this._itemsLayer.className = \"dt-list-items\", this._emptyState = document.createElement(\"div\"), this._emptyState.className = \"dt-list-empty\", this._spacer.append(this._itemsLayer, this._emptyState), this._viewport.appendChild(this._spacer), t.appendChild(this._viewport);\n }\n connectedCallback() {\n this._resizeObserver = new ResizeObserver((t) => {\n for (let e of t) e.target === this._viewport && (this._virtualizer.setViewportHeight(e.contentRect.height), this._render());\n }), this._resizeObserver.observe(this._viewport), this._itemResizeObserver = new ResizeObserver((t) => {\n let e = 0;\n for (let n of t) {\n let i = n.target, s = Number(i.dataset.index);\n Number.isFinite(s) && (e += this._virtualizer.measure(s, n.contentRect.height));\n }\n e !== 0 && (this._viewport.scrollTop += e), t.length > 0 && this._render();\n }), this._virtualizer.setCount(this._items.length), this._virtualizer.setViewportHeight(this._viewport.clientHeight), this._syncSizingMode(false), this._render();\n }\n disconnectedCallback() {\n this._viewport.removeEventListener(\"scroll\", this._onScroll), this._resizeObserver?.disconnect(), this._itemResizeObserver?.disconnect(), this._resizeObserver = null, this._itemResizeObserver = null;\n }\n attributeChangedCallback(t) {\n t === \"item-height\" && this._syncSizingMode(true), t === \"selectable\" && this.selectable === \"none\" && this._selectedIndices.size > 0 && (this._selectedIndices.clear(), this._emitSelectionChange()), this._render();\n }\n _onScroll = () => {\n this._virtualizer.setScrollTop(this._viewport.scrollTop), this._render();\n };\n _syncSizingMode(t) {\n let e = this.itemHeight;\n this._virtualizer.setFixedSize(e), this._virtualizer.setEstimateSize(e ?? st), t && this._virtualizer.resetMeasurements();\n }\n _render() {\n if (!this.isConnected) return;\n if (this._emptyState.textContent = this.emptyText, this._emptyState.hidden = this._items.length > 0, this._items.length === 0) {\n this._itemsLayer.replaceChildren(), this._spacer.style.height = \"100%\";\n return;\n }\n this._virtualizer.setScrollTop(this._viewport.scrollTop), this._virtualizer.setViewportHeight(this._viewport.clientHeight), this._virtualizer.setCount(this._items.length);\n let t = this._virtualizer.getRange();\n this._spacer.style.height = `${Math.max(t.totalHeight, this._viewport.clientHeight)}px`, this._itemsLayer.style.transform = `translateY(${t.paddingTop}px)`;\n let e = document.createDocumentFragment();\n for (let n = t.start; n < t.end; n += 1) e.appendChild(this._renderVisibleItem(n));\n this._itemsLayer.replaceChildren(e);\n }\n _renderVisibleItem(t) {\n let e = this._items[t], n = document.createElement(\"div\");\n if (n.className = \"dt-list-item\", n.dataset.index = String(t), this.selectable !== \"none\" && (n.classList.add(\"dt-list-item--interactive\"), n.setAttribute(\"role\", \"option\"), n.setAttribute(\"aria-selected\", String(this._selectedIndices.has(t))), n.tabIndex = 0), this._selectedIndices.has(t) && n.classList.add(\"dt-list-item--selected\"), this.itemHeight !== null && (n.style.minHeight = `${this.itemHeight}px`), this._renderItem) this._renderItem(e, n, t);\n else {\n let i = this._getTemplate();\n i ? n.appendChild(M(i, Pt(e))) : n.textContent = String(e ?? \"\");\n }\n return n.addEventListener(\"click\", () => this._handleItemClick(t)), n.addEventListener(\"keydown\", (i) => {\n (i.key === \"Enter\" || i.key === \" \") && (i.preventDefault(), this._handleItemClick(t));\n }), this.itemHeight === null && this._itemResizeObserver?.observe(n), n;\n }\n _handleItemClick(t) {\n let e = this._items[t], n = this.selectable;\n n === \"single\" ? (this._selectedIndices = /* @__PURE__ */ new Set([t]), this._emitSelectionChange(), this._render()) : n === \"multi\" && (this._selectedIndices.has(t) ? this._selectedIndices.delete(t) : this._selectedIndices.add(t), this._emitSelectionChange(), this._render()), this.dispatchEvent(new CustomEvent(\"dt-item-click\", { detail: { item: e, index: t }, bubbles: true, composed: true }));\n }\n _emitSelectionChange() {\n this.dispatchEvent(new CustomEvent(\"dt-selection-change\", { detail: { selected: this.selectedItems }, bubbles: true, composed: true }));\n }\n _getTemplate() {\n for (let t of Array.from(this.children)) if (t instanceof HTMLTemplateElement) return t;\n return null;\n }\n};\nvar ot = `: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`;\nvar L = null;\nfunction at() {\n return window.__DtChart ? Promise.resolve(window.__DtChart) : L || (L = new Promise((r, t) => {\n let e = document.createElement(\"script\");\n e.src = \"/api/ui/chart.umd.js\", e.async = true, e.dataset.dtChart = \"true\", e.onload = () => {\n if (window.__DtChart) {\n r(window.__DtChart);\n return;\n }\n t(new Error(\"Chart runtime loaded without a __DtChart export.\"));\n }, e.onerror = () => t(new Error(\"Failed to load the Chart.js runtime bundle.\")), document.head.appendChild(e);\n }), L);\n}\nfunction v(r, t, e) {\n return Math.min(e, Math.max(t, r));\n}\nfunction It(r) {\n return r ? r.split(\",\").map((t) => t.trim()).filter(Boolean) : [];\n}\nfunction X(r) {\n let t = r.trim().match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i);\n if (t) {\n let i = t[1], s = i.length === 3 ? i.split(\"\").map((c) => `${c}${c}`).join(\"\") : i, o = parseInt(s.slice(0, 2), 16) / 255, a = parseInt(s.slice(2, 4), 16) / 255, d = parseInt(s.slice(4, 6), 16) / 255;\n return dt(o, a, d);\n }\n let e = r.trim().match(/^rgba?\\((\\d+(?:\\.\\d+)?)[,\\s]+(\\d+(?:\\.\\d+)?)[,\\s]+(\\d+(?:\\.\\d+)?)(?:[,/\\s]+[\\d.]+)?\\)$/i);\n if (e) return dt(Number(e[1]) / 255, Number(e[2]) / 255, Number(e[3]) / 255);\n let n = r.trim().match(/^hsla?\\(([-\\d.]+)(?:deg)?[,\\s]+([\\d.]+)%[,\\s]+([\\d.]+)%(?:[,/\\s]+[\\d.]+)?\\)$/i);\n return n ? { h: (Number(n[1]) % 360 + 360) % 360, s: v(Number(n[2]), 0, 100), l: v(Number(n[3]), 0, 100) } : null;\n}\nfunction dt(r, t, e) {\n let n = Math.max(r, t, e), i = Math.min(r, t, e), s = n - i, o = 0, a = (n + i) / 2, d = s === 0 ? 0 : s / (1 - Math.abs(2 * a - 1));\n if (s !== 0) switch (n) {\n case r:\n o = 60 * ((t - e) / s % 6);\n break;\n case t:\n o = 60 * ((e - r) / s + 2);\n break;\n default:\n o = 60 * ((r - t) / s + 4);\n break;\n }\n return { h: (o + 360) % 360, s: Math.round(d * 100), l: Math.round(a * 100) };\n}\nfunction g(r, t = 1) {\n return `hsla(${Math.round(r.h)} ${Math.round(r.s)}% ${Math.round(r.l)}% / ${t})`;\n}\nfunction Nt(r) {\n let t = X(r) ?? { h: 185, s: 88, l: 56 };\n return [0, 32, 68, 118, 164, 212, 258, 304].map((n, i) => ({ h: (t.h + n) % 360, s: v(t.s - i * 2, 55, 90), l: v(t.l + (i % 2 === 0 ? 0 : 6) - i, 38, 66) }));\n}\nfunction H(r) {\n return !!r && typeof r == \"object\" && !Array.isArray(r);\n}\nfunction lt(r, t) {\n if (!H(r) || !H(t)) return t ?? r;\n let e = { ...r };\n for (let [n, i] of Object.entries(t)) {\n let s = e[n];\n e[n] = H(s) && H(i) ? lt(s, i) : i;\n }\n return e;\n}\nfunction Ft(r) {\n return r === \"top\" || r === \"bottom\" || r === \"left\" || r === \"right\" ? r : \"none\";\n}\nfunction Ot(r) {\n return r === \"bar\" || r === \"line\" || r === \"area\" || r === \"pie\" || r === \"doughnut\" || r === \"radar\" || r === \"scatter\" || r === \"bubble\" ? r : \"bar\";\n}\nfunction Bt(r) {\n return r === \"bar\" || r === \"line\" || r === \"area\" || r === \"scatter\" || r === \"bubble\";\n}\nfunction $t(r) {\n return r.map((t) => t.trim()).filter(Boolean);\n}\nvar R = class extends HTMLElement {\n _canvas;\n _status;\n _runtime = null;\n _loadPromise = null;\n _chart = null;\n _renderedType = null;\n _dataInput = null;\n _optionsOverride = null;\n _syncFrame = 0;\n static get observedAttributes() {\n return [\"type\", \"legend\", \"stacked\", \"labels\"];\n }\n get type() {\n return Ot(this.getAttribute(\"type\"));\n }\n set type(t) {\n this.setAttribute(\"type\", t);\n }\n get legend() {\n return Ft(this.getAttribute(\"legend\"));\n }\n set legend(t) {\n this.setAttribute(\"legend\", t);\n }\n get stacked() {\n return this.hasAttribute(\"stacked\");\n }\n set stacked(t) {\n this.toggleAttribute(\"stacked\", t);\n }\n get labels() {\n return $t(It(this.getAttribute(\"labels\")));\n }\n set labels(t) {\n this.setAttribute(\"labels\", t.join(\",\"));\n }\n get data() {\n return this._dataInput;\n }\n set data(t) {\n this._dataInput = t ? structuredClone(t) : null, this._scheduleSync();\n }\n get options() {\n return this._optionsOverride;\n }\n set options(t) {\n this._optionsOverride = t ? structuredClone(t) : null, this._renderChart();\n }\n constructor() {\n super();\n let t = this.attachShadow({ mode: \"open\" }), e = document.createElement(\"style\");\n e.textContent = ot, t.appendChild(e);\n let n = document.createElement(\"div\");\n n.className = \"dt-chart\", this._canvas = document.createElement(\"canvas\"), this._canvas.className = \"dt-chart__canvas\", this._status = document.createElement(\"div\"), this._status.className = \"dt-chart__status\", this._status.textContent = \"Loading chart\", n.append(this._canvas, this._status), t.appendChild(n);\n }\n connectedCallback() {\n this._canvas.addEventListener(\"click\", this._handleCanvasClick), this._ensureRuntime().then(() => this._renderChart()), this._scheduleSync();\n }\n disconnectedCallback() {\n this._canvas.removeEventListener(\"click\", this._handleCanvasClick), this._syncFrame !== 0 && (cancelAnimationFrame(this._syncFrame), this._syncFrame = 0), this._chart?.destroy(), this._chart = null, this._renderedType = null;\n }\n attributeChangedCallback() {\n this._scheduleSync();\n }\n _handleCanvasClick = (t) => {\n if (!this._chart) return;\n let n = this._chart.getElementsAtEventForMode(t, \"nearest\", { intersect: true }, true)[0];\n if (!n) return;\n let i = Array.isArray(this._chart.data.labels) ? this._chart.data.labels[n.index] ?? null : null, s = this._chart.data.datasets[n.datasetIndex], o = Array.isArray(s?.data) ? s.data[n.index] : void 0;\n this.dispatchEvent(new CustomEvent(\"dt-chart-click\", { bubbles: true, composed: true, detail: { label: i, datasetIndex: n.datasetIndex, index: n.index, value: o } }));\n };\n _scheduleSync() {\n this._syncFrame === 0 && (this._syncFrame = requestAnimationFrame(() => {\n this._syncFrame = 0, this._syncFromCurrentSource();\n }));\n }\n _syncFromCurrentSource() {\n this._renderChart();\n }\n async _ensureRuntime() {\n return this._runtime ? this._runtime : (this._loadPromise || (this._loadPromise = at().then((t) => (this._runtime = t, t))), this._loadPromise);\n }\n async _renderChart() {\n let t = this._dataInput;\n if (!t) {\n this._setStatus(\"Waiting for data\");\n return;\n }\n let e = await this._ensureRuntime(), n = this._buildConfig(e, t), i = n.type;\n !this._chart || this._renderedType !== i ? (this._chart?.destroy(), this._chart = new e.Chart(this._canvas, n), this._renderedType = i) : (this._chart.data = n.data, this._chart.options = n.options, this._chart.update()), this._setStatus(t.datasets.length > 0 ? null : \"Waiting for data\");\n }\n _buildConfig(t, e) {\n let n = getComputedStyle(this), i = n.getPropertyValue(\"--dt-accent\").trim() || \"#42d4ff\", s = n.getPropertyValue(\"--dt-text\").trim() || \"#d6ebff\", o = n.getPropertyValue(\"--dt-text-muted\").trim() || \"#7b93a6\", a = n.getPropertyValue(\"--dt-border\").trim() || \"rgba(123, 147, 166, 0.3)\", d = n.getPropertyValue(\"--font-mono\").trim() || \"'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, monospace\", c = Nt(i), l = this.type === \"area\" ? \"line\" : this.type, f = { labels: e.labels ?? this.labels, datasets: e.datasets.map((h, gt) => {\n let F = c[gt % c.length], p = h.color ?? g(F, 1), O = { label: h.label ?? \"\", data: h.data, backgroundColor: l === \"line\" || l === \"radar\" || l === \"scatter\" ? g(F, l === \"scatter\" ? 0.95 : 0.24) : p, borderColor: p, pointBackgroundColor: p, pointBorderColor: p, pointHoverBackgroundColor: p, pointRadius: this.type === \"line\" || this.type === \"area\" ? 3 : 4, pointHoverRadius: this.type === \"line\" || this.type === \"area\" ? 5 : 6, borderWidth: 2, tension: l === \"line\" || this.type === \"area\" ? 0.32 : void 0, fill: this.type === \"area\" };\n return l === \"pie\" || l === \"doughnut\" ? { ...O, backgroundColor: Array.isArray(h.data) ? h.data.map((bt, B) => g(c[B % c.length], 0.86)) : p, borderColor: Array.isArray(h.data) ? h.data.map((bt, B) => g(c[B % c.length], 1)) : p, borderWidth: 1 } : l === \"scatter\" || l === \"bubble\" ? { ...O, showLine: false, backgroundColor: g(F, 0.78) } : O;\n }) }, _ = { responsive: true, maintainAspectRatio: false, animation: { duration: 320 }, interaction: { mode: \"nearest\", intersect: true }, plugins: { legend: { display: this.legend !== \"none\", position: this.legend === \"none\" ? \"top\" : this.legend, labels: { color: s, boxWidth: 12, boxHeight: 12, padding: 14, font: { family: d, size: 11 } } }, tooltip: { backgroundColor: \"rgba(10, 18, 24, 0.92)\", borderColor: Xt(a, i, 0.35), borderWidth: 1, titleColor: s, bodyColor: s, footerColor: o, titleFont: { family: d, size: 11 }, bodyFont: { family: d, size: 11 }, padding: 10 } }, scales: Bt(this.type) ? { x: { stacked: this.stacked, grid: { display: false, color: a }, border: { color: a }, ticks: { color: o, font: { family: d, size: 11 } } }, y: { stacked: this.stacked, beginAtZero: true, grid: { display: false, color: a }, border: { color: a }, ticks: { color: o, font: { family: d, size: 11 } } } } : l === \"radar\" ? { r: { angleLines: { color: a }, grid: { color: a }, pointLabels: { color: o, font: { family: d, size: 11 } }, ticks: { color: o, backdropColor: \"transparent\", font: { family: d, size: 10 } } } } : void 0 };\n return { type: l, data: f, options: lt(_, this._optionsOverride ?? {}) };\n }\n _setStatus(t) {\n if (!t) {\n this._status.hidden = true;\n return;\n }\n this._status.hidden = false, this._status.textContent = t;\n }\n};\nfunction Xt(r, t, e) {\n let n = X(r), i = X(t);\n if (!n || !i) return r;\n let s = v(e, 0, 1), o = ((i.h - n.h) % 360 + 540) % 360 - 180;\n return g({ h: (n.h + o * s + 360) % 360, s: n.s + (i.s - n.s) * s, l: n.l + (i.l - n.l) * s });\n}\nvar ct = `: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`;\nvar V = null;\nfunction ht() {\n return window.__DtMarked ? Promise.resolve(window.__DtMarked) : V || (V = new Promise((r, t) => {\n let e = document.createElement(\"script\");\n e.src = \"/api/ui/marked.js\", e.async = true, e.dataset.dtMarked = \"true\", e.onload = () => {\n if (window.__DtMarked) {\n r(window.__DtMarked);\n return;\n }\n t(new Error(\"Marked runtime loaded without a __DtMarked export.\"));\n }, e.onerror = () => t(new Error(\"Failed to load the marked runtime bundle.\")), document.head.appendChild(e);\n }), V);\n}\nfunction ut(r) {\n return r.replaceAll(`\\r\n`, `\n`);\n}\nfunction Jt(r) {\n let t = ut(r).split(`\n`);\n for (; t.length > 0 && t[0].trim() === \"\"; ) t.shift();\n for (; t.length > 0 && t[t.length - 1].trim() === \"\"; ) t.pop();\n let e = t.filter((i) => i.trim() !== \"\").map((i) => i.match(/^\\s*/)?.[0].length ?? 0), n = e.length > 0 ? Math.min(...e) : 0;\n return n === 0 ? t.join(`\n`) : t.map((i) => i.slice(n)).join(`\n`);\n}\nfunction Wt(r) {\n let t = ut(r);\n if ((t.match(/(^|\\n)(```|~~~)/g) ?? []).length % 2 === 0) return t;\n let n = t.includes(\"~~~\") && !t.includes(\"```\") ? \"~~~\" : \"```\";\n return `${t}\n${n}`;\n}\nvar P = class extends HTMLElement {\n _body;\n _caret;\n _contentOverride = null;\n _runtime = null;\n _loadPromise = null;\n _observer = null;\n _renderFrame = 0;\n static get observedAttributes() {\n return [\"streaming\", \"unsafe-html\"];\n }\n get content() {\n return this._contentOverride ?? this._readInlineMarkdown();\n }\n set content(t) {\n this._contentOverride = String(t ?? \"\"), this._scheduleRender();\n }\n get streaming() {\n return this.hasAttribute(\"streaming\");\n }\n set streaming(t) {\n this.toggleAttribute(\"streaming\", t);\n }\n get unsafeHtml() {\n return this.hasAttribute(\"unsafe-html\");\n }\n set unsafeHtml(t) {\n this.toggleAttribute(\"unsafe-html\", t);\n }\n constructor() {\n super();\n let t = this.attachShadow({ mode: \"open\" }), e = document.createElement(\"style\");\n e.textContent = ct, t.appendChild(e), this._body = document.createElement(\"div\"), this._body.className = \"dt-markdown\", this._body.addEventListener(\"click\", this._onLinkClick), this._caret = document.createElement(\"span\"), this._caret.className = \"dt-markdown__caret\", this._caret.textContent = \"\\u258C\", this._caret.hidden = true, t.append(this._body, this._caret);\n }\n connectedCallback() {\n this._observer || (this._observer = new MutationObserver(() => {\n this._contentOverride === null && this._scheduleRender();\n }), this._observer.observe(this, { childList: true, characterData: true, subtree: true })), this._ensureRuntime(), this._scheduleRender();\n }\n disconnectedCallback() {\n this._observer?.disconnect(), this._observer = null, this._renderFrame !== 0 && (cancelAnimationFrame(this._renderFrame), this._renderFrame = 0);\n }\n attributeChangedCallback() {\n this._scheduleRender();\n }\n _onLinkClick = (t) => {\n let n = t.composedPath().find((i) => i instanceof HTMLAnchorElement);\n n && (t.preventDefault(), this.dispatchEvent(new CustomEvent(\"dt-link-click\", { bubbles: true, composed: true, detail: { href: n.getAttribute(\"href\") ?? \"#\" } })));\n };\n _readInlineMarkdown() {\n return Jt(this.textContent ?? \"\");\n }\n _scheduleRender() {\n this._renderFrame === 0 && (this._renderFrame = requestAnimationFrame(() => {\n this._renderFrame = 0, this._render();\n }));\n }\n async _ensureRuntime() {\n return this._runtime ? this._runtime : (this._loadPromise || (this._loadPromise = ht().then((t) => (this._runtime = t, t))), this._loadPromise);\n }\n async _render() {\n let t = await this._ensureRuntime(), e = this.content;\n this.streaming && (e = Wt(e)), this._body.innerHTML = t.render(e, { unsafeHtml: this.unsafeHtml }), this._caret.hidden = !this.streaming;\n }\n};\nvar pt = `: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`;\nvar I = null;\nfunction mt() {\n return window.__DtMilkdown ? Promise.resolve(window.__DtMilkdown) : I || (I = new Promise((r, t) => {\n let e = document.createElement(\"script\");\n e.src = \"/api/ui/milkdown.umd.js\", e.async = true, e.dataset.dtMilkdown = \"true\", e.onload = () => {\n if (window.__DtMilkdown) {\n r(window.__DtMilkdown);\n return;\n }\n t(new Error(\"Milkdown runtime loaded without a __DtMilkdown export.\"));\n }, e.onerror = () => t(new Error(\"Failed to load the Milkdown runtime bundle.\")), document.head.appendChild(e);\n }), I);\n}\nvar N = class extends HTMLElement {\n _runtimeStyle;\n _surface;\n _content;\n _status;\n _runtime = null;\n _loadPromise = null;\n _editor = null;\n _pendingValue = \"\";\n _changeTimer = null;\n _setupToken = 0;\n _suppressNextChange = false;\n static get observedAttributes() {\n return [\"placeholder\", \"readonly\"];\n }\n get placeholder() {\n return this.getAttribute(\"placeholder\") ?? \"\";\n }\n set placeholder(t) {\n this.setAttribute(\"placeholder\", t);\n }\n get readonly() {\n return this.hasAttribute(\"readonly\");\n }\n set readonly(t) {\n this.toggleAttribute(\"readonly\", t);\n }\n get value() {\n return this._editor && (this._pendingValue = this._editor.getMarkdown()), this._pendingValue;\n }\n set value(t) {\n let e = String(t ?? \"\");\n this._pendingValue = e, this._editor && this._runtime && this._editor.getMarkdown() !== e && (this._suppressNextChange = true, this._editor.editor.action(this._runtime.replaceAll(e)));\n }\n constructor() {\n super();\n let t = this.attachShadow({ mode: \"open\" }), e = document.createElement(\"style\");\n e.textContent = pt, t.appendChild(e), this._runtimeStyle = document.createElement(\"style\"), t.appendChild(this._runtimeStyle), this._surface = document.createElement(\"div\"), this._surface.className = \"dt-markdown-editor\", this._content = document.createElement(\"div\"), this._content.className = \"dt-markdown-editor__surface\";\n let n = document.createElement(\"div\");\n n.className = \"dt-markdown-editor__content\", this._content.appendChild(n), this._status = document.createElement(\"div\"), this._status.className = \"dt-markdown-editor__status\", this._status.textContent = \"Loading editor\", this._surface.append(this._content, this._status), t.appendChild(this._surface);\n }\n connectedCallback() {\n this._initializeEditor();\n }\n disconnectedCallback() {\n this._setupToken += 1, this._clearChangeTimer(), this._destroyEditor();\n }\n attributeChangedCallback(t) {\n if (t === \"readonly\") {\n this._editor?.setReadonly(this.readonly);\n return;\n }\n t === \"placeholder\" && this.isConnected && this._initializeEditor(true);\n }\n async _ensureRuntime() {\n return this._runtime ? this._runtime : (this._loadPromise || (this._loadPromise = mt().then((t) => (this._runtime = t, this._runtimeStyle.textContent = t.cssText, t))), this._loadPromise);\n }\n async _initializeEditor(t = false) {\n let e = ++this._setupToken;\n if (this._setStatus(\"Loading editor\"), t) await this._destroyEditor();\n else if (this._editor) {\n this._setStatus(null);\n return;\n }\n try {\n let n = await this._ensureRuntime();\n if (!this.isConnected || e !== this._setupToken) return;\n this._content.replaceChildren();\n let i = document.createElement(\"div\");\n i.className = \"dt-markdown-editor__content\", this._content.appendChild(i);\n let s = new n.Crepe({ root: i, defaultValue: this._pendingValue, features: { [n.Crepe.Feature.CodeMirror]: false, [n.Crepe.Feature.ImageBlock]: false, [n.Crepe.Feature.Latex]: false }, featureConfigs: { [n.Crepe.Feature.Placeholder]: { text: this.placeholder, mode: \"doc\" } } });\n if (s.on((o) => {\n o.markdownUpdated((a, d) => {\n if (this._pendingValue = d, this._suppressNextChange) {\n this._suppressNextChange = false;\n return;\n }\n this._queueChange(d);\n }), o.focus(() => {\n this.dispatchEvent(new CustomEvent(\"dt-focus\", { bubbles: true, composed: true }));\n }), o.blur(() => {\n this.dispatchEvent(new CustomEvent(\"dt-blur\", { bubbles: true, composed: true }));\n });\n }), await s.create(), !this.isConnected || e !== this._setupToken) {\n await s.destroy();\n return;\n }\n this._editor = s, this._editor.setReadonly(this.readonly), this._pendingValue = this._editor.getMarkdown(), this._setStatus(null);\n } catch {\n e === this._setupToken && this._setStatus(\"Failed to load editor\");\n }\n }\n async _destroyEditor() {\n let t = this._editor;\n if (this._editor = null, !!t) try {\n await t.destroy();\n } catch {\n }\n }\n _queueChange(t) {\n this._clearChangeTimer(), this._changeTimer = setTimeout(() => {\n this._changeTimer = null, this.dispatchEvent(new CustomEvent(\"dt-change\", { bubbles: true, composed: true, detail: { value: t } }));\n }, 300);\n }\n _clearChangeTimer() {\n this._changeTimer && (clearTimeout(this._changeTimer), this._changeTimer = null);\n }\n _setStatus(t) {\n if (t) {\n this._status.hidden = false, this._status.textContent = t;\n return;\n }\n this._status.hidden = true;\n }\n};\ncustomElements.get(\"dt-tooltip\") || customElements.define(\"dt-tooltip\", x);\ncustomElements.get(\"dt-card\") || customElements.define(\"dt-card\", w);\ncustomElements.get(\"dt-select\") || customElements.define(\"dt-select\", y);\ncustomElements.get(\"dt-grid\") || customElements.define(\"dt-grid\", k);\ncustomElements.get(\"dt-stack\") || customElements.define(\"dt-stack\", C);\ncustomElements.get(\"dt-stat\") || customElements.define(\"dt-stat\", E);\ncustomElements.get(\"dt-badge\") || customElements.define(\"dt-badge\", S);\ncustomElements.get(\"dt-button\") || customElements.define(\"dt-button\", D);\ncustomElements.get(\"dt-divider\") || customElements.define(\"dt-divider\", A);\ncustomElements.get(\"dt-list-view\") || customElements.define(\"dt-list-view\", z);\ncustomElements.get(\"dt-table-view\") || customElements.define(\"dt-table-view\", T);\ncustomElements.get(\"dt-column\") || customElements.define(\"dt-column\", b);\ncustomElements.get(\"dt-chart\") || customElements.define(\"dt-chart\", R);\ncustomElements.get(\"dt-markdown\") || customElements.define(\"dt-markdown\", P);\ncustomElements.get(\"dt-markdown-editor\") || customElements.define(\"dt-markdown-editor\", N);\n\n// src/styles/PreferenceApp.module.css\nvar PreferenceApp_default = {\n root: \"PreferenceApp_root\",\n rootCompact: \"PreferenceApp_rootCompact\",\n sidebar: \"PreferenceApp_sidebar\",\n sidebarHeader: \"PreferenceApp_sidebarHeader\",\n categoryItem: \"PreferenceApp_categoryItem\",\n categoryItemActive: \"PreferenceApp_categoryItem PreferenceApp_categoryItemActive\",\n categoryIcon: \"PreferenceApp_categoryIcon\",\n categoryText: \"PreferenceApp_categoryText\",\n settingsPanel: \"PreferenceApp_settingsPanel\",\n section: \"PreferenceApp_section\",\n sectionTitle: \"PreferenceApp_sectionTitle\",\n row: \"PreferenceApp_row\",\n rowInfo: \"PreferenceApp_rowInfo\",\n rowLabel: \"PreferenceApp_rowLabel\",\n rowDescription: \"PreferenceApp_rowDescription\",\n rowRestartBadge: \"PreferenceApp_rowRestartBadge\",\n rowControl: \"PreferenceApp_rowControl\",\n providerGroup: \"PreferenceApp_providerGroup\",\n providerGroupHeader: \"PreferenceApp_providerGroupHeader\",\n providerList: \"PreferenceApp_providerList\",\n providerCard: \"PreferenceApp_providerCard\",\n providerCardBody: \"PreferenceApp_providerCardBody\",\n providerCardHeader: \"PreferenceApp_providerCardHeader\",\n providerCardTitleRow: \"PreferenceApp_providerCardTitleRow\",\n providerCardTitle: \"PreferenceApp_providerCardTitle\",\n providerDefaultBadge: \"PreferenceApp_providerDefaultBadge\",\n providerCardActions: \"PreferenceApp_providerCardActions\",\n providerActionButtonWrap: \"PreferenceApp_providerActionButtonWrap\",\n providerButtonWrap: \"PreferenceApp_providerButtonWrap\",\n providerFieldGrid: \"PreferenceApp_providerFieldGrid\",\n providerField: \"PreferenceApp_providerField\",\n providerFieldLabel: \"PreferenceApp_providerFieldLabel\",\n providerSelectWrap: \"PreferenceApp_providerSelectWrap\",\n selectWrap: \"PreferenceApp_selectWrap\",\n textInput: \"PreferenceApp_textInput\",\n numberInput: \"PreferenceApp_numberInput\",\n dropdown: \"PreferenceApp_dropdown\",\n textInputSensitive: \"PreferenceApp_textInput PreferenceApp_textInputSensitive\",\n colorControl: \"PreferenceApp_colorControl\",\n colorInput: \"PreferenceApp_colorInput\",\n toggle: \"PreferenceApp_toggle\",\n toggleInput: \"PreferenceApp_toggleInput\",\n toggleTrack: \"PreferenceApp_toggleTrack\",\n toggleKnob: \"PreferenceApp_toggleKnob\",\n notification: \"PreferenceApp_notification\",\n slideUp: \"PreferenceApp_slideUp\"\n};\n\n// desktalk-global:react/jsx-runtime\nvar _mod3 = window.__desktalk_jsx_runtime;\nvar jsx = _mod3.jsx;\nvar jsxs = _mod3.jsxs;\nvar jsxDEV = _mod3.jsxDEV;\nvar Fragment2 = _mod3.Fragment;\n\n// src/components/PreferenceCategoryList.tsx\nvar CATEGORY_ICONS = {\n General: \"\\u2699\",\n Server: \"\\u{1F310}\",\n AI: \"\\u{1F916}\",\n Voice: \"\\u{1F399}\"\n};\nfunction PreferenceCategoryList({\n activeCategory,\n onSelect,\n compact = false\n}) {\n return /* @__PURE__ */ jsxs(\"nav\", { className: PreferenceApp_default.sidebar, children: [\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.sidebarHeader, children: \"Settings\" }),\n CATEGORIES.map((category) => {\n const button = /* @__PURE__ */ jsxs(\n \"button\",\n {\n className: category === activeCategory ? PreferenceApp_default.categoryItemActive : PreferenceApp_default.categoryItem,\n onClick: () => onSelect(category),\n type: \"button\",\n \"aria-label\": compact ? category : void 0,\n children: [\n /* @__PURE__ */ jsx(\"span\", { className: PreferenceApp_default.categoryIcon, children: CATEGORY_ICONS[category] }),\n !compact && /* @__PURE__ */ jsx(\"span\", { className: PreferenceApp_default.categoryText, children: category })\n ]\n },\n category\n );\n if (compact) {\n return /* @__PURE__ */ jsx(\"dt-tooltip\", { content: category, placement: \"bottom\", children: button }, category);\n }\n return button;\n })\n ] });\n}\n\n// src/components/AiProviderList.tsx\nfunction AiProviderList({ config, onChange }) {\n const enabledProviders = useMemo(() => {\n const providers = parseAiEnabledProviders(config[\"ai.enabledProviders\"]);\n const defaultProvider = typeof config[\"ai.defaultProvider\"] === \"string\" && config[\"ai.defaultProvider\"] ? String(config[\"ai.defaultProvider\"]) : DEFAULT_AI_PROVIDER_ID;\n if (!providers.includes(defaultProvider)) {\n providers.unshift(defaultProvider);\n }\n return providers;\n }, [config]);\n const updateOrder = useCallback(\n async (providerIds) => {\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 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 await updateOrder([...enabledProviders, nextProvider.id]);\n }, [enabledProviders, updateOrder]);\n const handleProviderChange = useCallback(\n async (providerId, nextProviderId) => {\n if (providerId === nextProviderId || enabledProviders.includes(nextProviderId)) {\n return;\n }\n const nextProviders = enabledProviders.map(\n (currentProviderId) => currentProviderId === providerId ? nextProviderId : currentProviderId\n );\n await updateOrder(nextProviders);\n },\n [enabledProviders, updateOrder]\n );\n const handleDeleteProvider = useCallback(\n async (providerId) => {\n if (enabledProviders.length === 1) {\n return;\n }\n const nextProviders = enabledProviders.filter(\n (currentProviderId) => currentProviderId !== providerId\n );\n await updateOrder(nextProviders);\n for (const key of getAiProviderConfigKeys(providerId)) {\n await onChange(key, \"\");\n }\n },\n [enabledProviders, onChange, updateOrder]\n );\n const handleSetDefault = useCallback(\n async (providerId) => {\n if (enabledProviders[0] === providerId) {\n return;\n }\n const nextProviders = [\n providerId,\n ...enabledProviders.filter((currentProviderId) => currentProviderId !== providerId)\n ];\n await updateOrder(nextProviders);\n },\n [enabledProviders, updateOrder]\n );\n return /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerGroup, children: [\n /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerGroupHeader, children: [\n /* @__PURE__ */ jsxs(\"div\", { children: [\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.rowLabel, children: \"Providers\" }),\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.rowDescription, children: \"Add providers, keep your default at the top, and remove anything you no longer use.\" })\n ] }),\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.providerActionButtonWrap, children: /* @__PURE__ */ jsx(\n ProviderButton,\n {\n onPress: handleAddProvider,\n disabled: enabledProviders.length >= AI_PROVIDER_DEFINITIONS.length,\n variant: \"secondary\",\n children: \"Add provider\"\n }\n ) })\n ] }),\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.providerList, children: enabledProviders.map((providerId, index) => {\n const definition = getAiProviderDefinition(providerId);\n if (!definition) {\n return null;\n }\n const availableOptions = AI_PROVIDER_DEFINITIONS.filter(\n (provider) => provider.id === providerId || !enabledProviders.includes(provider.id)\n );\n return /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.providerCard, children: /* @__PURE__ */ jsx(\"dt-card\", { variant: \"outlined\", children: /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerCardBody, children: [\n /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerCardHeader, children: [\n /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerCardTitleRow, children: [\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.providerCardTitle, children: definition.label }),\n index === 0 && /* @__PURE__ */ jsx(\"span\", { className: PreferenceApp_default.providerDefaultBadge, children: \"Default\" })\n ] }),\n /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerCardActions, children: [\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.providerButtonWrap, children: /* @__PURE__ */ jsx(\n ProviderButton,\n {\n onPress: () => handleSetDefault(providerId),\n disabled: index === 0,\n variant: \"secondary\",\n size: \"sm\",\n children: \"Set as default\"\n }\n ) }),\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.providerButtonWrap, children: /* @__PURE__ */ jsx(\n ProviderButton,\n {\n onPress: () => handleDeleteProvider(providerId),\n disabled: enabledProviders.length === 1,\n variant: \"danger\",\n size: \"sm\",\n children: \"Delete\"\n }\n ) })\n ] })\n ] }),\n /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerFieldGrid, children: [\n /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerField, children: [\n /* @__PURE__ */ jsx(\n \"label\",\n {\n className: PreferenceApp_default.providerFieldLabel,\n htmlFor: `ai-provider-${providerId}`,\n children: \"Provider\"\n }\n ),\n /* @__PURE__ */ jsx(\n ProviderSelect,\n {\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 ] }),\n definition.supportsApiKey && /* @__PURE__ */ jsx(\n ProviderTextField,\n {\n id: `ai-provider-key-${providerId}`,\n label: \"API Key\",\n value: String(config[`ai.providers.${providerId}.apiKey`] ?? \"\"),\n sensitive: true,\n onCommit: (value) => onChange(`ai.providers.${providerId}.apiKey`, value)\n }\n ),\n /* @__PURE__ */ jsx(\n ProviderTextField,\n {\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 && /* @__PURE__ */ jsx(\n ProviderTextField,\n {\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 ] })\n ] }) }) }, providerId);\n }) })\n ] });\n}\nfunction ProviderButton({\n children,\n disabled = false,\n variant = \"primary\",\n size = \"md\",\n onPress\n}) {\n const [buttonElement, setButtonElement] = useState(null);\n useEffect(() => {\n if (!buttonElement) {\n return;\n }\n const handleClick = () => {\n void onPress();\n };\n buttonElement.addEventListener(\"click\", handleClick);\n return () => buttonElement.removeEventListener(\"click\", handleClick);\n }, [buttonElement, onPress]);\n return /* @__PURE__ */ jsx(\n \"dt-button\",\n {\n ref: (element) => setButtonElement(element),\n disabled,\n variant,\n size,\n children\n }\n );\n}\nfunction ProviderSelect({ value, options, disabled = false, onChange }) {\n const [selectElement, setSelectElement] = useState(null);\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n selectElement.options = options;\n }, [options, selectElement]);\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n selectElement.value = value;\n }, [selectElement, value]);\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n selectElement.disabled = disabled;\n }, [disabled, selectElement]);\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n const handleChange = (event) => {\n void onChange(event.detail.value);\n };\n selectElement.addEventListener(\"dt-change\", handleChange);\n return () => selectElement.removeEventListener(\"dt-change\", handleChange);\n }, [onChange, selectElement]);\n return /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.providerSelectWrap, children: /* @__PURE__ */ jsx(\"dt-select\", { ref: (element) => setSelectElement(element) }) });\n}\nfunction ProviderTextField({\n id,\n label,\n value,\n sensitive = false,\n onCommit\n}) {\n const [localValue, setLocalValue] = useState(value);\n useEffect(() => {\n setLocalValue(value);\n }, [value]);\n const commit = useCallback(() => {\n if (localValue !== value) {\n void onCommit(localValue);\n }\n }, [localValue, onCommit, value]);\n return /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerField, children: [\n /* @__PURE__ */ jsx(\"label\", { className: PreferenceApp_default.providerFieldLabel, htmlFor: id, children: label }),\n /* @__PURE__ */ jsx(\n \"input\",\n {\n id,\n type: sensitive ? \"password\" : \"text\",\n className: sensitive ? PreferenceApp_default.textInputSensitive : PreferenceApp_default.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 )\n ] });\n}\n\n// src/components/VoiceProviderList.tsx\nfunction VoiceProviderList({ config, onChange }) {\n const enabledProviders = useMemo(() => {\n const providers = parseVoiceEnabledProviders(config[\"voice.enabledProviders\"]);\n const defaultProvider = typeof config[\"voice.defaultProvider\"] === \"string\" && config[\"voice.defaultProvider\"] ? String(config[\"voice.defaultProvider\"]) : DEFAULT_VOICE_PROVIDER_ID;\n if (!providers.includes(defaultProvider)) {\n providers.unshift(defaultProvider);\n }\n return providers;\n }, [config]);\n const updateOrder = useCallback(\n async (providerIds) => {\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 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 await updateOrder([...enabledProviders, nextProvider.id]);\n }, [enabledProviders, updateOrder]);\n const handleProviderChange = useCallback(\n async (providerId, nextProviderId) => {\n if (providerId === nextProviderId || enabledProviders.includes(nextProviderId)) {\n return;\n }\n const nextProviders = enabledProviders.map(\n (currentProviderId) => currentProviderId === providerId ? nextProviderId : currentProviderId\n );\n await updateOrder(nextProviders);\n },\n [enabledProviders, updateOrder]\n );\n const handleDeleteProvider = useCallback(\n async (providerId) => {\n if (enabledProviders.length === 1) {\n return;\n }\n const nextProviders = enabledProviders.filter(\n (currentProviderId) => currentProviderId !== providerId\n );\n await updateOrder(nextProviders);\n for (const key of getVoiceProviderConfigKeys(providerId)) {\n await onChange(key, \"\");\n }\n },\n [enabledProviders, onChange, updateOrder]\n );\n const handleSetDefault = useCallback(\n async (providerId) => {\n if (enabledProviders[0] === providerId) {\n return;\n }\n const nextProviders = [\n providerId,\n ...enabledProviders.filter((currentProviderId) => currentProviderId !== providerId)\n ];\n await updateOrder(nextProviders);\n },\n [enabledProviders, updateOrder]\n );\n return /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerGroup, children: [\n /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerGroupHeader, children: [\n /* @__PURE__ */ jsxs(\"div\", { children: [\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.rowLabel, children: \"Providers\" }),\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.rowDescription, children: \"Add STT providers, keep your default at the top, and remove unused items.\" })\n ] }),\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.providerActionButtonWrap, children: /* @__PURE__ */ jsx(\n ProviderButton2,\n {\n onPress: handleAddProvider,\n disabled: enabledProviders.length >= VOICE_PROVIDER_DEFINITIONS.length,\n variant: \"secondary\",\n children: \"Add provider\"\n }\n ) })\n ] }),\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.providerList, children: enabledProviders.map((providerId, index) => {\n const definition = getVoiceProviderDefinition(providerId);\n if (!definition) {\n return null;\n }\n const availableOptions = VOICE_PROVIDER_DEFINITIONS.filter(\n (provider) => provider.id === providerId || !enabledProviders.includes(provider.id)\n );\n return /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.providerCard, children: /* @__PURE__ */ jsx(\"dt-card\", { variant: \"outlined\", children: /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerCardBody, children: [\n /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerCardHeader, children: [\n /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerCardTitleRow, children: [\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.providerCardTitle, children: definition.label }),\n index === 0 && /* @__PURE__ */ jsx(\"span\", { className: PreferenceApp_default.providerDefaultBadge, children: \"Default\" })\n ] }),\n /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerCardActions, children: [\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.providerButtonWrap, children: /* @__PURE__ */ jsx(\n ProviderButton2,\n {\n onPress: () => handleSetDefault(providerId),\n disabled: index === 0,\n variant: \"secondary\",\n size: \"sm\",\n children: \"Set as default\"\n }\n ) }),\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.providerButtonWrap, children: /* @__PURE__ */ jsx(\n ProviderButton2,\n {\n onPress: () => handleDeleteProvider(providerId),\n disabled: enabledProviders.length === 1,\n variant: \"danger\",\n size: \"sm\",\n children: \"Delete\"\n }\n ) })\n ] })\n ] }),\n /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerFieldGrid, children: [\n /* @__PURE__ */ jsx(\n ProviderSelectField,\n {\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 && /* @__PURE__ */ jsx(\n ProviderTextField2,\n {\n id: `voice-provider-key-${providerId}`,\n label: \"API Key\",\n value: String(config[`voice.providers.${providerId}.apiKey`] ?? \"\"),\n sensitive: true,\n onCommit: (value) => onChange(`voice.providers.${providerId}.apiKey`, value)\n }\n ),\n definition.supportsModel && /* @__PURE__ */ jsx(\n ProviderTextField2,\n {\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 definition.supportsBaseUrl && /* @__PURE__ */ jsx(\n ProviderTextField2,\n {\n id: `voice-provider-base-url-${providerId}`,\n label: \"Base URL\",\n value: String(config[`voice.providers.${providerId}.baseUrl`] ?? \"\"),\n onCommit: (value) => onChange(`voice.providers.${providerId}.baseUrl`, value)\n }\n ),\n definition.supportsAzureDeployment && /* @__PURE__ */ jsx(\n ProviderTextField2,\n {\n id: `voice-provider-deployment-${providerId}`,\n label: \"Azure Deployment\",\n value: String(\n config[`voice.providers.${providerId}.azureDeployment`] ?? \"\"\n ),\n onCommit: (value) => onChange(`voice.providers.${providerId}.azureDeployment`, value)\n }\n ),\n definition.supportsAzureApiVersion && /* @__PURE__ */ jsx(\n ProviderTextField2,\n {\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) => onChange(`voice.providers.${providerId}.azureApiVersion`, value)\n }\n )\n ] })\n ] }) }) }, providerId);\n }) })\n ] });\n}\nfunction ProviderButton2({\n children,\n disabled = false,\n variant = \"primary\",\n size = \"md\",\n onPress\n}) {\n const [buttonElement, setButtonElement] = useState(null);\n useEffect(() => {\n if (!buttonElement) {\n return;\n }\n const handleClick = () => {\n void onPress();\n };\n buttonElement.addEventListener(\"click\", handleClick);\n return () => buttonElement.removeEventListener(\"click\", handleClick);\n }, [buttonElement, onPress]);\n return /* @__PURE__ */ jsx(\n \"dt-button\",\n {\n ref: (element) => setButtonElement(element),\n disabled,\n variant,\n size,\n children\n }\n );\n}\nfunction ProviderSelectField({\n label,\n value,\n options,\n onChange\n}) {\n const [selectElement, setSelectElement] = useState(null);\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n selectElement.options = options;\n }, [options, selectElement]);\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n selectElement.value = value;\n }, [selectElement, value]);\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n const handleChange = (event) => {\n void onChange(event.detail.value);\n };\n selectElement.addEventListener(\"dt-change\", handleChange);\n return () => selectElement.removeEventListener(\"dt-change\", handleChange);\n }, [onChange, selectElement]);\n return /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerField, children: [\n /* @__PURE__ */ jsx(\"label\", { className: PreferenceApp_default.providerFieldLabel, children: label }),\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.providerSelectWrap, children: /* @__PURE__ */ jsx(\"dt-select\", { ref: (element) => setSelectElement(element) }) })\n ] });\n}\nfunction ProviderTextField2({\n id,\n label,\n value,\n sensitive = false,\n onCommit\n}) {\n const [localValue, setLocalValue] = useState(value);\n useEffect(() => {\n setLocalValue(value);\n }, [value]);\n const commit = useCallback(() => {\n if (localValue !== value) {\n void onCommit(localValue);\n }\n }, [localValue, onCommit, value]);\n return /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.providerField, children: [\n /* @__PURE__ */ jsx(\"label\", { className: PreferenceApp_default.providerFieldLabel, htmlFor: id, children: label }),\n /* @__PURE__ */ jsx(\n \"input\",\n {\n id,\n type: sensitive ? \"password\" : \"text\",\n className: sensitive ? PreferenceApp_default.textInputSensitive : PreferenceApp_default.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 )\n ] });\n}\n\n// src/components/PreferenceSection.tsx\nfunction PreferenceSection({ title, children }) {\n return /* @__PURE__ */ jsxs(\"section\", { className: PreferenceApp_default.section, children: [\n /* @__PURE__ */ jsx(\"h3\", { className: PreferenceApp_default.sectionTitle, children: title }),\n children\n ] });\n}\n\n// src/components/PreferenceRow.tsx\nfunction PreferenceRow({ schema, value, onChange }) {\n return /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.row, children: [\n /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.rowInfo, children: [\n /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.rowLabel, children: [\n schema.label,\n schema.requiresRestart && /* @__PURE__ */ jsx(\"span\", { className: PreferenceApp_default.rowRestartBadge, children: \"restart\" })\n ] }),\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.rowDescription, children: schema.description })\n ] }),\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.rowControl, children: /* @__PURE__ */ jsx(Control, { schema, value, onChange }) })\n ] });\n}\nfunction Control({\n schema,\n value,\n onChange\n}) {\n if (schema.key === \"general.accentColor\" && schema.type === \"string\") {\n return /* @__PURE__ */ jsx(ColorControl, { schema, value, onChange });\n }\n if (schema.type === \"boolean\") {\n return /* @__PURE__ */ jsx(ToggleControl, { schema, value, onChange });\n }\n if (schema.type === \"string\" && schema.options) {\n return /* @__PURE__ */ jsx(DropdownControl, { schema, value, onChange });\n }\n if (schema.type === \"string\") {\n return /* @__PURE__ */ jsx(TextControl, { schema, value, onChange });\n }\n if (schema.type === \"number\") {\n return /* @__PURE__ */ jsx(NumberControl, { schema, value, onChange });\n }\n return null;\n}\nfunction isHexColor(value) {\n return /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(value);\n}\nfunction ColorControl({\n schema,\n value,\n onChange\n}) {\n const [localValue, setLocalValue] = useState(value);\n useEffect(() => {\n setLocalValue(value);\n }, [value]);\n const commit = useCallback(\n (nextValue) => {\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 const handlePickerInput = useCallback((e) => {\n setLocalValue(e.currentTarget.value);\n }, []);\n const handlePickerChange = useCallback(\n (e) => {\n const nextValue = e.target.value;\n setLocalValue(nextValue);\n commit(nextValue);\n },\n [commit]\n );\n const handleTextChange = useCallback((e) => {\n setLocalValue(e.target.value);\n }, []);\n const handleTextKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n commit();\n }\n },\n [commit]\n );\n const handleTextBlur = useCallback(() => {\n commit();\n }, [commit]);\n const pickerValue = isHexColor(localValue) ? localValue : \"#7c6ff7\";\n return /* @__PURE__ */ jsxs(\"div\", { className: PreferenceApp_default.colorControl, children: [\n /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"color\",\n className: PreferenceApp_default.colorInput,\n value: pickerValue,\n onInput: handlePickerInput,\n onChange: handlePickerChange,\n \"aria-label\": `${schema.label} picker`\n }\n ),\n /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"text\",\n className: PreferenceApp_default.textInput,\n value: localValue,\n onChange: handleTextChange,\n onBlur: handleTextBlur,\n onKeyDown: handleTextKeyDown,\n placeholder: \"#7c6ff7\"\n }\n )\n ] });\n}\nfunction ToggleControl({\n schema,\n value,\n onChange\n}) {\n const handleChange = useCallback(() => {\n onChange(schema.key, !value);\n }, [schema.key, value, onChange]);\n return /* @__PURE__ */ jsxs(\"label\", { className: PreferenceApp_default.toggle, children: [\n /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n className: PreferenceApp_default.toggleInput,\n checked: value,\n onChange: handleChange\n }\n ),\n /* @__PURE__ */ jsx(\"span\", { className: PreferenceApp_default.toggleTrack }),\n /* @__PURE__ */ jsx(\"span\", { className: PreferenceApp_default.toggleKnob })\n ] });\n}\nfunction DropdownControl({\n schema,\n value,\n onChange\n}) {\n const handleChange = useCallback(\n (nextValue) => {\n onChange(schema.key, nextValue);\n },\n [schema.key, onChange]\n );\n return /* @__PURE__ */ jsx(\n DtSelectControl,\n {\n value,\n options: (schema.options ?? []).map((opt) => ({ value: opt, label: opt })),\n onChange: handleChange\n }\n );\n}\nfunction DtSelectControl({\n value,\n options,\n disabled = false,\n onChange\n}) {\n const [selectElement, setSelectElement] = useState(null);\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n selectElement.options = options;\n }, [options, selectElement]);\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n selectElement.value = value;\n selectElement.disabled = disabled;\n }, [disabled, selectElement, value]);\n useEffect(() => {\n if (!selectElement) {\n return;\n }\n const handleSelectChange = (event) => {\n onChange(event.detail.value);\n };\n selectElement.addEventListener(\"dt-change\", handleSelectChange);\n return () => selectElement.removeEventListener(\"dt-change\", handleSelectChange);\n }, [onChange, selectElement]);\n return /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.selectWrap, children: /* @__PURE__ */ jsx(\"dt-select\", { ref: (element) => setSelectElement(element) }) });\n}\nfunction TextControl({\n schema,\n value,\n onChange\n}) {\n const [localValue, setLocalValue] = useState(value);\n useEffect(() => {\n setLocalValue(value);\n }, [value]);\n const handleBlur = useCallback(() => {\n if (localValue !== value) {\n onChange(schema.key, localValue);\n }\n }, [schema.key, localValue, value, onChange]);\n const handleKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n onChange(schema.key, localValue);\n }\n },\n [schema.key, localValue, onChange]\n );\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: schema.sensitive ? \"password\" : \"text\",\n className: schema.sensitive ? PreferenceApp_default.textInputSensitive : PreferenceApp_default.textInput,\n value: localValue,\n onChange: (e) => setLocalValue(e.target.value),\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n placeholder: schema.sensitive ? \"Enter API key...\" : void 0\n }\n );\n}\nfunction NumberControl({\n schema,\n value,\n onChange\n}) {\n const [localValue, setLocalValue] = useState(String(value));\n useEffect(() => {\n setLocalValue(String(value));\n }, [value]);\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 !== void 0) num = Math.max(schema.min, num);\n if (schema.max !== void 0) 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 const handleKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") commit();\n },\n [commit]\n );\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"number\",\n className: PreferenceApp_default.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\n// src/components/PreferenceActions.tsx\nimport { ActionsProvider, Action, useCommand } from \"@desktalk/sdk\";\nfunction PreferenceActions({ children, onConfigChanged }) {\n const getSetting = useCommand(\n \"preferences.get\"\n );\n const setSetting = useCommand(\n \"preferences.set\"\n );\n const resetSetting = useCommand(\"preferences.reset\");\n const resetAllSettings = useCommand(\"preferences.resetAll\");\n const handleGetSetting = useCallback(\n async (params) => {\n const key = params?.key;\n if (!key) throw new Error(\"Missing required parameter: key\");\n const result = await getSetting({ key });\n return result;\n },\n [getSetting]\n );\n const handleSetSetting = useCallback(\n async (params) => {\n const key = params?.key;\n if (!key) throw new Error(\"Missing required parameter: key\");\n let value = params?.value;\n if (value === void 0) throw new Error(\"Missing required parameter: value\");\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 await setSetting({ key, value });\n onConfigChanged();\n return { success: true };\n },\n [setSetting, onConfigChanged]\n );\n const handleResetSetting = useCallback(\n async (params) => {\n const key = params?.key;\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 const handleResetAll = useCallback(async () => {\n await resetAllSettings();\n onConfigChanged();\n return { success: true };\n }, [resetAllSettings, onConfigChanged]);\n return /* @__PURE__ */ jsxs(ActionsProvider, { children: [\n /* @__PURE__ */ jsx(\n Action,\n {\n name: \"Get Setting\",\n description: \"Read the current value of a setting\",\n params: {\n key: {\n type: \"string\",\n description: \"Setting key (e.g. general.theme)\",\n required: true\n }\n },\n handler: handleGetSetting\n }\n ),\n /* @__PURE__ */ jsx(\n Action,\n {\n name: \"Set Setting\",\n description: \"Update a setting value\",\n params: {\n key: {\n type: \"string\",\n description: \"Setting key (e.g. general.theme)\",\n required: true\n },\n value: {\n type: \"string\",\n description: \"New value for the setting\",\n required: true\n }\n },\n handler: handleSetSetting\n }\n ),\n /* @__PURE__ */ jsx(\n Action,\n {\n name: \"Reset Setting\",\n description: \"Reset a setting to its default value\",\n params: {\n key: {\n type: \"string\",\n description: \"Setting key to reset\",\n required: true\n }\n },\n handler: handleResetSetting\n }\n ),\n /* @__PURE__ */ jsx(\n Action,\n {\n name: \"Reset All\",\n description: \"Reset all settings to their default values\",\n handler: handleResetAll\n }\n ),\n children\n ] });\n}\n\n// src/frontend.tsx\nvar COMPACT_NAV_WIDTH = 720;\nfunction PreferenceApp() {\n const [config, setConfig] = useState(getDefaultConfig());\n const [activeCategory, setActiveCategory] = useState(CATEGORIES[0]);\n const [notification, setNotification] = useState(null);\n const [compactNav, setCompactNav] = useState(false);\n const notificationTimer = useRef(null);\n const rootRef = useRef(null);\n const getAllSettings = useCommand2(\"preferences.getAll\");\n const setSetting = useCommand2(\n \"preferences.set\"\n );\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 useEffect(() => {\n fetchConfig();\n }, [fetchConfig]);\n useEffect(() => {\n if (!rootRef.current) return;\n const updateLayout = (width) => {\n setCompactNav(width <= COMPACT_NAV_WIDTH);\n };\n updateLayout(rootRef.current.clientWidth);\n const observer = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (!entry) return;\n updateLayout(entry.contentRect.width);\n });\n observer.observe(rootRef.current);\n return () => observer.disconnect();\n }, []);\n useEvent(\n \"preferences:changed\",\n (change) => {\n setConfig((prev) => ({ ...prev, [change.key]: change.value }));\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 useEvent(\"preferences:resetAll\", () => {\n fetchConfig();\n showNotification(__dtLocalize({ scope: \"preference\", key: \"notifications.resetAll\", defaultText: \"All settings have been reset to defaults.\" }));\n });\n const showNotification = useCallback((message) => {\n setNotification(message);\n if (notificationTimer.current) clearTimeout(notificationTimer.current);\n notificationTimer.current = setTimeout(() => setNotification(null), 4e3);\n }, []);\n const handleChange = useCallback(\n async (key, value) => {\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 fetchConfig();\n }\n },\n [setSetting, fetchConfig]\n );\n const categoriesToShow = CATEGORIES.filter((c) => c === activeCategory);\n const getVisibleSchemas = useCallback((category) => {\n const schemas = getSchemasByCategory(category);\n if (category !== \"AI\" && category !== \"Voice\") {\n return schemas;\n }\n return schemas.filter((schema) => {\n if (category === \"AI\") {\n return !schema.key.startsWith(\"ai.providers.\") && schema.key !== \"ai.defaultProvider\" && schema.key !== \"ai.enabledProviders\";\n }\n return !schema.key.startsWith(\"voice.providers.\") && schema.key !== \"voice.defaultProvider\" && schema.key !== \"voice.enabledProviders\";\n });\n }, []);\n return /* @__PURE__ */ jsx(PreferenceActions, { onConfigChanged: fetchConfig, children: /* @__PURE__ */ jsxs(\"div\", { ref: rootRef, className: `${PreferenceApp_default.root}${compactNav ? ` ${PreferenceApp_default.rootCompact}` : \"\"}`, children: [\n /* @__PURE__ */ jsx(\n PreferenceCategoryList,\n {\n activeCategory,\n onSelect: setActiveCategory,\n compact: compactNav\n }\n ),\n /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.settingsPanel, children: categoriesToShow.map((category) => {\n const schemas = getVisibleSchemas(category);\n return /* @__PURE__ */ jsxs(PreferenceSection, { title: category, children: [\n category === \"AI\" && /* @__PURE__ */ jsx(AiProviderList, { config, onChange: handleChange }),\n category === \"Voice\" && /* @__PURE__ */ jsx(VoiceProviderList, { config, onChange: handleChange }),\n schemas.map((schema) => /* @__PURE__ */ jsx(\n PreferenceRow,\n {\n schema,\n value: config[schema.key] ?? schema.default,\n onChange: handleChange\n },\n schema.key\n ))\n ] }, category);\n }) }),\n notification && /* @__PURE__ */ jsx(\"div\", { className: PreferenceApp_default.notification, children: notification })\n ] }) });\n}\nfunction activate(ctx) {\n const root = createRoot(ctx.root);\n root.render(\n /* @__PURE__ */ jsx(WindowIdProvider, { windowId: ctx.windowId, children: /* @__PURE__ */ jsx(MiniAppIdProvider, { miniAppId: ctx.miniAppId, children: /* @__PURE__ */ jsx(PreferenceApp, {}) }) })\n );\n return {\n deactivate() {\n root.unmount();\n }\n };\n}\nexport {\n activate\n};\n//# sourceMappingURL=frontend.js.map\n"],"names":["styleId","style","_mod","useCallback","useEffect","useMemo","useRef","useState","_mod2","createRoot","CATEGORIES","DEFAULT_AI_PROVIDER_ID","AI_PROVIDER_DEFINITIONS","DEFAULT_VOICE_PROVIDER_ID","VOICE_PROVIDER_DEFINITIONS","AI_PROVIDER_IDS","provider","VOICE_PROVIDER_IDS","getAiProviderDefinition","providerId","getAiProviderConfigKeys","definition","keys","parseAiEnabledProviders","value","providers","item","index","items","serializeAiEnabledProviders","providerIds","getVoiceProviderDefinition","getVoiceProviderConfigKeys","parseVoiceEnabledProviders","serializeVoiceEnabledProviders","getAiProviderPreferenceSchemas","schemas","AI_PREFERENCE_SCHEMAS","getVoiceProviderPreferenceSchemas","VOICE_PREFERENCE_SCHEMAS","PREFERENCE_SCHEMAS","getDefaultConfig","config","schema","getSchema","key","s","getSchemasByCategory","category","J","vt","u","W","ft","r","x","t","e","n","i","o","a","G","_t","w","j","q","xt","K","wt","yt","kt","Ct","U","Et","y","Y","St","k","Z","Dt","C","#t","Q","At","E","tt","Mt","S","et","Tt","D","nt","zt","A","rt","Lt","Ht","d","M","m","c","l","f","_","h","Rt","Vt","b","T","it","st","Pt","z","ot","L","at","v","It","X","dt","g","Nt","H","lt","Ft","Ot","Bt","$t","R","gt","F","p","O","bt","B","Xt","ct","V","ht","ut","Jt","Wt","P","pt","I","mt","N","PreferenceApp_default","_mod3","jsx","jsxs","CATEGORY_ICONS","PreferenceCategoryList","activeCategory","onSelect","compact","button","AiProviderList","onChange","enabledProviders","defaultProvider","updateOrder","nextProviders","handleAddProvider","nextProvider","handleProviderChange","nextProviderId","currentProviderId","handleDeleteProvider","handleSetDefault","ProviderButton","availableOptions","ProviderSelect","nextValue","ProviderTextField","children","disabled","variant","size","onPress","buttonElement","setButtonElement","handleClick","element","options","selectElement","setSelectElement","handleChange","event","id","label","sensitive","onCommit","localValue","setLocalValue","commit","VoiceProviderList","ProviderButton2","ProviderSelectField","ProviderTextField2","PreferenceSection","title","PreferenceRow","Control","ColorControl","ToggleControl","DropdownControl","TextControl","NumberControl","isHexColor","resolvedValue","handlePickerInput","handlePickerChange","handleTextChange","handleTextKeyDown","handleTextBlur","pickerValue","DtSelectControl","opt","handleSelectChange","handleBlur","handleKeyDown","num","PreferenceActions","onConfigChanged","getSetting","useCommand","setSetting","resetSetting","resetAllSettings","handleGetSetting","params","handleSetSetting","handleResetSetting","handleResetAll","ActionsProvider","Action","COMPACT_NAV_WIDTH","PreferenceApp","setConfig","setActiveCategory","notification","setNotification","compactNav","setCompactNav","notificationTimer","rootRef","getAllSettings","useCommand2","fetchConfig","result","err","updateLayout","width","observer","entries","entry","useEvent","change","prev","showNotification","__dtLocalize","message","categoriesToShow","getVisibleSchemas","activate","ctx","root","WindowIdProvider","MiniAppIdProvider"],"mappings":"sFAAC,IAAM,CACL,GAAI,OAAO,SAAa,IAAa,OACrC,MAAMA,EAAU,qDAChB,GAAI,SAAS,eAAeA,CAAO,EAAG,OACtC,MAAMC,EAAQ,SAAS,cAAc,OAAO,EAC5CA,EAAM,GAAKD,EACXC,EAAM,YAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACpB,SAAS,KAAK,YAAYA,CAAK,CACjC,GAAC,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"}
|