@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-WpQng8Mt.js","sources":["../../../../miniapp-note/dist/frontend.js"],"sourcesContent":["(() => {\n if (typeof document === 'undefined') return;\n const styleId = \"desktalk-style-desktalk-miniapp-note-emi3yz\";\n if (document.getElementById(styleId)) return;\n const style = document.createElement('style');\n style.id = styleId;\n style.textContent = \"/* src/styles/NoteApp.module.css */\\n.NoteApp_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-sans);\\n}\\n.NoteApp_rootCompact {\\n flex-direction: column;\\n}\\n.NoteApp_rootCompact .NoteApp_listPanel {\\n width: 100%;\\n min-width: 0;\\n max-height: 180px;\\n flex-direction: row;\\n border-right: none;\\n border-bottom: 1px solid var(--dt-border);\\n}\\n.NoteApp_rootCompact .NoteApp_listHeader {\\n width: 140px;\\n min-width: 140px;\\n flex-direction: column;\\n padding: 10px;\\n gap: 8px;\\n border-bottom: none;\\n border-right: 1px solid var(--dt-border-subtle);\\n}\\n.NoteApp_rootCompact .NoteApp_searchInput {\\n width: 100%;\\n}\\n.NoteApp_rootCompact .NoteApp_newNoteBtn {\\n width: 100%;\\n}\\n.NoteApp_rootCompact .NoteApp_noteList {\\n flex: 1;\\n overflow-x: auto;\\n overflow-y: hidden;\\n display: flex;\\n padding: 8px;\\n gap: 8px;\\n}\\n.NoteApp_rootCompact .NoteApp_noteItem,\\n.NoteApp_rootCompact .NoteApp_noteItemActive {\\n min-width: 160px;\\n max-width: 200px;\\n flex-shrink: 0;\\n border-bottom: none;\\n border-radius: 6px;\\n background: var(--dt-surface);\\n}\\n.NoteApp_rootCompact .NoteApp_noteItemActive {\\n border-left: none;\\n padding-left: 10px;\\n border: 1px solid var(--dt-accent);\\n background: color-mix(in oklab, var(--dt-accent) 8%, var(--dt-surface));\\n}\\n.NoteApp_rootCompact .NoteApp_emptyState {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 100%;\\n}\\n.NoteApp_listPanel {\\n display: flex;\\n width: 260px;\\n min-width: 200px;\\n flex-direction: column;\\n overflow: hidden;\\n border-right: 1px solid var(--dt-border);\\n}\\n.NoteApp_listHeader {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n padding: 10px 14px;\\n border-bottom: 1px solid var(--dt-border);\\n}\\n.NoteApp_searchInput {\\n flex: 1;\\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: inherit;\\n font-size: 13px;\\n outline: none;\\n transition: border-color 0.15s;\\n}\\n.NoteApp_searchInput::placeholder {\\n color: var(--dt-text-muted);\\n}\\n.NoteApp_searchInput:focus {\\n border-color: var(--dt-accent);\\n}\\n.NoteApp_newNoteBtn {\\n display: flex;\\n width: 30px;\\n height: 30px;\\n flex-shrink: 0;\\n align-items: center;\\n justify-content: center;\\n border: 1px solid var(--dt-border);\\n border-radius: 6px;\\n background: var(--dt-surface);\\n color: var(--dt-text);\\n cursor: pointer;\\n font-size: 18px;\\n line-height: 1;\\n transition:\\n background 0.15s,\\n border-color 0.15s,\\n color 0.15s;\\n}\\n.NoteApp_newNoteBtn:hover {\\n border-color: var(--dt-accent);\\n background: var(--dt-surface-hover);\\n color: var(--dt-accent);\\n}\\n.NoteApp_noteList {\\n flex: 1;\\n overflow-y: auto;\\n}\\n.NoteApp_noteItem {\\n padding: 10px 14px;\\n border-bottom: 1px solid var(--dt-border);\\n cursor: pointer;\\n transition: background 0.1s;\\n}\\n.NoteApp_noteItem:hover {\\n background: var(--dt-surface-hover);\\n}\\n.NoteApp_noteItemActive {\\n padding-left: 11px;\\n border-left: 3px solid var(--dt-accent);\\n background: var(--dt-surface);\\n}\\n.NoteApp_noteTitle {\\n overflow: hidden;\\n margin-bottom: 4px;\\n font-size: 14px;\\n font-weight: 500;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.NoteApp_notePreview {\\n overflow: hidden;\\n margin-bottom: 4px;\\n color: var(--dt-text-muted);\\n font-size: 12px;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.NoteApp_noteDate {\\n color: var(--dt-text-muted);\\n opacity: 0.7;\\n font-size: 11px;\\n}\\n.NoteApp_emptyState {\\n padding: 24px 14px;\\n color: var(--dt-text-muted);\\n font-size: 13px;\\n text-align: center;\\n}\\n.NoteApp_editorPanel {\\n display: flex;\\n min-width: 0;\\n flex: 1;\\n flex-direction: column;\\n overflow: hidden;\\n}\\n.NoteApp_editorHeader {\\n display: flex;\\n flex-shrink: 0;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 16px;\\n border-bottom: 1px solid var(--dt-border);\\n}\\n.NoteApp_editorTitle {\\n font-size: 16px;\\n font-weight: 600;\\n}\\n.NoteApp_editorTags {\\n display: flex;\\n flex-wrap: wrap;\\n gap: 6px;\\n}\\n.NoteApp_editorTag {\\n padding: 2px 8px;\\n border: 1px solid var(--dt-border);\\n border-radius: 4px;\\n background: var(--dt-surface);\\n color: var(--dt-accent);\\n font-size: 11px;\\n}\\n.NoteApp_editorBody {\\n position: relative;\\n flex: 1;\\n overflow-y: auto;\\n}\\n.NoteApp_editorPlaceholder {\\n display: flex;\\n height: 100%;\\n align-items: center;\\n justify-content: center;\\n color: var(--dt-text-muted);\\n font-size: 14px;\\n}\\n.NoteApp_editorBody .milkdown {\\n height: 100%;\\n background: transparent;\\n color: var(--dt-text);\\n}\\n.NoteApp_editorBody .milkdown .editor {\\n min-height: 100%;\\n padding: 16px 20px;\\n outline: none;\\n font-family: var(--font-sans);\\n font-size: 14px;\\n line-height: 1.65;\\n}\\n.NoteApp_editorBody .milkdown .editor h1 {\\n margin: 0.8em 0 0.4em;\\n font-size: 1.6em;\\n}\\n.NoteApp_editorBody .milkdown .editor h2 {\\n margin: 0.7em 0 0.35em;\\n font-size: 1.35em;\\n}\\n.NoteApp_editorBody .milkdown .editor h3 {\\n margin: 0.6em 0 0.3em;\\n font-size: 1.15em;\\n}\\n.NoteApp_editorBody .milkdown .editor p {\\n margin: 0.5em 0;\\n}\\n.NoteApp_editorBody .milkdown .editor code {\\n padding: 2px 5px;\\n border-radius: 3px;\\n background: var(--dt-surface);\\n font-family: var(--font-mono);\\n font-size: 0.9em;\\n}\\n.NoteApp_editorBody .milkdown .editor pre {\\n overflow-x: auto;\\n margin: 0.8em 0;\\n padding: 12px 16px;\\n border: 1px solid var(--dt-border);\\n border-radius: 6px;\\n background: var(--dt-surface);\\n}\\n.NoteApp_editorBody .milkdown .editor pre code {\\n padding: 0;\\n border-radius: 0;\\n background: transparent;\\n}\\n.NoteApp_editorBody .milkdown .editor blockquote {\\n margin: 0.8em 0;\\n padding-left: 14px;\\n border-left: 3px solid var(--dt-accent);\\n color: var(--dt-text-muted);\\n}\\n.NoteApp_editorBody .milkdown .editor a {\\n color: var(--dt-accent);\\n text-decoration: none;\\n}\\n.NoteApp_editorBody .milkdown .editor a:hover {\\n text-decoration: underline;\\n}\\n.NoteApp_editorBody .milkdown .editor hr {\\n margin: 1.5em 0;\\n border: none;\\n border-top: 1px solid var(--dt-border);\\n}\\n.NoteApp_editorBody .milkdown .editor ul,\\n.NoteApp_editorBody .milkdown .editor ol {\\n margin: 0.5em 0;\\n padding-left: 24px;\\n}\\n.NoteApp_editorBody .milkdown .editor li {\\n margin: 0.2em 0;\\n}\\n.NoteApp_editorBody .milkdown .editor img {\\n max-width: 100%;\\n border-radius: 6px;\\n}\\n.NoteApp_editorBody dt-markdown-editor {\\n display: block;\\n height: 100%;\\n}\\n.NoteApp_saveStatus {\\n color: var(--dt-text-muted);\\n opacity: 0.7;\\n font-size: 11px;\\n}\\n.NoteApp_saveStatusSaving {\\n color: var(--dt-warning);\\n}\\n/*# sourceMappingURL=frontend.css.map */\\n\";\n document.head.appendChild(style);\n})();\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, MiniAppIdProvider, WindowIdProvider } from \"@desktalk/sdk\";\n\n// src/styles/NoteApp.module.css\nvar NoteApp_default = {\n root: \"NoteApp_root\",\n rootCompact: \"NoteApp_rootCompact\",\n listPanel: \"NoteApp_listPanel\",\n listHeader: \"NoteApp_listHeader\",\n searchInput: \"NoteApp_searchInput\",\n newNoteBtn: \"NoteApp_newNoteBtn\",\n noteList: \"NoteApp_noteList\",\n noteItem: \"NoteApp_noteItem\",\n noteItemActive: \"NoteApp_noteItem NoteApp_noteItemActive\",\n emptyState: \"NoteApp_emptyState\",\n noteTitle: \"NoteApp_noteTitle\",\n notePreview: \"NoteApp_notePreview\",\n noteDate: \"NoteApp_noteDate\",\n editorPanel: \"NoteApp_editorPanel\",\n editorHeader: \"NoteApp_editorHeader\",\n editorTitle: \"NoteApp_editorTitle\",\n editorTags: \"NoteApp_editorTags\",\n editorTag: \"NoteApp_editorTag\",\n editorBody: \"NoteApp_editorBody\",\n editorPlaceholder: \"NoteApp_editorPlaceholder\",\n saveStatus: \"NoteApp_saveStatus\",\n saveStatusSaving: \"NoteApp_saveStatus NoteApp_saveStatusSaving\"\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/NoteList.tsx\nfunction formatDate(iso) {\n try {\n const d = new Date(iso);\n const now = /* @__PURE__ */ new Date();\n const diffMs = now.getTime() - d.getTime();\n const diffMins = Math.floor(diffMs / 6e4);\n if (diffMins < 1) return \"just now\";\n if (diffMins < 60) return `${diffMins}m ago`;\n const diffHours = Math.floor(diffMins / 60);\n if (diffHours < 24) return `${diffHours}h ago`;\n const diffDays = Math.floor(diffHours / 24);\n if (diffDays < 7) return `${diffDays}d ago`;\n return d.toLocaleDateString(void 0, { month: \"short\", day: \"numeric\" });\n } catch {\n return \"\";\n }\n}\nfunction NoteList({\n notes,\n selectedId,\n onSelect,\n onCreate,\n searchQuery,\n onSearchChange\n}) {\n const inputRef = useRef(null);\n return /* @__PURE__ */ jsxs(\"div\", { className: NoteApp_default.listPanel, children: [\n /* @__PURE__ */ jsxs(\"div\", { className: NoteApp_default.listHeader, children: [\n /* @__PURE__ */ jsx(\n \"input\",\n {\n ref: inputRef,\n type: \"text\",\n className: NoteApp_default.searchInput,\n placeholder: \"Search notes...\",\n value: searchQuery,\n onChange: (e) => onSearchChange(e.target.value)\n }\n ),\n /* @__PURE__ */ jsx(\"button\", { className: NoteApp_default.newNoteBtn, onClick: onCreate, title: \"New note\", children: \"+\" })\n ] }),\n /* @__PURE__ */ jsx(\"div\", { className: NoteApp_default.noteList, children: notes.length === 0 ? /* @__PURE__ */ jsx(\"div\", { className: NoteApp_default.emptyState, children: searchQuery ? \"No notes match your search\" : \"No notes yet\" }) : notes.map((note) => /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: note.id === selectedId ? NoteApp_default.noteItemActive : NoteApp_default.noteItem,\n onClick: () => onSelect(note.id),\n children: [\n /* @__PURE__ */ jsx(\"div\", { className: NoteApp_default.noteTitle, children: note.title }),\n /* @__PURE__ */ jsx(\"div\", { className: NoteApp_default.notePreview, children: note.preview }),\n /* @__PURE__ */ jsx(\"div\", { className: NoteApp_default.noteDate, children: formatDate(note.updatedAt) })\n ]\n },\n note.id\n )) })\n ] });\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/components/NoteEditor.tsx\nfunction stripFrontMatter(raw) {\n const match = raw.match(/^---\\r?\\n[\\s\\S]*?\\r?\\n---\\r?\\n?([\\s\\S]*)$/);\n return match ? match[1] : raw;\n}\nvar NoteEditor = forwardRef(function NoteEditor2({ note, loading, onSave }, ref) {\n const editorRef = useRef(null);\n const [saveStatus, setSaveStatus] = useState(\"idle\");\n const saveTimerRef = useRef(null);\n const onSaveRef = useRef(onSave);\n onSaveRef.current = onSave;\n useEffect(() => {\n if (editorRef.current && note) {\n const bodyContent = stripFrontMatter(note.content);\n editorRef.current.value = bodyContent;\n }\n }, [note?.id]);\n useEffect(() => {\n const editor = editorRef.current;\n if (!editor) return;\n const handleChange = (e) => {\n const detail = e.detail;\n if (!detail) return;\n if (saveTimerRef.current) clearTimeout(saveTimerRef.current);\n setSaveStatus(\"saving\");\n saveTimerRef.current = setTimeout(() => {\n onSaveRef.current(detail.value);\n setSaveStatus(\"saved\");\n }, 500);\n };\n editor.addEventListener(\"dt-change\", handleChange);\n return () => editor.removeEventListener(\"dt-change\", handleChange);\n }, []);\n useEffect(() => {\n return () => {\n if (saveTimerRef.current) clearTimeout(saveTimerRef.current);\n };\n }, []);\n useImperativeHandle(\n ref,\n () => ({\n getMarkdown() {\n return editorRef.current?.value ?? null;\n },\n setMarkdown(markdown) {\n if (editorRef.current) {\n editorRef.current.value = markdown;\n }\n },\n getCursorLine() {\n return 1;\n },\n getSelectedText() {\n return \"\";\n }\n }),\n []\n );\n if (!note) {\n return /* @__PURE__ */ jsx(\"div\", { className: NoteApp_default.editorPanel, children: /* @__PURE__ */ jsx(\"div\", { className: NoteApp_default.editorPlaceholder, children: loading ? \"Loading...\" : \"Select a note or create a new one\" }) });\n }\n return /* @__PURE__ */ jsxs(\"div\", { className: NoteApp_default.editorPanel, children: [\n /* @__PURE__ */ jsxs(\"div\", { className: NoteApp_default.editorHeader, children: [\n /* @__PURE__ */ jsxs(\"div\", { children: [\n /* @__PURE__ */ jsx(\"div\", { className: NoteApp_default.editorTitle, children: note.title }),\n note.tags.length > 0 && /* @__PURE__ */ jsx(\"div\", { className: NoteApp_default.editorTags, children: note.tags.map((tag) => /* @__PURE__ */ jsx(\"span\", { className: NoteApp_default.editorTag, children: tag }, tag)) })\n ] }),\n /* @__PURE__ */ jsx(\"span\", { className: saveStatus === \"saving\" ? NoteApp_default.saveStatusSaving : NoteApp_default.saveStatus, children: saveStatus === \"saving\" ? \"Saving...\" : saveStatus === \"saved\" ? \"Saved\" : \"\" })\n ] }),\n /* @__PURE__ */ jsx(\"div\", { className: NoteApp_default.editorBody, children: /* @__PURE__ */ jsx(\n \"dt-markdown-editor\",\n {\n ref: editorRef,\n placeholder: \"Start writing...\",\n style: { height: \"100%\" }\n }\n ) })\n ] });\n});\n\n// src/components/NoteActions.tsx\nimport { ActionsProvider, Action, useCommand } from \"@desktalk/sdk\";\n\n// src/lib/frontmatter.ts\nvar FM_REGEX = /^---\\r?\\n([\\s\\S]*?)\\r?\\n---\\r?\\n?([\\s\\S]*)$/;\nfunction parseFrontMatter(raw) {\n const match = raw.match(FM_REGEX);\n if (!match) {\n const heading = raw.match(/^#\\s+(.+)$/m);\n return { title: heading ? heading[1].trim() : \"Untitled\", tags: [], created: null, body: raw };\n }\n const yaml = match[1];\n const body = match[2];\n let title = \"Untitled\";\n let tags = [];\n let created = null;\n let inTags = false;\n for (const line of yaml.split(\"\\n\")) {\n const trimmed = line.trim();\n if (trimmed.startsWith(\"title:\")) {\n title = trimmed.slice(6).trim().replace(/^[\"']|[\"']$/g, \"\");\n inTags = false;\n } else if (trimmed.startsWith(\"created:\")) {\n created = trimmed.slice(8).trim();\n inTags = false;\n } else if (trimmed.startsWith(\"tags:\")) {\n inTags = true;\n const inline = trimmed.slice(5).trim();\n if (inline.startsWith(\"[\") && inline.endsWith(\"]\")) {\n tags = inline.slice(1, -1).split(\",\").map((t) => t.trim().replace(/^[\"']|[\"']$/g, \"\")).filter(Boolean);\n inTags = false;\n }\n } else if (inTags && trimmed.startsWith(\"- \")) {\n tags.push(\n trimmed.slice(2).trim().replace(/^[\"']|[\"']$/g, \"\")\n );\n } else {\n inTags = false;\n }\n }\n return { title, tags, created, body };\n}\nfunction serializeFrontMatter(title, tags, created, body) {\n const lines = [\"---\", `title: \"${title.replace(/\"/g, '\\\\\"')}\"`];\n if (tags.length > 0) {\n lines.push(\"tags:\");\n for (const tag of tags) lines.push(` - ${tag}`);\n }\n lines.push(`created: ${created}`, \"---\", \"\", body);\n return lines.join(\"\\n\");\n}\n\n// src/components/NoteActions.tsx\nfunction computeDiff(oldContent, newContent, oldText, newText, matchIndex) {\n const linesBefore = oldContent.substring(0, matchIndex).split(\"\\n\");\n const firstChangedLine = linesBefore.length;\n const oldLines = oldText.split(\"\\n\");\n const newLines = newText.split(\"\\n\");\n const contextStart = Math.max(0, firstChangedLine - 4);\n const allOldLines = oldContent.split(\"\\n\");\n const allNewLines = newContent.split(\"\\n\");\n const lines = [];\n lines.push(\n `@@ -${firstChangedLine},${oldLines.length} +${firstChangedLine},${newLines.length} @@`\n );\n for (let i = contextStart; i < firstChangedLine - 1; i++) {\n lines.push(` ${allOldLines[i]}`);\n }\n for (const l of oldLines) {\n lines.push(`-${l}`);\n }\n for (const l of newLines) {\n lines.push(`+${l}`);\n }\n const afterStart = firstChangedLine - 1 + oldLines.length;\n const afterEnd = Math.min(allNewLines.length, afterStart + 3);\n for (let i = afterStart; i < afterEnd; i++) {\n if (allNewLines[i] !== void 0) {\n lines.push(` ${allNewLines[i]}`);\n }\n }\n return { diff: lines.join(\"\\n\"), firstChangedLine };\n}\nfunction NoteActions({\n children,\n selectedNoteId,\n selectedNote,\n notes,\n editorRef,\n onNoteCreated,\n onNoteDeleted,\n onSearch,\n onNoteUpdated,\n onSelectNote,\n onRefresh: _onRefresh\n}) {\n const createNote = useCommand(\"notes.create\");\n const deleteNote = useCommand(\"notes.delete\");\n const searchNotes = useCommand(\"notes.search\");\n const updateNote = useCommand(\n \"notes.update\"\n );\n const handleCreate = useCallback(\n async (params) => {\n const note = await createNote({\n title: params?.title || void 0,\n content: params?.content || void 0,\n tags: params?.tags || void 0,\n path: params?.path || void 0\n });\n onNoteCreated(note);\n return note;\n },\n [createNote, onNoteCreated]\n );\n const handleDelete = useCallback(async () => {\n if (!selectedNoteId) return;\n await deleteNote({ id: selectedNoteId });\n onNoteDeleted(selectedNoteId);\n }, [deleteNote, selectedNoteId, onNoteDeleted]);\n const handleSearch = useCallback(\n async (params) => {\n const query = params?.query || \"\";\n onSearch(query);\n const results = await searchNotes({ query });\n return results;\n },\n [searchNotes, onSearch]\n );\n const getRawContent = useCallback(() => {\n if (!selectedNote) return null;\n const handle = editorRef.current;\n if (!handle) return null;\n const body = handle.getMarkdown();\n if (body === null) return null;\n return serializeFrontMatter(\n selectedNote.title,\n selectedNote.tags,\n selectedNote.createdAt,\n body\n );\n }, [selectedNote, editorRef]);\n const handleListNotes = useCallback(async () => {\n const listed = notes.slice(0, 20).map((n) => ({\n id: n.id,\n title: n.title,\n updatedAt: n.updatedAt,\n selected: n.id === selectedNoteId\n }));\n return { notes: listed };\n }, [notes, selectedNoteId]);\n const handleSelectNote = useCallback(\n async (params) => {\n const id = params?.id;\n if (!id) {\n return { success: false, error: \"id parameter is required\" };\n }\n const found = notes.find((n) => n.id === id);\n if (!found) {\n return { success: false, error: `Note not found: ${id}` };\n }\n await onSelectNote(id);\n return { success: true };\n },\n [notes, onSelectNote]\n );\n const handleGetEditingContext = useCallback(async () => {\n if (!selectedNoteId || !selectedNote) {\n return { error: \"No note is currently open\" };\n }\n const handle = editorRef.current;\n if (!handle) {\n return { error: \"Editor is not ready\" };\n }\n const content = getRawContent();\n if (content === null) {\n return { error: \"Editor is not ready\" };\n }\n return {\n id: selectedNote.id,\n title: selectedNote.title,\n content,\n cursorLine: handle.getCursorLine(),\n selectedText: handle.getSelectedText()\n };\n }, [selectedNoteId, selectedNote, editorRef, getRawContent]);\n const handleEditNote = useCallback(\n async (params) => {\n if (!selectedNoteId || !selectedNote) {\n return { success: false, error: \"No note is currently open\" };\n }\n const handle = editorRef.current;\n if (!handle) {\n return { success: false, error: \"Editor is not ready\" };\n }\n const oldText = params?.old_text;\n const newText = params?.new_text;\n if (oldText === void 0 || newText === void 0) {\n return { success: false, error: \"Both old_text and new_text are required\" };\n }\n const currentRaw = getRawContent();\n if (currentRaw === null) {\n return { success: false, error: \"Editor is not ready\" };\n }\n let newRaw;\n let matchIndex;\n if (oldText === \"\") {\n newRaw = newText + currentRaw;\n matchIndex = 0;\n } else {\n const firstIndex = currentRaw.indexOf(oldText);\n if (firstIndex === -1) {\n return { success: false, error: \"Text not found in note\" };\n }\n const secondIndex = currentRaw.indexOf(oldText, firstIndex + 1);\n if (secondIndex !== -1) {\n let count = 2;\n let searchFrom = secondIndex + 1;\n while (true) {\n const idx = currentRaw.indexOf(oldText, searchFrom);\n if (idx === -1) break;\n count++;\n searchFrom = idx + 1;\n }\n return {\n success: false,\n error: `Text appears ${count} times; provide more surrounding context to make it unique`\n };\n }\n newRaw = currentRaw.substring(0, firstIndex) + newText + currentRaw.substring(firstIndex + oldText.length);\n matchIndex = firstIndex;\n }\n const parsed = parseFrontMatter(newRaw);\n handle.setMarkdown(parsed.body);\n const tagsChanged = parsed.tags.length !== selectedNote.tags.length || parsed.tags.some((t, i) => t !== selectedNote.tags[i]);\n const titleChanged = parsed.title !== selectedNote.title;\n if (tagsChanged || titleChanged) {\n const updated = await updateNote({\n id: selectedNoteId,\n tags: parsed.tags,\n // Send the full content so backend can parse the new title\n content: parsed.body\n });\n onNoteUpdated(updated);\n }\n const { diff, firstChangedLine } = computeDiff(\n currentRaw,\n newRaw,\n oldText,\n newText,\n matchIndex\n );\n return { success: true, diff, firstChangedLine };\n },\n [selectedNoteId, selectedNote, editorRef, getRawContent, updateNote, onNoteUpdated]\n );\n return /* @__PURE__ */ jsxs(ActionsProvider, { children: [\n /* @__PURE__ */ jsx(\n Action,\n {\n name: \"Create Note\",\n description: \"Create a new note with optional title, content, and path\",\n params: {\n title: { type: \"string\", description: \"Note title\", required: false },\n content: { type: \"string\", description: \"Note content in Markdown\", required: false },\n tags: { type: \"string\", description: \"Comma-separated tags\", required: false },\n path: {\n type: \"string\",\n description: 'Relative path for the note (e.g. \"work/meeting-notes\"). Becomes the note ID. Auto-generated if omitted.',\n required: false\n }\n },\n handler: handleCreate\n }\n ),\n /* @__PURE__ */ jsx(\n Action,\n {\n name: \"Delete Note\",\n description: \"Delete the currently selected note\",\n handler: handleDelete\n }\n ),\n /* @__PURE__ */ jsx(\n Action,\n {\n name: \"Search Notes\",\n description: \"Search notes by keyword\",\n params: {\n query: { type: \"string\", description: \"Search query\", required: true }\n },\n handler: handleSearch\n }\n ),\n /* @__PURE__ */ jsx(\n Action,\n {\n name: \"List Notes\",\n description: \"Return the 20 most recent notes with selection status\",\n handler: handleListNotes\n }\n ),\n /* @__PURE__ */ jsx(\n Action,\n {\n name: \"Select Note\",\n description: \"Select a note by ID and open it in the editor\",\n params: {\n id: {\n type: \"string\",\n description: \"Note ID (relative path without .md)\",\n required: true\n }\n },\n handler: handleSelectNote\n }\n ),\n /* @__PURE__ */ jsx(\n Action,\n {\n name: \"Get Editing Context\",\n description: \"Return the current editor state for the selected note including content, cursor position, and selected text\",\n handler: handleGetEditingContext\n }\n ),\n /* @__PURE__ */ jsx(\n Action,\n {\n name: \"Edit Note\",\n description: \"Apply a text replacement to the current note content including front matter. Use old_text to find exact text and new_text to replace it. To edit tags or title, modify the YAML front matter directly.\",\n params: {\n old_text: {\n type: \"string\",\n description: \"Exact text to find in the note content (must appear exactly once). Searches the full content including YAML front matter. Use empty string to insert at beginning.\",\n required: true\n },\n new_text: {\n type: \"string\",\n description: \"Replacement text\",\n required: true\n }\n },\n handler: handleEditNote\n }\n ),\n children\n ] });\n}\n\n// src/frontend.tsx\nvar COMPACT_WIDTH = 720;\nfunction NoteApp() {\n const [notes, setNotes] = useState([]);\n const [selectedId, setSelectedId] = useState(null);\n const [currentNote, setCurrentNote] = useState(null);\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [loadingNote, setLoadingNote] = useState(false);\n const [compact, setCompact] = useState(false);\n const editorRef = useRef(null);\n const rootRef = useRef(null);\n const listNotes = useCommand2(\"notes.list\");\n const getNote = useCommand2(\"notes.get\");\n const updateNote = useCommand2(\n \"notes.update\"\n );\n const searchNotes = useCommand2(\"notes.search\");\n const createNote = useCommand2(\n \"notes.create\"\n );\n const fetchNotes = useCallback(async () => {\n try {\n let result;\n if (searchQuery) {\n result = await searchNotes({ query: searchQuery });\n } else {\n result = await listNotes();\n }\n setNotes(result);\n } catch (err) {\n console.error(\"Failed to fetch notes:\", err);\n }\n }, [listNotes, searchNotes, searchQuery]);\n const refresh = useCallback(() => {\n fetchNotes();\n }, [fetchNotes]);\n useEffect(() => {\n refresh();\n }, [refresh]);\n useEffect(() => {\n if (!rootRef.current) return;\n const updateLayout = (width) => {\n setCompact(width <= COMPACT_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 const selectNote = useCallback(\n async (id) => {\n setSelectedId(id);\n setLoadingNote(true);\n try {\n const note = await getNote({ id });\n setCurrentNote(note);\n } catch (err) {\n console.error(\"Failed to load note:\", err);\n setCurrentNote(null);\n } finally {\n setLoadingNote(false);\n }\n },\n [getNote]\n );\n const searchTimerRef = useRef(null);\n const handleSearchChange = useCallback((query) => {\n setSearchQuery(query);\n if (searchTimerRef.current) clearTimeout(searchTimerRef.current);\n searchTimerRef.current = setTimeout(() => {\n }, 300);\n }, []);\n const handleEditorSave = useCallback(\n async (markdown) => {\n if (!selectedId || !currentNote) return;\n try {\n const updated = await updateNote({\n id: selectedId,\n content: markdown\n });\n setCurrentNote(updated);\n fetchNotes();\n } catch (err) {\n console.error(\"Failed to save note:\", err);\n }\n },\n [selectedId, currentNote, updateNote, fetchNotes]\n );\n const handleNoteCreated = useCallback(\n (note) => {\n refresh();\n setSelectedId(note.id);\n setCurrentNote(note);\n },\n [refresh]\n );\n const handleNoteDeleted = useCallback(\n (id) => {\n if (selectedId === id) {\n setSelectedId(null);\n setCurrentNote(null);\n }\n refresh();\n },\n [selectedId, refresh]\n );\n const handleNoteUpdated = useCallback(\n (note) => {\n if (selectedId === note.id) {\n setCurrentNote(note);\n }\n refresh();\n },\n [selectedId, refresh]\n );\n const handleSearch = useCallback((query) => {\n setSearchQuery(query);\n }, []);\n const handleCreate = useCallback(async () => {\n try {\n const note = await createNote({});\n handleNoteCreated(note);\n } catch (err) {\n console.error(\"Failed to create note:\", err);\n }\n }, [createNote, handleNoteCreated]);\n return /* @__PURE__ */ jsx(\n NoteActions,\n {\n selectedNoteId: selectedId,\n selectedNote: currentNote,\n notes,\n editorRef,\n onNoteCreated: handleNoteCreated,\n onNoteDeleted: handleNoteDeleted,\n onSearch: handleSearch,\n onNoteUpdated: handleNoteUpdated,\n onSelectNote: selectNote,\n onRefresh: refresh,\n children: /* @__PURE__ */ jsxs(\"div\", { ref: rootRef, className: `${NoteApp_default.root}${compact ? ` ${NoteApp_default.rootCompact}` : \"\"}`, children: [\n /* @__PURE__ */ jsx(\n NoteList,\n {\n notes,\n selectedId,\n onSelect: selectNote,\n onCreate: handleCreate,\n searchQuery,\n onSearchChange: handleSearchChange\n }\n ),\n /* @__PURE__ */ jsx(\n NoteEditor,\n {\n ref: editorRef,\n note: currentNote,\n loading: loadingNote,\n onSave: handleEditorSave\n }\n )\n ] })\n }\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(NoteApp, {}) }) })\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","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","_mod2","createRoot","NoteApp_default","_mod3","jsx","jsxs","formatDate","iso","d","diffMs","diffMins","diffHours","diffDays","NoteList","notes","selectedId","onSelect","onCreate","searchQuery","onSearchChange","inputRef","e","note","J","vt","u","W","ft","r","x","n","i","s","G","_t","w","j","q","xt","K","wt","yt","kt","Ct","U","Et","y","Y","St","k","Z","Dt","$","C","Q","At","E","tt","Mt","S","et","Tt","D","nt","zt","A","rt","Lt","Ht","t","o","a","M","m","c","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","stripFrontMatter","raw","match","NoteEditor","loading","onSave","ref","editorRef","saveStatus","setSaveStatus","saveTimerRef","onSaveRef","bodyContent","editor","handleChange","detail","markdown","tag","FM_REGEX","parseFrontMatter","heading","yaml","body","title","tags","created","inTags","line","trimmed","inline","serializeFrontMatter","lines","computeDiff","oldContent","newContent","oldText","newText","matchIndex","firstChangedLine","oldLines","newLines","contextStart","allOldLines","allNewLines","l","afterStart","afterEnd","NoteActions","children","selectedNoteId","selectedNote","onNoteCreated","onNoteDeleted","onSearch","onNoteUpdated","onSelectNote","_onRefresh","createNote","useCommand","deleteNote","searchNotes","updateNote","handleCreate","params","handleDelete","handleSearch","query","getRawContent","handle","handleListNotes","handleSelectNote","id","handleGetEditingContext","content","handleEditNote","currentRaw","newRaw","firstIndex","secondIndex","count","searchFrom","idx","parsed","tagsChanged","titleChanged","updated","diff","ActionsProvider","Action","COMPACT_WIDTH","NoteApp","setNotes","setSelectedId","currentNote","setCurrentNote","setSearchQuery","loadingNote","setLoadingNote","compact","setCompact","rootRef","listNotes","useCommand2","getNote","fetchNotes","result","err","refresh","updateLayout","width","observer","entries","entry","selectNote","searchTimerRef","handleSearchChange","handleEditorSave","handleNoteCreated","handleNoteDeleted","handleNoteUpdated","activate","ctx","root","WindowIdProvider","MiniAppIdProvider"],"mappings":"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"}
|