diff --git a/build.sh b/build.sh deleted file mode 100755 index c13fb06..0000000 --- a/build.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -set -e - -# Load NVM for Node.js -export NVM_DIR="${NVM_DIR:-$HOME/.config/nvm}" -if [ -s "$NVM_DIR/nvm.sh" ]; then - . "$NVM_DIR/nvm.sh" -elif [ -s "$HOME/.nvm/nvm.sh" ]; then - . "$HOME/.nvm/nvm.sh" -fi - -BUILD_DIR="build" -mkdir -p "$BUILD_DIR" - -echo "==> Building frontend..." -cd frontend && npm run build && cd .. -cp -r frontend/dist/* cmd/verstak-gui/frontend-dist/ - -echo "==> Building GUI binary..." -go build -tags "webkit2_41 desktop production" -ldflags="-s -w" -o "$BUILD_DIR/verstak-gui-linux-amd64" ./cmd/verstak-gui/ - -echo "==> Building server binary..." -go build -ldflags="-s -w" -o "$BUILD_DIR/verstak-server-linux-amd64" ./cmd/verstak-server/ - -echo "==> Done. Binaries in $BUILD_DIR/:" -ls -lh "$BUILD_DIR/" diff --git a/cmd/verstak-gui/frontend-dist/assets/main-BBKDbfa7.css b/cmd/verstak-gui/frontend-dist/assets/main-BBKDbfa7.css new file mode 100644 index 0000000..f8acca3 --- /dev/null +++ b/cmd/verstak-gui/frontend-dist/assets/main-BBKDbfa7.css @@ -0,0 +1 @@ +.file-row.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;cursor:default;transition:background .12s;min-height:52px;-webkit-user-select:none;user-select:none;position:relative}.file-row.svelte-1skuef2.svelte-1skuef2:hover{background:#1e1e30}.file-row--selected.svelte-1skuef2.svelte-1skuef2{background:#1e1e3a;outline:1px solid #3a3a6c}.file-row--selected.svelte-1skuef2.svelte-1skuef2:hover{background:#252545}.file-row.svelte-1skuef2.svelte-1skuef2:focus-visible{outline:2px solid #5588ff;outline-offset:-2px}.file-row-icon.svelte-1skuef2.svelte-1skuef2{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:#888}.file-row-body.svelte-1skuef2.svelte-1skuef2{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.file-row-name.svelte-1skuef2.svelte-1skuef2{font-size:13px;color:#ddd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.file-row-meta.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;gap:4px;font-size:11px;color:#666}.meta-sep.svelte-1skuef2.svelte-1skuef2{color:#444}.file-row-actions.svelte-1skuef2.svelte-1skuef2{display:flex;gap:2px;align-items:center;opacity:0;transition:opacity .15s ease;flex-shrink:0}.file-row.svelte-1skuef2:hover .file-row-actions.svelte-1skuef2{opacity:1}.action-btn.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:4px;background:transparent;color:#666;cursor:pointer;transition:background .12s,color .12s}.action-btn.svelte-1skuef2.svelte-1skuef2:hover{background:#2a2a3c;color:#ccc}.action-btn-danger.svelte-1skuef2.svelte-1skuef2:hover{background:#3a2222;color:#ff6b6b}.action-btn.svelte-1skuef2.svelte-1skuef2:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.menu-backdrop.svelte-1skuef2.svelte-1skuef2{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.menu.svelte-1skuef2.svelte-1skuef2{position:fixed;background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:4px;z-index:100;min-width:220px;box-shadow:0 4px 16px #00000080}.menu-item.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;background:transparent;color:#ccc;font-size:12px;text-align:left;cursor:pointer;border-radius:4px;font-family:inherit}.menu-item.svelte-1skuef2.svelte-1skuef2:hover{background:#2a2a3c;color:#fff}.menu-item-danger.svelte-1skuef2.svelte-1skuef2{color:#ff6b6b}.menu-item-danger.svelte-1skuef2.svelte-1skuef2:hover{background:#3a2222}.menu-item.svelte-1skuef2.svelte-1skuef2:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.menu-sep.svelte-1skuef2.svelte-1skuef2{height:1px;background:#2a2a3c;margin:4px 8px}.breadcrumbs.svelte-csi2lb{display:flex;align-items:center;gap:4px;padding:8px 0;font-size:13px;color:#999}.sep.svelte-csi2lb{color:#444}.crumb.svelte-csi2lb{font-size:13px}.crumb--current.svelte-csi2lb{color:#ccc}.crumb--link.svelte-csi2lb{background:none;border:none;padding:2px 4px;color:#888;cursor:pointer;border-radius:3px;font-family:inherit;font-size:13px;transition:color .12s,background .12s}.crumb--link.svelte-csi2lb:hover{color:#ccc;background:#1e1e30}.crumb--link.svelte-csi2lb:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.overlay.svelte-1cw3u0m{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1000}.modal.svelte-1cw3u0m{background:#14141f;border:1px solid #2a2a3c;border-radius:10px;width:90vw;max-width:900px;height:85vh;max-height:700px;display:flex;flex-direction:column;overflow:hidden}.preview-header.svelte-1cw3u0m{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid #2a2a3c;flex-shrink:0}.preview-title.svelte-1cw3u0m{display:flex;align-items:center;gap:8px;color:#ddd;font-size:14px;min-width:0}.preview-name.svelte-1cw3u0m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-meta.svelte-1cw3u0m{font-size:11px;color:#666;margin-left:auto;white-space:nowrap}.preview-actions.svelte-1cw3u0m{display:flex;gap:4px;flex-shrink:0;margin-left:8px}.action-btn.svelte-1cw3u0m{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:4px;background:transparent;color:#666;cursor:pointer;transition:background .12s,color .12s}.action-btn.svelte-1cw3u0m:hover{background:#2a2a3c;color:#ccc}.action-btn.svelte-1cw3u0m:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.action-btn-close.svelte-1cw3u0m{color:#ff6b6b}.action-btn-close.svelte-1cw3u0m:hover{background:#3a2222;color:#f44}.preview-body.svelte-1cw3u0m{flex:1;overflow:auto;min-height:0}.preview-status.svelte-1cw3u0m{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;color:#888;font-size:14px}.preview-image-container.svelte-1cw3u0m{display:flex;align-items:center;justify-content:center;padding:16px;min-height:200px;background:#0e0e18}.preview-image.svelte-1cw3u0m{max-width:100%;max-height:calc(85vh - 100px);object-fit:contain;border-radius:4px}.preview-text.svelte-1cw3u0m{margin:0;padding:16px;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.5;color:#ccc;white-space:pre-wrap;word-wrap:break-word;overflow:auto}.preview-pdf-container.svelte-1cw3u0m{width:100%;height:100%}.preview-pdf.svelte-1cw3u0m{width:100%;height:100%;border:none}.btn-sm.svelte-1cw3u0m{padding:6px 14px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:12px;font-family:inherit;transition:background .12s}.btn-sm.svelte-1cw3u0m:hover{background:#223}.overlay.svelte-1fv6yyk{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200}.modal.svelte-1fv6yyk{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;padding:24px;width:360px;max-width:90vw}h3.svelte-1fv6yyk{font-size:18px;margin-bottom:12px;color:#e4e4ef}.message.svelte-1fv6yyk{font-size:14px;color:#aaa;margin-bottom:20px;line-height:1.4}.actions.svelte-1fv6yyk{display:flex;gap:8px;justify-content:flex-end}.btn.svelte-1fv6yyk{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit}.btn.svelte-1fv6yyk:hover{background:#223}.btn-primary.svelte-1fv6yyk{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-1fv6yyk:hover{background:#4f46e5}.btn-danger.svelte-1fv6yyk{background:#dc2626;border-color:#dc2626;color:#fff}.btn-danger.svelte-1fv6yyk:hover{background:#b91c1c}.btn.svelte-1fv6yyk:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.tree-item.svelte-zj71cl.svelte-zj71cl{display:flex;align-items:center;height:32px;padding-right:8px;cursor:default;font-size:13px;color:#ccc;-webkit-user-select:none;user-select:none}.tree-item.svelte-zj71cl.svelte-zj71cl:hover{background:#223}.tree-item.selected.svelte-zj71cl.svelte-zj71cl{background:#2a2a4a;color:#fff;font-weight:500}.tree-item.drop-valid.svelte-zj71cl.svelte-zj71cl{background:#1a3a1a;outline:1px solid #4ade80;outline-offset:-1px}.tree-item.drop-invalid.svelte-zj71cl.svelte-zj71cl{background:#3a1a1a;outline:1px solid #ff6b6b;outline-offset:-1px}.tree-toggle.svelte-zj71cl.svelte-zj71cl{background:none;border:none;color:#666;cursor:pointer;padding:0;width:20px;height:32px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:inherit;line-height:1;font-size:12px}.tree-toggle.svelte-zj71cl.svelte-zj71cl:hover{color:#a5b4fc}.tree-toggle-placeholder.svelte-zj71cl.svelte-zj71cl{display:inline-block;width:20px;flex-shrink:0}.tree-icon.svelte-zj71cl.svelte-zj71cl{display:inline-flex;align-items:center;justify-content:center;width:20px;height:32px;flex-shrink:0;color:#888;margin-right:4px;cursor:pointer}.tree-icon.svelte-zj71cl.svelte-zj71cl:hover,.tree-item.selected.svelte-zj71cl .tree-icon.svelte-zj71cl{color:#a5b4fc}.tree-label.svelte-zj71cl.svelte-zj71cl{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;line-height:32px}.svelte-16kcxbw.svelte-16kcxbw,.svelte-16kcxbw.svelte-16kcxbw:before,.svelte-16kcxbw.svelte-16kcxbw:after{box-sizing:border-box;margin:0;padding:0}.app.svelte-16kcxbw.svelte-16kcxbw{display:flex;width:100vw;height:100vh;overflow:hidden;background:#13131f;color:#e4e4ef;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}.sidebar.svelte-16kcxbw.svelte-16kcxbw{width:260px;min-width:200px;height:100vh;display:flex;flex-direction:column;background:#1a1a28;border-right:1px solid #2a2a3c;flex-shrink:0;overflow:hidden}.sidebar-brand.svelte-16kcxbw.svelte-16kcxbw{padding:16px 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #2a2a3c;flex-shrink:0}.logo.svelte-16kcxbw.svelte-16kcxbw{font-size:20px;line-height:1}.brand-name.svelte-16kcxbw.svelte-16kcxbw{font-size:16px;font-weight:600}.sidebar-nav.svelte-16kcxbw.svelte-16kcxbw{flex:1;overflow-y:auto;padding:12px 0}.nav-group.svelte-16kcxbw.svelte-16kcxbw{margin-bottom:16px}.nav-label.svelte-16kcxbw.svelte-16kcxbw{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666;padding:4px 20px;margin-bottom:4px}.nav-item.svelte-16kcxbw.svelte-16kcxbw{display:block;width:100%;padding:8px 20px;border:none;background:none;color:#ccc;font-size:13px;text-align:left;cursor:pointer;border-radius:0;font-family:inherit}.nav-item.svelte-16kcxbw.svelte-16kcxbw:hover{background:#223}.nav-item.selected.svelte-16kcxbw.svelte-16kcxbw{background:#2a2a4a;color:#fff;font-weight:500}.workspace-tree-area.svelte-16kcxbw.svelte-16kcxbw{min-height:32px}.workspace-tree-area.drop-valid.svelte-16kcxbw.svelte-16kcxbw{outline:2px dashed #4ade80;outline-offset:-2px;background:#4ade800d}.nav-empty.svelte-16kcxbw.svelte-16kcxbw{padding:8px 20px;color:#555;font-size:12px}.nav-label-row.svelte-16kcxbw.svelte-16kcxbw{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666;padding:4px 20px;margin-bottom:4px;display:flex;align-items:center;justify-content:space-between}.nav-add-btn.svelte-16kcxbw.svelte-16kcxbw{background:none;border:none;color:#666;cursor:pointer;font-size:16px;padding:0 4px;font-family:inherit;line-height:1}.nav-add-btn.svelte-16kcxbw.svelte-16kcxbw:hover{color:#ccc}.context-menu-backdrop.svelte-16kcxbw.svelte-16kcxbw{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.context-menu.svelte-16kcxbw.svelte-16kcxbw{position:fixed;background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:4px;min-width:180px;box-shadow:0 8px 24px #0006}.context-menu-section.svelte-16kcxbw.svelte-16kcxbw{padding:6px 12px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666}.context-menu-item.svelte-16kcxbw.svelte-16kcxbw{display:flex;width:100%;padding:6px 12px;border:none;background:none;color:#ccc;font-size:13px;text-align:left;cursor:pointer;border-radius:4px;font-family:inherit;align-items:center;gap:6px}.context-menu-item.svelte-16kcxbw.svelte-16kcxbw:hover{background:#223;color:#fff}.context-menu-item.danger.svelte-16kcxbw.svelte-16kcxbw{color:#ff6b6b}.context-menu-item.danger.svelte-16kcxbw.svelte-16kcxbw:hover{background:#3a2222;color:#ff6b6b}.context-menu-divider.svelte-16kcxbw.svelte-16kcxbw{height:1px;background:#2a2a3c;margin:4px 0}.create-context.svelte-16kcxbw.svelte-16kcxbw{font-size:12px;color:#888;margin-bottom:12px}.sidebar-footer.svelte-16kcxbw.svelte-16kcxbw{padding:8px 12px;border-top:1px solid #2a2a3c;flex-shrink:0;display:flex;flex-direction:column;gap:4px}.version.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#555;text-align:center}.main.svelte-16kcxbw.svelte-16kcxbw{flex:1;display:flex;flex-direction:column;height:100vh;min-width:0;overflow:hidden;background:#13131f}.header.svelte-16kcxbw.svelte-16kcxbw{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;flex-shrink:0;min-height:48px}.header-left.svelte-16kcxbw.svelte-16kcxbw{display:flex;align-items:center;gap:8px;flex:1}.header-right.svelte-16kcxbw.svelte-16kcxbw{display:flex;align-items:center;gap:8px}.header-sync-btn.svelte-16kcxbw.svelte-16kcxbw{background:#1e1e38;border:1px solid #6366f1;border-radius:8px;padding:6px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:#c0c0f0;font-family:inherit;font-size:13px;position:relative}.header-sync-btn.svelte-16kcxbw.svelte-16kcxbw:hover{background:#2a2a50;color:#e4e4ef;border-color:#818cf8}.header-sync-btn.svelte-16kcxbw.svelte-16kcxbw:disabled{opacity:.5;cursor:not-allowed}.sync-badge.svelte-16kcxbw.svelte-16kcxbw{background:#6366f1;color:#fff;font-size:10px;border-radius:50%;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;position:absolute;top:-6px;right:-6px}.crumb.svelte-16kcxbw.svelte-16kcxbw{font-size:14px;font-weight:500}.crumb.placeholder.svelte-16kcxbw.svelte-16kcxbw{color:#666}.crumb-type.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#555;background:#1e1e2e;padding:2px 8px;border-radius:10px;margin-left:8px}.error-banner.svelte-16kcxbw.svelte-16kcxbw{background:#3a2222;color:#f88;padding:8px 24px;font-size:12px;border-bottom:1px solid #4a2222;flex-shrink:0;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.dismiss-btn.svelte-16kcxbw.svelte-16kcxbw{background:none;border:none;color:#f66;cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:2px}.dismiss-btn.svelte-16kcxbw.svelte-16kcxbw:hover{color:#f44}.tabs.svelte-16kcxbw.svelte-16kcxbw{display:flex;border-bottom:1px solid #2a2a3c;flex-shrink:0;padding:0 24px}.tab.svelte-16kcxbw.svelte-16kcxbw{padding:10px 16px;border:none;background:none;color:#888;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;font-family:inherit}.tab.svelte-16kcxbw.svelte-16kcxbw:hover{color:#a5b4fc}.tab.active.svelte-16kcxbw.svelte-16kcxbw{color:#e4e4ef;border-bottom-color:#818cf8;background:#6366f11f;font-weight:600}.tab-content.svelte-16kcxbw.svelte-16kcxbw{flex:1;overflow-y:auto}.note-editor.svelte-16kcxbw.svelte-16kcxbw{flex:1;display:flex;flex-direction:column;height:100%}.note-editor-header.svelte-16kcxbw.svelte-16kcxbw{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;gap:12px;flex-shrink:0}.note-title.svelte-16kcxbw.svelte-16kcxbw{font-size:16px;font-weight:500}.dirty-mark.svelte-16kcxbw.svelte-16kcxbw{color:#f59e0b;font-size:10px}.note-editor-actions.svelte-16kcxbw.svelte-16kcxbw{margin-left:auto;display:flex;gap:8px}.note-textarea.svelte-16kcxbw.svelte-16kcxbw{flex:1;width:100%;border:none;outline:none;background:#13131f;color:#e4e4ef;font-family:SF Mono,Fira Code,monospace;font-size:14px;line-height:1.6;padding:24px;resize:none}.overview.svelte-16kcxbw.svelte-16kcxbw{padding:24px}.overview.svelte-16kcxbw h2.svelte-16kcxbw{font-size:24px;margin-bottom:16px}.meta-grid.svelte-16kcxbw.svelte-16kcxbw{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}.meta-item.svelte-16kcxbw.svelte-16kcxbw{background:#1a1a28;padding:12px 16px;border-radius:8px}.meta-label.svelte-16kcxbw.svelte-16kcxbw{display:block;font-size:11px;color:#666;margin-bottom:4px;text-transform:uppercase}.quick-actions.svelte-16kcxbw.svelte-16kcxbw{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.qa-btn.svelte-16kcxbw.svelte-16kcxbw{padding:10px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:8px;cursor:pointer;font-size:13px;font-family:inherit;display:inline-flex;align-items:center;gap:6px}.qa-btn.svelte-16kcxbw.svelte-16kcxbw:hover{background:#223}.qa-btn.svelte-16kcxbw.svelte-16kcxbw:disabled{opacity:.4;cursor:not-allowed}.recent-section.svelte-16kcxbw.svelte-16kcxbw{margin-bottom:24px}.recent-section.svelte-16kcxbw h3.svelte-16kcxbw{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:8px}.recent-note.svelte-16kcxbw.svelte-16kcxbw{padding:8px 12px;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between}.recent-note.svelte-16kcxbw.svelte-16kcxbw:hover{background:#1a1a28}.recent-date.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#555}.recent-entry.svelte-16kcxbw.svelte-16kcxbw{padding:6px 0;font-size:13px;color:#888;border-bottom:1px solid #1a1a28}.notes-tab.svelte-16kcxbw.svelte-16kcxbw{padding:24px}.tab-toolbar.svelte-16kcxbw.svelte-16kcxbw{margin-bottom:16px}.create-form.svelte-16kcxbw.svelte-16kcxbw{background:#1a1a28;padding:16px;border-radius:8px;margin-bottom:16px}.create-form.svelte-16kcxbw input.svelte-16kcxbw{width:100%;padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit;margin-bottom:8px}.create-form.svelte-16kcxbw input.svelte-16kcxbw:focus{outline:none;border-color:#6366f1}.form-actions.svelte-16kcxbw.svelte-16kcxbw{display:flex;gap:8px}.notes-list.svelte-16kcxbw.svelte-16kcxbw{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.note-card.svelte-16kcxbw.svelte-16kcxbw{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:16px;cursor:pointer}.note-card.svelte-16kcxbw.svelte-16kcxbw:hover{border-color:#3a3a5c}.note-card-title.svelte-16kcxbw.svelte-16kcxbw{font-size:14px;font-weight:500;margin-bottom:4px}.note-card-date.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#555}.worklog-tab.svelte-16kcxbw.svelte-16kcxbw{padding:24px}.worklog-form.svelte-16kcxbw.svelte-16kcxbw{display:flex;gap:8px;margin-bottom:24px;align-items:center}.worklog-form.svelte-16kcxbw input.svelte-16kcxbw{padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit}.worklog-form.svelte-16kcxbw input.svelte-16kcxbw:focus{outline:none;border-color:#6366f1}.worklog-form.svelte-16kcxbw input[type=text].svelte-16kcxbw{flex:1}.worklog-form.svelte-16kcxbw input[type=number].svelte-16kcxbw{width:70px}.worklog-entry.svelte-16kcxbw.svelte-16kcxbw{padding:12px 0;border-bottom:1px solid #1a1a28}.wl-meta.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#555;margin-top:2px}.actions-tab.svelte-16kcxbw.svelte-16kcxbw{padding:24px}.action-card.svelte-16kcxbw.svelte-16kcxbw{background:#1a1a28;padding:12px 16px;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.action-info.svelte-16kcxbw.svelte-16kcxbw{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.action-title.svelte-16kcxbw.svelte-16kcxbw{font-weight:500}.action-type.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px;white-space:nowrap}.action-data.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#555;font-family:SF Mono,Fira Code,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.action-btns.svelte-16kcxbw.svelte-16kcxbw{display:flex;gap:4px;flex-shrink:0}.action-btns.svelte-16kcxbw .btn-danger.svelte-16kcxbw{color:#ff6b6b;border-color:#4a2222;padding:4px 8px}.action-btns.svelte-16kcxbw .btn-danger.svelte-16kcxbw:hover{background:#3a2222}.empty-state.svelte-16kcxbw.svelte-16kcxbw{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-state.svelte-16kcxbw p.svelte-16kcxbw{margin:0;font-size:14px;color:#666}.empty-state.svelte-16kcxbw .empty-icon.svelte-16kcxbw{margin-bottom:12px;color:#444}.empty-state.svelte-16kcxbw .hint.svelte-16kcxbw{font-size:12px;color:#555;margin-top:6px}.empty-state.svelte-16kcxbw .empty-actions.svelte-16kcxbw{display:flex;gap:8px;justify-content:center;margin-top:16px}.welcome.svelte-16kcxbw.svelte-16kcxbw{padding:48px 24px;text-align:center}.welcome.svelte-16kcxbw h2.svelte-16kcxbw{font-size:32px;font-weight:300;color:#8888a4;margin-bottom:16px}.welcome.svelte-16kcxbw p.svelte-16kcxbw{color:#666;font-size:14px}.error-text.svelte-16kcxbw.svelte-16kcxbw{color:#f88}.modal-overlay.svelte-16kcxbw.svelte-16kcxbw{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal.svelte-16kcxbw.svelte-16kcxbw{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;padding:24px;width:400px;max-width:90vw}.modal.svelte-16kcxbw h3.svelte-16kcxbw{font-size:18px;margin-bottom:16px}.form-group.svelte-16kcxbw.svelte-16kcxbw{margin-bottom:12px}.form-group.svelte-16kcxbw label.svelte-16kcxbw{display:block}.form-group.svelte-16kcxbw .label-text.svelte-16kcxbw,.form-group.svelte-16kcxbw .form-label.svelte-16kcxbw{display:block;font-size:12px;color:#666;margin-bottom:4px}.form-group.svelte-16kcxbw input.svelte-16kcxbw,.form-group.svelte-16kcxbw select.svelte-16kcxbw{width:100%;padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit}.form-group.svelte-16kcxbw select.svelte-16kcxbw{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px}.form-group.svelte-16kcxbw input.svelte-16kcxbw:focus,.form-group.svelte-16kcxbw select.svelte-16kcxbw:focus{outline:none;border-color:#6366f1}.modal-actions.svelte-16kcxbw.svelte-16kcxbw{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.btn.svelte-16kcxbw.svelte-16kcxbw{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit}.btn.svelte-16kcxbw.svelte-16kcxbw:hover{background:#223}.btn-primary.svelte-16kcxbw.svelte-16kcxbw{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-16kcxbw.svelte-16kcxbw:hover{background:#4f46e5}.btn.svelte-16kcxbw.svelte-16kcxbw:disabled{opacity:.4;cursor:not-allowed}.btn-sm.svelte-16kcxbw.svelte-16kcxbw{padding:4px 10px;font-size:12px}.btn-danger.svelte-16kcxbw.svelte-16kcxbw{color:#ff6b6b;border-color:#4a2222}.btn-danger.svelte-16kcxbw.svelte-16kcxbw:hover{background:#3a2222}.files-tab.svelte-16kcxbw.svelte-16kcxbw{padding:20px}.files-tab.svelte-16kcxbw .tab-toolbar.svelte-16kcxbw{display:flex;gap:8px;align-items:center;margin-bottom:16px}.file-list.svelte-16kcxbw.svelte-16kcxbw{display:flex;flex-direction:column}.back-btn.svelte-16kcxbw.svelte-16kcxbw{margin-bottom:4px;display:inline-flex;align-items:center;gap:4px}.import-summary.svelte-16kcxbw.svelte-16kcxbw{margin-bottom:16px}.summary-row.svelte-16kcxbw.svelte-16kcxbw{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;border-bottom:1px solid #2a2a3c}.summary-warn.svelte-16kcxbw.svelte-16kcxbw{margin-top:8px;padding:8px 12px;background:#3a2a22;border-radius:6px;color:#fa6;font-size:13px}.rename-error.svelte-16kcxbw.svelte-16kcxbw{color:#ff6b6b;font-size:12px;margin-top:4px}.template-cards.svelte-16kcxbw.svelte-16kcxbw{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.template-card.svelte-16kcxbw.svelte-16kcxbw{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid #2a2a3c;background:#13131f;color:#ccc;border-radius:8px;cursor:pointer;font-size:13px;font-family:inherit;width:100%;text-align:left}.template-card.svelte-16kcxbw.svelte-16kcxbw:hover{background:#1e1e30;border-color:#3a3a5c}.template-card.selected.svelte-16kcxbw.svelte-16kcxbw{background:#2a2a50;border-color:#6366f1;color:#e4e4ef}.template-card-text.svelte-16kcxbw.svelte-16kcxbw{display:flex;flex-direction:column;gap:2px;min-width:0}.template-card-title.svelte-16kcxbw.svelte-16kcxbw{font-weight:500}.template-card-desc.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#888}.today-dashboard.svelte-16kcxbw.svelte-16kcxbw{padding:24px;overflow-y:auto;flex:1}.today-header.svelte-16kcxbw.svelte-16kcxbw{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.today-header.svelte-16kcxbw h2.svelte-16kcxbw{font-size:24px}.today-date.svelte-16kcxbw.svelte-16kcxbw{font-size:13px;color:#666}.today-summary.svelte-16kcxbw.svelte-16kcxbw{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.summary-chip.svelte-16kcxbw.svelte-16kcxbw{font-size:12px;color:#b0b0c0;background:#1a1a28;border:1px solid #2a2a3c;padding:4px 12px;border-radius:16px}.today-case.svelte-16kcxbw.svelte-16kcxbw{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;margin-bottom:12px;overflow:hidden}.today-case-header.svelte-16kcxbw.svelte-16kcxbw{padding:12px 16px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #2a2a3c;cursor:pointer}.today-case-header.svelte-16kcxbw.svelte-16kcxbw:hover{background:#1e1e30}.today-case-title.svelte-16kcxbw.svelte-16kcxbw{font-weight:500}.today-case-type.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px}.today-case-count.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#6366f1;margin-left:4px}.today-case-time.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#555;margin-left:auto}.today-events.svelte-16kcxbw.svelte-16kcxbw{padding:8px 16px}.today-event.svelte-16kcxbw.svelte-16kcxbw{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:#b0b0c0;cursor:pointer}.today-event.svelte-16kcxbw.svelte-16kcxbw:hover{color:#e4e4ef}.today-event-icon.svelte-16kcxbw.svelte-16kcxbw{width:18px;text-align:center;color:#6366f1;font-size:13px}.today-event-title.svelte-16kcxbw.svelte-16kcxbw{flex:1}.today-event-type.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#666}.today-event-time.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#555;margin-left:auto}.today-events-empty.svelte-16kcxbw.svelte-16kcxbw{padding:8px 16px;font-size:13px;color:#666;font-style:italic}.today-empty.svelte-16kcxbw.svelte-16kcxbw{padding:48px 24px;text-align:center}.today-empty.svelte-16kcxbw p.svelte-16kcxbw{color:#666;font-size:14px;margin:0}.today-empty.svelte-16kcxbw .hint.svelte-16kcxbw{font-size:12px;color:#555;margin-top:8px}.today-timeline.svelte-16kcxbw.svelte-16kcxbw{margin-top:24px}.today-timeline.svelte-16kcxbw h3.svelte-16kcxbw{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:12px}.timeline-event.svelte-16kcxbw.svelte-16kcxbw{display:flex;align-items:center;gap:10px;font-size:13px;color:#b0b0c0;border-left:2px solid #2a2a3c;padding:6px 0 6px 16px;margin-left:4px;cursor:pointer}.timeline-event.svelte-16kcxbw.svelte-16kcxbw:hover{color:#e4e4ef}.timeline-dot.svelte-16kcxbw.svelte-16kcxbw{width:6px;height:6px;border-radius:50%;background:#6366f1;margin-left:-19px;flex-shrink:0}.timeline-title.svelte-16kcxbw.svelte-16kcxbw{flex:1}.timeline-type.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#666}.timeline-time.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#555}.activity-tab.svelte-16kcxbw.svelte-16kcxbw{padding:24px}.activity-events.svelte-16kcxbw.svelte-16kcxbw{display:flex;flex-direction:column;gap:2px}.activity-event.svelte-16kcxbw.svelte-16kcxbw{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;color:#b0b0c0;cursor:pointer}.activity-event.svelte-16kcxbw.svelte-16kcxbw:hover{background:#1a1a28;color:#e4e4ef}.activity-event-icon.svelte-16kcxbw.svelte-16kcxbw{width:18px;text-align:center;color:#6366f1;font-size:13px;flex-shrink:0}.activity-event-title.svelte-16kcxbw.svelte-16kcxbw{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-event-type.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#666;flex-shrink:0}.activity-event-target.svelte-16kcxbw.svelte-16kcxbw{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px;flex-shrink:0}.activity-event-time.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#555;margin-left:8px;flex-shrink:0}.activity-feed.svelte-16kcxbw.svelte-16kcxbw{padding:24px;overflow-y:auto;flex:1}.activity-feed-header.svelte-16kcxbw.svelte-16kcxbw{margin-bottom:20px}.activity-feed-header.svelte-16kcxbw h2.svelte-16kcxbw{font-size:24px}.activity-feed-events.svelte-16kcxbw.svelte-16kcxbw{display:flex;flex-direction:column;gap:2px}.activity-feed-event.svelte-16kcxbw.svelte-16kcxbw{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer}.activity-feed-event.svelte-16kcxbw.svelte-16kcxbw:hover{background:#1a1a28;color:#e4e4ef}.activity-feed-icon.svelte-16kcxbw.svelte-16kcxbw{width:20px;text-align:center;color:#6366f1;font-size:14px;flex-shrink:0;margin-top:1px}.activity-feed-body.svelte-16kcxbw.svelte-16kcxbw{flex:1;min-width:0}.activity-feed-title.svelte-16kcxbw.svelte-16kcxbw{font-size:14px;color:#e4e4ef}.activity-feed-meta.svelte-16kcxbw.svelte-16kcxbw{display:flex;align-items:center;gap:8px;margin-top:2px}.activity-feed-type.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#666}.activity-feed-target.svelte-16kcxbw.svelte-16kcxbw{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px}.activity-feed-time.svelte-16kcxbw.svelte-16kcxbw{font-size:11px;color:#555}.sidebar-sync-btn.svelte-16kcxbw.svelte-16kcxbw{background:#1e1e38;border:1px solid #6366f1;border-radius:8px;padding:8px 12px;cursor:pointer;width:100%;display:flex;align-items:center;gap:8px;color:#c0c0f0;font-family:inherit;font-size:13px}.sidebar-sync-btn.svelte-16kcxbw.svelte-16kcxbw:hover{background:#2a2a50;color:#e4e4ef;border-color:#818cf8}.sidebar-sync-label.svelte-16kcxbw.svelte-16kcxbw{flex:1;text-align:left}.sync-dot.svelte-16kcxbw.svelte-16kcxbw{width:8px;height:8px;border-radius:50%;background:#4a4a4a;flex-shrink:0}.sync-dot.active.svelte-16kcxbw.svelte-16kcxbw{background:#4ade80;box-shadow:0 0 6px #4ade8080}.modal-sync.svelte-16kcxbw.svelte-16kcxbw{width:460px}.sync-status.svelte-16kcxbw.svelte-16kcxbw{background:#13131f;border-radius:8px;padding:12px;margin-bottom:16px}.sync-row.svelte-16kcxbw.svelte-16kcxbw{display:flex;justify-content:space-between;padding:4px 0;font-size:13px}.sync-label.svelte-16kcxbw.svelte-16kcxbw{color:#666}.sync-value.svelte-16kcxbw.svelte-16kcxbw{color:#e4e4ef}.sync-value.mono.svelte-16kcxbw.svelte-16kcxbw{font-family:SF Mono,Fira Code,monospace;font-size:12px}.sync-result.svelte-16kcxbw.svelte-16kcxbw{font-size:12px;color:#6366f1;padding:4px 0}.sync-connected-actions.svelte-16kcxbw.svelte-16kcxbw{display:flex;gap:8px;margin-bottom:16px} diff --git a/cmd/verstak-gui/frontend-dist/assets/main-CWWXp5bW.js b/cmd/verstak-gui/frontend-dist/assets/main-CWWXp5bW.js new file mode 100644 index 0000000..f392500 --- /dev/null +++ b/cmd/verstak-gui/frontend-dist/assets/main-CWWXp5bW.js @@ -0,0 +1,3 @@ +var gs=Object.defineProperty;var Cs=(l,e,t)=>e in l?gs(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t;var Xt=(l,e,t)=>Cs(l,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const c of s.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&n(c)}).observe(document,{childList:!0,subtree:!0});function t(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(o){if(o.ep)return;o.ep=!0;const s=t(o);fetch(o.href,s)}})();function ne(){}function ri(l){return l()}function Ml(){return Object.create(null)}function me(l){l.forEach(ri)}function Lt(l){return typeof l=="function"}function ft(l,e){return l!=l?e==e:l!==e||l&&typeof l=="object"||typeof l=="function"}let Pt;function zt(l,e){return l===e?!0:(Pt||(Pt=document.createElement("a")),Pt.href=e,l===Pt.href)}function Ss(l){return Object.keys(l).length===0}const Ts=typeof window<"u"?window:typeof globalThis<"u"?globalThis:global;function r(l,e){l.appendChild(e)}function y(l,e,t){l.insertBefore(e,t||null)}function w(l){l.parentNode&&l.parentNode.removeChild(l)}function We(l,e){for(let t=0;tl.removeEventListener(e,t,n)}function el(l){return function(e){return e.preventDefault(),l.call(this,e)}}function $e(l){return function(e){return e.stopPropagation(),l.call(this,e)}}function vt(l){return function(e){e.target===this&&l.call(this,e)}}function i(l,e,t){t==null?l.removeAttribute(e):l.getAttribute(e)!==t&&l.setAttribute(e,t)}function xt(l){return l===""?null:+l}function Ns(l){return Array.from(l.childNodes)}function G(l,e){e=""+e,l.data!==e&&(l.data=e)}function Ae(l,e){l.value=e??""}function He(l,e,t,n){t==null?l.style.removeProperty(e):l.style.setProperty(e,t,"")}function Il(l,e,t){for(let n=0;n{const o=l.$$.callbacks[e];if(o){const s=Ms(e,t,{cancelable:n});return o.slice().forEach(c=>{c.call(l,s)}),!s.defaultPrevented}return!0}}function fi(l,e){const t=l.$$.callbacks[e.type];t&&t.slice().forEach(n=>n.call(this,e))}const wt=[],Fl=[];let yt=[];const El=[],Is=Promise.resolve();let Zt=!1;function Fs(){Zt||(Zt=!0,Is.then(ui))}function Bt(l){yt.push(l)}const Jt=new Set;let ht=0;function ui(){if(ht!==0)return;const l=At;do{try{for(;htl.indexOf(n)===-1?e.push(n):t.push(n)),t.forEach(n=>n()),yt=e}const Ot=new Set;let _t;function qe(){_t={r:0,c:[],p:_t}}function Ye(){_t.r||me(_t.c),_t=_t.p}function oe(l,e){l&&l.i&&(Ot.delete(l),l.i(e))}function re(l,e,t,n){if(l&&l.o){if(Ot.has(l))return;Ot.add(l),_t.c.push(()=>{Ot.delete(l),n&&(t&&l.d(1),n())}),l.o(e)}else n&&n()}function pe(l){return(l==null?void 0:l.length)!==void 0?l:Array.from(l)}function di(l,e){re(l,1,1,()=>{e.delete(l.key)})}function pi(l,e,t,n,o,s,c,a,f,d,_,b){let v=l.length,h=s.length,k=v;const C={};for(;k--;)C[l[k].key]=k;const T=[],S=new Map,M=new Map,N=[];for(k=h;k--;){const D=b(o,s,k),L=t(D);let R=c.get(L);R?N.push(()=>R.p(D,e)):(R=d(L,D),R.c()),S.set(L,T[k]=R),L in C&&M.set(L,Math.abs(k-C[L]))}const I=new Set,B=new Set;function z(D){oe(D,1),D.m(a,_),c.set(D.key,D),_=D.first,h--}for(;v&&h;){const D=T[h-1],L=l[v-1],R=D.key,x=L.key;D===L?(_=D.first,v--,h--):S.has(x)?!c.has(R)||I.has(R)?z(D):B.has(x)?v--:M.get(R)>M.get(x)?(B.add(R),z(D)):(I.add(x),v--):(f(L,c),v--)}for(;v--;){const D=l[v];S.has(D.key)||f(D,c)}for(;h;)z(T[h-1]);return me(N),T}function et(l){l&&l.c()}function Ze(l,e,t){const{fragment:n,after_update:o}=l.$$;n&&n.m(e,t),Bt(()=>{const s=l.$$.on_mount.map(ri).filter(Lt);l.$$.on_destroy?l.$$.on_destroy.push(...s):me(s),l.$$.on_mount=[]}),o.forEach(Bt)}function Qe(l,e){const t=l.$$;t.fragment!==null&&(As(t.after_update),me(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function Ls(l,e){l.$$.dirty[0]===-1&&(wt.push(l),Fs(),l.$$.dirty.fill(0)),l.$$.dirty[e/31|0]|=1<{const k=h.length?h[0]:v;return d.ctx&&o(d.ctx[b],d.ctx[b]=k)&&(!d.skip_bound&&d.bound[b]&&d.bound[b](k),_&&Ls(l,b)),v}):[],d.update(),_=!0,me(d.before_update),d.fragment=n?n(d.ctx):!1,e.target){if(e.hydrate){const b=Ns(e.target);d.fragment&&d.fragment.l(b),b.forEach(w)}else d.fragment&&d.fragment.c();e.intro&&oe(l.$$.fragment),Ze(l,e.target,e.anchor),ui()}Et(f)}class dt{constructor(){Xt(this,"$$");Xt(this,"$$set")}$destroy(){Qe(this,1),this.$destroy=ne}$on(e,t){if(!Lt(t))return ne;const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{const o=n.indexOf(t);o!==-1&&n.splice(o,1)}}$set(e){this.$$set&&!Ss(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const js="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(js);function Ps(l){let e,t;return{c(){e=j("path"),t=j("polyline"),i(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),i(t,"points","14 2 14 8 20 8")},m(n,o){y(n,e,o),y(n,t,o)},d(n){n&&(w(e),w(t))}}}function Os(l){let e,t,n,o,s;return{c(){e=j("path"),t=j("polyline"),n=j("line"),o=j("line"),s=j("polyline"),i(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),i(t,"points","14 2 14 8 20 8"),i(n,"x1","16"),i(n,"y1","13"),i(n,"x2","8"),i(n,"y2","13"),i(o,"x1","16"),i(o,"y1","17"),i(o,"x2","8"),i(o,"y2","17"),i(s,"points","10 9 9 9 8 9")},m(c,a){y(c,e,a),y(c,t,a),y(c,n,a),y(c,o,a),y(c,s,a)},d(c){c&&(w(e),w(t),w(n),w(o),w(s))}}}function zs(l){let e,t;return{c(){e=j("polyline"),t=j("polyline"),i(e,"points","16 18 22 12 16 6"),i(t,"points","8 6 2 12 8 18")},m(n,o){y(n,e,o),y(n,t,o)},d(n){n&&(w(e),w(t))}}}function xs(l){let e,t,n,o;return{c(){e=j("path"),t=j("polyline"),n=j("line"),o=j("rect"),i(e,"d","M21 8v13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8"),i(t,"points","7 3 12 8 17 3"),i(n,"x1","3"),i(n,"y1","8"),i(n,"x2","21"),i(n,"y2","8"),i(o,"x","10"),i(o,"y","12"),i(o,"width","4"),i(o,"height","4"),i(o,"rx","1")},m(s,c){y(s,e,c),y(s,t,c),y(s,n,c),y(s,o,c)},d(s){s&&(w(e),w(t),w(n),w(o))}}}function Bs(l){let e,t,n,o,s;return{c(){e=j("path"),t=j("polyline"),n=j("line"),o=j("line"),s=j("line"),i(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),i(t,"points","14 2 14 8 20 8"),i(n,"x1","9"),i(n,"y1","12"),i(n,"x2","15"),i(n,"y2","12"),i(o,"x1","9"),i(o,"y1","15"),i(o,"x2","13"),i(o,"y2","15"),i(s,"x1","12"),i(s,"y1","15"),i(s,"x2","12"),i(s,"y2","18")},m(c,a){y(c,e,a),y(c,t,a),y(c,n,a),y(c,o,a),y(c,s,a)},d(c){c&&(w(e),w(t),w(n),w(o),w(s))}}}function Rs(l){let e,t,n,o,s,c;return{c(){e=j("path"),t=j("polyline"),n=j("line"),o=j("line"),s=j("line"),c=j("line"),i(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),i(t,"points","14 2 14 8 20 8"),i(n,"x1","8"),i(n,"y1","12"),i(n,"x2","16"),i(n,"y2","12"),i(o,"x1","8"),i(o,"y1","16"),i(o,"x2","16"),i(o,"y2","16"),i(s,"x1","8"),i(s,"y1","14"),i(s,"x2","12"),i(s,"y2","14"),i(c,"x1","12"),i(c,"y1","12"),i(c,"x2","12"),i(c,"y2","18")},m(a,f){y(a,e,f),y(a,t,f),y(a,n,f),y(a,o,f),y(a,s,f),y(a,c,f)},d(a){a&&(w(e),w(t),w(n),w(o),w(s),w(c))}}}function Hs(l){let e,t,n,o;return{c(){e=j("path"),t=j("polyline"),n=j("line"),o=j("line"),i(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),i(t,"points","14 2 14 8 20 8"),i(n,"x1","16"),i(n,"y1","13"),i(n,"x2","8"),i(n,"y2","13"),i(o,"x1","16"),i(o,"y1","17"),i(o,"x2","8"),i(o,"y2","17")},m(s,c){y(s,e,c),y(s,t,c),y(s,n,c),y(s,o,c)},d(s){s&&(w(e),w(t),w(n),w(o))}}}function Vs(l){let e,t,n,o,s;return{c(){e=j("path"),t=j("polyline"),n=j("line"),o=j("line"),s=j("line"),i(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),i(t,"points","14 2 14 8 20 8"),i(n,"x1","8"),i(n,"y1","12"),i(n,"x2","16"),i(n,"y2","12"),i(o,"x1","8"),i(o,"y1","16"),i(o,"x2","16"),i(o,"y2","16"),i(s,"x1","8"),i(s,"y1","14"),i(s,"x2","12"),i(s,"y2","14")},m(c,a){y(c,e,a),y(c,t,a),y(c,n,a),y(c,o,a),y(c,s,a)},d(c){c&&(w(e),w(t),w(n),w(o),w(s))}}}function Us(l){let e,t,n;return{c(){e=j("path"),t=j("circle"),n=j("circle"),i(e,"d","M9 18V5l12-2v13"),i(t,"cx","6"),i(t,"cy","18"),i(t,"r","3"),i(n,"cx","18"),i(n,"cy","16"),i(n,"r","3")},m(o,s){y(o,e,s),y(o,t,s),y(o,n,s)},d(o){o&&(w(e),w(t),w(n))}}}function Ws(l){let e,t;return{c(){e=j("rect"),t=j("polyline"),i(e,"x","2"),i(e,"y","4"),i(e,"width","20"),i(e,"height","16"),i(e,"rx","2"),i(t,"points","10 9 16 12 10 15 10 9")},m(n,o){y(n,e,o),y(n,t,o)},d(n){n&&(w(e),w(t))}}}function Ks(l){let e,t,n;return{c(){e=j("rect"),t=j("circle"),n=j("polyline"),i(e,"x","3"),i(e,"y","3"),i(e,"width","18"),i(e,"height","18"),i(e,"rx","2"),i(e,"ry","2"),i(t,"cx","8.5"),i(t,"cy","8.5"),i(t,"r","1.5"),i(n,"points","21 15 16 10 5 21")},m(o,s){y(o,e,s),y(o,t,s),y(o,n,s)},d(o){o&&(w(e),w(t),w(n))}}}function Gs(l){let e;return{c(){e=j("path"),i(e,"d","M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z")},m(t,n){y(t,e,n)},d(t){t&&w(e)}}}function qs(l){let e;function t(s,c){return s[0]==="folder"?Gs:s[0]==="image"?Ks:s[0]==="video"?Ws:s[0]==="audio"?Us:s[0]==="pdf"?Vs:s[0]==="document"?Hs:s[0]==="spreadsheet"?Rs:s[0]==="presentation"?Bs:s[0]==="archive"?xs:s[0]==="code"?zs:s[0]==="text"?Os:Ps}let n=t(l),o=n(l);return{c(){e=j("svg"),o.c(),i(e,"width",l[1]),i(e,"height",l[1]),i(e,"viewBox","0 0 24 24"),i(e,"fill","none"),i(e,"stroke","currentColor"),i(e,"stroke-width","1.5"),i(e,"stroke-linecap","round"),i(e,"stroke-linejoin","round"),i(e,"xmlns","http://www.w3.org/2000/svg")},m(s,c){y(s,e,c),o.m(e,null)},p(s,[c]){n!==(n=t(s))&&(o.d(1),o=n(s),o&&(o.c(),o.m(e,null))),c&2&&i(e,"width",s[1]),c&2&&i(e,"height",s[1])},i:ne,o:ne,d(s){s&&w(e),o.d()}}}function Ys(l,e,t){let{kind:n="generic"}=e,{size:o=20}=e;return l.$$set=s=>{"kind"in s&&t(0,n=s.kind),"size"in s&&t(1,o=s.size)},[n,o]}class mi extends dt{constructor(e){super(),ut(this,e,Ys,qs,ft,{kind:0,size:1})}}const Xs={"nav.today":"Сегодня","nav.inbox":"Неразобранное","nav.activity":"Активность","nav.clients":"Клиенты","nav.projects":"Проекты","nav.recipes":"Рецепты","nav.documents":"Документы","nav.archive":"Архив","nav.sections":"Разделы","nav.cases":"Дела","nav.noCases":"Нет дел","nav.sync":"Синхронизация","nav.syncSettings":"Настройки синхронизации","nav.syncNow":"Синхронизировать","nav.selectPrompt":"Выберите раздел или дело","nav.brand":"Верстак","nav.system":"Системное","nav.workspace":"Рабочее пространство","nav.noNodes":"Нет узлов","nav.openFolder":"Открыть папку","nav.createInside":"Создать внутри","nav.createNode":"Создать элемент","nav.moveToRoot":"Переместить в корень","tab.overview":"Обзор","tab.notes":"Заметки","tab.files":"Файлы","tab.actions":"Действия","tab.worklog":"Журнал","tab.activity":"Активность","common.save":"Сохранить","common.cancel":"Отмена","common.delete":"Удалить","common.rename":"Переименовать","common.close":"Закрыть","common.create":"Создать","common.confirm":"Подтверждение","common.back":"← Назад","common.loading":"Загрузка...","common.error":"Ошибка:","common.yes":"Да","common.ok":"OK","common.copy":"Копировать","common.cut":"Вырезать","common.paste":"Вставить","common.duplicate":"Дублировать","common.run":"Запустить","common.test":"Test","common.testAgain":"Проверить","common.connect":"Подключиться","common.disconnect":"Отключиться","common.settings":"Настройки","common.name":"Название","common.type":"Тип","common.section":"Раздел","common.created":"Создано","common.empty":"Нет","common.newName":"Новое имя","welcome.title":"Верстак","welcome.selectSection":"Выберите раздел в боковой панели.","welcome.createCase":"Или создайте новое дело кнопкой «+».","welcome.addCase":"Добавить дело","event.noteCreated":"Заметка создана","event.noteUpdated":"Заметка изменена","event.fileAdded":"Файл добавлен","event.fileDeleted":"Файл удалён","event.fileRenamed":"Файл переименован","event.fileCopied":"Файл скопирован","event.fileMoved":"Файл перемещён","event.folderAdded":"Папка добавлена","event.folderDeleted":"Папка удалена","event.folderRenamed":"Папка переименована","event.caseCreated":"Дело создано","event.caseUpdated":"Дело изменено","kind.project":"Проект","kind.client":"Клиент","kind.document":"Документ","kind.recipe":"Рецепт","kind.folder":"Папка","kind.note":"Заметка","kind.file":"Файл","kind.archive":"Архив","kind.case":"Дело","action.openUrl":"Открыть URL","action.openFile":"Открыть файл","action.openFolder":"Открыть папку","action.runCommand":"Запустить команду","action.runScript":"Запустить скрипт","action.openTerminal":"Открыть терминал","action.launchApp":"Запустить приложение","action.addAction":"+ Добавить действие","action.newAction":"Новое действие","action.noActions":"Действий пока нет","action.run":"Запустить","action.dataUrl":"URL","action.dataPath":"Путь","action.dataCommand":"Команда","action.urlPlaceholder":"https://example.com","action.pathPlaceholder":"/path/to/file","action.commandPlaceholder":"команда","action.namePlaceholder":"Например: Открыть сайт","note.add":"+ Добавить заметку","note.new":"Новая заметка","note.title":"Название заметки","note.noNotes":"Нет заметок","note.createFirst":"Создайте первую заметку для этого дела.","note.placeholder":"Начните писать...","note.unsavedTitle":"Несохранённые изменения","note.unsavedMessage":"Закрыть редактор? Все несохранённые изменения будут потеряны.","note.unsavedClose":"Закрыть","file.addFile":"+ Добавить файл","file.addFolder":"+ Добавить папку","file.newFile":"+ Новый файл","file.addFileSimple":"Добавить файл","file.addFolderSimple":"Добавить папку","file.noFiles":"В этой папке пока нет файлов","file.noFilesCase":"В этом проекте пока нет файлов","file.hint":"Добавьте файл или папку, чтобы сохранить материалы проекта.","file.root":"Файлы","file.preview":"Предпросмотр","file.openExternal":"Открыть во внешней программе","file.openFolder":"Открыть папку","file.showInExplorer":"Показать в проводнике","file.more":"Ещё","file.delete":"Удалить","file.ariaFolder":"Папка","file.ariaFile":"Файл","file.scanning":"Сканирование...","file.pickSingle":"Выберите файл","file.pickMultiple":"Выберите файлы","file.pickDirectory":"Выберите папку","file.importTitle":"Добавить в","file.importFiles":"Файлов:","file.importFolders":"Папок:","file.importSize":"Размер:","file.importCopy":"Скопировать","file.importLink":"Привязать","file.selectCaseFirst":"Сначала выберите дело для добавления файлов","worklog.title":"Журнал","worklog.whatDone":"Что сделано","worklog.minutes":"Мин","worklog.min":"мин","worklog.log":"Записать","worklog.empty":"Записей работы пока нет","sync.title":"Синхронизация","sync.settings":"Настройки синхронизации","sync.status":"Статус","sync.server":"Сервер","sync.device":"Устройство","sync.deviceId":"ID устройства","sync.unpushed":"Неотправлено","sync.lastSync":"Последняя синх.","sync.revoked":"Отозвано","sync.connected":"Подключено","sync.notConnected":"Не подключено","sync.disabled":"Отключена","sync.serverUrl":"URL сервера","sync.serverUrlPlaceholder":"https://example.com:47732","sync.username":"Логин","sync.usernamePlaceholder":"username","sync.password":"Пароль","sync.passwordPlaceholder":"password","sync.autoSync":"Автосинхронизация (мин, 0 = отключено)","sync.saveInterval":"Сохранить интервал","sync.syncNow":"Синхронизировать","sync.disconnect":"Отключиться","sync.connect":"Подключиться","sync.test":"Проверить","sync.settingsSaved":"интервал сохранён","today.title":"Сегодня","today.changedCases":"Изменён сегодня","today.timeline":"Лента за сегодня","today.empty":"Сегодня пока тихо","today.emptyHint":"Здесь появятся дела, заметки, файлы и действия, с которыми вы работали сегодня.","today.plural.case_one":"дело","today.plural.case_few":"дела","today.plural.case_many":"дел","today.plural.note_one":"заметка","today.plural.note_few":"заметки","today.plural.note_many":"заметок","today.plural.file_one":"файл","today.plural.file_few":"файла","today.plural.file_many":"файлов","today.plural.event_one":"событие","today.plural.event_few":"события","today.plural.event_many":"событий","activity.title":"Активность","activity.empty":"Активность пока не зафиксирована","activity.perCaseEmpty":"Активность пока не зафиксирована","overview.type":"Тип","overview.section":"Раздел","overview.created":"Создано","overview.newNote":"Новая заметка","overview.addFile":"Добавить файл","overview.addAction":"Добавить действие","overview.logTime":"Записать время","overview.recentNotes":"Последние заметки","overview.recentEntries":"Последние записи","rename.title":"Переименовать","rename.emptyError":"Имя не может быть пустым","rename.invalidError":"Недопустимое имя","delete.confirmTitle":"Удаление","delete.confirmMessage":"Удалить","delete.folder":"папку","delete.file":"файл","template.optionNone":"Пустое дело","template.optional":"Шаблон (опционально)","template.none.desc":"Без шаблона, простой узел-контейнер","template.folder":"Папка","template.folder.desc":"Папка для группировки элементов внутри рабочего пространства","template.project":"Проект","template.project.desc":"Отдельный проект или задача с файлами, заметками и журналом","template.client":"Клиент","template.client.desc":"Организация или человек, для которых ведутся работы","template.document":"Документ","template.document.desc":"Документ с описанием, заметками и файлами","template.recipe":"Рецепт","template.recipe.desc":"Повторяемая процедура или инструкция","template.note":"Заметка","template.file":"Файл","template.select":"Выберите тип","mime.jpeg":"Изображение JPEG","mime.png":"Изображение PNG","mime.gif":"Изображение GIF","mime.webp":"Изображение WebP","mime.svg":"Изображение SVG","mime.bmp":"Изображение BMP","mime.tiff":"Изображение TIFF","mime.avif":"Изображение AVIF","mime.pdf":"PDF документ","mime.word":"Документ Word","mime.excel":"Таблица Excel","mime.ppt":"Презентация PowerPoint","mime.zip":"ZIP архив","mime.gzip":"GZIP архив","mime.tar":"TAR архив","mime.sevenz":"7z архив","mime.rar":"RAR архив","mime.text":"Текстовый файл","mime.html":"HTML файл","mime.css":"CSS файл","mime.js":"JavaScript файл","mime.json":"JSON файл","mime.xml":"XML файл","mime.yaml":"YAML файл","mime.binary":"Бинарный файл","mime.executable":"Исполняемый файл","mime.folder":"Папка","mime.unknown":"Неизвестно","mime.file":"Файл","error.nameEmpty":"Имя не может быть пустым","error.nameInvalid":"Недопустимое имя","error.selectCaseFirst":"Сначала выберите дело","common.open":"Открыть","delete.files":"файлов ({count})","file.namePrompt":"Введите имя файла:","file.pdfUnavailable":"Предпросмотр PDF недоступен.","file.previewUnavailable":"Предпросмотр недоступен для этого типа файлов.","case.new":"Новое дело","case.namePlaceholder":"Название дела","error.generic":"Произошла ошибка","error.invalidCredentials":"Неверный логин или пароль","error.accountBlocked":"Аккаунт заблокирован","error.emailNotConfirmed":"Email не подтверждён","error.tokenInvalid":"Неверный или просроченный токен","error.tokenExpired":"Срок действия токена истёк"},Js={"nav.today":"Today","nav.inbox":"Inbox","nav.activity":"Activity","nav.clients":"Clients","nav.projects":"Projects","nav.recipes":"Recipes","nav.documents":"Documents","nav.archive":"Archive","nav.sections":"Sections","nav.cases":"Cases","nav.noCases":"No cases","nav.system":"System","nav.workspace":"Workspace","nav.noNodes":"No nodes","nav.openFolder":"Open folder","nav.createInside":"Create inside","nav.createNode":"Create element","nav.moveToRoot":"Move to root","nav.selectPrompt":"Select a section or case","nav.brand":"Verstak","tab.overview":"Overview","tab.notes":"Notes","tab.files":"Files","tab.actions":"Actions","tab.worklog":"Work Log","tab.activity":"Activity","common.save":"Save","common.cancel":"Cancel","common.delete":"Delete","common.rename":"Rename","common.close":"Close","common.create":"Create","common.confirm":"Confirm","common.back":"← Back","common.loading":"Loading...","common.error":"Error:","common.yes":"Yes","common.ok":"OK","common.run":"Run","common.name":"Name","common.settings":"Settings","welcome.title":"Verstak","welcome.selectSection":"Select a section in the sidebar.","welcome.addCase":"Add case","event.noteCreated":"Note created","event.noteUpdated":"Note updated","event.fileAdded":"File added","event.fileDeleted":"File deleted","event.fileRenamed":"File renamed","event.fileCopied":"File copied","event.fileMoved":"File moved","event.caseCreated":"Case created","action.openUrl":"Open URL","action.openFile":"Open file","action.openFolder":"Open folder","action.runCommand":"Run command","action.runScript":"Run script","action.openTerminal":"Open terminal","action.launchApp":"Launch app","note.add":"+ Add note","note.noNotes":"No notes","note.title":"Note title","note.placeholder":"Start writing...","file.addFile":"+ Add file","file.addFolder":"+ Add folder","file.preview":"Preview","file.openExternal":"Open in external program","file.openFolder":"Open folder","file.showInExplorer":"Show in explorer","file.delete":"Delete","file.pickSingle":"Select file","file.pickDirectory":"Select folder","sync.title":"Sync","sync.settings":"Sync settings","sync.status":"Status","sync.server":"Server","sync.device":"Device","sync.connected":"Connected","sync.notConnected":"Not connected","sync.disabled":"Disabled","kind.project":"Project","kind.client":"Client","kind.document":"Document","kind.recipe":"Recipe","kind.folder":"Folder","kind.note":"Note","kind.file":"File","kind.archive":"Archive","kind.case":"Case","template.optionNone":"Empty case","template.optional":"Template (optional)","template.none.desc":"No template, simple container node","template.folder":"Folder","template.folder.desc":"A folder to group items inside a workspace","template.project":"Project","template.project.desc":"A distinct project or task with files, notes and work log","template.client":"Client","template.client.desc":"An organization or person for whom work is performed","template.document":"Document","template.document.desc":"A document with description, notes and files","template.recipe":"Recipe","template.recipe.desc":"A repeatable procedure or instruction","template.note":"Note","template.file":"File","template.select":"Select type","case.new":"New case","case.namePlaceholder":"Case name","error.generic":"An error occurred","error.invalidCredentials":"Invalid username or password"},Al={ru:Xs,en:Js};let Ll="ru";function m(l,e){var o;const t=Al[Ll];let n=t==null?void 0:t[l];if(n==null&&Ll!=="ru"&&(n=(o=Al.ru)==null?void 0:o[l]),n==null&&(n=l),e!=null)for(const[s,c]of Object.entries(e))n=n.replace(`{${s}}`,String(c));return n}function Rt(l){if(l==null||l<0)return"—";if(l===0)return"0 B";const e=["B","KB","MB","GB"],t=Math.min(Math.floor(Math.log(l)/Math.log(1024)),e.length-1),n=l/Math.pow(1024,t);return(t===0?n.toFixed(0):n.toFixed(1))+" "+e[t]}const Qt={"image/jpeg":m("mime.jpeg"),"image/png":m("mime.png"),"image/gif":m("mime.gif"),"image/webp":m("mime.webp"),"image/svg+xml":m("mime.svg"),"image/bmp":m("mime.bmp"),"image/tiff":m("mime.tiff"),"image/avif":m("mime.avif"),"application/pdf":m("mime.pdf"),"application/msword":m("mime.word"),"application/vnd.openxmlformats-officedocument.wordprocessingml.document":m("mime.word"),"application/vnd.ms-excel":m("mime.excel"),"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":m("mime.excel"),"application/vnd.ms-powerpoint":m("mime.ppt"),"application/vnd.openxmlformats-officedocument.presentationml.presentation":m("mime.ppt"),"application/zip":m("mime.zip"),"application/gzip":m("mime.gzip"),"application/x-tar":m("mime.tar"),"application/x-7z-compressed":m("mime.sevenz"),"application/x-rar-compressed":m("mime.rar"),"text/plain":m("mime.text"),"text/html":m("mime.html"),"text/css":m("mime.css"),"text/javascript":m("mime.js"),"application/json":m("mime.json"),"application/xml":m("mime.xml"),"application/x-yaml":m("mime.yaml"),"application/octet-stream":m("mime.binary"),"application/x-msdos-program":m("mime.executable"),"inode/directory":m("mime.folder")};function jl(l){return l?Qt[l]||l:m("mime.unknown")}function Zs(l){if(l.type==="folder")return m("mime.folder");const e=(l.mime||"").toLowerCase();if(Qt[e])return Qt[e];const n=(l.name||"").toLowerCase().split(".").pop();return n?n.toUpperCase():m("mime.file")}function _i(l){if(l.type==="folder")return"folder";const e=(l.mime||"").toLowerCase();if(e.startsWith("image/"))return"image";if(e.startsWith("video/"))return"video";if(e.startsWith("audio/"))return"audio";if(e.startsWith("text/"))return"text";if(e.includes("pdf"))return"pdf";if(e.includes("word")||e.includes("document"))return"document";if(e.includes("spreadsheet")||e.includes("excel"))return"spreadsheet";if(e.includes("presentation")||e.includes("powerpoint"))return"presentation";if(e.includes("zip")||e.includes("tar")||e.includes("gzip")||e.includes("rar")||e.includes("7z")||e.includes("compress"))return"archive";if(e.includes("json")||e.includes("xml")||e.includes("yaml")||e.includes("javascript")||e.includes("css")||e.includes("html"))return"code";const n=(l.name||"").toLowerCase().split(".").pop();return["js","ts","jsx","tsx","vue","svelte","py","rs","go","c","cpp","h","hpp","java","kt","swift","rb","php","pl","sh","bash","zsh","fish","yml","yaml","json","xml","toml","ini","cfg","conf","md","markdown","css","scss","less","sass","sql","graphql","proto","gradle","cmake","makefile","dockerfile","env","gitignore"].includes(n)?"code":"generic"}const Qs=["image/jpeg","image/png","image/gif","image/webp","image/bmp","image/tiff","image/avif","image/svg+xml"],$s=["text/plain","text/html","text/css","text/javascript","application/json","application/xml","application/x-yaml","text/x-shellscript"],ec=["txt","log","conf","ini","yaml","yml","json","xml","csv","sh","py","js","ts","css","html","md","markdown","cfg"],tc=["jpg","jpeg","png","gif","webp","bmp","tiff","tif","avif","svg"];function vi(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return Qs.includes(e)||tc.includes(n)}function ki(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return $s.includes(e)||ec.includes(n)&&n!=="md"&&n!=="markdown"}function bi(l){return(l.mime||"").toLowerCase().includes("pdf")}function hi(l){const e=(l.name||"").toLowerCase();return e.endsWith(".md")||e.endsWith(".markdown")}function lc(l){return vi(l)||bi(l)}function nc(l){return ki(l)||hi(l)}const{window:ic}=Ts;function oc(l){let e,t,n,o=Rt(l[0].size)+"",s;return{c(){e=u("span"),e.textContent="·",t=g(),n=u("span"),s=A(o),i(e,"class","meta-sep svelte-1skuef2")},m(c,a){y(c,e,a),y(c,t,a),y(c,n,a),r(n,s)},p(c,a){a[0]&1&&o!==(o=Rt(c[0].size)+"")&&G(s,o)},d(c){c&&(w(e),w(t),w(n))}}}function sc(l){let e,t,n,o,s;return{c(){e=u("button"),e.innerHTML='',t=g(),n=u("button"),n.innerHTML='',i(e,"class","action-btn svelte-1skuef2"),i(e,"title",m("file.openFolder")),i(e,"aria-label",m("file.openFolder")),i(n,"class","action-btn svelte-1skuef2"),i(n,"title",m("file.showInExplorer")),i(n,"aria-label",m("file.showInExplorer"))},m(c,a){y(c,e,a),y(c,t,a),y(c,n,a),o||(s=[E(e,"click",$e(l[30])),E(n,"click",$e(l[11]))],o=!0)},p:ne,d(c){c&&(w(e),w(t),w(n)),o=!1,me(s)}}}function cc(l){let e,t,n,o,s,c,a;return{c(){e=u("button"),e.innerHTML='',t=g(),n=u("button"),n.innerHTML='',o=g(),s=u("button"),s.innerHTML='',i(e,"class","action-btn svelte-1skuef2"),i(e,"title",m("file.preview")),i(e,"aria-label",m("file.preview")),i(n,"class","action-btn svelte-1skuef2"),i(n,"title",m("file.openExternal")),i(n,"aria-label",m("file.openExternal")),i(s,"class","action-btn svelte-1skuef2"),i(s,"title",m("file.showInExplorer")),i(s,"aria-label",m("file.showInExplorer"))},m(f,d){y(f,e,d),y(f,t,d),y(f,n,d),y(f,o,d),y(f,s,d),c||(a=[E(e,"click",$e(l[29])),E(n,"click",$e(l[10])),E(s,"click",$e(l[11]))],c=!0)},p:ne,d(f){f&&(w(e),w(t),w(n),w(o),w(s)),c=!1,me(a)}}}function Pl(l){let e,t,n,o,s,c,a,f,d=m("common.open")+"",_,b,v,h,k,C,T,S,M=m("file.openExternal")+"",N,I,B,z,D,L,R=m("file.showInExplorer")+"",x,H,V,q,W,X,Q,U,K,Y=m("common.rename")+"",P,se,we,te,ie,ee,_e,ue=m("common.duplicate")+"",de,ye,Le,O,J,ae,fe,le,Ve,Ke=m("common.cut")+"",tt,Xe,be,Be,xe,Me,Ie,Se=m("common.copy")+"",Te,je,Fe,ot,Ne,De,ge,he,Ee,Pe=m("common.delete")+"",ve,Oe,Re;return{c(){e=u("div"),t=g(),n=u("div"),o=u("button"),s=j("svg"),c=j("path"),a=j("circle"),f=g(),_=A(d),b=g(),v=u("button"),h=j("svg"),k=j("path"),C=j("polyline"),T=j("line"),S=g(),N=A(M),I=g(),B=u("button"),z=j("svg"),D=j("path"),L=g(),x=A(R),H=g(),V=u("div"),q=g(),W=u("button"),X=j("svg"),Q=j("path"),U=j("path"),K=g(),P=A(Y),se=g(),we=u("button"),te=j("svg"),ie=j("rect"),ee=j("path"),_e=g(),de=A(ue),ye=g(),Le=u("button"),O=j("svg"),J=j("circle"),ae=j("circle"),fe=j("line"),le=j("line"),Ve=g(),tt=A(Ke),Xe=g(),be=u("button"),Be=j("svg"),xe=j("rect"),Me=j("path"),Ie=g(),Te=A(Se),je=g(),Fe=u("div"),ot=g(),Ne=u("button"),De=j("svg"),ge=j("polyline"),he=j("path"),Ee=g(),ve=A(Pe),i(e,"class","menu-backdrop svelte-1skuef2"),i(e,"role","presentation"),i(c,"d","M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"),i(a,"cx","12"),i(a,"cy","12"),i(a,"r","3"),i(s,"width","14"),i(s,"height","14"),i(s,"viewBox","0 0 24 24"),i(s,"fill","none"),i(s,"stroke","currentColor"),i(s,"stroke-width","2"),i(s,"stroke-linecap","round"),i(s,"stroke-linejoin","round"),i(o,"class","menu-item svelte-1skuef2"),i(o,"role","menuitem"),i(k,"d","M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"),i(C,"points","15 3 21 3 21 9"),i(T,"x1","10"),i(T,"y1","14"),i(T,"x2","21"),i(T,"y2","3"),i(h,"width","14"),i(h,"height","14"),i(h,"viewBox","0 0 24 24"),i(h,"fill","none"),i(h,"stroke","currentColor"),i(h,"stroke-width","2"),i(h,"stroke-linecap","round"),i(h,"stroke-linejoin","round"),i(v,"class","menu-item svelte-1skuef2"),i(v,"role","menuitem"),i(D,"d","M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"),i(z,"width","14"),i(z,"height","14"),i(z,"viewBox","0 0 24 24"),i(z,"fill","none"),i(z,"stroke","currentColor"),i(z,"stroke-width","2"),i(z,"stroke-linecap","round"),i(z,"stroke-linejoin","round"),i(B,"class","menu-item svelte-1skuef2"),i(B,"role","menuitem"),i(V,"class","menu-sep svelte-1skuef2"),i(Q,"d","M12 20h9"),i(U,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"),i(X,"width","14"),i(X,"height","14"),i(X,"viewBox","0 0 24 24"),i(X,"fill","none"),i(X,"stroke","currentColor"),i(X,"stroke-width","2"),i(X,"stroke-linecap","round"),i(X,"stroke-linejoin","round"),i(W,"class","menu-item svelte-1skuef2"),i(W,"role","menuitem"),i(ie,"x","9"),i(ie,"y","9"),i(ie,"width","13"),i(ie,"height","13"),i(ie,"rx","2"),i(ie,"ry","2"),i(ee,"d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"),i(te,"width","14"),i(te,"height","14"),i(te,"viewBox","0 0 24 24"),i(te,"fill","none"),i(te,"stroke","currentColor"),i(te,"stroke-width","2"),i(te,"stroke-linecap","round"),i(te,"stroke-linejoin","round"),i(we,"class","menu-item svelte-1skuef2"),i(we,"role","menuitem"),i(J,"cx","6"),i(J,"cy","6"),i(J,"r","3"),i(ae,"cx","6"),i(ae,"cy","18"),i(ae,"r","3"),i(fe,"x1","20"),i(fe,"y1","4"),i(fe,"x2","8.12"),i(fe,"y2","15.88"),i(le,"x1","8.12"),i(le,"y1","8.12"),i(le,"x2","20"),i(le,"y2","20"),i(O,"width","14"),i(O,"height","14"),i(O,"viewBox","0 0 24 24"),i(O,"fill","none"),i(O,"stroke","currentColor"),i(O,"stroke-width","2"),i(O,"stroke-linecap","round"),i(O,"stroke-linejoin","round"),i(Le,"class","menu-item svelte-1skuef2"),i(Le,"role","menuitem"),i(xe,"x","9"),i(xe,"y","9"),i(xe,"width","13"),i(xe,"height","13"),i(xe,"rx","2"),i(xe,"ry","2"),i(Me,"d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"),i(Be,"width","14"),i(Be,"height","14"),i(Be,"viewBox","0 0 24 24"),i(Be,"fill","none"),i(Be,"stroke","currentColor"),i(Be,"stroke-width","2"),i(Be,"stroke-linecap","round"),i(Be,"stroke-linejoin","round"),i(be,"class","menu-item svelte-1skuef2"),i(be,"role","menuitem"),i(Fe,"class","menu-sep svelte-1skuef2"),i(ge,"points","3 6 5 6 21 6"),i(he,"d","M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"),i(De,"width","14"),i(De,"height","14"),i(De,"viewBox","0 0 24 24"),i(De,"fill","none"),i(De,"stroke","currentColor"),i(De,"stroke-width","2"),i(De,"stroke-linecap","round"),i(De,"stroke-linejoin","round"),i(Ne,"class","menu-item menu-item-danger svelte-1skuef2"),i(Ne,"role","menuitem"),i(n,"class","menu svelte-1skuef2"),He(n,"left",l[3]+"px"),He(n,"top",l[4]+"px"),He(n,"position","fixed"),i(n,"role","menu"),i(n,"tabindex","-1")},m(Je,Z){y(Je,e,Z),y(Je,t,Z),y(Je,n,Z),r(n,o),r(o,s),r(s,c),r(s,a),r(o,f),r(o,_),r(n,b),r(n,v),r(v,h),r(h,k),r(h,C),r(h,T),r(v,S),r(v,N),r(n,I),r(n,B),r(B,z),r(z,D),r(B,L),r(B,x),r(n,H),r(n,V),r(n,q),r(n,W),r(W,X),r(X,Q),r(X,U),r(W,K),r(W,P),r(n,se),r(n,we),r(we,te),r(te,ie),r(te,ee),r(we,_e),r(we,de),r(n,ye),r(n,Le),r(Le,O),r(O,J),r(O,ae),r(O,fe),r(O,le),r(Le,Ve),r(Le,tt),r(n,Xe),r(n,be),r(be,Be),r(Be,xe),r(Be,Me),r(be,Ie),r(be,Te),r(n,je),r(n,Fe),r(n,ot),r(n,Ne),r(Ne,De),r(De,ge),r(De,he),r(Ne,Ee),r(Ne,ve),Oe||(Re=[E(e,"click",$e(l[19])),E(o,"click",l[17]),E(v,"click",l[10]),E(B,"click",l[11]),E(W,"click",l[13]),E(we,"click",l[14]),E(Le,"click",l[15]),E(be,"click",l[16]),E(Ne,"click",l[12]),E(n,"click",$e(l[28])),E(n,"keydown",l[31])],Oe=!0)},p(Je,Z){Z[0]&8&&He(n,"left",Je[3]+"px"),Z[0]&16&&He(n,"top",Je[4]+"px")},d(Je){Je&&(w(e),w(t),w(n)),Oe=!1,me(Re)}}}function rc(l){let e,t,n,o,s,c,a=l[0].name+"",f,d,_,b,v,h,k,C,T,S,M,N,I,B,z,D,L,R,x,H,V,q;n=new mi({props:{kind:l[6],size:22}});let W=!l[7]&&oc(l);function X(Y,P){return Y[7]?sc:cc}let U=X(l)(l),K=l[2]&&Pl(l);return{c(){e=u("div"),t=u("div"),et(n.$$.fragment),o=g(),s=u("div"),c=u("div"),f=A(a),_=g(),b=u("div"),v=u("span"),v.textContent=`${l[8]}`,h=g(),W&&W.c(),k=g(),C=u("div"),U.c(),T=g(),S=u("button"),M=j("svg"),N=j("circle"),I=j("circle"),B=j("circle"),z=g(),D=u("button"),D.innerHTML='',R=g(),K&&K.c(),x=it(),i(t,"class","file-row-icon svelte-1skuef2"),i(c,"class","file-row-name svelte-1skuef2"),i(c,"title",d=l[0].name),i(b,"class","file-row-meta svelte-1skuef2"),i(s,"class","file-row-body svelte-1skuef2"),i(N,"cx","12"),i(N,"cy","5"),i(N,"r","2"),i(I,"cx","12"),i(I,"cy","12"),i(I,"r","2"),i(B,"cx","12"),i(B,"cy","19"),i(B,"r","2"),i(M,"width","16"),i(M,"height","16"),i(M,"viewBox","0 0 24 24"),i(M,"fill","currentColor"),i(S,"class","action-btn svelte-1skuef2"),i(S,"title",m("file.more")),i(S,"aria-label",m("file.more")),i(S,"aria-expanded",l[2]),i(D,"class","action-btn action-btn-danger svelte-1skuef2"),i(D,"title",m("common.delete")),i(D,"aria-label",m("common.delete")),i(C,"class","file-row-actions svelte-1skuef2"),i(e,"class","file-row svelte-1skuef2"),i(e,"role","button"),i(e,"tabindex","0"),i(e,"draggable","true"),i(e,"aria-label",L=l[7]?m("file.ariaFolder")+" "+l[0].name:m("file.ariaFile")+" "+l[0].name),Ue(e,"file-row--selected",l[1])},m(Y,P){y(Y,e,P),r(e,t),Ze(n,t,null),r(e,o),r(e,s),r(s,c),r(c,f),r(s,_),r(s,b),r(b,v),r(b,h),W&&W.m(b,null),r(e,k),r(e,C),U.m(C,null),r(C,T),r(C,S),r(S,M),r(M,N),r(M,I),r(M,B),r(C,z),r(C,D),y(Y,R,P),K&&K.m(Y,P),y(Y,x,P),H=!0,V||(q=[E(ic,"click",l[19]),E(S,"click",$e(l[18])),E(D,"click",$e(l[12])),E(e,"click",l[9]),E(e,"keydown",l[24]),E(e,"contextmenu",l[23]),E(e,"dragstart",l[20]),E(e,"dragover",l[21]),E(e,"drop",l[22])],V=!0)},p(Y,P){(!H||P[0]&1)&&a!==(a=Y[0].name+"")&&G(f,a),(!H||P[0]&1&&d!==(d=Y[0].name))&&i(c,"title",d),Y[7]||W.p(Y,P),U.p(Y,P),(!H||P[0]&4)&&i(S,"aria-expanded",Y[2]),(!H||P[0]&1&&L!==(L=Y[7]?m("file.ariaFolder")+" "+Y[0].name:m("file.ariaFile")+" "+Y[0].name))&&i(e,"aria-label",L),(!H||P[0]&2)&&Ue(e,"file-row--selected",Y[1]),Y[2]?K?K.p(Y,P):(K=Pl(Y),K.c(),K.m(x.parentNode,x)):K&&(K.d(1),K=null)},i(Y){H||(oe(n.$$.fragment,Y),H=!0)},o(Y){re(n.$$.fragment,Y),H=!1},d(Y){Y&&(w(e),w(R),w(x)),Qe(n),W&&W.d(),U.d(),K&&K.d(Y),V=!1,me(q)}}}function ac(l,e,t){let{item:n}=e,{selected:o=!1}=e,{onDragStart:s}=e,{onDragOver:c}=e,{onDrop:a}=e;const f=Ht(),d=_i(n),_=n.type==="folder",b=Zs(n);let v=!1,h=0,k=0,C=null;function T(P){P.ctrlKey||P.metaKey?f("toggleSelect",n.id):P.shiftKey?f("rangeSelect",n.id):C?(clearTimeout(C),C=null,_?f("navigate",n.id):f("preview",n)):C=setTimeout(()=>{C=null,f("selectOne",n.id)},250)}function S(){f("openExternal",n.fileId)}function M(){t(2,v=!1),f("showInFolder",n.nodeId||n.id)}function N(){t(2,v=!1),f("delete",{id:n.id,type:n.type})}function I(){t(2,v=!1),f("rename",{id:n.id,name:n.name})}function B(){t(2,v=!1),f("duplicate",n.id)}function z(){t(2,v=!1),f("cut",n.id)}function D(){t(2,v=!1),f("copy",n.id)}function L(){t(2,v=!1),_?f("navigate",n.id):f("preview",n)}function R(){t(2,v=!v)}function x(){t(2,v=!1)}function H(P){s&&s(P,n.id)}function V(P){c&&_&&c(P,n.id)}function q(P){a&&_&&a(P,n.id)}function W(P){P.preventDefault(),t(3,h=Math.min(P.clientX,window.innerWidth-240)),t(4,k=Math.min(P.clientY,window.innerHeight-320)),t(2,v=!0)}function X(P){(P.key==="Enter"||P.key===" ")&&(P.preventDefault(),T(P))}function Q(P){fi.call(this,l,P)}const U=()=>f("preview",n),K=()=>f("navigate",n.id),Y=P=>{P.key==="Escape"&&(P.stopPropagation(),x())};return l.$$set=P=>{"item"in P&&t(0,n=P.item),"selected"in P&&t(1,o=P.selected),"onDragStart"in P&&t(25,s=P.onDragStart),"onDragOver"in P&&t(26,c=P.onDragOver),"onDrop"in P&&t(27,a=P.onDrop)},[n,o,v,h,k,f,d,_,b,T,S,M,N,I,B,z,D,L,R,x,H,V,q,W,X,s,c,a,Q,U,K,Y]}class fc extends dt{constructor(e){super(),ut(this,e,ac,rc,ft,{item:0,selected:1,onDragStart:25,onDragOver:26,onDrop:27},null,[-1,-1])}}function Ol(l,e,t){const n=l.slice();return n[4]=e[t],n[6]=t,n}function uc(l){let e;return{c(){e=u("span"),e.textContent="/",i(e,"class","sep svelte-csi2lb")},m(t,n){y(t,e,n)},d(t){t&&w(e)}}}function dc(l){let e,t=l[4].name+"",n,o,s;function c(){return l[2](l[6])}return{c(){e=u("button"),n=A(t),i(e,"class","crumb crumb--link svelte-csi2lb")},m(a,f){y(a,e,f),r(e,n),o||(s=E(e,"click",c),o=!0)},p(a,f){l=a,f&1&&t!==(t=l[4].name+"")&&G(n,t)},d(a){a&&w(e),o=!1,s()}}}function pc(l){let e,t=l[4].name+"",n;return{c(){e=u("span"),n=A(t),i(e,"class","crumb crumb--current svelte-csi2lb")},m(o,s){y(o,e,s),r(e,n)},p(o,s){s&1&&t!==(t=o[4].name+"")&&G(n,t)},d(o){o&&w(e)}}}function zl(l){let e,t,n=l[6]>0&&uc();function o(a,f){return a[6]===a[0].length-1?pc:dc}let s=o(l),c=s(l);return{c(){n&&n.c(),e=g(),c.c(),t=it()},m(a,f){n&&n.m(a,f),y(a,e,f),c.m(a,f),y(a,t,f)},p(a,f){s===(s=o(a))&&c?c.p(a,f):(c.d(1),c=s(a),c&&(c.c(),c.m(t.parentNode,t)))},d(a){a&&(w(e),w(t)),n&&n.d(a),c.d(a)}}}function mc(l){let e,t=pe(l[0]),n=[];for(let o=0;os(a);return l.$$set=a=>{"crumbs"in a&&t(0,n=a.crumbs)},[n,s,c]}class wi extends dt{constructor(e){super(),ut(this,e,_c,mc,ft,{crumbs:0})}}function vc(l){let e,t,n,o,s,c;return{c(){e=u("div"),t=u("p"),t.textContent=`${m("file.previewUnavailable")}`,n=g(),o=u("button"),o.textContent=`${m("file.openExternal")}`,i(o,"class","btn btn-sm svelte-1cw3u0m"),i(e,"class","preview-status svelte-1cw3u0m")},m(a,f){y(a,e,f),r(e,t),r(e,n),r(e,o),s||(c=E(o,"click",l[9]),s=!0)},p:ne,d(a){a&&w(e),s=!1,c()}}}function kc(l){let e,t;function n(c,a){return a&2&&(e=null),e==null&&(e=!!(c[1]&&c[1].startsWith("data:"))),e?Cc:gc}let o=n(l,-1),s=o(l);return{c(){s.c(),t=it()},m(c,a){s.m(c,a),y(c,t,a)},p(c,a){o===(o=n(c,a))&&s?s.p(c,a):(s.d(1),s=o(c),s&&(s.c(),s.m(t.parentNode,t)))},d(c){c&&w(t),s.d(c)}}}function bc(l){let e,t,n;return{c(){e=u("pre"),t=u("code"),n=A(l[1]),i(e,"class","preview-text svelte-1cw3u0m")},m(o,s){y(o,e,s),r(e,t),r(t,n)},p(o,s){s&2&&G(n,o[1])},d(o){o&&w(e)}}}function hc(l){let e,t,n,o;return{c(){e=u("div"),t=u("img"),zt(t.src,n=l[1])||i(t,"src",n),i(t,"alt",o=l[0].name),i(t,"class","preview-image svelte-1cw3u0m"),i(e,"class","preview-image-container svelte-1cw3u0m")},m(s,c){y(s,e,c),r(e,t)},p(s,c){c&2&&!zt(t.src,n=s[1])&&i(t,"src",n),c&1&&o!==(o=s[0].name)&&i(t,"alt",o)},d(s){s&&w(e)}}}function wc(l){let e,t,n,o,s,c,a;return{c(){e=u("div"),t=u("p"),n=A(l[3]),o=g(),s=u("button"),s.textContent=`${m("file.openExternal")}`,i(s,"class","btn btn-sm svelte-1cw3u0m"),i(e,"class","preview-status svelte-1cw3u0m")},m(f,d){y(f,e,d),r(e,t),r(t,n),r(e,o),r(e,s),c||(a=E(s,"click",l[9]),c=!0)},p(f,d){d&8&&G(n,f[3])},d(f){f&&w(e),c=!1,a()}}}function yc(l){let e,t;return{c(){e=u("div"),t=u("p"),t.textContent=`${m("common.loading")}`,i(e,"class","preview-status svelte-1cw3u0m")},m(n,o){y(n,e,o),r(e,t)},p:ne,d(n){n&&w(e)}}}function gc(l){let e,t,n,o,s,c;return{c(){e=u("div"),t=u("p"),t.textContent=`${m("file.pdfUnavailable")}`,n=g(),o=u("button"),o.textContent=`${m("file.openExternal")}`,i(o,"class","btn btn-sm svelte-1cw3u0m"),i(e,"class","preview-status svelte-1cw3u0m")},m(a,f){y(a,e,f),r(e,t),r(e,n),r(e,o),s||(c=E(o,"click",l[9]),s=!0)},p:ne,d(a){a&&w(e),s=!1,c()}}}function Cc(l){let e,t,n;return{c(){e=u("div"),t=u("embed"),zt(t.src,n=l[1])||i(t,"src",n),i(t,"type","application/pdf"),i(t,"class","preview-pdf svelte-1cw3u0m"),i(e,"class","preview-pdf-container svelte-1cw3u0m")},m(o,s){y(o,e,s),r(e,t)},p(o,s){s&2&&!zt(t.src,n=o[1])&&i(t,"src",n)},d(o){o&&w(e)}}}function Sc(l){let e,t,n,o,s,c,a,f=l[0].name+"",d,_,b,v,h=Rt(l[0].size)+"",k,C,T=jl(l[0].mime)+"",S,M,N,I,B,z,D,L,R,x,H;s=new mi({props:{kind:l[8],size:18}});function V(X,Q){return X[2]?yc:X[3]?wc:X[6]&&X[1]?hc:X[5]&&X[1]?bc:X[4]?kc:vc}let q=V(l),W=q(l);return{c(){e=u("div"),t=u("div"),n=u("header"),o=u("div"),et(s.$$.fragment),c=g(),a=u("span"),d=A(f),b=g(),v=u("div"),k=A(h),C=A(" · "),S=A(T),M=g(),N=u("div"),I=u("button"),I.innerHTML='',B=g(),z=u("button"),z.innerHTML='',D=g(),L=u("div"),W.c(),i(a,"class","preview-name svelte-1cw3u0m"),i(a,"title",_=l[0].name),i(o,"class","preview-title svelte-1cw3u0m"),i(v,"class","preview-meta svelte-1cw3u0m"),i(I,"class","action-btn svelte-1cw3u0m"),i(I,"title",m("file.openExternal")),i(I,"aria-label",m("file.openExternal")),i(z,"class","action-btn action-btn-close svelte-1cw3u0m"),i(z,"title","Close"),i(z,"aria-label","Close preview"),i(N,"class","preview-actions svelte-1cw3u0m"),i(n,"class","preview-header svelte-1cw3u0m"),i(L,"class","preview-body svelte-1cw3u0m"),i(t,"class","modal svelte-1cw3u0m"),i(e,"class","overlay svelte-1cw3u0m"),i(e,"role","presentation")},m(X,Q){y(X,e,Q),r(e,t),r(t,n),r(n,o),Ze(s,o,null),r(o,c),r(o,a),r(a,d),r(n,b),r(n,v),r(v,k),r(v,C),r(v,S),r(n,M),r(n,N),r(N,I),r(N,B),r(N,z),r(t,D),r(t,L),W.m(L,null),R=!0,x||(H=[E(I,"click",l[9]),E(z,"click",l[10]),E(e,"click",vt(l[11])),E(e,"keydown",l[12])],x=!0)},p(X,[Q]){(!R||Q&1)&&f!==(f=X[0].name+"")&&G(d,f),(!R||Q&1&&_!==(_=X[0].name))&&i(a,"title",_),(!R||Q&1)&&h!==(h=Rt(X[0].size)+"")&&G(k,h),(!R||Q&1)&&T!==(T=jl(X[0].mime)+"")&&G(S,T),q===(q=V(X))&&W?W.p(X,Q):(W.d(1),W=q(X),W&&(W.c(),W.m(L,null)))},i(X){R||(oe(s.$$.fragment,X),R=!0)},o(X){re(s.$$.fragment,X),R=!1},d(X){X&&w(e),Qe(s),W.d(),x=!1,me(H)}}}function Tc(l,e,t){let n,o,s,{item:c}=e,{content:a=""}=e,{loading:f=!1}=e,{error:d=""}=e;const _=Ht(),b=_i(c);function v(S){S.key==="Escape"&&_("close")}function h(){_("openExternal",c.fileId)}ai(()=>{window.addEventListener("keydown",v)}),ll(()=>{window.removeEventListener("keydown",v)});const k=()=>_("close"),C=()=>_("close"),T=S=>{S.key==="Escape"&&(S.preventDefault(),_("close"))};return l.$$set=S=>{"item"in S&&t(0,c=S.item),"content"in S&&t(1,a=S.content),"loading"in S&&t(2,f=S.loading),"error"in S&&t(3,d=S.error)},l.$$.update=()=>{l.$$.dirty&3&&t(6,n=vi(c)&&a&&a.startsWith("data:")),l.$$.dirty&1&&t(5,o=ki(c)||hi(c)),l.$$.dirty&1&&t(4,s=bi(c))},[c,a,f,d,s,o,n,_,b,h,k,C,T]}class Nc extends dt{constructor(e){super(),ut(this,e,Tc,Sc,ft,{item:0,content:1,loading:2,error:3})}}function Dc(l){let e,t,n,o,s,c,a,f,d,_,b,v,h,k,C,T,S;return{c(){e=u("div"),t=u("div"),n=u("h3"),o=A(l[0]),s=g(),c=u("p"),a=A(l[1]),f=g(),d=u("div"),_=u("button"),b=A(l[2]),h=g(),k=u("button"),C=A(l[3]),i(n,"class","svelte-1fv6yyk"),i(c,"class","message svelte-1fv6yyk"),i(_,"class",v="btn "+(l[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk"),i(k,"class","btn svelte-1fv6yyk"),i(d,"class","actions svelte-1fv6yyk"),i(t,"class","modal svelte-1fv6yyk"),i(e,"class","overlay svelte-1fv6yyk"),i(e,"role","presentation")},m(M,N){y(M,e,N),r(e,t),r(t,n),r(n,o),r(t,s),r(t,c),r(c,a),r(t,f),r(t,d),r(d,_),r(_,b),r(d,h),r(d,k),r(k,C),T||(S=[E(_,"click",l[6]),E(k,"click",l[7]),E(e,"click",vt(l[8])),E(e,"keydown",l[9])],T=!0)},p(M,[N]){N&1&&G(o,M[0]),N&2&&G(a,M[1]),N&4&&G(b,M[2]),N&16&&v!==(v="btn "+(M[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk")&&i(_,"class",v),N&8&&G(C,M[3])},i:ne,o:ne,d(M){M&&w(e),T=!1,me(S)}}}function Mc(l,e,t){let{title:n=m("common.confirm")}=e,{message:o=""}=e,{confirmText:s=m("common.delete")}=e,{cancelText:c=m("common.cancel")}=e,{danger:a=!1}=e;const f=Ht(),d=()=>f("confirm"),_=()=>f("cancel"),b=()=>f("cancel"),v=h=>{h.key==="Escape"&&(h.preventDefault(),f("cancel"))};return l.$$set=h=>{"title"in h&&t(0,n=h.title),"message"in h&&t(1,o=h.message),"confirmText"in h&&t(2,s=h.confirmText),"cancelText"in h&&t(3,c=h.cancelText),"danger"in h&&t(4,a=h.danger)},[n,o,s,c,a,f,d,_,b,v]}class Ic extends dt{constructor(e){super(),ut(this,e,Mc,Dc,ft,{title:0,message:1,confirmText:2,cancelText:3,danger:4})}}function Fc(l){let e,t,n;return{c(){e=j("circle"),t=j("line"),n=j("line"),i(e,"cx","12"),i(e,"cy","12"),i(e,"r","10"),i(t,"x1","12"),i(t,"y1","16"),i(t,"x2","12"),i(t,"y2","12"),i(n,"x1","12"),i(n,"y1","8"),i(n,"x2","12.01"),i(n,"y2","8")},m(o,s){y(o,e,s),y(o,t,s),y(o,n,s)},d(o){o&&(w(e),w(t),w(n))}}}function Ec(l){let e,t,n,o;return{c(){e=j("rect"),t=j("polyline"),n=j("line"),o=j("line"),i(e,"x","3"),i(e,"y","5"),i(e,"width","18"),i(e,"height","14"),i(e,"rx","2"),i(t,"points","3 10 21 10"),i(n,"x1","8"),i(n,"y1","5"),i(n,"x2","8"),i(n,"y2","19"),i(o,"x1","16"),i(o,"y1","5"),i(o,"x2","16"),i(o,"y2","19")},m(s,c){y(s,e,c),y(s,t,c),y(s,n,c),y(s,o,c)},d(s){s&&(w(e),w(t),w(n),w(o))}}}function Ac(l){let e,t;return{c(){e=j("path"),t=j("polyline"),i(e,"d","M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"),i(t,"points","13 2 13 9 20 9")},m(n,o){y(n,e,o),y(n,t,o)},d(n){n&&(w(e),w(t))}}}function Lc(l){let e,t;return{c(){e=j("path"),t=j("path"),i(e,"d","M12 20h9"),i(t,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z")},m(n,o){y(n,e,o),y(n,t,o)},d(n){n&&(w(e),w(t))}}}function jc(l){let e,t,n,o,s;return{c(){e=j("path"),t=j("path"),n=j("line"),o=j("line"),s=j("line"),i(e,"d","M4 19.5A2.5 2.5 0 0 1 6.5 17H20"),i(t,"d","M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"),i(n,"x1","8"),i(n,"y1","7"),i(n,"x2","16"),i(n,"y2","7"),i(o,"x1","8"),i(o,"y1","11"),i(o,"x2","14"),i(o,"y2","11"),i(s,"x1","8"),i(s,"y1","15"),i(s,"x2","12"),i(s,"y2","15")},m(c,a){y(c,e,a),y(c,t,a),y(c,n,a),y(c,o,a),y(c,s,a)},d(c){c&&(w(e),w(t),w(n),w(o),w(s))}}}function Pc(l){let e,t,n,o;return{c(){e=j("path"),t=j("polyline"),n=j("line"),o=j("line"),i(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),i(t,"points","14 2 14 8 20 8"),i(n,"x1","16"),i(n,"y1","13"),i(n,"x2","8"),i(n,"y2","13"),i(o,"x1","16"),i(o,"y1","17"),i(o,"x2","8"),i(o,"y2","17")},m(s,c){y(s,e,c),y(s,t,c),y(s,n,c),y(s,o,c)},d(s){s&&(w(e),w(t),w(n),w(o))}}}function Oc(l){let e,t;return{c(){e=j("path"),t=j("circle"),i(e,"d","M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"),i(t,"cx","12"),i(t,"cy","7"),i(t,"r","4")},m(n,o){y(n,e,o),y(n,t,o)},d(n){n&&(w(e),w(t))}}}function zc(l){let e,t,n,o;return{c(){e=j("rect"),t=j("rect"),n=j("rect"),o=j("rect"),i(e,"x","3"),i(e,"y","3"),i(e,"width","7"),i(e,"height","7"),i(e,"rx","1"),i(t,"x","14"),i(t,"y","3"),i(t,"width","7"),i(t,"height","4"),i(t,"rx","1"),i(n,"x","14"),i(n,"y","10"),i(n,"width","7"),i(n,"height","11"),i(n,"rx","1"),i(o,"x","3"),i(o,"y","14"),i(o,"width","7"),i(o,"height","7"),i(o,"rx","1")},m(s,c){y(s,e,c),y(s,t,c),y(s,n,c),y(s,o,c)},d(s){s&&(w(e),w(t),w(n),w(o))}}}function xc(l){let e;return{c(){e=j("path"),i(e,"d","M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z")},m(t,n){y(t,e,n)},d(t){t&&w(e)}}}function Bc(l){let e;function t(s,c){return s[0]==="folder"?xc:s[0]==="project"?zc:s[0]==="client"?Oc:s[0]==="document"?Pc:s[0]==="recipe"?jc:s[0]==="note"?Lc:s[0]==="file"?Ac:s[0]==="case"?Ec:Fc}let n=t(l),o=n(l);return{c(){e=j("svg"),o.c(),i(e,"width",l[1]),i(e,"height",l[1]),i(e,"viewBox","0 0 24 24"),i(e,"fill","none"),i(e,"stroke","currentColor"),i(e,"stroke-width","1.5"),i(e,"stroke-linecap","round"),i(e,"stroke-linejoin","round"),i(e,"xmlns","http://www.w3.org/2000/svg")},m(s,c){y(s,e,c),o.m(e,null)},p(s,[c]){n!==(n=t(s))&&(o.d(1),o=n(s),o&&(o.c(),o.m(e,null))),c&2&&i(e,"width",s[1]),c&2&&i(e,"height",s[1])},i:ne,o:ne,d(s){s&&w(e),o.d()}}}function Rc(l,e,t){let{kind:n="generic"}=e,{size:o=18}=e;return l.$$set=s=>{"kind"in s&&t(0,n=s.kind),"size"in s&&t(1,o=s.size)},[n,o]}class Vt extends dt{constructor(e){super(),ut(this,e,Rc,Bc,ft,{kind:0,size:1})}}function xl(l,e,t){const n=l.slice();return n[44]=e[t],n}function Hc(l){let e;return{c(){e=u("span"),i(e,"class","tree-toggle-placeholder svelte-zj71cl")},m(t,n){y(t,e,n)},p:ne,d(t){t&&w(e)}}}function Vc(l){let e,t,n=l[1][l[44].id]?"▾":"▸",o,s,c;function a(){return l[25](l[44])}return{c(){e=u("button"),t=u("span"),o=A(n),i(t,"class","tree-arrow"),i(e,"class","tree-toggle svelte-zj71cl")},m(f,d){y(f,e,d),r(e,t),r(t,o),s||(c=E(e,"click",$e(a)),s=!0)},p(f,d){l=f,d[0]&3&&n!==(n=l[1][l[44].id]?"▾":"▸")&&G(o,n)},d(f){f&&w(e),s=!1,c()}}}function Bl(l){let e,t;return e=new yi({props:{nodes:l[44].children||[],expanded:l[1],selectedNodeId:l[2],level:l[3]+1,onSelect:l[4],onToggle:l[5],onContextMenu:l[6],onDrop:l[7]}}),{c(){et(e.$$.fragment)},m(n,o){Ze(e,n,o),t=!0},p(n,o){const s={};o[0]&1&&(s.nodes=n[44].children||[]),o[0]&2&&(s.expanded=n[1]),o[0]&4&&(s.selectedNodeId=n[2]),o[0]&8&&(s.level=n[3]+1),o[0]&16&&(s.onSelect=n[4]),o[0]&32&&(s.onToggle=n[5]),o[0]&64&&(s.onContextMenu=n[6]),o[0]&128&&(s.onDrop=n[7]),e.$set(s)},i(n){t||(oe(e.$$.fragment,n),t=!0)},o(n){re(e.$$.fragment,n),t=!1},d(n){Qe(e,n)}}}function Rl(l,e){let t,n,o,s,c,a,f,d=e[44].title+"",_,b,v=e[1][e[44].id]&&$t(e[44]),h,k,C,T;function S(U,K){return K[0]&1&&(n=null),n==null&&(n=!!It(U[44])),n?Vc:Hc}let M=S(e,[-1,-1]),N=M(e);c=new Vt({props:{kind:Hl(e[44]),size:16}});function I(...U){return e[26](e[44],...U)}function B(...U){return e[27](e[44],...U)}function z(){return e[28](e[44])}function D(...U){return e[29](e[44],...U)}function L(...U){return e[30](e[44],...U)}function R(...U){return e[31](e[44],...U)}function x(...U){return e[32](e[44],...U)}function H(...U){return e[33](e[44],...U)}function V(...U){return e[34](e[44],...U)}function q(...U){return e[35](e[44],...U)}function W(...U){return e[36](e[44],...U)}function X(...U){return e[37](e[44],...U)}let Q=v&&Bl(e);return{key:l,first:null,c(){t=u("div"),N.c(),o=g(),s=u("span"),et(c.$$.fragment),a=g(),f=u("span"),_=A(d),b=g(),Q&&Q.c(),h=it(),i(s,"class","tree-icon svelte-zj71cl"),i(s,"role","button"),i(s,"tabindex","-1"),i(f,"class","tree-label svelte-zj71cl"),i(f,"role","button"),i(f,"tabindex","-1"),i(t,"class","tree-item svelte-zj71cl"),He(t,"padding-left",e[3]*16+4+"px"),i(t,"draggable","true"),i(t,"role","button"),i(t,"tabindex","0"),Ue(t,"selected",e[2]===e[44].id),Ue(t,"drop-valid",e[8]===e[44].id&&e[9][e[44].id]),Ue(t,"drop-invalid",e[8]===e[44].id&&!e[9][e[44].id]),this.first=t},m(U,K){y(U,t,K),N.m(t,null),r(t,o),r(t,s),Ze(c,s,null),r(t,a),r(t,f),r(f,_),y(U,b,K),Q&&Q.m(U,K),y(U,h,K),k=!0,C||(T=[E(s,"click",I),E(s,"keydown",B),E(s,"dblclick",$e(e[24])),E(f,"click",$e(z)),E(f,"keydown",D),E(t,"dragstart",L),E(t,"dragover",R),E(t,"dragleave",x),E(t,"drop",H),E(t,"click",V),E(t,"keydown",q),E(t,"dblclick",W),E(t,"contextmenu",el(X))],C=!0)},p(U,K){e=U,M===(M=S(e,K))&&N?N.p(e,K):(N.d(1),N=M(e),N&&(N.c(),N.m(t,o)));const Y={};K[0]&1&&(Y.kind=Hl(e[44])),c.$set(Y),(!k||K[0]&1)&&d!==(d=e[44].title+"")&&G(_,d),(!k||K[0]&8)&&He(t,"padding-left",e[3]*16+4+"px"),(!k||K[0]&5)&&Ue(t,"selected",e[2]===e[44].id),(!k||K[0]&769)&&Ue(t,"drop-valid",e[8]===e[44].id&&e[9][e[44].id]),(!k||K[0]&769)&&Ue(t,"drop-invalid",e[8]===e[44].id&&!e[9][e[44].id]),K[0]&3&&(v=e[1][e[44].id]&&$t(e[44])),v?Q?(Q.p(e,K),K[0]&3&&oe(Q,1)):(Q=Bl(e),Q.c(),oe(Q,1),Q.m(h.parentNode,h)):Q&&(qe(),re(Q,1,1,()=>{Q=null}),Ye())},i(U){k||(oe(c.$$.fragment,U),oe(Q),k=!0)},o(U){re(c.$$.fragment,U),re(Q),k=!1},d(U){U&&(w(t),w(b),w(h)),N.d(),Qe(c),Q&&Q.d(U),C=!1,me(T)}}}function Uc(l){let e=[],t=new Map,n,o,s,c,a=pe(l[0]);const f=d=>d[44].id;for(let d=0;d0:l.has_children===!0}function Vl(l){const e={};function t(n,o){for(const s of n)e[s.id]=o,s.children&&t(s.children,s.id)}return t(l,""),e}function Ul(l){const e=[];function t(n){for(const o of n)e.push(o),o.children&&t(o.children)}return t(l),e}function Wc(l){try{return l.dataTransfer.getData("text/plain")}catch{return""}}function Kc(l,e,t){let n,o,s,{nodes:c=[]}=e,{expanded:a={}}=e,{selectedNodeId:f=""}=e,{level:d=0}=e,{onSelect:_=void 0}=e,{onToggle:b=void 0}=e,{onContextMenu:v=void 0}=e,{onDrop:h=void 0}=e,k={},C=null,T="",S="";const M=["folder","project","client","document","recipe","case"];ll(()=>{for(const O of Object.keys(k))clearTimeout(k[O]);C&&clearInterval(C)});function N(O){return M.includes(O.type)}function I(O,J,ae){if(!O||!J||J===O.id||!N(O))return!1;let fe=O.id;for(;fe;){if(fe===J)return!1;fe=ae[fe]||""}return!0}function B(O,J){O.stopPropagation(),O.dataTransfer.effectAllowed="move",O.dataTransfer.setData("text/plain",J.id),t(21,T=J.id)}function z(O,J){O.preventDefault(),O.stopPropagation(),O.dataTransfer.dropEffect="move",S!==J.id&&t(8,S=J.id),It(J)&&!a[J.id]&&!k[J.id]&&(k[J.id]=setTimeout(()=>{b&&b(J.id),delete k[J.id]},600));const ae=O.currentTarget.closest(".workspace-tree-area");if(ae){const fe=ae.getBoundingClientRect(),le=30;O.clientY-fe.top{ae.scrollTop-=10},50)):fe.bottom-O.clientY{ae.scrollTop+=10},50)):C&&(clearInterval(C),C=null)}}function D(O,J){const ae=O.relatedTarget;ae&&O.currentTarget.contains(ae)||(S===J.id&&t(8,S=""),k[J.id]&&(clearTimeout(k[J.id]),delete k[J.id]),C&&(clearInterval(C),C=null))}function L(O,J){O.preventDefault(),O.stopPropagation(),k[J.id]&&(clearTimeout(k[J.id]),delete k[J.id]),C&&(clearInterval(C),C=null);const ae=Ul(c),fe=Vl(ae),le=Wc(O);if(!I(J,le,fe)){t(8,S=""),t(21,T="");return}h&&h(le,J.id),t(8,S=""),t(21,T="")}function R(){t(8,S=""),t(21,T="");for(const O of Object.keys(k))clearTimeout(k[O]),delete k[O];C&&(clearInterval(C),C=null)}function x(O,J){O.target.closest(".tree-toggle")||O.target.closest(".tree-icon")||_&&_(J)}function H(O,J){It(J)&&b&&b(J.id)}function V(O,J){(O.key==="Enter"||O.key===" ")&&(O.preventDefault(),_&&_(J))}function q(O,J){O.stopPropagation(),It(J)&&b&&b(J.id)}function W(O,J){(O.key==="Enter"||O.key===" ")&&(O.preventDefault(),O.stopPropagation(),It(J)&&b&&b(J.id))}function X(O,J){(O.key==="Enter"||O.key===" ")&&(O.preventDefault(),_&&_(J))}function Q(O,J,ae){const fe={};function le(Ve){for(const Ke of Ve)fe[Ke.id]=I(Ke,J,ae),Ke.children&&le(Ke.children)}return le(O),fe}function U(O){fi.call(this,l,O)}const K=O=>b&&b(O.id),Y=(O,J)=>q(J,O),P=(O,J)=>W(J,O),se=O=>_&&_(O),we=(O,J)=>X(J,O),te=(O,J)=>B(J,O),ie=(O,J)=>z(J,O),ee=(O,J)=>D(J,O),_e=(O,J)=>L(J,O),ue=(O,J)=>x(J,O),de=(O,J)=>V(J,O),ye=(O,J)=>H(J,O),Le=(O,J)=>v&&v(J,O);return l.$$set=O=>{"nodes"in O&&t(0,c=O.nodes),"expanded"in O&&t(1,a=O.expanded),"selectedNodeId"in O&&t(2,f=O.selectedNodeId),"level"in O&&t(3,d=O.level),"onSelect"in O&&t(4,_=O.onSelect),"onToggle"in O&&t(5,b=O.onToggle),"onContextMenu"in O&&t(6,v=O.onContextMenu),"onDrop"in O&&t(7,h=O.onDrop)},l.$$.update=()=>{l.$$.dirty[0]&1&&t(23,n=Ul(c)),l.$$.dirty[0]&8388608&&t(22,o=Vl(n)),l.$$.dirty[0]&14680064&&t(9,s=Q(n,T,o))},[c,a,f,d,_,b,v,h,S,s,B,z,D,L,R,x,H,V,q,W,X,T,o,n,U,K,Y,P,se,we,te,ie,ee,_e,ue,de,ye,Le]}class yi extends dt{constructor(e){super(),ut(this,e,Kc,Uc,ft,{nodes:0,expanded:1,selectedNodeId:2,level:3,onSelect:4,onToggle:5,onContextMenu:6,onDrop:7},null,[-1,-1])}}function Wl(l,e,t){const n=l.slice();return n[226]=e[t],n}function Kl(l,e,t){const n=l.slice();return n[229]=e[t],n}function Gl(l,e,t){const n=l.slice();return n[229]=e[t],n}function ql(l,e,t){const n=l.slice();return n[250]=e[t],n}function Yl(l,e,t){const n=l.slice();return n[250]=e[t],n}function Xl(l,e,t){const n=l.slice();return n[258]=e[t],n}function Jl(l,e,t){const n=l.slice();return n[250]=e[t],n}function Zl(l,e,t){const n=l.slice();return n[250]=e[t],n}function Ql(l,e,t){const n=l.slice();return n[234]=e[t],n}function $l(l,e,t){const n=l.slice();return n[245]=e[t],n}function en(l,e,t){const n=l.slice();return n[242]=e[t],n}function tn(l,e,t){const n=l.slice();return n[237]=e[t],n}function ln(l,e,t){const n=l.slice();return n[234]=e[t],n}function nn(l,e,t){const n=l.slice();return n[237]=e[t],n}function on(l,e,t){const n=l.slice();return n[253]=e[t],n}function sn(l,e,t){const n=l.slice();return n[265]=e[t],n}function cn(l,e,t){const n=l.slice();return n[268]=e[t],n}function rn(l){let e,t=l[268].label+"",n,o,s,c,a;function f(){return l[130](l[268])}return{c(){e=u("button"),n=A(t),o=g(),i(e,"class",s="nav-item "+(l[8]===l[268].id?"selected":"")+" svelte-16kcxbw")},m(d,_){y(d,e,_),r(e,n),r(e,o),c||(a=E(e,"click",f),c=!0)},p(d,_){l=d,_[0]&1&&t!==(t=l[268].label+"")&&G(n,t),_[0]&257&&s!==(s="nav-item "+(l[8]===l[268].id?"selected":"")+" svelte-16kcxbw")&&i(e,"class",s)},d(d){d&&w(e),c=!1,a()}}}function Gc(l){let e;return{c(){e=u("div"),e.textContent=`${m("nav.noNodes")}`,i(e,"class","nav-empty svelte-16kcxbw")},m(t,n){y(t,e,n)},p:ne,i:ne,o:ne,d(t){t&&w(e)}}}function qc(l){var c;let e,t,n,o,s;return t=new yi({props:{nodes:l[1],expanded:l[32],selectedNodeId:((c=l[9])==null?void 0:c.id)||"",onSelect:l[63],onToggle:l[93],onContextMenu:l[91],onDrop:l[94]}}),{c(){e=u("div"),et(t.$$.fragment),i(e,"class","workspace-tree-area svelte-16kcxbw"),i(e,"role","region"),i(e,"aria-label",m("nav.workspace")),Ue(e,"drop-valid",l[43])},m(a,f){y(a,e,f),Ze(t,e,null),n=!0,o||(s=[E(e,"dragover",el(l[96])),E(e,"dragleave",l[97]),E(e,"drop",l[95])],o=!0)},p(a,f){var _;const d={};f[0]&2&&(d.nodes=a[1]),f[1]&2&&(d.expanded=a[32]),f[0]&512&&(d.selectedNodeId=((_=a[9])==null?void 0:_.id)||""),t.$set(d),(!n||f[1]&4096)&&Ue(e,"drop-valid",a[43])},i(a){n||(oe(t.$$.fragment,a),n=!0)},o(a){re(t.$$.fragment,a),n=!1},d(a){a&&w(e),Qe(t),o=!1,me(s)}}}function Yc(l){let e;return{c(){e=u("span"),e.textContent=`${m("nav.selectPrompt")}`,i(e,"class","crumb placeholder svelte-16kcxbw")},m(t,n){y(t,e,n)},p:ne,d(t){t&&w(e)}}}function Xc(l){let e,t=pe(l[0]),n=[];for(let o=0;o0&&un(l);return{c(){e=u("button"),t=j("svg"),n=j("polyline"),o=j("polyline"),s=j("path"),c=g(),d&&d.c(),i(n,"points","23 4 23 10 17 10"),i(n,"class","svelte-16kcxbw"),i(o,"points","1 20 1 14 7 14"),i(o,"class","svelte-16kcxbw"),i(s,"d","M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"),i(s,"class","svelte-16kcxbw"),i(t,"width","16"),i(t,"height","16"),i(t,"viewBox","0 0 24 24"),i(t,"fill","none"),i(t,"stroke","currentColor"),i(t,"stroke-width","2"),i(t,"stroke-linecap","round"),i(t,"stroke-linejoin","round"),i(t,"class","svelte-16kcxbw"),i(e,"class","header-sync-btn svelte-16kcxbw"),e.disabled=l[54],i(e,"title",m("nav.syncNow"))},m(_,b){y(_,e,b),r(e,t),r(t,n),r(t,o),r(t,s),r(e,c),d&&d.m(e,null),a||(f=E(e,"click",l[129]),a=!0)},p(_,b){_[53].unpushedOps>0?d?d.p(_,b):(d=un(_),d.c(),d.m(e,null)):d&&(d.d(1),d=null),b[1]&8388608&&(e.disabled=_[54])},d(_){_&&w(e),d&&d.d(),a=!1,f()}}}function un(l){let e,t=l[53].unpushedOps+"",n;return{c(){e=u("span"),n=A(t),i(e,"class","sync-badge svelte-16kcxbw")},m(o,s){y(o,e,s),r(e,n)},p(o,s){s[1]&4194304&&t!==(t=o[53].unpushedOps+"")&&G(n,t)},d(o){o&&w(e)}}}function dn(l){let e,t,n,o,s,c;return{c(){e=u("div"),t=A(l[7]),n=g(),o=u("button"),o.innerHTML='',i(o,"class","dismiss-btn svelte-16kcxbw"),i(o,"aria-label","Dismiss"),i(e,"class","error-banner svelte-16kcxbw"),i(e,"role","button"),i(e,"tabindex","0")},m(a,f){y(a,e,f),r(e,t),r(e,n),r(e,o),s||(c=[E(o,"click",$e(l[131])),E(e,"click",l[132]),E(e,"keydown",function(){Lt(nt(l[133]))&&nt(l[133]).apply(this,arguments)})],s=!0)},p(a,f){l=a,f[0]&128&&G(t,l[7])},d(a){a&&w(e),s=!1,me(c)}}}function Zc(l){let e,t,n;function o(a,f){if(a[28])return ir;if(a[0].length>0)return nr;if(a[7])return lr}let s=o(l),c=s&&s(l);return{c(){e=u("div"),t=u("h2"),t.textContent=`${m("welcome.title")}`,n=g(),c&&c.c(),i(t,"class","svelte-16kcxbw"),i(e,"class","welcome svelte-16kcxbw")},m(a,f){y(a,e,f),r(e,t),r(e,n),c&&c.m(e,null)},p(a,f){s===(s=o(a))&&c?c.p(a,f):(c&&c.d(1),c=s&&s(a),c&&(c.c(),c.m(e,null)))},i:ne,o:ne,d(a){a&&w(e),c&&c.d()}}}function Qc(l){let e,t,n,o;function s(f,d){return f[4].length===0?sr:or}let c=s(l),a=c(l);return{c(){e=u("div"),t=u("div"),n=u("h2"),n.textContent=`${m("activity.title")}`,o=g(),a.c(),i(n,"class","svelte-16kcxbw"),i(t,"class","activity-feed-header svelte-16kcxbw"),i(e,"class","activity-feed svelte-16kcxbw")},m(f,d){y(f,e,d),r(e,t),r(t,n),r(e,o),a.m(e,null)},p(f,d){c===(c=s(f))&&a?a.p(f,d):(a.d(1),a=c(f),a&&(a.c(),a.m(e,null)))},i:ne,o:ne,d(f){f&&w(e),a.d()}}}function $c(l){let e,t,n,o,s,c=l[3].date+"",a,f,d,_=l[3].summary&&_n(l);function b(k,C){return k[3].groups&&k[3].groups.length>0?rr:cr}let v=b(l),h=v(l);return{c(){e=u("div"),t=u("div"),n=u("h2"),n.textContent=`${m("today.title")}`,o=g(),s=u("span"),a=A(c),f=g(),_&&_.c(),d=g(),h.c(),i(n,"class","svelte-16kcxbw"),i(s,"class","today-date svelte-16kcxbw"),i(t,"class","today-header svelte-16kcxbw"),i(e,"class","today-dashboard svelte-16kcxbw")},m(k,C){y(k,e,C),r(e,t),r(t,n),r(t,o),r(t,s),r(s,a),r(e,f),_&&_.m(e,null),r(e,d),h.m(e,null)},p(k,C){C[0]&8&&c!==(c=k[3].date+"")&&G(a,c),k[3].summary?_?_.p(k,C):(_=_n(k),_.c(),_.m(e,d)):_&&(_.d(1),_=null),v===(v=b(k))&&h?h.p(k,C):(h.d(1),h=v(k),h&&(h.c(),h.m(e,null)))},i:ne,o:ne,d(k){k&&w(e),_&&_.d(),h.d()}}}function er(l){let e,t,n,o,s,c,a=pe(l[61]),f=[];for(let v=0;v{_[k]=null}),Ye()),~o?(s=_[o],s?s.p(v,h):(s=_[o]=d[o](v),s.c()),oe(s,1),s.m(n,null)):s=null)},i(v){c||(oe(s),c=!0)},o(v){re(s),c=!1},d(v){v&&(w(e),w(t),w(n)),We(f,v),~o&&_[o].d()}}}function tr(l){let e,t,n,o=l[12].title+"",s,c,a,f,d,_,b,v,h,k,C,T=l[12].dirty&&Rn();return{c(){e=u("div"),t=u("div"),n=u("span"),s=A(o),c=g(),T&&T.c(),a=g(),f=u("div"),d=u("button"),d.textContent=`${m("common.save")}`,_=g(),b=u("button"),b.textContent=`${m("common.close")}`,v=g(),h=u("textarea"),i(n,"class","note-title svelte-16kcxbw"),i(d,"class","btn btn-primary svelte-16kcxbw"),i(b,"class","btn svelte-16kcxbw"),i(f,"class","note-editor-actions svelte-16kcxbw"),i(t,"class","note-editor-header svelte-16kcxbw"),i(h,"class","note-textarea svelte-16kcxbw"),i(h,"placeholder",m("note.placeholder")),i(e,"class","note-editor svelte-16kcxbw")},m(S,M){y(S,e,M),r(e,t),r(t,n),r(n,s),r(t,c),T&&T.m(t,null),r(t,a),r(t,f),r(f,d),r(f,_),r(f,b),r(e,v),r(e,h),Ae(h,l[12].content),k||(C=[E(d,"click",l[108]),E(b,"click",l[106]),E(h,"input",l[134]),E(h,"input",l[107])],k=!0)},p(S,M){M[0]&4096&&o!==(o=S[12].title+"")&&G(s,o),S[12].dirty?T||(T=Rn(),T.c(),T.m(t,a)):T&&(T.d(1),T=null),M[0]&4096&&Ae(h,S[12].content)},i:ne,o:ne,d(S){S&&w(e),T&&T.d(),k=!1,me(C)}}}function lr(l){let e,t=m("common.error")+"",n,o,s;return{c(){e=u("p"),n=A(t),o=g(),s=A(l[7]),i(e,"class","error-text svelte-16kcxbw")},m(c,a){y(c,e,a),r(e,n),r(e,o),r(e,s)},p(c,a){a[0]&128&&G(s,c[7])},d(c){c&&w(e)}}}function nr(l){let e,t,n;return{c(){e=u("p"),e.textContent=`${m("welcome.selectSection")}`,t=g(),n=u("p"),n.textContent=`${m("welcome.createCase")}`,i(e,"class","svelte-16kcxbw"),i(n,"class","hint svelte-16kcxbw")},m(o,s){y(o,e,s),y(o,t,s),y(o,n,s)},p:ne,d(o){o&&(w(e),w(t),w(n))}}}function ir(l){let e;return{c(){e=u("p"),e.textContent=`${m("common.loading")}`,i(e,"class","svelte-16kcxbw")},m(t,n){y(t,e,n)},p:ne,d(t){t&&w(e)}}}function or(l){let e,t=pe(l[4]),n=[];for(let o=0;o0&&vn(l),s=l[3].summary.notes>0&&kn(l),c=l[3].summary.files>0&&bn(l);return{c(){e=u("div"),o&&o.c(),t=g(),s&&s.c(),n=g(),c&&c.c(),i(e,"class","today-summary svelte-16kcxbw")},m(a,f){y(a,e,f),o&&o.m(e,null),r(e,t),s&&s.m(e,null),r(e,n),c&&c.m(e,null)},p(a,f){a[3].summary.changedCases>0?o?o.p(a,f):(o=vn(a),o.c(),o.m(e,t)):o&&(o.d(1),o=null),a[3].summary.notes>0?s?s.p(a,f):(s=kn(a),s.c(),s.m(e,n)):s&&(s.d(1),s=null),a[3].summary.files>0?c?c.p(a,f):(c=bn(a),c.c(),c.m(e,null)):c&&(c.d(1),c=null)},d(a){a&&w(e),o&&o.d(),s&&s.d(),c&&c.d()}}}function vn(l){let e,t=l[3].summary.changedCases+"",n,o,s=at(l[3].summary.changedCases,m("today.plural.case_one"),m("today.plural.case_few"),m("today.plural.case_many"))+"",c;return{c(){e=u("span"),n=A(t),o=g(),c=A(s),i(e,"class","summary-chip svelte-16kcxbw")},m(a,f){y(a,e,f),r(e,n),r(e,o),r(e,c)},p(a,f){f[0]&8&&t!==(t=a[3].summary.changedCases+"")&&G(n,t),f[0]&8&&s!==(s=at(a[3].summary.changedCases,m("today.plural.case_one"),m("today.plural.case_few"),m("today.plural.case_many"))+"")&&G(c,s)},d(a){a&&w(e)}}}function kn(l){let e,t=l[3].summary.notes+"",n,o,s=at(l[3].summary.notes,m("today.plural.note_one"),m("today.plural.note_few"),m("today.plural.note_many"))+"",c;return{c(){e=u("span"),n=A(t),o=g(),c=A(s),i(e,"class","summary-chip svelte-16kcxbw")},m(a,f){y(a,e,f),r(e,n),r(e,o),r(e,c)},p(a,f){f[0]&8&&t!==(t=a[3].summary.notes+"")&&G(n,t),f[0]&8&&s!==(s=at(a[3].summary.notes,m("today.plural.note_one"),m("today.plural.note_few"),m("today.plural.note_many"))+"")&&G(c,s)},d(a){a&&w(e)}}}function bn(l){let e,t=l[3].summary.files+"",n,o,s=at(l[3].summary.files,m("today.plural.file_one"),m("today.plural.file_few"),m("today.plural.file_many"))+"",c;return{c(){e=u("span"),n=A(t),o=g(),c=A(s),i(e,"class","summary-chip svelte-16kcxbw")},m(a,f){y(a,e,f),r(e,n),r(e,o),r(e,c)},p(a,f){f[0]&8&&t!==(t=a[3].summary.files+"")&&G(n,t),f[0]&8&&s!==(s=at(a[3].summary.files,m("today.plural.file_one"),m("today.plural.file_few"),m("today.plural.file_many"))+"")&&G(c,s)},d(a){a&&w(e)}}}function cr(l){let e,t,n,o;return{c(){e=u("div"),t=u("p"),t.textContent=`${m("today.empty")}`,n=g(),o=u("p"),o.textContent=`${m("today.emptyHint")}`,i(t,"class","svelte-16kcxbw"),i(o,"class","hint svelte-16kcxbw"),i(e,"class","today-empty svelte-16kcxbw")},m(s,c){y(s,e,c),r(e,t),r(e,n),r(e,o)},p:ne,d(s){s&&w(e)}}}function rr(l){let e,t,n=pe(l[3].groups),o=[];for(let c=0;c0&&Cn(l);return{c(){for(let c=0;c0?s?s.p(c,a):(s=Cn(c),s.c(),s.m(t.parentNode,t)):s&&(s.d(1),s=null)},d(c){c&&(w(e),w(t)),We(o,c),s&&s.d(c)}}}function hn(l){let e,t=l[258].events.length+"",n,o,s=at(l[258].events.length,m("today.plural.event_one"),m("today.plural.event_few"),m("today.plural.event_many"))+"",c;return{c(){e=u("span"),n=A(t),o=g(),c=A(s),i(e,"class","today-case-count svelte-16kcxbw")},m(a,f){y(a,e,f),r(e,n),r(e,o),r(e,c)},p(a,f){f[0]&8&&t!==(t=a[258].events.length+"")&&G(n,t),f[0]&8&&s!==(s=at(a[258].events.length,m("today.plural.event_one"),m("today.plural.event_few"),m("today.plural.event_many"))+"")&&G(c,s)},d(a){a&&w(e)}}}function ar(l){let e;return{c(){e=u("div"),e.textContent=`${m("today.changedCases")}`,i(e,"class","today-events-empty svelte-16kcxbw")},m(t,n){y(t,e,n)},p:ne,d(t){t&&w(e)}}}function fr(l){let e,t=pe(l[258].events),n=[];for(let o=0;o0?fr:ar}let z=B(l),D=z(l);return{c(){e=u("div"),t=u("div"),n=u("span"),s=A(o),c=g(),a=u("span"),d=A(f),_=g(),M&&M.c(),b=g(),v=u("span"),k=A(h),C=g(),D.c(),i(n,"class","today-case-title svelte-16kcxbw"),i(a,"class","today-case-type svelte-16kcxbw"),i(v,"class","today-case-time svelte-16kcxbw"),i(t,"class","today-case-header svelte-16kcxbw"),i(t,"role","button"),i(t,"tabindex","0"),i(e,"class","today-case svelte-16kcxbw")},m(L,R){y(L,e,R),r(e,t),r(t,n),r(n,s),r(t,c),r(t,a),r(a,d),r(t,_),M&&M.m(t,null),r(t,b),r(t,v),r(v,k),r(e,C),D.m(e,null),T||(S=[E(t,"click",N),E(t,"keydown",I)],T=!0)},p(L,R){l=L,R[0]&8&&o!==(o=l[258].nodeTitle+"")&&G(s,o),R[0]&8&&f!==(f=l[116](l[258].nodeKind)+"")&&G(d,f),l[258].events?M?M.p(l,R):(M=hn(l),M.c(),M.m(t,b)):M&&(M.d(1),M=null),R[0]&8&&h!==(h=st(l[258].lastActivityAt)+"")&&G(k,h),z===(z=B(l))&&D?D.p(l,R):(D.d(1),D=z(l),D&&(D.c(),D.m(e,null)))},d(L){L&&w(e),M&&M.d(),D.d(),T=!1,me(S)}}}function Cn(l){let e,t,n,o=pe(l[3].events),s=[];for(let c=0;c0&&Fn(l);const D=[Sr,Cr],L=[];function R(V,q){return V[33]?0:1}k=R(l),C=L[k]=D[k](l);let x=l[29]&&!l[31]&&An(),H=l[37]&&Ln(l);return{c(){e=u("div"),t=u("div"),n=u("button"),s=A(o),c=g(),a=u("button"),d=A(f),_=g(),b=u("button"),b.textContent=`${m("file.newFile")}`,v=g(),z&&z.c(),h=g(),C.c(),T=g(),x&&x.c(),S=g(),H&&H.c(),M=it(),i(n,"class","btn btn-primary svelte-16kcxbw"),n.disabled=l[29],i(a,"class","btn svelte-16kcxbw"),a.disabled=l[29],i(b,"class","btn svelte-16kcxbw"),i(t,"class","tab-toolbar svelte-16kcxbw"),i(e,"class","files-tab svelte-16kcxbw")},m(V,q){y(V,e,q),r(e,t),r(t,n),r(n,s),r(t,c),r(t,a),r(a,d),r(t,_),r(t,b),r(t,v),z&&z.m(t,null),r(e,h),L[k].m(e,null),r(e,T),x&&x.m(e,null),y(V,S,q),H&&H.m(V,q),y(V,M,q),N=!0,I||(B=[E(n,"click",l[110]),E(a,"click",l[111]),E(b,"click",l[70])],I=!0)},p(V,q){(!N||q[0]&536870912)&&(n.disabled=V[29]),(!N||q[0]&536870912)&&(a.disabled=V[29]),V[41].items.length>0?z?z.p(V,q):(z=Fn(V),z.c(),z.m(t,null)):z&&(z.d(1),z=null);let W=k;k=R(V),k===W?L[k].p(V,q):(qe(),re(L[W],1,1,()=>{L[W]=null}),Ye(),C=L[k],C?C.p(V,q):(C=L[k]=D[k](V),C.c()),oe(C,1),C.m(e,T)),V[29]&&!V[31]?x||(x=An(),x.c(),x.m(e,null)):x&&(x.d(1),x=null),V[37]?H?(H.p(V,q),q[1]&64&&oe(H,1)):(H=Ln(V),H.c(),oe(H,1),H.m(M.parentNode,M)):H&&(qe(),re(H,1,1,()=>{H=null}),Ye())},i(V){N||(oe(C),oe(H),N=!0)},o(V){re(C),re(H),N=!1},d(V){V&&(w(e),w(S),w(M)),z&&z.d(),L[k].d(),x&&x.d(),H&&H.d(V),I=!1,me(B)}}}function _r(l){let e,t,n,o,s,c,a,f=l[22]&&jn(l);function d(v,h){return v[11].length===0&&!v[22]?Fr:Ir}let _=d(l),b=_(l);return{c(){e=u("div"),t=u("div"),n=u("button"),n.textContent=`${m("note.add")}`,o=g(),f&&f.c(),s=g(),b.c(),i(n,"class","btn btn-primary svelte-16kcxbw"),i(t,"class","tab-toolbar svelte-16kcxbw"),i(e,"class","notes-tab svelte-16kcxbw")},m(v,h){y(v,e,h),r(e,t),r(t,n),r(e,o),f&&f.m(e,null),r(e,s),b.m(e,null),c||(a=E(n,"click",l[102]),c=!0)},p(v,h){v[22]?f?f.p(v,h):(f=jn(v),f.c(),f.m(e,s)):f&&(f.d(1),f=null),_===(_=d(v))&&b?b.p(v,h):(b.d(1),b=_(v),b&&(b.c(),b.m(e,null)))},i:ne,o:ne,d(v){v&&w(e),f&&f.d(),b.d(),c=!1,a()}}}function vr(l){let e,t,n=l[9].title+"",o,s,c,a,f,d,_=l[116](l[9].type)+"",b,v,h,k,C,T=(l[9].section||"—")+"",S,M,N,I,B,z=ct(l[9].createdAt)+"",D,L,R,x,H,V,q,W,X=m("overview.newNote")+"",Q,U,K,Y,P,se,we=m("overview.addFile")+"",te,ie,ee,_e,ue,de,ye=m("overview.addAction")+"",Le,O,J,ae,fe,le,Ve,Ke=m("overview.logTime")+"",tt,Xe,be,Be,xe,Me=l[11].length>0&&On(l),Ie=l[14].length>0&&xn(l);return{c(){e=u("div"),t=u("h2"),o=A(n),s=g(),c=u("div"),a=u("div"),f=u("span"),f.textContent=`${m("overview.type")}`,d=u("span"),b=A(_),v=g(),h=u("div"),k=u("span"),k.textContent=`${m("overview.section")}`,C=u("span"),S=A(T),M=g(),N=u("div"),I=u("span"),I.textContent=`${m("overview.created")}`,B=u("span"),D=A(z),L=g(),R=u("div"),x=u("button"),H=j("svg"),V=j("path"),q=j("path"),W=g(),Q=A(X),U=g(),K=u("button"),Y=j("svg"),P=j("path"),se=g(),te=A(we),ie=g(),ee=u("button"),_e=j("svg"),ue=j("polygon"),de=g(),Le=A(ye),O=g(),J=u("button"),ae=j("svg"),fe=j("circle"),le=j("polyline"),Ve=g(),tt=A(Ke),Xe=g(),Me&&Me.c(),be=g(),Ie&&Ie.c(),i(t,"class","svelte-16kcxbw"),i(f,"class","meta-label svelte-16kcxbw"),i(d,"class","svelte-16kcxbw"),i(a,"class","meta-item svelte-16kcxbw"),i(k,"class","meta-label svelte-16kcxbw"),i(C,"class","svelte-16kcxbw"),i(h,"class","meta-item svelte-16kcxbw"),i(I,"class","meta-label svelte-16kcxbw"),i(B,"class","svelte-16kcxbw"),i(N,"class","meta-item svelte-16kcxbw"),i(c,"class","meta-grid svelte-16kcxbw"),i(V,"d","M12 20h9"),i(V,"class","svelte-16kcxbw"),i(q,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"),i(q,"class","svelte-16kcxbw"),i(H,"width","16"),i(H,"height","16"),i(H,"viewBox","0 0 24 24"),i(H,"fill","none"),i(H,"stroke","currentColor"),i(H,"stroke-width","2"),i(H,"stroke-linecap","round"),i(H,"stroke-linejoin","round"),i(H,"class","svelte-16kcxbw"),i(x,"class","qa-btn svelte-16kcxbw"),i(P,"d","M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"),i(P,"class","svelte-16kcxbw"),i(Y,"width","16"),i(Y,"height","16"),i(Y,"viewBox","0 0 24 24"),i(Y,"fill","none"),i(Y,"stroke","currentColor"),i(Y,"stroke-width","2"),i(Y,"stroke-linecap","round"),i(Y,"stroke-linejoin","round"),i(Y,"class","svelte-16kcxbw"),i(K,"class","qa-btn svelte-16kcxbw"),i(ue,"points","13 2 3 14 12 14 11 22 21 10 12 10 13 2"),i(ue,"class","svelte-16kcxbw"),i(_e,"width","16"),i(_e,"height","16"),i(_e,"viewBox","0 0 24 24"),i(_e,"fill","none"),i(_e,"stroke","currentColor"),i(_e,"stroke-width","2"),i(_e,"stroke-linecap","round"),i(_e,"stroke-linejoin","round"),i(_e,"class","svelte-16kcxbw"),i(ee,"class","qa-btn svelte-16kcxbw"),i(fe,"cx","12"),i(fe,"cy","12"),i(fe,"r","10"),i(fe,"class","svelte-16kcxbw"),i(le,"points","12 6 12 12 16 14"),i(le,"class","svelte-16kcxbw"),i(ae,"width","16"),i(ae,"height","16"),i(ae,"viewBox","0 0 24 24"),i(ae,"fill","none"),i(ae,"stroke","currentColor"),i(ae,"stroke-width","2"),i(ae,"stroke-linecap","round"),i(ae,"stroke-linejoin","round"),i(ae,"class","svelte-16kcxbw"),i(J,"class","qa-btn svelte-16kcxbw"),i(R,"class","quick-actions svelte-16kcxbw"),i(e,"class","overview svelte-16kcxbw")},m(Se,Te){y(Se,e,Te),r(e,t),r(t,o),r(e,s),r(e,c),r(c,a),r(a,f),r(a,d),r(d,b),r(c,v),r(c,h),r(h,k),r(h,C),r(C,S),r(c,M),r(c,N),r(N,I),r(N,B),r(B,D),r(e,L),r(e,R),r(R,x),r(x,H),r(H,V),r(H,q),r(x,W),r(x,Q),r(R,U),r(R,K),r(K,Y),r(Y,P),r(K,se),r(K,te),r(R,ie),r(R,ee),r(ee,_e),r(_e,ue),r(ee,de),r(ee,Le),r(R,O),r(R,J),r(J,ae),r(ae,fe),r(ae,le),r(J,Ve),r(J,tt),r(e,Xe),Me&&Me.m(e,null),r(e,be),Ie&&Ie.m(e,null),Be||(xe=[E(x,"click",l[136]),E(K,"click",l[137]),E(ee,"click",l[117]),E(J,"click",l[138])],Be=!0)},p(Se,Te){Te[0]&512&&n!==(n=Se[9].title+"")&&G(o,n),Te[0]&512&&_!==(_=Se[116](Se[9].type)+"")&&G(b,_),Te[0]&512&&T!==(T=(Se[9].section||"—")+"")&&G(S,T),Te[0]&512&&z!==(z=ct(Se[9].createdAt)+"")&&G(D,z),Se[11].length>0?Me?Me.p(Se,Te):(Me=On(Se),Me.c(),Me.m(e,be)):Me&&(Me.d(1),Me=null),Se[14].length>0?Ie?Ie.p(Se,Te):(Ie=xn(Se),Ie.c(),Ie.m(e,null)):Ie&&(Ie.d(1),Ie=null)},i:ne,o:ne,d(Se){Se&&w(e),Me&&Me.d(),Ie&&Ie.d(),Be=!1,me(xe)}}}function kr(l){let e,t=pe(l[5]),n=[];for(let o=0;o',N=g(),i(n,"class","action-title svelte-16kcxbw"),i(a,"class","action-type svelte-16kcxbw"),i(b,"class","action-data svelte-16kcxbw"),i(t,"class","action-info svelte-16kcxbw"),i(T,"class","btn btn-sm svelte-16kcxbw"),i(M,"class","btn btn-sm btn-danger svelte-16kcxbw"),i(C,"class","action-btns svelte-16kcxbw"),i(e,"class","action-card svelte-16kcxbw")},m(L,R){y(L,e,R),r(e,t),r(t,n),r(n,s),r(t,c),r(t,a),r(a,d),r(t,_),r(t,b),r(b,h),r(e,k),r(e,C),r(C,T),r(C,S),r(C,M),r(e,N),I||(B=[E(T,"click",z),E(M,"click",D)],I=!0)},p(L,R){l=L,R[0]&8192&&o!==(o=l[245].title+"")&&G(s,o),R[0]&8192&&f!==(f=l[121](l[245].type)+"")&&G(d,f),R[0]&8192&&v!==(v=l[245].data+"")&&G(h,v)},d(L){L&&w(e),I=!1,me(B)}}}function Fn(l){let e,t=m("common.paste")+"",n,o,s=l[41].items.length+"",c,a,f;return{c(){e=u("button"),n=A(t),o=g(),c=A(s),i(e,"class","btn svelte-16kcxbw")},m(d,_){y(d,e,_),r(e,n),r(e,o),r(e,c),a||(f=E(e,"click",l[75]),a=!0)},p(d,_){_[1]&1024&&s!==(s=d[41].items.length+"")&&G(c,s)},d(d){d&&w(e),a=!1,f()}}}function Cr(l){let e,t,n,o,s,c,a;const f=[Nr,Tr],d=[];function _(k,C){return k[35].length>0?0:1}e=_(l),t=d[e]=f[e](l);const b=[Mr,Dr],v=[];function h(k,C){return k[36].length===0?0:1}return o=h(l),s=v[o]=b[o](l),{c(){t.c(),n=g(),s.c(),c=it()},m(k,C){d[e].m(k,C),y(k,n,C),v[o].m(k,C),y(k,c,C),a=!0},p(k,C){let T=e;e=_(k),e===T?d[e].p(k,C):(qe(),re(d[T],1,1,()=>{d[T]=null}),Ye(),t=d[e],t?t.p(k,C):(t=d[e]=f[e](k),t.c()),oe(t,1),t.m(n.parentNode,n));let S=o;o=h(k),o===S?v[o].p(k,C):(qe(),re(v[S],1,1,()=>{v[S]=null}),Ye(),s=v[o],s?s.p(k,C):(s=v[o]=b[o](k),s.c()),oe(s,1),s.m(c.parentNode,c))},i(k){a||(oe(t),oe(s),a=!0)},o(k){re(t),re(s),a=!1},d(k){k&&(w(n),w(c)),d[e].d(k),v[o].d(k)}}}function Sr(l){let e,t;return{c(){e=u("div"),t=u("p"),t.textContent=`${m("common.loading")}`,i(t,"class","svelte-16kcxbw"),i(e,"class","empty-state svelte-16kcxbw")},m(n,o){y(n,e,o),r(e,t)},p:ne,i:ne,o:ne,d(n){n&&w(e)}}}function Tr(l){let e,t;return e=new wi({props:{crumbs:[{name:m("file.root")}]}}),{c(){et(e.$$.fragment)},m(n,o){Ze(e,n,o),t=!0},p:ne,i(n){t||(oe(e.$$.fragment,n),t=!0)},o(n){re(e.$$.fragment,n),t=!1},d(n){Qe(e,n)}}}function Nr(l){let e,t,n,o,s,c,a,f=m("common.back")+"",d,_,b,v;return e=new wi({props:{crumbs:[{name:m("file.root")},...l[35]]}}),e.$on("navigate",l[145]),{c(){et(e.$$.fragment),t=g(),n=u("button"),o=j("svg"),s=j("line"),c=j("polyline"),a=g(),d=A(f),i(s,"x1","19"),i(s,"y1","12"),i(s,"x2","5"),i(s,"y2","12"),i(s,"class","svelte-16kcxbw"),i(c,"points","12 19 5 12 12 5"),i(c,"class","svelte-16kcxbw"),i(o,"width","14"),i(o,"height","14"),i(o,"viewBox","0 0 24 24"),i(o,"fill","none"),i(o,"stroke","currentColor"),i(o,"stroke-width","2"),i(o,"stroke-linecap","round"),i(o,"stroke-linejoin","round"),i(o,"class","svelte-16kcxbw"),i(n,"class","btn btn-sm back-btn svelte-16kcxbw")},m(h,k){Ze(e,h,k),y(h,t,k),y(h,n,k),r(n,o),r(o,s),r(o,c),r(n,a),r(n,d),_=!0,b||(v=E(n,"click",l[66]),b=!0)},p(h,k){const C={};k[1]&16&&(C.crumbs=[{name:m("file.root")},...h[35]]),e.$set(C)},i(h){_||(oe(e.$$.fragment,h),_=!0)},o(h){re(e.$$.fragment,h),_=!1},d(h){h&&(w(t),w(n)),Qe(e,h),b=!1,v()}}}function Dr(l){let e,t=[],n=new Map,o,s=pe(l[36]);const c=a=>a[242].id;for(let a=0;a0?m("file.noFiles"):m("file.noFilesCase"))+"",c,a,f,d,_,b,v,h,k,C;return{c(){e=u("div"),t=u("div"),t.innerHTML='',n=g(),o=u("p"),c=A(s),a=g(),f=u("p"),f.textContent=`${m("file.hint")}`,d=g(),_=u("div"),b=u("button"),b.textContent=`${m("file.addFileSimple")}`,v=g(),h=u("button"),h.textContent=`${m("file.addFolderSimple")}`,i(t,"class","empty-icon svelte-16kcxbw"),i(o,"class","svelte-16kcxbw"),i(f,"class","hint svelte-16kcxbw"),i(b,"class","btn btn-primary svelte-16kcxbw"),i(h,"class","btn svelte-16kcxbw"),i(_,"class","empty-actions svelte-16kcxbw"),i(e,"class","empty-state svelte-16kcxbw")},m(T,S){y(T,e,S),r(e,t),r(e,n),r(e,o),r(o,c),r(e,a),r(e,f),r(e,d),r(e,_),r(_,b),r(_,v),r(_,h),k||(C=[E(b,"click",l[110]),E(h,"click",l[111])],k=!0)},p(T,S){S[1]&16&&s!==(s=(T[35].length>0?m("file.noFiles"):m("file.noFilesCase"))+"")&&G(c,s)},i:ne,o:ne,d(T){T&&w(e),k=!1,me(C)}}}function En(l,e){let t,n,o;return n=new fc({props:{item:e[242],selected:e[42].includes(e[242].id),onDragStart:e[79],onDragOver:e[80],onDrop:e[81]}}),n.$on("navigate",e[146]),n.$on("preview",e[147]),n.$on("openExternal",e[148]),n.$on("showInFolder",e[149]),n.$on("delete",e[150]),n.$on("rename",e[151]),n.$on("duplicate",e[152]),n.$on("cut",e[153]),n.$on("copy",e[154]),n.$on("selectOne",e[155]),n.$on("toggleSelect",e[156]),n.$on("rangeSelect",e[157]),{key:l,first:null,c(){t=it(),et(n.$$.fragment),this.first=t},m(s,c){y(s,t,c),Ze(n,s,c),o=!0},p(s,c){e=s;const a={};c[1]&32&&(a.item=e[242]),c[1]&2080&&(a.selected=e[42].includes(e[242].id)),n.$set(a)},i(s){o||(oe(n.$$.fragment,s),o=!0)},o(s){re(n.$$.fragment,s),o=!1},d(s){s&&w(t),Qe(n,s)}}}function An(l){let e,t;return{c(){e=u("div"),t=u("p"),t.textContent=`${m("file.scanning")}`,i(t,"class","svelte-16kcxbw"),i(e,"class","empty-state svelte-16kcxbw")},m(n,o){y(n,e,o),r(e,t)},d(n){n&&w(e)}}}function Ln(l){let e,t;return e=new Nc({props:{item:l[37],content:l[38],loading:l[39],error:l[40]}}),e.$on("close",l[69]),e.$on("openExternal",l[158]),{c(){et(e.$$.fragment)},m(n,o){Ze(e,n,o),t=!0},p(n,o){const s={};o[1]&64&&(s.item=n[37]),o[1]&128&&(s.content=n[38]),o[1]&256&&(s.loading=n[39]),o[1]&512&&(s.error=n[40]),e.$set(s)},i(n){t||(oe(e.$$.fragment,n),t=!0)},o(n){re(e.$$.fragment,n),t=!1},d(n){Qe(e,n)}}}function jn(l){let e,t,n,o,s,c,a,f,d;return{c(){e=u("div"),t=u("input"),n=g(),o=u("div"),s=u("button"),s.textContent=`${m("common.create")}`,c=g(),a=u("button"),a.textContent=`${m("common.cancel")}`,i(t,"type","text"),i(t,"placeholder",m("note.title")),i(t,"class","svelte-16kcxbw"),i(s,"class","btn btn-primary svelte-16kcxbw"),i(a,"class","btn svelte-16kcxbw"),i(o,"class","form-actions svelte-16kcxbw"),i(e,"class","create-form svelte-16kcxbw")},m(_,b){y(_,e,b),r(e,t),Ae(t,l[23]),r(e,n),r(e,o),r(o,s),r(o,c),r(o,a),f||(d=[E(t,"input",l[141]),E(t,"keydown",l[142]),E(s,"click",l[104]),E(a,"click",l[103])],f=!0)},p(_,b){b[0]&8388608&&t.value!==_[23]&&Ae(t,_[23])},d(_){_&&w(e),f=!1,me(d)}}}function Ir(l){let e,t=pe(l[11]),n=[];for(let o=0;ore(se[te],1,1,()=>{se[te]=null});return{c(){e=u("div"),t=u("div"),n=u("h3"),n.textContent=`${m("nav.createNode")}`,o=g(),Y&&Y.c(),s=g(),c=u("div"),a=u("span"),a.textContent=`${m("template.select")}`,f=g(),d=u("div"),_=u("button"),et(b.$$.fragment),v=g(),h=u("div"),k=u("span"),k.textContent=`${m("template.optionNone")}`,C=g(),T=u("span"),T.textContent=`${m("template.none.desc")}`,S=g();for(let te=0;te{k=null}),Ye()),T[21].node&&T[21].node.parent_id?C?C.p(T,S):(C=qn(T),C.c(),C.m(t,s)):C&&(C.d(1),C=null),(!b||S[0]&2097152)&&He(t,"left",T[21].x+"px"),(!b||S[0]&2097152)&&He(t,"top",T[21].y+"px")},i(T){b||(oe(k),b=!0)},o(T){re(k),b=!1},d(T){T&&w(e),k&&k.d(),C&&C.d(),v=!1,me(h)}}}function Kn(l){let e,t,n,o,s,c=pe(l[2].length>0?l[2]:[{id:"",title:"template.optionNone",icon:"folder"}]),a=[];for(let d=0;dre(a[d],1,1,()=>{a[d]=null});return{c(){e=u("div"),e.textContent=`${m("common.create")}`,t=g();for(let d=0;d0?d[2]:[{id:"",title:"template.optionNone",icon:"folder"}]);let b;for(b=0;bl[182].call(C)),i(v,"class","svelte-16kcxbw"),i(b,"class","form-group svelte-16kcxbw"),i(N,"class","label-text svelte-16kcxbw"),i(D,"type","text"),i(D,"placeholder",L=l[26]==="open_url"?m("action.urlPlaceholder"):l[26]==="open_folder"||l[26]==="open_file"?m("action.pathPlaceholder"):m("action.commandPlaceholder")),i(D,"class","svelte-16kcxbw"),i(M,"class","svelte-16kcxbw"),i(S,"class","form-group svelte-16kcxbw"),i(H,"class","btn btn-primary svelte-16kcxbw"),i(q,"class","btn svelte-16kcxbw"),i(x,"class","modal-actions svelte-16kcxbw"),i(t,"class","modal svelte-16kcxbw"),i(e,"class","modal-overlay svelte-16kcxbw"),i(e,"role","button"),i(e,"tabindex","0")},m(K,Y){y(K,e,Y),r(e,t),r(t,n),r(t,o),r(t,s),r(s,c),r(c,a),r(c,f),r(c,d),Ae(d,l[25]),r(t,_),r(t,b),r(b,v),r(v,h),r(v,k),r(v,C);for(let P=0;P0?0:1}N=Me(l),I=xe[N]=Be[N](l);function Ie(Z,ke){return Z[9]?Jc:Z[8]?Xc:Yc}let Se=Ie(l),Te=Se(l),je=((Je=l[53])==null?void 0:Je.configured)&&fn(l),Fe=l[7]&&dn(l);const ot=[tr,er,$c,Qc,Zc],Ne=[];function De(Z,ke){return Z[12]?0:Z[9]?1:Z[8]==="today"&&Z[3]?2:Z[8]==="activity"?3:4}ue=De(l),de=Ne[ue]=ot[ue](l);let ge=l[17]&&Hn(l),he=l[21].visible&&Wn(l),Ee=l[24]&&Yn(l),Pe=l[31]&&l[30]&&Jn(l),ve=l[49]&&Qn(l),Oe=l[44]&&ei(l),Re=l[52]&&ti(l);return{c(){var Z;e=u("div"),t=u("aside"),n=u("div"),o=u("span"),o.textContent="⚒",s=g(),c=u("span"),c.textContent=`${m("nav.brand")}`,a=g(),f=u("nav"),d=u("div"),_=u("div"),_.textContent=`${m("nav.system")}`,b=g();for(let ke=0;ke{xe[ze]=null}),Ye(),I=xe[N],I?I.p(Z,ke):(I=xe[N]=Be[N](Z),I.c()),oe(I,1),I.m(h,null)),(!Ve||ke[1]&4194304)&&Ue(q,"active",(Ct=Z[53])==null?void 0:Ct.configured),(!Ve||ke[0]&64)&&G(K,Z[6]),Se===(Se=Ie(Z))&&Te?Te.p(Z,ke):(Te.d(1),Te=Se(Z),Te&&(Te.c(),Te.m(we,null))),(St=Z[53])!=null&&St.configured?je?je.p(Z,ke):(je=fn(Z),je.c(),je.m(ie,null)):je&&(je.d(1),je=null),Z[7]?Fe?Fe.p(Z,ke):(Fe=dn(Z),Fe.c(),Fe.m(P,_e)):Fe&&(Fe.d(1),Fe=null);let pt=ue;ue=De(Z),ue===pt?Ne[ue].p(Z,ke):(qe(),re(Ne[pt],1,1,()=>{Ne[pt]=null}),Ye(),de=Ne[ue],de?de.p(Z,ke):(de=Ne[ue]=ot[ue](Z),de.c()),oe(de,1),de.m(P,ye)),Z[17]?ge?(ge.p(Z,ke),ke[0]&131072&&oe(ge,1)):(ge=Hn(Z),ge.c(),oe(ge,1),ge.m(P,Le)):ge&&(qe(),re(ge,1,1,()=>{ge=null}),Ye()),Z[21].visible?he?(he.p(Z,ke),ke[0]&2097152&&oe(he,1)):(he=Wn(Z),he.c(),oe(he,1),he.m(P,O)):he&&(qe(),re(he,1,1,()=>{he=null}),Ye()),Z[24]?Ee?Ee.p(Z,ke):(Ee=Yn(Z),Ee.c(),Ee.m(P,J)):Ee&&(Ee.d(1),Ee=null),Z[31]&&Z[30]?Pe?Pe.p(Z,ke):(Pe=Jn(Z),Pe.c(),Pe.m(P,ae)):Pe&&(Pe.d(1),Pe=null),Z[49]?ve?ve.p(Z,ke):(ve=Qn(Z),ve.c(),ve.m(P,fe)):ve&&(ve.d(1),ve=null),Z[44]?Oe?(Oe.p(Z,ke),ke[1]&8192&&oe(Oe,1)):(Oe=ei(Z),Oe.c(),oe(Oe,1),Oe.m(P,le)):Oe&&(qe(),re(Oe,1,1,()=>{Oe=null}),Ye()),Z[52]?Re?Re.p(Z,ke):(Re=ti(Z),Re.c(),Re.m(P,null)):Re&&(Re.d(1),Re=null)},i(Z){Ve||(oe(I),oe(de),oe(ge),oe(he),oe(Oe),Ve=!0)},o(Z){re(I),re(de),re(ge),re(he),re(Oe),Ve=!1},d(Z){Z&&w(e),We(be,Z),xe[N].d(),Te.d(),je&&je.d(),Fe&&Fe.d(),Ne[ue].d(),ge&&ge.d(),he&&he.d(),Ee&&Ee.d(),Pe&&Pe.d(),ve&&ve.d(),Oe&&Oe.d(),Re&&Re.d(),Ke=!1,me(tt)}}}function $(l,...e){try{if(window.go&&window.go.main&&window.go.main.App){const t=window.go.main.App[l];if(typeof t=="function")return t(...e)}}catch(t){console.error("Wails call error:",l,t)}return Promise.reject(new Error("Wails not connected: "+l))}function Ft(l,e,t){for(const n of l){if(n.id===e)return n.children=t,n.has_children=t.length>0,!0;if(n.children&&Ft(n.children,e,t))return!0}return!1}function gi(l,e,t){for(const n of l){if(n.id===e)return n.children=t,n.has_children=t.length>0,!0;if(n.children&&gi(n.children,e,t))return!0}return!1}function gt(l){return l==="note_created"||l==="file_added"||l==="folder_added"||l==="node_created"?"+":l==="file_deleted"||l==="folder_deleted"?"×":l==="file_renamed"||l==="folder_renamed"||l==="note_updated"||l==="node_updated"?"~":l==="file_copied"?"⧉":l==="file_moved"?"→":"•"}function st(l){if(!l)return"";try{return new Date(l).toLocaleTimeString("ru-RU",{hour:"2-digit",minute:"2-digit"})}catch{return""}}function ct(l){if(!l)return"";try{return new Date(l).toLocaleDateString("ru-RU",{day:"numeric",month:"short"})}catch{return l}}function at(l,e,t,n){return l=Math.abs(l)%100,l>=5&&l<=20?n:(l%=10,l===1?e:l>=2&&l<=4?t:n)}function nt(l){return e=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),l())}}function xr(l,e,t){let n=[],o=[],s=[],c=null,a=[],f=0,d=!0,_=[],b="",v="",h="",k=null,C="overview",T=[],S=null,M=[],N=[],I=[],B="",z="",D=!1,L="",R=null,x=null,H={visible:!1,x:0,y:0,node:null},V=!1,q="",W=!1,X="",Q="open_url",U="",K=[{id:"open_url",label:m("action.openUrl")},{id:"open_file",label:m("action.openFile")},{id:"open_folder",label:m("action.openFolder")},{id:"run_command",label:m("action.runCommand")},{id:"run_script",label:m("action.runScript")},{id:"open_terminal",label:m("action.openTerminal")},{id:"launch_app",label:m("action.launchApp")}],Y=!0,P=!1,se=null,we=!1,te="",ie="",ee={},_e=!1,ue=null,de=[],ye=[],Le=null,O="",J=!1,ae="",fe={items:[],mode:"copy"},le=[],Ve=[],Ke=!1,tt=!1,Xe="",be="",Be=!1,xe=m("common.delete"),Me=null,Ie=null,Se=!1,Te="",je="",Fe="",ot=!1,Ne=null,De=!1,ge="",he="",Ee="",Pe=0,ve="";const Oe=[{id:"overview",label:m("tab.overview")},{id:"notes",label:m("tab.notes")},{id:"files",label:m("tab.files")},{id:"actions",label:m("tab.actions")},{id:"worklog",label:m("tab.worklog")},{id:"activity",label:m("tab.activity")}];let Re=null;ai(async()=>{try{t(6,b=await $("VerstakVersion")||"verstak-gui/v2"),t(0,n=await $("ListSystemViews")||[]),t(1,o=await $("ListWorkspaceTree")||[]),t(2,s=await $("ListEnabledTemplates")||[])}catch(p){t(7,v=String(p)),t(0,n=[{id:"today",label:m("nav.today")},{id:"inbox",label:m("nav.inbox")},{id:"activity",label:m("nav.activity")}]),t(1,o=[]),t(2,s=[])}window.runtime&&window.runtime.EventsOn&&(window.runtime.EventsOn("files-dropped",$i),Re=()=>window.runtime.EventsOff("files-dropped")),window.addEventListener("keydown",ul),t(28,Y=!1),Dt()}),ll(()=>{Re&&Re(),window.removeEventListener("keydown",ul)});async function Je(p){t(8,h=p),t(9,k=null),t(10,C="overview"),t(11,T=[]),M=[],t(13,N=[]),t(14,I=[]),t(17,D=!1),t(7,v=""),t(3,c=null),t(4,a=[]),f=0,d=!0;try{p==="today"?t(3,c=await $("ListTodayView")||{cases:[]}):p==="activity"&&(t(4,a=await $("ListActivityFeed",50,0)||[]),f=a.length,d=a.length===50)}catch(F){t(7,v=String(F)),t(3,c={cases:[]}),t(4,a=[])}}async function Z(p){t(9,k=p),t(10,C="overview"),t(11,T=[]),M=[],t(13,N=[]),t(14,I=[]),t(36,ye=[]),t(35,de=[]),t(34,ue=null),t(37,Le=null),t(38,O=""),t(42,le=[]),Ve=[],t(12,S=null),t(17,D=!1),t(22,V=!1),t(7,v=""),t(5,_=[]),await ke(p.id)}async function ke(p){try{t(11,T=await $("ListNotes",p)||[])}catch{}try{M=await $("ListFiles",p)||[]}catch{}try{t(13,N=await $("ListActions",p)||[])}catch{}try{t(14,I=await $("ListWorklog",p)||[])}catch{}try{t(5,_=await $("ListActivityByNode",p,50,0)||[])}catch{}}async function ze(p){t(33,_e=!0);try{let F=await $("ListItems",p)||[];F.sort((ce,Ce)=>ce.type!==Ce.type?ce.type==="folder"?-1:1:(ce.name||"").localeCompare(Ce.name||"")),t(36,ye=F)}catch{t(36,ye=[])}t(33,_e=!1)}async function pt(p){if(!k)return;try{const ce=await $("GetNodeDetail",p);ce&&t(35,de=[...de,{id:p,name:ce.title}])}catch{t(35,de=[...de,{id:p,name:"..."}])}t(34,ue=p),t(32,ee={...ee,[p]:!0});const F=await $("ListWorkspaceChildren",p)||[];Ft(o,p,F),t(1,o=[...o]),await ze(p)}function Ct(){if(de.length<2)t(35,de=[]),t(34,ue=null),ze(k.id);else{const p=de[de.length-2];t(35,de=de.slice(0,-1)),t(34,ue=p.id),ze(p.id)}}function St(p){const F=de[p];t(35,de=de.slice(0,p+1)),t(34,ue=F.id),ze(F.id)}async function Ge(p){t(37,Le=p),t(38,O=""),t(40,ae=""),t(39,J=!0);try{lc(p)?t(38,O=await $("GetFileBase64",p.fileId)||""):nc(p)&&t(38,O=await $("ReadFileText",p.fileId)||"")}catch(F){t(40,ae=String(F))}t(39,J=!1)}function kt(){t(37,Le=null),t(38,O=""),t(40,ae="")}async function Ci(){const p=prompt(m("file.namePrompt"));if(!(!p||!p.trim()))try{const F=ue||k.id;await $("CreateEmptyFile",F,p.trim()),await ze(F),await Kt(F)}catch(F){t(7,v=String(F))}}async function nl(p){try{await $("DuplicateNode",p);const F=ue||k.id;await ze(F),await Kt(F)}catch(F){t(7,v=String(F))}}function il(p){const F=ye.find(ce=>ce.id===p);F&&Wt(F.id,F.name)}function ol(p){t(41,fe={items:[p],mode:"cut"})}function sl(p){t(41,fe={items:[p],mode:"copy"})}async function cl(){if(fe.items.length===0)return;const p=ue||k.id;try{if(fe.mode==="copy")for(const F of fe.items)await $("DuplicateNode",F);else for(const F of fe.items)await $("MoveNode",F,p);t(41,fe={items:[],mode:"copy"}),await ze(p)}catch(F){t(7,v=String(F))}}function rl(p){le.includes(p)?t(42,le=le.filter(F=>F!==p)):t(42,le=[...le,p])}function al(p){t(42,le=[p])}function Si(){t(42,le=ye.map(p=>p.id))}function fl(p){if(ye.length===0)return;const F=le.length>0?le[le.length-1]:ye[0].id,ce=ye.findIndex(mt=>mt.id===F),Ce=ye.findIndex(mt=>mt.id===p);if(ce===-1||Ce===-1)return;const lt=Math.min(ce,Ce),Mt=Math.max(ce,Ce),ys=ye.slice(lt,Mt+1).map(mt=>mt.id),Dl=new Set(le);ys.forEach(mt=>Dl.add(mt)),t(42,le=[...Dl])}function Ti(){t(42,le=[])}function Ut(p){return p.length>0?p:ye.map(F=>F.id)}async function Ni(){const p=Ut(le),F=ye.find(Ce=>Ce.id===p[0]);let ce;p.length===1&&(F==null?void 0:F.type)==="folder"?ce=m("delete.folder"):p.length===1?ce=m("delete.file"):ce=m("delete.files",{count:p.length}),Tt({title:m("delete.confirmTitle"),message:m("delete.confirmMessage")+" "+ce+"?",confirmText:m("common.delete"),danger:!0,onConfirm:async()=>{for(const lt of p)try{await $("DeleteFileOrFolder",lt)}catch(Mt){t(7,v=String(Mt))}t(42,le=[]);const Ce=ue||k.id;await ze(Ce)}})}function Di(){const p=Ut(le);t(41,fe={items:p,mode:"cut"}),t(42,le=[])}function Mi(){const p=Ut(le);t(41,fe={items:p,mode:"copy"}),t(42,le=[])}function Ii(p,F){const ce=le.includes(F)?le:[F];Ve=ce,p.dataTransfer.effectAllowed="move",p.dataTransfer.setData("text/plain",ce.join(","))}function Fi(p,F){const ce=ye.find(Ce=>Ce.id===F);ce&&ce.type==="folder"&&(p.preventDefault(),p.dataTransfer.dropEffect="move")}async function Ei(p,F){if(p.preventDefault(),Ve.length!==0){for(const ce of Ve)try{await $("MoveNode",ce,F)}catch(Ce){t(7,v=String(Ce))}Ve=[],t(42,le=[]),await ze(ue||k.id)}}function ul(p){if(C==="files"&&!(p.target.tagName==="INPUT"||p.target.tagName==="TEXTAREA"))if(p.ctrlKey||p.metaKey)p.key==="c"||p.key==="C"?(p.preventDefault(),Mi()):p.key==="x"||p.key==="X"?(p.preventDefault(),Di()):p.key==="v"||p.key==="V"?(p.preventDefault(),cl()):p.key==="a"||p.key==="A"?(p.preventDefault(),Si()):p.key==="o"||p.key==="O"?(p.preventDefault(),Ai()):p.key==="Enter"&&(p.preventDefault(),dl());else if(p.key==="Enter")p.preventDefault(),dl();else if(p.key==="Delete"||p.key==="Backspace"){if(Le){p.preventDefault(),kt();return}if(le.length>0){p.preventDefault(),Ni();return}if(p.key==="Backspace"&&de.length>0){p.preventDefault(),Ct();return}}else if(p.key==="Escape"){if(Le){kt();return}if(le.length>0){Ti();return}}else p.key==="F2"&&(p.preventDefault(),Li())}function dl(){if(le.length===1){const p=ye.find(F=>F.id===le[0]);p&&(p.type==="folder"?pt(p.id):Ge(p))}}function Ai(){if(le.length===1){const p=ye.find(F=>F.id===le[0]);p&&p.fileId&&$("OpenFile",p.fileId)}}function Wt(p,F){Te=p,t(50,je=F),t(51,Fe=""),t(49,Se=!0)}function Li(){if(le.length===1){const p=ye.find(F=>F.id===le[0]);p&&Wt(p.id,p.name)}}async function pl(){const p=je.trim();if(!p){t(51,Fe=m("rename.emptyError"));return}try{await $("ValidateName",p)}catch{t(51,Fe=m("rename.invalidError"));return}t(49,Se=!1),Te="";try{await $("RenameNode",Te,p);const F=ue||k.id;await ze(F)}catch(F){t(7,v=String(F))}}function ji(){t(49,Se=!1),Te="",t(50,je=""),t(51,Fe="")}function Pi(p){p.key==="Enter"?pl():t(51,Fe="")}function Tt(p){t(45,Xe=p.title||m("common.confirm")),t(46,be=p.message||""),t(47,Be=p.danger!==void 0?p.danger:!0),t(48,xe=p.confirmText||m("common.delete")),Me=p.onConfirm||null,Ie=p.onCancel||null,t(44,tt=!0)}function ml(){t(44,tt=!1),Me=null,Ie=null}function Oi(){Me&&Me(),ml()}function zi(){Ie&&Ie(),ml()}function _l(p){t(19,R=H.node),t(20,x=p),t(18,L=""),t(17,D=!0),bt()}function xi(){t(19,R=null),t(20,x=void 0),t(18,L=""),t(17,D=!0)}function Bi(){t(17,D=!1),t(18,L=""),t(19,R=null),t(20,x=void 0)}async function vl(){if(!(!L.trim()||x===void 0))try{const p=R?R.id:"",F=x?x.id:"",ce=await $("CreateNodeFromTemplate",p,L.trim(),F);t(17,D=!1),t(18,L="");const Ce=ce?ce.id:null;if(t(19,R=null),t(20,x=void 0),p){t(32,ee={...ee,[p]:!0});const lt=await $("ListWorkspaceChildren",p)||[];Ft(o,p,lt),t(1,o=[...o])}else t(1,o=await $("ListWorkspaceTree")||o);if(Ce){const lt=await $("GetNodeDetail",Ce);lt&&(t(8,h=""),Z(lt))}}catch(p){t(7,v=String(p))}}function Ri(p,F){t(21,H={visible:!0,x:p.clientX,y:p.clientY,node:F})}function bt(){t(21,H={visible:!1,x:0,y:0,node:null})}async function Hi(p){const F=!ee[p];if(t(32,ee={...ee,[p]:F}),!F)return;const ce=await $("ListWorkspaceChildren",p)||[];Ft(o,p,ce),t(1,o=[...o])}async function Vi(p,F){if(!(!p||!F||p===F))try{const ce=await $("MoveNode",p,F);await jt();const Ce=await $("GetNodeDetail",p);Ce&&(t(8,h=""),Z(Ce))}catch(ce){t(7,v=String(ce))}}async function Ui(p){p.preventDefault();try{const F=p.dataTransfer.getData("text/plain");if(!F)return;const ce=await $("GetNodeDetail",F);if(!ce||!ce.parent_id)return;await $("MoveNode",F,""),await jt();const Ce=await $("GetNodeDetail",F);Ce&&(t(8,h=""),Z(Ce))}catch(F){t(7,v=String(F))}}function Wi(p){p.preventDefault(),p.dataTransfer.dropEffect="move",t(43,Ke=!0)}function Ki(p){t(43,Ke=!1)}function kl(p){Wt(p.id,p.title),bt()}function bl(p){bt(),Tt({title:m("delete.confirmTitle"),message:m("delete.confirmMessage")+" "+p.title+"?",confirmText:m("common.delete"),danger:!0,onConfirm:async()=>{try{await $("DeleteNode",p.id),await jt(),k&&k.id===p.id&&t(9,k=null)}catch(F){t(7,v=String(F))}}})}async function hl(p){bt();try{await $("OpenFolder",p.id)}catch(F){t(7,v=String(F))}}async function wl(p){bt();try{await $("MoveNode",p.id,""),await jt();const F=await $("GetNodeDetail",p.id);F&&(t(8,h=""),Z(F))}catch(F){t(7,v=String(F))}}async function jt(){const p=Object.keys(ee).filter(ce=>ee[ce]),F=await $("ListWorkspaceTree")||[];for(const ce of p){const lt=(await $("ListWorkspaceChildren",ce)||[]).map(Mt=>({...Mt}));gi(F,ce,lt)}t(1,o=F)}async function Kt(p){const F=await $("ListWorkspaceChildren",p)||[];Ft(o,p,F),t(1,o=[...o])}function yl(){t(22,V=!0),t(23,q="")}function Gi(){t(22,V=!1),t(23,q="")}async function gl(){if(!(!q.trim()||!k))try{const p=await $("CreateNote",k.id,q.trim());t(11,T=[...T,p&&p.id?p:{id:Date.now().toString(),title:q.trim(),createdAt:new Date().toISOString()}]),t(22,V=!1),t(23,q="")}catch{const F={id:Date.now().toString(),title:q.trim(),createdAt:new Date().toISOString()};t(11,T=[...T,F]),t(22,V=!1),t(23,q="")}}async function Nt(p){if(S&&S.dirty){Tt({title:m("note.unsavedTitle"),message:m("note.unsavedMessage"),confirmText:m("note.unsavedClose"),danger:!1,onConfirm:async()=>{await Cl(p)}});return}await Cl(p)}async function Cl(p){try{const F=await $("ReadNote",p.id);t(12,S={id:p.id,title:p.title,content:F||"",dirty:!1})}catch{t(12,S={id:p.id,title:p.title,content:"# "+p.title+` + +`,dirty:!1})}}function qi(){if(S&&S.dirty){Tt({title:m("note.unsavedTitle"),message:m("note.unsavedMessage"),confirmText:m("note.unsavedClose"),danger:!1,onConfirm:()=>{t(12,S=null)}});return}t(12,S=null)}function Yi(p){S&&(t(12,S.content=p.target.value,S),t(12,S.dirty=!0,S))}async function Xi(){if(S)try{await $("SaveNote",S.id,S.content),t(12,S.dirty=!1,S)}catch{t(12,S.dirty=!1,S)}}async function Ji(){const p=parseInt(B,10);if(!(!z.trim()||isNaN(p)||p<=0||!k)){try{const F=await $("CreateWorklog",k.id,z.trim(),p);t(14,I=[...I,F&&F.id?F:{id:Date.now().toString(),nodeId:k.id,summary:z.trim(),minutes:p,createdAt:new Date().toISOString()}])}catch{t(14,I=[...I,{id:Date.now().toString(),nodeId:k.id,summary:z.trim(),minutes:p,createdAt:new Date().toISOString()}])}t(16,z=""),t(15,B="")}}async function Sl(){const p=await $("PickFile");if(!p)return;const F=ue||k.id;await Gt(F,p)}async function Zi(){const p=await $("PickDirectory");if(!p)return;const F=ue||k.id;await Gt(F,p)}async function Gt(p,F){t(29,P=!0);try{const ce=await $("PreviewImport",F);t(30,se=ce),te=F,ie=p,t(31,we=!0)}catch(ce){t(7,v=String(ce))}t(29,P=!1)}async function qt(p){try{const F=ie||k.id,ce=p==="copy"?await $("AddPathCopy",F,te):await $("AddPathLink",F,te);t(31,we=!1),t(30,se=null),t(35,de=[]),t(34,ue=null),await Promise.all([ke(F),ze(F),Kt(F)])}catch(F){t(7,v=String(F))}}function Qi(){t(31,we=!1),t(30,se=null)}async function Tl({id:p,type:F}){const ce=m(F==="folder"?"delete.folder":"delete.file");Tt({title:m("delete.confirmTitle"),message:m("delete.confirmMessage")+" "+ce+"?",confirmText:m("common.delete"),danger:!0,onConfirm:async()=>{try{await $("DeleteFileOrFolder",p),M=M.filter(lt=>lt.nodeId!==p);const Ce=ue||k.id;await ze(Ce)}catch(Ce){t(7,v=String(Ce))}}})}async function $i(p){if(!p||p.length===0)return;if(!k){t(7,v=m("error.selectCaseFirst"));return}const F=p[0];await Gt(k.id,F)}function eo(p){return{note_created:m("event.noteCreated"),note_updated:m("event.noteUpdated"),file_added:m("event.fileAdded"),file_deleted:m("event.fileDeleted"),file_renamed:m("event.fileRenamed"),file_copied:m("event.fileCopied"),file_moved:m("event.fileMoved"),folder_added:m("event.folderAdded"),folder_deleted:m("event.folderDeleted"),folder_renamed:m("event.folderRenamed"),node_created:m("event.caseCreated"),node_updated:m("event.caseUpdated")}[p]||p}function to(p){return{project:m("kind.project"),client:m("kind.client"),document:m("kind.document"),recipe:m("kind.recipe"),folder:m("kind.folder"),note:m("kind.note"),file:m("kind.file"),archive:m("kind.archive"),case:m("kind.case")}[p]||p||m("kind.case")}function lo(){t(24,W=!0),t(25,X=""),t(26,Q="open_url"),t(27,U="")}function no(){t(24,W=!1),t(25,X=""),t(27,U="")}async function Yt(){if(!(!X.trim()||!U.trim()||!k))try{const p=await $("CreateAction",k.id,Q,X.trim(),U.trim());p&&p.id&&t(13,N=[...N,p]),t(24,W=!1),t(25,X=""),t(27,U="")}catch(p){t(7,v=String(p))}}async function Nl(p){try{await $("DeleteAction",p),t(13,N=N.filter(F=>F.id!==p))}catch(F){t(7,v=String(F))}}function io(p){const F=K.find(ce=>ce.id===p);return F?F.label:p}async function rt(p){try{const F=await $("GetNodeDetail",p);F&&Z(F)}catch(F){t(7,v=String(F))}}async function Dt(){try{t(53,Ne=await $("SyncStatus"))}catch{t(53,Ne={configured:!1,serverUrl:"",deviceId:"",unpushedOps:0,lastSyncAt:"",syncInterval:0})}}function oo(){t(52,ot=!0),t(55,ge=(Ne==null?void 0:Ne.serverUrl)||""),t(56,he=""),t(57,Ee=""),t(58,Pe=(Ne==null?void 0:Ne.syncInterval)||0),t(59,ve="")}function so(){t(52,ot=!1),t(59,ve="")}async function co(){t(54,De=!0),t(59,ve="");try{await $("SyncConfigure",ge,he,Ee),Pe>0&&await $("SyncSetInterval",Pe),t(57,Ee=""),t(56,he=""),await Dt(),t(52,ot=!1)}catch(p){t(59,ve="err: "+String(p))}t(54,De=!1)}async function ro(){t(54,De=!0),t(59,ve="");try{await $("SyncSetInterval",Pe),t(59,ve=m("sync.settingsSaved")),await Dt()}catch(p){t(59,ve="err: "+String(p))}t(54,De=!1)}async function ao(){t(54,De=!0),t(59,ve="");try{await $("SyncTestConnection",ge,he,Ee),t(59,ve="connection ok")}catch(p){t(59,ve="connection failed: "+String(p))}t(54,De=!1)}async function fo(){t(54,De=!0),t(59,ve="");try{await $("SyncDisconnect"),t(59,ve="disconnected"),await Dt()}catch(p){t(59,ve="err: "+String(p))}t(54,De=!1)}async function uo(){t(54,De=!0),t(59,ve="");try{const p=await $("SyncNow");t(59,ve="pushed "+p.pushed+", pulled "+p.pulled+" (seq "+p.serverSequence+")"),await Dt()}catch(p){t(59,ve="err: "+String(p))}t(54,De=!1)}const po=p=>Je(p.id),mo=()=>t(7,v=""),_o=()=>t(7,v=""),vo=()=>t(7,v="");function ko(){S.content=this.value,t(12,S)}const bo=p=>{t(10,C=p.id),p.id==="files"&&k&&ye.length===0&&!ue&&ze(k.id)},ho=()=>{t(10,C="notes"),yl()},wo=()=>{t(10,C="files"),Sl()},yo=()=>t(10,C="worklog"),go=p=>Nt(p),Co=p=>Nt(p);function So(){q=this.value,t(23,q)}const To=p=>p.key==="Enter"&&gl(),No=p=>Nt(p),Do=p=>Nt(p),Mo=p=>{const F=p.detail;F===0?(t(35,de=[]),t(34,ue=null),ze(k.id)):St(F-1)},Io=p=>pt(p.detail),Fo=p=>Ge(p.detail),Eo=p=>$("OpenFile",p.detail),Ao=p=>$("OpenFolder",p.detail),Lo=p=>Tl(p.detail),jo=p=>il(p.detail.id),Po=p=>nl(p.detail),Oo=p=>ol(p.detail),zo=p=>sl(p.detail),xo=p=>al(p.detail),Bo=p=>rl(p.detail),Ro=p=>fl(p.detail),Ho=p=>$("OpenFile",p.detail),Vo=p=>$("RunAction",p.id),Uo=p=>Nl(p.id);function Wo(){z=this.value,t(16,z)}function Ko(){B=xt(this.value),t(15,B)}const Go=p=>rt(p.nodeId),qo=(p,F)=>F.key==="Enter"&&rt(p.nodeId),Yo=p=>rt(p.nodeId),Xo=(p,F)=>F.key==="Enter"&&rt(p.nodeId),Jo=p=>rt(p.nodeId),Zo=(p,F)=>F.key==="Enter"&&rt(p.nodeId),Qo=p=>rt(p.nodeId),$o=(p,F)=>F.key==="Enter"&&rt(p.nodeId),es=()=>t(20,x=null),ts=p=>t(20,x=p);function ls(){L=this.value,t(18,L)}const ns=p=>p.key==="Enter"&&vl(),is=p=>_l(p),os=()=>wl(H.node),ss=()=>kl(H.node),cs=()=>bl(H.node),rs=()=>hl(H.node);function as(){X=this.value,t(25,X)}const fs=p=>p.key==="Enter"&&Yt();function us(){Q=Ds(this),t(26,Q),t(60,K)}function ds(){U=this.value,t(27,U)}const ps=p=>p.key==="Enter"&&Yt(),ms=()=>qt("copy"),_s=()=>qt("link");function vs(){je=this.value,t(50,je)}function ks(){ge=this.value,t(55,ge)}function bs(){he=this.value,t(56,he)}function hs(){Ee=this.value,t(57,Ee)}function ws(){Pe=xt(this.value),t(58,Pe)}return[n,o,s,c,a,_,b,v,h,k,C,T,S,N,I,B,z,D,L,R,x,H,V,q,W,X,Q,U,Y,P,se,we,ee,_e,ue,de,ye,Le,O,J,ae,fe,le,Ke,tt,Xe,be,Be,xe,Se,je,Fe,ot,Ne,De,ge,he,Ee,Pe,ve,K,Oe,Je,Z,ze,pt,Ct,St,Ge,kt,Ci,nl,il,ol,sl,cl,rl,al,fl,Ii,Fi,Ei,pl,ji,Pi,Oi,zi,_l,xi,Bi,vl,Ri,bt,Hi,Vi,Ui,Wi,Ki,kl,bl,hl,wl,yl,Gi,gl,Nt,qi,Yi,Xi,Ji,Sl,Zi,qt,Qi,Tl,eo,to,lo,no,Yt,Nl,io,rt,oo,so,co,ro,ao,fo,uo,po,mo,_o,vo,ko,bo,ho,wo,yo,go,Co,So,To,No,Do,Mo,Io,Fo,Eo,Ao,Lo,jo,Po,Oo,zo,xo,Bo,Ro,Ho,Vo,Uo,Wo,Ko,Go,qo,Yo,Xo,Jo,Zo,Qo,$o,es,ts,ls,ns,is,os,ss,cs,rs,as,fs,us,ds,ps,ms,_s,vs,ks,bs,hs,ws]}class Br extends dt{constructor(e){super(),ut(this,e,xr,zr,ft,{},null,[-1,-1,-1,-1,-1,-1,-1,-1,-1])}}new Br({target:document.getElementById("app")}); diff --git a/cmd/verstak-gui/frontend-dist/index.html b/cmd/verstak-gui/frontend-dist/index.html index 6677894..ff02bfb 100644 --- a/cmd/verstak-gui/frontend-dist/index.html +++ b/cmd/verstak-gui/frontend-dist/index.html @@ -16,8 +16,8 @@ background: #13131f; } - - + +
diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte index 1e470d8..3ab56ad 100644 --- a/frontend/src/App.svelte +++ b/frontend/src/App.svelte @@ -89,6 +89,7 @@ let clipboard = { items: [], mode: 'copy' } let selectedIds = [] let dragIds = [] + let dropRootValid = false let showConfirm = false let confirmTitle = '' @@ -565,11 +566,17 @@ return } showRename = false + const id = renameId renameId = '' try { - await wailsCall('RenameNode', renameId, name) - const parentId = currentFolderId || selectedNode.id - await loadFolder(parentId) + await wailsCall('RenameNode', id, name) + if (selectedNode && selectedNode.id === id) { + selectedNode = { ...selectedNode, title: name } + } + await reloadTreePreservingExpanded() + if (currentFolderId) { + await loadFolder(currentFolderId) + } } catch (e) { error = String(e) } @@ -729,11 +736,11 @@ function handleDragOverRoot(e) { e.preventDefault() e.dataTransfer.dropEffect = 'move' - e.currentTarget.classList.add('drop-valid') + dropRootValid = true } function handleDragLeaveRoot(e) { - e.currentTarget.classList.remove('drop-valid') + dropRootValid = false } // ===== Node operations from context menu ===== @@ -1172,6 +1179,15 @@ } syncLoading = false } + + function onKeyActivate(fn) { + return (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault() + fn() + } + } + }
@@ -1198,6 +1214,8 @@
{#if workspaceTree.length > 0}
@@ -1252,7 +1270,7 @@ {#if error} -
error = ''}> +
error = ''} on:keydown={onKeyActivate(() => error = '')}> {error}
- +