diff --git a/cmd/verstak-gui/bindings_settings.go b/cmd/verstak-gui/bindings_settings.go index 945bf1f..fb62f9c 100644 --- a/cmd/verstak-gui/bindings_settings.go +++ b/cmd/verstak-gui/bindings_settings.go @@ -5,6 +5,7 @@ import ( "os/exec" "path/filepath" + "verstak/internal/core/nodes" "verstak/internal/core/plugins" "verstak/internal/i18n" @@ -117,11 +118,14 @@ func (a *App) OpenFolder(nodeID string) error { if err != nil { return err } - dir := filepath.Join(a.vault, n.FsPath) - if _, err := os.Stat(dir); os.IsNotExist(err) { - dir = a.vault + target := filepath.Join(a.vault, n.FsPath) + if n.Type == nodes.TypeFile { + target = filepath.Dir(target) } - cmd := exec.Command("xdg-open", dir) + if _, err := os.Stat(target); os.IsNotExist(err) { + target = a.vault + } + cmd := exec.Command("xdg-open", target) return cmd.Run() } diff --git a/cmd/verstak-gui/frontend-dist/assets/main-DsSP02cl.css b/cmd/verstak-gui/frontend-dist/assets/main-DsSP02cl.css new file mode 100644 index 0000000..b604755 --- /dev/null +++ b/cmd/verstak-gui/frontend-dist/assets/main-DsSP02cl.css @@ -0,0 +1 @@ +.file-row.svelte-1u905d2.svelte-1u905d2{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-1u905d2.svelte-1u905d2:hover{background:#1e1e30}.file-row--selected.svelte-1u905d2.svelte-1u905d2{background:#1e1e3a;outline:1px solid #3a3a6c}.file-row--selected.svelte-1u905d2.svelte-1u905d2:hover{background:#252545}.file-row.svelte-1u905d2.svelte-1u905d2:focus-visible{outline:2px solid #5588ff;outline-offset:-2px}.file-row-icon.svelte-1u905d2.svelte-1u905d2{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:#888}.file-row-body.svelte-1u905d2.svelte-1u905d2{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.file-row-name.svelte-1u905d2.svelte-1u905d2{font-size:13px;color:#ddd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.file-row-meta.svelte-1u905d2.svelte-1u905d2{display:flex;align-items:center;gap:4px;font-size:11px;color:#666}.meta-sep.svelte-1u905d2.svelte-1u905d2{color:#444}.file-row-actions.svelte-1u905d2.svelte-1u905d2{display:flex;gap:2px;align-items:center;opacity:0;transition:opacity .15s ease;flex-shrink:0}.file-row.svelte-1u905d2:hover .file-row-actions.svelte-1u905d2{opacity:1}.action-btn.svelte-1u905d2.svelte-1u905d2{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-1u905d2.svelte-1u905d2:hover{background:#2a2a3c;color:#ccc}.action-btn-danger.svelte-1u905d2.svelte-1u905d2:hover{background:#3a2222;color:#ff6b6b}.action-btn.svelte-1u905d2.svelte-1u905d2:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.menu-backdrop.svelte-1u905d2.svelte-1u905d2{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.menu.svelte-1u905d2.svelte-1u905d2{position:absolute;right:12px;margin-top:4px;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-1u905d2.svelte-1u905d2{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-1u905d2.svelte-1u905d2:hover{background:#2a2a3c;color:#fff}.menu-item-danger.svelte-1u905d2.svelte-1u905d2{color:#ff6b6b}.menu-item-danger.svelte-1u905d2.svelte-1u905d2:hover{background:#3a2222}.menu-item.svelte-1u905d2.svelte-1u905d2:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.menu-sep.svelte-1u905d2.svelte-1u905d2{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-gydsvv.svelte-gydsvv{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-gydsvv.svelte-gydsvv:hover{background:#223}.tree-item.selected.svelte-gydsvv.svelte-gydsvv{background:#2a2a4a;color:#fff;font-weight:500}.tree-toggle.svelte-gydsvv.svelte-gydsvv{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-gydsvv.svelte-gydsvv:hover{color:#a5b4fc}.tree-toggle-placeholder.svelte-gydsvv.svelte-gydsvv{display:inline-block;width:20px;flex-shrink:0}.tree-icon.svelte-gydsvv.svelte-gydsvv{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-gydsvv.svelte-gydsvv:hover,.tree-item.selected.svelte-gydsvv .tree-icon.svelte-gydsvv{color:#a5b4fc}.tree-label.svelte-gydsvv.svelte-gydsvv{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;line-height:32px}.svelte-gsdfvv.svelte-gsdfvv,.svelte-gsdfvv.svelte-gsdfvv:before,.svelte-gsdfvv.svelte-gsdfvv:after{box-sizing:border-box;margin:0;padding:0}.app.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv{padding:16px 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #2a2a3c;flex-shrink:0}.logo.svelte-gsdfvv.svelte-gsdfvv{font-size:20px;line-height:1}.brand-name.svelte-gsdfvv.svelte-gsdfvv{font-size:16px;font-weight:600}.sidebar-nav.svelte-gsdfvv.svelte-gsdfvv{flex:1;overflow-y:auto;padding:12px 0}.nav-group.svelte-gsdfvv.svelte-gsdfvv{margin-bottom:16px}.nav-label.svelte-gsdfvv.svelte-gsdfvv{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666;padding:4px 20px;margin-bottom:4px}.nav-item.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv:hover{background:#223}.nav-item.selected.svelte-gsdfvv.svelte-gsdfvv{background:#2a2a4a;color:#fff;font-weight:500}.workspace-tree-area.svelte-gsdfvv.svelte-gsdfvv{min-height:32px}.nav-empty.svelte-gsdfvv.svelte-gsdfvv{padding:8px 20px;color:#555;font-size:12px}.nav-label-row.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv{background:none;border:none;color:#666;cursor:pointer;font-size:16px;padding:0 4px;font-family:inherit;line-height:1}.nav-add-btn.svelte-gsdfvv.svelte-gsdfvv:hover{color:#ccc}.tree-item.svelte-gsdfvv.svelte-gsdfvv{display:flex;align-items:center;padding:4px 8px 4px 0;cursor:default;font-size:13px;color:#ccc}.tree-item.svelte-gsdfvv.svelte-gsdfvv:hover{background:#223}.tree-item.selected.svelte-gsdfvv.svelte-gsdfvv{background:#2a2a4a;color:#fff;font-weight:500}.tree-toggle.svelte-gsdfvv.svelte-gsdfvv{background:none;border:none;color:#666;cursor:pointer;padding:2px 4px;font-size:10px;width:20px;text-align:center;flex-shrink:0;font-family:inherit;line-height:1}.tree-toggle.svelte-gsdfvv.svelte-gsdfvv:hover{color:#888}.tree-arrow.svelte-gsdfvv.svelte-gsdfvv{display:inline-block}.tree-spacer.svelte-gsdfvv.svelte-gsdfvv{display:inline-block;width:12px}.tree-label.svelte-gsdfvv.svelte-gsdfvv{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 4px;cursor:pointer}.context-menu-backdrop.svelte-gsdfvv.svelte-gsdfvv{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.context-menu.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv{padding:6px 12px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666}.context-menu-item.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv:hover{background:#223;color:#fff}.context-menu-item.danger.svelte-gsdfvv.svelte-gsdfvv{color:#ff6b6b}.context-menu-item.danger.svelte-gsdfvv.svelte-gsdfvv:hover{background:#3a2222;color:#ff6b6b}.context-menu-divider.svelte-gsdfvv.svelte-gsdfvv{height:1px;background:#2a2a3c;margin:4px 0}.create-context.svelte-gsdfvv.svelte-gsdfvv{font-size:12px;color:#888;margin-bottom:12px}.sidebar-footer.svelte-gsdfvv.svelte-gsdfvv{padding:8px 12px;border-top:1px solid #2a2a3c;flex-shrink:0;display:flex;flex-direction:column;gap:4px}.version.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#555;text-align:center}.main.svelte-gsdfvv.svelte-gsdfvv{flex:1;display:flex;flex-direction:column;height:100vh;min-width:0;overflow:hidden;background:#13131f}.header.svelte-gsdfvv.svelte-gsdfvv{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;flex-shrink:0;min-height:48px}.header-left.svelte-gsdfvv.svelte-gsdfvv{display:flex;align-items:center;gap:8px;flex:1}.header-right.svelte-gsdfvv.svelte-gsdfvv{display:flex;align-items:center;gap:8px}.header-sync-btn.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv:hover{background:#2a2a50;color:#e4e4ef;border-color:#818cf8}.header-sync-btn.svelte-gsdfvv.svelte-gsdfvv:disabled{opacity:.5;cursor:not-allowed}.sync-badge.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv{font-size:14px;font-weight:500}.crumb.placeholder.svelte-gsdfvv.svelte-gsdfvv{color:#666}.crumb-type.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#555;background:#1e1e2e;padding:2px 8px;border-radius:10px;margin-left:8px}.error-banner.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv{background:none;border:none;color:#f66;cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:2px}.dismiss-btn.svelte-gsdfvv.svelte-gsdfvv:hover{color:#f44}.tabs.svelte-gsdfvv.svelte-gsdfvv{display:flex;border-bottom:1px solid #2a2a3c;flex-shrink:0;padding:0 24px}.tab.svelte-gsdfvv.svelte-gsdfvv{padding:10px 16px;border:none;background:none;color:#888;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;font-family:inherit}.tab.svelte-gsdfvv.svelte-gsdfvv:hover{color:#a5b4fc}.tab.active.svelte-gsdfvv.svelte-gsdfvv{color:#e4e4ef;border-bottom-color:#6366f1;background:#6366f10f;font-weight:500}.tab-content.svelte-gsdfvv.svelte-gsdfvv{flex:1;overflow-y:auto}.note-editor.svelte-gsdfvv.svelte-gsdfvv{flex:1;display:flex;flex-direction:column;height:100%}.note-editor-header.svelte-gsdfvv.svelte-gsdfvv{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;gap:12px;flex-shrink:0}.note-title.svelte-gsdfvv.svelte-gsdfvv{font-size:16px;font-weight:500}.dirty-mark.svelte-gsdfvv.svelte-gsdfvv{color:#f59e0b;font-size:10px}.note-editor-actions.svelte-gsdfvv.svelte-gsdfvv{margin-left:auto;display:flex;gap:8px}.note-textarea.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv{padding:24px}.overview.svelte-gsdfvv h2.svelte-gsdfvv{font-size:24px;margin-bottom:16px}.meta-grid.svelte-gsdfvv.svelte-gsdfvv{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}.meta-item.svelte-gsdfvv.svelte-gsdfvv{background:#1a1a28;padding:12px 16px;border-radius:8px}.meta-label.svelte-gsdfvv.svelte-gsdfvv{display:block;font-size:11px;color:#666;margin-bottom:4px;text-transform:uppercase}.quick-actions.svelte-gsdfvv.svelte-gsdfvv{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.qa-btn.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv:hover{background:#223}.qa-btn.svelte-gsdfvv.svelte-gsdfvv:disabled{opacity:.4;cursor:not-allowed}.recent-section.svelte-gsdfvv.svelte-gsdfvv{margin-bottom:24px}.recent-section.svelte-gsdfvv h3.svelte-gsdfvv{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:8px}.recent-note.svelte-gsdfvv.svelte-gsdfvv{padding:8px 12px;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between}.recent-note.svelte-gsdfvv.svelte-gsdfvv:hover{background:#1a1a28}.recent-date.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#555}.recent-entry.svelte-gsdfvv.svelte-gsdfvv{padding:6px 0;font-size:13px;color:#888;border-bottom:1px solid #1a1a28}.notes-tab.svelte-gsdfvv.svelte-gsdfvv{padding:24px}.tab-toolbar.svelte-gsdfvv.svelte-gsdfvv{margin-bottom:16px}.create-form.svelte-gsdfvv.svelte-gsdfvv{background:#1a1a28;padding:16px;border-radius:8px;margin-bottom:16px}.create-form.svelte-gsdfvv input.svelte-gsdfvv{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-gsdfvv input.svelte-gsdfvv:focus{outline:none;border-color:#6366f1}.form-actions.svelte-gsdfvv.svelte-gsdfvv{display:flex;gap:8px}.notes-list.svelte-gsdfvv.svelte-gsdfvv{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.note-card.svelte-gsdfvv.svelte-gsdfvv{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:16px;cursor:pointer}.note-card.svelte-gsdfvv.svelte-gsdfvv:hover{border-color:#3a3a5c}.note-card-title.svelte-gsdfvv.svelte-gsdfvv{font-size:14px;font-weight:500;margin-bottom:4px}.note-card-date.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#555}.worklog-tab.svelte-gsdfvv.svelte-gsdfvv{padding:24px}.worklog-form.svelte-gsdfvv.svelte-gsdfvv{display:flex;gap:8px;margin-bottom:24px;align-items:center}.worklog-form.svelte-gsdfvv input.svelte-gsdfvv{padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit}.worklog-form.svelte-gsdfvv input.svelte-gsdfvv:focus{outline:none;border-color:#6366f1}.worklog-form.svelte-gsdfvv input[type=text].svelte-gsdfvv{flex:1}.worklog-form.svelte-gsdfvv input[type=number].svelte-gsdfvv{width:70px}.worklog-entry.svelte-gsdfvv.svelte-gsdfvv{padding:12px 0;border-bottom:1px solid #1a1a28}.wl-meta.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#555;margin-top:2px}.actions-tab.svelte-gsdfvv.svelte-gsdfvv{padding:24px}.action-card.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.action-title.svelte-gsdfvv.svelte-gsdfvv{font-weight:500}.action-type.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px;white-space:nowrap}.action-data.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv{display:flex;gap:4px;flex-shrink:0}.action-btns.svelte-gsdfvv .btn-danger.svelte-gsdfvv{color:#ff6b6b;border-color:#4a2222;padding:4px 8px}.action-btns.svelte-gsdfvv .btn-danger.svelte-gsdfvv:hover{background:#3a2222}.empty-state.svelte-gsdfvv.svelte-gsdfvv{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-state.svelte-gsdfvv p.svelte-gsdfvv{margin:0;font-size:14px;color:#666}.empty-state.svelte-gsdfvv .empty-icon.svelte-gsdfvv{margin-bottom:12px;color:#444}.empty-state.svelte-gsdfvv .hint.svelte-gsdfvv{font-size:12px;color:#555;margin-top:6px}.empty-state.svelte-gsdfvv .empty-actions.svelte-gsdfvv{display:flex;gap:8px;justify-content:center;margin-top:16px}.empty-note.svelte-gsdfvv.svelte-gsdfvv{font-size:12px;color:#444;margin-top:16px}.welcome.svelte-gsdfvv.svelte-gsdfvv{padding:48px 24px;text-align:center}.welcome.svelte-gsdfvv h2.svelte-gsdfvv{font-size:32px;font-weight:300;color:#8888a4;margin-bottom:16px}.welcome.svelte-gsdfvv p.svelte-gsdfvv{color:#666;font-size:14px}.error-text.svelte-gsdfvv.svelte-gsdfvv{color:#f88}.fab.svelte-gsdfvv.svelte-gsdfvv{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:#6366f1;color:#fff;font-size:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px #6366f166}.fab.svelte-gsdfvv.svelte-gsdfvv:hover{background:#4f46e5}.modal-overlay.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;padding:24px;width:400px;max-width:90vw}.modal.svelte-gsdfvv h3.svelte-gsdfvv{font-size:18px;margin-bottom:16px}.form-group.svelte-gsdfvv.svelte-gsdfvv{margin-bottom:12px}.form-group.svelte-gsdfvv label.svelte-gsdfvv{display:block;font-size:12px;color:#666;margin-bottom:4px}.form-group.svelte-gsdfvv input.svelte-gsdfvv,.form-group.svelte-gsdfvv select.svelte-gsdfvv{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-gsdfvv select.svelte-gsdfvv{-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-gsdfvv input.svelte-gsdfvv:focus,.form-group.svelte-gsdfvv select.svelte-gsdfvv:focus{outline:none;border-color:#6366f1}.modal-actions.svelte-gsdfvv.svelte-gsdfvv{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.btn.svelte-gsdfvv.svelte-gsdfvv{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit}.btn.svelte-gsdfvv.svelte-gsdfvv:hover{background:#223}.btn-primary.svelte-gsdfvv.svelte-gsdfvv{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-gsdfvv.svelte-gsdfvv:hover{background:#4f46e5}.btn.svelte-gsdfvv.svelte-gsdfvv:disabled{opacity:.4;cursor:not-allowed}.btn-sm.svelte-gsdfvv.svelte-gsdfvv{padding:4px 10px;font-size:12px}.btn-danger.svelte-gsdfvv.svelte-gsdfvv{color:#ff6b6b;border-color:#4a2222}.btn-danger.svelte-gsdfvv.svelte-gsdfvv:hover{background:#3a2222}.files-tab.svelte-gsdfvv.svelte-gsdfvv{padding:20px}.files-tab.svelte-gsdfvv .tab-toolbar.svelte-gsdfvv{display:flex;gap:8px;align-items:center;margin-bottom:16px}.file-list.svelte-gsdfvv.svelte-gsdfvv{display:flex;flex-direction:column}.back-btn.svelte-gsdfvv.svelte-gsdfvv{margin-bottom:4px;display:inline-flex;align-items:center;gap:4px}.import-summary.svelte-gsdfvv.svelte-gsdfvv{margin-bottom:16px}.summary-row.svelte-gsdfvv.svelte-gsdfvv{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;border-bottom:1px solid #2a2a3c}.summary-warn.svelte-gsdfvv.svelte-gsdfvv{margin-top:8px;padding:8px 12px;background:#3a2a22;border-radius:6px;color:#fa6;font-size:13px}.rename-error.svelte-gsdfvv.svelte-gsdfvv{color:#ff6b6b;font-size:12px;margin-top:4px}.template-cards.svelte-gsdfvv.svelte-gsdfvv{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.template-card.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv:hover{background:#1e1e30;border-color:#3a3a5c}.template-card.selected.svelte-gsdfvv.svelte-gsdfvv{background:#2a2a50;border-color:#6366f1;color:#e4e4ef}.template-card-text.svelte-gsdfvv.svelte-gsdfvv{display:flex;flex-direction:column;gap:2px;min-width:0}.template-card-title.svelte-gsdfvv.svelte-gsdfvv{font-weight:500}.template-card-desc.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#888}.today-dashboard.svelte-gsdfvv.svelte-gsdfvv{padding:24px;overflow-y:auto;flex:1}.today-header.svelte-gsdfvv.svelte-gsdfvv{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.today-header.svelte-gsdfvv h2.svelte-gsdfvv{font-size:24px}.today-date.svelte-gsdfvv.svelte-gsdfvv{font-size:13px;color:#666}.today-summary.svelte-gsdfvv.svelte-gsdfvv{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.summary-chip.svelte-gsdfvv.svelte-gsdfvv{font-size:12px;color:#b0b0c0;background:#1a1a28;border:1px solid #2a2a3c;padding:4px 12px;border-radius:16px}.today-case.svelte-gsdfvv.svelte-gsdfvv{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;margin-bottom:12px;overflow:hidden}.today-case-header.svelte-gsdfvv.svelte-gsdfvv{padding:12px 16px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #2a2a3c;cursor:pointer}.today-case-header.svelte-gsdfvv.svelte-gsdfvv:hover{background:#1e1e30}.today-case-title.svelte-gsdfvv.svelte-gsdfvv{font-weight:500}.today-case-type.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px}.today-case-count.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#6366f1;margin-left:4px}.today-case-time.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#555;margin-left:auto}.today-events.svelte-gsdfvv.svelte-gsdfvv{padding:8px 16px}.today-event.svelte-gsdfvv.svelte-gsdfvv{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:#b0b0c0;cursor:pointer}.today-event.svelte-gsdfvv.svelte-gsdfvv:hover{color:#e4e4ef}.today-event-icon.svelte-gsdfvv.svelte-gsdfvv{width:18px;text-align:center;color:#6366f1;font-size:13px}.today-event-title.svelte-gsdfvv.svelte-gsdfvv{flex:1}.today-event-type.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#666}.today-event-time.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#555;margin-left:auto}.today-events-empty.svelte-gsdfvv.svelte-gsdfvv{padding:8px 16px;font-size:13px;color:#666;font-style:italic}.today-empty.svelte-gsdfvv.svelte-gsdfvv{padding:48px 24px;text-align:center}.today-empty.svelte-gsdfvv p.svelte-gsdfvv{color:#666;font-size:14px;margin:0}.today-empty.svelte-gsdfvv .hint.svelte-gsdfvv{font-size:12px;color:#555;margin-top:8px}.today-timeline.svelte-gsdfvv.svelte-gsdfvv{margin-top:24px}.today-timeline.svelte-gsdfvv h3.svelte-gsdfvv{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:12px}.timeline-event.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv:hover{color:#e4e4ef}.timeline-dot.svelte-gsdfvv.svelte-gsdfvv{width:6px;height:6px;border-radius:50%;background:#6366f1;margin-left:-19px;flex-shrink:0}.timeline-title.svelte-gsdfvv.svelte-gsdfvv{flex:1}.timeline-type.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#666}.timeline-time.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#555}.activity-tab.svelte-gsdfvv.svelte-gsdfvv{padding:24px}.activity-events.svelte-gsdfvv.svelte-gsdfvv{display:flex;flex-direction:column;gap:2px}.activity-event.svelte-gsdfvv.svelte-gsdfvv{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;color:#b0b0c0;cursor:pointer}.activity-event.svelte-gsdfvv.svelte-gsdfvv:hover{background:#1a1a28;color:#e4e4ef}.activity-event-icon.svelte-gsdfvv.svelte-gsdfvv{width:18px;text-align:center;color:#6366f1;font-size:13px;flex-shrink:0}.activity-event-title.svelte-gsdfvv.svelte-gsdfvv{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-event-type.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#666;flex-shrink:0}.activity-event-target.svelte-gsdfvv.svelte-gsdfvv{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px;flex-shrink:0}.activity-event-time.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#555;margin-left:8px;flex-shrink:0}.activity-feed.svelte-gsdfvv.svelte-gsdfvv{padding:24px;overflow-y:auto;flex:1}.activity-feed-header.svelte-gsdfvv.svelte-gsdfvv{margin-bottom:20px}.activity-feed-header.svelte-gsdfvv h2.svelte-gsdfvv{font-size:24px}.activity-feed-events.svelte-gsdfvv.svelte-gsdfvv{display:flex;flex-direction:column;gap:2px}.activity-feed-event.svelte-gsdfvv.svelte-gsdfvv{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer}.activity-feed-event.svelte-gsdfvv.svelte-gsdfvv:hover{background:#1a1a28;color:#e4e4ef}.activity-feed-icon.svelte-gsdfvv.svelte-gsdfvv{width:20px;text-align:center;color:#6366f1;font-size:14px;flex-shrink:0;margin-top:1px}.activity-feed-body.svelte-gsdfvv.svelte-gsdfvv{flex:1;min-width:0}.activity-feed-title.svelte-gsdfvv.svelte-gsdfvv{font-size:14px;color:#e4e4ef}.activity-feed-meta.svelte-gsdfvv.svelte-gsdfvv{display:flex;align-items:center;gap:8px;margin-top:2px}.activity-feed-type.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#666}.activity-feed-target.svelte-gsdfvv.svelte-gsdfvv{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px}.activity-feed-time.svelte-gsdfvv.svelte-gsdfvv{font-size:11px;color:#555}.sidebar-sync-btn.svelte-gsdfvv.svelte-gsdfvv{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-gsdfvv.svelte-gsdfvv:hover{background:#2a2a50;color:#e4e4ef;border-color:#818cf8}.sidebar-sync-label.svelte-gsdfvv.svelte-gsdfvv{flex:1;text-align:left}.sync-dot.svelte-gsdfvv.svelte-gsdfvv{width:8px;height:8px;border-radius:50%;background:#4a4a4a;flex-shrink:0}.sync-dot.active.svelte-gsdfvv.svelte-gsdfvv{background:#4ade80;box-shadow:0 0 6px #4ade8080}.modal-sync.svelte-gsdfvv.svelte-gsdfvv{width:460px}.sync-status.svelte-gsdfvv.svelte-gsdfvv{background:#13131f;border-radius:8px;padding:12px;margin-bottom:16px}.sync-row.svelte-gsdfvv.svelte-gsdfvv{display:flex;justify-content:space-between;padding:4px 0;font-size:13px}.sync-label.svelte-gsdfvv.svelte-gsdfvv{color:#666}.sync-value.svelte-gsdfvv.svelte-gsdfvv{color:#e4e4ef}.sync-value.mono.svelte-gsdfvv.svelte-gsdfvv{font-family:SF Mono,Fira Code,monospace;font-size:12px}.sync-result.svelte-gsdfvv.svelte-gsdfvv{font-size:12px;color:#6366f1;padding:4px 0}.sync-connected-actions.svelte-gsdfvv.svelte-gsdfvv{display:flex;gap:8px;margin-bottom:16px} diff --git a/cmd/verstak-gui/frontend-dist/assets/main-flblZtvd.js b/cmd/verstak-gui/frontend-dist/assets/main-flblZtvd.js new file mode 100644 index 0000000..a1fbb14 --- /dev/null +++ b/cmd/verstak-gui/frontend-dist/assets/main-flblZtvd.js @@ -0,0 +1,3 @@ +var fo=Object.defineProperty;var uo=(l,e,t)=>e in l?fo(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t;var qt=(l,e,t)=>uo(l,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))n(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const r of o.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function t(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(s){if(s.ep)return;s.ep=!0;const o=t(s);fetch(s.href,o)}})();function ee(){}function li(l){return l()}function Cl(){return Object.create(null)}function ue(l){l.forEach(li)}function ni(l){return typeof l=="function"}function at(l,e){return l!=l?e==e:l!==e||l&&typeof l=="object"||typeof l=="function"}let It;function Lt(l,e){return l===e?!0:(It||(It=document.createElement("a")),It.href=e,l===It.href)}function vo(l){return Object.keys(l).length===0}function mo(l){return l??""}function c(l,e){l.appendChild(e)}function y(l,e,t){l.insertBefore(e,t||null)}function k(l){l.parentNode&&l.parentNode.removeChild(l)}function Re(l,e){for(let t=0;tl.removeEventListener(e,t,n)}function Qt(l){return function(e){return e.preventDefault(),l.call(this,e)}}function Ze(l){return function(e){return e.stopPropagation(),l.call(this,e)}}function mt(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 jt(l){return l===""?null:+l}function po(l){return Array.from(l.childNodes)}function q(l,e){e=""+e,l.data!==e&&(l.data=e)}function Fe(l,e){l.value=e??""}function Ke(l,e,t,n){t==null?l.style.removeProperty(e):l.style.setProperty(e,t,"")}function Sl(l,e,t){for(let n=0;n{const s=l.$$.callbacks[e];if(s){const o=go(e,t,{cancelable:n});return s.slice().forEach(r=>{r.call(l,o)}),!o.defaultPrevented}return!0}}function oi(l,e){const t=l.$$.callbacks[e.type];t&&t.slice().forEach(n=>n.call(this,e))}const kt=[],Tl=[];let yt=[];const Nl=[],ho=Promise.resolve();let Xt=!1;function bo(){Xt||(Xt=!0,ho.then(ri))}function Pt(l){yt.push(l)}const Yt=new Set;let bt=0;function ri(){if(bt!==0)return;const l=Dt;do{try{for(;btl.indexOf(n)===-1?e.push(n):t.push(n)),t.forEach(n=>n()),yt=e}const Mt=new Set;let vt;function Ue(){vt={r:0,c:[],p:vt}}function We(){vt.r||ue(vt.c),vt=vt.p}function te(l,e){l&&l.i&&(Mt.delete(l),l.i(e))}function ne(l,e,t,n){if(l&&l.o){if(Mt.has(l))return;Mt.add(l),vt.c.push(()=>{Mt.delete(l),n&&(t&&l.d(1),n())}),l.o(e)}else n&&n()}function ce(l){return(l==null?void 0:l.length)!==void 0?l:Array.from(l)}function wo(l,e){ne(l,1,1,()=>{e.delete(l.key)})}function Co(l,e,t,n,s,o,r,a,f,v,g,_){let p=l.length,b=o.length,h=p;const T={};for(;h--;)T[l[h].key]=h;const S=[],C=new Map,N=new Map,F=[];for(h=b;h--;){const A=_(s,o,h),E=t(A);let U=r.get(E);U?F.push(()=>U.p(A,e)):(U=v(E,A),U.c()),C.set(E,S[h]=U),E in T&&N.set(E,Math.abs(h-T[E]))}const D=new Set,H=new Set;function M(A){te(A,1),A.m(a,g),r.set(A.key,A),g=A.first,b--}for(;p&&b;){const A=S[b-1],E=l[p-1],U=A.key,B=E.key;A===E?(g=A.first,p--,b--):C.has(B)?!r.has(U)||D.has(U)?M(A):H.has(B)?p--:N.get(U)>N.get(B)?(H.add(U),M(A)):(D.add(B),p--):(f(E,r),p--)}for(;p--;){const A=l[p];C.has(A.key)||f(A,r)}for(;b;)M(S[b-1]);return ue(F),S}function Qe(l){l&&l.c()}function Xe(l,e,t){const{fragment:n,after_update:s}=l.$$;n&&n.m(e,t),Pt(()=>{const o=l.$$.on_mount.map(li).filter(ni);l.$$.on_destroy?l.$$.on_destroy.push(...o):ue(o),l.$$.on_mount=[]}),s.forEach(Pt)}function Je(l,e){const t=l.$$;t.fragment!==null&&(yo(t.after_update),ue(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function So(l,e){l.$$.dirty[0]===-1&&(kt.push(l),bo(),l.$$.dirty.fill(0)),l.$$.dirty[e/31|0]|=1<{const h=b.length?b[0]:p;return v.ctx&&s(v.ctx[_],v.ctx[_]=h)&&(!v.skip_bound&&v.bound[_]&&v.bound[_](h),g&&So(l,_)),p}):[],v.update(),g=!0,ue(v.before_update),v.fragment=n?n(v.ctx):!1,e.target){if(e.hydrate){const _=po(e.target);v.fragment&&v.fragment.l(_),_.forEach(k)}else v.fragment&&v.fragment.c();e.intro&&te(l.$$.fragment),Xe(l,e.target,e.anchor),ri()}Nt(f)}class dt{constructor(){qt(this,"$$");qt(this,"$$set")}$destroy(){Je(this,1),this.$destroy=ee}$on(e,t){if(!ni(t))return ee;const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{const s=n.indexOf(t);s!==-1&&n.splice(s,1)}}$set(e){this.$$set&&!vo(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const To="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(To);function No(l){let e,t;return{c(){e=O("path"),t=O("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,s){y(n,e,s),y(n,t,s)},d(n){n&&(k(e),k(t))}}}function Do(l){let e,t,n,s,o;return{c(){e=O("path"),t=O("polyline"),n=O("line"),s=O("line"),o=O("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(s,"x1","16"),i(s,"y1","17"),i(s,"x2","8"),i(s,"y2","17"),i(o,"points","10 9 9 9 8 9")},m(r,a){y(r,e,a),y(r,t,a),y(r,n,a),y(r,s,a),y(r,o,a)},d(r){r&&(k(e),k(t),k(n),k(s),k(o))}}}function Fo(l){let e,t;return{c(){e=O("polyline"),t=O("polyline"),i(e,"points","16 18 22 12 16 6"),i(t,"points","8 6 2 12 8 18")},m(n,s){y(n,e,s),y(n,t,s)},d(n){n&&(k(e),k(t))}}}function Io(l){let e,t,n,s;return{c(){e=O("path"),t=O("polyline"),n=O("line"),s=O("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(s,"x","10"),i(s,"y","12"),i(s,"width","4"),i(s,"height","4"),i(s,"rx","1")},m(o,r){y(o,e,r),y(o,t,r),y(o,n,r),y(o,s,r)},d(o){o&&(k(e),k(t),k(n),k(s))}}}function Mo(l){let e,t,n,s,o;return{c(){e=O("path"),t=O("polyline"),n=O("line"),s=O("line"),o=O("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(s,"x1","9"),i(s,"y1","15"),i(s,"x2","13"),i(s,"y2","15"),i(o,"x1","12"),i(o,"y1","15"),i(o,"x2","12"),i(o,"y2","18")},m(r,a){y(r,e,a),y(r,t,a),y(r,n,a),y(r,s,a),y(r,o,a)},d(r){r&&(k(e),k(t),k(n),k(s),k(o))}}}function Ao(l){let e,t,n,s,o,r;return{c(){e=O("path"),t=O("polyline"),n=O("line"),s=O("line"),o=O("line"),r=O("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(s,"x1","8"),i(s,"y1","16"),i(s,"x2","16"),i(s,"y2","16"),i(o,"x1","8"),i(o,"y1","14"),i(o,"x2","12"),i(o,"y2","14"),i(r,"x1","12"),i(r,"y1","12"),i(r,"x2","12"),i(r,"y2","18")},m(a,f){y(a,e,f),y(a,t,f),y(a,n,f),y(a,s,f),y(a,o,f),y(a,r,f)},d(a){a&&(k(e),k(t),k(n),k(s),k(o),k(r))}}}function Eo(l){let e,t,n,s;return{c(){e=O("path"),t=O("polyline"),n=O("line"),s=O("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(s,"x1","16"),i(s,"y1","17"),i(s,"x2","8"),i(s,"y2","17")},m(o,r){y(o,e,r),y(o,t,r),y(o,n,r),y(o,s,r)},d(o){o&&(k(e),k(t),k(n),k(s))}}}function Lo(l){let e,t,n,s,o;return{c(){e=O("path"),t=O("polyline"),n=O("line"),s=O("line"),o=O("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(s,"x1","8"),i(s,"y1","16"),i(s,"x2","16"),i(s,"y2","16"),i(o,"x1","8"),i(o,"y1","14"),i(o,"x2","12"),i(o,"y2","14")},m(r,a){y(r,e,a),y(r,t,a),y(r,n,a),y(r,s,a),y(r,o,a)},d(r){r&&(k(e),k(t),k(n),k(s),k(o))}}}function jo(l){let e,t,n;return{c(){e=O("path"),t=O("circle"),n=O("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(s,o){y(s,e,o),y(s,t,o),y(s,n,o)},d(s){s&&(k(e),k(t),k(n))}}}function Po(l){let e,t;return{c(){e=O("rect"),t=O("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,s){y(n,e,s),y(n,t,s)},d(n){n&&(k(e),k(t))}}}function Oo(l){let e,t,n;return{c(){e=O("rect"),t=O("circle"),n=O("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(s,o){y(s,e,o),y(s,t,o),y(s,n,o)},d(s){s&&(k(e),k(t),k(n))}}}function zo(l){let e;return{c(){e=O("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&&k(e)}}}function Bo(l){let e;function t(o,r){return o[0]==="folder"?zo:o[0]==="image"?Oo:o[0]==="video"?Po:o[0]==="audio"?jo:o[0]==="pdf"?Lo:o[0]==="document"?Eo:o[0]==="spreadsheet"?Ao:o[0]==="presentation"?Mo:o[0]==="archive"?Io:o[0]==="code"?Fo:o[0]==="text"?Do:No}let n=t(l),s=n(l);return{c(){e=O("svg"),s.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(o,r){y(o,e,r),s.m(e,null)},p(o,[r]){n!==(n=t(o))&&(s.d(1),s=n(o),s&&(s.c(),s.m(e,null))),r&2&&i(e,"width",o[1]),r&2&&i(e,"height",o[1])},i:ee,o:ee,d(o){o&&k(e),s.d()}}}function Ro(l,e,t){let{kind:n="generic"}=e,{size:s=20}=e;return l.$$set=o=>{"kind"in o&&t(0,n=o.kind),"size"in o&&t(1,s=o.size)},[n,s]}class ci extends dt{constructor(e){super(),ft(this,e,Ro,Bo,at,{kind:0,size:1})}}const Ho={"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":"Срок действия токена истёк"},Vo={"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.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"},Dl={ru:Ho,en:Vo};let Fl="ru";function m(l,e){var s;const t=Dl[Fl];let n=t==null?void 0:t[l];if(n==null&&Fl!=="ru"&&(n=(s=Dl.ru)==null?void 0:s[l]),n==null&&(n=l),e!=null)for(const[o,r]of Object.entries(e))n=n.replace(`{${o}}`,String(r));return n}function Ot(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 Jt={"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 Il(l){return l?Jt[l]||l:m("mime.unknown")}function Uo(l){if(l.type==="folder")return m("mime.folder");const e=(l.mime||"").toLowerCase();if(Jt[e])return Jt[e];const n=(l.name||"").toLowerCase().split(".").pop();return n?n.toUpperCase():m("mime.file")}function ai(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 Wo=["image/jpeg","image/png","image/gif","image/webp","image/bmp","image/tiff","image/avif","image/svg+xml"],Ko=["text/plain","text/html","text/css","text/javascript","application/json","application/xml","application/x-yaml","text/x-shellscript"],Go=["txt","log","conf","ini","yaml","yml","json","xml","csv","sh","py","js","ts","css","html","md","markdown","cfg"],qo=["jpg","jpeg","png","gif","webp","bmp","tiff","tif","avif","svg"];function fi(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return Wo.includes(e)||qo.includes(n)}function di(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return Ko.includes(e)||Go.includes(n)&&n!=="md"&&n!=="markdown"}function ui(l){return(l.mime||"").toLowerCase().includes("pdf")}function vi(l){const e=(l.name||"").toLowerCase();return e.endsWith(".md")||e.endsWith(".markdown")}function Yo(l){return fi(l)||ui(l)}function Xo(l){return di(l)||vi(l)}function Jo(l){let e,t,n,s=Ot(l[0].size)+"",o;return{c(){e=d("span"),e.textContent="·",t=w(),n=d("span"),o=j(s),i(e,"class","meta-sep svelte-1u905d2")},m(r,a){y(r,e,a),y(r,t,a),y(r,n,a),c(n,o)},p(r,a){a&1&&s!==(s=Ot(r[0].size)+"")&&q(o,s)},d(r){r&&(k(e),k(t),k(n))}}}function Zo(l){let e,t,n,s,o;return{c(){e=d("button"),e.innerHTML='',t=w(),n=d("button"),n.innerHTML='',i(e,"class","action-btn svelte-1u905d2"),i(e,"title",m("file.openFolder")),i(e,"aria-label",m("file.openFolder")),i(n,"class","action-btn svelte-1u905d2"),i(n,"title",m("file.showInExplorer")),i(n,"aria-label",m("file.showInExplorer"))},m(r,a){y(r,e,a),y(r,t,a),y(r,n,a),s||(o=[L(e,"click",Ze(l[27])),L(n,"click",Ze(l[9]))],s=!0)},p:ee,d(r){r&&(k(e),k(t),k(n)),s=!1,ue(o)}}}function Qo(l){let e,t,n,s,o,r,a;return{c(){e=d("button"),e.innerHTML='',t=w(),n=d("button"),n.innerHTML='',s=w(),o=d("button"),o.innerHTML='',i(e,"class","action-btn svelte-1u905d2"),i(e,"title",m("file.preview")),i(e,"aria-label",m("file.preview")),i(n,"class","action-btn svelte-1u905d2"),i(n,"title",m("file.openExternal")),i(n,"aria-label",m("file.openExternal")),i(o,"class","action-btn svelte-1u905d2"),i(o,"title",m("file.showInExplorer")),i(o,"aria-label",m("file.showInExplorer"))},m(f,v){y(f,e,v),y(f,t,v),y(f,n,v),y(f,s,v),y(f,o,v),r||(a=[L(e,"click",Ze(l[26])),L(n,"click",Ze(l[8])),L(o,"click",Ze(l[9]))],r=!0)},p:ee,d(f){f&&(k(e),k(t),k(n),k(s),k(o)),r=!1,ue(a)}}}function Ml(l){let e,t,n,s,o,r,a,f,v=m("common.open")+"",g,_,p,b,h,T,S,C,N=m("file.openExternal")+"",F,D,H,M,A,E,U=m("file.showInExplorer")+"",B,z,R,V,G,J,K,P,W,Z=m("common.rename")+"",Y,ke,$,se,x,ve,ie,re=m("common.duplicate")+"",ae,Ge,Le,Se,je,me,le,Oe,Ve,lt=m("common.cut")+"",xe,qe,pe,Ie,Te,Ce,Ne,he=m("common.copy")+"",be,Pe,ye,He,Me,Ee,_e,ge,fe,Be=m("common.delete")+"",ze,De,Ae;return{c(){e=d("div"),t=w(),n=d("div"),s=d("button"),o=O("svg"),r=O("path"),a=O("circle"),f=w(),g=j(v),_=w(),p=d("button"),b=O("svg"),h=O("path"),T=O("polyline"),S=O("line"),C=w(),F=j(N),D=w(),H=d("button"),M=O("svg"),A=O("path"),E=w(),B=j(U),z=w(),R=d("div"),V=w(),G=d("button"),J=O("svg"),K=O("path"),P=O("path"),W=w(),Y=j(Z),ke=w(),$=d("button"),se=O("svg"),x=O("rect"),ve=O("path"),ie=w(),ae=j(re),Ge=w(),Le=d("button"),Se=O("svg"),je=O("circle"),me=O("circle"),le=O("line"),Oe=O("line"),Ve=w(),xe=j(lt),qe=w(),pe=d("button"),Ie=O("svg"),Te=O("rect"),Ce=O("path"),Ne=w(),be=j(he),Pe=w(),ye=d("div"),He=w(),Me=d("button"),Ee=O("svg"),_e=O("polyline"),ge=O("path"),fe=w(),ze=j(Be),i(e,"class","menu-backdrop svelte-1u905d2"),i(e,"role","presentation"),i(r,"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(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(s,"class","menu-item svelte-1u905d2"),i(s,"role","menuitem"),i(h,"d","M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"),i(T,"points","15 3 21 3 21 9"),i(S,"x1","10"),i(S,"y1","14"),i(S,"x2","21"),i(S,"y2","3"),i(b,"width","14"),i(b,"height","14"),i(b,"viewBox","0 0 24 24"),i(b,"fill","none"),i(b,"stroke","currentColor"),i(b,"stroke-width","2"),i(b,"stroke-linecap","round"),i(b,"stroke-linejoin","round"),i(p,"class","menu-item svelte-1u905d2"),i(p,"role","menuitem"),i(A,"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(M,"width","14"),i(M,"height","14"),i(M,"viewBox","0 0 24 24"),i(M,"fill","none"),i(M,"stroke","currentColor"),i(M,"stroke-width","2"),i(M,"stroke-linecap","round"),i(M,"stroke-linejoin","round"),i(H,"class","menu-item svelte-1u905d2"),i(H,"role","menuitem"),i(R,"class","menu-sep svelte-1u905d2"),i(K,"d","M12 20h9"),i(P,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"),i(J,"width","14"),i(J,"height","14"),i(J,"viewBox","0 0 24 24"),i(J,"fill","none"),i(J,"stroke","currentColor"),i(J,"stroke-width","2"),i(J,"stroke-linecap","round"),i(J,"stroke-linejoin","round"),i(G,"class","menu-item svelte-1u905d2"),i(G,"role","menuitem"),i(x,"x","9"),i(x,"y","9"),i(x,"width","13"),i(x,"height","13"),i(x,"rx","2"),i(x,"ry","2"),i(ve,"d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"),i(se,"width","14"),i(se,"height","14"),i(se,"viewBox","0 0 24 24"),i(se,"fill","none"),i(se,"stroke","currentColor"),i(se,"stroke-width","2"),i(se,"stroke-linecap","round"),i(se,"stroke-linejoin","round"),i($,"class","menu-item svelte-1u905d2"),i($,"role","menuitem"),i(je,"cx","6"),i(je,"cy","6"),i(je,"r","3"),i(me,"cx","6"),i(me,"cy","18"),i(me,"r","3"),i(le,"x1","20"),i(le,"y1","4"),i(le,"x2","8.12"),i(le,"y2","15.88"),i(Oe,"x1","8.12"),i(Oe,"y1","8.12"),i(Oe,"x2","20"),i(Oe,"y2","20"),i(Se,"width","14"),i(Se,"height","14"),i(Se,"viewBox","0 0 24 24"),i(Se,"fill","none"),i(Se,"stroke","currentColor"),i(Se,"stroke-width","2"),i(Se,"stroke-linecap","round"),i(Se,"stroke-linejoin","round"),i(Le,"class","menu-item svelte-1u905d2"),i(Le,"role","menuitem"),i(Te,"x","9"),i(Te,"y","9"),i(Te,"width","13"),i(Te,"height","13"),i(Te,"rx","2"),i(Te,"ry","2"),i(Ce,"d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"),i(Ie,"width","14"),i(Ie,"height","14"),i(Ie,"viewBox","0 0 24 24"),i(Ie,"fill","none"),i(Ie,"stroke","currentColor"),i(Ie,"stroke-width","2"),i(Ie,"stroke-linecap","round"),i(Ie,"stroke-linejoin","round"),i(pe,"class","menu-item svelte-1u905d2"),i(pe,"role","menuitem"),i(ye,"class","menu-sep svelte-1u905d2"),i(_e,"points","3 6 5 6 21 6"),i(ge,"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(Ee,"width","14"),i(Ee,"height","14"),i(Ee,"viewBox","0 0 24 24"),i(Ee,"fill","none"),i(Ee,"stroke","currentColor"),i(Ee,"stroke-width","2"),i(Ee,"stroke-linecap","round"),i(Ee,"stroke-linejoin","round"),i(Me,"class","menu-item menu-item-danger svelte-1u905d2"),i(Me,"role","menuitem"),i(n,"class","menu svelte-1u905d2"),i(n,"role","menu")},m($e,X){y($e,e,X),y($e,t,X),y($e,n,X),c(n,s),c(s,o),c(o,r),c(o,a),c(s,f),c(s,g),c(n,_),c(n,p),c(p,b),c(b,h),c(b,T),c(b,S),c(p,C),c(p,F),c(n,D),c(n,H),c(H,M),c(M,A),c(H,E),c(H,B),c(n,z),c(n,R),c(n,V),c(n,G),c(G,J),c(J,K),c(J,P),c(G,W),c(G,Y),c(n,ke),c(n,$),c($,se),c(se,x),c(se,ve),c($,ie),c($,ae),c(n,Ge),c(n,Le),c(Le,Se),c(Se,je),c(Se,me),c(Se,le),c(Se,Oe),c(Le,Ve),c(Le,xe),c(n,qe),c(n,pe),c(pe,Ie),c(Ie,Te),c(Ie,Ce),c(pe,Ne),c(pe,be),c(n,Pe),c(n,ye),c(n,He),c(n,Me),c(Me,Ee),c(Ee,_e),c(Ee,ge),c(Me,fe),c(Me,ze),De||(Ae=[L(e,"click",Ze(l[17])),L(s,"click",l[15]),L(p,"click",l[8]),L(H,"click",l[9]),L(G,"click",l[11]),L($,"click",l[12]),L(Le,"click",l[13]),L(pe,"click",l[14]),L(Me,"click",l[10]),L(n,"click",Ze(l[25]))],De=!0)},p:ee,d($e){$e&&(k(e),k(t),k(n)),De=!1,ue(Ae)}}}function xo(l){let e,t,n,s,o,r,a=l[0].name+"",f,v,g,_,p,b,h,T,S,C,N,F,D,H,M,A,E,U,B,z,R,V;n=new ci({props:{kind:l[4],size:22}});let G=!l[5]&&Jo(l);function J(Z,Y){return Z[5]?Zo:Qo}let P=J(l)(l),W=l[2]&&Ml(l);return{c(){e=d("div"),t=d("div"),Qe(n.$$.fragment),s=w(),o=d("div"),r=d("div"),f=j(a),g=w(),_=d("div"),p=d("span"),p.textContent=`${l[6]}`,b=w(),G&&G.c(),h=w(),T=d("div"),P.c(),S=w(),C=d("button"),N=O("svg"),F=O("circle"),D=O("circle"),H=O("circle"),M=w(),A=d("button"),A.innerHTML='',U=w(),W&&W.c(),B=tt(),i(t,"class","file-row-icon svelte-1u905d2"),i(r,"class","file-row-name svelte-1u905d2"),i(r,"title",v=l[0].name),i(_,"class","file-row-meta svelte-1u905d2"),i(o,"class","file-row-body svelte-1u905d2"),i(F,"cx","12"),i(F,"cy","5"),i(F,"r","2"),i(D,"cx","12"),i(D,"cy","12"),i(D,"r","2"),i(H,"cx","12"),i(H,"cy","19"),i(H,"r","2"),i(N,"width","16"),i(N,"height","16"),i(N,"viewBox","0 0 24 24"),i(N,"fill","currentColor"),i(C,"class","action-btn svelte-1u905d2"),i(C,"title",m("file.more")),i(C,"aria-label",m("file.more")),i(C,"aria-expanded",l[2]),i(A,"class","action-btn action-btn-danger svelte-1u905d2"),i(A,"title",m("common.delete")),i(A,"aria-label",m("common.delete")),i(T,"class","file-row-actions svelte-1u905d2"),i(e,"class","file-row svelte-1u905d2"),i(e,"role","button"),i(e,"tabindex","0"),i(e,"draggable","true"),i(e,"aria-label",E=l[5]?m("file.ariaFolder")+" "+l[0].name:m("file.ariaFile")+" "+l[0].name),it(e,"file-row--selected",l[1])},m(Z,Y){y(Z,e,Y),c(e,t),Xe(n,t,null),c(e,s),c(e,o),c(o,r),c(r,f),c(o,g),c(o,_),c(_,p),c(_,b),G&&G.m(_,null),c(e,h),c(e,T),P.m(T,null),c(T,S),c(T,C),c(C,N),c(N,F),c(N,D),c(N,H),c(T,M),c(T,A),y(Z,U,Y),W&&W.m(Z,Y),y(Z,B,Y),z=!0,R||(V=[L(window,"click",l[17]),L(C,"click",Ze(l[16])),L(A,"click",Ze(l[10])),L(e,"click",l[7]),L(e,"contextmenu",l[21]),L(e,"dragstart",l[18]),L(e,"dragover",l[19]),L(e,"drop",l[20])],R=!0)},p(Z,[Y]){(!z||Y&1)&&a!==(a=Z[0].name+"")&&q(f,a),(!z||Y&1&&v!==(v=Z[0].name))&&i(r,"title",v),Z[5]||G.p(Z,Y),P.p(Z,Y),(!z||Y&4)&&i(C,"aria-expanded",Z[2]),(!z||Y&1&&E!==(E=Z[5]?m("file.ariaFolder")+" "+Z[0].name:m("file.ariaFile")+" "+Z[0].name))&&i(e,"aria-label",E),(!z||Y&2)&&it(e,"file-row--selected",Z[1]),Z[2]?W?W.p(Z,Y):(W=Ml(Z),W.c(),W.m(B.parentNode,B)):W&&(W.d(1),W=null)},i(Z){z||(te(n.$$.fragment,Z),z=!0)},o(Z){ne(n.$$.fragment,Z),z=!1},d(Z){Z&&(k(e),k(U),k(B)),Je(n),G&&G.d(),P.d(),W&&W.d(Z),R=!1,ue(V)}}}function $o(l,e,t){let{item:n}=e,{selected:s=!1}=e,{onDragStart:o}=e,{onDragOver:r}=e,{onDrop:a}=e;const f=zt(),v=ai(n),g=n.type==="folder",_=Uo(n);let p=!1,b=null;function h(K){K.ctrlKey||K.metaKey?f("toggleSelect",n.id):K.shiftKey?f("rangeSelect",n.id):b?(clearTimeout(b),b=null,g?f("navigate",n.id):f("preview",n)):b=setTimeout(()=>{b=null,f("selectOne",n.id)},250)}function T(){f("openExternal",n.fileId)}function S(){f("showInFolder",n.nodeId||n.id)}function C(){t(2,p=!1),f("delete",{id:n.id,type:n.type})}function N(){t(2,p=!1),f("rename",{id:n.id,name:n.name})}function F(){t(2,p=!1),f("duplicate",n.id)}function D(){t(2,p=!1),f("cut",n.id)}function H(){t(2,p=!1),f("copy",n.id)}function M(){t(2,p=!1),g?f("navigate",n.id):f("preview",n)}function A(){t(2,p=!p)}function E(){t(2,p=!1)}function U(K){o&&o(K,n.id)}function B(K){r&&g&&r(K,n.id)}function z(K){a&&g&&a(K,n.id)}function R(K){K.preventDefault(),t(2,p=!0)}function V(K){oi.call(this,l,K)}const G=()=>f("preview",n),J=()=>f("navigate",n.id);return l.$$set=K=>{"item"in K&&t(0,n=K.item),"selected"in K&&t(1,s=K.selected),"onDragStart"in K&&t(22,o=K.onDragStart),"onDragOver"in K&&t(23,r=K.onDragOver),"onDrop"in K&&t(24,a=K.onDrop)},[n,s,p,f,v,g,_,h,T,S,C,N,F,D,H,M,A,E,U,B,z,R,o,r,a,V,G,J]}class er extends dt{constructor(e){super(),ft(this,e,$o,xo,at,{item:0,selected:1,onDragStart:22,onDragOver:23,onDrop:24})}}function Al(l,e,t){const n=l.slice();return n[4]=e[t],n[6]=t,n}function tr(l){let e;return{c(){e=d("span"),e.textContent="/",i(e,"class","sep svelte-csi2lb")},m(t,n){y(t,e,n)},d(t){t&&k(e)}}}function lr(l){let e,t=l[4].name+"",n,s,o;function r(){return l[2](l[6])}return{c(){e=d("button"),n=j(t),i(e,"class","crumb crumb--link svelte-csi2lb")},m(a,f){y(a,e,f),c(e,n),s||(o=L(e,"click",r),s=!0)},p(a,f){l=a,f&1&&t!==(t=l[4].name+"")&&q(n,t)},d(a){a&&k(e),s=!1,o()}}}function nr(l){let e,t=l[4].name+"",n;return{c(){e=d("span"),n=j(t),i(e,"class","crumb crumb--current svelte-csi2lb")},m(s,o){y(s,e,o),c(e,n)},p(s,o){o&1&&t!==(t=s[4].name+"")&&q(n,t)},d(s){s&&k(e)}}}function El(l){let e,t,n=l[6]>0&&tr();function s(a,f){return a[6]===a[0].length-1?nr:lr}let o=s(l),r=o(l);return{c(){n&&n.c(),e=w(),r.c(),t=tt()},m(a,f){n&&n.m(a,f),y(a,e,f),r.m(a,f),y(a,t,f)},p(a,f){o===(o=s(a))&&r?r.p(a,f):(r.d(1),r=o(a),r&&(r.c(),r.m(t.parentNode,t)))},d(a){a&&(k(e),k(t)),n&&n.d(a),r.d(a)}}}function ir(l){let e,t=ce(l[0]),n=[];for(let s=0;so(a);return l.$$set=a=>{"crumbs"in a&&t(0,n=a.crumbs)},[n,o,r]}class mi extends dt{constructor(e){super(),ft(this,e,sr,ir,at,{crumbs:0})}}function or(l){let e,t,n,s,o,r;return{c(){e=d("div"),t=d("p"),t.textContent=`${m("file.previewUnavailable")}`,n=w(),s=d("button"),s.textContent=`${m("file.openExternal")}`,i(s,"class","btn btn-sm svelte-1cw3u0m"),i(e,"class","preview-status svelte-1cw3u0m")},m(a,f){y(a,e,f),c(e,t),c(e,n),c(e,s),o||(r=L(s,"click",l[9]),o=!0)},p:ee,d(a){a&&k(e),o=!1,r()}}}function rr(l){let e,t;function n(r,a){return a&2&&(e=null),e==null&&(e=!!(r[1]&&r[1].startsWith("data:"))),e?vr:ur}let s=n(l,-1),o=s(l);return{c(){o.c(),t=tt()},m(r,a){o.m(r,a),y(r,t,a)},p(r,a){s===(s=n(r,a))&&o?o.p(r,a):(o.d(1),o=s(r),o&&(o.c(),o.m(t.parentNode,t)))},d(r){r&&k(t),o.d(r)}}}function cr(l){let e,t,n;return{c(){e=d("pre"),t=d("code"),n=j(l[1]),i(e,"class","preview-text svelte-1cw3u0m")},m(s,o){y(s,e,o),c(e,t),c(t,n)},p(s,o){o&2&&q(n,s[1])},d(s){s&&k(e)}}}function ar(l){let e,t,n,s;return{c(){e=d("div"),t=d("img"),Lt(t.src,n=l[1])||i(t,"src",n),i(t,"alt",s=l[0].name),i(t,"class","preview-image svelte-1cw3u0m"),i(e,"class","preview-image-container svelte-1cw3u0m")},m(o,r){y(o,e,r),c(e,t)},p(o,r){r&2&&!Lt(t.src,n=o[1])&&i(t,"src",n),r&1&&s!==(s=o[0].name)&&i(t,"alt",s)},d(o){o&&k(e)}}}function fr(l){let e,t,n,s,o,r,a;return{c(){e=d("div"),t=d("p"),n=j(l[3]),s=w(),o=d("button"),o.textContent=`${m("file.openExternal")}`,i(o,"class","btn btn-sm svelte-1cw3u0m"),i(e,"class","preview-status svelte-1cw3u0m")},m(f,v){y(f,e,v),c(e,t),c(t,n),c(e,s),c(e,o),r||(a=L(o,"click",l[9]),r=!0)},p(f,v){v&8&&q(n,f[3])},d(f){f&&k(e),r=!1,a()}}}function dr(l){let e,t;return{c(){e=d("div"),t=d("p"),t.textContent=`${m("common.loading")}`,i(e,"class","preview-status svelte-1cw3u0m")},m(n,s){y(n,e,s),c(e,t)},p:ee,d(n){n&&k(e)}}}function ur(l){let e,t,n,s,o,r;return{c(){e=d("div"),t=d("p"),t.textContent=`${m("file.pdfUnavailable")}`,n=w(),s=d("button"),s.textContent=`${m("file.openExternal")}`,i(s,"class","btn btn-sm svelte-1cw3u0m"),i(e,"class","preview-status svelte-1cw3u0m")},m(a,f){y(a,e,f),c(e,t),c(e,n),c(e,s),o||(r=L(s,"click",l[9]),o=!0)},p:ee,d(a){a&&k(e),o=!1,r()}}}function vr(l){let e,t,n;return{c(){e=d("div"),t=d("embed"),Lt(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(s,o){y(s,e,o),c(e,t)},p(s,o){o&2&&!Lt(t.src,n=s[1])&&i(t,"src",n)},d(s){s&&k(e)}}}function mr(l){let e,t,n,s,o,r,a,f=l[0].name+"",v,g,_,p,b=Ot(l[0].size)+"",h,T,S=Il(l[0].mime)+"",C,N,F,D,H,M,A,E,U,B,z,R;o=new ci({props:{kind:l[8],size:18}});function V(K,P){return K[2]?dr:K[3]?fr:K[6]&&K[1]?ar:K[5]&&K[1]?cr:K[4]?rr:or}let G=V(l),J=G(l);return{c(){e=d("div"),t=d("div"),n=d("header"),s=d("div"),Qe(o.$$.fragment),r=w(),a=d("span"),v=j(f),_=w(),p=d("div"),h=j(b),T=j(" · "),C=j(S),N=w(),F=d("div"),D=d("button"),D.innerHTML='',H=w(),M=d("button"),M.innerHTML='',A=w(),E=d("div"),J.c(),i(a,"class","preview-name svelte-1cw3u0m"),i(a,"title",g=l[0].name),i(s,"class","preview-title svelte-1cw3u0m"),i(p,"class","preview-meta svelte-1cw3u0m"),i(D,"class","action-btn svelte-1cw3u0m"),i(D,"title",m("file.openExternal")),i(D,"aria-label",m("file.openExternal")),i(M,"class","action-btn action-btn-close svelte-1cw3u0m"),i(M,"title","Close"),i(M,"aria-label","Close preview"),i(F,"class","preview-actions svelte-1cw3u0m"),i(n,"class","preview-header svelte-1cw3u0m"),i(E,"class","preview-body svelte-1cw3u0m"),i(t,"class","modal svelte-1cw3u0m"),i(e,"class","overlay svelte-1cw3u0m"),i(e,"role","dialog"),i(e,"aria-modal","true"),i(e,"aria-label",U=`Preview: ${l[0].name}`)},m(K,P){y(K,e,P),c(e,t),c(t,n),c(n,s),Xe(o,s,null),c(s,r),c(s,a),c(a,v),c(n,_),c(n,p),c(p,h),c(p,T),c(p,C),c(n,N),c(n,F),c(F,D),c(F,H),c(F,M),c(t,A),c(t,E),J.m(E,null),B=!0,z||(R=[L(D,"click",l[9]),L(M,"click",l[10]),L(e,"click",mt(l[11]))],z=!0)},p(K,[P]){(!B||P&1)&&f!==(f=K[0].name+"")&&q(v,f),(!B||P&1&&g!==(g=K[0].name))&&i(a,"title",g),(!B||P&1)&&b!==(b=Ot(K[0].size)+"")&&q(h,b),(!B||P&1)&&S!==(S=Il(K[0].mime)+"")&&q(C,S),G===(G=V(K))&&J?J.p(K,P):(J.d(1),J=G(K),J&&(J.c(),J.m(E,null))),(!B||P&1&&U!==(U=`Preview: ${K[0].name}`))&&i(e,"aria-label",U)},i(K){B||(te(o.$$.fragment,K),B=!0)},o(K){ne(o.$$.fragment,K),B=!1},d(K){K&&k(e),Je(o),J.d(),z=!1,ue(R)}}}function pr(l,e,t){let n,s,o,{item:r}=e,{content:a=""}=e,{loading:f=!1}=e,{error:v=""}=e;const g=zt(),_=ai(r);function p(S){S.key==="Escape"&&g("close")}function b(){g("openExternal",r.fileId)}ii(()=>{window.addEventListener("keydown",p)}),si(()=>{window.removeEventListener("keydown",p)});const h=()=>g("close"),T=()=>g("close");return l.$$set=S=>{"item"in S&&t(0,r=S.item),"content"in S&&t(1,a=S.content),"loading"in S&&t(2,f=S.loading),"error"in S&&t(3,v=S.error)},l.$$.update=()=>{l.$$.dirty&3&&t(6,n=fi(r)&&a&&a.startsWith("data:")),l.$$.dirty&1&&t(5,s=di(r)||vi(r)),l.$$.dirty&1&&t(4,o=ui(r))},[r,a,f,v,o,s,n,g,_,b,h,T]}class _r extends dt{constructor(e){super(),ft(this,e,pr,mr,at,{item:0,content:1,loading:2,error:3})}}function gr(l){let e,t,n,s,o,r,a,f,v,g,_,p,b,h,T,S,C;return{c(){e=d("div"),t=d("div"),n=d("h3"),s=j(l[0]),o=w(),r=d("p"),a=j(l[1]),f=w(),v=d("div"),g=d("button"),_=j(l[2]),b=w(),h=d("button"),T=j(l[3]),i(n,"class","svelte-1fv6yyk"),i(r,"class","message svelte-1fv6yyk"),i(g,"class",p="btn "+(l[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk"),i(h,"class","btn svelte-1fv6yyk"),i(v,"class","actions svelte-1fv6yyk"),i(t,"class","modal svelte-1fv6yyk"),i(e,"class","overlay svelte-1fv6yyk"),i(e,"role","dialog"),i(e,"aria-modal","true"),i(e,"aria-label",l[0])},m(N,F){y(N,e,F),c(e,t),c(t,n),c(n,s),c(t,o),c(t,r),c(r,a),c(t,f),c(t,v),c(v,g),c(g,_),c(v,b),c(v,h),c(h,T),S||(C=[L(g,"click",l[6]),L(h,"click",l[7]),L(e,"click",mt(l[8]))],S=!0)},p(N,[F]){F&1&&q(s,N[0]),F&2&&q(a,N[1]),F&4&&q(_,N[2]),F&16&&p!==(p="btn "+(N[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk")&&i(g,"class",p),F&8&&q(T,N[3]),F&1&&i(e,"aria-label",N[0])},i:ee,o:ee,d(N){N&&k(e),S=!1,ue(C)}}}function hr(l,e,t){let{title:n=m("common.confirm")}=e,{message:s=""}=e,{confirmText:o=m("common.delete")}=e,{cancelText:r=m("common.cancel")}=e,{danger:a=!1}=e;const f=zt(),v=()=>f("confirm"),g=()=>f("cancel"),_=()=>f("cancel");return l.$$set=p=>{"title"in p&&t(0,n=p.title),"message"in p&&t(1,s=p.message),"confirmText"in p&&t(2,o=p.confirmText),"cancelText"in p&&t(3,r=p.cancelText),"danger"in p&&t(4,a=p.danger)},[n,s,o,r,a,f,v,g,_]}class br extends dt{constructor(e){super(),ft(this,e,hr,gr,at,{title:0,message:1,confirmText:2,cancelText:3,danger:4})}}function kr(l){let e,t,n;return{c(){e=O("circle"),t=O("line"),n=O("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(s,o){y(s,e,o),y(s,t,o),y(s,n,o)},d(s){s&&(k(e),k(t),k(n))}}}function yr(l){let e,t,n,s;return{c(){e=O("rect"),t=O("polyline"),n=O("line"),s=O("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(s,"x1","16"),i(s,"y1","5"),i(s,"x2","16"),i(s,"y2","19")},m(o,r){y(o,e,r),y(o,t,r),y(o,n,r),y(o,s,r)},d(o){o&&(k(e),k(t),k(n),k(s))}}}function wr(l){let e,t;return{c(){e=O("path"),t=O("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,s){y(n,e,s),y(n,t,s)},d(n){n&&(k(e),k(t))}}}function Cr(l){let e,t;return{c(){e=O("path"),t=O("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,s){y(n,e,s),y(n,t,s)},d(n){n&&(k(e),k(t))}}}function Sr(l){let e,t,n,s,o;return{c(){e=O("path"),t=O("path"),n=O("line"),s=O("line"),o=O("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(s,"x1","8"),i(s,"y1","11"),i(s,"x2","14"),i(s,"y2","11"),i(o,"x1","8"),i(o,"y1","15"),i(o,"x2","12"),i(o,"y2","15")},m(r,a){y(r,e,a),y(r,t,a),y(r,n,a),y(r,s,a),y(r,o,a)},d(r){r&&(k(e),k(t),k(n),k(s),k(o))}}}function Tr(l){let e,t,n,s;return{c(){e=O("path"),t=O("polyline"),n=O("line"),s=O("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(s,"x1","16"),i(s,"y1","17"),i(s,"x2","8"),i(s,"y2","17")},m(o,r){y(o,e,r),y(o,t,r),y(o,n,r),y(o,s,r)},d(o){o&&(k(e),k(t),k(n),k(s))}}}function Nr(l){let e,t;return{c(){e=O("path"),t=O("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,s){y(n,e,s),y(n,t,s)},d(n){n&&(k(e),k(t))}}}function Dr(l){let e,t,n,s;return{c(){e=O("rect"),t=O("rect"),n=O("rect"),s=O("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(s,"x","3"),i(s,"y","14"),i(s,"width","7"),i(s,"height","7"),i(s,"rx","1")},m(o,r){y(o,e,r),y(o,t,r),y(o,n,r),y(o,s,r)},d(o){o&&(k(e),k(t),k(n),k(s))}}}function Fr(l){let e;return{c(){e=O("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&&k(e)}}}function Ir(l){let e;function t(o,r){return o[0]==="folder"?Fr:o[0]==="project"?Dr:o[0]==="client"?Nr:o[0]==="document"?Tr:o[0]==="recipe"?Sr:o[0]==="note"?Cr:o[0]==="file"?wr:o[0]==="case"?yr:kr}let n=t(l),s=n(l);return{c(){e=O("svg"),s.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(o,r){y(o,e,r),s.m(e,null)},p(o,[r]){n!==(n=t(o))&&(s.d(1),s=n(o),s&&(s.c(),s.m(e,null))),r&2&&i(e,"width",o[1]),r&2&&i(e,"height",o[1])},i:ee,o:ee,d(o){o&&k(e),s.d()}}}function Mr(l,e,t){let{kind:n="generic"}=e,{size:s=18}=e;return l.$$set=o=>{"kind"in o&&t(0,n=o.kind),"size"in o&&t(1,s=o.size)},[n,s]}class Bt extends dt{constructor(e){super(),ft(this,e,Mr,Ir,at,{kind:0,size:1})}}function Ll(l,e,t){const n=l.slice();return n[30]=e[t],n}function Ar(l){let e;return{c(){e=d("span"),i(e,"class","tree-toggle-placeholder svelte-gydsvv")},m(t,n){y(t,e,n)},p:ee,d(t){t&&k(e)}}}function Er(l){let e,t,n=l[1][l[30].id]?"▾":"▸",s,o,r;function a(){return l[15](l[30])}return{c(){e=d("button"),t=d("span"),s=j(n),i(t,"class","tree-arrow"),i(e,"class","tree-toggle svelte-gydsvv")},m(f,v){y(f,e,v),c(e,t),c(t,s),o||(r=L(e,"click",Ze(a)),o=!0)},p(f,v){l=f,v[0]&3&&n!==(n=l[1][l[30].id]?"▾":"▸")&&q(s,n)},d(f){f&&k(e),o=!1,r()}}}function jl(l){let e,t;return e=new _i({props:{nodes:l[30].children||[],expanded:l[1],selectedNodeId:l[2],level:l[3]+1,onSelect:l[4],onToggle:l[5],onContextMenu:l[6],onDrop:l[7]}}),{c(){Qe(e.$$.fragment)},m(n,s){Xe(e,n,s),t=!0},p(n,s){const o={};s[0]&1&&(o.nodes=n[30].children||[]),s[0]&2&&(o.expanded=n[1]),s[0]&4&&(o.selectedNodeId=n[2]),s[0]&8&&(o.level=n[3]+1),s[0]&16&&(o.onSelect=n[4]),s[0]&32&&(o.onToggle=n[5]),s[0]&64&&(o.onContextMenu=n[6]),s[0]&128&&(o.onDrop=n[7]),e.$set(o)},i(n){t||(te(e.$$.fragment,n),t=!0)},o(n){ne(e.$$.fragment,n),t=!1},d(n){Je(e,n)}}}function Pl(l){let e,t,n,s,o,r,a,f=l[30].title+"",v,g,_=l[1][l[30].id]&&Zt(l[30]),p,b,h,T;function S(V,G){return G[0]&1&&(t=null),t==null&&(t=!!At(V[30])),t?Er:Ar}let C=S(l,[-1,-1]),N=C(l);o=new Bt({props:{kind:Ol(l[30]),size:16}});function F(...V){return l[16](l[30],...V)}function D(){return l[17](l[30])}function H(...V){return l[18](l[30],...V)}function M(...V){return l[19](l[30],...V)}function A(...V){return l[20](l[30],...V)}function E(...V){return l[21](l[30],...V)}function U(...V){return l[22](l[30],...V)}function B(...V){return l[23](l[30],...V)}function z(...V){return l[24](l[30],...V)}let R=_&&jl(l);return{c(){e=d("div"),N.c(),n=w(),s=d("span"),Qe(o.$$.fragment),r=w(),a=d("span"),v=j(f),g=w(),R&&R.c(),p=tt(),i(s,"class","tree-icon svelte-gydsvv"),i(a,"class","tree-label svelte-gydsvv"),i(e,"class","tree-item svelte-gydsvv"),Ke(e,"padding-left",l[3]*16+4+"px"),i(e,"draggable","true"),it(e,"selected",l[2]===l[30].id)},m(V,G){y(V,e,G),N.m(e,null),c(e,n),c(e,s),Xe(o,s,null),c(e,r),c(e,a),c(a,v),y(V,g,G),R&&R.m(V,G),y(V,p,G),b=!0,h||(T=[L(s,"click",F),L(s,"dblclick",Ze(l[14])),L(a,"click",Ze(D)),L(e,"dragstart",H),L(e,"dragover",M),L(e,"dragleave",A),L(e,"drop",E),L(e,"click",U),L(e,"dblclick",B),L(e,"contextmenu",Qt(z))],h=!0)},p(V,G){l=V,C===(C=S(l,G))&&N?N.p(l,G):(N.d(1),N=C(l),N&&(N.c(),N.m(e,n)));const J={};G[0]&1&&(J.kind=Ol(l[30])),o.$set(J),(!b||G[0]&1)&&f!==(f=l[30].title+"")&&q(v,f),(!b||G[0]&8)&&Ke(e,"padding-left",l[3]*16+4+"px"),(!b||G[0]&5)&&it(e,"selected",l[2]===l[30].id),G[0]&3&&(_=l[1][l[30].id]&&Zt(l[30])),_?R?(R.p(l,G),G[0]&3&&te(R,1)):(R=jl(l),R.c(),te(R,1),R.m(p.parentNode,p)):R&&(Ue(),ne(R,1,1,()=>{R=null}),We())},i(V){b||(te(o.$$.fragment,V),te(R),b=!0)},o(V){ne(o.$$.fragment,V),ne(R),b=!1},d(V){V&&(k(e),k(g),k(p)),N.d(),Je(o),R&&R.d(V),h=!1,ue(T)}}}function Lr(l){let e,t,n=ce(l[0]),s=[];for(let r=0;rne(s[r],1,1,()=>{s[r]=null});return{c(){for(let r=0;r0:l.has_children===!0}function pi(l,e){if(!l.children)return!1;for(const t of l.children)if(t.id===e||pi(t,e))return!0;return!1}function zl(l){try{return l.dataTransfer.getData("text/plain")}catch{return""}}function jr(l,e){l.stopPropagation(),l.dataTransfer.effectAllowed="move",l.dataTransfer.setData("text/plain",e.id)}function Pr(l,e,t){let{nodes:n=[]}=e,{expanded:s={}}=e,{selectedNodeId:o=""}=e,{level:r=0}=e,{onSelect:a}=e,{onToggle:f}=e,{onContextMenu:v}=e,{onDrop:g}=e,_={},p=null;const b=["folder","project","client","document","recipe","case"];function h(P){return b.includes(P.type)}function T(P,W){return!(!P||!W||W===P.id||!h(P)||pi(P,W))}function S(P,W){const Z=zl(P);if(!T(W,Z))return;P.preventDefault(),P.stopPropagation(),P.dataTransfer.dropEffect="move",P.currentTarget.classList.add("drop-valid"),At(W)&&!s[W.id]&&!_[W.id]&&(_[W.id]=setTimeout(()=>{f&&f(W.id),delete _[W.id]},500));const Y=P.currentTarget.closest(".workspace-tree-area");if(Y){const ke=Y.getBoundingClientRect(),$=30;P.clientY-ke.top<$?p||(p=setInterval(()=>{Y.scrollTop-=10},50)):ke.bottom-P.clientY<$?p||(p=setInterval(()=>{Y.scrollTop+=10},50)):p&&(clearInterval(p),p=null)}}function C(P){P.currentTarget.classList.remove("drop-valid");const W=P.currentTarget.dataset.nodeId;W&&_[W]&&(clearTimeout(_[W]),delete _[W]),p&&(clearInterval(p),p=null)}function N(P,W){P.preventDefault(),P.stopPropagation(),P.currentTarget.classList.remove("drop-valid"),_[W.id]&&(clearTimeout(_[W.id]),delete _[W.id]),p&&(clearInterval(p),p=null);const Z=zl(P);T(W,Z)&&g&&g(Z,W.id)}function F(P,W){P.target.closest(".tree-toggle")||P.target.closest(".tree-icon")||a&&a(W)}function D(P,W){At(W)&&f&&f(W.id)}function H(P,W){P.stopPropagation(),At(W)&&f&&f(W.id)}function M(P){oi.call(this,l,P)}const A=P=>f&&f(P.id),E=(P,W)=>H(W,P),U=P=>a&&a(P),B=(P,W)=>jr(W,P),z=(P,W)=>S(W,P),R=(P,W)=>C(W),V=(P,W)=>N(W,P),G=(P,W)=>F(W,P),J=(P,W)=>D(W,P),K=(P,W)=>v&&v(W,P);return l.$$set=P=>{"nodes"in P&&t(0,n=P.nodes),"expanded"in P&&t(1,s=P.expanded),"selectedNodeId"in P&&t(2,o=P.selectedNodeId),"level"in P&&t(3,r=P.level),"onSelect"in P&&t(4,a=P.onSelect),"onToggle"in P&&t(5,f=P.onToggle),"onContextMenu"in P&&t(6,v=P.onContextMenu),"onDrop"in P&&t(7,g=P.onDrop)},[n,s,o,r,a,f,v,g,S,C,N,F,D,H,M,A,E,U,B,z,R,V,G,J,K]}class _i extends dt{constructor(e){super(),ft(this,e,Pr,Lr,at,{nodes:0,expanded:1,selectedNodeId:2,level:3,onSelect:4,onToggle:5,onContextMenu:6,onDrop:7},null,[-1,-1])}}function Bl(l,e,t){const n=l.slice();return n[219]=e[t],n}function Rl(l,e,t){const n=l.slice();return n[222]=e[t],n}function Hl(l,e,t){const n=l.slice();return n[222]=e[t],n}function Vl(l,e,t){const n=l.slice();return n[243]=e[t],n}function Ul(l,e,t){const n=l.slice();return n[243]=e[t],n}function Wl(l,e,t){const n=l.slice();return n[251]=e[t],n}function Kl(l,e,t){const n=l.slice();return n[243]=e[t],n}function Gl(l,e,t){const n=l.slice();return n[243]=e[t],n}function ql(l,e,t){const n=l.slice();return n[227]=e[t],n}function Yl(l,e,t){const n=l.slice();return n[238]=e[t],n}function Xl(l,e,t){const n=l.slice();return n[235]=e[t],n}function Jl(l,e,t){const n=l.slice();return n[230]=e[t],n}function Zl(l,e,t){const n=l.slice();return n[227]=e[t],n}function Ql(l,e,t){const n=l.slice();return n[230]=e[t],n}function xl(l,e,t){const n=l.slice();return n[246]=e[t],n}function $l(l,e,t){const n=l.slice();return n[258]=e[t],n}function en(l,e,t){const n=l.slice();return n[261]=e[t],n}function tn(l){let e,t=l[261].label+"",n,s,o,r,a;function f(){return l[128](l[261])}return{c(){e=d("button"),n=j(t),s=w(),i(e,"class",o="nav-item "+(l[8]===l[261].id?"selected":"")+" svelte-gsdfvv")},m(v,g){y(v,e,g),c(e,n),c(e,s),r||(a=L(e,"click",f),r=!0)},p(v,g){l=v,g[0]&1&&t!==(t=l[261].label+"")&&q(n,t),g[0]&257&&o!==(o="nav-item "+(l[8]===l[261].id?"selected":"")+" svelte-gsdfvv")&&i(e,"class",o)},d(v){v&&k(e),r=!1,a()}}}function Or(l){let e;return{c(){e=d("div"),e.textContent=`${m("nav.noNodes")}`,i(e,"class","nav-empty svelte-gsdfvv")},m(t,n){y(t,e,n)},p:ee,i:ee,o:ee,d(t){t&&k(e)}}}function zr(l){var r;let e,t,n,s,o;return t=new _i({props:{nodes:l[1],expanded:l[32],selectedNodeId:((r=l[9])==null?void 0:r.id)||"",onSelect:l[62],onToggle:l[92],onContextMenu:l[90],onDrop:l[93]}}),{c(){e=d("div"),Qe(t.$$.fragment),i(e,"class","workspace-tree-area svelte-gsdfvv")},m(a,f){y(a,e,f),Xe(t,e,null),n=!0,s||(o=[L(e,"dragover",Qt(Fc)),L(e,"drop",l[94])],s=!0)},p(a,f){var g;const v={};f[0]&2&&(v.nodes=a[1]),f[1]&2&&(v.expanded=a[32]),f[0]&512&&(v.selectedNodeId=((g=a[9])==null?void 0:g.id)||""),t.$set(v)},i(a){n||(te(t.$$.fragment,a),n=!0)},o(a){ne(t.$$.fragment,a),n=!1},d(a){a&&k(e),Je(t),s=!1,ue(o)}}}function Br(l){let e;return{c(){e=d("span"),e.textContent=`${m("nav.selectPrompt")}`,i(e,"class","crumb placeholder svelte-gsdfvv")},m(t,n){y(t,e,n)},p:ee,d(t){t&&k(e)}}}function Rr(l){let e,t=ce(l[0]),n=[];for(let s=0;s0&&sn(l);return{c(){e=d("button"),t=O("svg"),n=O("polyline"),s=O("polyline"),o=O("path"),r=w(),v&&v.c(),i(n,"points","23 4 23 10 17 10"),i(n,"class","svelte-gsdfvv"),i(s,"points","1 20 1 14 7 14"),i(s,"class","svelte-gsdfvv"),i(o,"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(o,"class","svelte-gsdfvv"),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-gsdfvv"),i(e,"class","header-sync-btn svelte-gsdfvv"),e.disabled=l[53],i(e,"title",m("nav.syncNow"))},m(g,_){y(g,e,_),c(e,t),c(t,n),c(t,s),c(t,o),c(e,r),v&&v.m(e,null),a||(f=L(e,"click",l[127]),a=!0)},p(g,_){g[52].unpushedOps>0?v?v.p(g,_):(v=sn(g),v.c(),v.m(e,null)):v&&(v.d(1),v=null),_[1]&4194304&&(e.disabled=g[53])},d(g){g&&k(e),v&&v.d(),a=!1,f()}}}function sn(l){let e,t=l[52].unpushedOps+"",n;return{c(){e=d("span"),n=j(t),i(e,"class","sync-badge svelte-gsdfvv")},m(s,o){y(s,e,o),c(e,n)},p(s,o){o[1]&2097152&&t!==(t=s[52].unpushedOps+"")&&q(n,t)},d(s){s&&k(e)}}}function on(l){let e,t,n,s,o,r;return{c(){e=d("div"),t=j(l[7]),n=w(),s=d("button"),s.innerHTML='',i(s,"class","dismiss-btn svelte-gsdfvv"),i(s,"aria-label","Dismiss"),i(e,"class","error-banner svelte-gsdfvv")},m(a,f){y(a,e,f),c(e,t),c(e,n),c(e,s),o||(r=[L(s,"click",Ze(l[129])),L(e,"click",l[130])],o=!0)},p(a,f){f[0]&128&&q(t,a[7])},d(a){a&&k(e),o=!1,ue(r)}}}function Vr(l){let e,t,n;function s(a,f){if(a[28])return Xr;if(a[0].length>0)return Yr;if(a[7])return qr}let o=s(l),r=o&&o(l);return{c(){e=d("div"),t=d("h2"),t.textContent=`${m("welcome.title")}`,n=w(),r&&r.c(),i(t,"class","svelte-gsdfvv"),i(e,"class","welcome svelte-gsdfvv")},m(a,f){y(a,e,f),c(e,t),c(e,n),r&&r.m(e,null)},p(a,f){o===(o=s(a))&&r?r.p(a,f):(r&&r.d(1),r=o&&o(a),r&&(r.c(),r.m(e,null)))},i:ee,o:ee,d(a){a&&k(e),r&&r.d()}}}function Ur(l){let e,t,n,s;function o(f,v){return f[4].length===0?Zr:Jr}let r=o(l),a=r(l);return{c(){e=d("div"),t=d("div"),n=d("h2"),n.textContent=`${m("activity.title")}`,s=w(),a.c(),i(n,"class","svelte-gsdfvv"),i(t,"class","activity-feed-header svelte-gsdfvv"),i(e,"class","activity-feed svelte-gsdfvv")},m(f,v){y(f,e,v),c(e,t),c(t,n),c(e,s),a.m(e,null)},p(f,v){r===(r=o(f))&&a?a.p(f,v):(a.d(1),a=r(f),a&&(a.c(),a.m(e,null)))},i:ee,o:ee,d(f){f&&k(e),a.d()}}}function Wr(l){let e,t,n,s,o,r=l[3].date+"",a,f,v,g=l[3].summary&&an(l);function _(h,T){return h[3].groups&&h[3].groups.length>0?xr:Qr}let p=_(l),b=p(l);return{c(){e=d("div"),t=d("div"),n=d("h2"),n.textContent=`${m("today.title")}`,s=w(),o=d("span"),a=j(r),f=w(),g&&g.c(),v=w(),b.c(),i(n,"class","svelte-gsdfvv"),i(o,"class","today-date svelte-gsdfvv"),i(t,"class","today-header svelte-gsdfvv"),i(e,"class","today-dashboard svelte-gsdfvv")},m(h,T){y(h,e,T),c(e,t),c(t,n),c(t,s),c(t,o),c(o,a),c(e,f),g&&g.m(e,null),c(e,v),b.m(e,null)},p(h,T){T[0]&8&&r!==(r=h[3].date+"")&&q(a,r),h[3].summary?g?g.p(h,T):(g=an(h),g.c(),g.m(e,v)):g&&(g.d(1),g=null),p===(p=_(h))&&b?b.p(h,T):(b.d(1),b=p(h),b&&(b.c(),b.m(e,null)))},i:ee,o:ee,d(h){h&&k(e),g&&g.d(),b.d()}}}function Kr(l){let e,t,n,s,o,r,a=ce(l[60]),f=[];for(let p=0;p{g[h]=null}),We()),~s?(o=g[s],o?o.p(p,b):(o=g[s]=v[s](p),o.c()),te(o,1),o.m(n,null)):o=null)},i(p){r||(te(o),r=!0)},o(p){ne(o),r=!1},d(p){p&&(k(e),k(t),k(n)),Re(f,p),~s&&g[s].d()}}}function Gr(l){let e,t,n,s=l[12].title+"",o,r,a,f,v,g,_,p,b,h,T,S=l[12].dirty&&jn();return{c(){e=d("div"),t=d("div"),n=d("span"),o=j(s),r=w(),S&&S.c(),a=w(),f=d("div"),v=d("button"),v.textContent=`${m("common.save")}`,g=w(),_=d("button"),_.textContent=`${m("common.close")}`,p=w(),b=d("textarea"),i(n,"class","note-title svelte-gsdfvv"),i(v,"class","btn btn-primary svelte-gsdfvv"),i(_,"class","btn svelte-gsdfvv"),i(f,"class","note-editor-actions svelte-gsdfvv"),i(t,"class","note-editor-header svelte-gsdfvv"),i(b,"class","note-textarea svelte-gsdfvv"),i(b,"placeholder",m("note.placeholder")),i(e,"class","note-editor svelte-gsdfvv")},m(C,N){y(C,e,N),c(e,t),c(t,n),c(n,o),c(t,r),S&&S.m(t,null),c(t,a),c(t,f),c(f,v),c(f,g),c(f,_),c(e,p),c(e,b),Fe(b,l[12].content),h||(T=[L(v,"click",l[105]),L(_,"click",l[103]),L(b,"input",l[131]),L(b,"input",l[104])],h=!0)},p(C,N){N[0]&4096&&s!==(s=C[12].title+"")&&q(o,s),C[12].dirty?S||(S=jn(),S.c(),S.m(t,a)):S&&(S.d(1),S=null),N[0]&4096&&Fe(b,C[12].content)},i:ee,o:ee,d(C){C&&k(e),S&&S.d(),h=!1,ue(T)}}}function qr(l){let e,t=m("common.error")+"",n,s,o;return{c(){e=d("p"),n=j(t),s=w(),o=j(l[7]),i(e,"class","error-text svelte-gsdfvv")},m(r,a){y(r,e,a),c(e,n),c(e,s),c(e,o)},p(r,a){a[0]&128&&q(o,r[7])},d(r){r&&k(e)}}}function Yr(l){let e,t,n;return{c(){e=d("p"),e.textContent=`${m("welcome.selectSection")}`,t=w(),n=d("p"),n.textContent=`${m("welcome.createCase")}`,i(e,"class","svelte-gsdfvv"),i(n,"class","hint svelte-gsdfvv")},m(s,o){y(s,e,o),y(s,t,o),y(s,n,o)},p:ee,d(s){s&&(k(e),k(t),k(n))}}}function Xr(l){let e;return{c(){e=d("p"),e.textContent=`${m("common.loading")}`,i(e,"class","svelte-gsdfvv")},m(t,n){y(t,e,n)},p:ee,d(t){t&&k(e)}}}function Jr(l){let e,t=ce(l[4]),n=[];for(let s=0;s0&&fn(l),o=l[3].summary.notes>0&&dn(l),r=l[3].summary.files>0&&un(l);return{c(){e=d("div"),s&&s.c(),t=w(),o&&o.c(),n=w(),r&&r.c(),i(e,"class","today-summary svelte-gsdfvv")},m(a,f){y(a,e,f),s&&s.m(e,null),c(e,t),o&&o.m(e,null),c(e,n),r&&r.m(e,null)},p(a,f){a[3].summary.changedCases>0?s?s.p(a,f):(s=fn(a),s.c(),s.m(e,t)):s&&(s.d(1),s=null),a[3].summary.notes>0?o?o.p(a,f):(o=dn(a),o.c(),o.m(e,n)):o&&(o.d(1),o=null),a[3].summary.files>0?r?r.p(a,f):(r=un(a),r.c(),r.m(e,null)):r&&(r.d(1),r=null)},d(a){a&&k(e),s&&s.d(),o&&o.d(),r&&r.d()}}}function fn(l){let e,t=l[3].summary.changedCases+"",n,s,o=ct(l[3].summary.changedCases,m("today.plural.case_one"),m("today.plural.case_few"),m("today.plural.case_many"))+"",r;return{c(){e=d("span"),n=j(t),s=w(),r=j(o),i(e,"class","summary-chip svelte-gsdfvv")},m(a,f){y(a,e,f),c(e,n),c(e,s),c(e,r)},p(a,f){f[0]&8&&t!==(t=a[3].summary.changedCases+"")&&q(n,t),f[0]&8&&o!==(o=ct(a[3].summary.changedCases,m("today.plural.case_one"),m("today.plural.case_few"),m("today.plural.case_many"))+"")&&q(r,o)},d(a){a&&k(e)}}}function dn(l){let e,t=l[3].summary.notes+"",n,s,o=ct(l[3].summary.notes,m("today.plural.note_one"),m("today.plural.note_few"),m("today.plural.note_many"))+"",r;return{c(){e=d("span"),n=j(t),s=w(),r=j(o),i(e,"class","summary-chip svelte-gsdfvv")},m(a,f){y(a,e,f),c(e,n),c(e,s),c(e,r)},p(a,f){f[0]&8&&t!==(t=a[3].summary.notes+"")&&q(n,t),f[0]&8&&o!==(o=ct(a[3].summary.notes,m("today.plural.note_one"),m("today.plural.note_few"),m("today.plural.note_many"))+"")&&q(r,o)},d(a){a&&k(e)}}}function un(l){let e,t=l[3].summary.files+"",n,s,o=ct(l[3].summary.files,m("today.plural.file_one"),m("today.plural.file_few"),m("today.plural.file_many"))+"",r;return{c(){e=d("span"),n=j(t),s=w(),r=j(o),i(e,"class","summary-chip svelte-gsdfvv")},m(a,f){y(a,e,f),c(e,n),c(e,s),c(e,r)},p(a,f){f[0]&8&&t!==(t=a[3].summary.files+"")&&q(n,t),f[0]&8&&o!==(o=ct(a[3].summary.files,m("today.plural.file_one"),m("today.plural.file_few"),m("today.plural.file_many"))+"")&&q(r,o)},d(a){a&&k(e)}}}function Qr(l){let e,t,n,s;return{c(){e=d("div"),t=d("p"),t.textContent=`${m("today.empty")}`,n=w(),s=d("p"),s.textContent=`${m("today.emptyHint")}`,i(t,"class","svelte-gsdfvv"),i(s,"class","hint svelte-gsdfvv"),i(e,"class","today-empty svelte-gsdfvv")},m(o,r){y(o,e,r),c(e,t),c(e,n),c(e,s)},p:ee,d(o){o&&k(e)}}}function xr(l){let e,t,n=ce(l[3].groups),s=[];for(let r=0;r0&&gn(l);return{c(){for(let r=0;r0?o?o.p(r,a):(o=gn(r),o.c(),o.m(t.parentNode,t)):o&&(o.d(1),o=null)},d(r){r&&(k(e),k(t)),Re(s,r),o&&o.d(r)}}}function vn(l){let e,t=l[251].events.length+"",n,s,o=ct(l[251].events.length,m("today.plural.event_one"),m("today.plural.event_few"),m("today.plural.event_many"))+"",r;return{c(){e=d("span"),n=j(t),s=w(),r=j(o),i(e,"class","today-case-count svelte-gsdfvv")},m(a,f){y(a,e,f),c(e,n),c(e,s),c(e,r)},p(a,f){f[0]&8&&t!==(t=a[251].events.length+"")&&q(n,t),f[0]&8&&o!==(o=ct(a[251].events.length,m("today.plural.event_one"),m("today.plural.event_few"),m("today.plural.event_many"))+"")&&q(r,o)},d(a){a&&k(e)}}}function $r(l){let e;return{c(){e=d("div"),e.textContent=`${m("today.changedCases")}`,i(e,"class","today-events-empty svelte-gsdfvv")},m(t,n){y(t,e,n)},p:ee,d(t){t&&k(e)}}}function ec(l){let e,t=ce(l[251].events),n=[];for(let s=0;s0?ec:$r}let M=H(l),A=M(l);return{c(){e=d("div"),t=d("div"),n=d("span"),o=j(s),r=w(),a=d("span"),v=j(f),g=w(),N&&N.c(),_=w(),p=d("span"),h=j(b),T=w(),A.c(),i(n,"class","today-case-title svelte-gsdfvv"),i(a,"class","today-case-type svelte-gsdfvv"),i(p,"class","today-case-time svelte-gsdfvv"),i(t,"class","today-case-header svelte-gsdfvv"),i(t,"role","button"),i(t,"tabindex","0"),i(e,"class","today-case svelte-gsdfvv")},m(E,U){y(E,e,U),c(e,t),c(t,n),c(n,o),c(t,r),c(t,a),c(a,v),c(t,g),N&&N.m(t,null),c(t,_),c(t,p),c(p,h),c(e,T),A.m(e,null),S||(C=[L(t,"click",F),L(t,"keydown",D)],S=!0)},p(E,U){l=E,U[0]&8&&s!==(s=l[251].nodeTitle+"")&&q(o,s),U[0]&8&&f!==(f=l[114](l[251].nodeKind)+"")&&q(v,f),l[251].events?N?N.p(l,U):(N=vn(l),N.c(),N.m(t,_)):N&&(N.d(1),N=null),U[0]&8&&b!==(b=st(l[251].lastActivityAt)+"")&&q(h,b),M===(M=H(l))&&A?A.p(l,U):(A.d(1),A=M(l),A&&(A.c(),A.m(e,null)))},d(E){E&&k(e),N&&N.d(),A.d(),S=!1,ue(C)}}}function gn(l){let e,t,n,s=ce(l[3].events),o=[];for(let r=0;r0&&Sn(l);const A=[mc,vc],E=[];function U(R,V){return R[33]?0:1}h=U(l),T=E[h]=A[h](l);let B=l[29]&&!l[31]&&Nn(),z=l[37]&&Dn(l);return{c(){e=d("div"),t=d("div"),n=d("button"),o=j(s),r=w(),a=d("button"),v=j(f),g=w(),_=d("button"),_.textContent=`${m("file.newFile")}`,p=w(),M&&M.c(),b=w(),T.c(),S=w(),B&&B.c(),C=w(),z&&z.c(),N=tt(),i(n,"class","btn btn-primary svelte-gsdfvv"),n.disabled=l[29],i(a,"class","btn svelte-gsdfvv"),a.disabled=l[29],i(_,"class","btn svelte-gsdfvv"),i(t,"class","tab-toolbar svelte-gsdfvv"),i(e,"class","files-tab svelte-gsdfvv")},m(R,V){y(R,e,V),c(e,t),c(t,n),c(n,o),c(t,r),c(t,a),c(a,v),c(t,g),c(t,_),c(t,p),M&&M.m(t,null),c(e,b),E[h].m(e,null),c(e,S),B&&B.m(e,null),y(R,C,V),z&&z.m(R,V),y(R,N,V),F=!0,D||(H=[L(n,"click",l[107]),L(a,"click",l[108]),L(_,"click",l[69])],D=!0)},p(R,V){(!F||V[0]&536870912)&&(n.disabled=R[29]),(!F||V[0]&536870912)&&(a.disabled=R[29]),R[41].items.length>0?M?M.p(R,V):(M=Sn(R),M.c(),M.m(t,null)):M&&(M.d(1),M=null);let G=h;h=U(R),h===G?E[h].p(R,V):(Ue(),ne(E[G],1,1,()=>{E[G]=null}),We(),T=E[h],T?T.p(R,V):(T=E[h]=A[h](R),T.c()),te(T,1),T.m(e,S)),R[29]&&!R[31]?B||(B=Nn(),B.c(),B.m(e,null)):B&&(B.d(1),B=null),R[37]?z?(z.p(R,V),V[1]&64&&te(z,1)):(z=Dn(R),z.c(),te(z,1),z.m(N.parentNode,N)):z&&(Ue(),ne(z,1,1,()=>{z=null}),We())},i(R){F||(te(T),te(z),F=!0)},o(R){ne(T),ne(z),F=!1},d(R){R&&(k(e),k(C),k(N)),M&&M.d(),E[h].d(),B&&B.d(),z&&z.d(R),D=!1,ue(H)}}}function sc(l){let e,t,n,s,o,r,a,f=l[22]&&Fn(l);function v(p,b){return p[11].length===0&&!p[22]?kc:bc}let g=v(l),_=g(l);return{c(){e=d("div"),t=d("div"),n=d("button"),n.textContent=`${m("note.add")}`,s=w(),f&&f.c(),o=w(),_.c(),i(n,"class","btn btn-primary svelte-gsdfvv"),i(t,"class","tab-toolbar svelte-gsdfvv"),i(e,"class","notes-tab svelte-gsdfvv")},m(p,b){y(p,e,b),c(e,t),c(t,n),c(e,s),f&&f.m(e,null),c(e,o),_.m(e,null),r||(a=L(n,"click",l[99]),r=!0)},p(p,b){p[22]?f?f.p(p,b):(f=Fn(p),f.c(),f.m(e,o)):f&&(f.d(1),f=null),g===(g=v(p))&&_?_.p(p,b):(_.d(1),_=g(p),_&&(_.c(),_.m(e,null)))},i:ee,o:ee,d(p){p&&k(e),f&&f.d(),_.d(),r=!1,a()}}}function oc(l){let e,t,n=l[9].title+"",s,o,r,a,f,v,g=l[114](l[9].type)+"",_,p,b,h,T,S=(l[9].section||"—")+"",C,N,F,D,H,M=ot(l[9].createdAt)+"",A,E,U,B,z,R,V,G,J=m("overview.newNote")+"",K,P,W,Z,Y,ke,$=m("overview.addFile")+"",se,x,ve,ie,re,ae,Ge=m("overview.addAction")+"",Le,Se,je,me,le,Oe,Ve,lt=m("overview.logTime")+"",xe,qe,pe,Ie,Te,Ce=l[11].length>0&&Mn(l),Ne=l[14].length>0&&En(l);return{c(){e=d("div"),t=d("h2"),s=j(n),o=w(),r=d("div"),a=d("div"),f=d("span"),f.textContent=`${m("overview.type")}`,v=d("span"),_=j(g),p=w(),b=d("div"),h=d("span"),h.textContent=`${m("overview.section")}`,T=d("span"),C=j(S),N=w(),F=d("div"),D=d("span"),D.textContent=`${m("overview.created")}`,H=d("span"),A=j(M),E=w(),U=d("div"),B=d("button"),z=O("svg"),R=O("path"),V=O("path"),G=w(),K=j(J),P=w(),W=d("button"),Z=O("svg"),Y=O("path"),ke=w(),se=j($),x=w(),ve=d("button"),ie=O("svg"),re=O("polygon"),ae=w(),Le=j(Ge),Se=w(),je=d("button"),me=O("svg"),le=O("circle"),Oe=O("polyline"),Ve=w(),xe=j(lt),qe=w(),Ce&&Ce.c(),pe=w(),Ne&&Ne.c(),i(t,"class","svelte-gsdfvv"),i(f,"class","meta-label svelte-gsdfvv"),i(v,"class","svelte-gsdfvv"),i(a,"class","meta-item svelte-gsdfvv"),i(h,"class","meta-label svelte-gsdfvv"),i(T,"class","svelte-gsdfvv"),i(b,"class","meta-item svelte-gsdfvv"),i(D,"class","meta-label svelte-gsdfvv"),i(H,"class","svelte-gsdfvv"),i(F,"class","meta-item svelte-gsdfvv"),i(r,"class","meta-grid svelte-gsdfvv"),i(R,"d","M12 20h9"),i(R,"class","svelte-gsdfvv"),i(V,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"),i(V,"class","svelte-gsdfvv"),i(z,"width","16"),i(z,"height","16"),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(z,"class","svelte-gsdfvv"),i(B,"class","qa-btn svelte-gsdfvv"),i(Y,"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(Y,"class","svelte-gsdfvv"),i(Z,"width","16"),i(Z,"height","16"),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(Z,"class","svelte-gsdfvv"),i(W,"class","qa-btn svelte-gsdfvv"),i(re,"points","13 2 3 14 12 14 11 22 21 10 12 10 13 2"),i(re,"class","svelte-gsdfvv"),i(ie,"width","16"),i(ie,"height","16"),i(ie,"viewBox","0 0 24 24"),i(ie,"fill","none"),i(ie,"stroke","currentColor"),i(ie,"stroke-width","2"),i(ie,"stroke-linecap","round"),i(ie,"stroke-linejoin","round"),i(ie,"class","svelte-gsdfvv"),i(ve,"class","qa-btn svelte-gsdfvv"),i(le,"cx","12"),i(le,"cy","12"),i(le,"r","10"),i(le,"class","svelte-gsdfvv"),i(Oe,"points","12 6 12 12 16 14"),i(Oe,"class","svelte-gsdfvv"),i(me,"width","16"),i(me,"height","16"),i(me,"viewBox","0 0 24 24"),i(me,"fill","none"),i(me,"stroke","currentColor"),i(me,"stroke-width","2"),i(me,"stroke-linecap","round"),i(me,"stroke-linejoin","round"),i(me,"class","svelte-gsdfvv"),i(je,"class","qa-btn svelte-gsdfvv"),i(U,"class","quick-actions svelte-gsdfvv"),i(e,"class","overview svelte-gsdfvv")},m(he,be){y(he,e,be),c(e,t),c(t,s),c(e,o),c(e,r),c(r,a),c(a,f),c(a,v),c(v,_),c(r,p),c(r,b),c(b,h),c(b,T),c(T,C),c(r,N),c(r,F),c(F,D),c(F,H),c(H,A),c(e,E),c(e,U),c(U,B),c(B,z),c(z,R),c(z,V),c(B,G),c(B,K),c(U,P),c(U,W),c(W,Z),c(Z,Y),c(W,ke),c(W,se),c(U,x),c(U,ve),c(ve,ie),c(ie,re),c(ve,ae),c(ve,Le),c(U,Se),c(U,je),c(je,me),c(me,le),c(me,Oe),c(je,Ve),c(je,xe),c(e,qe),Ce&&Ce.m(e,null),c(e,pe),Ne&&Ne.m(e,null),Ie||(Te=[L(B,"click",l[133]),L(W,"click",l[134]),L(ve,"click",l[115]),L(je,"click",l[135])],Ie=!0)},p(he,be){be[0]&512&&n!==(n=he[9].title+"")&&q(s,n),be[0]&512&&g!==(g=he[114](he[9].type)+"")&&q(_,g),be[0]&512&&S!==(S=(he[9].section||"—")+"")&&q(C,S),be[0]&512&&M!==(M=ot(he[9].createdAt)+"")&&q(A,M),he[11].length>0?Ce?Ce.p(he,be):(Ce=Mn(he),Ce.c(),Ce.m(e,pe)):Ce&&(Ce.d(1),Ce=null),he[14].length>0?Ne?Ne.p(he,be):(Ne=En(he),Ne.c(),Ne.m(e,null)):Ne&&(Ne.d(1),Ne=null)},i:ee,o:ee,d(he){he&&k(e),Ce&&Ce.d(),Ne&&Ne.d(),Ie=!1,ue(Te)}}}function rc(l){let e,t=ce(l[5]),n=[];for(let s=0;s',F=w(),i(n,"class","action-title svelte-gsdfvv"),i(a,"class","action-type svelte-gsdfvv"),i(_,"class","action-data svelte-gsdfvv"),i(t,"class","action-info svelte-gsdfvv"),i(S,"class","btn btn-sm svelte-gsdfvv"),i(N,"class","btn btn-sm btn-danger svelte-gsdfvv"),i(T,"class","action-btns svelte-gsdfvv"),i(e,"class","action-card svelte-gsdfvv")},m(E,U){y(E,e,U),c(e,t),c(t,n),c(n,o),c(t,r),c(t,a),c(a,v),c(t,g),c(t,_),c(_,b),c(e,h),c(e,T),c(T,S),c(T,C),c(T,N),c(e,F),D||(H=[L(S,"click",M),L(N,"click",A)],D=!0)},p(E,U){l=E,U[0]&8192&&s!==(s=l[238].title+"")&&q(o,s),U[0]&8192&&f!==(f=l[119](l[238].type)+"")&&q(v,f),U[0]&8192&&p!==(p=l[238].data+"")&&q(b,p)},d(E){E&&k(e),D=!1,ue(H)}}}function Sn(l){let e,t=m("common.paste")+"",n,s,o=l[41].items.length+"",r,a,f;return{c(){e=d("button"),n=j(t),s=w(),r=j(o),i(e,"class","btn svelte-gsdfvv")},m(v,g){y(v,e,g),c(e,n),c(e,s),c(e,r),a||(f=L(e,"click",l[74]),a=!0)},p(v,g){g[1]&1024&&o!==(o=v[41].items.length+"")&&q(r,o)},d(v){v&&k(e),a=!1,f()}}}function vc(l){let e,t,n,s,o,r,a;const f=[_c,pc],v=[];function g(h,T){return h[35].length>0?0:1}e=g(l),t=v[e]=f[e](l);const _=[hc,gc],p=[];function b(h,T){return h[36].length===0?0:1}return s=b(l),o=p[s]=_[s](l),{c(){t.c(),n=w(),o.c(),r=tt()},m(h,T){v[e].m(h,T),y(h,n,T),p[s].m(h,T),y(h,r,T),a=!0},p(h,T){let S=e;e=g(h),e===S?v[e].p(h,T):(Ue(),ne(v[S],1,1,()=>{v[S]=null}),We(),t=v[e],t?t.p(h,T):(t=v[e]=f[e](h),t.c()),te(t,1),t.m(n.parentNode,n));let C=s;s=b(h),s===C?p[s].p(h,T):(Ue(),ne(p[C],1,1,()=>{p[C]=null}),We(),o=p[s],o?o.p(h,T):(o=p[s]=_[s](h),o.c()),te(o,1),o.m(r.parentNode,r))},i(h){a||(te(t),te(o),a=!0)},o(h){ne(t),ne(o),a=!1},d(h){h&&(k(n),k(r)),v[e].d(h),p[s].d(h)}}}function mc(l){let e,t;return{c(){e=d("div"),t=d("p"),t.textContent=`${m("common.loading")}`,i(t,"class","svelte-gsdfvv"),i(e,"class","empty-state svelte-gsdfvv")},m(n,s){y(n,e,s),c(e,t)},p:ee,i:ee,o:ee,d(n){n&&k(e)}}}function pc(l){let e,t;return e=new mi({props:{crumbs:[{name:m("file.root")}]}}),{c(){Qe(e.$$.fragment)},m(n,s){Xe(e,n,s),t=!0},p:ee,i(n){t||(te(e.$$.fragment,n),t=!0)},o(n){ne(e.$$.fragment,n),t=!1},d(n){Je(e,n)}}}function _c(l){let e,t,n,s,o,r,a,f=m("common.back")+"",v,g,_,p;return e=new mi({props:{crumbs:[{name:m("file.root")},...l[35]]}}),e.$on("navigate",l[140]),{c(){Qe(e.$$.fragment),t=w(),n=d("button"),s=O("svg"),o=O("line"),r=O("polyline"),a=w(),v=j(f),i(o,"x1","19"),i(o,"y1","12"),i(o,"x2","5"),i(o,"y2","12"),i(o,"class","svelte-gsdfvv"),i(r,"points","12 19 5 12 12 5"),i(r,"class","svelte-gsdfvv"),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(s,"class","svelte-gsdfvv"),i(n,"class","btn btn-sm back-btn svelte-gsdfvv")},m(b,h){Xe(e,b,h),y(b,t,h),y(b,n,h),c(n,s),c(s,o),c(s,r),c(n,a),c(n,v),g=!0,_||(p=L(n,"click",l[65]),_=!0)},p(b,h){const T={};h[1]&16&&(T.crumbs=[{name:m("file.root")},...b[35]]),e.$set(T)},i(b){g||(te(e.$$.fragment,b),g=!0)},o(b){ne(e.$$.fragment,b),g=!1},d(b){b&&(k(t),k(n)),Je(e,b),_=!1,p()}}}function gc(l){let e,t=[],n=new Map,s,o=ce(l[36]);const r=a=>a[235].id;for(let a=0;a0?m("file.noFiles"):m("file.noFilesCase"))+"",r,a,f,v,g,_,p,b,h,T;return{c(){e=d("div"),t=d("div"),t.innerHTML='',n=w(),s=d("p"),r=j(o),a=w(),f=d("p"),f.textContent=`${m("file.hint")}`,v=w(),g=d("div"),_=d("button"),_.textContent=`${m("file.addFileSimple")}`,p=w(),b=d("button"),b.textContent=`${m("file.addFolderSimple")}`,i(t,"class","empty-icon svelte-gsdfvv"),i(s,"class","svelte-gsdfvv"),i(f,"class","hint svelte-gsdfvv"),i(_,"class","btn btn-primary svelte-gsdfvv"),i(b,"class","btn svelte-gsdfvv"),i(g,"class","empty-actions svelte-gsdfvv"),i(e,"class","empty-state svelte-gsdfvv")},m(S,C){y(S,e,C),c(e,t),c(e,n),c(e,s),c(s,r),c(e,a),c(e,f),c(e,v),c(e,g),c(g,_),c(g,p),c(g,b),h||(T=[L(_,"click",l[107]),L(b,"click",l[108])],h=!0)},p(S,C){C[1]&16&&o!==(o=(S[35].length>0?m("file.noFiles"):m("file.noFilesCase"))+"")&&q(r,o)},i:ee,o:ee,d(S){S&&k(e),h=!1,ue(T)}}}function Tn(l,e){let t,n,s;return n=new er({props:{item:e[235],selected:e[42].includes(e[235].id),onDragStart:e[78],onDragOver:e[79],onDrop:e[80]}}),n.$on("navigate",e[141]),n.$on("preview",e[142]),n.$on("openExternal",e[143]),n.$on("showInFolder",e[144]),n.$on("delete",e[145]),n.$on("rename",e[146]),n.$on("duplicate",e[147]),n.$on("cut",e[148]),n.$on("copy",e[149]),n.$on("selectOne",e[150]),n.$on("toggleSelect",e[151]),n.$on("rangeSelect",e[152]),{key:l,first:null,c(){t=tt(),Qe(n.$$.fragment),this.first=t},m(o,r){y(o,t,r),Xe(n,o,r),s=!0},p(o,r){e=o;const a={};r[1]&32&&(a.item=e[235]),r[1]&2080&&(a.selected=e[42].includes(e[235].id)),n.$set(a)},i(o){s||(te(n.$$.fragment,o),s=!0)},o(o){ne(n.$$.fragment,o),s=!1},d(o){o&&k(t),Je(n,o)}}}function Nn(l){let e,t;return{c(){e=d("div"),t=d("p"),t.textContent=`${m("file.scanning")}`,i(t,"class","svelte-gsdfvv"),i(e,"class","empty-state svelte-gsdfvv")},m(n,s){y(n,e,s),c(e,t)},d(n){n&&k(e)}}}function Dn(l){let e,t;return e=new _r({props:{item:l[37],content:l[38],loading:l[39],error:l[40]}}),e.$on("close",l[68]),e.$on("openExternal",l[153]),{c(){Qe(e.$$.fragment)},m(n,s){Xe(e,n,s),t=!0},p(n,s){const o={};s[1]&64&&(o.item=n[37]),s[1]&128&&(o.content=n[38]),s[1]&256&&(o.loading=n[39]),s[1]&512&&(o.error=n[40]),e.$set(o)},i(n){t||(te(e.$$.fragment,n),t=!0)},o(n){ne(e.$$.fragment,n),t=!1},d(n){Je(e,n)}}}function Fn(l){let e,t,n,s,o,r,a,f,v;return{c(){e=d("div"),t=d("input"),n=w(),s=d("div"),o=d("button"),o.textContent=`${m("common.create")}`,r=w(),a=d("button"),a.textContent=`${m("common.cancel")}`,i(t,"type","text"),i(t,"placeholder",m("note.title")),i(t,"class","svelte-gsdfvv"),i(o,"class","btn btn-primary svelte-gsdfvv"),i(a,"class","btn svelte-gsdfvv"),i(s,"class","form-actions svelte-gsdfvv"),i(e,"class","create-form svelte-gsdfvv")},m(g,_){y(g,e,_),c(e,t),Fe(t,l[23]),c(e,n),c(e,s),c(s,o),c(s,r),c(s,a),f||(v=[L(t,"input",l[137]),L(t,"keydown",l[138]),L(o,"click",l[101]),L(a,"click",l[100])],f=!0)},p(g,_){_[0]&8388608&&t.value!==g[23]&&Fe(t,g[23])},d(g){g&&k(e),f=!1,ue(v)}}}function bc(l){let e,t=ce(l[11]),n=[];for(let s=0;sne(Y[$],1,1,()=>{Y[$]=null});return{c(){e=d("div"),t=d("div"),n=d("h3"),n.textContent=`${m("nav.createNode")}`,s=w(),W&&W.c(),o=w(),r=d("div"),a=d("label"),a.textContent=`${m("template.select")}`,f=w(),v=d("div"),g=d("button"),Qe(_.$$.fragment),p=w(),b=d("div"),h=d("span"),h.textContent=`${m("template.optionNone")}`,T=w(),S=d("span"),S.textContent=`${m("template.none.desc")}`,C=w();for(let $=0;${h=null}),We()),S[21].node&&S[21].node.parent_id?T?T.p(S,C):(T=Vn(S),T.c(),T.m(t,o)):T&&(T.d(1),T=null),(!_||C[0]&2097152)&&Ke(t,"left",S[21].x+"px"),(!_||C[0]&2097152)&&Ke(t,"top",S[21].y+"px")},i(S){_||(te(h),_=!0)},o(S){ne(h),_=!1},d(S){S&&k(e),h&&h.d(),T&&T.d(),p=!1,ue(b)}}}function Rn(l){let e,t,n,s,o,r=ce(l[2].length>0?l[2]:[{id:"",title:"template.optionNone",icon:"folder"}]),a=[];for(let v=0;vne(a[v],1,1,()=>{a[v]=null});return{c(){e=d("div"),e.textContent=`${m("common.create")}`,t=w();for(let v=0;v0?v[2]:[{id:"",title:"template.optionNone",icon:"folder"}]);let _;for(_=0;_l[177].call(b)),i(g,"class","form-group svelte-gsdfvv"),i(S,"class","svelte-gsdfvv"),i(D,"type","text"),i(D,"placeholder",H=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-gsdfvv"),i(T,"class","form-group svelte-gsdfvv"),i(E,"class","btn btn-primary svelte-gsdfvv"),i(B,"class","btn svelte-gsdfvv"),i(A,"class","modal-actions svelte-gsdfvv"),i(t,"class","modal svelte-gsdfvv"),i(e,"class","modal-overlay svelte-gsdfvv")},m(J,K){y(J,e,K),c(e,t),c(t,n),c(t,s),c(t,o),c(o,r),c(o,a),c(o,f),Fe(f,l[25]),c(t,v),c(t,g),c(g,_),c(g,p),c(g,b);for(let P=0;P0?0:1}F=Ce(l),D=Te[F]=Ie[F](l);function Ne(X,de){return X[9]?Hr:X[8]?Rr:Br}let he=Ne(l),be=he(l),Pe=(($e=l[52])==null?void 0:$e.configured)&&nn(l),ye=l[7]&&on(l);const He=[Gr,Kr,Wr,Ur,Vr],Me=[];function Ee(X,de){return X[12]?0:X[9]?1:X[8]==="today"&&X[3]?2:X[8]==="activity"?3:4}re=Ee(l),ae=Me[re]=He[re](l);let _e=l[17]&&Pn(l),ge=l[21].visible&&Bn(l),fe=l[24]&&Un(l),Be=l[31]&&l[30]&&Kn(l),ze=l[48]&&qn(l),De=l[43]&&Xn(l),Ae=l[51]&&Jn(l);return{c(){var X;e=d("div"),t=d("aside"),n=d("div"),s=d("span"),s.textContent="⚒",o=w(),r=d("span"),r.textContent=`${m("nav.brand")}`,a=w(),f=d("nav"),v=d("div"),g=d("div"),g.textContent=`${m("nav.system")}`,_=w();for(let de=0;de{Te[et]=null}),We(),D=Te[F],D?D.p(X,de):(D=Te[F]=Ie[F](X),D.c()),te(D,1),D.m(b,null)),(!Ve||de[1]&2097152)&&it(V,"active",(_t=X[52])==null?void 0:_t.configured),(!Ve||de[0]&64)&&q(W,X[6]),he===(he=Ne(X))&&be?be.p(X,de):(be.d(1),be=he(X),be&&(be.c(),be.m($,null))),(gt=X[52])!=null&>.configured?Pe?Pe.p(X,de):(Pe=nn(X),Pe.c(),Pe.m(x,null)):Pe&&(Pe.d(1),Pe=null),X[7]?ye?ye.p(X,de):(ye=on(X),ye.c(),ye.m(Y,ie)):ye&&(ye.d(1),ye=null);let pt=re;re=Ee(X),re===pt?Me[re].p(X,de):(Ue(),ne(Me[pt],1,1,()=>{Me[pt]=null}),We(),ae=Me[re],ae?ae.p(X,de):(ae=Me[re]=He[re](X),ae.c()),te(ae,1),ae.m(Y,Ge)),X[17]?_e?(_e.p(X,de),de[0]&131072&&te(_e,1)):(_e=Pn(X),_e.c(),te(_e,1),_e.m(Y,Le)):_e&&(Ue(),ne(_e,1,1,()=>{_e=null}),We()),X[21].visible?ge?(ge.p(X,de),de[0]&2097152&&te(ge,1)):(ge=Bn(X),ge.c(),te(ge,1),ge.m(Y,Se)):ge&&(Ue(),ne(ge,1,1,()=>{ge=null}),We()),X[24]?fe?fe.p(X,de):(fe=Un(X),fe.c(),fe.m(Y,je)):fe&&(fe.d(1),fe=null),X[31]&&X[30]?Be?Be.p(X,de):(Be=Kn(X),Be.c(),Be.m(Y,me)):Be&&(Be.d(1),Be=null),X[48]?ze?ze.p(X,de):(ze=qn(X),ze.c(),ze.m(Y,le)):ze&&(ze.d(1),ze=null),X[43]?De?(De.p(X,de),de[1]&4096&&te(De,1)):(De=Xn(X),De.c(),te(De,1),De.m(Y,Oe)):De&&(Ue(),ne(De,1,1,()=>{De=null}),We()),X[51]?Ae?Ae.p(X,de):(Ae=Jn(X),Ae.c(),Ae.m(Y,null)):Ae&&(Ae.d(1),Ae=null)},i(X){Ve||(te(D),te(ae),te(_e),te(ge),te(De),Ve=!0)},o(X){ne(D),ne(ae),ne(_e),ne(ge),ne(De),Ve=!1},d(X){X&&k(e),Re(pe,X),Te[F].d(),be.d(),Pe&&Pe.d(),ye&&ye.d(),Me[re].d(),_e&&_e.d(),ge&&ge.d(),fe&&fe.d(),Be&&Be.d(),ze&&ze.d(),De&&De.d(),Ae&&Ae.d(),lt=!1,ue(xe)}}}function Q(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 Et(l,e,t){for(const n of l){if(n.id===e)return n.children=t,!0;if(n.children&&Et(n.children,e,t))return!0}return!1}function Fc(l){l.preventDefault(),l.dataTransfer.dropEffect="move"}function wt(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 ot(l){if(!l)return"";try{return new Date(l).toLocaleDateString("ru-RU",{day:"numeric",month:"short"})}catch{return l}}function ct(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 Ic(l,e,t){let n=[],s=[],o=[],r=null,a=[],f=0,v=!0,g=[],_="",p="",b="",h=null,T="overview",S=[],C=null,N=[],F=[],D=[],H="",M="",A=!1,E="",U=null,B=null,z={visible:!1,x:0,y:0,node:null},R=!1,V="",G=!1,J="",K="open_url",P="",W=[{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")}],Z=!0,Y=!1,ke=null,$=!1,se="",x={},ve=!1,ie=null,re=[],ae=[],Ge=null,Le="",Se=!1,je="",me={items:[],mode:"copy"},le=[],Oe=[],Ve=!1,lt="",xe="",qe=!1,pe=m("common.delete"),Ie=null,Te=null,Ce=!1,Ne="",he="",be="",Pe=!1,ye=null,He=!1,Me="",Ee="",_e="",ge=0,fe="";const Be=[{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 ze=null;ii(async()=>{try{t(6,_=await Q("VerstakVersion")||"verstak-gui/v2"),t(0,n=await Q("ListSystemViews")||[]),t(1,s=await Q("ListWorkspaceTree")||[]),t(2,o=await Q("ListEnabledTemplates")||[])}catch(u){t(7,p=String(u)),t(0,n=[{id:"today",label:m("nav.today")},{id:"inbox",label:m("nav.inbox")},{id:"activity",label:m("nav.activity")}]),t(1,s=[]),t(2,o=[])}window.runtime&&window.runtime.EventsOn&&(window.runtime.EventsOn("files-dropped",Ki),ze=()=>window.runtime.EventsOff("files-dropped")),window.addEventListener("keydown",ol),t(28,Z=!1),Tt()}),si(()=>{ze&&ze(),window.removeEventListener("keydown",ol)});async function De(u){t(8,b=u),t(9,h=null),t(10,T="overview"),t(11,S=[]),N=[],t(13,F=[]),t(14,D=[]),t(17,A=!1),t(7,p=""),t(3,r=null),t(4,a=[]),f=0,v=!0;try{u==="today"?t(3,r=await Q("ListTodayView")||{cases:[]}):u==="activity"&&(t(4,a=await Q("ListActivityFeed",50,0)||[]),f=a.length,v=a.length===50)}catch(I){t(7,p=String(I)),t(3,r={cases:[]}),t(4,a=[])}}async function Ae(u){t(9,h=u),t(10,T="overview"),t(11,S=[]),N=[],t(13,F=[]),t(14,D=[]),t(36,ae=[]),t(35,re=[]),t(34,ie=null),t(37,Ge=null),t(38,Le=""),t(42,le=[]),Oe=[],t(12,C=null),t(17,A=!1),t(22,R=!1),t(7,p=""),t(5,g=[]),await $e(u.id)}async function $e(u){try{t(11,S=await Q("ListNotes",u)||[])}catch{}try{N=await Q("ListFiles",u)||[]}catch{}try{t(13,F=await Q("ListActions",u)||[])}catch{}try{t(14,D=await Q("ListWorklog",u)||[])}catch{}try{t(5,g=await Q("ListActivityByNode",u,50,0)||[])}catch{}}async function X(u){t(33,ve=!0);try{let I=await Q("ListItems",u)||[];I.sort((oe,we)=>oe.type!==we.type?oe.type==="folder"?-1:1:(oe.name||"").localeCompare(we.name||"")),t(36,ae=I)}catch{t(36,ae=[])}t(33,ve=!1)}async function de(u){if(h){try{const I=await Q("GetNodeDetail",u);I&&t(35,re=[...re,{id:u,name:I.title}])}catch{t(35,re=[...re,{id:u,name:"..."}])}t(34,ie=u),await X(u)}}function et(){if(re.length<2)t(35,re=[]),t(34,ie=null),X(h.id);else{const u=re[re.length-2];t(35,re=re.slice(0,-1)),t(34,ie=u.id),X(u.id)}}function pt(u){const I=re[u];t(35,re=re.slice(0,u+1)),t(34,ie=I.id),X(I.id)}async function _t(u){t(37,Ge=u),t(38,Le=""),t(40,je=""),t(39,Se=!0);try{Yo(u)?t(38,Le=await Q("GetFileBase64",u.fileId)||""):Xo(u)&&t(38,Le=await Q("ReadFileText",u.fileId)||"")}catch(I){t(40,je=String(I))}t(39,Se=!1)}function gt(){t(37,Ge=null),t(38,Le=""),t(40,je="")}async function Ye(){const u=prompt(m("file.namePrompt"));if(!(!u||!u.trim()))try{const I=ie||h.id;await Q("CreateEmptyFile",I,u.trim()),await X(I)}catch(I){t(7,p=String(I))}}async function Ct(u){try{await Q("DuplicateNode",u);const I=ie||h.id;await X(I)}catch(I){t(7,p=String(I))}}function $t(u){const I=ae.find(oe=>oe.id===u);I&&Ht(I.id,I.name)}function el(u){t(41,me={items:[u],mode:"cut"})}function tl(u){t(41,me={items:[u],mode:"copy"})}async function ll(){if(me.items.length===0)return;const u=ie||h.id;try{if(me.mode==="copy")for(const I of me.items)await Q("DuplicateNode",I);else for(const I of me.items)await Q("MoveNode",I,u);t(41,me={items:[],mode:"copy"}),await X(u)}catch(I){t(7,p=String(I))}}function nl(u){le.includes(u)?t(42,le=le.filter(I=>I!==u)):t(42,le=[...le,u])}function il(u){t(42,le=[u])}function gi(){t(42,le=ae.map(u=>u.id))}function sl(u){if(ae.length===0)return;const I=le.length>0?le[le.length-1]:ae[0].id,oe=ae.findIndex(ut=>ut.id===I),we=ae.findIndex(ut=>ut.id===u);if(oe===-1||we===-1)return;const nt=Math.min(oe,we),Gt=Math.max(oe,we),ao=ae.slice(nt,Gt+1).map(ut=>ut.id),wl=new Set(le);ao.forEach(ut=>wl.add(ut)),t(42,le=[...wl])}function hi(){t(42,le=[])}function Rt(u){return u.length>0?u:ae.map(I=>I.id)}async function bi(){const u=Rt(le),I=ae.find(we=>we.id===u[0]);let oe;u.length===1&&(I==null?void 0:I.type)==="folder"?oe=m("delete.folder"):u.length===1?oe=m("delete.file"):oe=m("delete.files",{count:u.length}),St({title:m("delete.confirmTitle"),message:m("delete.confirmMessage")+" "+oe+"?",confirmText:m("common.delete"),danger:!0,onConfirm:async()=>{for(const nt of u)try{await Q("DeleteFileOrFolder",nt)}catch(Gt){t(7,p=String(Gt))}t(42,le=[]);const we=ie||h.id;await X(we)}})}function ki(){const u=Rt(le);t(41,me={items:u,mode:"cut"}),t(42,le=[])}function yi(){const u=Rt(le);t(41,me={items:u,mode:"copy"}),t(42,le=[])}function wi(u,I){const oe=le.includes(I)?le:[I];Oe=oe,u.dataTransfer.effectAllowed="move",u.dataTransfer.setData("text/plain",oe.join(","))}function Ci(u,I){const oe=ae.find(we=>we.id===I);oe&&oe.type==="folder"&&(u.preventDefault(),u.dataTransfer.dropEffect="move")}async function Si(u,I){if(u.preventDefault(),Oe.length!==0){for(const oe of Oe)try{await Q("MoveNode",oe,I)}catch(we){t(7,p=String(we))}Oe=[],t(42,le=[]),await X(ie||h.id)}}function ol(u){if(T==="files"&&!(u.target.tagName==="INPUT"||u.target.tagName==="TEXTAREA"))if(u.ctrlKey||u.metaKey)u.key==="c"||u.key==="C"?(u.preventDefault(),yi()):u.key==="x"||u.key==="X"?(u.preventDefault(),ki()):u.key==="v"||u.key==="V"?(u.preventDefault(),ll()):u.key==="a"||u.key==="A"?(u.preventDefault(),gi()):u.key==="o"||u.key==="O"?(u.preventDefault(),Ti()):u.key==="Enter"&&(u.preventDefault(),rl());else if(u.key==="Enter")u.preventDefault(),rl();else if(u.key==="Delete"||u.key==="Backspace"){if(Ge){u.preventDefault(),gt();return}if(le.length>0){u.preventDefault(),bi();return}if(u.key==="Backspace"&&re.length>0){u.preventDefault(),et();return}}else if(u.key==="Escape"){if(Ge){gt();return}if(le.length>0){hi();return}}else u.key==="F2"&&(u.preventDefault(),Ni())}function rl(){if(le.length===1){const u=ae.find(I=>I.id===le[0]);u&&(u.type==="folder"?de(u.id):_t(u))}}function Ti(){if(le.length===1){const u=ae.find(I=>I.id===le[0]);u&&u.fileId&&Q("OpenFile",u.fileId)}}function Ht(u,I){Ne=u,t(49,he=I),t(50,be=""),t(48,Ce=!0)}function Ni(){if(le.length===1){const u=ae.find(I=>I.id===le[0]);u&&Ht(u.id,u.name)}}async function cl(){const u=he.trim();if(!u){t(50,be=m("rename.emptyError"));return}try{await Q("ValidateName",u)}catch{t(50,be=m("rename.invalidError"));return}t(48,Ce=!1),Ne="";try{await Q("RenameNode",Ne,u);const I=ie||h.id;await X(I)}catch(I){t(7,p=String(I))}}function Di(){t(48,Ce=!1),Ne="",t(49,he=""),t(50,be="")}function Fi(u){u.key==="Enter"?cl():t(50,be="")}function St(u){t(44,lt=u.title||m("common.confirm")),t(45,xe=u.message||""),t(46,qe=u.danger!==void 0?u.danger:!0),t(47,pe=u.confirmText||m("common.delete")),Ie=u.onConfirm||null,Te=u.onCancel||null,t(43,Ve=!0)}function al(){t(43,Ve=!1),Ie=null,Te=null}function Ii(){Ie&&Ie(),al()}function Mi(){Te&&Te(),al()}function fl(u){t(19,U=z.node),t(20,B=u),t(18,E=""),t(17,A=!0),ht()}function Ai(){t(19,U=null),t(20,B=void 0),t(18,E=""),t(17,A=!0)}function Ei(){t(17,A=!1),t(18,E=""),t(19,U=null),t(20,B=void 0)}async function dl(){if(!(!E.trim()||B===void 0))try{const u=U?U.id:"",I=B?B.id:"",oe=await Q("CreateNodeFromTemplate",u,E.trim(),I);t(17,A=!1),t(18,E="");const we=oe?oe.id:null;if(t(19,U=null),t(20,B=void 0),u){t(32,x={...x,[u]:!0});const nt=await Q("ListWorkspaceChildren",u)||[];Et(s,u,nt),t(1,s=[...s])}else t(1,s=await Q("ListWorkspaceTree")||s);if(we){const nt=await Q("GetNodeDetail",we);nt&&(t(8,b=""),Ae(nt))}}catch(u){t(7,p=String(u))}}function Li(u,I){t(21,z={visible:!0,x:u.clientX,y:u.clientY,node:I})}function ht(){t(21,z={visible:!1,x:0,y:0,node:null})}async function ji(u){const I=!x[u];if(t(32,x={...x,[u]:I}),!I)return;const oe=await Q("ListWorkspaceChildren",u)||[];Et(s,u,oe),t(1,s=[...s])}async function Pi(u,I){if(!(!u||!I||u===I))try{const oe=await Q("MoveNode",u,I);await Ft();const we=await Q("GetNodeDetail",u);we&&(t(8,b=""),Ae(we))}catch(oe){t(7,p=String(oe))}}async function Oi(u){u.preventDefault();try{const I=u.dataTransfer.getData("text/plain");if(!I)return;const oe=await Q("GetNodeDetail",I);if(!oe||!oe.parent_id)return;await Q("MoveNode",I,""),await Ft();const we=await Q("GetNodeDetail",I);we&&(t(8,b=""),Ae(we))}catch(I){t(7,p=String(I))}}function ul(u){Ht(u.id,u.title),ht()}function vl(u){ht(),St({title:m("delete.confirmTitle"),message:m("delete.confirmMessage")+" "+u.title+"?",confirmText:m("common.delete"),danger:!0,onConfirm:async()=>{try{await Q("DeleteNode",u.id),await Ft(),h&&h.id===u.id&&t(9,h=null)}catch(I){t(7,p=String(I))}}})}async function ml(u){ht();try{await Q("OpenFolder",u.id)}catch(I){t(7,p=String(I))}}async function pl(u){ht();try{await Q("MoveNode",u.id,""),await Ft();const I=await Q("GetNodeDetail",u.id);I&&(t(8,b=""),Ae(I))}catch(I){t(7,p=String(I))}}async function Ft(){t(1,s=await Q("ListWorkspaceTree")||[]);for(const u of Object.keys(x))if(x[u]){const I=await Q("ListWorkspaceChildren",u)||[];Et(s,u,I)}t(1,s=[...s])}function _l(){t(22,R=!0),t(23,V="")}function zi(){t(22,R=!1),t(23,V="")}async function gl(){if(!(!V.trim()||!h))try{const u=await Q("CreateNote",h.id,V.trim());t(11,S=[...S,u&&u.id?u:{id:Date.now().toString(),title:V.trim(),createdAt:new Date().toISOString()}]),t(22,R=!1),t(23,V="")}catch{const I={id:Date.now().toString(),title:V.trim(),createdAt:new Date().toISOString()};t(11,S=[...S,I]),t(22,R=!1),t(23,V="")}}async function Vt(u){if(C&&C.dirty){St({title:m("note.unsavedTitle"),message:m("note.unsavedMessage"),confirmText:m("note.unsavedClose"),danger:!1,onConfirm:async()=>{await hl(u)}});return}await hl(u)}async function hl(u){try{const I=await Q("ReadNote",u.id);t(12,C={id:u.id,title:u.title,content:I||"",dirty:!1})}catch{t(12,C={id:u.id,title:u.title,content:"# "+u.title+` + +`,dirty:!1})}}function Bi(){if(C&&C.dirty){St({title:m("note.unsavedTitle"),message:m("note.unsavedMessage"),confirmText:m("note.unsavedClose"),danger:!1,onConfirm:()=>{t(12,C=null)}});return}t(12,C=null)}function Ri(u){C&&(t(12,C.content=u.target.value,C),t(12,C.dirty=!0,C))}async function Hi(){if(C)try{await Q("SaveNote",C.id,C.content),t(12,C.dirty=!1,C)}catch{t(12,C.dirty=!1,C)}}async function Vi(){const u=parseInt(H,10);if(!(!M.trim()||isNaN(u)||u<=0||!h)){try{const I=await Q("CreateWorklog",h.id,M.trim(),u);t(14,D=[...D,I&&I.id?I:{id:Date.now().toString(),nodeId:h.id,summary:M.trim(),minutes:u,createdAt:new Date().toISOString()}])}catch{t(14,D=[...D,{id:Date.now().toString(),nodeId:h.id,summary:M.trim(),minutes:u,createdAt:new Date().toISOString()}])}t(16,M=""),t(15,H="")}}async function bl(){const u=await Q("PickFile");u&&await Ut(h.id,u)}async function Ui(){const u=await Q("PickDirectory");u&&await Ut(h.id,u)}async function Ut(u,I){t(29,Y=!0);try{const oe=await Q("PreviewImport",I);t(30,ke=oe),se=I,t(31,$=!0)}catch(oe){t(7,p=String(oe))}t(29,Y=!1)}async function Wt(u){try{const I=u==="copy"?await Q("AddPathCopy",h.id,se):await Q("AddPathLink",h.id,se);t(31,$=!1),t(30,ke=null),t(35,re=[]),t(34,ie=null),await Promise.all([$e(h.id),X(h.id)])}catch(I){t(7,p=String(I))}}function Wi(){t(31,$=!1),t(30,ke=null)}async function kl({id:u,type:I}){const oe=m(I==="folder"?"delete.folder":"delete.file");St({title:m("delete.confirmTitle"),message:m("delete.confirmMessage")+" "+oe+"?",confirmText:m("common.delete"),danger:!0,onConfirm:async()=>{try{await Q("DeleteFileOrFolder",u),N=N.filter(nt=>nt.nodeId!==u);const we=ie||h.id;await X(we)}catch(we){t(7,p=String(we))}}})}async function Ki(u){if(!u||u.length===0)return;if(!h){t(7,p=m("error.selectCaseFirst"));return}const I=u[0];await Ut(h.id,I)}function Gi(u){return T===u?"tab active":"tab"}function qi(u){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")}[u]||u}function Yi(u){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")}[u]||u||m("kind.case")}function Xi(){t(24,G=!0),t(25,J=""),t(26,K="open_url"),t(27,P="")}function Ji(){t(24,G=!1),t(25,J=""),t(27,P="")}async function Kt(){if(!(!J.trim()||!P.trim()||!h))try{const u=await Q("CreateAction",h.id,K,J.trim(),P.trim());u&&u.id&&t(13,F=[...F,u]),t(24,G=!1),t(25,J=""),t(27,P="")}catch(u){t(7,p=String(u))}}async function yl(u){try{await Q("DeleteAction",u),t(13,F=F.filter(I=>I.id!==u))}catch(I){t(7,p=String(I))}}function Zi(u){const I=W.find(oe=>oe.id===u);return I?I.label:u}async function rt(u){try{const I=await Q("GetNodeDetail",u);I&&Ae(I)}catch(I){t(7,p=String(I))}}async function Tt(){try{t(52,ye=await Q("SyncStatus"))}catch{t(52,ye={configured:!1,serverUrl:"",deviceId:"",unpushedOps:0,lastSyncAt:"",syncInterval:0})}}function Qi(){t(51,Pe=!0),t(54,Me=(ye==null?void 0:ye.serverUrl)||""),t(55,Ee=""),t(56,_e=""),t(57,ge=(ye==null?void 0:ye.syncInterval)||0),t(58,fe="")}function xi(){t(51,Pe=!1),t(58,fe="")}async function $i(){t(53,He=!0),t(58,fe="");try{await Q("SyncConfigure",Me,Ee,_e),ge>0&&await Q("SyncSetInterval",ge),t(56,_e=""),t(55,Ee=""),await Tt(),t(51,Pe=!1)}catch(u){t(58,fe="err: "+String(u))}t(53,He=!1)}async function es(){t(53,He=!0),t(58,fe="");try{await Q("SyncSetInterval",ge),t(58,fe=m("sync.settingsSaved")),await Tt()}catch(u){t(58,fe="err: "+String(u))}t(53,He=!1)}async function ts(){t(53,He=!0),t(58,fe="");try{await Q("SyncTestConnection",Me,Ee,_e),t(58,fe="connection ok")}catch(u){t(58,fe="connection failed: "+String(u))}t(53,He=!1)}async function ls(){t(53,He=!0),t(58,fe="");try{await Q("SyncDisconnect"),t(58,fe="disconnected"),await Tt()}catch(u){t(58,fe="err: "+String(u))}t(53,He=!1)}async function ns(){t(53,He=!0),t(58,fe="");try{const u=await Q("SyncNow");t(58,fe="pushed "+u.pushed+", pulled "+u.pulled+" (seq "+u.serverSequence+")"),await Tt()}catch(u){t(58,fe="err: "+String(u))}t(53,He=!1)}const is=u=>De(u.id),ss=()=>t(7,p=""),os=()=>t(7,p="");function rs(){C.content=this.value,t(12,C)}const cs=u=>{t(10,T=u.id),u.id==="files"&&h&&ae.length===0&&!ie&&X(h.id)},as=()=>{t(10,T="notes"),_l()},fs=()=>{t(10,T="files"),bl()},ds=()=>t(10,T="worklog"),us=u=>Vt(u);function vs(){V=this.value,t(23,V)}const ms=u=>u.key==="Enter"&&gl(),ps=u=>Vt(u),_s=u=>{const I=u.detail;I===0?(t(35,re=[]),t(34,ie=null),X(h.id)):pt(I-1)},gs=u=>de(u.detail),hs=u=>_t(u.detail),bs=u=>Q("OpenFile",u.detail),ks=u=>Q("OpenFolder",u.detail),ys=u=>kl(u.detail),ws=u=>$t(u.detail.id),Cs=u=>Ct(u.detail),Ss=u=>el(u.detail),Ts=u=>tl(u.detail),Ns=u=>il(u.detail),Ds=u=>nl(u.detail),Fs=u=>sl(u.detail),Is=u=>Q("OpenFile",u.detail),Ms=u=>Q("RunAction",u.id),As=u=>yl(u.id);function Es(){M=this.value,t(16,M)}function Ls(){H=jt(this.value),t(15,H)}const js=u=>rt(u.nodeId),Ps=(u,I)=>I.key==="Enter"&&rt(u.nodeId),Os=u=>rt(u.nodeId),zs=(u,I)=>I.key==="Enter"&&rt(u.nodeId),Bs=u=>rt(u.nodeId),Rs=(u,I)=>I.key==="Enter"&&rt(u.nodeId),Hs=u=>rt(u.nodeId),Vs=(u,I)=>I.key==="Enter"&&rt(u.nodeId),Us=()=>t(20,B=null),Ws=u=>t(20,B=u);function Ks(){E=this.value,t(18,E)}const Gs=u=>u.key==="Enter"&&dl(),qs=u=>fl(u),Ys=()=>pl(z.node),Xs=()=>ul(z.node),Js=()=>vl(z.node),Zs=()=>ml(z.node);function Qs(){J=this.value,t(25,J)}const xs=u=>u.key==="Enter"&&Kt();function $s(){K=_o(this),t(26,K),t(59,W)}function eo(){P=this.value,t(27,P)}const to=u=>u.key==="Enter"&&Kt(),lo=()=>Wt("copy"),no=()=>Wt("link");function io(){he=this.value,t(49,he)}function so(){Me=this.value,t(54,Me)}function oo(){Ee=this.value,t(55,Ee)}function ro(){_e=this.value,t(56,_e)}function co(){ge=jt(this.value),t(57,ge)}return[n,s,o,r,a,g,_,p,b,h,T,S,C,F,D,H,M,A,E,U,B,z,R,V,G,J,K,P,Z,Y,ke,$,x,ve,ie,re,ae,Ge,Le,Se,je,me,le,Ve,lt,xe,qe,pe,Ce,he,be,Pe,ye,He,Me,Ee,_e,ge,fe,W,Be,De,Ae,X,de,et,pt,_t,gt,Ye,Ct,$t,el,tl,ll,nl,il,sl,wi,Ci,Si,cl,Di,Fi,Ii,Mi,fl,Ai,Ei,dl,Li,ht,ji,Pi,Oi,ul,vl,ml,pl,_l,zi,gl,Vt,Bi,Ri,Hi,Vi,bl,Ui,Wt,Wi,kl,Gi,qi,Yi,Xi,Ji,Kt,yl,Zi,rt,Qi,xi,$i,es,ts,ls,ns,is,ss,os,rs,cs,as,fs,ds,us,vs,ms,ps,_s,gs,hs,bs,ks,ys,ws,Cs,Ss,Ts,Ns,Ds,Fs,Is,Ms,As,Es,Ls,js,Ps,Os,zs,Bs,Rs,Hs,Vs,Us,Ws,Ks,Gs,qs,Ys,Xs,Js,Zs,Qs,xs,$s,eo,to,lo,no,io,so,oo,ro,co]}class Mc extends dt{constructor(e){super(),ft(this,e,Ic,Dc,at,{},null,[-1,-1,-1,-1,-1,-1,-1,-1,-1])}}new Mc({target:document.getElementById("app")}); diff --git a/cmd/verstak-gui/frontend-dist/index.html b/cmd/verstak-gui/frontend-dist/index.html index d8630b8..2c06088 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 9422883..7222e36 100644 --- a/frontend/src/App.svelte +++ b/frontend/src/App.svelte @@ -752,7 +752,20 @@ async function openNodeFolder(node) { closeContextMenu() try { - await wailsCall('OpenNodeFolder', node.id) + await wailsCall('OpenFolder', node.id) + } catch (e) { error = String(e) } + } + + async function moveNodeToRoot(node) { + closeContextMenu() + try { + await wailsCall('MoveNode', node.id, '') + await reloadTreePreservingExpanded() + const refreshed = await wailsCall('GetNodeDetail', node.id) + if (refreshed) { + selectedSection = '' + selectNode(refreshed) + } } catch (e) { error = String(e) } } @@ -1623,6 +1636,12 @@ {/each}
{/if} + {#if contextMenu.node && contextMenu.node.parent_id} + +
+ {/if} @@ -1868,8 +1887,8 @@ /* Tabs */ .tabs { display: flex; border-bottom: 1px solid #2a2a3c; flex-shrink: 0; padding: 0 24px; } .tab { padding: 10px 16px; border: none; background: none; color: #888; font-size: 13px; cursor: pointer; border-bottom: 2px solid transparent; font-family: inherit; } -.tab:hover { color: #ccc; } -.tab.active { color: #e4e4ef; border-bottom-color: #6366f1; } +.tab:hover { color: #a5b4fc; } +.tab.active { color: #e4e4ef; border-bottom-color: #6366f1; background: rgba(99,102,241,0.06); font-weight: 500; } /* Tab content */ .tab-content { flex: 1; overflow-y: auto; } diff --git a/frontend/src/FileTreeRow.svelte b/frontend/src/FileTreeRow.svelte index ab4fcec..b67450d 100644 --- a/frontend/src/FileTreeRow.svelte +++ b/frontend/src/FileTreeRow.svelte @@ -48,7 +48,7 @@ } function handleShowInFolder() { - dispatch('showInFolder', item.id) + dispatch('showInFolder', item.nodeId || item.id) } function handleDelete() { @@ -152,6 +152,11 @@ + {:else} + {/if} - {#if isFolder} - - {/if} +