diff --git a/cmd/verstak-gui/app.go b/cmd/verstak-gui/app.go index caf9e4a..49b6feb 100644 --- a/cmd/verstak-gui/app.go +++ b/cmd/verstak-gui/app.go @@ -104,16 +104,17 @@ func (a *App) autoSyncLoop() { // ============================================================ type NodeDTO struct { - ID string `json:"id"` - ParentID *string `json:"parent_id,omitempty"` - Type string `json:"type"` - Title string `json:"title"` - TemplateID string `json:"template_id"` - FsPath string `json:"fs_path"` - SortOrder int `json:"sort_order"` - Archived bool `json:"archived"` - CreatedAt string `json:"created_at"` - UpdatedAt string `json:"updated_at"` + ID string `json:"id"` + ParentID *string `json:"parent_id,omitempty"` + Type string `json:"type"` + Title string `json:"title"` + TemplateID string `json:"template_id"` + FsPath string `json:"fs_path"` + SortOrder int `json:"sort_order"` + Archived bool `json:"archived"` + HasChildren bool `json:"has_children"` + CreatedAt string `json:"created_at"` + UpdatedAt string `json:"updated_at"` } type TemplateDTO struct { diff --git a/cmd/verstak-gui/bindings_nodes.go b/cmd/verstak-gui/bindings_nodes.go index c695392..e763f57 100644 --- a/cmd/verstak-gui/bindings_nodes.go +++ b/cmd/verstak-gui/bindings_nodes.go @@ -19,7 +19,15 @@ func (a *App) ListWorkspaceTree() ([]NodeDTO, error) { if err != nil { return nil, err } - return filterContainers(toNodeDTOs(list)), nil + dtos := filterContainers(toNodeDTOs(list)) + for i := range dtos { + n, err := a.nodes.CountChildren(dtos[i].ID, "case", "client", "project", "folder", "document", "recipe") + if err != nil { + return nil, err + } + dtos[i].HasChildren = n > 0 + } + return dtos, nil } func (a *App) ListWorkspaceChildren(parentID string) ([]NodeDTO, error) { @@ -27,7 +35,15 @@ func (a *App) ListWorkspaceChildren(parentID string) ([]NodeDTO, error) { if err != nil { return nil, err } - return filterContainers(toNodeDTOs(list)), nil + dtos := filterContainers(toNodeDTOs(list)) + for i := range dtos { + n, err := a.nodes.CountChildren(dtos[i].ID, "case", "client", "project", "folder", "document", "recipe") + if err != nil { + return nil, err + } + dtos[i].HasChildren = n > 0 + } + return dtos, nil } func filterContainers(dtos []NodeDTO) []NodeDTO { diff --git a/cmd/verstak-gui/frontend-dist/assets/main-CHi9sCXv.css b/cmd/verstak-gui/frontend-dist/assets/main-CHi9sCXv.css deleted file mode 100644 index 29314c2..0000000 --- a/cmd/verstak-gui/frontend-dist/assets/main-CHi9sCXv.css +++ /dev/null @@ -1 +0,0 @@ -.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-14f5ns4.svelte-14f5ns4{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-14f5ns4.svelte-14f5ns4:hover{background:#223}.tree-item.selected.svelte-14f5ns4.svelte-14f5ns4{background:#2a2a4a;color:#fff;font-weight:500}.tree-toggle.svelte-14f5ns4.svelte-14f5ns4{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-14f5ns4.svelte-14f5ns4:hover{color:#a5b4fc}.tree-toggle-placeholder.svelte-14f5ns4.svelte-14f5ns4{display:inline-block;width:20px;flex-shrink:0}.tree-icon.svelte-14f5ns4.svelte-14f5ns4{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-14f5ns4.svelte-14f5ns4:hover,.tree-item.selected.svelte-14f5ns4 .tree-icon.svelte-14f5ns4{color:#a5b4fc}.tree-label.svelte-14f5ns4.svelte-14f5ns4{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;line-height:32px}.svelte-ob364t.svelte-ob364t,.svelte-ob364t.svelte-ob364t:before,.svelte-ob364t.svelte-ob364t:after{box-sizing:border-box;margin:0;padding:0}.app.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{padding:16px 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #2a2a3c;flex-shrink:0}.logo.svelte-ob364t.svelte-ob364t{font-size:20px;line-height:1}.brand-name.svelte-ob364t.svelte-ob364t{font-size:16px;font-weight:600}.sidebar-nav.svelte-ob364t.svelte-ob364t{flex:1;overflow-y:auto;padding:12px 0}.nav-group.svelte-ob364t.svelte-ob364t{margin-bottom:16px}.nav-label.svelte-ob364t.svelte-ob364t{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666;padding:4px 20px;margin-bottom:4px}.nav-item.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{background:#223}.nav-item.selected.svelte-ob364t.svelte-ob364t{background:#2a2a4a;color:#fff;font-weight:500}.workspace-tree-area.svelte-ob364t.svelte-ob364t{min-height:32px}.nav-empty.svelte-ob364t.svelte-ob364t{padding:8px 20px;color:#555;font-size:12px}.nav-label-row.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{background:none;border:none;color:#666;cursor:pointer;font-size:16px;padding:0 4px;font-family:inherit;line-height:1}.nav-add-btn.svelte-ob364t.svelte-ob364t:hover{color:#ccc}.tree-item.svelte-ob364t.svelte-ob364t{display:flex;align-items:center;padding:4px 8px 4px 0;cursor:default;font-size:13px;color:#ccc}.tree-item.svelte-ob364t.svelte-ob364t:hover{background:#223}.tree-item.selected.svelte-ob364t.svelte-ob364t{background:#2a2a4a;color:#fff;font-weight:500}.tree-toggle.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{color:#888}.tree-arrow.svelte-ob364t.svelte-ob364t{display:inline-block}.tree-spacer.svelte-ob364t.svelte-ob364t{display:inline-block;width:12px}.tree-label.svelte-ob364t.svelte-ob364t{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 4px;cursor:pointer}.context-menu-backdrop.svelte-ob364t.svelte-ob364t{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.context-menu.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{padding:6px 12px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666}.context-menu-item.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{background:#223;color:#fff}.context-menu-item.danger.svelte-ob364t.svelte-ob364t{color:#ff6b6b}.context-menu-item.danger.svelte-ob364t.svelte-ob364t:hover{background:#3a2222;color:#ff6b6b}.context-menu-divider.svelte-ob364t.svelte-ob364t{height:1px;background:#2a2a3c;margin:4px 0}.create-context.svelte-ob364t.svelte-ob364t{font-size:12px;color:#888;margin-bottom:12px}.sidebar-footer.svelte-ob364t.svelte-ob364t{padding:8px 12px;border-top:1px solid #2a2a3c;flex-shrink:0;display:flex;flex-direction:column;gap:4px}.version.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555;text-align:center}.main.svelte-ob364t.svelte-ob364t{flex:1;display:flex;flex-direction:column;height:100vh;min-width:0;overflow:hidden;background:#13131f}.header.svelte-ob364t.svelte-ob364t{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;flex-shrink:0;min-height:48px}.header-left.svelte-ob364t.svelte-ob364t{display:flex;align-items:center;gap:8px;flex:1}.header-right.svelte-ob364t.svelte-ob364t{display:flex;align-items:center;gap:8px}.header-sync-btn.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{background:#2a2a50;color:#e4e4ef;border-color:#818cf8}.header-sync-btn.svelte-ob364t.svelte-ob364t:disabled{opacity:.5;cursor:not-allowed}.sync-badge.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{font-size:14px;font-weight:500}.crumb.placeholder.svelte-ob364t.svelte-ob364t{color:#666}.crumb-type.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555;background:#1e1e2e;padding:2px 8px;border-radius:10px;margin-left:8px}.error-banner.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{background:none;border:none;color:#f66;cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:2px}.dismiss-btn.svelte-ob364t.svelte-ob364t:hover{color:#f44}.tabs.svelte-ob364t.svelte-ob364t{display:flex;border-bottom:1px solid #2a2a3c;flex-shrink:0;padding:0 24px}.tab.svelte-ob364t.svelte-ob364t{padding:10px 16px;border:none;background:none;color:#888;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;font-family:inherit}.tab.svelte-ob364t.svelte-ob364t:hover{color:#ccc}.tab.active.svelte-ob364t.svelte-ob364t{color:#e4e4ef;border-bottom-color:#6366f1}.tab-content.svelte-ob364t.svelte-ob364t{flex:1;overflow-y:auto}.note-editor.svelte-ob364t.svelte-ob364t{flex:1;display:flex;flex-direction:column;height:100%}.note-editor-header.svelte-ob364t.svelte-ob364t{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;gap:12px;flex-shrink:0}.note-title.svelte-ob364t.svelte-ob364t{font-size:16px;font-weight:500}.dirty-mark.svelte-ob364t.svelte-ob364t{color:#f59e0b;font-size:10px}.note-editor-actions.svelte-ob364t.svelte-ob364t{margin-left:auto;display:flex;gap:8px}.note-textarea.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{padding:24px}.overview.svelte-ob364t h2.svelte-ob364t{font-size:24px;margin-bottom:16px}.meta-grid.svelte-ob364t.svelte-ob364t{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}.meta-item.svelte-ob364t.svelte-ob364t{background:#1a1a28;padding:12px 16px;border-radius:8px}.meta-label.svelte-ob364t.svelte-ob364t{display:block;font-size:11px;color:#666;margin-bottom:4px;text-transform:uppercase}.quick-actions.svelte-ob364t.svelte-ob364t{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.qa-btn.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{background:#223}.qa-btn.svelte-ob364t.svelte-ob364t:disabled{opacity:.4;cursor:not-allowed}.recent-section.svelte-ob364t.svelte-ob364t{margin-bottom:24px}.recent-section.svelte-ob364t h3.svelte-ob364t{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:8px}.recent-note.svelte-ob364t.svelte-ob364t{padding:8px 12px;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between}.recent-note.svelte-ob364t.svelte-ob364t:hover{background:#1a1a28}.recent-date.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555}.recent-entry.svelte-ob364t.svelte-ob364t{padding:6px 0;font-size:13px;color:#888;border-bottom:1px solid #1a1a28}.notes-tab.svelte-ob364t.svelte-ob364t{padding:24px}.tab-toolbar.svelte-ob364t.svelte-ob364t{margin-bottom:16px}.create-form.svelte-ob364t.svelte-ob364t{background:#1a1a28;padding:16px;border-radius:8px;margin-bottom:16px}.create-form.svelte-ob364t input.svelte-ob364t{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-ob364t input.svelte-ob364t:focus{outline:none;border-color:#6366f1}.form-actions.svelte-ob364t.svelte-ob364t{display:flex;gap:8px}.notes-list.svelte-ob364t.svelte-ob364t{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.note-card.svelte-ob364t.svelte-ob364t{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:16px;cursor:pointer}.note-card.svelte-ob364t.svelte-ob364t:hover{border-color:#3a3a5c}.note-card-title.svelte-ob364t.svelte-ob364t{font-size:14px;font-weight:500;margin-bottom:4px}.note-card-date.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555}.worklog-tab.svelte-ob364t.svelte-ob364t{padding:24px}.worklog-form.svelte-ob364t.svelte-ob364t{display:flex;gap:8px;margin-bottom:24px;align-items:center}.worklog-form.svelte-ob364t input.svelte-ob364t{padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit}.worklog-form.svelte-ob364t input.svelte-ob364t:focus{outline:none;border-color:#6366f1}.worklog-form.svelte-ob364t input[type=text].svelte-ob364t{flex:1}.worklog-form.svelte-ob364t input[type=number].svelte-ob364t{width:70px}.worklog-entry.svelte-ob364t.svelte-ob364t{padding:12px 0;border-bottom:1px solid #1a1a28}.wl-meta.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555;margin-top:2px}.actions-tab.svelte-ob364t.svelte-ob364t{padding:24px}.action-card.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.action-title.svelte-ob364t.svelte-ob364t{font-weight:500}.action-type.svelte-ob364t.svelte-ob364t{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px;white-space:nowrap}.action-data.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{display:flex;gap:4px;flex-shrink:0}.action-btns.svelte-ob364t .btn-danger.svelte-ob364t{color:#ff6b6b;border-color:#4a2222;padding:4px 8px}.action-btns.svelte-ob364t .btn-danger.svelte-ob364t:hover{background:#3a2222}.empty-state.svelte-ob364t.svelte-ob364t{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-state.svelte-ob364t p.svelte-ob364t{margin:0;font-size:14px;color:#666}.empty-state.svelte-ob364t .empty-icon.svelte-ob364t{margin-bottom:12px;color:#444}.empty-state.svelte-ob364t .hint.svelte-ob364t{font-size:12px;color:#555;margin-top:6px}.empty-state.svelte-ob364t .empty-actions.svelte-ob364t{display:flex;gap:8px;justify-content:center;margin-top:16px}.empty-note.svelte-ob364t.svelte-ob364t{font-size:12px;color:#444;margin-top:16px}.welcome.svelte-ob364t.svelte-ob364t{padding:48px 24px;text-align:center}.welcome.svelte-ob364t h2.svelte-ob364t{font-size:32px;font-weight:300;color:#8888a4;margin-bottom:16px}.welcome.svelte-ob364t p.svelte-ob364t{color:#666;font-size:14px}.error-text.svelte-ob364t.svelte-ob364t{color:#f88}.fab.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{background:#4f46e5}.modal-overlay.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;padding:24px;width:400px;max-width:90vw}.modal.svelte-ob364t h3.svelte-ob364t{font-size:18px;margin-bottom:16px}.form-group.svelte-ob364t.svelte-ob364t{margin-bottom:12px}.form-group.svelte-ob364t label.svelte-ob364t{display:block;font-size:12px;color:#666;margin-bottom:4px}.form-group.svelte-ob364t input.svelte-ob364t,.form-group.svelte-ob364t select.svelte-ob364t{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-ob364t select.svelte-ob364t{-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-ob364t input.svelte-ob364t:focus,.form-group.svelte-ob364t select.svelte-ob364t:focus{outline:none;border-color:#6366f1}.modal-actions.svelte-ob364t.svelte-ob364t{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.btn.svelte-ob364t.svelte-ob364t{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit}.btn.svelte-ob364t.svelte-ob364t:hover{background:#223}.btn-primary.svelte-ob364t.svelte-ob364t{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-ob364t.svelte-ob364t:hover{background:#4f46e5}.btn.svelte-ob364t.svelte-ob364t:disabled{opacity:.4;cursor:not-allowed}.btn-sm.svelte-ob364t.svelte-ob364t{padding:4px 10px;font-size:12px}.btn-danger.svelte-ob364t.svelte-ob364t{color:#ff6b6b;border-color:#4a2222}.btn-danger.svelte-ob364t.svelte-ob364t:hover{background:#3a2222}.files-tab.svelte-ob364t.svelte-ob364t{padding:20px}.files-tab.svelte-ob364t .tab-toolbar.svelte-ob364t{display:flex;gap:8px;align-items:center;margin-bottom:16px}.file-list.svelte-ob364t.svelte-ob364t{display:flex;flex-direction:column}.back-btn.svelte-ob364t.svelte-ob364t{margin-bottom:4px;display:inline-flex;align-items:center;gap:4px}.import-summary.svelte-ob364t.svelte-ob364t{margin-bottom:16px}.summary-row.svelte-ob364t.svelte-ob364t{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;border-bottom:1px solid #2a2a3c}.summary-warn.svelte-ob364t.svelte-ob364t{margin-top:8px;padding:8px 12px;background:#3a2a22;border-radius:6px;color:#fa6;font-size:13px}.rename-error.svelte-ob364t.svelte-ob364t{color:#ff6b6b;font-size:12px;margin-top:4px}.template-cards.svelte-ob364t.svelte-ob364t{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.template-card.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{background:#1e1e30;border-color:#3a3a5c}.template-card.selected.svelte-ob364t.svelte-ob364t{background:#2a2a50;border-color:#6366f1;color:#e4e4ef}.template-card-text.svelte-ob364t.svelte-ob364t{display:flex;flex-direction:column;gap:2px;min-width:0}.template-card-title.svelte-ob364t.svelte-ob364t{font-weight:500}.template-card-desc.svelte-ob364t.svelte-ob364t{font-size:11px;color:#888}.today-dashboard.svelte-ob364t.svelte-ob364t{padding:24px;overflow-y:auto;flex:1}.today-header.svelte-ob364t.svelte-ob364t{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.today-header.svelte-ob364t h2.svelte-ob364t{font-size:24px}.today-date.svelte-ob364t.svelte-ob364t{font-size:13px;color:#666}.today-summary.svelte-ob364t.svelte-ob364t{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.summary-chip.svelte-ob364t.svelte-ob364t{font-size:12px;color:#b0b0c0;background:#1a1a28;border:1px solid #2a2a3c;padding:4px 12px;border-radius:16px}.today-case.svelte-ob364t.svelte-ob364t{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;margin-bottom:12px;overflow:hidden}.today-case-header.svelte-ob364t.svelte-ob364t{padding:12px 16px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #2a2a3c;cursor:pointer}.today-case-header.svelte-ob364t.svelte-ob364t:hover{background:#1e1e30}.today-case-title.svelte-ob364t.svelte-ob364t{font-weight:500}.today-case-type.svelte-ob364t.svelte-ob364t{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px}.today-case-count.svelte-ob364t.svelte-ob364t{font-size:11px;color:#6366f1;margin-left:4px}.today-case-time.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555;margin-left:auto}.today-events.svelte-ob364t.svelte-ob364t{padding:8px 16px}.today-event.svelte-ob364t.svelte-ob364t{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:#b0b0c0;cursor:pointer}.today-event.svelte-ob364t.svelte-ob364t:hover{color:#e4e4ef}.today-event-icon.svelte-ob364t.svelte-ob364t{width:18px;text-align:center;color:#6366f1;font-size:13px}.today-event-title.svelte-ob364t.svelte-ob364t{flex:1}.today-event-type.svelte-ob364t.svelte-ob364t{font-size:11px;color:#666}.today-event-time.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555;margin-left:auto}.today-events-empty.svelte-ob364t.svelte-ob364t{padding:8px 16px;font-size:13px;color:#666;font-style:italic}.today-empty.svelte-ob364t.svelte-ob364t{padding:48px 24px;text-align:center}.today-empty.svelte-ob364t p.svelte-ob364t{color:#666;font-size:14px;margin:0}.today-empty.svelte-ob364t .hint.svelte-ob364t{font-size:12px;color:#555;margin-top:8px}.today-timeline.svelte-ob364t.svelte-ob364t{margin-top:24px}.today-timeline.svelte-ob364t h3.svelte-ob364t{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:12px}.timeline-event.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{color:#e4e4ef}.timeline-dot.svelte-ob364t.svelte-ob364t{width:6px;height:6px;border-radius:50%;background:#6366f1;margin-left:-19px;flex-shrink:0}.timeline-title.svelte-ob364t.svelte-ob364t{flex:1}.timeline-type.svelte-ob364t.svelte-ob364t{font-size:11px;color:#666}.timeline-time.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555}.activity-tab.svelte-ob364t.svelte-ob364t{padding:24px}.activity-events.svelte-ob364t.svelte-ob364t{display:flex;flex-direction:column;gap:2px}.activity-event.svelte-ob364t.svelte-ob364t{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;color:#b0b0c0;cursor:pointer}.activity-event.svelte-ob364t.svelte-ob364t:hover{background:#1a1a28;color:#e4e4ef}.activity-event-icon.svelte-ob364t.svelte-ob364t{width:18px;text-align:center;color:#6366f1;font-size:13px;flex-shrink:0}.activity-event-title.svelte-ob364t.svelte-ob364t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-event-type.svelte-ob364t.svelte-ob364t{font-size:11px;color:#666;flex-shrink:0}.activity-event-target.svelte-ob364t.svelte-ob364t{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px;flex-shrink:0}.activity-event-time.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555;margin-left:8px;flex-shrink:0}.activity-feed.svelte-ob364t.svelte-ob364t{padding:24px;overflow-y:auto;flex:1}.activity-feed-header.svelte-ob364t.svelte-ob364t{margin-bottom:20px}.activity-feed-header.svelte-ob364t h2.svelte-ob364t{font-size:24px}.activity-feed-events.svelte-ob364t.svelte-ob364t{display:flex;flex-direction:column;gap:2px}.activity-feed-event.svelte-ob364t.svelte-ob364t{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer}.activity-feed-event.svelte-ob364t.svelte-ob364t:hover{background:#1a1a28;color:#e4e4ef}.activity-feed-icon.svelte-ob364t.svelte-ob364t{width:20px;text-align:center;color:#6366f1;font-size:14px;flex-shrink:0;margin-top:1px}.activity-feed-body.svelte-ob364t.svelte-ob364t{flex:1;min-width:0}.activity-feed-title.svelte-ob364t.svelte-ob364t{font-size:14px;color:#e4e4ef}.activity-feed-meta.svelte-ob364t.svelte-ob364t{display:flex;align-items:center;gap:8px;margin-top:2px}.activity-feed-type.svelte-ob364t.svelte-ob364t{font-size:11px;color:#666}.activity-feed-target.svelte-ob364t.svelte-ob364t{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px}.activity-feed-time.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555}.sidebar-sync-btn.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{background:#2a2a50;color:#e4e4ef;border-color:#818cf8}.sidebar-sync-label.svelte-ob364t.svelte-ob364t{flex:1;text-align:left}.sync-dot.svelte-ob364t.svelte-ob364t{width:8px;height:8px;border-radius:50%;background:#4a4a4a;flex-shrink:0}.sync-dot.active.svelte-ob364t.svelte-ob364t{background:#4ade80;box-shadow:0 0 6px #4ade8080}.modal-sync.svelte-ob364t.svelte-ob364t{width:460px}.sync-status.svelte-ob364t.svelte-ob364t{background:#13131f;border-radius:8px;padding:12px;margin-bottom:16px}.sync-row.svelte-ob364t.svelte-ob364t{display:flex;justify-content:space-between;padding:4px 0;font-size:13px}.sync-label.svelte-ob364t.svelte-ob364t{color:#666}.sync-value.svelte-ob364t.svelte-ob364t{color:#e4e4ef}.sync-value.mono.svelte-ob364t.svelte-ob364t{font-family:SF Mono,Fira Code,monospace;font-size:12px}.sync-result.svelte-ob364t.svelte-ob364t{font-size:12px;color:#6366f1;padding:4px 0}.sync-connected-actions.svelte-ob364t.svelte-ob364t{display:flex;gap:8px;margin-bottom:16px} diff --git a/cmd/verstak-gui/frontend-dist/assets/main-CJu7OoK7.css b/cmd/verstak-gui/frontend-dist/assets/main-CJu7OoK7.css new file mode 100644 index 0000000..0a26e96 --- /dev/null +++ b/cmd/verstak-gui/frontend-dist/assets/main-CJu7OoK7.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-ob364t.svelte-ob364t,.svelte-ob364t.svelte-ob364t:before,.svelte-ob364t.svelte-ob364t:after{box-sizing:border-box;margin:0;padding:0}.app.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{padding:16px 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #2a2a3c;flex-shrink:0}.logo.svelte-ob364t.svelte-ob364t{font-size:20px;line-height:1}.brand-name.svelte-ob364t.svelte-ob364t{font-size:16px;font-weight:600}.sidebar-nav.svelte-ob364t.svelte-ob364t{flex:1;overflow-y:auto;padding:12px 0}.nav-group.svelte-ob364t.svelte-ob364t{margin-bottom:16px}.nav-label.svelte-ob364t.svelte-ob364t{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666;padding:4px 20px;margin-bottom:4px}.nav-item.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{background:#223}.nav-item.selected.svelte-ob364t.svelte-ob364t{background:#2a2a4a;color:#fff;font-weight:500}.workspace-tree-area.svelte-ob364t.svelte-ob364t{min-height:32px}.nav-empty.svelte-ob364t.svelte-ob364t{padding:8px 20px;color:#555;font-size:12px}.nav-label-row.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{background:none;border:none;color:#666;cursor:pointer;font-size:16px;padding:0 4px;font-family:inherit;line-height:1}.nav-add-btn.svelte-ob364t.svelte-ob364t:hover{color:#ccc}.tree-item.svelte-ob364t.svelte-ob364t{display:flex;align-items:center;padding:4px 8px 4px 0;cursor:default;font-size:13px;color:#ccc}.tree-item.svelte-ob364t.svelte-ob364t:hover{background:#223}.tree-item.selected.svelte-ob364t.svelte-ob364t{background:#2a2a4a;color:#fff;font-weight:500}.tree-toggle.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{color:#888}.tree-arrow.svelte-ob364t.svelte-ob364t{display:inline-block}.tree-spacer.svelte-ob364t.svelte-ob364t{display:inline-block;width:12px}.tree-label.svelte-ob364t.svelte-ob364t{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 4px;cursor:pointer}.context-menu-backdrop.svelte-ob364t.svelte-ob364t{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.context-menu.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{padding:6px 12px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666}.context-menu-item.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{background:#223;color:#fff}.context-menu-item.danger.svelte-ob364t.svelte-ob364t{color:#ff6b6b}.context-menu-item.danger.svelte-ob364t.svelte-ob364t:hover{background:#3a2222;color:#ff6b6b}.context-menu-divider.svelte-ob364t.svelte-ob364t{height:1px;background:#2a2a3c;margin:4px 0}.create-context.svelte-ob364t.svelte-ob364t{font-size:12px;color:#888;margin-bottom:12px}.sidebar-footer.svelte-ob364t.svelte-ob364t{padding:8px 12px;border-top:1px solid #2a2a3c;flex-shrink:0;display:flex;flex-direction:column;gap:4px}.version.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555;text-align:center}.main.svelte-ob364t.svelte-ob364t{flex:1;display:flex;flex-direction:column;height:100vh;min-width:0;overflow:hidden;background:#13131f}.header.svelte-ob364t.svelte-ob364t{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;flex-shrink:0;min-height:48px}.header-left.svelte-ob364t.svelte-ob364t{display:flex;align-items:center;gap:8px;flex:1}.header-right.svelte-ob364t.svelte-ob364t{display:flex;align-items:center;gap:8px}.header-sync-btn.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{background:#2a2a50;color:#e4e4ef;border-color:#818cf8}.header-sync-btn.svelte-ob364t.svelte-ob364t:disabled{opacity:.5;cursor:not-allowed}.sync-badge.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{font-size:14px;font-weight:500}.crumb.placeholder.svelte-ob364t.svelte-ob364t{color:#666}.crumb-type.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555;background:#1e1e2e;padding:2px 8px;border-radius:10px;margin-left:8px}.error-banner.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{background:none;border:none;color:#f66;cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:2px}.dismiss-btn.svelte-ob364t.svelte-ob364t:hover{color:#f44}.tabs.svelte-ob364t.svelte-ob364t{display:flex;border-bottom:1px solid #2a2a3c;flex-shrink:0;padding:0 24px}.tab.svelte-ob364t.svelte-ob364t{padding:10px 16px;border:none;background:none;color:#888;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;font-family:inherit}.tab.svelte-ob364t.svelte-ob364t:hover{color:#ccc}.tab.active.svelte-ob364t.svelte-ob364t{color:#e4e4ef;border-bottom-color:#6366f1}.tab-content.svelte-ob364t.svelte-ob364t{flex:1;overflow-y:auto}.note-editor.svelte-ob364t.svelte-ob364t{flex:1;display:flex;flex-direction:column;height:100%}.note-editor-header.svelte-ob364t.svelte-ob364t{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;gap:12px;flex-shrink:0}.note-title.svelte-ob364t.svelte-ob364t{font-size:16px;font-weight:500}.dirty-mark.svelte-ob364t.svelte-ob364t{color:#f59e0b;font-size:10px}.note-editor-actions.svelte-ob364t.svelte-ob364t{margin-left:auto;display:flex;gap:8px}.note-textarea.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{padding:24px}.overview.svelte-ob364t h2.svelte-ob364t{font-size:24px;margin-bottom:16px}.meta-grid.svelte-ob364t.svelte-ob364t{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}.meta-item.svelte-ob364t.svelte-ob364t{background:#1a1a28;padding:12px 16px;border-radius:8px}.meta-label.svelte-ob364t.svelte-ob364t{display:block;font-size:11px;color:#666;margin-bottom:4px;text-transform:uppercase}.quick-actions.svelte-ob364t.svelte-ob364t{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.qa-btn.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{background:#223}.qa-btn.svelte-ob364t.svelte-ob364t:disabled{opacity:.4;cursor:not-allowed}.recent-section.svelte-ob364t.svelte-ob364t{margin-bottom:24px}.recent-section.svelte-ob364t h3.svelte-ob364t{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:8px}.recent-note.svelte-ob364t.svelte-ob364t{padding:8px 12px;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between}.recent-note.svelte-ob364t.svelte-ob364t:hover{background:#1a1a28}.recent-date.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555}.recent-entry.svelte-ob364t.svelte-ob364t{padding:6px 0;font-size:13px;color:#888;border-bottom:1px solid #1a1a28}.notes-tab.svelte-ob364t.svelte-ob364t{padding:24px}.tab-toolbar.svelte-ob364t.svelte-ob364t{margin-bottom:16px}.create-form.svelte-ob364t.svelte-ob364t{background:#1a1a28;padding:16px;border-radius:8px;margin-bottom:16px}.create-form.svelte-ob364t input.svelte-ob364t{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-ob364t input.svelte-ob364t:focus{outline:none;border-color:#6366f1}.form-actions.svelte-ob364t.svelte-ob364t{display:flex;gap:8px}.notes-list.svelte-ob364t.svelte-ob364t{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.note-card.svelte-ob364t.svelte-ob364t{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:16px;cursor:pointer}.note-card.svelte-ob364t.svelte-ob364t:hover{border-color:#3a3a5c}.note-card-title.svelte-ob364t.svelte-ob364t{font-size:14px;font-weight:500;margin-bottom:4px}.note-card-date.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555}.worklog-tab.svelte-ob364t.svelte-ob364t{padding:24px}.worklog-form.svelte-ob364t.svelte-ob364t{display:flex;gap:8px;margin-bottom:24px;align-items:center}.worklog-form.svelte-ob364t input.svelte-ob364t{padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit}.worklog-form.svelte-ob364t input.svelte-ob364t:focus{outline:none;border-color:#6366f1}.worklog-form.svelte-ob364t input[type=text].svelte-ob364t{flex:1}.worklog-form.svelte-ob364t input[type=number].svelte-ob364t{width:70px}.worklog-entry.svelte-ob364t.svelte-ob364t{padding:12px 0;border-bottom:1px solid #1a1a28}.wl-meta.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555;margin-top:2px}.actions-tab.svelte-ob364t.svelte-ob364t{padding:24px}.action-card.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.action-title.svelte-ob364t.svelte-ob364t{font-weight:500}.action-type.svelte-ob364t.svelte-ob364t{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px;white-space:nowrap}.action-data.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{display:flex;gap:4px;flex-shrink:0}.action-btns.svelte-ob364t .btn-danger.svelte-ob364t{color:#ff6b6b;border-color:#4a2222;padding:4px 8px}.action-btns.svelte-ob364t .btn-danger.svelte-ob364t:hover{background:#3a2222}.empty-state.svelte-ob364t.svelte-ob364t{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-state.svelte-ob364t p.svelte-ob364t{margin:0;font-size:14px;color:#666}.empty-state.svelte-ob364t .empty-icon.svelte-ob364t{margin-bottom:12px;color:#444}.empty-state.svelte-ob364t .hint.svelte-ob364t{font-size:12px;color:#555;margin-top:6px}.empty-state.svelte-ob364t .empty-actions.svelte-ob364t{display:flex;gap:8px;justify-content:center;margin-top:16px}.empty-note.svelte-ob364t.svelte-ob364t{font-size:12px;color:#444;margin-top:16px}.welcome.svelte-ob364t.svelte-ob364t{padding:48px 24px;text-align:center}.welcome.svelte-ob364t h2.svelte-ob364t{font-size:32px;font-weight:300;color:#8888a4;margin-bottom:16px}.welcome.svelte-ob364t p.svelte-ob364t{color:#666;font-size:14px}.error-text.svelte-ob364t.svelte-ob364t{color:#f88}.fab.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{background:#4f46e5}.modal-overlay.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;padding:24px;width:400px;max-width:90vw}.modal.svelte-ob364t h3.svelte-ob364t{font-size:18px;margin-bottom:16px}.form-group.svelte-ob364t.svelte-ob364t{margin-bottom:12px}.form-group.svelte-ob364t label.svelte-ob364t{display:block;font-size:12px;color:#666;margin-bottom:4px}.form-group.svelte-ob364t input.svelte-ob364t,.form-group.svelte-ob364t select.svelte-ob364t{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-ob364t select.svelte-ob364t{-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-ob364t input.svelte-ob364t:focus,.form-group.svelte-ob364t select.svelte-ob364t:focus{outline:none;border-color:#6366f1}.modal-actions.svelte-ob364t.svelte-ob364t{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.btn.svelte-ob364t.svelte-ob364t{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit}.btn.svelte-ob364t.svelte-ob364t:hover{background:#223}.btn-primary.svelte-ob364t.svelte-ob364t{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-ob364t.svelte-ob364t:hover{background:#4f46e5}.btn.svelte-ob364t.svelte-ob364t:disabled{opacity:.4;cursor:not-allowed}.btn-sm.svelte-ob364t.svelte-ob364t{padding:4px 10px;font-size:12px}.btn-danger.svelte-ob364t.svelte-ob364t{color:#ff6b6b;border-color:#4a2222}.btn-danger.svelte-ob364t.svelte-ob364t:hover{background:#3a2222}.files-tab.svelte-ob364t.svelte-ob364t{padding:20px}.files-tab.svelte-ob364t .tab-toolbar.svelte-ob364t{display:flex;gap:8px;align-items:center;margin-bottom:16px}.file-list.svelte-ob364t.svelte-ob364t{display:flex;flex-direction:column}.back-btn.svelte-ob364t.svelte-ob364t{margin-bottom:4px;display:inline-flex;align-items:center;gap:4px}.import-summary.svelte-ob364t.svelte-ob364t{margin-bottom:16px}.summary-row.svelte-ob364t.svelte-ob364t{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;border-bottom:1px solid #2a2a3c}.summary-warn.svelte-ob364t.svelte-ob364t{margin-top:8px;padding:8px 12px;background:#3a2a22;border-radius:6px;color:#fa6;font-size:13px}.rename-error.svelte-ob364t.svelte-ob364t{color:#ff6b6b;font-size:12px;margin-top:4px}.template-cards.svelte-ob364t.svelte-ob364t{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.template-card.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{background:#1e1e30;border-color:#3a3a5c}.template-card.selected.svelte-ob364t.svelte-ob364t{background:#2a2a50;border-color:#6366f1;color:#e4e4ef}.template-card-text.svelte-ob364t.svelte-ob364t{display:flex;flex-direction:column;gap:2px;min-width:0}.template-card-title.svelte-ob364t.svelte-ob364t{font-weight:500}.template-card-desc.svelte-ob364t.svelte-ob364t{font-size:11px;color:#888}.today-dashboard.svelte-ob364t.svelte-ob364t{padding:24px;overflow-y:auto;flex:1}.today-header.svelte-ob364t.svelte-ob364t{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.today-header.svelte-ob364t h2.svelte-ob364t{font-size:24px}.today-date.svelte-ob364t.svelte-ob364t{font-size:13px;color:#666}.today-summary.svelte-ob364t.svelte-ob364t{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.summary-chip.svelte-ob364t.svelte-ob364t{font-size:12px;color:#b0b0c0;background:#1a1a28;border:1px solid #2a2a3c;padding:4px 12px;border-radius:16px}.today-case.svelte-ob364t.svelte-ob364t{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;margin-bottom:12px;overflow:hidden}.today-case-header.svelte-ob364t.svelte-ob364t{padding:12px 16px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #2a2a3c;cursor:pointer}.today-case-header.svelte-ob364t.svelte-ob364t:hover{background:#1e1e30}.today-case-title.svelte-ob364t.svelte-ob364t{font-weight:500}.today-case-type.svelte-ob364t.svelte-ob364t{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px}.today-case-count.svelte-ob364t.svelte-ob364t{font-size:11px;color:#6366f1;margin-left:4px}.today-case-time.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555;margin-left:auto}.today-events.svelte-ob364t.svelte-ob364t{padding:8px 16px}.today-event.svelte-ob364t.svelte-ob364t{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:#b0b0c0;cursor:pointer}.today-event.svelte-ob364t.svelte-ob364t:hover{color:#e4e4ef}.today-event-icon.svelte-ob364t.svelte-ob364t{width:18px;text-align:center;color:#6366f1;font-size:13px}.today-event-title.svelte-ob364t.svelte-ob364t{flex:1}.today-event-type.svelte-ob364t.svelte-ob364t{font-size:11px;color:#666}.today-event-time.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555;margin-left:auto}.today-events-empty.svelte-ob364t.svelte-ob364t{padding:8px 16px;font-size:13px;color:#666;font-style:italic}.today-empty.svelte-ob364t.svelte-ob364t{padding:48px 24px;text-align:center}.today-empty.svelte-ob364t p.svelte-ob364t{color:#666;font-size:14px;margin:0}.today-empty.svelte-ob364t .hint.svelte-ob364t{font-size:12px;color:#555;margin-top:8px}.today-timeline.svelte-ob364t.svelte-ob364t{margin-top:24px}.today-timeline.svelte-ob364t h3.svelte-ob364t{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:12px}.timeline-event.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{color:#e4e4ef}.timeline-dot.svelte-ob364t.svelte-ob364t{width:6px;height:6px;border-radius:50%;background:#6366f1;margin-left:-19px;flex-shrink:0}.timeline-title.svelte-ob364t.svelte-ob364t{flex:1}.timeline-type.svelte-ob364t.svelte-ob364t{font-size:11px;color:#666}.timeline-time.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555}.activity-tab.svelte-ob364t.svelte-ob364t{padding:24px}.activity-events.svelte-ob364t.svelte-ob364t{display:flex;flex-direction:column;gap:2px}.activity-event.svelte-ob364t.svelte-ob364t{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;color:#b0b0c0;cursor:pointer}.activity-event.svelte-ob364t.svelte-ob364t:hover{background:#1a1a28;color:#e4e4ef}.activity-event-icon.svelte-ob364t.svelte-ob364t{width:18px;text-align:center;color:#6366f1;font-size:13px;flex-shrink:0}.activity-event-title.svelte-ob364t.svelte-ob364t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-event-type.svelte-ob364t.svelte-ob364t{font-size:11px;color:#666;flex-shrink:0}.activity-event-target.svelte-ob364t.svelte-ob364t{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px;flex-shrink:0}.activity-event-time.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555;margin-left:8px;flex-shrink:0}.activity-feed.svelte-ob364t.svelte-ob364t{padding:24px;overflow-y:auto;flex:1}.activity-feed-header.svelte-ob364t.svelte-ob364t{margin-bottom:20px}.activity-feed-header.svelte-ob364t h2.svelte-ob364t{font-size:24px}.activity-feed-events.svelte-ob364t.svelte-ob364t{display:flex;flex-direction:column;gap:2px}.activity-feed-event.svelte-ob364t.svelte-ob364t{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer}.activity-feed-event.svelte-ob364t.svelte-ob364t:hover{background:#1a1a28;color:#e4e4ef}.activity-feed-icon.svelte-ob364t.svelte-ob364t{width:20px;text-align:center;color:#6366f1;font-size:14px;flex-shrink:0;margin-top:1px}.activity-feed-body.svelte-ob364t.svelte-ob364t{flex:1;min-width:0}.activity-feed-title.svelte-ob364t.svelte-ob364t{font-size:14px;color:#e4e4ef}.activity-feed-meta.svelte-ob364t.svelte-ob364t{display:flex;align-items:center;gap:8px;margin-top:2px}.activity-feed-type.svelte-ob364t.svelte-ob364t{font-size:11px;color:#666}.activity-feed-target.svelte-ob364t.svelte-ob364t{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px}.activity-feed-time.svelte-ob364t.svelte-ob364t{font-size:11px;color:#555}.sidebar-sync-btn.svelte-ob364t.svelte-ob364t{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-ob364t.svelte-ob364t:hover{background:#2a2a50;color:#e4e4ef;border-color:#818cf8}.sidebar-sync-label.svelte-ob364t.svelte-ob364t{flex:1;text-align:left}.sync-dot.svelte-ob364t.svelte-ob364t{width:8px;height:8px;border-radius:50%;background:#4a4a4a;flex-shrink:0}.sync-dot.active.svelte-ob364t.svelte-ob364t{background:#4ade80;box-shadow:0 0 6px #4ade8080}.modal-sync.svelte-ob364t.svelte-ob364t{width:460px}.sync-status.svelte-ob364t.svelte-ob364t{background:#13131f;border-radius:8px;padding:12px;margin-bottom:16px}.sync-row.svelte-ob364t.svelte-ob364t{display:flex;justify-content:space-between;padding:4px 0;font-size:13px}.sync-label.svelte-ob364t.svelte-ob364t{color:#666}.sync-value.svelte-ob364t.svelte-ob364t{color:#e4e4ef}.sync-value.mono.svelte-ob364t.svelte-ob364t{font-family:SF Mono,Fira Code,monospace;font-size:12px}.sync-result.svelte-ob364t.svelte-ob364t{font-size:12px;color:#6366f1;padding:4px 0}.sync-connected-actions.svelte-ob364t.svelte-ob364t{display:flex;gap:8px;margin-bottom:16px} diff --git a/cmd/verstak-gui/frontend-dist/assets/main-Dt9BLCiY.js b/cmd/verstak-gui/frontend-dist/assets/main-Dt9BLCiY.js deleted file mode 100644 index 3642ffd..0000000 --- a/cmd/verstak-gui/frontend-dist/assets/main-Dt9BLCiY.js +++ /dev/null @@ -1,3 +0,0 @@ -var cs=Object.defineProperty;var as=(l,e,t)=>e in l?cs(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t;var Kt=(l,e,t)=>as(l,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const r of s.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function t(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(o){if(o.ep)return;o.ep=!0;const s=t(o);fetch(o.href,s)}})();function $(){}function ei(l){return l()}function yl(){return Object.create(null)}function pe(l){l.forEach(ei)}function ti(l){return typeof l=="function"}function ct(l,e){return l!=l?e==e:l!==e||l&&typeof l=="object"||typeof l=="function"}let At;function It(l,e){return l===e?!0:(At||(At=document.createElement("a")),At.href=e,l===At.href)}function fs(l){return Object.keys(l).length===0}function us(l){return l??""}function c(l,e){l.appendChild(e)}function g(l,e,t){l.insertBefore(e,t||null)}function y(l){l.parentNode&&l.parentNode.removeChild(l)}function ze(l,e){for(let t=0;tl.removeEventListener(e,t,n)}function Jt(l){return function(e){return e.preventDefault(),l.call(this,e)}}function et(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 Et(l){return l===""?null:+l}function ds(l){return Array.from(l.childNodes)}function q(l,e){e=""+e,l.data!==e&&(l.data=e)}function Te(l,e){l.value=e??""}function Ue(l,e,t,n){t==null?l.style.removeProperty(e):l.style.setProperty(e,t,"")}function gl(l,e,t){for(let n=0;n{const o=l.$$.callbacks[e];if(o){const s=ps(e,t,{cancelable:n});return o.slice().forEach(r=>{r.call(l,s)}),!s.defaultPrevented}return!0}}function ii(l,e){const t=l.$$.callbacks[e.type];t&&t.slice().forEach(n=>n.call(this,e))}const ht=[],wl=[];let kt=[];const Cl=[],_s=Promise.resolve();let Gt=!1;function vs(){Gt||(Gt=!0,_s.then(oi))}function Lt(l){kt.push(l)}const qt=new Set;let bt=0;function oi(){if(bt!==0)return;const l=Ft;do{try{for(;btl.indexOf(n)===-1?e.push(n):t.push(n)),t.forEach(n=>n()),kt=e}const Mt=new Set;let dt;function Ve(){dt={r:0,c:[],p:dt}}function He(){dt.r||pe(dt.c),dt=dt.p}function ee(l,e){l&&l.i&&(Mt.delete(l),l.i(e))}function oe(l,e,t,n){if(l&&l.o){if(Mt.has(l))return;Mt.add(l),dt.c.push(()=>{Mt.delete(l),n&&(t&&l.d(1),n())}),l.o(e)}else n&&n()}function ue(l){return(l==null?void 0:l.length)!==void 0?l:Array.from(l)}function ks(l,e){oe(l,1,1,()=>{e.delete(l.key)})}function ys(l,e,t,n,o,s,r,a,f,d,v,b){let _=l.length,h=s.length,k=_;const S={};for(;k--;)S[l[k].key]=k;const T=[],C=new Map,N=new Map,F=[];for(k=h;k--;){const L=b(o,s,k),M=t(L);let V=r.get(M);V?F.push(()=>V.p(L,e)):(V=d(M,L),V.c()),C.set(M,T[k]=V),M in S&&N.set(M,Math.abs(k-S[M]))}const D=new Set,K=new Set;function E(L){ee(L,1),L.m(a,v),r.set(L.key,L),v=L.first,h--}for(;_&&h;){const L=T[h-1],M=l[_-1],V=L.key,R=M.key;L===M?(v=L.first,_--,h--):C.has(R)?!r.has(V)||D.has(V)?E(L):K.has(R)?_--:N.get(V)>N.get(R)?(K.add(V),E(L)):(D.add(R),_--):(f(M,r),_--)}for(;_--;){const L=l[_];C.has(L.key)||f(L,r)}for(;h;)E(T[h-1]);return pe(F),T}function Je(l){l&&l.c()}function Ye(l,e,t){const{fragment:n,after_update:o}=l.$$;n&&n.m(e,t),Lt(()=>{const s=l.$$.on_mount.map(ei).filter(ti);l.$$.on_destroy?l.$$.on_destroy.push(...s):pe(s),l.$$.on_mount=[]}),o.forEach(Lt)}function Xe(l,e){const t=l.$$;t.fragment!==null&&(hs(t.after_update),pe(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function gs(l,e){l.$$.dirty[0]===-1&&(ht.push(l),vs(),l.$$.dirty.fill(0)),l.$$.dirty[e/31|0]|=1<{const k=h.length?h[0]:_;return d.ctx&&o(d.ctx[b],d.ctx[b]=k)&&(!d.skip_bound&&d.bound[b]&&d.bound[b](k),v&&gs(l,b)),_}):[],d.update(),v=!0,pe(d.before_update),d.fragment=n?n(d.ctx):!1,e.target){if(e.hydrate){const b=ds(e.target);d.fragment&&d.fragment.l(b),b.forEach(y)}else d.fragment&&d.fragment.c();e.intro&&ee(l.$$.fragment),Ye(l,e.target,e.anchor),oi()}Nt(f)}class ft{constructor(){Kt(this,"$$");Kt(this,"$$set")}$destroy(){Xe(this,1),this.$destroy=$}$on(e,t){if(!ti(t))return $;const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{const o=n.indexOf(t);o!==-1&&n.splice(o,1)}}$set(e){this.$$set&&!fs(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const ws="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(ws);function Cs(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,o){g(n,e,o),g(n,t,o)},d(n){n&&(y(e),y(t))}}}function Ss(l){let e,t,n,o,s;return{c(){e=O("path"),t=O("polyline"),n=O("line"),o=O("line"),s=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(o,"x1","16"),i(o,"y1","17"),i(o,"x2","8"),i(o,"y2","17"),i(s,"points","10 9 9 9 8 9")},m(r,a){g(r,e,a),g(r,t,a),g(r,n,a),g(r,o,a),g(r,s,a)},d(r){r&&(y(e),y(t),y(n),y(o),y(s))}}}function Ts(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,o){g(n,e,o),g(n,t,o)},d(n){n&&(y(e),y(t))}}}function Ns(l){let e,t,n,o;return{c(){e=O("path"),t=O("polyline"),n=O("line"),o=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(o,"x","10"),i(o,"y","12"),i(o,"width","4"),i(o,"height","4"),i(o,"rx","1")},m(s,r){g(s,e,r),g(s,t,r),g(s,n,r),g(s,o,r)},d(s){s&&(y(e),y(t),y(n),y(o))}}}function Ds(l){let e,t,n,o,s;return{c(){e=O("path"),t=O("polyline"),n=O("line"),o=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","9"),i(n,"y1","12"),i(n,"x2","15"),i(n,"y2","12"),i(o,"x1","9"),i(o,"y1","15"),i(o,"x2","13"),i(o,"y2","15"),i(s,"x1","12"),i(s,"y1","15"),i(s,"x2","12"),i(s,"y2","18")},m(r,a){g(r,e,a),g(r,t,a),g(r,n,a),g(r,o,a),g(r,s,a)},d(r){r&&(y(e),y(t),y(n),y(o),y(s))}}}function Fs(l){let e,t,n,o,s,r;return{c(){e=O("path"),t=O("polyline"),n=O("line"),o=O("line"),s=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(o,"x1","8"),i(o,"y1","16"),i(o,"x2","16"),i(o,"y2","16"),i(s,"x1","8"),i(s,"y1","14"),i(s,"x2","12"),i(s,"y2","14"),i(r,"x1","12"),i(r,"y1","12"),i(r,"x2","12"),i(r,"y2","18")},m(a,f){g(a,e,f),g(a,t,f),g(a,n,f),g(a,o,f),g(a,s,f),g(a,r,f)},d(a){a&&(y(e),y(t),y(n),y(o),y(s),y(r))}}}function As(l){let e,t,n,o;return{c(){e=O("path"),t=O("polyline"),n=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","16"),i(n,"y1","13"),i(n,"x2","8"),i(n,"y2","13"),i(o,"x1","16"),i(o,"y1","17"),i(o,"x2","8"),i(o,"y2","17")},m(s,r){g(s,e,r),g(s,t,r),g(s,n,r),g(s,o,r)},d(s){s&&(y(e),y(t),y(n),y(o))}}}function Ms(l){let e,t,n,o,s;return{c(){e=O("path"),t=O("polyline"),n=O("line"),o=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","8"),i(n,"y1","12"),i(n,"x2","16"),i(n,"y2","12"),i(o,"x1","8"),i(o,"y1","16"),i(o,"x2","16"),i(o,"y2","16"),i(s,"x1","8"),i(s,"y1","14"),i(s,"x2","12"),i(s,"y2","14")},m(r,a){g(r,e,a),g(r,t,a),g(r,n,a),g(r,o,a),g(r,s,a)},d(r){r&&(y(e),y(t),y(n),y(o),y(s))}}}function Is(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(o,s){g(o,e,s),g(o,t,s),g(o,n,s)},d(o){o&&(y(e),y(t),y(n))}}}function Es(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,o){g(n,e,o),g(n,t,o)},d(n){n&&(y(e),y(t))}}}function Ls(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(o,s){g(o,e,s),g(o,t,s),g(o,n,s)},d(o){o&&(y(e),y(t),y(n))}}}function js(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){g(t,e,n)},d(t){t&&y(e)}}}function Ps(l){let e;function t(s,r){return s[0]==="folder"?js:s[0]==="image"?Ls:s[0]==="video"?Es:s[0]==="audio"?Is:s[0]==="pdf"?Ms:s[0]==="document"?As:s[0]==="spreadsheet"?Fs:s[0]==="presentation"?Ds:s[0]==="archive"?Ns:s[0]==="code"?Ts:s[0]==="text"?Ss:Cs}let n=t(l),o=n(l);return{c(){e=O("svg"),o.c(),i(e,"width",l[1]),i(e,"height",l[1]),i(e,"viewBox","0 0 24 24"),i(e,"fill","none"),i(e,"stroke","currentColor"),i(e,"stroke-width","1.5"),i(e,"stroke-linecap","round"),i(e,"stroke-linejoin","round"),i(e,"xmlns","http://www.w3.org/2000/svg")},m(s,r){g(s,e,r),o.m(e,null)},p(s,[r]){n!==(n=t(s))&&(o.d(1),o=n(s),o&&(o.c(),o.m(e,null))),r&2&&i(e,"width",s[1]),r&2&&i(e,"height",s[1])},i:$,o:$,d(s){s&&y(e),o.d()}}}function Os(l,e,t){let{kind:n="generic"}=e,{size:o=20}=e;return l.$$set=s=>{"kind"in s&&t(0,n=s.kind),"size"in s&&t(1,o=s.size)},[n,o]}class si extends ft{constructor(e){super(),at(this,e,Os,Ps,ct,{kind:0,size:1})}}const zs={"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":"Создать элемент","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":"Срок действия токена истёк"},Bs={"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.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"},Sl={ru:zs,en:Bs};let Tl="ru";function p(l,e){var o;const t=Sl[Tl];let n=t==null?void 0:t[l];if(n==null&&Tl!=="ru"&&(n=(o=Sl.ru)==null?void 0:o[l]),n==null&&(n=l),e!=null)for(const[s,r]of Object.entries(e))n=n.replace(`{${s}}`,String(r));return n}function jt(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 Yt={"image/jpeg":p("mime.jpeg"),"image/png":p("mime.png"),"image/gif":p("mime.gif"),"image/webp":p("mime.webp"),"image/svg+xml":p("mime.svg"),"image/bmp":p("mime.bmp"),"image/tiff":p("mime.tiff"),"image/avif":p("mime.avif"),"application/pdf":p("mime.pdf"),"application/msword":p("mime.word"),"application/vnd.openxmlformats-officedocument.wordprocessingml.document":p("mime.word"),"application/vnd.ms-excel":p("mime.excel"),"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":p("mime.excel"),"application/vnd.ms-powerpoint":p("mime.ppt"),"application/vnd.openxmlformats-officedocument.presentationml.presentation":p("mime.ppt"),"application/zip":p("mime.zip"),"application/gzip":p("mime.gzip"),"application/x-tar":p("mime.tar"),"application/x-7z-compressed":p("mime.sevenz"),"application/x-rar-compressed":p("mime.rar"),"text/plain":p("mime.text"),"text/html":p("mime.html"),"text/css":p("mime.css"),"text/javascript":p("mime.js"),"application/json":p("mime.json"),"application/xml":p("mime.xml"),"application/x-yaml":p("mime.yaml"),"application/octet-stream":p("mime.binary"),"application/x-msdos-program":p("mime.executable"),"inode/directory":p("mime.folder")};function Nl(l){return l?Yt[l]||l:p("mime.unknown")}function Rs(l){if(l.type==="folder")return p("mime.folder");const e=(l.mime||"").toLowerCase();if(Yt[e])return Yt[e];const n=(l.name||"").toLowerCase().split(".").pop();return n?n.toUpperCase():p("mime.file")}function ri(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 Vs=["image/jpeg","image/png","image/gif","image/webp","image/bmp","image/tiff","image/avif","image/svg+xml"],Hs=["text/plain","text/html","text/css","text/javascript","application/json","application/xml","application/x-yaml","text/x-shellscript"],Us=["txt","log","conf","ini","yaml","yml","json","xml","csv","sh","py","js","ts","css","html","md","markdown","cfg"],Ws=["jpg","jpeg","png","gif","webp","bmp","tiff","tif","avif","svg"];function ci(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return Vs.includes(e)||Ws.includes(n)}function ai(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return Hs.includes(e)||Us.includes(n)&&n!=="md"&&n!=="markdown"}function fi(l){return(l.mime||"").toLowerCase().includes("pdf")}function ui(l){const e=(l.name||"").toLowerCase();return e.endsWith(".md")||e.endsWith(".markdown")}function Ks(l){return ci(l)||fi(l)}function qs(l){return ai(l)||ui(l)}function Gs(l){let e,t,n,o=jt(l[0].size)+"",s;return{c(){e=u("span"),e.textContent="·",t=w(),n=u("span"),s=j(o),i(e,"class","meta-sep svelte-1u905d2")},m(r,a){g(r,e,a),g(r,t,a),g(r,n,a),c(n,s)},p(r,a){a&1&&o!==(o=jt(r[0].size)+"")&&q(s,o)},d(r){r&&(y(e),y(t),y(n))}}}function Ys(l){let e,t,n;return{c(){e=u("button"),e.innerHTML='',i(e,"class","action-btn svelte-1u905d2"),i(e,"title",p("file.openFolder")),i(e,"aria-label",p("file.openFolder"))},m(o,s){g(o,e,s),t||(n=P(e,"click",et(l[27])),t=!0)},p:$,d(o){o&&y(e),t=!1,n()}}}function Xs(l){let e,t,n,o,s;return{c(){e=u("button"),e.innerHTML='',t=w(),n=u("button"),n.innerHTML='',i(e,"class","action-btn svelte-1u905d2"),i(e,"title",p("file.preview")),i(e,"aria-label",p("file.preview")),i(n,"class","action-btn svelte-1u905d2"),i(n,"title",p("file.openExternal")),i(n,"aria-label",p("file.openExternal"))},m(r,a){g(r,e,a),g(r,t,a),g(r,n,a),o||(s=[P(e,"click",et(l[26])),P(n,"click",et(l[8]))],o=!0)},p:$,d(r){r&&(y(e),y(t),y(n)),o=!1,pe(s)}}}function Dl(l){let e,t,n,o,s,r,a,f,d=p("common.open")+"",v,b,_,h,k,S,T,C,N=p("file.openExternal")+"",F,D,K,E,L,M,V,R,z,H,U=p("common.rename")+"",A,B,W,X,Z,J,Y,Ne=p("common.duplicate")+"",le,_e,x,ie,ne,se,ae,Le,Be,Ze=p("common.cut")+"",je,ve,te,ye,Fe,Qe,xe,We=p("common.copy")+"",Ce,Ke,Ie,Se,be,fe,he,De,ge,Re=p("common.delete")+"",Pe,qe,ke,me=l[5]&&Js(l);return{c(){e=u("div"),t=w(),n=u("div"),o=u("button"),s=O("svg"),r=O("path"),a=O("circle"),f=w(),v=j(d),b=w(),_=u("button"),h=O("svg"),k=O("path"),S=O("polyline"),T=O("line"),C=w(),F=j(N),D=w(),me&&me.c(),K=w(),E=u("div"),L=w(),M=u("button"),V=O("svg"),R=O("path"),z=O("path"),H=w(),A=j(U),B=w(),W=u("button"),X=O("svg"),Z=O("rect"),J=O("path"),Y=w(),le=j(Ne),_e=w(),x=u("button"),ie=O("svg"),ne=O("circle"),se=O("circle"),ae=O("line"),Le=O("line"),Be=w(),je=j(Ze),ve=w(),te=u("button"),ye=O("svg"),Fe=O("rect"),Qe=O("path"),xe=w(),Ce=j(We),Ke=w(),Ie=u("div"),Se=w(),be=u("button"),fe=O("svg"),he=O("polyline"),De=O("path"),ge=w(),Pe=j(Re),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(s,"width","14"),i(s,"height","14"),i(s,"viewBox","0 0 24 24"),i(s,"fill","none"),i(s,"stroke","currentColor"),i(s,"stroke-width","2"),i(s,"stroke-linecap","round"),i(s,"stroke-linejoin","round"),i(o,"class","menu-item svelte-1u905d2"),i(o,"role","menuitem"),i(k,"d","M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"),i(S,"points","15 3 21 3 21 9"),i(T,"x1","10"),i(T,"y1","14"),i(T,"x2","21"),i(T,"y2","3"),i(h,"width","14"),i(h,"height","14"),i(h,"viewBox","0 0 24 24"),i(h,"fill","none"),i(h,"stroke","currentColor"),i(h,"stroke-width","2"),i(h,"stroke-linecap","round"),i(h,"stroke-linejoin","round"),i(_,"class","menu-item svelte-1u905d2"),i(_,"role","menuitem"),i(E,"class","menu-sep svelte-1u905d2"),i(R,"d","M12 20h9"),i(z,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"),i(V,"width","14"),i(V,"height","14"),i(V,"viewBox","0 0 24 24"),i(V,"fill","none"),i(V,"stroke","currentColor"),i(V,"stroke-width","2"),i(V,"stroke-linecap","round"),i(V,"stroke-linejoin","round"),i(M,"class","menu-item svelte-1u905d2"),i(M,"role","menuitem"),i(Z,"x","9"),i(Z,"y","9"),i(Z,"width","13"),i(Z,"height","13"),i(Z,"rx","2"),i(Z,"ry","2"),i(J,"d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"),i(X,"width","14"),i(X,"height","14"),i(X,"viewBox","0 0 24 24"),i(X,"fill","none"),i(X,"stroke","currentColor"),i(X,"stroke-width","2"),i(X,"stroke-linecap","round"),i(X,"stroke-linejoin","round"),i(W,"class","menu-item svelte-1u905d2"),i(W,"role","menuitem"),i(ne,"cx","6"),i(ne,"cy","6"),i(ne,"r","3"),i(se,"cx","6"),i(se,"cy","18"),i(se,"r","3"),i(ae,"x1","20"),i(ae,"y1","4"),i(ae,"x2","8.12"),i(ae,"y2","15.88"),i(Le,"x1","8.12"),i(Le,"y1","8.12"),i(Le,"x2","20"),i(Le,"y2","20"),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(x,"class","menu-item svelte-1u905d2"),i(x,"role","menuitem"),i(Fe,"x","9"),i(Fe,"y","9"),i(Fe,"width","13"),i(Fe,"height","13"),i(Fe,"rx","2"),i(Fe,"ry","2"),i(Qe,"d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"),i(ye,"width","14"),i(ye,"height","14"),i(ye,"viewBox","0 0 24 24"),i(ye,"fill","none"),i(ye,"stroke","currentColor"),i(ye,"stroke-width","2"),i(ye,"stroke-linecap","round"),i(ye,"stroke-linejoin","round"),i(te,"class","menu-item svelte-1u905d2"),i(te,"role","menuitem"),i(Ie,"class","menu-sep svelte-1u905d2"),i(he,"points","3 6 5 6 21 6"),i(De,"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(fe,"width","14"),i(fe,"height","14"),i(fe,"viewBox","0 0 24 24"),i(fe,"fill","none"),i(fe,"stroke","currentColor"),i(fe,"stroke-width","2"),i(fe,"stroke-linecap","round"),i(fe,"stroke-linejoin","round"),i(be,"class","menu-item menu-item-danger svelte-1u905d2"),i(be,"role","menuitem"),i(n,"class","menu svelte-1u905d2"),i(n,"role","menu")},m(re,Ae){g(re,e,Ae),g(re,t,Ae),g(re,n,Ae),c(n,o),c(o,s),c(s,r),c(s,a),c(o,f),c(o,v),c(n,b),c(n,_),c(_,h),c(h,k),c(h,S),c(h,T),c(_,C),c(_,F),c(n,D),me&&me.m(n,null),c(n,K),c(n,E),c(n,L),c(n,M),c(M,V),c(V,R),c(V,z),c(M,H),c(M,A),c(n,B),c(n,W),c(W,X),c(X,Z),c(X,J),c(W,Y),c(W,le),c(n,_e),c(n,x),c(x,ie),c(ie,ne),c(ie,se),c(ie,ae),c(ie,Le),c(x,Be),c(x,je),c(n,ve),c(n,te),c(te,ye),c(ye,Fe),c(ye,Qe),c(te,xe),c(te,Ce),c(n,Ke),c(n,Ie),c(n,Se),c(n,be),c(be,fe),c(fe,he),c(fe,De),c(be,ge),c(be,Pe),qe||(ke=[P(e,"click",et(l[17])),P(o,"click",l[15]),P(_,"click",l[8]),P(M,"click",l[11]),P(W,"click",l[12]),P(x,"click",l[13]),P(te,"click",l[14]),P(be,"click",l[10]),P(n,"click",et(l[25]))],qe=!0)},p(re,Ae){re[5]&&me.p(re,Ae)},d(re){re&&(y(e),y(t),y(n)),me&&me.d(),qe=!1,pe(ke)}}}function Js(l){let e,t,n,o,s=p("file.showInExplorer")+"",r,a,f;return{c(){e=u("button"),t=O("svg"),n=O("path"),o=w(),r=j(s),i(n,"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(t,"width","14"),i(t,"height","14"),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(e,"class","menu-item svelte-1u905d2"),i(e,"role","menuitem")},m(d,v){g(d,e,v),c(e,t),c(t,n),c(e,o),c(e,r),a||(f=P(e,"click",l[9]),a=!0)},p:$,d(d){d&&y(e),a=!1,f()}}}function Zs(l){let e,t,n,o,s,r,a=l[0].name+"",f,d,v,b,_,h,k,S,T,C,N,F,D,K,E,L,M,V,R,z,H,U;n=new si({props:{kind:l[4],size:22}});let A=!l[5]&&Gs(l);function B(J,Y){return J[5]?Ys:Xs}let X=B(l)(l),Z=l[2]&&Dl(l);return{c(){e=u("div"),t=u("div"),Je(n.$$.fragment),o=w(),s=u("div"),r=u("div"),f=j(a),v=w(),b=u("div"),_=u("span"),_.textContent=`${l[6]}`,h=w(),A&&A.c(),k=w(),S=u("div"),X.c(),T=w(),C=u("button"),N=O("svg"),F=O("circle"),D=O("circle"),K=O("circle"),E=w(),L=u("button"),L.innerHTML='',V=w(),Z&&Z.c(),R=tt(),i(t,"class","file-row-icon svelte-1u905d2"),i(r,"class","file-row-name svelte-1u905d2"),i(r,"title",d=l[0].name),i(b,"class","file-row-meta svelte-1u905d2"),i(s,"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(K,"cx","12"),i(K,"cy","19"),i(K,"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",p("file.more")),i(C,"aria-label",p("file.more")),i(C,"aria-expanded",l[2]),i(L,"class","action-btn action-btn-danger svelte-1u905d2"),i(L,"title",p("common.delete")),i(L,"aria-label",p("common.delete")),i(S,"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",M=l[5]?p("file.ariaFolder")+" "+l[0].name:p("file.ariaFile")+" "+l[0].name),nt(e,"file-row--selected",l[1])},m(J,Y){g(J,e,Y),c(e,t),Ye(n,t,null),c(e,o),c(e,s),c(s,r),c(r,f),c(s,v),c(s,b),c(b,_),c(b,h),A&&A.m(b,null),c(e,k),c(e,S),X.m(S,null),c(S,T),c(S,C),c(C,N),c(N,F),c(N,D),c(N,K),c(S,E),c(S,L),g(J,V,Y),Z&&Z.m(J,Y),g(J,R,Y),z=!0,H||(U=[P(window,"click",l[17]),P(C,"click",et(l[16])),P(L,"click",et(l[10])),P(e,"click",l[7]),P(e,"contextmenu",l[21]),P(e,"dragstart",l[18]),P(e,"dragover",l[19]),P(e,"drop",l[20])],H=!0)},p(J,[Y]){(!z||Y&1)&&a!==(a=J[0].name+"")&&q(f,a),(!z||Y&1&&d!==(d=J[0].name))&&i(r,"title",d),J[5]||A.p(J,Y),X.p(J,Y),(!z||Y&4)&&i(C,"aria-expanded",J[2]),(!z||Y&1&&M!==(M=J[5]?p("file.ariaFolder")+" "+J[0].name:p("file.ariaFile")+" "+J[0].name))&&i(e,"aria-label",M),(!z||Y&2)&&nt(e,"file-row--selected",J[1]),J[2]?Z?Z.p(J,Y):(Z=Dl(J),Z.c(),Z.m(R.parentNode,R)):Z&&(Z.d(1),Z=null)},i(J){z||(ee(n.$$.fragment,J),z=!0)},o(J){oe(n.$$.fragment,J),z=!1},d(J){J&&(y(e),y(V),y(R)),Xe(n),A&&A.d(),X.d(),Z&&Z.d(J),H=!1,pe(U)}}}function Qs(l,e,t){let{item:n}=e,{selected:o=!1}=e,{onDragStart:s}=e,{onDragOver:r}=e,{onDrop:a}=e;const f=Pt(),d=ri(n),v=n.type==="folder",b=Rs(n);let _=!1,h=null;function k(W){W.ctrlKey||W.metaKey?f("toggleSelect",n.id):W.shiftKey?f("rangeSelect",n.id):h?(clearTimeout(h),h=null,v?f("navigate",n.id):f("preview",n)):h=setTimeout(()=>{h=null,f("selectOne",n.id)},250)}function S(){f("openExternal",n.fileId)}function T(){f("showInFolder",n.id)}function C(){t(2,_=!1),f("delete",{id:n.id,type:n.type})}function N(){t(2,_=!1),f("rename",{id:n.id,name:n.name})}function F(){t(2,_=!1),f("duplicate",n.id)}function D(){t(2,_=!1),f("cut",n.id)}function K(){t(2,_=!1),f("copy",n.id)}function E(){t(2,_=!1),v?f("navigate",n.id):f("preview",n)}function L(){t(2,_=!_)}function M(){t(2,_=!1)}function V(W){s&&s(W,n.id)}function R(W){r&&v&&r(W,n.id)}function z(W){a&&v&&a(W,n.id)}function H(W){W.preventDefault(),t(2,_=!0)}function U(W){ii.call(this,l,W)}const A=()=>f("preview",n),B=()=>f("navigate",n.id);return l.$$set=W=>{"item"in W&&t(0,n=W.item),"selected"in W&&t(1,o=W.selected),"onDragStart"in W&&t(22,s=W.onDragStart),"onDragOver"in W&&t(23,r=W.onDragOver),"onDrop"in W&&t(24,a=W.onDrop)},[n,o,_,f,d,v,b,k,S,T,C,N,F,D,K,E,L,M,V,R,z,H,s,r,a,U,A,B]}class xs extends ft{constructor(e){super(),at(this,e,Qs,Zs,ct,{item:0,selected:1,onDragStart:22,onDragOver:23,onDrop:24})}}function Fl(l,e,t){const n=l.slice();return n[4]=e[t],n[6]=t,n}function $s(l){let e;return{c(){e=u("span"),e.textContent="/",i(e,"class","sep svelte-csi2lb")},m(t,n){g(t,e,n)},d(t){t&&y(e)}}}function er(l){let e,t=l[4].name+"",n,o,s;function r(){return l[2](l[6])}return{c(){e=u("button"),n=j(t),i(e,"class","crumb crumb--link svelte-csi2lb")},m(a,f){g(a,e,f),c(e,n),o||(s=P(e,"click",r),o=!0)},p(a,f){l=a,f&1&&t!==(t=l[4].name+"")&&q(n,t)},d(a){a&&y(e),o=!1,s()}}}function tr(l){let e,t=l[4].name+"",n;return{c(){e=u("span"),n=j(t),i(e,"class","crumb crumb--current svelte-csi2lb")},m(o,s){g(o,e,s),c(e,n)},p(o,s){s&1&&t!==(t=o[4].name+"")&&q(n,t)},d(o){o&&y(e)}}}function Al(l){let e,t,n=l[6]>0&&$s();function o(a,f){return a[6]===a[0].length-1?tr:er}let s=o(l),r=s(l);return{c(){n&&n.c(),e=w(),r.c(),t=tt()},m(a,f){n&&n.m(a,f),g(a,e,f),r.m(a,f),g(a,t,f)},p(a,f){s===(s=o(a))&&r?r.p(a,f):(r.d(1),r=s(a),r&&(r.c(),r.m(t.parentNode,t)))},d(a){a&&(y(e),y(t)),n&&n.d(a),r.d(a)}}}function lr(l){let e,t=ue(l[0]),n=[];for(let o=0;os(a);return l.$$set=a=>{"crumbs"in a&&t(0,n=a.crumbs)},[n,s,r]}class di extends ft{constructor(e){super(),at(this,e,nr,lr,ct,{crumbs:0})}}function ir(l){let e,t,n,o,s,r;return{c(){e=u("div"),t=u("p"),t.textContent=`${p("file.previewUnavailable")}`,n=w(),o=u("button"),o.textContent=`${p("file.openExternal")}`,i(o,"class","btn btn-sm svelte-1cw3u0m"),i(e,"class","preview-status svelte-1cw3u0m")},m(a,f){g(a,e,f),c(e,t),c(e,n),c(e,o),s||(r=P(o,"click",l[9]),s=!0)},p:$,d(a){a&&y(e),s=!1,r()}}}function or(l){let e,t;function n(r,a){return a&2&&(e=null),e==null&&(e=!!(r[1]&&r[1].startsWith("data:"))),e?ur:fr}let o=n(l,-1),s=o(l);return{c(){s.c(),t=tt()},m(r,a){s.m(r,a),g(r,t,a)},p(r,a){o===(o=n(r,a))&&s?s.p(r,a):(s.d(1),s=o(r),s&&(s.c(),s.m(t.parentNode,t)))},d(r){r&&y(t),s.d(r)}}}function sr(l){let e,t,n;return{c(){e=u("pre"),t=u("code"),n=j(l[1]),i(e,"class","preview-text svelte-1cw3u0m")},m(o,s){g(o,e,s),c(e,t),c(t,n)},p(o,s){s&2&&q(n,o[1])},d(o){o&&y(e)}}}function rr(l){let e,t,n,o;return{c(){e=u("div"),t=u("img"),It(t.src,n=l[1])||i(t,"src",n),i(t,"alt",o=l[0].name),i(t,"class","preview-image svelte-1cw3u0m"),i(e,"class","preview-image-container svelte-1cw3u0m")},m(s,r){g(s,e,r),c(e,t)},p(s,r){r&2&&!It(t.src,n=s[1])&&i(t,"src",n),r&1&&o!==(o=s[0].name)&&i(t,"alt",o)},d(s){s&&y(e)}}}function cr(l){let e,t,n,o,s,r,a;return{c(){e=u("div"),t=u("p"),n=j(l[3]),o=w(),s=u("button"),s.textContent=`${p("file.openExternal")}`,i(s,"class","btn btn-sm svelte-1cw3u0m"),i(e,"class","preview-status svelte-1cw3u0m")},m(f,d){g(f,e,d),c(e,t),c(t,n),c(e,o),c(e,s),r||(a=P(s,"click",l[9]),r=!0)},p(f,d){d&8&&q(n,f[3])},d(f){f&&y(e),r=!1,a()}}}function ar(l){let e,t;return{c(){e=u("div"),t=u("p"),t.textContent=`${p("common.loading")}`,i(e,"class","preview-status svelte-1cw3u0m")},m(n,o){g(n,e,o),c(e,t)},p:$,d(n){n&&y(e)}}}function fr(l){let e,t,n,o,s,r;return{c(){e=u("div"),t=u("p"),t.textContent=`${p("file.pdfUnavailable")}`,n=w(),o=u("button"),o.textContent=`${p("file.openExternal")}`,i(o,"class","btn btn-sm svelte-1cw3u0m"),i(e,"class","preview-status svelte-1cw3u0m")},m(a,f){g(a,e,f),c(e,t),c(e,n),c(e,o),s||(r=P(o,"click",l[9]),s=!0)},p:$,d(a){a&&y(e),s=!1,r()}}}function ur(l){let e,t,n;return{c(){e=u("div"),t=u("embed"),It(t.src,n=l[1])||i(t,"src",n),i(t,"type","application/pdf"),i(t,"class","preview-pdf svelte-1cw3u0m"),i(e,"class","preview-pdf-container svelte-1cw3u0m")},m(o,s){g(o,e,s),c(e,t)},p(o,s){s&2&&!It(t.src,n=o[1])&&i(t,"src",n)},d(o){o&&y(e)}}}function dr(l){let e,t,n,o,s,r,a,f=l[0].name+"",d,v,b,_,h=jt(l[0].size)+"",k,S,T=Nl(l[0].mime)+"",C,N,F,D,K,E,L,M,V,R,z,H;s=new si({props:{kind:l[8],size:18}});function U(W,X){return W[2]?ar:W[3]?cr:W[6]&&W[1]?rr:W[5]&&W[1]?sr:W[4]?or:ir}let A=U(l),B=A(l);return{c(){e=u("div"),t=u("div"),n=u("header"),o=u("div"),Je(s.$$.fragment),r=w(),a=u("span"),d=j(f),b=w(),_=u("div"),k=j(h),S=j(" · "),C=j(T),N=w(),F=u("div"),D=u("button"),D.innerHTML='',K=w(),E=u("button"),E.innerHTML='',L=w(),M=u("div"),B.c(),i(a,"class","preview-name svelte-1cw3u0m"),i(a,"title",v=l[0].name),i(o,"class","preview-title svelte-1cw3u0m"),i(_,"class","preview-meta svelte-1cw3u0m"),i(D,"class","action-btn svelte-1cw3u0m"),i(D,"title",p("file.openExternal")),i(D,"aria-label",p("file.openExternal")),i(E,"class","action-btn action-btn-close svelte-1cw3u0m"),i(E,"title","Close"),i(E,"aria-label","Close preview"),i(F,"class","preview-actions svelte-1cw3u0m"),i(n,"class","preview-header svelte-1cw3u0m"),i(M,"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",V=`Preview: ${l[0].name}`)},m(W,X){g(W,e,X),c(e,t),c(t,n),c(n,o),Ye(s,o,null),c(o,r),c(o,a),c(a,d),c(n,b),c(n,_),c(_,k),c(_,S),c(_,C),c(n,N),c(n,F),c(F,D),c(F,K),c(F,E),c(t,L),c(t,M),B.m(M,null),R=!0,z||(H=[P(D,"click",l[9]),P(E,"click",l[10]),P(e,"click",mt(l[11]))],z=!0)},p(W,[X]){(!R||X&1)&&f!==(f=W[0].name+"")&&q(d,f),(!R||X&1&&v!==(v=W[0].name))&&i(a,"title",v),(!R||X&1)&&h!==(h=jt(W[0].size)+"")&&q(k,h),(!R||X&1)&&T!==(T=Nl(W[0].mime)+"")&&q(C,T),A===(A=U(W))&&B?B.p(W,X):(B.d(1),B=A(W),B&&(B.c(),B.m(M,null))),(!R||X&1&&V!==(V=`Preview: ${W[0].name}`))&&i(e,"aria-label",V)},i(W){R||(ee(s.$$.fragment,W),R=!0)},o(W){oe(s.$$.fragment,W),R=!1},d(W){W&&y(e),Xe(s),B.d(),z=!1,pe(H)}}}function mr(l,e,t){let n,o,s,{item:r}=e,{content:a=""}=e,{loading:f=!1}=e,{error:d=""}=e;const v=Pt(),b=ri(r);function _(T){T.key==="Escape"&&v("close")}function h(){v("openExternal",r.fileId)}li(()=>{window.addEventListener("keydown",_)}),ni(()=>{window.removeEventListener("keydown",_)});const k=()=>v("close"),S=()=>v("close");return l.$$set=T=>{"item"in T&&t(0,r=T.item),"content"in T&&t(1,a=T.content),"loading"in T&&t(2,f=T.loading),"error"in T&&t(3,d=T.error)},l.$$.update=()=>{l.$$.dirty&3&&t(6,n=ci(r)&&a&&a.startsWith("data:")),l.$$.dirty&1&&t(5,o=ai(r)||ui(r)),l.$$.dirty&1&&t(4,s=fi(r))},[r,a,f,d,s,o,n,v,b,h,k,S]}class pr extends ft{constructor(e){super(),at(this,e,mr,dr,ct,{item:0,content:1,loading:2,error:3})}}function _r(l){let e,t,n,o,s,r,a,f,d,v,b,_,h,k,S,T,C;return{c(){e=u("div"),t=u("div"),n=u("h3"),o=j(l[0]),s=w(),r=u("p"),a=j(l[1]),f=w(),d=u("div"),v=u("button"),b=j(l[2]),h=w(),k=u("button"),S=j(l[3]),i(n,"class","svelte-1fv6yyk"),i(r,"class","message svelte-1fv6yyk"),i(v,"class",_="btn "+(l[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk"),i(k,"class","btn svelte-1fv6yyk"),i(d,"class","actions svelte-1fv6yyk"),i(t,"class","modal svelte-1fv6yyk"),i(e,"class","overlay svelte-1fv6yyk"),i(e,"role","dialog"),i(e,"aria-modal","true"),i(e,"aria-label",l[0])},m(N,F){g(N,e,F),c(e,t),c(t,n),c(n,o),c(t,s),c(t,r),c(r,a),c(t,f),c(t,d),c(d,v),c(v,b),c(d,h),c(d,k),c(k,S),T||(C=[P(v,"click",l[6]),P(k,"click",l[7]),P(e,"click",mt(l[8]))],T=!0)},p(N,[F]){F&1&&q(o,N[0]),F&2&&q(a,N[1]),F&4&&q(b,N[2]),F&16&&_!==(_="btn "+(N[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk")&&i(v,"class",_),F&8&&q(S,N[3]),F&1&&i(e,"aria-label",N[0])},i:$,o:$,d(N){N&&y(e),T=!1,pe(C)}}}function vr(l,e,t){let{title:n=p("common.confirm")}=e,{message:o=""}=e,{confirmText:s=p("common.delete")}=e,{cancelText:r=p("common.cancel")}=e,{danger:a=!1}=e;const f=Pt(),d=()=>f("confirm"),v=()=>f("cancel"),b=()=>f("cancel");return l.$$set=_=>{"title"in _&&t(0,n=_.title),"message"in _&&t(1,o=_.message),"confirmText"in _&&t(2,s=_.confirmText),"cancelText"in _&&t(3,r=_.cancelText),"danger"in _&&t(4,a=_.danger)},[n,o,s,r,a,f,d,v,b]}class br extends ft{constructor(e){super(),at(this,e,vr,_r,ct,{title:0,message:1,confirmText:2,cancelText:3,danger:4})}}function hr(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(o,s){g(o,e,s),g(o,t,s),g(o,n,s)},d(o){o&&(y(e),y(t),y(n))}}}function kr(l){let e,t,n,o;return{c(){e=O("rect"),t=O("polyline"),n=O("line"),o=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(o,"x1","16"),i(o,"y1","5"),i(o,"x2","16"),i(o,"y2","19")},m(s,r){g(s,e,r),g(s,t,r),g(s,n,r),g(s,o,r)},d(s){s&&(y(e),y(t),y(n),y(o))}}}function yr(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,o){g(n,e,o),g(n,t,o)},d(n){n&&(y(e),y(t))}}}function gr(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,o){g(n,e,o),g(n,t,o)},d(n){n&&(y(e),y(t))}}}function wr(l){let e,t,n,o,s;return{c(){e=O("path"),t=O("path"),n=O("line"),o=O("line"),s=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(o,"x1","8"),i(o,"y1","11"),i(o,"x2","14"),i(o,"y2","11"),i(s,"x1","8"),i(s,"y1","15"),i(s,"x2","12"),i(s,"y2","15")},m(r,a){g(r,e,a),g(r,t,a),g(r,n,a),g(r,o,a),g(r,s,a)},d(r){r&&(y(e),y(t),y(n),y(o),y(s))}}}function Cr(l){let e,t,n,o;return{c(){e=O("path"),t=O("polyline"),n=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","16"),i(n,"y1","13"),i(n,"x2","8"),i(n,"y2","13"),i(o,"x1","16"),i(o,"y1","17"),i(o,"x2","8"),i(o,"y2","17")},m(s,r){g(s,e,r),g(s,t,r),g(s,n,r),g(s,o,r)},d(s){s&&(y(e),y(t),y(n),y(o))}}}function Sr(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,o){g(n,e,o),g(n,t,o)},d(n){n&&(y(e),y(t))}}}function Tr(l){let e,t,n,o;return{c(){e=O("rect"),t=O("rect"),n=O("rect"),o=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(o,"x","3"),i(o,"y","14"),i(o,"width","7"),i(o,"height","7"),i(o,"rx","1")},m(s,r){g(s,e,r),g(s,t,r),g(s,n,r),g(s,o,r)},d(s){s&&(y(e),y(t),y(n),y(o))}}}function Nr(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){g(t,e,n)},d(t){t&&y(e)}}}function Dr(l){let e;function t(s,r){return s[0]==="folder"?Nr:s[0]==="project"?Tr:s[0]==="client"?Sr:s[0]==="document"?Cr:s[0]==="recipe"?wr:s[0]==="note"?gr:s[0]==="file"?yr:s[0]==="case"?kr:hr}let n=t(l),o=n(l);return{c(){e=O("svg"),o.c(),i(e,"width",l[1]),i(e,"height",l[1]),i(e,"viewBox","0 0 24 24"),i(e,"fill","none"),i(e,"stroke","currentColor"),i(e,"stroke-width","1.5"),i(e,"stroke-linecap","round"),i(e,"stroke-linejoin","round"),i(e,"xmlns","http://www.w3.org/2000/svg")},m(s,r){g(s,e,r),o.m(e,null)},p(s,[r]){n!==(n=t(s))&&(o.d(1),o=n(s),o&&(o.c(),o.m(e,null))),r&2&&i(e,"width",s[1]),r&2&&i(e,"height",s[1])},i:$,o:$,d(s){s&&y(e),o.d()}}}function Fr(l,e,t){let{kind:n="generic"}=e,{size:o=18}=e;return l.$$set=s=>{"kind"in s&&t(0,n=s.kind),"size"in s&&t(1,o=s.size)},[n,o]}class Ot extends ft{constructor(e){super(),at(this,e,Fr,Dr,ct,{kind:0,size:1})}}function Ml(l,e,t){const n=l.slice();return n[27]=e[t],n}function Ar(l){let e;return{c(){e=u("span"),i(e,"class","tree-toggle-placeholder svelte-14f5ns4")},m(t,n){g(t,e,n)},p:$,d(t){t&&y(e)}}}function Mr(l){let e,t,n=l[1][l[27].id]?"▾":"▸",o,s,r;function a(){return l[15](l[27])}return{c(){e=u("button"),t=u("span"),o=j(n),i(t,"class","tree-arrow"),i(e,"class","tree-toggle svelte-14f5ns4")},m(f,d){g(f,e,d),c(e,t),c(t,o),s||(r=P(e,"click",et(a)),s=!0)},p(f,d){l=f,d&3&&n!==(n=l[1][l[27].id]?"▾":"▸")&&q(o,n)},d(f){f&&y(e),s=!1,r()}}}function Il(l){let e,t;return e=new pi({props:{nodes:l[27].children||[],expanded:l[1],selectedNodeId:l[2],level:l[3]+1,onSelect:l[4],onToggle:l[5],onContextMenu:l[6],onDrop:l[7]}}),{c(){Je(e.$$.fragment)},m(n,o){Ye(e,n,o),t=!0},p(n,o){const s={};o&1&&(s.nodes=n[27].children||[]),o&2&&(s.expanded=n[1]),o&4&&(s.selectedNodeId=n[2]),o&8&&(s.level=n[3]+1),o&16&&(s.onSelect=n[4]),o&32&&(s.onToggle=n[5]),o&64&&(s.onContextMenu=n[6]),o&128&&(s.onDrop=n[7]),e.$set(s)},i(n){t||(ee(e.$$.fragment,n),t=!0)},o(n){oe(e.$$.fragment,n),t=!1},d(n){Xe(e,n)}}}function El(l){let e,t,n,o,s,r,a,f=l[27].title+"",d,v,b=l[1][l[27].id]&&jl(l[27]),_,h,k,S;function T(U,A){return A&1&&(t=null),t==null&&(t=!!Dt(U[27])),t?Mr:Ar}let C=T(l,-1),N=C(l);s=new Ot({props:{kind:Ll(l[27]),size:16}});function F(...U){return l[16](l[27],...U)}function D(){return l[17](l[27])}function K(...U){return l[18](l[27],...U)}function E(...U){return l[19](l[27],...U)}function L(...U){return l[20](l[27],...U)}function M(...U){return l[21](l[27],...U)}function V(...U){return l[22](l[27],...U)}function R(...U){return l[23](l[27],...U)}function z(...U){return l[24](l[27],...U)}let H=b&&Il(l);return{c(){e=u("div"),N.c(),n=w(),o=u("span"),Je(s.$$.fragment),r=w(),a=u("span"),d=j(f),v=w(),H&&H.c(),_=tt(),i(o,"class","tree-icon svelte-14f5ns4"),i(a,"class","tree-label svelte-14f5ns4"),i(e,"class","tree-item svelte-14f5ns4"),Ue(e,"padding-left",l[3]*16+4+"px"),i(e,"draggable","true"),nt(e,"selected",l[2]===l[27].id)},m(U,A){g(U,e,A),N.m(e,null),c(e,n),c(e,o),Ye(s,o,null),c(e,r),c(e,a),c(a,d),g(U,v,A),H&&H.m(U,A),g(U,_,A),h=!0,k||(S=[P(o,"click",F),P(o,"dblclick",et(l[14])),P(a,"click",et(D)),P(e,"dragstart",K),P(e,"dragover",E),P(e,"dragleave",L),P(e,"drop",M),P(e,"click",V),P(e,"dblclick",R),P(e,"contextmenu",Jt(z))],k=!0)},p(U,A){l=U,C===(C=T(l,A))&&N?N.p(l,A):(N.d(1),N=C(l),N&&(N.c(),N.m(e,n)));const B={};A&1&&(B.kind=Ll(l[27])),s.$set(B),(!h||A&1)&&f!==(f=l[27].title+"")&&q(d,f),(!h||A&8)&&Ue(e,"padding-left",l[3]*16+4+"px"),(!h||A&5)&&nt(e,"selected",l[2]===l[27].id),A&3&&(b=l[1][l[27].id]&&jl(l[27])),b?H?(H.p(l,A),A&3&&ee(H,1)):(H=Il(l),H.c(),ee(H,1),H.m(_.parentNode,_)):H&&(Ve(),oe(H,1,1,()=>{H=null}),He())},i(U){h||(ee(s.$$.fragment,U),ee(H),h=!0)},o(U){oe(s.$$.fragment,U),oe(H),h=!1},d(U){U&&(y(e),y(v),y(_)),N.d(),Xe(s),H&&H.d(U),k=!1,pe(S)}}}function Ir(l){let e,t,n=ue(l[0]),o=[];for(let r=0;roe(o[r],1,1,()=>{o[r]=null});return{c(){for(let r=0;r{f&&f(B.id),delete b[B.id]},500));const X=A.currentTarget.closest(".workspace-tree-area")||document.querySelector(".workspace-tree-area");if(X){const Z=X.getBoundingClientRect(),J=30;A.clientY-Z.top{X.scrollTop-=10},50)):Z.bottom-A.clientY{X.scrollTop+=10},50)):_&&(clearInterval(_),_=null)}}function k(A,B){A.currentTarget.classList.remove("drag-over"),b[B.id]&&(clearTimeout(b[B.id]),delete b[B.id]),_&&(clearInterval(_),_=null)}function S(A,B){A.preventDefault(),A.stopPropagation(),A.currentTarget.classList.remove("drag-over"),b[B.id]&&(clearTimeout(b[B.id]),delete b[B.id]),_&&(clearInterval(_),_=null);const W=Ol(A);Pl(B,W)&&v&&v(W,B.id)}function T(A,B){const W=A.target.closest(".tree-toggle"),X=A.target.closest(".tree-icon");W||X||a&&a(B)}function C(A,B){Dt(B)&&f&&f(B.id)}function N(A,B){A.stopPropagation(),Dt(B)&&f&&f(B.id)}function F(A){ii.call(this,l,A)}const D=A=>f&&f(A.id),K=(A,B)=>N(B,A),E=A=>a&&a(A),L=(A,B)=>Er(B,A),M=(A,B)=>h(B,A),V=(A,B)=>k(B,A),R=(A,B)=>S(B,A),z=(A,B)=>T(B,A),H=(A,B)=>C(B,A),U=(A,B)=>d&&d(B,A);return l.$$set=A=>{"nodes"in A&&t(0,n=A.nodes),"expanded"in A&&t(1,o=A.expanded),"selectedNodeId"in A&&t(2,s=A.selectedNodeId),"level"in A&&t(3,r=A.level),"onSelect"in A&&t(4,a=A.onSelect),"onToggle"in A&&t(5,f=A.onToggle),"onContextMenu"in A&&t(6,d=A.onContextMenu),"onDrop"in A&&t(7,v=A.onDrop)},[n,o,s,r,a,f,d,v,h,k,S,T,C,N,F,D,K,E,L,M,V,R,z,H,U]}class pi extends ft{constructor(e){super(),at(this,e,Lr,Ir,ct,{nodes:0,expanded:1,selectedNodeId:2,level:3,onSelect:4,onToggle:5,onContextMenu:6,onDrop:7})}}function zl(l,e,t){const n=l.slice();return n[216]=e[t],n}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[219]=e[t],n}function Vl(l,e,t){const n=l.slice();return n[240]=e[t],n}function Hl(l,e,t){const n=l.slice();return n[240]=e[t],n}function Ul(l,e,t){const n=l.slice();return n[248]=e[t],n}function Wl(l,e,t){const n=l.slice();return n[240]=e[t],n}function Kl(l,e,t){const n=l.slice();return n[240]=e[t],n}function ql(l,e,t){const n=l.slice();return n[224]=e[t],n}function Gl(l,e,t){const n=l.slice();return n[235]=e[t],n}function Yl(l,e,t){const n=l.slice();return n[232]=e[t],n}function Xl(l,e,t){const n=l.slice();return n[227]=e[t],n}function Jl(l,e,t){const n=l.slice();return n[224]=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[243]=e[t],n}function xl(l,e,t){const n=l.slice();return n[255]=e[t],n}function $l(l,e,t){const n=l.slice();return n[258]=e[t],n}function en(l){let e,t=l[258].label+"",n,o,s,r,a;function f(){return l[127](l[258])}return{c(){e=u("button"),n=j(t),o=w(),i(e,"class",s="nav-item "+(l[8]===l[258].id?"selected":"")+" svelte-ob364t")},m(d,v){g(d,e,v),c(e,n),c(e,o),r||(a=P(e,"click",f),r=!0)},p(d,v){l=d,v[0]&1&&t!==(t=l[258].label+"")&&q(n,t),v[0]&257&&s!==(s="nav-item "+(l[8]===l[258].id?"selected":"")+" svelte-ob364t")&&i(e,"class",s)},d(d){d&&y(e),r=!1,a()}}}function jr(l){let e;return{c(){e=u("div"),e.textContent=`${p("nav.noNodes")}`,i(e,"class","nav-empty svelte-ob364t")},m(t,n){g(t,e,n)},p:$,i:$,o:$,d(t){t&&y(e)}}}function Pr(l){var r;let e,t,n,o,s;return t=new pi({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=u("div"),Je(t.$$.fragment),i(e,"class","workspace-tree-area svelte-ob364t")},m(a,f){g(a,e,f),Ye(t,e,null),n=!0,o||(s=[P(e,"dragover",Jt(Nc)),P(e,"drop",l[94])],o=!0)},p(a,f){var v;const d={};f[0]&2&&(d.nodes=a[1]),f[1]&2&&(d.expanded=a[32]),f[0]&512&&(d.selectedNodeId=((v=a[9])==null?void 0:v.id)||""),t.$set(d)},i(a){n||(ee(t.$$.fragment,a),n=!0)},o(a){oe(t.$$.fragment,a),n=!1},d(a){a&&y(e),Xe(t),o=!1,pe(s)}}}function Or(l){let e;return{c(){e=u("span"),e.textContent=`${p("nav.selectPrompt")}`,i(e,"class","crumb placeholder svelte-ob364t")},m(t,n){g(t,e,n)},p:$,d(t){t&&y(e)}}}function zr(l){let e,t=ue(l[0]),n=[];for(let o=0;o0&&nn(l);return{c(){e=u("button"),t=O("svg"),n=O("polyline"),o=O("polyline"),s=O("path"),r=w(),d&&d.c(),i(n,"points","23 4 23 10 17 10"),i(n,"class","svelte-ob364t"),i(o,"points","1 20 1 14 7 14"),i(o,"class","svelte-ob364t"),i(s,"d","M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"),i(s,"class","svelte-ob364t"),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-ob364t"),i(e,"class","header-sync-btn svelte-ob364t"),e.disabled=l[53],i(e,"title",p("nav.syncNow"))},m(v,b){g(v,e,b),c(e,t),c(t,n),c(t,o),c(t,s),c(e,r),d&&d.m(e,null),a||(f=P(e,"click",l[126]),a=!0)},p(v,b){v[52].unpushedOps>0?d?d.p(v,b):(d=nn(v),d.c(),d.m(e,null)):d&&(d.d(1),d=null),b[1]&4194304&&(e.disabled=v[53])},d(v){v&&y(e),d&&d.d(),a=!1,f()}}}function nn(l){let e,t=l[52].unpushedOps+"",n;return{c(){e=u("span"),n=j(t),i(e,"class","sync-badge svelte-ob364t")},m(o,s){g(o,e,s),c(e,n)},p(o,s){s[1]&2097152&&t!==(t=o[52].unpushedOps+"")&&q(n,t)},d(o){o&&y(e)}}}function on(l){let e,t,n,o,s,r;return{c(){e=u("div"),t=j(l[7]),n=w(),o=u("button"),o.innerHTML='',i(o,"class","dismiss-btn svelte-ob364t"),i(o,"aria-label","Dismiss"),i(e,"class","error-banner svelte-ob364t")},m(a,f){g(a,e,f),c(e,t),c(e,n),c(e,o),s||(r=[P(o,"click",et(l[128])),P(e,"click",l[129])],s=!0)},p(a,f){f[0]&128&&q(t,a[7])},d(a){a&&y(e),s=!1,pe(r)}}}function Rr(l){let e,t,n;function o(a,f){if(a[28])return Gr;if(a[0].length>0)return qr;if(a[7])return Kr}let s=o(l),r=s&&s(l);return{c(){e=u("div"),t=u("h2"),t.textContent=`${p("welcome.title")}`,n=w(),r&&r.c(),i(t,"class","svelte-ob364t"),i(e,"class","welcome svelte-ob364t")},m(a,f){g(a,e,f),c(e,t),c(e,n),r&&r.m(e,null)},p(a,f){s===(s=o(a))&&r?r.p(a,f):(r&&r.d(1),r=s&&s(a),r&&(r.c(),r.m(e,null)))},i:$,o:$,d(a){a&&y(e),r&&r.d()}}}function Vr(l){let e,t,n,o;function s(f,d){return f[4].length===0?Xr:Yr}let r=s(l),a=r(l);return{c(){e=u("div"),t=u("div"),n=u("h2"),n.textContent=`${p("activity.title")}`,o=w(),a.c(),i(n,"class","svelte-ob364t"),i(t,"class","activity-feed-header svelte-ob364t"),i(e,"class","activity-feed svelte-ob364t")},m(f,d){g(f,e,d),c(e,t),c(t,n),c(e,o),a.m(e,null)},p(f,d){r===(r=s(f))&&a?a.p(f,d):(a.d(1),a=r(f),a&&(a.c(),a.m(e,null)))},i:$,o:$,d(f){f&&y(e),a.d()}}}function Hr(l){let e,t,n,o,s,r=l[3].date+"",a,f,d,v=l[3].summary&&cn(l);function b(k,S){return k[3].groups&&k[3].groups.length>0?Zr:Jr}let _=b(l),h=_(l);return{c(){e=u("div"),t=u("div"),n=u("h2"),n.textContent=`${p("today.title")}`,o=w(),s=u("span"),a=j(r),f=w(),v&&v.c(),d=w(),h.c(),i(n,"class","svelte-ob364t"),i(s,"class","today-date svelte-ob364t"),i(t,"class","today-header svelte-ob364t"),i(e,"class","today-dashboard svelte-ob364t")},m(k,S){g(k,e,S),c(e,t),c(t,n),c(t,o),c(t,s),c(s,a),c(e,f),v&&v.m(e,null),c(e,d),h.m(e,null)},p(k,S){S[0]&8&&r!==(r=k[3].date+"")&&q(a,r),k[3].summary?v?v.p(k,S):(v=cn(k),v.c(),v.m(e,d)):v&&(v.d(1),v=null),_===(_=b(k))&&h?h.p(k,S):(h.d(1),h=_(k),h&&(h.c(),h.m(e,null)))},i:$,o:$,d(k){k&&y(e),v&&v.d(),h.d()}}}function Ur(l){let e,t,n,o,s,r,a=ue(l[60]),f=[];for(let _=0;_{v[k]=null}),He()),~o?(s=v[o],s?s.p(_,h):(s=v[o]=d[o](_),s.c()),ee(s,1),s.m(n,null)):s=null)},i(_){r||(ee(s),r=!0)},o(_){oe(s),r=!1},d(_){_&&(y(e),y(t),y(n)),ze(f,_),~o&&v[o].d()}}}function Wr(l){let e,t,n,o=l[12].title+"",s,r,a,f,d,v,b,_,h,k,S,T=l[12].dirty&&Ln();return{c(){e=u("div"),t=u("div"),n=u("span"),s=j(o),r=w(),T&&T.c(),a=w(),f=u("div"),d=u("button"),d.textContent=`${p("common.save")}`,v=w(),b=u("button"),b.textContent=`${p("common.close")}`,_=w(),h=u("textarea"),i(n,"class","note-title svelte-ob364t"),i(d,"class","btn btn-primary svelte-ob364t"),i(b,"class","btn svelte-ob364t"),i(f,"class","note-editor-actions svelte-ob364t"),i(t,"class","note-editor-header svelte-ob364t"),i(h,"class","note-textarea svelte-ob364t"),i(h,"placeholder",p("note.placeholder")),i(e,"class","note-editor svelte-ob364t")},m(C,N){g(C,e,N),c(e,t),c(t,n),c(n,s),c(t,r),T&&T.m(t,null),c(t,a),c(t,f),c(f,d),c(f,v),c(f,b),c(e,_),c(e,h),Te(h,l[12].content),k||(S=[P(d,"click",l[104]),P(b,"click",l[102]),P(h,"input",l[130]),P(h,"input",l[103])],k=!0)},p(C,N){N[0]&4096&&o!==(o=C[12].title+"")&&q(s,o),C[12].dirty?T||(T=Ln(),T.c(),T.m(t,a)):T&&(T.d(1),T=null),N[0]&4096&&Te(h,C[12].content)},i:$,o:$,d(C){C&&y(e),T&&T.d(),k=!1,pe(S)}}}function Kr(l){let e,t=p("common.error")+"",n,o,s;return{c(){e=u("p"),n=j(t),o=w(),s=j(l[7]),i(e,"class","error-text svelte-ob364t")},m(r,a){g(r,e,a),c(e,n),c(e,o),c(e,s)},p(r,a){a[0]&128&&q(s,r[7])},d(r){r&&y(e)}}}function qr(l){let e,t,n;return{c(){e=u("p"),e.textContent=`${p("welcome.selectSection")}`,t=w(),n=u("p"),n.textContent=`${p("welcome.createCase")}`,i(e,"class","svelte-ob364t"),i(n,"class","hint svelte-ob364t")},m(o,s){g(o,e,s),g(o,t,s),g(o,n,s)},p:$,d(o){o&&(y(e),y(t),y(n))}}}function Gr(l){let e;return{c(){e=u("p"),e.textContent=`${p("common.loading")}`,i(e,"class","svelte-ob364t")},m(t,n){g(t,e,n)},p:$,d(t){t&&y(e)}}}function Yr(l){let e,t=ue(l[4]),n=[];for(let o=0;o0&&an(l),s=l[3].summary.notes>0&&fn(l),r=l[3].summary.files>0&&un(l);return{c(){e=u("div"),o&&o.c(),t=w(),s&&s.c(),n=w(),r&&r.c(),i(e,"class","today-summary svelte-ob364t")},m(a,f){g(a,e,f),o&&o.m(e,null),c(e,t),s&&s.m(e,null),c(e,n),r&&r.m(e,null)},p(a,f){a[3].summary.changedCases>0?o?o.p(a,f):(o=an(a),o.c(),o.m(e,t)):o&&(o.d(1),o=null),a[3].summary.notes>0?s?s.p(a,f):(s=fn(a),s.c(),s.m(e,n)):s&&(s.d(1),s=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&&y(e),o&&o.d(),s&&s.d(),r&&r.d()}}}function an(l){let e,t=l[3].summary.changedCases+"",n,o,s=rt(l[3].summary.changedCases,p("today.plural.case_one"),p("today.plural.case_few"),p("today.plural.case_many"))+"",r;return{c(){e=u("span"),n=j(t),o=w(),r=j(s),i(e,"class","summary-chip svelte-ob364t")},m(a,f){g(a,e,f),c(e,n),c(e,o),c(e,r)},p(a,f){f[0]&8&&t!==(t=a[3].summary.changedCases+"")&&q(n,t),f[0]&8&&s!==(s=rt(a[3].summary.changedCases,p("today.plural.case_one"),p("today.plural.case_few"),p("today.plural.case_many"))+"")&&q(r,s)},d(a){a&&y(e)}}}function fn(l){let e,t=l[3].summary.notes+"",n,o,s=rt(l[3].summary.notes,p("today.plural.note_one"),p("today.plural.note_few"),p("today.plural.note_many"))+"",r;return{c(){e=u("span"),n=j(t),o=w(),r=j(s),i(e,"class","summary-chip svelte-ob364t")},m(a,f){g(a,e,f),c(e,n),c(e,o),c(e,r)},p(a,f){f[0]&8&&t!==(t=a[3].summary.notes+"")&&q(n,t),f[0]&8&&s!==(s=rt(a[3].summary.notes,p("today.plural.note_one"),p("today.plural.note_few"),p("today.plural.note_many"))+"")&&q(r,s)},d(a){a&&y(e)}}}function un(l){let e,t=l[3].summary.files+"",n,o,s=rt(l[3].summary.files,p("today.plural.file_one"),p("today.plural.file_few"),p("today.plural.file_many"))+"",r;return{c(){e=u("span"),n=j(t),o=w(),r=j(s),i(e,"class","summary-chip svelte-ob364t")},m(a,f){g(a,e,f),c(e,n),c(e,o),c(e,r)},p(a,f){f[0]&8&&t!==(t=a[3].summary.files+"")&&q(n,t),f[0]&8&&s!==(s=rt(a[3].summary.files,p("today.plural.file_one"),p("today.plural.file_few"),p("today.plural.file_many"))+"")&&q(r,s)},d(a){a&&y(e)}}}function Jr(l){let e,t,n,o;return{c(){e=u("div"),t=u("p"),t.textContent=`${p("today.empty")}`,n=w(),o=u("p"),o.textContent=`${p("today.emptyHint")}`,i(t,"class","svelte-ob364t"),i(o,"class","hint svelte-ob364t"),i(e,"class","today-empty svelte-ob364t")},m(s,r){g(s,e,r),c(e,t),c(e,n),c(e,o)},p:$,d(s){s&&y(e)}}}function Zr(l){let e,t,n=ue(l[3].groups),o=[];for(let r=0;r0&&vn(l);return{c(){for(let r=0;r0?s?s.p(r,a):(s=vn(r),s.c(),s.m(t.parentNode,t)):s&&(s.d(1),s=null)},d(r){r&&(y(e),y(t)),ze(o,r),s&&s.d(r)}}}function dn(l){let e,t=l[248].events.length+"",n,o,s=rt(l[248].events.length,p("today.plural.event_one"),p("today.plural.event_few"),p("today.plural.event_many"))+"",r;return{c(){e=u("span"),n=j(t),o=w(),r=j(s),i(e,"class","today-case-count svelte-ob364t")},m(a,f){g(a,e,f),c(e,n),c(e,o),c(e,r)},p(a,f){f[0]&8&&t!==(t=a[248].events.length+"")&&q(n,t),f[0]&8&&s!==(s=rt(a[248].events.length,p("today.plural.event_one"),p("today.plural.event_few"),p("today.plural.event_many"))+"")&&q(r,s)},d(a){a&&y(e)}}}function Qr(l){let e;return{c(){e=u("div"),e.textContent=`${p("today.changedCases")}`,i(e,"class","today-events-empty svelte-ob364t")},m(t,n){g(t,e,n)},p:$,d(t){t&&y(e)}}}function xr(l){let e,t=ue(l[248].events),n=[];for(let o=0;o0?xr:Qr}let E=K(l),L=E(l);return{c(){e=u("div"),t=u("div"),n=u("span"),s=j(o),r=w(),a=u("span"),d=j(f),v=w(),N&&N.c(),b=w(),_=u("span"),k=j(h),S=w(),L.c(),i(n,"class","today-case-title svelte-ob364t"),i(a,"class","today-case-type svelte-ob364t"),i(_,"class","today-case-time svelte-ob364t"),i(t,"class","today-case-header svelte-ob364t"),i(t,"role","button"),i(t,"tabindex","0"),i(e,"class","today-case svelte-ob364t")},m(M,V){g(M,e,V),c(e,t),c(t,n),c(n,s),c(t,r),c(t,a),c(a,d),c(t,v),N&&N.m(t,null),c(t,b),c(t,_),c(_,k),c(e,S),L.m(e,null),T||(C=[P(t,"click",F),P(t,"keydown",D)],T=!0)},p(M,V){l=M,V[0]&8&&o!==(o=l[248].nodeTitle+"")&&q(s,o),V[0]&8&&f!==(f=l[113](l[248].nodeKind)+"")&&q(d,f),l[248].events?N?N.p(l,V):(N=dn(l),N.c(),N.m(t,b)):N&&(N.d(1),N=null),V[0]&8&&h!==(h=it(l[248].lastActivityAt)+"")&&q(k,h),E===(E=K(l))&&L?L.p(l,V):(L.d(1),L=E(l),L&&(L.c(),L.m(e,null)))},d(M){M&&y(e),N&&N.d(),L.d(),T=!1,pe(C)}}}function vn(l){let e,t,n,o=ue(l[3].events),s=[];for(let r=0;r0&&Cn(l);const L=[dc,uc],M=[];function V(H,U){return H[33]?0:1}k=V(l),S=M[k]=L[k](l);let R=l[29]&&!l[31]&&Tn(),z=l[37]&&Nn(l);return{c(){e=u("div"),t=u("div"),n=u("button"),s=j(o),r=w(),a=u("button"),d=j(f),v=w(),b=u("button"),b.textContent=`${p("file.newFile")}`,_=w(),E&&E.c(),h=w(),S.c(),T=w(),R&&R.c(),C=w(),z&&z.c(),N=tt(),i(n,"class","btn btn-primary svelte-ob364t"),n.disabled=l[29],i(a,"class","btn svelte-ob364t"),a.disabled=l[29],i(b,"class","btn svelte-ob364t"),i(t,"class","tab-toolbar svelte-ob364t"),i(e,"class","files-tab svelte-ob364t")},m(H,U){g(H,e,U),c(e,t),c(t,n),c(n,s),c(t,r),c(t,a),c(a,d),c(t,v),c(t,b),c(t,_),E&&E.m(t,null),c(e,h),M[k].m(e,null),c(e,T),R&&R.m(e,null),g(H,C,U),z&&z.m(H,U),g(H,N,U),F=!0,D||(K=[P(n,"click",l[106]),P(a,"click",l[107]),P(b,"click",l[69])],D=!0)},p(H,U){(!F||U[0]&536870912)&&(n.disabled=H[29]),(!F||U[0]&536870912)&&(a.disabled=H[29]),H[41].items.length>0?E?E.p(H,U):(E=Cn(H),E.c(),E.m(t,null)):E&&(E.d(1),E=null);let A=k;k=V(H),k===A?M[k].p(H,U):(Ve(),oe(M[A],1,1,()=>{M[A]=null}),He(),S=M[k],S?S.p(H,U):(S=M[k]=L[k](H),S.c()),ee(S,1),S.m(e,T)),H[29]&&!H[31]?R||(R=Tn(),R.c(),R.m(e,null)):R&&(R.d(1),R=null),H[37]?z?(z.p(H,U),U[1]&64&&ee(z,1)):(z=Nn(H),z.c(),ee(z,1),z.m(N.parentNode,N)):z&&(Ve(),oe(z,1,1,()=>{z=null}),He())},i(H){F||(ee(S),ee(z),F=!0)},o(H){oe(S),oe(z),F=!1},d(H){H&&(y(e),y(C),y(N)),E&&E.d(),M[k].d(),R&&R.d(),z&&z.d(H),D=!1,pe(K)}}}function nc(l){let e,t,n,o,s,r,a,f=l[22]&&Dn(l);function d(_,h){return _[11].length===0&&!_[22]?hc:bc}let v=d(l),b=v(l);return{c(){e=u("div"),t=u("div"),n=u("button"),n.textContent=`${p("note.add")}`,o=w(),f&&f.c(),s=w(),b.c(),i(n,"class","btn btn-primary svelte-ob364t"),i(t,"class","tab-toolbar svelte-ob364t"),i(e,"class","notes-tab svelte-ob364t")},m(_,h){g(_,e,h),c(e,t),c(t,n),c(e,o),f&&f.m(e,null),c(e,s),b.m(e,null),r||(a=P(n,"click",l[98]),r=!0)},p(_,h){_[22]?f?f.p(_,h):(f=Dn(_),f.c(),f.m(e,s)):f&&(f.d(1),f=null),v===(v=d(_))&&b?b.p(_,h):(b.d(1),b=v(_),b&&(b.c(),b.m(e,null)))},i:$,o:$,d(_){_&&y(e),f&&f.d(),b.d(),r=!1,a()}}}function ic(l){let e,t,n=l[9].title+"",o,s,r,a,f,d,v=l[113](l[9].type)+"",b,_,h,k,S,T=(l[9].section||"—")+"",C,N,F,D,K,E=ot(l[9].createdAt)+"",L,M,V,R,z,H,U,A,B=p("overview.newNote")+"",W,X,Z,J,Y,Ne,le=p("overview.addFile")+"",_e,x,ie,ne,se,ae,Le=p("overview.addAction")+"",Be,Ze,je,ve,te,ye,Fe,Qe=p("overview.logTime")+"",xe,We,Ce,Ke,Ie,Se=l[11].length>0&&An(l),be=l[14].length>0&&In(l);return{c(){e=u("div"),t=u("h2"),o=j(n),s=w(),r=u("div"),a=u("div"),f=u("span"),f.textContent=`${p("overview.type")}`,d=u("span"),b=j(v),_=w(),h=u("div"),k=u("span"),k.textContent=`${p("overview.section")}`,S=u("span"),C=j(T),N=w(),F=u("div"),D=u("span"),D.textContent=`${p("overview.created")}`,K=u("span"),L=j(E),M=w(),V=u("div"),R=u("button"),z=O("svg"),H=O("path"),U=O("path"),A=w(),W=j(B),X=w(),Z=u("button"),J=O("svg"),Y=O("path"),Ne=w(),_e=j(le),x=w(),ie=u("button"),ne=O("svg"),se=O("polygon"),ae=w(),Be=j(Le),Ze=w(),je=u("button"),ve=O("svg"),te=O("circle"),ye=O("polyline"),Fe=w(),xe=j(Qe),We=w(),Se&&Se.c(),Ce=w(),be&&be.c(),i(t,"class","svelte-ob364t"),i(f,"class","meta-label svelte-ob364t"),i(d,"class","svelte-ob364t"),i(a,"class","meta-item svelte-ob364t"),i(k,"class","meta-label svelte-ob364t"),i(S,"class","svelte-ob364t"),i(h,"class","meta-item svelte-ob364t"),i(D,"class","meta-label svelte-ob364t"),i(K,"class","svelte-ob364t"),i(F,"class","meta-item svelte-ob364t"),i(r,"class","meta-grid svelte-ob364t"),i(H,"d","M12 20h9"),i(H,"class","svelte-ob364t"),i(U,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"),i(U,"class","svelte-ob364t"),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-ob364t"),i(R,"class","qa-btn svelte-ob364t"),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-ob364t"),i(J,"width","16"),i(J,"height","16"),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(J,"class","svelte-ob364t"),i(Z,"class","qa-btn svelte-ob364t"),i(se,"points","13 2 3 14 12 14 11 22 21 10 12 10 13 2"),i(se,"class","svelte-ob364t"),i(ne,"width","16"),i(ne,"height","16"),i(ne,"viewBox","0 0 24 24"),i(ne,"fill","none"),i(ne,"stroke","currentColor"),i(ne,"stroke-width","2"),i(ne,"stroke-linecap","round"),i(ne,"stroke-linejoin","round"),i(ne,"class","svelte-ob364t"),i(ie,"class","qa-btn svelte-ob364t"),i(te,"cx","12"),i(te,"cy","12"),i(te,"r","10"),i(te,"class","svelte-ob364t"),i(ye,"points","12 6 12 12 16 14"),i(ye,"class","svelte-ob364t"),i(ve,"width","16"),i(ve,"height","16"),i(ve,"viewBox","0 0 24 24"),i(ve,"fill","none"),i(ve,"stroke","currentColor"),i(ve,"stroke-width","2"),i(ve,"stroke-linecap","round"),i(ve,"stroke-linejoin","round"),i(ve,"class","svelte-ob364t"),i(je,"class","qa-btn svelte-ob364t"),i(V,"class","quick-actions svelte-ob364t"),i(e,"class","overview svelte-ob364t")},m(fe,he){g(fe,e,he),c(e,t),c(t,o),c(e,s),c(e,r),c(r,a),c(a,f),c(a,d),c(d,b),c(r,_),c(r,h),c(h,k),c(h,S),c(S,C),c(r,N),c(r,F),c(F,D),c(F,K),c(K,L),c(e,M),c(e,V),c(V,R),c(R,z),c(z,H),c(z,U),c(R,A),c(R,W),c(V,X),c(V,Z),c(Z,J),c(J,Y),c(Z,Ne),c(Z,_e),c(V,x),c(V,ie),c(ie,ne),c(ne,se),c(ie,ae),c(ie,Be),c(V,Ze),c(V,je),c(je,ve),c(ve,te),c(ve,ye),c(je,Fe),c(je,xe),c(e,We),Se&&Se.m(e,null),c(e,Ce),be&&be.m(e,null),Ke||(Ie=[P(R,"click",l[132]),P(Z,"click",l[133]),P(ie,"click",l[114]),P(je,"click",l[134])],Ke=!0)},p(fe,he){he[0]&512&&n!==(n=fe[9].title+"")&&q(o,n),he[0]&512&&v!==(v=fe[113](fe[9].type)+"")&&q(b,v),he[0]&512&&T!==(T=(fe[9].section||"—")+"")&&q(C,T),he[0]&512&&E!==(E=ot(fe[9].createdAt)+"")&&q(L,E),fe[11].length>0?Se?Se.p(fe,he):(Se=An(fe),Se.c(),Se.m(e,Ce)):Se&&(Se.d(1),Se=null),fe[14].length>0?be?be.p(fe,he):(be=In(fe),be.c(),be.m(e,null)):be&&(be.d(1),be=null)},i:$,o:$,d(fe){fe&&y(e),Se&&Se.d(),be&&be.d(),Ke=!1,pe(Ie)}}}function oc(l){let e,t=ue(l[5]),n=[];for(let o=0;o',F=w(),i(n,"class","action-title svelte-ob364t"),i(a,"class","action-type svelte-ob364t"),i(b,"class","action-data svelte-ob364t"),i(t,"class","action-info svelte-ob364t"),i(T,"class","btn btn-sm svelte-ob364t"),i(N,"class","btn btn-sm btn-danger svelte-ob364t"),i(S,"class","action-btns svelte-ob364t"),i(e,"class","action-card svelte-ob364t")},m(M,V){g(M,e,V),c(e,t),c(t,n),c(n,s),c(t,r),c(t,a),c(a,d),c(t,v),c(t,b),c(b,h),c(e,k),c(e,S),c(S,T),c(S,C),c(S,N),c(e,F),D||(K=[P(T,"click",E),P(N,"click",L)],D=!0)},p(M,V){l=M,V[0]&8192&&o!==(o=l[235].title+"")&&q(s,o),V[0]&8192&&f!==(f=l[118](l[235].type)+"")&&q(d,f),V[0]&8192&&_!==(_=l[235].data+"")&&q(h,_)},d(M){M&&y(e),D=!1,pe(K)}}}function Cn(l){let e,t=p("common.paste")+"",n,o,s=l[41].items.length+"",r,a,f;return{c(){e=u("button"),n=j(t),o=w(),r=j(s),i(e,"class","btn svelte-ob364t")},m(d,v){g(d,e,v),c(e,n),c(e,o),c(e,r),a||(f=P(e,"click",l[74]),a=!0)},p(d,v){v[1]&1024&&s!==(s=d[41].items.length+"")&&q(r,s)},d(d){d&&y(e),a=!1,f()}}}function uc(l){let e,t,n,o,s,r,a;const f=[pc,mc],d=[];function v(k,S){return k[35].length>0?0:1}e=v(l),t=d[e]=f[e](l);const b=[vc,_c],_=[];function h(k,S){return k[36].length===0?0:1}return o=h(l),s=_[o]=b[o](l),{c(){t.c(),n=w(),s.c(),r=tt()},m(k,S){d[e].m(k,S),g(k,n,S),_[o].m(k,S),g(k,r,S),a=!0},p(k,S){let T=e;e=v(k),e===T?d[e].p(k,S):(Ve(),oe(d[T],1,1,()=>{d[T]=null}),He(),t=d[e],t?t.p(k,S):(t=d[e]=f[e](k),t.c()),ee(t,1),t.m(n.parentNode,n));let C=o;o=h(k),o===C?_[o].p(k,S):(Ve(),oe(_[C],1,1,()=>{_[C]=null}),He(),s=_[o],s?s.p(k,S):(s=_[o]=b[o](k),s.c()),ee(s,1),s.m(r.parentNode,r))},i(k){a||(ee(t),ee(s),a=!0)},o(k){oe(t),oe(s),a=!1},d(k){k&&(y(n),y(r)),d[e].d(k),_[o].d(k)}}}function dc(l){let e,t;return{c(){e=u("div"),t=u("p"),t.textContent=`${p("common.loading")}`,i(t,"class","svelte-ob364t"),i(e,"class","empty-state svelte-ob364t")},m(n,o){g(n,e,o),c(e,t)},p:$,i:$,o:$,d(n){n&&y(e)}}}function mc(l){let e,t;return e=new di({props:{crumbs:[{name:p("file.root")}]}}),{c(){Je(e.$$.fragment)},m(n,o){Ye(e,n,o),t=!0},p:$,i(n){t||(ee(e.$$.fragment,n),t=!0)},o(n){oe(e.$$.fragment,n),t=!1},d(n){Xe(e,n)}}}function pc(l){let e,t,n,o,s,r,a,f=p("common.back")+"",d,v,b,_;return e=new di({props:{crumbs:[{name:p("file.root")},...l[35]]}}),e.$on("navigate",l[139]),{c(){Je(e.$$.fragment),t=w(),n=u("button"),o=O("svg"),s=O("line"),r=O("polyline"),a=w(),d=j(f),i(s,"x1","19"),i(s,"y1","12"),i(s,"x2","5"),i(s,"y2","12"),i(s,"class","svelte-ob364t"),i(r,"points","12 19 5 12 12 5"),i(r,"class","svelte-ob364t"),i(o,"width","14"),i(o,"height","14"),i(o,"viewBox","0 0 24 24"),i(o,"fill","none"),i(o,"stroke","currentColor"),i(o,"stroke-width","2"),i(o,"stroke-linecap","round"),i(o,"stroke-linejoin","round"),i(o,"class","svelte-ob364t"),i(n,"class","btn btn-sm back-btn svelte-ob364t")},m(h,k){Ye(e,h,k),g(h,t,k),g(h,n,k),c(n,o),c(o,s),c(o,r),c(n,a),c(n,d),v=!0,b||(_=P(n,"click",l[65]),b=!0)},p(h,k){const S={};k[1]&16&&(S.crumbs=[{name:p("file.root")},...h[35]]),e.$set(S)},i(h){v||(ee(e.$$.fragment,h),v=!0)},o(h){oe(e.$$.fragment,h),v=!1},d(h){h&&(y(t),y(n)),Xe(e,h),b=!1,_()}}}function _c(l){let e,t=[],n=new Map,o,s=ue(l[36]);const r=a=>a[232].id;for(let a=0;a0?p("file.noFiles"):p("file.noFilesCase"))+"",r,a,f,d,v,b,_,h,k,S;return{c(){e=u("div"),t=u("div"),t.innerHTML='',n=w(),o=u("p"),r=j(s),a=w(),f=u("p"),f.textContent=`${p("file.hint")}`,d=w(),v=u("div"),b=u("button"),b.textContent=`${p("file.addFileSimple")}`,_=w(),h=u("button"),h.textContent=`${p("file.addFolderSimple")}`,i(t,"class","empty-icon svelte-ob364t"),i(o,"class","svelte-ob364t"),i(f,"class","hint svelte-ob364t"),i(b,"class","btn btn-primary svelte-ob364t"),i(h,"class","btn svelte-ob364t"),i(v,"class","empty-actions svelte-ob364t"),i(e,"class","empty-state svelte-ob364t")},m(T,C){g(T,e,C),c(e,t),c(e,n),c(e,o),c(o,r),c(e,a),c(e,f),c(e,d),c(e,v),c(v,b),c(v,_),c(v,h),k||(S=[P(b,"click",l[106]),P(h,"click",l[107])],k=!0)},p(T,C){C[1]&16&&s!==(s=(T[35].length>0?p("file.noFiles"):p("file.noFilesCase"))+"")&&q(r,s)},i:$,o:$,d(T){T&&y(e),k=!1,pe(S)}}}function Sn(l,e){let t,n,o;return n=new xs({props:{item:e[232],selected:e[42].includes(e[232].id),onDragStart:e[78],onDragOver:e[79],onDrop:e[80]}}),n.$on("navigate",e[140]),n.$on("preview",e[141]),n.$on("openExternal",e[142]),n.$on("showInFolder",e[143]),n.$on("delete",e[144]),n.$on("rename",e[145]),n.$on("duplicate",e[146]),n.$on("cut",e[147]),n.$on("copy",e[148]),n.$on("selectOne",e[149]),n.$on("toggleSelect",e[150]),n.$on("rangeSelect",e[151]),{key:l,first:null,c(){t=tt(),Je(n.$$.fragment),this.first=t},m(s,r){g(s,t,r),Ye(n,s,r),o=!0},p(s,r){e=s;const a={};r[1]&32&&(a.item=e[232]),r[1]&2080&&(a.selected=e[42].includes(e[232].id)),n.$set(a)},i(s){o||(ee(n.$$.fragment,s),o=!0)},o(s){oe(n.$$.fragment,s),o=!1},d(s){s&&y(t),Xe(n,s)}}}function Tn(l){let e,t;return{c(){e=u("div"),t=u("p"),t.textContent=`${p("file.scanning")}`,i(t,"class","svelte-ob364t"),i(e,"class","empty-state svelte-ob364t")},m(n,o){g(n,e,o),c(e,t)},d(n){n&&y(e)}}}function Nn(l){let e,t;return e=new pr({props:{item:l[37],content:l[38],loading:l[39],error:l[40]}}),e.$on("close",l[68]),e.$on("openExternal",l[152]),{c(){Je(e.$$.fragment)},m(n,o){Ye(e,n,o),t=!0},p(n,o){const s={};o[1]&64&&(s.item=n[37]),o[1]&128&&(s.content=n[38]),o[1]&256&&(s.loading=n[39]),o[1]&512&&(s.error=n[40]),e.$set(s)},i(n){t||(ee(e.$$.fragment,n),t=!0)},o(n){oe(e.$$.fragment,n),t=!1},d(n){Xe(e,n)}}}function Dn(l){let e,t,n,o,s,r,a,f,d;return{c(){e=u("div"),t=u("input"),n=w(),o=u("div"),s=u("button"),s.textContent=`${p("common.create")}`,r=w(),a=u("button"),a.textContent=`${p("common.cancel")}`,i(t,"type","text"),i(t,"placeholder",p("note.title")),i(t,"class","svelte-ob364t"),i(s,"class","btn btn-primary svelte-ob364t"),i(a,"class","btn svelte-ob364t"),i(o,"class","form-actions svelte-ob364t"),i(e,"class","create-form svelte-ob364t")},m(v,b){g(v,e,b),c(e,t),Te(t,l[23]),c(e,n),c(e,o),c(o,s),c(o,r),c(o,a),f||(d=[P(t,"input",l[136]),P(t,"keydown",l[137]),P(s,"click",l[100]),P(a,"click",l[99])],f=!0)},p(v,b){b[0]&8388608&&t.value!==v[23]&&Te(t,v[23])},d(v){v&&y(e),f=!1,pe(d)}}}function bc(l){let e,t=ue(l[11]),n=[];for(let o=0;ooe(Y[le],1,1,()=>{Y[le]=null});return{c(){e=u("div"),t=u("div"),n=u("h3"),n.textContent=`${p("nav.createNode")}`,o=w(),Z&&Z.c(),s=w(),r=u("div"),a=u("label"),a.textContent=`${p("template.select")}`,f=w(),d=u("div"),v=u("button"),Je(b.$$.fragment),_=w(),h=u("div"),k=u("span"),k.textContent=`${p("template.optionNone")}`,S=w(),T=u("span"),T.textContent=`${p("template.none.desc")}`,C=w();for(let le=0;le{h=null}),He()),(!v||S[0]&2097152)&&Ue(t,"left",k[21].x+"px"),(!v||S[0]&2097152)&&Ue(t,"top",k[21].y+"px")},i(k){v||(ee(h),v=!0)},o(k){oe(h),v=!1},d(k){k&&y(e),h&&h.d(),b=!1,pe(_)}}}function Bn(l){let e,t,n,o,s,r=ue(l[2].length>0?l[2]:[{id:"",title:"template.optionNone",icon:"folder"}]),a=[];for(let d=0;doe(a[d],1,1,()=>{a[d]=null});return{c(){e=u("div"),e.textContent=`${p("common.create")}`,t=w();for(let d=0;d0?d[2]:[{id:"",title:"template.optionNone",icon:"folder"}]);let b;for(b=0;bl[175].call(h)),i(v,"class","form-group svelte-ob364t"),i(T,"class","svelte-ob364t"),i(D,"type","text"),i(D,"placeholder",K=l[26]==="open_url"?p("action.urlPlaceholder"):l[26]==="open_folder"||l[26]==="open_file"?p("action.pathPlaceholder"):p("action.commandPlaceholder")),i(D,"class","svelte-ob364t"),i(S,"class","form-group svelte-ob364t"),i(M,"class","btn btn-primary svelte-ob364t"),i(R,"class","btn svelte-ob364t"),i(L,"class","modal-actions svelte-ob364t"),i(t,"class","modal svelte-ob364t"),i(e,"class","modal-overlay svelte-ob364t")},m(B,W){g(B,e,W),c(e,t),c(t,n),c(t,o),c(t,s),c(s,r),c(s,a),c(s,f),Te(f,l[25]),c(t,d),c(t,v),c(v,b),c(v,_),c(v,h);for(let X=0;X0?0:1}F=Se(l),D=Ie[F]=Ke[F](l);function be(G,de){return G[9]?Br:G[8]?zr:Or}let fe=be(l),he=fe(l),De=((gt=l[52])==null?void 0:gt.configured)&&ln(l),ge=l[7]&&on(l);const Re=[Wr,Ur,Hr,Vr,Rr],Pe=[];function qe(G,de){return G[12]?0:G[9]?1:G[8]==="today"&&G[3]?2:G[8]==="activity"?3:4}se=qe(l),ae=Pe[se]=Re[se](l);let ke=l[17]&&jn(l),me=l[21].visible&&zn(l),re=l[24]&&Vn(l),Ae=l[31]&&l[30]&&Un(l),Oe=l[48]&&Kn(l),Me=l[43]&&Gn(l),Ee=l[51]&&Yn(l);return{c(){var G;e=u("div"),t=u("aside"),n=u("div"),o=u("span"),o.textContent="⚒",s=w(),r=u("span"),r.textContent=`${p("nav.brand")}`,a=w(),f=u("nav"),d=u("div"),v=u("div"),v.textContent=`${p("nav.system")}`,b=w();for(let de=0;de{Ie[$e]=null}),He(),D=Ie[F],D?D.p(G,de):(D=Ie[F]=Ke[F](G),D.c()),ee(D,1),D.m(h,null)),(!Fe||de[1]&2097152)&&nt(U,"active",(_t=G[52])==null?void 0:_t.configured),(!Fe||de[0]&64)&&q(Z,G[6]),fe===(fe=be(G))&&he?he.p(G,de):(he.d(1),he=fe(G),he&&(he.c(),he.m(le,null))),(vt=G[52])!=null&&vt.configured?De?De.p(G,de):(De=ln(G),De.c(),De.m(x,null)):De&&(De.d(1),De=null),G[7]?ge?ge.p(G,de):(ge=on(G),ge.c(),ge.m(Y,ne)):ge&&(ge.d(1),ge=null);let pt=se;se=qe(G),se===pt?Pe[se].p(G,de):(Ve(),oe(Pe[pt],1,1,()=>{Pe[pt]=null}),He(),ae=Pe[se],ae?ae.p(G,de):(ae=Pe[se]=Re[se](G),ae.c()),ee(ae,1),ae.m(Y,Le)),G[17]?ke?(ke.p(G,de),de[0]&131072&&ee(ke,1)):(ke=jn(G),ke.c(),ee(ke,1),ke.m(Y,Be)):ke&&(Ve(),oe(ke,1,1,()=>{ke=null}),He()),G[21].visible?me?(me.p(G,de),de[0]&2097152&&ee(me,1)):(me=zn(G),me.c(),ee(me,1),me.m(Y,Ze)):me&&(Ve(),oe(me,1,1,()=>{me=null}),He()),G[24]?re?re.p(G,de):(re=Vn(G),re.c(),re.m(Y,je)):re&&(re.d(1),re=null),G[31]&&G[30]?Ae?Ae.p(G,de):(Ae=Un(G),Ae.c(),Ae.m(Y,ve)):Ae&&(Ae.d(1),Ae=null),G[48]?Oe?Oe.p(G,de):(Oe=Kn(G),Oe.c(),Oe.m(Y,te)):Oe&&(Oe.d(1),Oe=null),G[43]?Me?(Me.p(G,de),de[1]&4096&&ee(Me,1)):(Me=Gn(G),Me.c(),ee(Me,1),Me.m(Y,ye)):Me&&(Ve(),oe(Me,1,1,()=>{Me=null}),He()),G[51]?Ee?Ee.p(G,de):(Ee=Yn(G),Ee.c(),Ee.m(Y,null)):Ee&&(Ee.d(1),Ee=null)},i(G){Fe||(ee(D),ee(ae),ee(ke),ee(me),ee(Me),Fe=!0)},o(G){oe(D),oe(ae),oe(ke),oe(me),oe(Me),Fe=!1},d(G){G&&y(e),ze(Ce,G),Ie[F].d(),he.d(),De&&De.d(),ge&&ge.d(),Pe[se].d(),ke&&ke.d(),me&&me.d(),re&&re.d(),Ae&&Ae.d(),Oe&&Oe.d(),Me&&Me.d(),Ee&&Ee.d(),Qe=!1,pe(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 Xt(l,e,t){for(const n of l){if(n.id===e)return n.children=t,!0;if(n.children&&Xt(n.children,e,t))return!0}return!1}function Nc(l){l.preventDefault(),l.dataTransfer.dropEffect="move"}function yt(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 it(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 rt(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 Dc(l,e,t){let n=[],o=[],s=[],r=null,a=[],f=0,d=!0,v=[],b="",_="",h="",k=null,S="overview",T=[],C=null,N=[],F=[],D=[],K="",E="",L=!1,M="",V=null,R=null,z={visible:!1,x:0,y:0,node:null},H=!1,U="",A=!1,B="",W="open_url",X="",Z=[{id:"open_url",label:p("action.openUrl")},{id:"open_file",label:p("action.openFile")},{id:"open_folder",label:p("action.openFolder")},{id:"run_command",label:p("action.runCommand")},{id:"run_script",label:p("action.runScript")},{id:"open_terminal",label:p("action.openTerminal")},{id:"launch_app",label:p("action.launchApp")}],J=!0,Y=!1,Ne=null,le=!1,_e="",x={},ie=!1,ne=null,se=[],ae=[],Le=null,Be="",Ze=!1,je="",ve={items:[],mode:"copy"},te=[],ye=[],Fe=!1,Qe="",xe="",We=!1,Ce=p("common.delete"),Ke=null,Ie=null,Se=!1,be="",fe="",he="",De=!1,ge=null,Re=!1,Pe="",qe="",ke="",me=0,re="";const Ae=[{id:"overview",label:p("tab.overview")},{id:"notes",label:p("tab.notes")},{id:"files",label:p("tab.files")},{id:"actions",label:p("tab.actions")},{id:"worklog",label:p("tab.worklog")},{id:"activity",label:p("tab.activity")}];let Oe=null;li(async()=>{try{t(6,b=await Q("VerstakVersion")||"verstak-gui/v2"),t(0,n=await Q("ListSystemViews")||[]),t(1,o=await Q("ListWorkspaceTree")||[]),t(2,s=await Q("ListEnabledTemplates")||[])}catch(m){t(7,_=String(m)),t(0,n=[{id:"today",label:p("nav.today")},{id:"inbox",label:p("nav.inbox")},{id:"activity",label:p("nav.activity")}]),t(1,o=[]),t(2,s=[])}window.runtime&&window.runtime.EventsOn&&(window.runtime.EventsOn("files-dropped",Ui),Oe=()=>window.runtime.EventsOff("files-dropped")),window.addEventListener("keydown",il),t(28,J=!1),Tt()}),ni(()=>{Oe&&Oe(),window.removeEventListener("keydown",il)});async function Me(m){t(8,h=m),t(9,k=null),t(10,S="overview"),t(11,T=[]),N=[],t(13,F=[]),t(14,D=[]),t(17,L=!1),t(7,_=""),t(3,r=null),t(4,a=[]),f=0,d=!0;try{m==="today"?t(3,r=await Q("ListTodayView")||{cases:[]}):m==="activity"&&(t(4,a=await Q("ListActivityFeed",50,0)||[]),f=a.length,d=a.length===50)}catch(I){t(7,_=String(I)),t(3,r={cases:[]}),t(4,a=[])}}async function Ee(m){t(9,k=m),t(10,S="overview"),t(11,T=[]),N=[],t(13,F=[]),t(14,D=[]),t(32,x={}),t(36,ae=[]),t(35,se=[]),t(34,ne=null),t(37,Le=null),t(38,Be=""),t(42,te=[]),ye=[],t(12,C=null),t(17,L=!1),t(22,H=!1),t(7,_=""),t(5,v=[]),await gt(m.id)}async function gt(m){try{t(11,T=await Q("ListNotes",m)||[])}catch{}try{N=await Q("ListFiles",m)||[]}catch{}try{t(13,F=await Q("ListActions",m)||[])}catch{}try{t(14,D=await Q("ListWorklog",m)||[])}catch{}try{t(5,v=await Q("ListActivityByNode",m,50,0)||[])}catch{}}async function G(m){t(33,ie=!0);try{let I=await Q("ListItems",m)||[];I.sort((ce,we)=>ce.type!==we.type?ce.type==="folder"?-1:1:(ce.name||"").localeCompare(we.name||"")),t(36,ae=I)}catch{t(36,ae=[])}t(33,ie=!1)}async function de(m){if(k){try{const I=await Q("GetNodeDetail",m);I&&t(35,se=[...se,{id:m,name:I.title}])}catch{t(35,se=[...se,{id:m,name:"..."}])}t(34,ne=m),await G(m)}}function $e(){if(se.length<2)t(35,se=[]),t(34,ne=null),G(k.id);else{const m=se[se.length-2];t(35,se=se.slice(0,-1)),t(34,ne=m.id),G(m.id)}}function pt(m){const I=se[m];t(35,se=se.slice(0,m+1)),t(34,ne=I.id),G(I.id)}async function _t(m){t(37,Le=m),t(38,Be=""),t(40,je=""),t(39,Ze=!0);try{Ks(m)?t(38,Be=await Q("GetFileBase64",m.fileId)||""):qs(m)&&t(38,Be=await Q("ReadFileText",m.fileId)||"")}catch(I){t(40,je=String(I))}t(39,Ze=!1)}function vt(){t(37,Le=null),t(38,Be=""),t(40,je="")}async function Ge(){const m=prompt(p("file.namePrompt"));if(!(!m||!m.trim()))try{const I=ne||k.id;await Q("CreateEmptyFile",I,m.trim()),await G(I)}catch(I){t(7,_=String(I))}}async function wt(m){try{await Q("DuplicateNode",m);const I=ne||k.id;await G(I)}catch(I){t(7,_=String(I))}}function Qt(m){const I=ae.find(ce=>ce.id===m);I&&Bt(I.id,I.name)}function xt(m){t(41,ve={items:[m],mode:"cut"})}function $t(m){t(41,ve={items:[m],mode:"copy"})}async function el(){if(ve.items.length===0)return;const m=ne||k.id;try{if(ve.mode==="copy")for(const I of ve.items)await Q("DuplicateNode",I);else for(const I of ve.items)await Q("MoveNode",I,m);t(41,ve={items:[],mode:"copy"}),await G(m)}catch(I){t(7,_=String(I))}}function tl(m){te.includes(m)?t(42,te=te.filter(I=>I!==m)):t(42,te=[...te,m])}function ll(m){t(42,te=[m])}function _i(){t(42,te=ae.map(m=>m.id))}function nl(m){if(ae.length===0)return;const I=te.length>0?te[te.length-1]:ae[0].id,ce=ae.findIndex(ut=>ut.id===I),we=ae.findIndex(ut=>ut.id===m);if(ce===-1||we===-1)return;const lt=Math.min(ce,we),Wt=Math.max(ce,we),rs=ae.slice(lt,Wt+1).map(ut=>ut.id),kl=new Set(te);rs.forEach(ut=>kl.add(ut)),t(42,te=[...kl])}function vi(){t(42,te=[])}function zt(m){return m.length>0?m:ae.map(I=>I.id)}async function bi(){const m=zt(te),I=ae.find(we=>we.id===m[0]);let ce;m.length===1&&(I==null?void 0:I.type)==="folder"?ce=p("delete.folder"):m.length===1?ce=p("delete.file"):ce=p("delete.files",{count:m.length}),Ct({title:p("delete.confirmTitle"),message:p("delete.confirmMessage")+" "+ce+"?",confirmText:p("common.delete"),danger:!0,onConfirm:async()=>{for(const lt of m)try{await Q("DeleteFileOrFolder",lt)}catch(Wt){t(7,_=String(Wt))}t(42,te=[]);const we=ne||k.id;await G(we)}})}function hi(){const m=zt(te);t(41,ve={items:m,mode:"cut"}),t(42,te=[])}function ki(){const m=zt(te);t(41,ve={items:m,mode:"copy"}),t(42,te=[])}function yi(m,I){const ce=te.includes(I)?te:[I];ye=ce,m.dataTransfer.effectAllowed="move",m.dataTransfer.setData("text/plain",ce.join(","))}function gi(m,I){const ce=ae.find(we=>we.id===I);ce&&ce.type==="folder"&&(m.preventDefault(),m.dataTransfer.dropEffect="move")}async function wi(m,I){if(m.preventDefault(),ye.length!==0){for(const ce of ye)try{await Q("MoveNode",ce,I)}catch(we){t(7,_=String(we))}ye=[],t(42,te=[]),await G(ne||k.id)}}function il(m){if(S==="files"&&!(m.target.tagName==="INPUT"||m.target.tagName==="TEXTAREA"))if(m.ctrlKey||m.metaKey)m.key==="c"||m.key==="C"?(m.preventDefault(),ki()):m.key==="x"||m.key==="X"?(m.preventDefault(),hi()):m.key==="v"||m.key==="V"?(m.preventDefault(),el()):m.key==="a"||m.key==="A"?(m.preventDefault(),_i()):m.key==="o"||m.key==="O"?(m.preventDefault(),Ci()):m.key==="Enter"&&(m.preventDefault(),ol());else if(m.key==="Enter")m.preventDefault(),ol();else if(m.key==="Delete"||m.key==="Backspace"){if(Le){m.preventDefault(),vt();return}if(te.length>0){m.preventDefault(),bi();return}if(m.key==="Backspace"&&se.length>0){m.preventDefault(),$e();return}}else if(m.key==="Escape"){if(Le){vt();return}if(te.length>0){vi();return}}else m.key==="F2"&&(m.preventDefault(),Si())}function ol(){if(te.length===1){const m=ae.find(I=>I.id===te[0]);m&&(m.type==="folder"?de(m.id):_t(m))}}function Ci(){if(te.length===1){const m=ae.find(I=>I.id===te[0]);m&&m.fileId&&Q("OpenFile",m.fileId)}}function Bt(m,I){be=m,t(49,fe=I),t(50,he=""),t(48,Se=!0)}function Si(){if(te.length===1){const m=ae.find(I=>I.id===te[0]);m&&Bt(m.id,m.name)}}async function sl(){const m=fe.trim();if(!m){t(50,he=p("rename.emptyError"));return}try{await Q("ValidateName",m)}catch{t(50,he=p("rename.invalidError"));return}t(48,Se=!1),be="";try{await Q("RenameNode",be,m);const I=ne||k.id;await G(I)}catch(I){t(7,_=String(I))}}function Ti(){t(48,Se=!1),be="",t(49,fe=""),t(50,he="")}function Ni(m){m.key==="Enter"?sl():t(50,he="")}function Ct(m){t(44,Qe=m.title||p("common.confirm")),t(45,xe=m.message||""),t(46,We=m.danger!==void 0?m.danger:!0),t(47,Ce=m.confirmText||p("common.delete")),Ke=m.onConfirm||null,Ie=m.onCancel||null,t(43,Fe=!0)}function rl(){t(43,Fe=!1),Ke=null,Ie=null}function Di(){Ke&&Ke(),rl()}function Fi(){Ie&&Ie(),rl()}function cl(m){t(19,V=z.node),t(20,R=m),t(18,M=""),t(17,L=!0),St()}function Ai(){t(19,V=null),t(20,R=void 0),t(18,M=""),t(17,L=!0)}function Mi(){t(17,L=!1),t(18,M=""),t(19,V=null),t(20,R=void 0)}async function al(){if(!(!M.trim()||R===void 0))try{const m=V?V.id:"",I=R?R.id:"",ce=await Q("CreateNodeFromTemplate",m,M.trim(),I);t(17,L=!1),t(18,M="");const we=ce?ce.id:null;if(t(19,V=null),t(20,R=void 0),m){t(32,x={...x,[m]:!0});const lt=await Q("ListWorkspaceChildren",m)||[];Xt(o,m,lt),t(1,o=[...o])}else t(1,o=await Q("ListWorkspaceTree")||o);if(we){const lt=await Q("GetNodeDetail",we);lt&&(t(8,h=""),Ee(lt))}}catch(m){t(7,_=String(m))}}function Ii(m,I){t(21,z={visible:!0,x:m.clientX,y:m.clientY,node:I})}function St(){t(21,z={visible:!1,x:0,y:0,node:null})}async function Ei(m){const I=!x[m];if(t(32,x={...x,[m]:I}),!I)return;const ce=await Q("ListWorkspaceChildren",m)||[];Xt(o,m,ce),t(1,o=[...o])}async function Li(m,I){if(!(!m||!I||m===I))try{const ce=await Q("MoveNode",m,I);t(1,o=await Q("ListWorkspaceTree")||[]);const we=await Q("GetNodeDetail",m);we&&(t(8,h=""),Ee(we))}catch(ce){t(7,_=String(ce))}}async function ji(m){m.preventDefault();try{const I=m.dataTransfer.getData("text/plain");if(!I)return;const ce=await Q("GetNodeDetail",I);if(!ce||!ce.parent_id)return;await Q("MoveNode",I,""),t(1,o=await Q("ListWorkspaceTree")||[]);const we=await Q("GetNodeDetail",I);we&&(t(8,h=""),Ee(we))}catch(I){t(7,_=String(I))}}function fl(m){Bt(m.id,m.title),St()}function ul(m){St(),Ct({title:p("delete.confirmTitle"),message:p("delete.confirmMessage")+" "+m.title+"?",confirmText:p("common.delete"),danger:!0,onConfirm:async()=>{try{await Q("DeleteNode",m.id),t(1,o=await Q("ListWorkspaceTree")||o),k&&k.id===m.id&&t(9,k=null)}catch(I){t(7,_=String(I))}}})}async function dl(m){St();try{await Q("OpenNodeFolder",m.id)}catch(I){t(7,_=String(I))}}function ml(){t(22,H=!0),t(23,U="")}function Pi(){t(22,H=!1),t(23,U="")}async function pl(){if(!(!U.trim()||!k))try{const m=await Q("CreateNote",k.id,U.trim());t(11,T=[...T,m&&m.id?m:{id:Date.now().toString(),title:U.trim(),createdAt:new Date().toISOString()}]),t(22,H=!1),t(23,U="")}catch{const I={id:Date.now().toString(),title:U.trim(),createdAt:new Date().toISOString()};t(11,T=[...T,I]),t(22,H=!1),t(23,U="")}}async function Rt(m){if(C&&C.dirty){Ct({title:p("note.unsavedTitle"),message:p("note.unsavedMessage"),confirmText:p("note.unsavedClose"),danger:!1,onConfirm:async()=>{await _l(m)}});return}await _l(m)}async function _l(m){try{const I=await Q("ReadNote",m.id);t(12,C={id:m.id,title:m.title,content:I||"",dirty:!1})}catch{t(12,C={id:m.id,title:m.title,content:"# "+m.title+` - -`,dirty:!1})}}function Oi(){if(C&&C.dirty){Ct({title:p("note.unsavedTitle"),message:p("note.unsavedMessage"),confirmText:p("note.unsavedClose"),danger:!1,onConfirm:()=>{t(12,C=null)}});return}t(12,C=null)}function zi(m){C&&(t(12,C.content=m.target.value,C),t(12,C.dirty=!0,C))}async function Bi(){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 Ri(){const m=parseInt(K,10);if(!(!E.trim()||isNaN(m)||m<=0||!k)){try{const I=await Q("CreateWorklog",k.id,E.trim(),m);t(14,D=[...D,I&&I.id?I:{id:Date.now().toString(),nodeId:k.id,summary:E.trim(),minutes:m,createdAt:new Date().toISOString()}])}catch{t(14,D=[...D,{id:Date.now().toString(),nodeId:k.id,summary:E.trim(),minutes:m,createdAt:new Date().toISOString()}])}t(16,E=""),t(15,K="")}}async function vl(){const m=await Q("PickFile");m&&await Vt(k.id,m)}async function Vi(){const m=await Q("PickDirectory");m&&await Vt(k.id,m)}async function Vt(m,I){t(29,Y=!0);try{const ce=await Q("PreviewImport",I);t(30,Ne=ce),_e=I,t(31,le=!0)}catch(ce){t(7,_=String(ce))}t(29,Y=!1)}async function Ht(m){try{const I=m==="copy"?await Q("AddPathCopy",k.id,_e):await Q("AddPathLink",k.id,_e);t(31,le=!1),t(30,Ne=null),t(35,se=[]),t(34,ne=null),await Promise.all([gt(k.id),G(k.id)])}catch(I){t(7,_=String(I))}}function Hi(){t(31,le=!1),t(30,Ne=null)}async function bl({id:m,type:I}){const ce=p(I==="folder"?"delete.folder":"delete.file");Ct({title:p("delete.confirmTitle"),message:p("delete.confirmMessage")+" "+ce+"?",confirmText:p("common.delete"),danger:!0,onConfirm:async()=>{try{await Q("DeleteFileOrFolder",m),N=N.filter(lt=>lt.nodeId!==m);const we=ne||k.id;await G(we)}catch(we){t(7,_=String(we))}}})}async function Ui(m){if(!m||m.length===0)return;if(!k){t(7,_=p("error.selectCaseFirst"));return}const I=m[0];await Vt(k.id,I)}function Wi(m){return S===m?"tab active":"tab"}function Ki(m){return{note_created:p("event.noteCreated"),note_updated:p("event.noteUpdated"),file_added:p("event.fileAdded"),file_deleted:p("event.fileDeleted"),file_renamed:p("event.fileRenamed"),file_copied:p("event.fileCopied"),file_moved:p("event.fileMoved"),folder_added:p("event.folderAdded"),folder_deleted:p("event.folderDeleted"),folder_renamed:p("event.folderRenamed"),node_created:p("event.caseCreated"),node_updated:p("event.caseUpdated")}[m]||m}function qi(m){return{project:p("kind.project"),client:p("kind.client"),document:p("kind.document"),recipe:p("kind.recipe"),folder:p("kind.folder"),note:p("kind.note"),file:p("kind.file"),archive:p("kind.archive"),case:p("kind.case")}[m]||m||p("kind.case")}function Gi(){t(24,A=!0),t(25,B=""),t(26,W="open_url"),t(27,X="")}function Yi(){t(24,A=!1),t(25,B=""),t(27,X="")}async function Ut(){if(!(!B.trim()||!X.trim()||!k))try{const m=await Q("CreateAction",k.id,W,B.trim(),X.trim());m&&m.id&&t(13,F=[...F,m]),t(24,A=!1),t(25,B=""),t(27,X="")}catch(m){t(7,_=String(m))}}async function hl(m){try{await Q("DeleteAction",m),t(13,F=F.filter(I=>I.id!==m))}catch(I){t(7,_=String(I))}}function Xi(m){const I=Z.find(ce=>ce.id===m);return I?I.label:m}async function st(m){try{const I=await Q("GetNodeDetail",m);I&&Ee(I)}catch(I){t(7,_=String(I))}}async function Tt(){try{t(52,ge=await Q("SyncStatus"))}catch{t(52,ge={configured:!1,serverUrl:"",deviceId:"",unpushedOps:0,lastSyncAt:"",syncInterval:0})}}function Ji(){t(51,De=!0),t(54,Pe=(ge==null?void 0:ge.serverUrl)||""),t(55,qe=""),t(56,ke=""),t(57,me=(ge==null?void 0:ge.syncInterval)||0),t(58,re="")}function Zi(){t(51,De=!1),t(58,re="")}async function Qi(){t(53,Re=!0),t(58,re="");try{await Q("SyncConfigure",Pe,qe,ke),me>0&&await Q("SyncSetInterval",me),t(56,ke=""),t(55,qe=""),await Tt(),t(51,De=!1)}catch(m){t(58,re="err: "+String(m))}t(53,Re=!1)}async function xi(){t(53,Re=!0),t(58,re="");try{await Q("SyncSetInterval",me),t(58,re=p("sync.settingsSaved")),await Tt()}catch(m){t(58,re="err: "+String(m))}t(53,Re=!1)}async function $i(){t(53,Re=!0),t(58,re="");try{await Q("SyncTestConnection",Pe,qe,ke),t(58,re="connection ok")}catch(m){t(58,re="connection failed: "+String(m))}t(53,Re=!1)}async function eo(){t(53,Re=!0),t(58,re="");try{await Q("SyncDisconnect"),t(58,re="disconnected"),await Tt()}catch(m){t(58,re="err: "+String(m))}t(53,Re=!1)}async function to(){t(53,Re=!0),t(58,re="");try{const m=await Q("SyncNow");t(58,re="pushed "+m.pushed+", pulled "+m.pulled+" (seq "+m.serverSequence+")"),await Tt()}catch(m){t(58,re="err: "+String(m))}t(53,Re=!1)}const lo=m=>Me(m.id),no=()=>t(7,_=""),io=()=>t(7,_="");function oo(){C.content=this.value,t(12,C)}const so=m=>{t(10,S=m.id),m.id==="files"&&k&&ae.length===0&&!ne&&G(k.id)},ro=()=>{t(10,S="notes"),ml()},co=()=>{t(10,S="files"),vl()},ao=()=>t(10,S="worklog"),fo=m=>Rt(m);function uo(){U=this.value,t(23,U)}const mo=m=>m.key==="Enter"&&pl(),po=m=>Rt(m),_o=m=>{const I=m.detail;I===0?(t(35,se=[]),t(34,ne=null),G(k.id)):pt(I-1)},vo=m=>de(m.detail),bo=m=>_t(m.detail),ho=m=>Q("OpenFile",m.detail),ko=m=>Q("OpenFolder",m.detail),yo=m=>bl(m.detail),go=m=>Qt(m.detail.id),wo=m=>wt(m.detail),Co=m=>xt(m.detail),So=m=>$t(m.detail),To=m=>ll(m.detail),No=m=>tl(m.detail),Do=m=>nl(m.detail),Fo=m=>Q("OpenFile",m.detail),Ao=m=>Q("RunAction",m.id),Mo=m=>hl(m.id);function Io(){E=this.value,t(16,E)}function Eo(){K=Et(this.value),t(15,K)}const Lo=m=>st(m.nodeId),jo=(m,I)=>I.key==="Enter"&&st(m.nodeId),Po=m=>st(m.nodeId),Oo=(m,I)=>I.key==="Enter"&&st(m.nodeId),zo=m=>st(m.nodeId),Bo=(m,I)=>I.key==="Enter"&&st(m.nodeId),Ro=m=>st(m.nodeId),Vo=(m,I)=>I.key==="Enter"&&st(m.nodeId),Ho=()=>t(20,R=null),Uo=m=>t(20,R=m);function Wo(){M=this.value,t(18,M)}const Ko=m=>m.key==="Enter"&&al(),qo=m=>cl(m),Go=()=>fl(z.node),Yo=()=>ul(z.node),Xo=()=>dl(z.node);function Jo(){B=this.value,t(25,B)}const Zo=m=>m.key==="Enter"&&Ut();function Qo(){W=ms(this),t(26,W),t(59,Z)}function xo(){X=this.value,t(27,X)}const $o=m=>m.key==="Enter"&&Ut(),es=()=>Ht("copy"),ts=()=>Ht("link");function ls(){fe=this.value,t(49,fe)}function ns(){Pe=this.value,t(54,Pe)}function is(){qe=this.value,t(55,qe)}function os(){ke=this.value,t(56,ke)}function ss(){me=Et(this.value),t(57,me)}return[n,o,s,r,a,v,b,_,h,k,S,T,C,F,D,K,E,L,M,V,R,z,H,U,A,B,W,X,J,Y,Ne,le,x,ie,ne,se,ae,Le,Be,Ze,je,ve,te,Fe,Qe,xe,We,Ce,Se,fe,he,De,ge,Re,Pe,qe,ke,me,re,Z,Ae,Me,Ee,G,de,$e,pt,_t,vt,Ge,wt,Qt,xt,$t,el,tl,ll,nl,yi,gi,wi,sl,Ti,Ni,Di,Fi,cl,Ai,Mi,al,Ii,St,Ei,Li,ji,fl,ul,dl,ml,Pi,pl,Rt,Oi,zi,Bi,Ri,vl,Vi,Ht,Hi,bl,Wi,Ki,qi,Gi,Yi,Ut,hl,Xi,st,Ji,Zi,Qi,xi,$i,eo,to,lo,no,io,oo,so,ro,co,ao,fo,uo,mo,po,_o,vo,bo,ho,ko,yo,go,wo,Co,So,To,No,Do,Fo,Ao,Mo,Io,Eo,Lo,jo,Po,Oo,zo,Bo,Ro,Vo,Ho,Uo,Wo,Ko,qo,Go,Yo,Xo,Jo,Zo,Qo,xo,$o,es,ts,ls,ns,is,os,ss]}class Fc extends ft{constructor(e){super(),at(this,e,Dc,Tc,ct,{},null,[-1,-1,-1,-1,-1,-1,-1,-1,-1])}}new Fc({target:document.getElementById("app")}); diff --git a/cmd/verstak-gui/frontend-dist/assets/main-y7k2Kn7r.js b/cmd/verstak-gui/frontend-dist/assets/main-y7k2Kn7r.js new file mode 100644 index 0000000..5dd1c3a --- /dev/null +++ b/cmd/verstak-gui/frontend-dist/assets/main-y7k2Kn7r.js @@ -0,0 +1,3 @@ +var cs=Object.defineProperty;var as=(l,e,t)=>e in l?cs(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t;var Gt=(l,e,t)=>as(l,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const r of s.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function t(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(o){if(o.ep)return;o.ep=!0;const s=t(o);fetch(o.href,s)}})();function $(){}function ei(l){return l()}function wl(){return Object.create(null)}function pe(l){l.forEach(ei)}function ti(l){return typeof l=="function"}function ct(l,e){return l!=l?e==e:l!==e||l&&typeof l=="object"||typeof l=="function"}let Ft;function Et(l,e){return l===e?!0:(Ft||(Ft=document.createElement("a")),Ft.href=e,l===Ft.href)}function fs(l){return Object.keys(l).length===0}function us(l){return l??""}function c(l,e){l.appendChild(e)}function g(l,e,t){l.insertBefore(e,t||null)}function y(l){l.parentNode&&l.parentNode.removeChild(l)}function ze(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 et(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 Lt(l){return l===""?null:+l}function ds(l){return Array.from(l.childNodes)}function q(l,e){e=""+e,l.data!==e&&(l.data=e)}function Ne(l,e){l.value=e??""}function Ue(l,e,t,n){t==null?l.style.removeProperty(e):l.style.setProperty(e,t,"")}function Cl(l,e,t){for(let n=0;n{const o=l.$$.callbacks[e];if(o){const s=ps(e,t,{cancelable:n});return o.slice().forEach(r=>{r.call(l,s)}),!s.defaultPrevented}return!0}}function ii(l,e){const t=l.$$.callbacks[e.type];t&&t.slice().forEach(n=>n.call(this,e))}const ht=[],Sl=[];let kt=[];const Tl=[],_s=Promise.resolve();let Xt=!1;function vs(){Xt||(Xt=!0,_s.then(oi))}function jt(l){kt.push(l)}const Yt=new Set;let bt=0;function oi(){if(bt!==0)return;const l=Dt;do{try{for(;btl.indexOf(n)===-1?e.push(n):t.push(n)),t.forEach(n=>n()),kt=e}const At=new Set;let dt;function Ve(){dt={r:0,c:[],p:dt}}function He(){dt.r||pe(dt.c),dt=dt.p}function ee(l,e){l&&l.i&&(At.delete(l),l.i(e))}function oe(l,e,t,n){if(l&&l.o){if(At.has(l))return;At.add(l),dt.c.push(()=>{At.delete(l),n&&(t&&l.d(1),n())}),l.o(e)}else n&&n()}function ue(l){return(l==null?void 0:l.length)!==void 0?l:Array.from(l)}function ks(l,e){oe(l,1,1,()=>{e.delete(l.key)})}function ys(l,e,t,n,o,s,r,a,f,m,v,b){let _=l.length,h=s.length,k=_;const S={};for(;k--;)S[l[k].key]=k;const T=[],C=new Map,N=new Map,F=[];for(k=h;k--;){const L=b(o,s,k),I=t(L);let R=r.get(I);R?F.push(()=>R.p(L,e)):(R=m(I,L),R.c()),C.set(I,T[k]=R),I in S&&N.set(I,Math.abs(k-S[I]))}const D=new Set,W=new Set;function E(L){ee(L,1),L.m(a,v),r.set(L.key,L),v=L.first,h--}for(;_&&h;){const L=T[h-1],I=l[_-1],R=L.key,B=I.key;L===I?(v=L.first,_--,h--):C.has(B)?!r.has(R)||D.has(R)?E(L):W.has(B)?_--:N.get(R)>N.get(B)?(W.add(R),E(L)):(D.add(B),_--):(f(I,r),_--)}for(;_--;){const L=l[_];C.has(L.key)||f(L,r)}for(;h;)E(T[h-1]);return pe(F),T}function Je(l){l&&l.c()}function Ye(l,e,t){const{fragment:n,after_update:o}=l.$$;n&&n.m(e,t),jt(()=>{const s=l.$$.on_mount.map(ei).filter(ti);l.$$.on_destroy?l.$$.on_destroy.push(...s):pe(s),l.$$.on_mount=[]}),o.forEach(jt)}function Xe(l,e){const t=l.$$;t.fragment!==null&&(hs(t.after_update),pe(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function gs(l,e){l.$$.dirty[0]===-1&&(ht.push(l),vs(),l.$$.dirty.fill(0)),l.$$.dirty[e/31|0]|=1<{const k=h.length?h[0]:_;return m.ctx&&o(m.ctx[b],m.ctx[b]=k)&&(!m.skip_bound&&m.bound[b]&&m.bound[b](k),v&&gs(l,b)),_}):[],m.update(),v=!0,pe(m.before_update),m.fragment=n?n(m.ctx):!1,e.target){if(e.hydrate){const b=ds(e.target);m.fragment&&m.fragment.l(b),b.forEach(y)}else m.fragment&&m.fragment.c();e.intro&&ee(l.$$.fragment),Ye(l,e.target,e.anchor),oi()}Nt(f)}class ft{constructor(){Gt(this,"$$");Gt(this,"$$set")}$destroy(){Xe(this,1),this.$destroy=$}$on(e,t){if(!ti(t))return $;const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{const o=n.indexOf(t);o!==-1&&n.splice(o,1)}}$set(e){this.$$set&&!fs(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const ws="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(ws);function Cs(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,o){g(n,e,o),g(n,t,o)},d(n){n&&(y(e),y(t))}}}function Ss(l){let e,t,n,o,s;return{c(){e=O("path"),t=O("polyline"),n=O("line"),o=O("line"),s=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(o,"x1","16"),i(o,"y1","17"),i(o,"x2","8"),i(o,"y2","17"),i(s,"points","10 9 9 9 8 9")},m(r,a){g(r,e,a),g(r,t,a),g(r,n,a),g(r,o,a),g(r,s,a)},d(r){r&&(y(e),y(t),y(n),y(o),y(s))}}}function Ts(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,o){g(n,e,o),g(n,t,o)},d(n){n&&(y(e),y(t))}}}function Ns(l){let e,t,n,o;return{c(){e=O("path"),t=O("polyline"),n=O("line"),o=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(o,"x","10"),i(o,"y","12"),i(o,"width","4"),i(o,"height","4"),i(o,"rx","1")},m(s,r){g(s,e,r),g(s,t,r),g(s,n,r),g(s,o,r)},d(s){s&&(y(e),y(t),y(n),y(o))}}}function Ds(l){let e,t,n,o,s;return{c(){e=O("path"),t=O("polyline"),n=O("line"),o=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","9"),i(n,"y1","12"),i(n,"x2","15"),i(n,"y2","12"),i(o,"x1","9"),i(o,"y1","15"),i(o,"x2","13"),i(o,"y2","15"),i(s,"x1","12"),i(s,"y1","15"),i(s,"x2","12"),i(s,"y2","18")},m(r,a){g(r,e,a),g(r,t,a),g(r,n,a),g(r,o,a),g(r,s,a)},d(r){r&&(y(e),y(t),y(n),y(o),y(s))}}}function Fs(l){let e,t,n,o,s,r;return{c(){e=O("path"),t=O("polyline"),n=O("line"),o=O("line"),s=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(o,"x1","8"),i(o,"y1","16"),i(o,"x2","16"),i(o,"y2","16"),i(s,"x1","8"),i(s,"y1","14"),i(s,"x2","12"),i(s,"y2","14"),i(r,"x1","12"),i(r,"y1","12"),i(r,"x2","12"),i(r,"y2","18")},m(a,f){g(a,e,f),g(a,t,f),g(a,n,f),g(a,o,f),g(a,s,f),g(a,r,f)},d(a){a&&(y(e),y(t),y(n),y(o),y(s),y(r))}}}function As(l){let e,t,n,o;return{c(){e=O("path"),t=O("polyline"),n=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","16"),i(n,"y1","13"),i(n,"x2","8"),i(n,"y2","13"),i(o,"x1","16"),i(o,"y1","17"),i(o,"x2","8"),i(o,"y2","17")},m(s,r){g(s,e,r),g(s,t,r),g(s,n,r),g(s,o,r)},d(s){s&&(y(e),y(t),y(n),y(o))}}}function Is(l){let e,t,n,o,s;return{c(){e=O("path"),t=O("polyline"),n=O("line"),o=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","8"),i(n,"y1","12"),i(n,"x2","16"),i(n,"y2","12"),i(o,"x1","8"),i(o,"y1","16"),i(o,"x2","16"),i(o,"y2","16"),i(s,"x1","8"),i(s,"y1","14"),i(s,"x2","12"),i(s,"y2","14")},m(r,a){g(r,e,a),g(r,t,a),g(r,n,a),g(r,o,a),g(r,s,a)},d(r){r&&(y(e),y(t),y(n),y(o),y(s))}}}function Ms(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(o,s){g(o,e,s),g(o,t,s),g(o,n,s)},d(o){o&&(y(e),y(t),y(n))}}}function Es(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,o){g(n,e,o),g(n,t,o)},d(n){n&&(y(e),y(t))}}}function Ls(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(o,s){g(o,e,s),g(o,t,s),g(o,n,s)},d(o){o&&(y(e),y(t),y(n))}}}function js(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){g(t,e,n)},d(t){t&&y(e)}}}function Ps(l){let e;function t(s,r){return s[0]==="folder"?js:s[0]==="image"?Ls:s[0]==="video"?Es:s[0]==="audio"?Ms:s[0]==="pdf"?Is:s[0]==="document"?As:s[0]==="spreadsheet"?Fs:s[0]==="presentation"?Ds:s[0]==="archive"?Ns:s[0]==="code"?Ts:s[0]==="text"?Ss:Cs}let n=t(l),o=n(l);return{c(){e=O("svg"),o.c(),i(e,"width",l[1]),i(e,"height",l[1]),i(e,"viewBox","0 0 24 24"),i(e,"fill","none"),i(e,"stroke","currentColor"),i(e,"stroke-width","1.5"),i(e,"stroke-linecap","round"),i(e,"stroke-linejoin","round"),i(e,"xmlns","http://www.w3.org/2000/svg")},m(s,r){g(s,e,r),o.m(e,null)},p(s,[r]){n!==(n=t(s))&&(o.d(1),o=n(s),o&&(o.c(),o.m(e,null))),r&2&&i(e,"width",s[1]),r&2&&i(e,"height",s[1])},i:$,o:$,d(s){s&&y(e),o.d()}}}function Os(l,e,t){let{kind:n="generic"}=e,{size:o=20}=e;return l.$$set=s=>{"kind"in s&&t(0,n=s.kind),"size"in s&&t(1,o=s.size)},[n,o]}class si extends ft{constructor(e){super(),at(this,e,Os,Ps,ct,{kind:0,size:1})}}const zs={"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":"Создать элемент","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":"Срок действия токена истёк"},Bs={"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.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"},Nl={ru:zs,en:Bs};let Dl="ru";function p(l,e){var o;const t=Nl[Dl];let n=t==null?void 0:t[l];if(n==null&&Dl!=="ru"&&(n=(o=Nl.ru)==null?void 0:o[l]),n==null&&(n=l),e!=null)for(const[s,r]of Object.entries(e))n=n.replace(`{${s}}`,String(r));return n}function Pt(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":p("mime.jpeg"),"image/png":p("mime.png"),"image/gif":p("mime.gif"),"image/webp":p("mime.webp"),"image/svg+xml":p("mime.svg"),"image/bmp":p("mime.bmp"),"image/tiff":p("mime.tiff"),"image/avif":p("mime.avif"),"application/pdf":p("mime.pdf"),"application/msword":p("mime.word"),"application/vnd.openxmlformats-officedocument.wordprocessingml.document":p("mime.word"),"application/vnd.ms-excel":p("mime.excel"),"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":p("mime.excel"),"application/vnd.ms-powerpoint":p("mime.ppt"),"application/vnd.openxmlformats-officedocument.presentationml.presentation":p("mime.ppt"),"application/zip":p("mime.zip"),"application/gzip":p("mime.gzip"),"application/x-tar":p("mime.tar"),"application/x-7z-compressed":p("mime.sevenz"),"application/x-rar-compressed":p("mime.rar"),"text/plain":p("mime.text"),"text/html":p("mime.html"),"text/css":p("mime.css"),"text/javascript":p("mime.js"),"application/json":p("mime.json"),"application/xml":p("mime.xml"),"application/x-yaml":p("mime.yaml"),"application/octet-stream":p("mime.binary"),"application/x-msdos-program":p("mime.executable"),"inode/directory":p("mime.folder")};function Fl(l){return l?Jt[l]||l:p("mime.unknown")}function Rs(l){if(l.type==="folder")return p("mime.folder");const e=(l.mime||"").toLowerCase();if(Jt[e])return Jt[e];const n=(l.name||"").toLowerCase().split(".").pop();return n?n.toUpperCase():p("mime.file")}function ri(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 Vs=["image/jpeg","image/png","image/gif","image/webp","image/bmp","image/tiff","image/avif","image/svg+xml"],Hs=["text/plain","text/html","text/css","text/javascript","application/json","application/xml","application/x-yaml","text/x-shellscript"],Us=["txt","log","conf","ini","yaml","yml","json","xml","csv","sh","py","js","ts","css","html","md","markdown","cfg"],Ws=["jpg","jpeg","png","gif","webp","bmp","tiff","tif","avif","svg"];function ci(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return Vs.includes(e)||Ws.includes(n)}function ai(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return Hs.includes(e)||Us.includes(n)&&n!=="md"&&n!=="markdown"}function fi(l){return(l.mime||"").toLowerCase().includes("pdf")}function ui(l){const e=(l.name||"").toLowerCase();return e.endsWith(".md")||e.endsWith(".markdown")}function Ks(l){return ci(l)||fi(l)}function qs(l){return ai(l)||ui(l)}function Gs(l){let e,t,n,o=Pt(l[0].size)+"",s;return{c(){e=u("span"),e.textContent="·",t=w(),n=u("span"),s=j(o),i(e,"class","meta-sep svelte-1u905d2")},m(r,a){g(r,e,a),g(r,t,a),g(r,n,a),c(n,s)},p(r,a){a&1&&o!==(o=Pt(r[0].size)+"")&&q(s,o)},d(r){r&&(y(e),y(t),y(n))}}}function Ys(l){let e,t,n;return{c(){e=u("button"),e.innerHTML='',i(e,"class","action-btn svelte-1u905d2"),i(e,"title",p("file.openFolder")),i(e,"aria-label",p("file.openFolder"))},m(o,s){g(o,e,s),t||(n=P(e,"click",et(l[27])),t=!0)},p:$,d(o){o&&y(e),t=!1,n()}}}function Xs(l){let e,t,n,o,s;return{c(){e=u("button"),e.innerHTML='',t=w(),n=u("button"),n.innerHTML='',i(e,"class","action-btn svelte-1u905d2"),i(e,"title",p("file.preview")),i(e,"aria-label",p("file.preview")),i(n,"class","action-btn svelte-1u905d2"),i(n,"title",p("file.openExternal")),i(n,"aria-label",p("file.openExternal"))},m(r,a){g(r,e,a),g(r,t,a),g(r,n,a),o||(s=[P(e,"click",et(l[26])),P(n,"click",et(l[8]))],o=!0)},p:$,d(r){r&&(y(e),y(t),y(n)),o=!1,pe(s)}}}function Al(l){let e,t,n,o,s,r,a,f,m=p("common.open")+"",v,b,_,h,k,S,T,C,N=p("file.openExternal")+"",F,D,W,E,L,I,R,B,z,V,U=p("common.rename")+"",Y,J,K,A,H,Z,G,ye=p("common.duplicate")+"",te,_e,Q,ie,ne,se,ae,Le,Be,Ze=p("common.cut")+"",je,ve,le,ge,Fe,Qe,xe,We=p("common.copy")+"",Se,Ke,Me,Te,be,fe,he,De,we,Re=p("common.delete")+"",Pe,qe,ke,me=l[5]&&Js(l);return{c(){e=u("div"),t=w(),n=u("div"),o=u("button"),s=O("svg"),r=O("path"),a=O("circle"),f=w(),v=j(m),b=w(),_=u("button"),h=O("svg"),k=O("path"),S=O("polyline"),T=O("line"),C=w(),F=j(N),D=w(),me&&me.c(),W=w(),E=u("div"),L=w(),I=u("button"),R=O("svg"),B=O("path"),z=O("path"),V=w(),Y=j(U),J=w(),K=u("button"),A=O("svg"),H=O("rect"),Z=O("path"),G=w(),te=j(ye),_e=w(),Q=u("button"),ie=O("svg"),ne=O("circle"),se=O("circle"),ae=O("line"),Le=O("line"),Be=w(),je=j(Ze),ve=w(),le=u("button"),ge=O("svg"),Fe=O("rect"),Qe=O("path"),xe=w(),Se=j(We),Ke=w(),Me=u("div"),Te=w(),be=u("button"),fe=O("svg"),he=O("polyline"),De=O("path"),we=w(),Pe=j(Re),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(s,"width","14"),i(s,"height","14"),i(s,"viewBox","0 0 24 24"),i(s,"fill","none"),i(s,"stroke","currentColor"),i(s,"stroke-width","2"),i(s,"stroke-linecap","round"),i(s,"stroke-linejoin","round"),i(o,"class","menu-item svelte-1u905d2"),i(o,"role","menuitem"),i(k,"d","M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"),i(S,"points","15 3 21 3 21 9"),i(T,"x1","10"),i(T,"y1","14"),i(T,"x2","21"),i(T,"y2","3"),i(h,"width","14"),i(h,"height","14"),i(h,"viewBox","0 0 24 24"),i(h,"fill","none"),i(h,"stroke","currentColor"),i(h,"stroke-width","2"),i(h,"stroke-linecap","round"),i(h,"stroke-linejoin","round"),i(_,"class","menu-item svelte-1u905d2"),i(_,"role","menuitem"),i(E,"class","menu-sep svelte-1u905d2"),i(B,"d","M12 20h9"),i(z,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"),i(R,"width","14"),i(R,"height","14"),i(R,"viewBox","0 0 24 24"),i(R,"fill","none"),i(R,"stroke","currentColor"),i(R,"stroke-width","2"),i(R,"stroke-linecap","round"),i(R,"stroke-linejoin","round"),i(I,"class","menu-item svelte-1u905d2"),i(I,"role","menuitem"),i(H,"x","9"),i(H,"y","9"),i(H,"width","13"),i(H,"height","13"),i(H,"rx","2"),i(H,"ry","2"),i(Z,"d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"),i(A,"width","14"),i(A,"height","14"),i(A,"viewBox","0 0 24 24"),i(A,"fill","none"),i(A,"stroke","currentColor"),i(A,"stroke-width","2"),i(A,"stroke-linecap","round"),i(A,"stroke-linejoin","round"),i(K,"class","menu-item svelte-1u905d2"),i(K,"role","menuitem"),i(ne,"cx","6"),i(ne,"cy","6"),i(ne,"r","3"),i(se,"cx","6"),i(se,"cy","18"),i(se,"r","3"),i(ae,"x1","20"),i(ae,"y1","4"),i(ae,"x2","8.12"),i(ae,"y2","15.88"),i(Le,"x1","8.12"),i(Le,"y1","8.12"),i(Le,"x2","20"),i(Le,"y2","20"),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(Q,"class","menu-item svelte-1u905d2"),i(Q,"role","menuitem"),i(Fe,"x","9"),i(Fe,"y","9"),i(Fe,"width","13"),i(Fe,"height","13"),i(Fe,"rx","2"),i(Fe,"ry","2"),i(Qe,"d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"),i(ge,"width","14"),i(ge,"height","14"),i(ge,"viewBox","0 0 24 24"),i(ge,"fill","none"),i(ge,"stroke","currentColor"),i(ge,"stroke-width","2"),i(ge,"stroke-linecap","round"),i(ge,"stroke-linejoin","round"),i(le,"class","menu-item svelte-1u905d2"),i(le,"role","menuitem"),i(Me,"class","menu-sep svelte-1u905d2"),i(he,"points","3 6 5 6 21 6"),i(De,"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(fe,"width","14"),i(fe,"height","14"),i(fe,"viewBox","0 0 24 24"),i(fe,"fill","none"),i(fe,"stroke","currentColor"),i(fe,"stroke-width","2"),i(fe,"stroke-linecap","round"),i(fe,"stroke-linejoin","round"),i(be,"class","menu-item menu-item-danger svelte-1u905d2"),i(be,"role","menuitem"),i(n,"class","menu svelte-1u905d2"),i(n,"role","menu")},m(re,Ae){g(re,e,Ae),g(re,t,Ae),g(re,n,Ae),c(n,o),c(o,s),c(s,r),c(s,a),c(o,f),c(o,v),c(n,b),c(n,_),c(_,h),c(h,k),c(h,S),c(h,T),c(_,C),c(_,F),c(n,D),me&&me.m(n,null),c(n,W),c(n,E),c(n,L),c(n,I),c(I,R),c(R,B),c(R,z),c(I,V),c(I,Y),c(n,J),c(n,K),c(K,A),c(A,H),c(A,Z),c(K,G),c(K,te),c(n,_e),c(n,Q),c(Q,ie),c(ie,ne),c(ie,se),c(ie,ae),c(ie,Le),c(Q,Be),c(Q,je),c(n,ve),c(n,le),c(le,ge),c(ge,Fe),c(ge,Qe),c(le,xe),c(le,Se),c(n,Ke),c(n,Me),c(n,Te),c(n,be),c(be,fe),c(fe,he),c(fe,De),c(be,we),c(be,Pe),qe||(ke=[P(e,"click",et(l[17])),P(o,"click",l[15]),P(_,"click",l[8]),P(I,"click",l[11]),P(K,"click",l[12]),P(Q,"click",l[13]),P(le,"click",l[14]),P(be,"click",l[10]),P(n,"click",et(l[25]))],qe=!0)},p(re,Ae){re[5]&&me.p(re,Ae)},d(re){re&&(y(e),y(t),y(n)),me&&me.d(),qe=!1,pe(ke)}}}function Js(l){let e,t,n,o,s=p("file.showInExplorer")+"",r,a,f;return{c(){e=u("button"),t=O("svg"),n=O("path"),o=w(),r=j(s),i(n,"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(t,"width","14"),i(t,"height","14"),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(e,"class","menu-item svelte-1u905d2"),i(e,"role","menuitem")},m(m,v){g(m,e,v),c(e,t),c(t,n),c(e,o),c(e,r),a||(f=P(e,"click",l[9]),a=!0)},p:$,d(m){m&&y(e),a=!1,f()}}}function Zs(l){let e,t,n,o,s,r,a=l[0].name+"",f,m,v,b,_,h,k,S,T,C,N,F,D,W,E,L,I,R,B,z,V,U;n=new si({props:{kind:l[4],size:22}});let Y=!l[5]&&Gs(l);function J(Z,G){return Z[5]?Ys:Xs}let A=J(l)(l),H=l[2]&&Al(l);return{c(){e=u("div"),t=u("div"),Je(n.$$.fragment),o=w(),s=u("div"),r=u("div"),f=j(a),v=w(),b=u("div"),_=u("span"),_.textContent=`${l[6]}`,h=w(),Y&&Y.c(),k=w(),S=u("div"),A.c(),T=w(),C=u("button"),N=O("svg"),F=O("circle"),D=O("circle"),W=O("circle"),E=w(),L=u("button"),L.innerHTML='',R=w(),H&&H.c(),B=tt(),i(t,"class","file-row-icon svelte-1u905d2"),i(r,"class","file-row-name svelte-1u905d2"),i(r,"title",m=l[0].name),i(b,"class","file-row-meta svelte-1u905d2"),i(s,"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(W,"cx","12"),i(W,"cy","19"),i(W,"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",p("file.more")),i(C,"aria-label",p("file.more")),i(C,"aria-expanded",l[2]),i(L,"class","action-btn action-btn-danger svelte-1u905d2"),i(L,"title",p("common.delete")),i(L,"aria-label",p("common.delete")),i(S,"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",I=l[5]?p("file.ariaFolder")+" "+l[0].name:p("file.ariaFile")+" "+l[0].name),nt(e,"file-row--selected",l[1])},m(Z,G){g(Z,e,G),c(e,t),Ye(n,t,null),c(e,o),c(e,s),c(s,r),c(r,f),c(s,v),c(s,b),c(b,_),c(b,h),Y&&Y.m(b,null),c(e,k),c(e,S),A.m(S,null),c(S,T),c(S,C),c(C,N),c(N,F),c(N,D),c(N,W),c(S,E),c(S,L),g(Z,R,G),H&&H.m(Z,G),g(Z,B,G),z=!0,V||(U=[P(window,"click",l[17]),P(C,"click",et(l[16])),P(L,"click",et(l[10])),P(e,"click",l[7]),P(e,"contextmenu",l[21]),P(e,"dragstart",l[18]),P(e,"dragover",l[19]),P(e,"drop",l[20])],V=!0)},p(Z,[G]){(!z||G&1)&&a!==(a=Z[0].name+"")&&q(f,a),(!z||G&1&&m!==(m=Z[0].name))&&i(r,"title",m),Z[5]||Y.p(Z,G),A.p(Z,G),(!z||G&4)&&i(C,"aria-expanded",Z[2]),(!z||G&1&&I!==(I=Z[5]?p("file.ariaFolder")+" "+Z[0].name:p("file.ariaFile")+" "+Z[0].name))&&i(e,"aria-label",I),(!z||G&2)&&nt(e,"file-row--selected",Z[1]),Z[2]?H?H.p(Z,G):(H=Al(Z),H.c(),H.m(B.parentNode,B)):H&&(H.d(1),H=null)},i(Z){z||(ee(n.$$.fragment,Z),z=!0)},o(Z){oe(n.$$.fragment,Z),z=!1},d(Z){Z&&(y(e),y(R),y(B)),Xe(n),Y&&Y.d(),A.d(),H&&H.d(Z),V=!1,pe(U)}}}function Qs(l,e,t){let{item:n}=e,{selected:o=!1}=e,{onDragStart:s}=e,{onDragOver:r}=e,{onDrop:a}=e;const f=Ot(),m=ri(n),v=n.type==="folder",b=Rs(n);let _=!1,h=null;function k(K){K.ctrlKey||K.metaKey?f("toggleSelect",n.id):K.shiftKey?f("rangeSelect",n.id):h?(clearTimeout(h),h=null,v?f("navigate",n.id):f("preview",n)):h=setTimeout(()=>{h=null,f("selectOne",n.id)},250)}function S(){f("openExternal",n.fileId)}function T(){f("showInFolder",n.id)}function C(){t(2,_=!1),f("delete",{id:n.id,type:n.type})}function N(){t(2,_=!1),f("rename",{id:n.id,name:n.name})}function F(){t(2,_=!1),f("duplicate",n.id)}function D(){t(2,_=!1),f("cut",n.id)}function W(){t(2,_=!1),f("copy",n.id)}function E(){t(2,_=!1),v?f("navigate",n.id):f("preview",n)}function L(){t(2,_=!_)}function I(){t(2,_=!1)}function R(K){s&&s(K,n.id)}function B(K){r&&v&&r(K,n.id)}function z(K){a&&v&&a(K,n.id)}function V(K){K.preventDefault(),t(2,_=!0)}function U(K){ii.call(this,l,K)}const Y=()=>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,o=K.selected),"onDragStart"in K&&t(22,s=K.onDragStart),"onDragOver"in K&&t(23,r=K.onDragOver),"onDrop"in K&&t(24,a=K.onDrop)},[n,o,_,f,m,v,b,k,S,T,C,N,F,D,W,E,L,I,R,B,z,V,s,r,a,U,Y,J]}class xs extends ft{constructor(e){super(),at(this,e,Qs,Zs,ct,{item:0,selected:1,onDragStart:22,onDragOver:23,onDrop:24})}}function Il(l,e,t){const n=l.slice();return n[4]=e[t],n[6]=t,n}function $s(l){let e;return{c(){e=u("span"),e.textContent="/",i(e,"class","sep svelte-csi2lb")},m(t,n){g(t,e,n)},d(t){t&&y(e)}}}function er(l){let e,t=l[4].name+"",n,o,s;function r(){return l[2](l[6])}return{c(){e=u("button"),n=j(t),i(e,"class","crumb crumb--link svelte-csi2lb")},m(a,f){g(a,e,f),c(e,n),o||(s=P(e,"click",r),o=!0)},p(a,f){l=a,f&1&&t!==(t=l[4].name+"")&&q(n,t)},d(a){a&&y(e),o=!1,s()}}}function tr(l){let e,t=l[4].name+"",n;return{c(){e=u("span"),n=j(t),i(e,"class","crumb crumb--current svelte-csi2lb")},m(o,s){g(o,e,s),c(e,n)},p(o,s){s&1&&t!==(t=o[4].name+"")&&q(n,t)},d(o){o&&y(e)}}}function Ml(l){let e,t,n=l[6]>0&&$s();function o(a,f){return a[6]===a[0].length-1?tr:er}let s=o(l),r=s(l);return{c(){n&&n.c(),e=w(),r.c(),t=tt()},m(a,f){n&&n.m(a,f),g(a,e,f),r.m(a,f),g(a,t,f)},p(a,f){s===(s=o(a))&&r?r.p(a,f):(r.d(1),r=s(a),r&&(r.c(),r.m(t.parentNode,t)))},d(a){a&&(y(e),y(t)),n&&n.d(a),r.d(a)}}}function lr(l){let e,t=ue(l[0]),n=[];for(let o=0;os(a);return l.$$set=a=>{"crumbs"in a&&t(0,n=a.crumbs)},[n,s,r]}class di extends ft{constructor(e){super(),at(this,e,nr,lr,ct,{crumbs:0})}}function ir(l){let e,t,n,o,s,r;return{c(){e=u("div"),t=u("p"),t.textContent=`${p("file.previewUnavailable")}`,n=w(),o=u("button"),o.textContent=`${p("file.openExternal")}`,i(o,"class","btn btn-sm svelte-1cw3u0m"),i(e,"class","preview-status svelte-1cw3u0m")},m(a,f){g(a,e,f),c(e,t),c(e,n),c(e,o),s||(r=P(o,"click",l[9]),s=!0)},p:$,d(a){a&&y(e),s=!1,r()}}}function or(l){let e,t;function n(r,a){return a&2&&(e=null),e==null&&(e=!!(r[1]&&r[1].startsWith("data:"))),e?ur:fr}let o=n(l,-1),s=o(l);return{c(){s.c(),t=tt()},m(r,a){s.m(r,a),g(r,t,a)},p(r,a){o===(o=n(r,a))&&s?s.p(r,a):(s.d(1),s=o(r),s&&(s.c(),s.m(t.parentNode,t)))},d(r){r&&y(t),s.d(r)}}}function sr(l){let e,t,n;return{c(){e=u("pre"),t=u("code"),n=j(l[1]),i(e,"class","preview-text svelte-1cw3u0m")},m(o,s){g(o,e,s),c(e,t),c(t,n)},p(o,s){s&2&&q(n,o[1])},d(o){o&&y(e)}}}function rr(l){let e,t,n,o;return{c(){e=u("div"),t=u("img"),Et(t.src,n=l[1])||i(t,"src",n),i(t,"alt",o=l[0].name),i(t,"class","preview-image svelte-1cw3u0m"),i(e,"class","preview-image-container svelte-1cw3u0m")},m(s,r){g(s,e,r),c(e,t)},p(s,r){r&2&&!Et(t.src,n=s[1])&&i(t,"src",n),r&1&&o!==(o=s[0].name)&&i(t,"alt",o)},d(s){s&&y(e)}}}function cr(l){let e,t,n,o,s,r,a;return{c(){e=u("div"),t=u("p"),n=j(l[3]),o=w(),s=u("button"),s.textContent=`${p("file.openExternal")}`,i(s,"class","btn btn-sm svelte-1cw3u0m"),i(e,"class","preview-status svelte-1cw3u0m")},m(f,m){g(f,e,m),c(e,t),c(t,n),c(e,o),c(e,s),r||(a=P(s,"click",l[9]),r=!0)},p(f,m){m&8&&q(n,f[3])},d(f){f&&y(e),r=!1,a()}}}function ar(l){let e,t;return{c(){e=u("div"),t=u("p"),t.textContent=`${p("common.loading")}`,i(e,"class","preview-status svelte-1cw3u0m")},m(n,o){g(n,e,o),c(e,t)},p:$,d(n){n&&y(e)}}}function fr(l){let e,t,n,o,s,r;return{c(){e=u("div"),t=u("p"),t.textContent=`${p("file.pdfUnavailable")}`,n=w(),o=u("button"),o.textContent=`${p("file.openExternal")}`,i(o,"class","btn btn-sm svelte-1cw3u0m"),i(e,"class","preview-status svelte-1cw3u0m")},m(a,f){g(a,e,f),c(e,t),c(e,n),c(e,o),s||(r=P(o,"click",l[9]),s=!0)},p:$,d(a){a&&y(e),s=!1,r()}}}function ur(l){let e,t,n;return{c(){e=u("div"),t=u("embed"),Et(t.src,n=l[1])||i(t,"src",n),i(t,"type","application/pdf"),i(t,"class","preview-pdf svelte-1cw3u0m"),i(e,"class","preview-pdf-container svelte-1cw3u0m")},m(o,s){g(o,e,s),c(e,t)},p(o,s){s&2&&!Et(t.src,n=o[1])&&i(t,"src",n)},d(o){o&&y(e)}}}function dr(l){let e,t,n,o,s,r,a,f=l[0].name+"",m,v,b,_,h=Pt(l[0].size)+"",k,S,T=Fl(l[0].mime)+"",C,N,F,D,W,E,L,I,R,B,z,V;s=new si({props:{kind:l[8],size:18}});function U(K,A){return K[2]?ar:K[3]?cr:K[6]&&K[1]?rr:K[5]&&K[1]?sr:K[4]?or:ir}let Y=U(l),J=Y(l);return{c(){e=u("div"),t=u("div"),n=u("header"),o=u("div"),Je(s.$$.fragment),r=w(),a=u("span"),m=j(f),b=w(),_=u("div"),k=j(h),S=j(" · "),C=j(T),N=w(),F=u("div"),D=u("button"),D.innerHTML='',W=w(),E=u("button"),E.innerHTML='',L=w(),I=u("div"),J.c(),i(a,"class","preview-name svelte-1cw3u0m"),i(a,"title",v=l[0].name),i(o,"class","preview-title svelte-1cw3u0m"),i(_,"class","preview-meta svelte-1cw3u0m"),i(D,"class","action-btn svelte-1cw3u0m"),i(D,"title",p("file.openExternal")),i(D,"aria-label",p("file.openExternal")),i(E,"class","action-btn action-btn-close svelte-1cw3u0m"),i(E,"title","Close"),i(E,"aria-label","Close preview"),i(F,"class","preview-actions svelte-1cw3u0m"),i(n,"class","preview-header svelte-1cw3u0m"),i(I,"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",R=`Preview: ${l[0].name}`)},m(K,A){g(K,e,A),c(e,t),c(t,n),c(n,o),Ye(s,o,null),c(o,r),c(o,a),c(a,m),c(n,b),c(n,_),c(_,k),c(_,S),c(_,C),c(n,N),c(n,F),c(F,D),c(F,W),c(F,E),c(t,L),c(t,I),J.m(I,null),B=!0,z||(V=[P(D,"click",l[9]),P(E,"click",l[10]),P(e,"click",mt(l[11]))],z=!0)},p(K,[A]){(!B||A&1)&&f!==(f=K[0].name+"")&&q(m,f),(!B||A&1&&v!==(v=K[0].name))&&i(a,"title",v),(!B||A&1)&&h!==(h=Pt(K[0].size)+"")&&q(k,h),(!B||A&1)&&T!==(T=Fl(K[0].mime)+"")&&q(C,T),Y===(Y=U(K))&&J?J.p(K,A):(J.d(1),J=Y(K),J&&(J.c(),J.m(I,null))),(!B||A&1&&R!==(R=`Preview: ${K[0].name}`))&&i(e,"aria-label",R)},i(K){B||(ee(s.$$.fragment,K),B=!0)},o(K){oe(s.$$.fragment,K),B=!1},d(K){K&&y(e),Xe(s),J.d(),z=!1,pe(V)}}}function mr(l,e,t){let n,o,s,{item:r}=e,{content:a=""}=e,{loading:f=!1}=e,{error:m=""}=e;const v=Ot(),b=ri(r);function _(T){T.key==="Escape"&&v("close")}function h(){v("openExternal",r.fileId)}li(()=>{window.addEventListener("keydown",_)}),ni(()=>{window.removeEventListener("keydown",_)});const k=()=>v("close"),S=()=>v("close");return l.$$set=T=>{"item"in T&&t(0,r=T.item),"content"in T&&t(1,a=T.content),"loading"in T&&t(2,f=T.loading),"error"in T&&t(3,m=T.error)},l.$$.update=()=>{l.$$.dirty&3&&t(6,n=ci(r)&&a&&a.startsWith("data:")),l.$$.dirty&1&&t(5,o=ai(r)||ui(r)),l.$$.dirty&1&&t(4,s=fi(r))},[r,a,f,m,s,o,n,v,b,h,k,S]}class pr extends ft{constructor(e){super(),at(this,e,mr,dr,ct,{item:0,content:1,loading:2,error:3})}}function _r(l){let e,t,n,o,s,r,a,f,m,v,b,_,h,k,S,T,C;return{c(){e=u("div"),t=u("div"),n=u("h3"),o=j(l[0]),s=w(),r=u("p"),a=j(l[1]),f=w(),m=u("div"),v=u("button"),b=j(l[2]),h=w(),k=u("button"),S=j(l[3]),i(n,"class","svelte-1fv6yyk"),i(r,"class","message svelte-1fv6yyk"),i(v,"class",_="btn "+(l[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk"),i(k,"class","btn svelte-1fv6yyk"),i(m,"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){g(N,e,F),c(e,t),c(t,n),c(n,o),c(t,s),c(t,r),c(r,a),c(t,f),c(t,m),c(m,v),c(v,b),c(m,h),c(m,k),c(k,S),T||(C=[P(v,"click",l[6]),P(k,"click",l[7]),P(e,"click",mt(l[8]))],T=!0)},p(N,[F]){F&1&&q(o,N[0]),F&2&&q(a,N[1]),F&4&&q(b,N[2]),F&16&&_!==(_="btn "+(N[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk")&&i(v,"class",_),F&8&&q(S,N[3]),F&1&&i(e,"aria-label",N[0])},i:$,o:$,d(N){N&&y(e),T=!1,pe(C)}}}function vr(l,e,t){let{title:n=p("common.confirm")}=e,{message:o=""}=e,{confirmText:s=p("common.delete")}=e,{cancelText:r=p("common.cancel")}=e,{danger:a=!1}=e;const f=Ot(),m=()=>f("confirm"),v=()=>f("cancel"),b=()=>f("cancel");return l.$$set=_=>{"title"in _&&t(0,n=_.title),"message"in _&&t(1,o=_.message),"confirmText"in _&&t(2,s=_.confirmText),"cancelText"in _&&t(3,r=_.cancelText),"danger"in _&&t(4,a=_.danger)},[n,o,s,r,a,f,m,v,b]}class br extends ft{constructor(e){super(),at(this,e,vr,_r,ct,{title:0,message:1,confirmText:2,cancelText:3,danger:4})}}function hr(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(o,s){g(o,e,s),g(o,t,s),g(o,n,s)},d(o){o&&(y(e),y(t),y(n))}}}function kr(l){let e,t,n,o;return{c(){e=O("rect"),t=O("polyline"),n=O("line"),o=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(o,"x1","16"),i(o,"y1","5"),i(o,"x2","16"),i(o,"y2","19")},m(s,r){g(s,e,r),g(s,t,r),g(s,n,r),g(s,o,r)},d(s){s&&(y(e),y(t),y(n),y(o))}}}function yr(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,o){g(n,e,o),g(n,t,o)},d(n){n&&(y(e),y(t))}}}function gr(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,o){g(n,e,o),g(n,t,o)},d(n){n&&(y(e),y(t))}}}function wr(l){let e,t,n,o,s;return{c(){e=O("path"),t=O("path"),n=O("line"),o=O("line"),s=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(o,"x1","8"),i(o,"y1","11"),i(o,"x2","14"),i(o,"y2","11"),i(s,"x1","8"),i(s,"y1","15"),i(s,"x2","12"),i(s,"y2","15")},m(r,a){g(r,e,a),g(r,t,a),g(r,n,a),g(r,o,a),g(r,s,a)},d(r){r&&(y(e),y(t),y(n),y(o),y(s))}}}function Cr(l){let e,t,n,o;return{c(){e=O("path"),t=O("polyline"),n=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","16"),i(n,"y1","13"),i(n,"x2","8"),i(n,"y2","13"),i(o,"x1","16"),i(o,"y1","17"),i(o,"x2","8"),i(o,"y2","17")},m(s,r){g(s,e,r),g(s,t,r),g(s,n,r),g(s,o,r)},d(s){s&&(y(e),y(t),y(n),y(o))}}}function Sr(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,o){g(n,e,o),g(n,t,o)},d(n){n&&(y(e),y(t))}}}function Tr(l){let e,t,n,o;return{c(){e=O("rect"),t=O("rect"),n=O("rect"),o=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(o,"x","3"),i(o,"y","14"),i(o,"width","7"),i(o,"height","7"),i(o,"rx","1")},m(s,r){g(s,e,r),g(s,t,r),g(s,n,r),g(s,o,r)},d(s){s&&(y(e),y(t),y(n),y(o))}}}function Nr(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){g(t,e,n)},d(t){t&&y(e)}}}function Dr(l){let e;function t(s,r){return s[0]==="folder"?Nr:s[0]==="project"?Tr:s[0]==="client"?Sr:s[0]==="document"?Cr:s[0]==="recipe"?wr:s[0]==="note"?gr:s[0]==="file"?yr:s[0]==="case"?kr:hr}let n=t(l),o=n(l);return{c(){e=O("svg"),o.c(),i(e,"width",l[1]),i(e,"height",l[1]),i(e,"viewBox","0 0 24 24"),i(e,"fill","none"),i(e,"stroke","currentColor"),i(e,"stroke-width","1.5"),i(e,"stroke-linecap","round"),i(e,"stroke-linejoin","round"),i(e,"xmlns","http://www.w3.org/2000/svg")},m(s,r){g(s,e,r),o.m(e,null)},p(s,[r]){n!==(n=t(s))&&(o.d(1),o=n(s),o&&(o.c(),o.m(e,null))),r&2&&i(e,"width",s[1]),r&2&&i(e,"height",s[1])},i:$,o:$,d(s){s&&y(e),o.d()}}}function Fr(l,e,t){let{kind:n="generic"}=e,{size:o=18}=e;return l.$$set=s=>{"kind"in s&&t(0,n=s.kind),"size"in s&&t(1,o=s.size)},[n,o]}class zt extends ft{constructor(e){super(),at(this,e,Fr,Dr,ct,{kind:0,size:1})}}function El(l,e,t){const n=l.slice();return n[30]=e[t],n}function Ar(l){let e;return{c(){e=u("span"),i(e,"class","tree-toggle-placeholder svelte-gydsvv")},m(t,n){g(t,e,n)},p:$,d(t){t&&y(e)}}}function Ir(l){let e,t,n=l[1][l[30].id]?"▾":"▸",o,s,r;function a(){return l[15](l[30])}return{c(){e=u("button"),t=u("span"),o=j(n),i(t,"class","tree-arrow"),i(e,"class","tree-toggle svelte-gydsvv")},m(f,m){g(f,e,m),c(e,t),c(t,o),s||(r=P(e,"click",et(a)),s=!0)},p(f,m){l=f,m[0]&3&&n!==(n=l[1][l[30].id]?"▾":"▸")&&q(o,n)},d(f){f&&y(e),s=!1,r()}}}function Ll(l){let e,t;return e=new pi({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(){Je(e.$$.fragment)},m(n,o){Ye(e,n,o),t=!0},p(n,o){const s={};o[0]&1&&(s.nodes=n[30].children||[]),o[0]&2&&(s.expanded=n[1]),o[0]&4&&(s.selectedNodeId=n[2]),o[0]&8&&(s.level=n[3]+1),o[0]&16&&(s.onSelect=n[4]),o[0]&32&&(s.onToggle=n[5]),o[0]&64&&(s.onContextMenu=n[6]),o[0]&128&&(s.onDrop=n[7]),e.$set(s)},i(n){t||(ee(e.$$.fragment,n),t=!0)},o(n){oe(e.$$.fragment,n),t=!1},d(n){Xe(e,n)}}}function jl(l){let e,t,n,o,s,r,a,f=l[30].title+"",m,v,b=l[1][l[30].id]&&Zt(l[30]),_,h,k,S;function T(U,Y){return Y[0]&1&&(t=null),t==null&&(t=!!It(U[30])),t?Ir:Ar}let C=T(l,[-1,-1]),N=C(l);s=new zt({props:{kind:Pl(l[30]),size:16}});function F(...U){return l[16](l[30],...U)}function D(){return l[17](l[30])}function W(...U){return l[18](l[30],...U)}function E(...U){return l[19](l[30],...U)}function L(...U){return l[20](l[30],...U)}function I(...U){return l[21](l[30],...U)}function R(...U){return l[22](l[30],...U)}function B(...U){return l[23](l[30],...U)}function z(...U){return l[24](l[30],...U)}let V=b&&Ll(l);return{c(){e=u("div"),N.c(),n=w(),o=u("span"),Je(s.$$.fragment),r=w(),a=u("span"),m=j(f),v=w(),V&&V.c(),_=tt(),i(o,"class","tree-icon svelte-gydsvv"),i(a,"class","tree-label svelte-gydsvv"),i(e,"class","tree-item svelte-gydsvv"),Ue(e,"padding-left",l[3]*16+4+"px"),i(e,"draggable","true"),nt(e,"selected",l[2]===l[30].id)},m(U,Y){g(U,e,Y),N.m(e,null),c(e,n),c(e,o),Ye(s,o,null),c(e,r),c(e,a),c(a,m),g(U,v,Y),V&&V.m(U,Y),g(U,_,Y),h=!0,k||(S=[P(o,"click",F),P(o,"dblclick",et(l[14])),P(a,"click",et(D)),P(e,"dragstart",W),P(e,"dragover",E),P(e,"dragleave",L),P(e,"drop",I),P(e,"click",R),P(e,"dblclick",B),P(e,"contextmenu",Qt(z))],k=!0)},p(U,Y){l=U,C===(C=T(l,Y))&&N?N.p(l,Y):(N.d(1),N=C(l),N&&(N.c(),N.m(e,n)));const J={};Y[0]&1&&(J.kind=Pl(l[30])),s.$set(J),(!h||Y[0]&1)&&f!==(f=l[30].title+"")&&q(m,f),(!h||Y[0]&8)&&Ue(e,"padding-left",l[3]*16+4+"px"),(!h||Y[0]&5)&&nt(e,"selected",l[2]===l[30].id),Y[0]&3&&(b=l[1][l[30].id]&&Zt(l[30])),b?V?(V.p(l,Y),Y[0]&3&&ee(V,1)):(V=Ll(l),V.c(),ee(V,1),V.m(_.parentNode,_)):V&&(Ve(),oe(V,1,1,()=>{V=null}),He())},i(U){h||(ee(s.$$.fragment,U),ee(V),h=!0)},o(U){oe(s.$$.fragment,U),oe(V),h=!1},d(U){U&&(y(e),y(v),y(_)),N.d(),Xe(s),V&&V.d(U),k=!1,pe(S)}}}function Mr(l){let e,t,n=ue(l[0]),o=[];for(let r=0;roe(o[r],1,1,()=>{o[r]=null});return{c(){for(let r=0;r0:l.has_children===!0}function mi(l,e){if(!l.children)return!1;for(const t of l.children)if(t.id===e||mi(t,e))return!0;return!1}function Ol(l){try{return l.dataTransfer.getData("text/plain")}catch{return""}}function Er(l,e){l.stopPropagation(),l.dataTransfer.effectAllowed="move",l.dataTransfer.setData("text/plain",e.id)}function Lr(l,e,t){let{nodes:n=[]}=e,{expanded:o={}}=e,{selectedNodeId:s=""}=e,{level:r=0}=e,{onSelect:a}=e,{onToggle:f}=e,{onContextMenu:m}=e,{onDrop:v}=e,b={},_=null;const h=["folder","project","client","document","recipe","case"];function k(A){return h.includes(A.type)}function S(A,H){return!(!A||!H||H===A.id||!k(A)||mi(A,H))}function T(A,H){const Z=Ol(A);if(!S(H,Z))return;A.preventDefault(),A.stopPropagation(),A.dataTransfer.dropEffect="move",A.currentTarget.classList.add("drop-valid"),It(H)&&!o[H.id]&&!b[H.id]&&(b[H.id]=setTimeout(()=>{f&&f(H.id),delete b[H.id]},500));const G=A.currentTarget.closest(".workspace-tree-area");if(G){const ye=G.getBoundingClientRect(),te=30;A.clientY-ye.top{G.scrollTop-=10},50)):ye.bottom-A.clientY{G.scrollTop+=10},50)):_&&(clearInterval(_),_=null)}}function C(A){A.currentTarget.classList.remove("drop-valid");const H=A.currentTarget.dataset.nodeId;H&&b[H]&&(clearTimeout(b[H]),delete b[H]),_&&(clearInterval(_),_=null)}function N(A,H){A.preventDefault(),A.stopPropagation(),A.currentTarget.classList.remove("drop-valid"),b[H.id]&&(clearTimeout(b[H.id]),delete b[H.id]),_&&(clearInterval(_),_=null);const Z=Ol(A);S(H,Z)&&v&&v(Z,H.id)}function F(A,H){A.target.closest(".tree-toggle")||A.target.closest(".tree-icon")||a&&a(H)}function D(A,H){It(H)&&f&&f(H.id)}function W(A,H){A.stopPropagation(),It(H)&&f&&f(H.id)}function E(A){ii.call(this,l,A)}const L=A=>f&&f(A.id),I=(A,H)=>W(H,A),R=A=>a&&a(A),B=(A,H)=>Er(H,A),z=(A,H)=>T(H,A),V=(A,H)=>C(H),U=(A,H)=>N(H,A),Y=(A,H)=>F(H,A),J=(A,H)=>D(H,A),K=(A,H)=>m&&m(H,A);return l.$$set=A=>{"nodes"in A&&t(0,n=A.nodes),"expanded"in A&&t(1,o=A.expanded),"selectedNodeId"in A&&t(2,s=A.selectedNodeId),"level"in A&&t(3,r=A.level),"onSelect"in A&&t(4,a=A.onSelect),"onToggle"in A&&t(5,f=A.onToggle),"onContextMenu"in A&&t(6,m=A.onContextMenu),"onDrop"in A&&t(7,v=A.onDrop)},[n,o,s,r,a,f,m,v,T,C,N,F,D,W,E,L,I,R,B,z,V,U,Y,J,K]}class pi extends ft{constructor(e){super(),at(this,e,Lr,Mr,ct,{nodes:0,expanded:1,selectedNodeId:2,level:3,onSelect:4,onToggle:5,onContextMenu:6,onDrop:7},null,[-1,-1])}}function zl(l,e,t){const n=l.slice();return n[217]=e[t],n}function Bl(l,e,t){const n=l.slice();return n[220]=e[t],n}function Rl(l,e,t){const n=l.slice();return n[220]=e[t],n}function Vl(l,e,t){const n=l.slice();return n[241]=e[t],n}function Hl(l,e,t){const n=l.slice();return n[241]=e[t],n}function Ul(l,e,t){const n=l.slice();return n[249]=e[t],n}function Wl(l,e,t){const n=l.slice();return n[241]=e[t],n}function Kl(l,e,t){const n=l.slice();return n[241]=e[t],n}function ql(l,e,t){const n=l.slice();return n[225]=e[t],n}function Gl(l,e,t){const n=l.slice();return n[236]=e[t],n}function Yl(l,e,t){const n=l.slice();return n[233]=e[t],n}function Xl(l,e,t){const n=l.slice();return n[228]=e[t],n}function Jl(l,e,t){const n=l.slice();return n[225]=e[t],n}function Zl(l,e,t){const n=l.slice();return n[228]=e[t],n}function Ql(l,e,t){const n=l.slice();return n[244]=e[t],n}function xl(l,e,t){const n=l.slice();return n[256]=e[t],n}function $l(l,e,t){const n=l.slice();return n[259]=e[t],n}function en(l){let e,t=l[259].label+"",n,o,s,r,a;function f(){return l[127](l[259])}return{c(){e=u("button"),n=j(t),o=w(),i(e,"class",s="nav-item "+(l[8]===l[259].id?"selected":"")+" svelte-ob364t")},m(m,v){g(m,e,v),c(e,n),c(e,o),r||(a=P(e,"click",f),r=!0)},p(m,v){l=m,v[0]&1&&t!==(t=l[259].label+"")&&q(n,t),v[0]&257&&s!==(s="nav-item "+(l[8]===l[259].id?"selected":"")+" svelte-ob364t")&&i(e,"class",s)},d(m){m&&y(e),r=!1,a()}}}function jr(l){let e;return{c(){e=u("div"),e.textContent=`${p("nav.noNodes")}`,i(e,"class","nav-empty svelte-ob364t")},m(t,n){g(t,e,n)},p:$,i:$,o:$,d(t){t&&y(e)}}}function Pr(l){var r;let e,t,n,o,s;return t=new pi({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=u("div"),Je(t.$$.fragment),i(e,"class","workspace-tree-area svelte-ob364t")},m(a,f){g(a,e,f),Ye(t,e,null),n=!0,o||(s=[P(e,"dragover",Qt(Nc)),P(e,"drop",l[94])],o=!0)},p(a,f){var v;const m={};f[0]&2&&(m.nodes=a[1]),f[1]&2&&(m.expanded=a[32]),f[0]&512&&(m.selectedNodeId=((v=a[9])==null?void 0:v.id)||""),t.$set(m)},i(a){n||(ee(t.$$.fragment,a),n=!0)},o(a){oe(t.$$.fragment,a),n=!1},d(a){a&&y(e),Xe(t),o=!1,pe(s)}}}function Or(l){let e;return{c(){e=u("span"),e.textContent=`${p("nav.selectPrompt")}`,i(e,"class","crumb placeholder svelte-ob364t")},m(t,n){g(t,e,n)},p:$,d(t){t&&y(e)}}}function zr(l){let e,t=ue(l[0]),n=[];for(let o=0;o0&&nn(l);return{c(){e=u("button"),t=O("svg"),n=O("polyline"),o=O("polyline"),s=O("path"),r=w(),m&&m.c(),i(n,"points","23 4 23 10 17 10"),i(n,"class","svelte-ob364t"),i(o,"points","1 20 1 14 7 14"),i(o,"class","svelte-ob364t"),i(s,"d","M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"),i(s,"class","svelte-ob364t"),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-ob364t"),i(e,"class","header-sync-btn svelte-ob364t"),e.disabled=l[53],i(e,"title",p("nav.syncNow"))},m(v,b){g(v,e,b),c(e,t),c(t,n),c(t,o),c(t,s),c(e,r),m&&m.m(e,null),a||(f=P(e,"click",l[126]),a=!0)},p(v,b){v[52].unpushedOps>0?m?m.p(v,b):(m=nn(v),m.c(),m.m(e,null)):m&&(m.d(1),m=null),b[1]&4194304&&(e.disabled=v[53])},d(v){v&&y(e),m&&m.d(),a=!1,f()}}}function nn(l){let e,t=l[52].unpushedOps+"",n;return{c(){e=u("span"),n=j(t),i(e,"class","sync-badge svelte-ob364t")},m(o,s){g(o,e,s),c(e,n)},p(o,s){s[1]&2097152&&t!==(t=o[52].unpushedOps+"")&&q(n,t)},d(o){o&&y(e)}}}function on(l){let e,t,n,o,s,r;return{c(){e=u("div"),t=j(l[7]),n=w(),o=u("button"),o.innerHTML='',i(o,"class","dismiss-btn svelte-ob364t"),i(o,"aria-label","Dismiss"),i(e,"class","error-banner svelte-ob364t")},m(a,f){g(a,e,f),c(e,t),c(e,n),c(e,o),s||(r=[P(o,"click",et(l[128])),P(e,"click",l[129])],s=!0)},p(a,f){f[0]&128&&q(t,a[7])},d(a){a&&y(e),s=!1,pe(r)}}}function Rr(l){let e,t,n;function o(a,f){if(a[28])return Gr;if(a[0].length>0)return qr;if(a[7])return Kr}let s=o(l),r=s&&s(l);return{c(){e=u("div"),t=u("h2"),t.textContent=`${p("welcome.title")}`,n=w(),r&&r.c(),i(t,"class","svelte-ob364t"),i(e,"class","welcome svelte-ob364t")},m(a,f){g(a,e,f),c(e,t),c(e,n),r&&r.m(e,null)},p(a,f){s===(s=o(a))&&r?r.p(a,f):(r&&r.d(1),r=s&&s(a),r&&(r.c(),r.m(e,null)))},i:$,o:$,d(a){a&&y(e),r&&r.d()}}}function Vr(l){let e,t,n,o;function s(f,m){return f[4].length===0?Xr:Yr}let r=s(l),a=r(l);return{c(){e=u("div"),t=u("div"),n=u("h2"),n.textContent=`${p("activity.title")}`,o=w(),a.c(),i(n,"class","svelte-ob364t"),i(t,"class","activity-feed-header svelte-ob364t"),i(e,"class","activity-feed svelte-ob364t")},m(f,m){g(f,e,m),c(e,t),c(t,n),c(e,o),a.m(e,null)},p(f,m){r===(r=s(f))&&a?a.p(f,m):(a.d(1),a=r(f),a&&(a.c(),a.m(e,null)))},i:$,o:$,d(f){f&&y(e),a.d()}}}function Hr(l){let e,t,n,o,s,r=l[3].date+"",a,f,m,v=l[3].summary&&cn(l);function b(k,S){return k[3].groups&&k[3].groups.length>0?Zr:Jr}let _=b(l),h=_(l);return{c(){e=u("div"),t=u("div"),n=u("h2"),n.textContent=`${p("today.title")}`,o=w(),s=u("span"),a=j(r),f=w(),v&&v.c(),m=w(),h.c(),i(n,"class","svelte-ob364t"),i(s,"class","today-date svelte-ob364t"),i(t,"class","today-header svelte-ob364t"),i(e,"class","today-dashboard svelte-ob364t")},m(k,S){g(k,e,S),c(e,t),c(t,n),c(t,o),c(t,s),c(s,a),c(e,f),v&&v.m(e,null),c(e,m),h.m(e,null)},p(k,S){S[0]&8&&r!==(r=k[3].date+"")&&q(a,r),k[3].summary?v?v.p(k,S):(v=cn(k),v.c(),v.m(e,m)):v&&(v.d(1),v=null),_===(_=b(k))&&h?h.p(k,S):(h.d(1),h=_(k),h&&(h.c(),h.m(e,null)))},i:$,o:$,d(k){k&&y(e),v&&v.d(),h.d()}}}function Ur(l){let e,t,n,o,s,r,a=ue(l[60]),f=[];for(let _=0;_{v[k]=null}),He()),~o?(s=v[o],s?s.p(_,h):(s=v[o]=m[o](_),s.c()),ee(s,1),s.m(n,null)):s=null)},i(_){r||(ee(s),r=!0)},o(_){oe(s),r=!1},d(_){_&&(y(e),y(t),y(n)),ze(f,_),~o&&v[o].d()}}}function Wr(l){let e,t,n,o=l[12].title+"",s,r,a,f,m,v,b,_,h,k,S,T=l[12].dirty&&Ln();return{c(){e=u("div"),t=u("div"),n=u("span"),s=j(o),r=w(),T&&T.c(),a=w(),f=u("div"),m=u("button"),m.textContent=`${p("common.save")}`,v=w(),b=u("button"),b.textContent=`${p("common.close")}`,_=w(),h=u("textarea"),i(n,"class","note-title svelte-ob364t"),i(m,"class","btn btn-primary svelte-ob364t"),i(b,"class","btn svelte-ob364t"),i(f,"class","note-editor-actions svelte-ob364t"),i(t,"class","note-editor-header svelte-ob364t"),i(h,"class","note-textarea svelte-ob364t"),i(h,"placeholder",p("note.placeholder")),i(e,"class","note-editor svelte-ob364t")},m(C,N){g(C,e,N),c(e,t),c(t,n),c(n,s),c(t,r),T&&T.m(t,null),c(t,a),c(t,f),c(f,m),c(f,v),c(f,b),c(e,_),c(e,h),Ne(h,l[12].content),k||(S=[P(m,"click",l[104]),P(b,"click",l[102]),P(h,"input",l[130]),P(h,"input",l[103])],k=!0)},p(C,N){N[0]&4096&&o!==(o=C[12].title+"")&&q(s,o),C[12].dirty?T||(T=Ln(),T.c(),T.m(t,a)):T&&(T.d(1),T=null),N[0]&4096&&Ne(h,C[12].content)},i:$,o:$,d(C){C&&y(e),T&&T.d(),k=!1,pe(S)}}}function Kr(l){let e,t=p("common.error")+"",n,o,s;return{c(){e=u("p"),n=j(t),o=w(),s=j(l[7]),i(e,"class","error-text svelte-ob364t")},m(r,a){g(r,e,a),c(e,n),c(e,o),c(e,s)},p(r,a){a[0]&128&&q(s,r[7])},d(r){r&&y(e)}}}function qr(l){let e,t,n;return{c(){e=u("p"),e.textContent=`${p("welcome.selectSection")}`,t=w(),n=u("p"),n.textContent=`${p("welcome.createCase")}`,i(e,"class","svelte-ob364t"),i(n,"class","hint svelte-ob364t")},m(o,s){g(o,e,s),g(o,t,s),g(o,n,s)},p:$,d(o){o&&(y(e),y(t),y(n))}}}function Gr(l){let e;return{c(){e=u("p"),e.textContent=`${p("common.loading")}`,i(e,"class","svelte-ob364t")},m(t,n){g(t,e,n)},p:$,d(t){t&&y(e)}}}function Yr(l){let e,t=ue(l[4]),n=[];for(let o=0;o0&&an(l),s=l[3].summary.notes>0&&fn(l),r=l[3].summary.files>0&&un(l);return{c(){e=u("div"),o&&o.c(),t=w(),s&&s.c(),n=w(),r&&r.c(),i(e,"class","today-summary svelte-ob364t")},m(a,f){g(a,e,f),o&&o.m(e,null),c(e,t),s&&s.m(e,null),c(e,n),r&&r.m(e,null)},p(a,f){a[3].summary.changedCases>0?o?o.p(a,f):(o=an(a),o.c(),o.m(e,t)):o&&(o.d(1),o=null),a[3].summary.notes>0?s?s.p(a,f):(s=fn(a),s.c(),s.m(e,n)):s&&(s.d(1),s=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&&y(e),o&&o.d(),s&&s.d(),r&&r.d()}}}function an(l){let e,t=l[3].summary.changedCases+"",n,o,s=rt(l[3].summary.changedCases,p("today.plural.case_one"),p("today.plural.case_few"),p("today.plural.case_many"))+"",r;return{c(){e=u("span"),n=j(t),o=w(),r=j(s),i(e,"class","summary-chip svelte-ob364t")},m(a,f){g(a,e,f),c(e,n),c(e,o),c(e,r)},p(a,f){f[0]&8&&t!==(t=a[3].summary.changedCases+"")&&q(n,t),f[0]&8&&s!==(s=rt(a[3].summary.changedCases,p("today.plural.case_one"),p("today.plural.case_few"),p("today.plural.case_many"))+"")&&q(r,s)},d(a){a&&y(e)}}}function fn(l){let e,t=l[3].summary.notes+"",n,o,s=rt(l[3].summary.notes,p("today.plural.note_one"),p("today.plural.note_few"),p("today.plural.note_many"))+"",r;return{c(){e=u("span"),n=j(t),o=w(),r=j(s),i(e,"class","summary-chip svelte-ob364t")},m(a,f){g(a,e,f),c(e,n),c(e,o),c(e,r)},p(a,f){f[0]&8&&t!==(t=a[3].summary.notes+"")&&q(n,t),f[0]&8&&s!==(s=rt(a[3].summary.notes,p("today.plural.note_one"),p("today.plural.note_few"),p("today.plural.note_many"))+"")&&q(r,s)},d(a){a&&y(e)}}}function un(l){let e,t=l[3].summary.files+"",n,o,s=rt(l[3].summary.files,p("today.plural.file_one"),p("today.plural.file_few"),p("today.plural.file_many"))+"",r;return{c(){e=u("span"),n=j(t),o=w(),r=j(s),i(e,"class","summary-chip svelte-ob364t")},m(a,f){g(a,e,f),c(e,n),c(e,o),c(e,r)},p(a,f){f[0]&8&&t!==(t=a[3].summary.files+"")&&q(n,t),f[0]&8&&s!==(s=rt(a[3].summary.files,p("today.plural.file_one"),p("today.plural.file_few"),p("today.plural.file_many"))+"")&&q(r,s)},d(a){a&&y(e)}}}function Jr(l){let e,t,n,o;return{c(){e=u("div"),t=u("p"),t.textContent=`${p("today.empty")}`,n=w(),o=u("p"),o.textContent=`${p("today.emptyHint")}`,i(t,"class","svelte-ob364t"),i(o,"class","hint svelte-ob364t"),i(e,"class","today-empty svelte-ob364t")},m(s,r){g(s,e,r),c(e,t),c(e,n),c(e,o)},p:$,d(s){s&&y(e)}}}function Zr(l){let e,t,n=ue(l[3].groups),o=[];for(let r=0;r0&&vn(l);return{c(){for(let r=0;r0?s?s.p(r,a):(s=vn(r),s.c(),s.m(t.parentNode,t)):s&&(s.d(1),s=null)},d(r){r&&(y(e),y(t)),ze(o,r),s&&s.d(r)}}}function dn(l){let e,t=l[249].events.length+"",n,o,s=rt(l[249].events.length,p("today.plural.event_one"),p("today.plural.event_few"),p("today.plural.event_many"))+"",r;return{c(){e=u("span"),n=j(t),o=w(),r=j(s),i(e,"class","today-case-count svelte-ob364t")},m(a,f){g(a,e,f),c(e,n),c(e,o),c(e,r)},p(a,f){f[0]&8&&t!==(t=a[249].events.length+"")&&q(n,t),f[0]&8&&s!==(s=rt(a[249].events.length,p("today.plural.event_one"),p("today.plural.event_few"),p("today.plural.event_many"))+"")&&q(r,s)},d(a){a&&y(e)}}}function Qr(l){let e;return{c(){e=u("div"),e.textContent=`${p("today.changedCases")}`,i(e,"class","today-events-empty svelte-ob364t")},m(t,n){g(t,e,n)},p:$,d(t){t&&y(e)}}}function xr(l){let e,t=ue(l[249].events),n=[];for(let o=0;o0?xr:Qr}let E=W(l),L=E(l);return{c(){e=u("div"),t=u("div"),n=u("span"),s=j(o),r=w(),a=u("span"),m=j(f),v=w(),N&&N.c(),b=w(),_=u("span"),k=j(h),S=w(),L.c(),i(n,"class","today-case-title svelte-ob364t"),i(a,"class","today-case-type svelte-ob364t"),i(_,"class","today-case-time svelte-ob364t"),i(t,"class","today-case-header svelte-ob364t"),i(t,"role","button"),i(t,"tabindex","0"),i(e,"class","today-case svelte-ob364t")},m(I,R){g(I,e,R),c(e,t),c(t,n),c(n,s),c(t,r),c(t,a),c(a,m),c(t,v),N&&N.m(t,null),c(t,b),c(t,_),c(_,k),c(e,S),L.m(e,null),T||(C=[P(t,"click",F),P(t,"keydown",D)],T=!0)},p(I,R){l=I,R[0]&8&&o!==(o=l[249].nodeTitle+"")&&q(s,o),R[0]&8&&f!==(f=l[113](l[249].nodeKind)+"")&&q(m,f),l[249].events?N?N.p(l,R):(N=dn(l),N.c(),N.m(t,b)):N&&(N.d(1),N=null),R[0]&8&&h!==(h=it(l[249].lastActivityAt)+"")&&q(k,h),E===(E=W(l))&&L?L.p(l,R):(L.d(1),L=E(l),L&&(L.c(),L.m(e,null)))},d(I){I&&y(e),N&&N.d(),L.d(),T=!1,pe(C)}}}function vn(l){let e,t,n,o=ue(l[3].events),s=[];for(let r=0;r0&&Cn(l);const L=[dc,uc],I=[];function R(V,U){return V[33]?0:1}k=R(l),S=I[k]=L[k](l);let B=l[29]&&!l[31]&&Tn(),z=l[37]&&Nn(l);return{c(){e=u("div"),t=u("div"),n=u("button"),s=j(o),r=w(),a=u("button"),m=j(f),v=w(),b=u("button"),b.textContent=`${p("file.newFile")}`,_=w(),E&&E.c(),h=w(),S.c(),T=w(),B&&B.c(),C=w(),z&&z.c(),N=tt(),i(n,"class","btn btn-primary svelte-ob364t"),n.disabled=l[29],i(a,"class","btn svelte-ob364t"),a.disabled=l[29],i(b,"class","btn svelte-ob364t"),i(t,"class","tab-toolbar svelte-ob364t"),i(e,"class","files-tab svelte-ob364t")},m(V,U){g(V,e,U),c(e,t),c(t,n),c(n,s),c(t,r),c(t,a),c(a,m),c(t,v),c(t,b),c(t,_),E&&E.m(t,null),c(e,h),I[k].m(e,null),c(e,T),B&&B.m(e,null),g(V,C,U),z&&z.m(V,U),g(V,N,U),F=!0,D||(W=[P(n,"click",l[106]),P(a,"click",l[107]),P(b,"click",l[69])],D=!0)},p(V,U){(!F||U[0]&536870912)&&(n.disabled=V[29]),(!F||U[0]&536870912)&&(a.disabled=V[29]),V[41].items.length>0?E?E.p(V,U):(E=Cn(V),E.c(),E.m(t,null)):E&&(E.d(1),E=null);let Y=k;k=R(V),k===Y?I[k].p(V,U):(Ve(),oe(I[Y],1,1,()=>{I[Y]=null}),He(),S=I[k],S?S.p(V,U):(S=I[k]=L[k](V),S.c()),ee(S,1),S.m(e,T)),V[29]&&!V[31]?B||(B=Tn(),B.c(),B.m(e,null)):B&&(B.d(1),B=null),V[37]?z?(z.p(V,U),U[1]&64&&ee(z,1)):(z=Nn(V),z.c(),ee(z,1),z.m(N.parentNode,N)):z&&(Ve(),oe(z,1,1,()=>{z=null}),He())},i(V){F||(ee(S),ee(z),F=!0)},o(V){oe(S),oe(z),F=!1},d(V){V&&(y(e),y(C),y(N)),E&&E.d(),I[k].d(),B&&B.d(),z&&z.d(V),D=!1,pe(W)}}}function nc(l){let e,t,n,o,s,r,a,f=l[22]&&Dn(l);function m(_,h){return _[11].length===0&&!_[22]?hc:bc}let v=m(l),b=v(l);return{c(){e=u("div"),t=u("div"),n=u("button"),n.textContent=`${p("note.add")}`,o=w(),f&&f.c(),s=w(),b.c(),i(n,"class","btn btn-primary svelte-ob364t"),i(t,"class","tab-toolbar svelte-ob364t"),i(e,"class","notes-tab svelte-ob364t")},m(_,h){g(_,e,h),c(e,t),c(t,n),c(e,o),f&&f.m(e,null),c(e,s),b.m(e,null),r||(a=P(n,"click",l[98]),r=!0)},p(_,h){_[22]?f?f.p(_,h):(f=Dn(_),f.c(),f.m(e,s)):f&&(f.d(1),f=null),v===(v=m(_))&&b?b.p(_,h):(b.d(1),b=v(_),b&&(b.c(),b.m(e,null)))},i:$,o:$,d(_){_&&y(e),f&&f.d(),b.d(),r=!1,a()}}}function ic(l){let e,t,n=l[9].title+"",o,s,r,a,f,m,v=l[113](l[9].type)+"",b,_,h,k,S,T=(l[9].section||"—")+"",C,N,F,D,W,E=ot(l[9].createdAt)+"",L,I,R,B,z,V,U,Y,J=p("overview.newNote")+"",K,A,H,Z,G,ye,te=p("overview.addFile")+"",_e,Q,ie,ne,se,ae,Le=p("overview.addAction")+"",Be,Ze,je,ve,le,ge,Fe,Qe=p("overview.logTime")+"",xe,We,Se,Ke,Me,Te=l[11].length>0&&An(l),be=l[14].length>0&&Mn(l);return{c(){e=u("div"),t=u("h2"),o=j(n),s=w(),r=u("div"),a=u("div"),f=u("span"),f.textContent=`${p("overview.type")}`,m=u("span"),b=j(v),_=w(),h=u("div"),k=u("span"),k.textContent=`${p("overview.section")}`,S=u("span"),C=j(T),N=w(),F=u("div"),D=u("span"),D.textContent=`${p("overview.created")}`,W=u("span"),L=j(E),I=w(),R=u("div"),B=u("button"),z=O("svg"),V=O("path"),U=O("path"),Y=w(),K=j(J),A=w(),H=u("button"),Z=O("svg"),G=O("path"),ye=w(),_e=j(te),Q=w(),ie=u("button"),ne=O("svg"),se=O("polygon"),ae=w(),Be=j(Le),Ze=w(),je=u("button"),ve=O("svg"),le=O("circle"),ge=O("polyline"),Fe=w(),xe=j(Qe),We=w(),Te&&Te.c(),Se=w(),be&&be.c(),i(t,"class","svelte-ob364t"),i(f,"class","meta-label svelte-ob364t"),i(m,"class","svelte-ob364t"),i(a,"class","meta-item svelte-ob364t"),i(k,"class","meta-label svelte-ob364t"),i(S,"class","svelte-ob364t"),i(h,"class","meta-item svelte-ob364t"),i(D,"class","meta-label svelte-ob364t"),i(W,"class","svelte-ob364t"),i(F,"class","meta-item svelte-ob364t"),i(r,"class","meta-grid svelte-ob364t"),i(V,"d","M12 20h9"),i(V,"class","svelte-ob364t"),i(U,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"),i(U,"class","svelte-ob364t"),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-ob364t"),i(B,"class","qa-btn svelte-ob364t"),i(G,"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(G,"class","svelte-ob364t"),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-ob364t"),i(H,"class","qa-btn svelte-ob364t"),i(se,"points","13 2 3 14 12 14 11 22 21 10 12 10 13 2"),i(se,"class","svelte-ob364t"),i(ne,"width","16"),i(ne,"height","16"),i(ne,"viewBox","0 0 24 24"),i(ne,"fill","none"),i(ne,"stroke","currentColor"),i(ne,"stroke-width","2"),i(ne,"stroke-linecap","round"),i(ne,"stroke-linejoin","round"),i(ne,"class","svelte-ob364t"),i(ie,"class","qa-btn svelte-ob364t"),i(le,"cx","12"),i(le,"cy","12"),i(le,"r","10"),i(le,"class","svelte-ob364t"),i(ge,"points","12 6 12 12 16 14"),i(ge,"class","svelte-ob364t"),i(ve,"width","16"),i(ve,"height","16"),i(ve,"viewBox","0 0 24 24"),i(ve,"fill","none"),i(ve,"stroke","currentColor"),i(ve,"stroke-width","2"),i(ve,"stroke-linecap","round"),i(ve,"stroke-linejoin","round"),i(ve,"class","svelte-ob364t"),i(je,"class","qa-btn svelte-ob364t"),i(R,"class","quick-actions svelte-ob364t"),i(e,"class","overview svelte-ob364t")},m(fe,he){g(fe,e,he),c(e,t),c(t,o),c(e,s),c(e,r),c(r,a),c(a,f),c(a,m),c(m,b),c(r,_),c(r,h),c(h,k),c(h,S),c(S,C),c(r,N),c(r,F),c(F,D),c(F,W),c(W,L),c(e,I),c(e,R),c(R,B),c(B,z),c(z,V),c(z,U),c(B,Y),c(B,K),c(R,A),c(R,H),c(H,Z),c(Z,G),c(H,ye),c(H,_e),c(R,Q),c(R,ie),c(ie,ne),c(ne,se),c(ie,ae),c(ie,Be),c(R,Ze),c(R,je),c(je,ve),c(ve,le),c(ve,ge),c(je,Fe),c(je,xe),c(e,We),Te&&Te.m(e,null),c(e,Se),be&&be.m(e,null),Ke||(Me=[P(B,"click",l[132]),P(H,"click",l[133]),P(ie,"click",l[114]),P(je,"click",l[134])],Ke=!0)},p(fe,he){he[0]&512&&n!==(n=fe[9].title+"")&&q(o,n),he[0]&512&&v!==(v=fe[113](fe[9].type)+"")&&q(b,v),he[0]&512&&T!==(T=(fe[9].section||"—")+"")&&q(C,T),he[0]&512&&E!==(E=ot(fe[9].createdAt)+"")&&q(L,E),fe[11].length>0?Te?Te.p(fe,he):(Te=An(fe),Te.c(),Te.m(e,Se)):Te&&(Te.d(1),Te=null),fe[14].length>0?be?be.p(fe,he):(be=Mn(fe),be.c(),be.m(e,null)):be&&(be.d(1),be=null)},i:$,o:$,d(fe){fe&&y(e),Te&&Te.d(),be&&be.d(),Ke=!1,pe(Me)}}}function oc(l){let e,t=ue(l[5]),n=[];for(let o=0;o',F=w(),i(n,"class","action-title svelte-ob364t"),i(a,"class","action-type svelte-ob364t"),i(b,"class","action-data svelte-ob364t"),i(t,"class","action-info svelte-ob364t"),i(T,"class","btn btn-sm svelte-ob364t"),i(N,"class","btn btn-sm btn-danger svelte-ob364t"),i(S,"class","action-btns svelte-ob364t"),i(e,"class","action-card svelte-ob364t")},m(I,R){g(I,e,R),c(e,t),c(t,n),c(n,s),c(t,r),c(t,a),c(a,m),c(t,v),c(t,b),c(b,h),c(e,k),c(e,S),c(S,T),c(S,C),c(S,N),c(e,F),D||(W=[P(T,"click",E),P(N,"click",L)],D=!0)},p(I,R){l=I,R[0]&8192&&o!==(o=l[236].title+"")&&q(s,o),R[0]&8192&&f!==(f=l[118](l[236].type)+"")&&q(m,f),R[0]&8192&&_!==(_=l[236].data+"")&&q(h,_)},d(I){I&&y(e),D=!1,pe(W)}}}function Cn(l){let e,t=p("common.paste")+"",n,o,s=l[41].items.length+"",r,a,f;return{c(){e=u("button"),n=j(t),o=w(),r=j(s),i(e,"class","btn svelte-ob364t")},m(m,v){g(m,e,v),c(e,n),c(e,o),c(e,r),a||(f=P(e,"click",l[74]),a=!0)},p(m,v){v[1]&1024&&s!==(s=m[41].items.length+"")&&q(r,s)},d(m){m&&y(e),a=!1,f()}}}function uc(l){let e,t,n,o,s,r,a;const f=[pc,mc],m=[];function v(k,S){return k[35].length>0?0:1}e=v(l),t=m[e]=f[e](l);const b=[vc,_c],_=[];function h(k,S){return k[36].length===0?0:1}return o=h(l),s=_[o]=b[o](l),{c(){t.c(),n=w(),s.c(),r=tt()},m(k,S){m[e].m(k,S),g(k,n,S),_[o].m(k,S),g(k,r,S),a=!0},p(k,S){let T=e;e=v(k),e===T?m[e].p(k,S):(Ve(),oe(m[T],1,1,()=>{m[T]=null}),He(),t=m[e],t?t.p(k,S):(t=m[e]=f[e](k),t.c()),ee(t,1),t.m(n.parentNode,n));let C=o;o=h(k),o===C?_[o].p(k,S):(Ve(),oe(_[C],1,1,()=>{_[C]=null}),He(),s=_[o],s?s.p(k,S):(s=_[o]=b[o](k),s.c()),ee(s,1),s.m(r.parentNode,r))},i(k){a||(ee(t),ee(s),a=!0)},o(k){oe(t),oe(s),a=!1},d(k){k&&(y(n),y(r)),m[e].d(k),_[o].d(k)}}}function dc(l){let e,t;return{c(){e=u("div"),t=u("p"),t.textContent=`${p("common.loading")}`,i(t,"class","svelte-ob364t"),i(e,"class","empty-state svelte-ob364t")},m(n,o){g(n,e,o),c(e,t)},p:$,i:$,o:$,d(n){n&&y(e)}}}function mc(l){let e,t;return e=new di({props:{crumbs:[{name:p("file.root")}]}}),{c(){Je(e.$$.fragment)},m(n,o){Ye(e,n,o),t=!0},p:$,i(n){t||(ee(e.$$.fragment,n),t=!0)},o(n){oe(e.$$.fragment,n),t=!1},d(n){Xe(e,n)}}}function pc(l){let e,t,n,o,s,r,a,f=p("common.back")+"",m,v,b,_;return e=new di({props:{crumbs:[{name:p("file.root")},...l[35]]}}),e.$on("navigate",l[139]),{c(){Je(e.$$.fragment),t=w(),n=u("button"),o=O("svg"),s=O("line"),r=O("polyline"),a=w(),m=j(f),i(s,"x1","19"),i(s,"y1","12"),i(s,"x2","5"),i(s,"y2","12"),i(s,"class","svelte-ob364t"),i(r,"points","12 19 5 12 12 5"),i(r,"class","svelte-ob364t"),i(o,"width","14"),i(o,"height","14"),i(o,"viewBox","0 0 24 24"),i(o,"fill","none"),i(o,"stroke","currentColor"),i(o,"stroke-width","2"),i(o,"stroke-linecap","round"),i(o,"stroke-linejoin","round"),i(o,"class","svelte-ob364t"),i(n,"class","btn btn-sm back-btn svelte-ob364t")},m(h,k){Ye(e,h,k),g(h,t,k),g(h,n,k),c(n,o),c(o,s),c(o,r),c(n,a),c(n,m),v=!0,b||(_=P(n,"click",l[65]),b=!0)},p(h,k){const S={};k[1]&16&&(S.crumbs=[{name:p("file.root")},...h[35]]),e.$set(S)},i(h){v||(ee(e.$$.fragment,h),v=!0)},o(h){oe(e.$$.fragment,h),v=!1},d(h){h&&(y(t),y(n)),Xe(e,h),b=!1,_()}}}function _c(l){let e,t=[],n=new Map,o,s=ue(l[36]);const r=a=>a[233].id;for(let a=0;a0?p("file.noFiles"):p("file.noFilesCase"))+"",r,a,f,m,v,b,_,h,k,S;return{c(){e=u("div"),t=u("div"),t.innerHTML='',n=w(),o=u("p"),r=j(s),a=w(),f=u("p"),f.textContent=`${p("file.hint")}`,m=w(),v=u("div"),b=u("button"),b.textContent=`${p("file.addFileSimple")}`,_=w(),h=u("button"),h.textContent=`${p("file.addFolderSimple")}`,i(t,"class","empty-icon svelte-ob364t"),i(o,"class","svelte-ob364t"),i(f,"class","hint svelte-ob364t"),i(b,"class","btn btn-primary svelte-ob364t"),i(h,"class","btn svelte-ob364t"),i(v,"class","empty-actions svelte-ob364t"),i(e,"class","empty-state svelte-ob364t")},m(T,C){g(T,e,C),c(e,t),c(e,n),c(e,o),c(o,r),c(e,a),c(e,f),c(e,m),c(e,v),c(v,b),c(v,_),c(v,h),k||(S=[P(b,"click",l[106]),P(h,"click",l[107])],k=!0)},p(T,C){C[1]&16&&s!==(s=(T[35].length>0?p("file.noFiles"):p("file.noFilesCase"))+"")&&q(r,s)},i:$,o:$,d(T){T&&y(e),k=!1,pe(S)}}}function Sn(l,e){let t,n,o;return n=new xs({props:{item:e[233],selected:e[42].includes(e[233].id),onDragStart:e[78],onDragOver:e[79],onDrop:e[80]}}),n.$on("navigate",e[140]),n.$on("preview",e[141]),n.$on("openExternal",e[142]),n.$on("showInFolder",e[143]),n.$on("delete",e[144]),n.$on("rename",e[145]),n.$on("duplicate",e[146]),n.$on("cut",e[147]),n.$on("copy",e[148]),n.$on("selectOne",e[149]),n.$on("toggleSelect",e[150]),n.$on("rangeSelect",e[151]),{key:l,first:null,c(){t=tt(),Je(n.$$.fragment),this.first=t},m(s,r){g(s,t,r),Ye(n,s,r),o=!0},p(s,r){e=s;const a={};r[1]&32&&(a.item=e[233]),r[1]&2080&&(a.selected=e[42].includes(e[233].id)),n.$set(a)},i(s){o||(ee(n.$$.fragment,s),o=!0)},o(s){oe(n.$$.fragment,s),o=!1},d(s){s&&y(t),Xe(n,s)}}}function Tn(l){let e,t;return{c(){e=u("div"),t=u("p"),t.textContent=`${p("file.scanning")}`,i(t,"class","svelte-ob364t"),i(e,"class","empty-state svelte-ob364t")},m(n,o){g(n,e,o),c(e,t)},d(n){n&&y(e)}}}function Nn(l){let e,t;return e=new pr({props:{item:l[37],content:l[38],loading:l[39],error:l[40]}}),e.$on("close",l[68]),e.$on("openExternal",l[152]),{c(){Je(e.$$.fragment)},m(n,o){Ye(e,n,o),t=!0},p(n,o){const s={};o[1]&64&&(s.item=n[37]),o[1]&128&&(s.content=n[38]),o[1]&256&&(s.loading=n[39]),o[1]&512&&(s.error=n[40]),e.$set(s)},i(n){t||(ee(e.$$.fragment,n),t=!0)},o(n){oe(e.$$.fragment,n),t=!1},d(n){Xe(e,n)}}}function Dn(l){let e,t,n,o,s,r,a,f,m;return{c(){e=u("div"),t=u("input"),n=w(),o=u("div"),s=u("button"),s.textContent=`${p("common.create")}`,r=w(),a=u("button"),a.textContent=`${p("common.cancel")}`,i(t,"type","text"),i(t,"placeholder",p("note.title")),i(t,"class","svelte-ob364t"),i(s,"class","btn btn-primary svelte-ob364t"),i(a,"class","btn svelte-ob364t"),i(o,"class","form-actions svelte-ob364t"),i(e,"class","create-form svelte-ob364t")},m(v,b){g(v,e,b),c(e,t),Ne(t,l[23]),c(e,n),c(e,o),c(o,s),c(o,r),c(o,a),f||(m=[P(t,"input",l[136]),P(t,"keydown",l[137]),P(s,"click",l[100]),P(a,"click",l[99])],f=!0)},p(v,b){b[0]&8388608&&t.value!==v[23]&&Ne(t,v[23])},d(v){v&&y(e),f=!1,pe(m)}}}function bc(l){let e,t=ue(l[11]),n=[];for(let o=0;ooe(G[te],1,1,()=>{G[te]=null});return{c(){e=u("div"),t=u("div"),n=u("h3"),n.textContent=`${p("nav.createNode")}`,o=w(),H&&H.c(),s=w(),r=u("div"),a=u("label"),a.textContent=`${p("template.select")}`,f=w(),m=u("div"),v=u("button"),Je(b.$$.fragment),_=w(),h=u("div"),k=u("span"),k.textContent=`${p("template.optionNone")}`,S=w(),T=u("span"),T.textContent=`${p("template.none.desc")}`,C=w();for(let te=0;te{h=null}),He()),(!v||S[0]&2097152)&&Ue(t,"left",k[21].x+"px"),(!v||S[0]&2097152)&&Ue(t,"top",k[21].y+"px")},i(k){v||(ee(h),v=!0)},o(k){oe(h),v=!1},d(k){k&&y(e),h&&h.d(),b=!1,pe(_)}}}function Bn(l){let e,t,n,o,s,r=ue(l[2].length>0?l[2]:[{id:"",title:"template.optionNone",icon:"folder"}]),a=[];for(let m=0;moe(a[m],1,1,()=>{a[m]=null});return{c(){e=u("div"),e.textContent=`${p("common.create")}`,t=w();for(let m=0;m0?m[2]:[{id:"",title:"template.optionNone",icon:"folder"}]);let b;for(b=0;bl[175].call(h)),i(v,"class","form-group svelte-ob364t"),i(T,"class","svelte-ob364t"),i(D,"type","text"),i(D,"placeholder",W=l[26]==="open_url"?p("action.urlPlaceholder"):l[26]==="open_folder"||l[26]==="open_file"?p("action.pathPlaceholder"):p("action.commandPlaceholder")),i(D,"class","svelte-ob364t"),i(S,"class","form-group svelte-ob364t"),i(I,"class","btn btn-primary svelte-ob364t"),i(B,"class","btn svelte-ob364t"),i(L,"class","modal-actions svelte-ob364t"),i(t,"class","modal svelte-ob364t"),i(e,"class","modal-overlay svelte-ob364t")},m(J,K){g(J,e,K),c(e,t),c(t,n),c(t,o),c(t,s),c(s,r),c(s,a),c(s,f),Ne(f,l[25]),c(t,m),c(t,v),c(v,b),c(v,_),c(v,h);for(let A=0;A0?0:1}F=Te(l),D=Me[F]=Ke[F](l);function be(X,de){return X[9]?Br:X[8]?zr:Or}let fe=be(l),he=fe(l),De=((gt=l[52])==null?void 0:gt.configured)&&ln(l),we=l[7]&&on(l);const Re=[Wr,Ur,Hr,Vr,Rr],Pe=[];function qe(X,de){return X[12]?0:X[9]?1:X[8]==="today"&&X[3]?2:X[8]==="activity"?3:4}se=qe(l),ae=Pe[se]=Re[se](l);let ke=l[17]&&jn(l),me=l[21].visible&&zn(l),re=l[24]&&Vn(l),Ae=l[31]&&l[30]&&Un(l),Oe=l[48]&&Kn(l),Ie=l[43]&&Gn(l),Ee=l[51]&&Yn(l);return{c(){var X;e=u("div"),t=u("aside"),n=u("div"),o=u("span"),o.textContent="⚒",s=w(),r=u("span"),r.textContent=`${p("nav.brand")}`,a=w(),f=u("nav"),m=u("div"),v=u("div"),v.textContent=`${p("nav.system")}`,b=w();for(let de=0;de{Me[$e]=null}),He(),D=Me[F],D?D.p(X,de):(D=Me[F]=Ke[F](X),D.c()),ee(D,1),D.m(h,null)),(!Fe||de[1]&2097152)&&nt(U,"active",(_t=X[52])==null?void 0:_t.configured),(!Fe||de[0]&64)&&q(H,X[6]),fe===(fe=be(X))&&he?he.p(X,de):(he.d(1),he=fe(X),he&&(he.c(),he.m(te,null))),(vt=X[52])!=null&&vt.configured?De?De.p(X,de):(De=ln(X),De.c(),De.m(Q,null)):De&&(De.d(1),De=null),X[7]?we?we.p(X,de):(we=on(X),we.c(),we.m(G,ne)):we&&(we.d(1),we=null);let pt=se;se=qe(X),se===pt?Pe[se].p(X,de):(Ve(),oe(Pe[pt],1,1,()=>{Pe[pt]=null}),He(),ae=Pe[se],ae?ae.p(X,de):(ae=Pe[se]=Re[se](X),ae.c()),ee(ae,1),ae.m(G,Le)),X[17]?ke?(ke.p(X,de),de[0]&131072&&ee(ke,1)):(ke=jn(X),ke.c(),ee(ke,1),ke.m(G,Be)):ke&&(Ve(),oe(ke,1,1,()=>{ke=null}),He()),X[21].visible?me?(me.p(X,de),de[0]&2097152&&ee(me,1)):(me=zn(X),me.c(),ee(me,1),me.m(G,Ze)):me&&(Ve(),oe(me,1,1,()=>{me=null}),He()),X[24]?re?re.p(X,de):(re=Vn(X),re.c(),re.m(G,je)):re&&(re.d(1),re=null),X[31]&&X[30]?Ae?Ae.p(X,de):(Ae=Un(X),Ae.c(),Ae.m(G,ve)):Ae&&(Ae.d(1),Ae=null),X[48]?Oe?Oe.p(X,de):(Oe=Kn(X),Oe.c(),Oe.m(G,le)):Oe&&(Oe.d(1),Oe=null),X[43]?Ie?(Ie.p(X,de),de[1]&4096&&ee(Ie,1)):(Ie=Gn(X),Ie.c(),ee(Ie,1),Ie.m(G,ge)):Ie&&(Ve(),oe(Ie,1,1,()=>{Ie=null}),He()),X[51]?Ee?Ee.p(X,de):(Ee=Yn(X),Ee.c(),Ee.m(G,null)):Ee&&(Ee.d(1),Ee=null)},i(X){Fe||(ee(D),ee(ae),ee(ke),ee(me),ee(Ie),Fe=!0)},o(X){oe(D),oe(ae),oe(ke),oe(me),oe(Ie),Fe=!1},d(X){X&&y(e),ze(Se,X),Me[F].d(),he.d(),De&&De.d(),we&&we.d(),Pe[se].d(),ke&&ke.d(),me&&me.d(),re&&re.d(),Ae&&Ae.d(),Oe&&Oe.d(),Ie&&Ie.d(),Ee&&Ee.d(),Qe=!1,pe(xe)}}}function x(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 Mt(l,e,t){for(const n of l){if(n.id===e)return n.children=t,!0;if(n.children&&Mt(n.children,e,t))return!0}return!1}function Nc(l){l.preventDefault(),l.dataTransfer.dropEffect="move"}function yt(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 it(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 rt(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 Dc(l,e,t){let n=[],o=[],s=[],r=null,a=[],f=0,m=!0,v=[],b="",_="",h="",k=null,S="overview",T=[],C=null,N=[],F=[],D=[],W="",E="",L=!1,I="",R=null,B=null,z={visible:!1,x:0,y:0,node:null},V=!1,U="",Y=!1,J="",K="open_url",A="",H=[{id:"open_url",label:p("action.openUrl")},{id:"open_file",label:p("action.openFile")},{id:"open_folder",label:p("action.openFolder")},{id:"run_command",label:p("action.runCommand")},{id:"run_script",label:p("action.runScript")},{id:"open_terminal",label:p("action.openTerminal")},{id:"launch_app",label:p("action.launchApp")}],Z=!0,G=!1,ye=null,te=!1,_e="",Q={},ie=!1,ne=null,se=[],ae=[],Le=null,Be="",Ze=!1,je="",ve={items:[],mode:"copy"},le=[],ge=[],Fe=!1,Qe="",xe="",We=!1,Se=p("common.delete"),Ke=null,Me=null,Te=!1,be="",fe="",he="",De=!1,we=null,Re=!1,Pe="",qe="",ke="",me=0,re="";const Ae=[{id:"overview",label:p("tab.overview")},{id:"notes",label:p("tab.notes")},{id:"files",label:p("tab.files")},{id:"actions",label:p("tab.actions")},{id:"worklog",label:p("tab.worklog")},{id:"activity",label:p("tab.activity")}];let Oe=null;li(async()=>{try{t(6,b=await x("VerstakVersion")||"verstak-gui/v2"),t(0,n=await x("ListSystemViews")||[]),t(1,o=await x("ListWorkspaceTree")||[]),t(2,s=await x("ListEnabledTemplates")||[])}catch(d){t(7,_=String(d)),t(0,n=[{id:"today",label:p("nav.today")},{id:"inbox",label:p("nav.inbox")},{id:"activity",label:p("nav.activity")}]),t(1,o=[]),t(2,s=[])}window.runtime&&window.runtime.EventsOn&&(window.runtime.EventsOn("files-dropped",Ui),Oe=()=>window.runtime.EventsOff("files-dropped")),window.addEventListener("keydown",sl),t(28,Z=!1),Tt()}),ni(()=>{Oe&&Oe(),window.removeEventListener("keydown",sl)});async function Ie(d){t(8,h=d),t(9,k=null),t(10,S="overview"),t(11,T=[]),N=[],t(13,F=[]),t(14,D=[]),t(17,L=!1),t(7,_=""),t(3,r=null),t(4,a=[]),f=0,m=!0;try{d==="today"?t(3,r=await x("ListTodayView")||{cases:[]}):d==="activity"&&(t(4,a=await x("ListActivityFeed",50,0)||[]),f=a.length,m=a.length===50)}catch(M){t(7,_=String(M)),t(3,r={cases:[]}),t(4,a=[])}}async function Ee(d){t(9,k=d),t(10,S="overview"),t(11,T=[]),N=[],t(13,F=[]),t(14,D=[]),t(36,ae=[]),t(35,se=[]),t(34,ne=null),t(37,Le=null),t(38,Be=""),t(42,le=[]),ge=[],t(12,C=null),t(17,L=!1),t(22,V=!1),t(7,_=""),t(5,v=[]),await gt(d.id)}async function gt(d){try{t(11,T=await x("ListNotes",d)||[])}catch{}try{N=await x("ListFiles",d)||[]}catch{}try{t(13,F=await x("ListActions",d)||[])}catch{}try{t(14,D=await x("ListWorklog",d)||[])}catch{}try{t(5,v=await x("ListActivityByNode",d,50,0)||[])}catch{}}async function X(d){t(33,ie=!0);try{let M=await x("ListItems",d)||[];M.sort((ce,Ce)=>ce.type!==Ce.type?ce.type==="folder"?-1:1:(ce.name||"").localeCompare(Ce.name||"")),t(36,ae=M)}catch{t(36,ae=[])}t(33,ie=!1)}async function de(d){if(k){try{const M=await x("GetNodeDetail",d);M&&t(35,se=[...se,{id:d,name:M.title}])}catch{t(35,se=[...se,{id:d,name:"..."}])}t(34,ne=d),await X(d)}}function $e(){if(se.length<2)t(35,se=[]),t(34,ne=null),X(k.id);else{const d=se[se.length-2];t(35,se=se.slice(0,-1)),t(34,ne=d.id),X(d.id)}}function pt(d){const M=se[d];t(35,se=se.slice(0,d+1)),t(34,ne=M.id),X(M.id)}async function _t(d){t(37,Le=d),t(38,Be=""),t(40,je=""),t(39,Ze=!0);try{Ks(d)?t(38,Be=await x("GetFileBase64",d.fileId)||""):qs(d)&&t(38,Be=await x("ReadFileText",d.fileId)||"")}catch(M){t(40,je=String(M))}t(39,Ze=!1)}function vt(){t(37,Le=null),t(38,Be=""),t(40,je="")}async function Ge(){const d=prompt(p("file.namePrompt"));if(!(!d||!d.trim()))try{const M=ne||k.id;await x("CreateEmptyFile",M,d.trim()),await X(M)}catch(M){t(7,_=String(M))}}async function wt(d){try{await x("DuplicateNode",d);const M=ne||k.id;await X(M)}catch(M){t(7,_=String(M))}}function $t(d){const M=ae.find(ce=>ce.id===d);M&&Rt(M.id,M.name)}function el(d){t(41,ve={items:[d],mode:"cut"})}function tl(d){t(41,ve={items:[d],mode:"copy"})}async function ll(){if(ve.items.length===0)return;const d=ne||k.id;try{if(ve.mode==="copy")for(const M of ve.items)await x("DuplicateNode",M);else for(const M of ve.items)await x("MoveNode",M,d);t(41,ve={items:[],mode:"copy"}),await X(d)}catch(M){t(7,_=String(M))}}function nl(d){le.includes(d)?t(42,le=le.filter(M=>M!==d)):t(42,le=[...le,d])}function il(d){t(42,le=[d])}function _i(){t(42,le=ae.map(d=>d.id))}function ol(d){if(ae.length===0)return;const M=le.length>0?le[le.length-1]:ae[0].id,ce=ae.findIndex(ut=>ut.id===M),Ce=ae.findIndex(ut=>ut.id===d);if(ce===-1||Ce===-1)return;const lt=Math.min(ce,Ce),qt=Math.max(ce,Ce),rs=ae.slice(lt,qt+1).map(ut=>ut.id),gl=new Set(le);rs.forEach(ut=>gl.add(ut)),t(42,le=[...gl])}function vi(){t(42,le=[])}function Bt(d){return d.length>0?d:ae.map(M=>M.id)}async function bi(){const d=Bt(le),M=ae.find(Ce=>Ce.id===d[0]);let ce;d.length===1&&(M==null?void 0:M.type)==="folder"?ce=p("delete.folder"):d.length===1?ce=p("delete.file"):ce=p("delete.files",{count:d.length}),Ct({title:p("delete.confirmTitle"),message:p("delete.confirmMessage")+" "+ce+"?",confirmText:p("common.delete"),danger:!0,onConfirm:async()=>{for(const lt of d)try{await x("DeleteFileOrFolder",lt)}catch(qt){t(7,_=String(qt))}t(42,le=[]);const Ce=ne||k.id;await X(Ce)}})}function hi(){const d=Bt(le);t(41,ve={items:d,mode:"cut"}),t(42,le=[])}function ki(){const d=Bt(le);t(41,ve={items:d,mode:"copy"}),t(42,le=[])}function yi(d,M){const ce=le.includes(M)?le:[M];ge=ce,d.dataTransfer.effectAllowed="move",d.dataTransfer.setData("text/plain",ce.join(","))}function gi(d,M){const ce=ae.find(Ce=>Ce.id===M);ce&&ce.type==="folder"&&(d.preventDefault(),d.dataTransfer.dropEffect="move")}async function wi(d,M){if(d.preventDefault(),ge.length!==0){for(const ce of ge)try{await x("MoveNode",ce,M)}catch(Ce){t(7,_=String(Ce))}ge=[],t(42,le=[]),await X(ne||k.id)}}function sl(d){if(S==="files"&&!(d.target.tagName==="INPUT"||d.target.tagName==="TEXTAREA"))if(d.ctrlKey||d.metaKey)d.key==="c"||d.key==="C"?(d.preventDefault(),ki()):d.key==="x"||d.key==="X"?(d.preventDefault(),hi()):d.key==="v"||d.key==="V"?(d.preventDefault(),ll()):d.key==="a"||d.key==="A"?(d.preventDefault(),_i()):d.key==="o"||d.key==="O"?(d.preventDefault(),Ci()):d.key==="Enter"&&(d.preventDefault(),rl());else if(d.key==="Enter")d.preventDefault(),rl();else if(d.key==="Delete"||d.key==="Backspace"){if(Le){d.preventDefault(),vt();return}if(le.length>0){d.preventDefault(),bi();return}if(d.key==="Backspace"&&se.length>0){d.preventDefault(),$e();return}}else if(d.key==="Escape"){if(Le){vt();return}if(le.length>0){vi();return}}else d.key==="F2"&&(d.preventDefault(),Si())}function rl(){if(le.length===1){const d=ae.find(M=>M.id===le[0]);d&&(d.type==="folder"?de(d.id):_t(d))}}function Ci(){if(le.length===1){const d=ae.find(M=>M.id===le[0]);d&&d.fileId&&x("OpenFile",d.fileId)}}function Rt(d,M){be=d,t(49,fe=M),t(50,he=""),t(48,Te=!0)}function Si(){if(le.length===1){const d=ae.find(M=>M.id===le[0]);d&&Rt(d.id,d.name)}}async function cl(){const d=fe.trim();if(!d){t(50,he=p("rename.emptyError"));return}try{await x("ValidateName",d)}catch{t(50,he=p("rename.invalidError"));return}t(48,Te=!1),be="";try{await x("RenameNode",be,d);const M=ne||k.id;await X(M)}catch(M){t(7,_=String(M))}}function Ti(){t(48,Te=!1),be="",t(49,fe=""),t(50,he="")}function Ni(d){d.key==="Enter"?cl():t(50,he="")}function Ct(d){t(44,Qe=d.title||p("common.confirm")),t(45,xe=d.message||""),t(46,We=d.danger!==void 0?d.danger:!0),t(47,Se=d.confirmText||p("common.delete")),Ke=d.onConfirm||null,Me=d.onCancel||null,t(43,Fe=!0)}function al(){t(43,Fe=!1),Ke=null,Me=null}function Di(){Ke&&Ke(),al()}function Fi(){Me&&Me(),al()}function fl(d){t(19,R=z.node),t(20,B=d),t(18,I=""),t(17,L=!0),St()}function Ai(){t(19,R=null),t(20,B=void 0),t(18,I=""),t(17,L=!0)}function Ii(){t(17,L=!1),t(18,I=""),t(19,R=null),t(20,B=void 0)}async function ul(){if(!(!I.trim()||B===void 0))try{const d=R?R.id:"",M=B?B.id:"",ce=await x("CreateNodeFromTemplate",d,I.trim(),M);t(17,L=!1),t(18,I="");const Ce=ce?ce.id:null;if(t(19,R=null),t(20,B=void 0),d){t(32,Q={...Q,[d]:!0});const lt=await x("ListWorkspaceChildren",d)||[];Mt(o,d,lt),t(1,o=[...o])}else t(1,o=await x("ListWorkspaceTree")||o);if(Ce){const lt=await x("GetNodeDetail",Ce);lt&&(t(8,h=""),Ee(lt))}}catch(d){t(7,_=String(d))}}function Mi(d,M){t(21,z={visible:!0,x:d.clientX,y:d.clientY,node:M})}function St(){t(21,z={visible:!1,x:0,y:0,node:null})}async function Ei(d){const M=!Q[d];if(t(32,Q={...Q,[d]:M}),!M)return;const ce=await x("ListWorkspaceChildren",d)||[];Mt(o,d,ce),t(1,o=[...o])}async function Li(d,M){if(!(!d||!M||d===M))try{const ce=await x("MoveNode",d,M);await Vt();const Ce=await x("GetNodeDetail",d);Ce&&(t(8,h=""),Ee(Ce))}catch(ce){t(7,_=String(ce))}}async function ji(d){d.preventDefault();try{const M=d.dataTransfer.getData("text/plain");if(!M)return;const ce=await x("GetNodeDetail",M);if(!ce||!ce.parent_id)return;await x("MoveNode",M,""),await Vt();const Ce=await x("GetNodeDetail",M);Ce&&(t(8,h=""),Ee(Ce))}catch(M){t(7,_=String(M))}}function dl(d){Rt(d.id,d.title),St()}function ml(d){St(),Ct({title:p("delete.confirmTitle"),message:p("delete.confirmMessage")+" "+d.title+"?",confirmText:p("common.delete"),danger:!0,onConfirm:async()=>{try{await x("DeleteNode",d.id),await Vt(),k&&k.id===d.id&&t(9,k=null)}catch(M){t(7,_=String(M))}}})}async function pl(d){St();try{await x("OpenNodeFolder",d.id)}catch(M){t(7,_=String(M))}}async function Vt(){t(1,o=await x("ListWorkspaceTree")||[]);for(const d of Object.keys(Q))if(Q[d]){const M=await x("ListWorkspaceChildren",d)||[];Mt(o,d,M)}t(1,o=[...o])}function _l(){t(22,V=!0),t(23,U="")}function Pi(){t(22,V=!1),t(23,U="")}async function vl(){if(!(!U.trim()||!k))try{const d=await x("CreateNote",k.id,U.trim());t(11,T=[...T,d&&d.id?d:{id:Date.now().toString(),title:U.trim(),createdAt:new Date().toISOString()}]),t(22,V=!1),t(23,U="")}catch{const M={id:Date.now().toString(),title:U.trim(),createdAt:new Date().toISOString()};t(11,T=[...T,M]),t(22,V=!1),t(23,U="")}}async function Ht(d){if(C&&C.dirty){Ct({title:p("note.unsavedTitle"),message:p("note.unsavedMessage"),confirmText:p("note.unsavedClose"),danger:!1,onConfirm:async()=>{await bl(d)}});return}await bl(d)}async function bl(d){try{const M=await x("ReadNote",d.id);t(12,C={id:d.id,title:d.title,content:M||"",dirty:!1})}catch{t(12,C={id:d.id,title:d.title,content:"# "+d.title+` + +`,dirty:!1})}}function Oi(){if(C&&C.dirty){Ct({title:p("note.unsavedTitle"),message:p("note.unsavedMessage"),confirmText:p("note.unsavedClose"),danger:!1,onConfirm:()=>{t(12,C=null)}});return}t(12,C=null)}function zi(d){C&&(t(12,C.content=d.target.value,C),t(12,C.dirty=!0,C))}async function Bi(){if(C)try{await x("SaveNote",C.id,C.content),t(12,C.dirty=!1,C)}catch{t(12,C.dirty=!1,C)}}async function Ri(){const d=parseInt(W,10);if(!(!E.trim()||isNaN(d)||d<=0||!k)){try{const M=await x("CreateWorklog",k.id,E.trim(),d);t(14,D=[...D,M&&M.id?M:{id:Date.now().toString(),nodeId:k.id,summary:E.trim(),minutes:d,createdAt:new Date().toISOString()}])}catch{t(14,D=[...D,{id:Date.now().toString(),nodeId:k.id,summary:E.trim(),minutes:d,createdAt:new Date().toISOString()}])}t(16,E=""),t(15,W="")}}async function hl(){const d=await x("PickFile");d&&await Ut(k.id,d)}async function Vi(){const d=await x("PickDirectory");d&&await Ut(k.id,d)}async function Ut(d,M){t(29,G=!0);try{const ce=await x("PreviewImport",M);t(30,ye=ce),_e=M,t(31,te=!0)}catch(ce){t(7,_=String(ce))}t(29,G=!1)}async function Wt(d){try{const M=d==="copy"?await x("AddPathCopy",k.id,_e):await x("AddPathLink",k.id,_e);t(31,te=!1),t(30,ye=null),t(35,se=[]),t(34,ne=null),await Promise.all([gt(k.id),X(k.id)])}catch(M){t(7,_=String(M))}}function Hi(){t(31,te=!1),t(30,ye=null)}async function kl({id:d,type:M}){const ce=p(M==="folder"?"delete.folder":"delete.file");Ct({title:p("delete.confirmTitle"),message:p("delete.confirmMessage")+" "+ce+"?",confirmText:p("common.delete"),danger:!0,onConfirm:async()=>{try{await x("DeleteFileOrFolder",d),N=N.filter(lt=>lt.nodeId!==d);const Ce=ne||k.id;await X(Ce)}catch(Ce){t(7,_=String(Ce))}}})}async function Ui(d){if(!d||d.length===0)return;if(!k){t(7,_=p("error.selectCaseFirst"));return}const M=d[0];await Ut(k.id,M)}function Wi(d){return S===d?"tab active":"tab"}function Ki(d){return{note_created:p("event.noteCreated"),note_updated:p("event.noteUpdated"),file_added:p("event.fileAdded"),file_deleted:p("event.fileDeleted"),file_renamed:p("event.fileRenamed"),file_copied:p("event.fileCopied"),file_moved:p("event.fileMoved"),folder_added:p("event.folderAdded"),folder_deleted:p("event.folderDeleted"),folder_renamed:p("event.folderRenamed"),node_created:p("event.caseCreated"),node_updated:p("event.caseUpdated")}[d]||d}function qi(d){return{project:p("kind.project"),client:p("kind.client"),document:p("kind.document"),recipe:p("kind.recipe"),folder:p("kind.folder"),note:p("kind.note"),file:p("kind.file"),archive:p("kind.archive"),case:p("kind.case")}[d]||d||p("kind.case")}function Gi(){t(24,Y=!0),t(25,J=""),t(26,K="open_url"),t(27,A="")}function Yi(){t(24,Y=!1),t(25,J=""),t(27,A="")}async function Kt(){if(!(!J.trim()||!A.trim()||!k))try{const d=await x("CreateAction",k.id,K,J.trim(),A.trim());d&&d.id&&t(13,F=[...F,d]),t(24,Y=!1),t(25,J=""),t(27,A="")}catch(d){t(7,_=String(d))}}async function yl(d){try{await x("DeleteAction",d),t(13,F=F.filter(M=>M.id!==d))}catch(M){t(7,_=String(M))}}function Xi(d){const M=H.find(ce=>ce.id===d);return M?M.label:d}async function st(d){try{const M=await x("GetNodeDetail",d);M&&Ee(M)}catch(M){t(7,_=String(M))}}async function Tt(){try{t(52,we=await x("SyncStatus"))}catch{t(52,we={configured:!1,serverUrl:"",deviceId:"",unpushedOps:0,lastSyncAt:"",syncInterval:0})}}function Ji(){t(51,De=!0),t(54,Pe=(we==null?void 0:we.serverUrl)||""),t(55,qe=""),t(56,ke=""),t(57,me=(we==null?void 0:we.syncInterval)||0),t(58,re="")}function Zi(){t(51,De=!1),t(58,re="")}async function Qi(){t(53,Re=!0),t(58,re="");try{await x("SyncConfigure",Pe,qe,ke),me>0&&await x("SyncSetInterval",me),t(56,ke=""),t(55,qe=""),await Tt(),t(51,De=!1)}catch(d){t(58,re="err: "+String(d))}t(53,Re=!1)}async function xi(){t(53,Re=!0),t(58,re="");try{await x("SyncSetInterval",me),t(58,re=p("sync.settingsSaved")),await Tt()}catch(d){t(58,re="err: "+String(d))}t(53,Re=!1)}async function $i(){t(53,Re=!0),t(58,re="");try{await x("SyncTestConnection",Pe,qe,ke),t(58,re="connection ok")}catch(d){t(58,re="connection failed: "+String(d))}t(53,Re=!1)}async function eo(){t(53,Re=!0),t(58,re="");try{await x("SyncDisconnect"),t(58,re="disconnected"),await Tt()}catch(d){t(58,re="err: "+String(d))}t(53,Re=!1)}async function to(){t(53,Re=!0),t(58,re="");try{const d=await x("SyncNow");t(58,re="pushed "+d.pushed+", pulled "+d.pulled+" (seq "+d.serverSequence+")"),await Tt()}catch(d){t(58,re="err: "+String(d))}t(53,Re=!1)}const lo=d=>Ie(d.id),no=()=>t(7,_=""),io=()=>t(7,_="");function oo(){C.content=this.value,t(12,C)}const so=d=>{t(10,S=d.id),d.id==="files"&&k&&ae.length===0&&!ne&&X(k.id)},ro=()=>{t(10,S="notes"),_l()},co=()=>{t(10,S="files"),hl()},ao=()=>t(10,S="worklog"),fo=d=>Ht(d);function uo(){U=this.value,t(23,U)}const mo=d=>d.key==="Enter"&&vl(),po=d=>Ht(d),_o=d=>{const M=d.detail;M===0?(t(35,se=[]),t(34,ne=null),X(k.id)):pt(M-1)},vo=d=>de(d.detail),bo=d=>_t(d.detail),ho=d=>x("OpenFile",d.detail),ko=d=>x("OpenFolder",d.detail),yo=d=>kl(d.detail),go=d=>$t(d.detail.id),wo=d=>wt(d.detail),Co=d=>el(d.detail),So=d=>tl(d.detail),To=d=>il(d.detail),No=d=>nl(d.detail),Do=d=>ol(d.detail),Fo=d=>x("OpenFile",d.detail),Ao=d=>x("RunAction",d.id),Io=d=>yl(d.id);function Mo(){E=this.value,t(16,E)}function Eo(){W=Lt(this.value),t(15,W)}const Lo=d=>st(d.nodeId),jo=(d,M)=>M.key==="Enter"&&st(d.nodeId),Po=d=>st(d.nodeId),Oo=(d,M)=>M.key==="Enter"&&st(d.nodeId),zo=d=>st(d.nodeId),Bo=(d,M)=>M.key==="Enter"&&st(d.nodeId),Ro=d=>st(d.nodeId),Vo=(d,M)=>M.key==="Enter"&&st(d.nodeId),Ho=()=>t(20,B=null),Uo=d=>t(20,B=d);function Wo(){I=this.value,t(18,I)}const Ko=d=>d.key==="Enter"&&ul(),qo=d=>fl(d),Go=()=>dl(z.node),Yo=()=>ml(z.node),Xo=()=>pl(z.node);function Jo(){J=this.value,t(25,J)}const Zo=d=>d.key==="Enter"&&Kt();function Qo(){K=ms(this),t(26,K),t(59,H)}function xo(){A=this.value,t(27,A)}const $o=d=>d.key==="Enter"&&Kt(),es=()=>Wt("copy"),ts=()=>Wt("link");function ls(){fe=this.value,t(49,fe)}function ns(){Pe=this.value,t(54,Pe)}function is(){qe=this.value,t(55,qe)}function os(){ke=this.value,t(56,ke)}function ss(){me=Lt(this.value),t(57,me)}return[n,o,s,r,a,v,b,_,h,k,S,T,C,F,D,W,E,L,I,R,B,z,V,U,Y,J,K,A,Z,G,ye,te,Q,ie,ne,se,ae,Le,Be,Ze,je,ve,le,Fe,Qe,xe,We,Se,Te,fe,he,De,we,Re,Pe,qe,ke,me,re,H,Ae,Ie,Ee,X,de,$e,pt,_t,vt,Ge,wt,$t,el,tl,ll,nl,il,ol,yi,gi,wi,cl,Ti,Ni,Di,Fi,fl,Ai,Ii,ul,Mi,St,Ei,Li,ji,dl,ml,pl,_l,Pi,vl,Ht,Oi,zi,Bi,Ri,hl,Vi,Wt,Hi,kl,Wi,Ki,qi,Gi,Yi,Kt,yl,Xi,st,Ji,Zi,Qi,xi,$i,eo,to,lo,no,io,oo,so,ro,co,ao,fo,uo,mo,po,_o,vo,bo,ho,ko,yo,go,wo,Co,So,To,No,Do,Fo,Ao,Io,Mo,Eo,Lo,jo,Po,Oo,zo,Bo,Ro,Vo,Ho,Uo,Wo,Ko,qo,Go,Yo,Xo,Jo,Zo,Qo,xo,$o,es,ts,ls,ns,is,os,ss]}class Fc extends ft{constructor(e){super(),at(this,e,Dc,Tc,ct,{},null,[-1,-1,-1,-1,-1,-1,-1,-1,-1])}}new Fc({target:document.getElementById("app")}); diff --git a/cmd/verstak-gui/frontend-dist/index.html b/cmd/verstak-gui/frontend-dist/index.html index bb7001d..d8630b8 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 dbc2ae9..9422883 100644 --- a/frontend/src/App.svelte +++ b/frontend/src/App.svelte @@ -195,9 +195,6 @@ files = [] actions = [] worklog = [] - treeItems = [] - expanded = {} - childrenMap = {} fileItems = [] folderStack = [] currentFolderId = null @@ -696,7 +693,24 @@ if (!draggedId || !targetId || draggedId === targetId) return try { const moved = await wailsCall('MoveNode', draggedId, targetId) - workspaceTree = await wailsCall('ListWorkspaceTree') || [] + await reloadTreePreservingExpanded() + const refreshed = await wailsCall('GetNodeDetail', draggedId) + if (refreshed) { + selectedSection = '' + selectNode(refreshed) + } + } catch (e) { error = String(e) } + } + + async function handleDropRoot(e) { + e.preventDefault() + try { + const draggedId = e.dataTransfer.getData('text/plain') + if (!draggedId) return + const detail = await wailsCall('GetNodeDetail', draggedId) + if (!detail || !detail.parent_id) return + await wailsCall('MoveNode', draggedId, '') + await reloadTreePreservingExpanded() const refreshed = await wailsCall('GetNodeDetail', draggedId) if (refreshed) { selectedSection = '' @@ -710,23 +724,6 @@ e.dataTransfer.dropEffect = 'move' } - async function handleDropRoot(e) { - e.preventDefault() - try { - const draggedId = e.dataTransfer.getData('text/plain') - if (!draggedId) return - const detail = await wailsCall('GetNodeDetail', draggedId) - if (!detail || !detail.parent_id) return - await wailsCall('MoveNode', draggedId, '') - workspaceTree = await wailsCall('ListWorkspaceTree') || [] - const refreshed = await wailsCall('GetNodeDetail', draggedId) - if (refreshed) { - selectedSection = '' - selectNode(refreshed) - } - } catch (e) { error = String(e) } - } - // ===== Node operations from context menu ===== function openRenameForNode(node) { openRename(node.id, node.title) @@ -743,7 +740,7 @@ onConfirm: async () => { try { await wailsCall('DeleteNode', node.id) - workspaceTree = await wailsCall('ListWorkspaceTree') || workspaceTree + await reloadTreePreservingExpanded() if (selectedNode && selectedNode.id === node.id) { selectedNode = null } @@ -759,6 +756,17 @@ } catch (e) { error = String(e) } } + async function reloadTreePreservingExpanded() { + workspaceTree = await wailsCall('ListWorkspaceTree') || [] + for (const nodeId of Object.keys(expanded)) { + if (expanded[nodeId]) { + const children = await wailsCall('ListWorkspaceChildren', nodeId) || [] + setNodeChildren(workspaceTree, nodeId, children) + } + } + workspaceTree = [...workspaceTree] + } + // ===== Notes ===== function openCreateNote() { showCreateNote = true; newNoteTitle = '' } function cancelCreateNote() { showCreateNote = false; newNoteTitle = '' } diff --git a/frontend/src/TreeNode.svelte b/frontend/src/TreeNode.svelte index 03d3df0..03c48f4 100644 --- a/frontend/src/TreeNode.svelte +++ b/frontend/src/TreeNode.svelte @@ -13,6 +13,8 @@ let autoExpandTimers = {} let scrollInterval = null + const CONTAINER_TYPES = ['folder', 'project', 'client', 'document', 'recipe', 'case'] + function iconKind(node) { if (node.type === 'client' || node.template_id === 'client.default') return 'client' if (node.type === 'project' || node.template_id === 'project.default') return 'project' @@ -26,13 +28,20 @@ } function isContainer(node) { - return ['folder', 'project', 'client', 'document', 'recipe', 'case'].includes(node.type) + return CONTAINER_TYPES.includes(node.type) } function hasLoadedChildren(node) { return node.children !== undefined } + function shouldShowToggle(node) { + if (hasLoadedChildren(node)) { + return node.children.length > 0 + } + return node.has_children === true + } + function canDrop(target, draggedId) { if (!target || !draggedId) return false if (draggedId === target.id) return false @@ -66,36 +75,33 @@ e.preventDefault() e.stopPropagation() e.dataTransfer.dropEffect = 'move' - e.currentTarget.classList.add('drag-over') - if (isContainer(node) && !expanded[node.id] && !autoExpandTimers[node.id]) { + e.currentTarget.classList.add('drop-valid') + if (shouldShowToggle(node) && !expanded[node.id] && !autoExpandTimers[node.id]) { autoExpandTimers[node.id] = setTimeout(() => { if (onToggle) onToggle(node.id) delete autoExpandTimers[node.id] }, 500) } - const rect = e.currentTarget.closest('.workspace-tree-area') || document.querySelector('.workspace-tree-area') - if (rect) { - const areaRect = rect.getBoundingClientRect() + const area = e.currentTarget.closest('.workspace-tree-area') + if (area) { + const areaRect = area.getBoundingClientRect() const threshold = 30 if (e.clientY - areaRect.top < threshold) { - if (!scrollInterval) { - scrollInterval = setInterval(() => { rect.scrollTop -= 10 }, 50) - } + if (!scrollInterval) scrollInterval = setInterval(() => { area.scrollTop -= 10 }, 50) } else if (areaRect.bottom - e.clientY < threshold) { - if (!scrollInterval) { - scrollInterval = setInterval(() => { rect.scrollTop += 10 }, 50) - } + if (!scrollInterval) scrollInterval = setInterval(() => { area.scrollTop += 10 }, 50) } else { if (scrollInterval) { clearInterval(scrollInterval); scrollInterval = null } } } } - function handleDragLeave(e, node) { - e.currentTarget.classList.remove('drag-over') - if (autoExpandTimers[node.id]) { - clearTimeout(autoExpandTimers[node.id]) - delete autoExpandTimers[node.id] + function handleDragLeave(e) { + e.currentTarget.classList.remove('drop-valid') + const nodeId = e.currentTarget.dataset.nodeId + if (nodeId && autoExpandTimers[nodeId]) { + clearTimeout(autoExpandTimers[nodeId]) + delete autoExpandTimers[nodeId] } if (scrollInterval) { clearInterval(scrollInterval); scrollInterval = null } } @@ -103,7 +109,7 @@ function handleDrop(e, node) { e.preventDefault() e.stopPropagation() - e.currentTarget.classList.remove('drag-over') + e.currentTarget.classList.remove('drop-valid') if (autoExpandTimers[node.id]) { clearTimeout(autoExpandTimers[node.id]) delete autoExpandTimers[node.id] @@ -115,19 +121,17 @@ } function handleRowClick(e, node) { - const toggleEl = e.target.closest('.tree-toggle') - const iconEl = e.target.closest('.tree-icon') - if (toggleEl || iconEl) return + if (e.target.closest('.tree-toggle') || e.target.closest('.tree-icon')) return if (onSelect) onSelect(node) } function handleRowDblClick(e, node) { - if (isContainer(node) && onToggle) onToggle(node.id) + if (shouldShowToggle(node) && onToggle) onToggle(node.id) } function handleIconClick(e, node) { e.stopPropagation() - if (isContainer(node) && onToggle) onToggle(node.id) + if (shouldShowToggle(node) && onToggle) onToggle(node.id) } @@ -143,7 +147,7 @@ on:click={(e) => handleRowClick(e, node)} on:dblclick={(e) => handleRowDblClick(e, node)} on:contextmenu|preventDefault={(e) => onContextMenu && onContextMenu(e, node)}> - {#if isContainer(node)} + {#if shouldShowToggle(node)} @@ -182,7 +186,7 @@ color: #fff; font-weight: 500; } - .tree-item.drag-over { + .tree-item.drop-valid { background: #1a3a1a; outline: 1px solid #4ade80; outline-offset: -1px; diff --git a/internal/core/nodes/repository.go b/internal/core/nodes/repository.go index f0b0ca9..eabef50 100644 --- a/internal/core/nodes/repository.go +++ b/internal/core/nodes/repository.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "path/filepath" + "strings" "time" "verstak/internal/core/storage" @@ -168,6 +169,22 @@ func (r *Repository) ListRoots(includeDeleted bool) ([]Node, error) { return scanNodes(rows) } +// CountChildren returns the number of non-deleted children for a parent, +// optionally filtered by one or more types. +func (r *Repository) CountChildren(parentID string, types ...string) (int, error) { + q := `SELECT COUNT(*) FROM nodes WHERE parent_id = ? AND deleted_at IS NULL` + args := []interface{}{parentID} + if len(types) > 0 { + q += " AND type IN (" + strings.Repeat("?,", len(types)-1) + "?)" + for _, t := range types { + args = append(args, t) + } + } + var count int + err := r.db.QueryRow(q, args...).Scan(&count) + return count, err +} + // ListByParent returns children as *Node pointers. parentID must not be empty. func (r *Repository) ListByParent(parentID string) ([]*Node, error) { rows, err := r.db.Query(