diff --git a/cmd/verstak-gui/frontend-dist/assets/main-5x3eoU2l.css b/cmd/verstak-gui/frontend-dist/assets/main-5x3eoU2l.css
new file mode 100644
index 0000000..d024ec2
--- /dev/null
+++ b/cmd/verstak-gui/frontend-dist/assets/main-5x3eoU2l.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}.svelte-xaaokk.svelte-xaaokk,.svelte-xaaokk.svelte-xaaokk:before,.svelte-xaaokk.svelte-xaaokk:after{box-sizing:border-box;margin:0;padding:0}.app.svelte-xaaokk.svelte-xaaokk{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-xaaokk.svelte-xaaokk{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-xaaokk.svelte-xaaokk{padding:16px 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #2a2a3c;flex-shrink:0}.logo.svelte-xaaokk.svelte-xaaokk{font-size:20px;line-height:1}.brand-name.svelte-xaaokk.svelte-xaaokk{font-size:16px;font-weight:600}.sidebar-nav.svelte-xaaokk.svelte-xaaokk{flex:1;overflow-y:auto;padding:12px 0}.nav-group.svelte-xaaokk.svelte-xaaokk{margin-bottom:16px}.nav-label.svelte-xaaokk.svelte-xaaokk{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666;padding:4px 20px;margin-bottom:4px}.nav-item.svelte-xaaokk.svelte-xaaokk{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-xaaokk.svelte-xaaokk:hover{background:#223}.nav-item.selected.svelte-xaaokk.svelte-xaaokk{background:#2a2a4a;color:#fff;font-weight:500}.nav-empty.svelte-xaaokk.svelte-xaaokk{padding:8px 20px;color:#555;font-size:12px}.sidebar-footer.svelte-xaaokk.svelte-xaaokk{padding:12px 20px;border-top:1px solid #2a2a3c;flex-shrink:0}.version.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#555}.main.svelte-xaaokk.svelte-xaaokk{flex:1;display:flex;flex-direction:column;height:100vh;min-width:0;overflow:hidden;background:#13131f}.header.svelte-xaaokk.svelte-xaaokk{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;flex-shrink:0;min-height:48px}.crumb.svelte-xaaokk.svelte-xaaokk{font-size:14px;font-weight:500}.crumb.placeholder.svelte-xaaokk.svelte-xaaokk{color:#666}.crumb-type.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#555;background:#1e1e2e;padding:2px 8px;border-radius:10px;margin-left:8px}.error-banner.svelte-xaaokk.svelte-xaaokk{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-xaaokk.svelte-xaaokk{background:none;border:none;color:#f66;cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:2px}.dismiss-btn.svelte-xaaokk.svelte-xaaokk:hover{color:#f44}.tabs.svelte-xaaokk.svelte-xaaokk{display:flex;border-bottom:1px solid #2a2a3c;flex-shrink:0;padding:0 24px}.tab.svelte-xaaokk.svelte-xaaokk{padding:10px 16px;border:none;background:none;color:#888;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;font-family:inherit}.tab.svelte-xaaokk.svelte-xaaokk:hover{color:#ccc}.tab.active.svelte-xaaokk.svelte-xaaokk{color:#e4e4ef;border-bottom-color:#6366f1}.tab-content.svelte-xaaokk.svelte-xaaokk{flex:1;overflow-y:auto}.note-editor.svelte-xaaokk.svelte-xaaokk{flex:1;display:flex;flex-direction:column;height:100%}.note-editor-header.svelte-xaaokk.svelte-xaaokk{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;gap:12px;flex-shrink:0}.note-title.svelte-xaaokk.svelte-xaaokk{font-size:16px;font-weight:500}.dirty-mark.svelte-xaaokk.svelte-xaaokk{color:#f59e0b;font-size:10px}.note-editor-actions.svelte-xaaokk.svelte-xaaokk{margin-left:auto;display:flex;gap:8px}.note-textarea.svelte-xaaokk.svelte-xaaokk{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-xaaokk.svelte-xaaokk{padding:24px}.overview.svelte-xaaokk h2.svelte-xaaokk{font-size:24px;margin-bottom:16px}.meta-grid.svelte-xaaokk.svelte-xaaokk{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}.meta-item.svelte-xaaokk.svelte-xaaokk{background:#1a1a28;padding:12px 16px;border-radius:8px}.meta-label.svelte-xaaokk.svelte-xaaokk{display:block;font-size:11px;color:#666;margin-bottom:4px;text-transform:uppercase}.quick-actions.svelte-xaaokk.svelte-xaaokk{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.qa-btn.svelte-xaaokk.svelte-xaaokk{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-xaaokk.svelte-xaaokk:hover{background:#223}.qa-btn.svelte-xaaokk.svelte-xaaokk:disabled{opacity:.4;cursor:not-allowed}.recent-section.svelte-xaaokk.svelte-xaaokk{margin-bottom:24px}.recent-section.svelte-xaaokk h3.svelte-xaaokk{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:8px}.recent-note.svelte-xaaokk.svelte-xaaokk{padding:8px 12px;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between}.recent-note.svelte-xaaokk.svelte-xaaokk:hover{background:#1a1a28}.recent-date.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#555}.recent-entry.svelte-xaaokk.svelte-xaaokk{padding:6px 0;font-size:13px;color:#888;border-bottom:1px solid #1a1a28}.notes-tab.svelte-xaaokk.svelte-xaaokk{padding:24px}.tab-toolbar.svelte-xaaokk.svelte-xaaokk{margin-bottom:16px}.create-form.svelte-xaaokk.svelte-xaaokk{background:#1a1a28;padding:16px;border-radius:8px;margin-bottom:16px}.create-form.svelte-xaaokk input.svelte-xaaokk{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-xaaokk input.svelte-xaaokk:focus{outline:none;border-color:#6366f1}.form-actions.svelte-xaaokk.svelte-xaaokk{display:flex;gap:8px}.notes-list.svelte-xaaokk.svelte-xaaokk{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.note-card.svelte-xaaokk.svelte-xaaokk{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:16px;cursor:pointer}.note-card.svelte-xaaokk.svelte-xaaokk:hover{border-color:#3a3a5c}.note-card-title.svelte-xaaokk.svelte-xaaokk{font-size:14px;font-weight:500;margin-bottom:4px}.note-card-date.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#555}.worklog-tab.svelte-xaaokk.svelte-xaaokk{padding:24px}.worklog-form.svelte-xaaokk.svelte-xaaokk{display:flex;gap:8px;margin-bottom:24px;align-items:center}.worklog-form.svelte-xaaokk input.svelte-xaaokk{padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit}.worklog-form.svelte-xaaokk input.svelte-xaaokk:focus{outline:none;border-color:#6366f1}.worklog-form.svelte-xaaokk input[type=text].svelte-xaaokk{flex:1}.worklog-form.svelte-xaaokk input[type=number].svelte-xaaokk{width:70px}.worklog-entry.svelte-xaaokk.svelte-xaaokk{padding:12px 0;border-bottom:1px solid #1a1a28}.wl-meta.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#555;margin-top:2px}.action-card.svelte-xaaokk.svelte-xaaokk{background:#1a1a28;padding:12px 16px;border-radius:8px;display:flex;align-items:center;gap:12px;margin-bottom:8px}.action-type.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px}.empty-state.svelte-xaaokk.svelte-xaaokk{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-state.svelte-xaaokk p.svelte-xaaokk{margin:0;font-size:14px;color:#666}.empty-state.svelte-xaaokk .empty-icon.svelte-xaaokk{margin-bottom:12px;color:#444}.empty-state.svelte-xaaokk .hint.svelte-xaaokk{font-size:12px;color:#555;margin-top:6px}.empty-state.svelte-xaaokk .empty-actions.svelte-xaaokk{display:flex;gap:8px;justify-content:center;margin-top:16px}.empty-note.svelte-xaaokk.svelte-xaaokk{font-size:12px;color:#444;margin-top:16px}.welcome.svelte-xaaokk.svelte-xaaokk{padding:48px 24px;text-align:center}.welcome.svelte-xaaokk h2.svelte-xaaokk{font-size:32px;font-weight:300;color:#8888a4;margin-bottom:16px}.welcome.svelte-xaaokk p.svelte-xaaokk{color:#666;font-size:14px}.error-text.svelte-xaaokk.svelte-xaaokk{color:#f88}.fab.svelte-xaaokk.svelte-xaaokk{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-xaaokk.svelte-xaaokk:hover{background:#4f46e5}.modal-overlay.svelte-xaaokk.svelte-xaaokk{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-xaaokk.svelte-xaaokk{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;padding:24px;width:400px;max-width:90vw}.modal.svelte-xaaokk h3.svelte-xaaokk{font-size:18px;margin-bottom:16px}.form-group.svelte-xaaokk.svelte-xaaokk{margin-bottom:12px}.form-group.svelte-xaaokk label.svelte-xaaokk{display:block;font-size:12px;color:#666;margin-bottom:4px}.form-group.svelte-xaaokk input.svelte-xaaokk,.form-group.svelte-xaaokk select.svelte-xaaokk{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-xaaokk select.svelte-xaaokk{-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-xaaokk input.svelte-xaaokk:focus,.form-group.svelte-xaaokk select.svelte-xaaokk:focus{outline:none;border-color:#6366f1}.modal-actions.svelte-xaaokk.svelte-xaaokk{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.btn.svelte-xaaokk.svelte-xaaokk{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit}.btn.svelte-xaaokk.svelte-xaaokk:hover{background:#223}.btn-primary.svelte-xaaokk.svelte-xaaokk{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-xaaokk.svelte-xaaokk:hover{background:#4f46e5}.btn.svelte-xaaokk.svelte-xaaokk:disabled{opacity:.4;cursor:not-allowed}.btn-sm.svelte-xaaokk.svelte-xaaokk{padding:4px 10px;font-size:12px}.btn-danger.svelte-xaaokk.svelte-xaaokk{color:#ff6b6b;border-color:#4a2222}.btn-danger.svelte-xaaokk.svelte-xaaokk:hover{background:#3a2222}.files-tab.svelte-xaaokk.svelte-xaaokk{padding:20px}.files-tab.svelte-xaaokk .tab-toolbar.svelte-xaaokk{display:flex;gap:8px;align-items:center;margin-bottom:16px}.file-list.svelte-xaaokk.svelte-xaaokk{display:flex;flex-direction:column}.back-btn.svelte-xaaokk.svelte-xaaokk{margin-bottom:4px;display:inline-flex;align-items:center;gap:4px}.import-summary.svelte-xaaokk.svelte-xaaokk{margin-bottom:16px}.summary-row.svelte-xaaokk.svelte-xaaokk{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;border-bottom:1px solid #2a2a3c}.summary-warn.svelte-xaaokk.svelte-xaaokk{margin-top:8px;padding:8px 12px;background:#3a2a22;border-radius:6px;color:#fa6;font-size:13px}.rename-error.svelte-xaaokk.svelte-xaaokk{color:#ff6b6b;font-size:12px;margin-top:4px}.today-dashboard.svelte-xaaokk.svelte-xaaokk{padding:24px;overflow-y:auto;flex:1}.today-header.svelte-xaaokk.svelte-xaaokk{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.today-header.svelte-xaaokk h2.svelte-xaaokk{font-size:24px}.today-date.svelte-xaaokk.svelte-xaaokk{font-size:13px;color:#666}.today-summary.svelte-xaaokk.svelte-xaaokk{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.summary-chip.svelte-xaaokk.svelte-xaaokk{font-size:12px;color:#b0b0c0;background:#1a1a28;border:1px solid #2a2a3c;padding:4px 12px;border-radius:16px}.today-case.svelte-xaaokk.svelte-xaaokk{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;margin-bottom:12px;overflow:hidden}.today-case-header.svelte-xaaokk.svelte-xaaokk{padding:12px 16px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #2a2a3c;cursor:pointer}.today-case-header.svelte-xaaokk.svelte-xaaokk:hover{background:#1e1e30}.today-case-title.svelte-xaaokk.svelte-xaaokk{font-weight:500}.today-case-type.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px}.today-case-count.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#6366f1;margin-left:4px}.today-case-time.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#555;margin-left:auto}.today-events.svelte-xaaokk.svelte-xaaokk{padding:8px 16px}.today-event.svelte-xaaokk.svelte-xaaokk{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:#b0b0c0;cursor:pointer}.today-event.svelte-xaaokk.svelte-xaaokk:hover{color:#e4e4ef}.today-event-icon.svelte-xaaokk.svelte-xaaokk{width:18px;text-align:center;color:#6366f1;font-size:13px}.today-event-title.svelte-xaaokk.svelte-xaaokk{flex:1}.today-event-type.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#666}.today-event-time.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#555;margin-left:auto}.today-events-empty.svelte-xaaokk.svelte-xaaokk{padding:8px 16px;font-size:13px;color:#666;font-style:italic}.today-empty.svelte-xaaokk.svelte-xaaokk{padding:48px 24px;text-align:center}.today-empty.svelte-xaaokk p.svelte-xaaokk{color:#666;font-size:14px;margin:0}.today-empty.svelte-xaaokk .hint.svelte-xaaokk{font-size:12px;color:#555;margin-top:8px}.today-timeline.svelte-xaaokk.svelte-xaaokk{margin-top:24px}.today-timeline.svelte-xaaokk h3.svelte-xaaokk{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:12px}.timeline-event.svelte-xaaokk.svelte-xaaokk{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-xaaokk.svelte-xaaokk:hover{color:#e4e4ef}.timeline-dot.svelte-xaaokk.svelte-xaaokk{width:6px;height:6px;border-radius:50%;background:#6366f1;margin-left:-19px;flex-shrink:0}.timeline-title.svelte-xaaokk.svelte-xaaokk{flex:1}.timeline-type.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#666}.timeline-time.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#555}.activity-tab.svelte-xaaokk.svelte-xaaokk{padding:24px}.activity-events.svelte-xaaokk.svelte-xaaokk{display:flex;flex-direction:column;gap:2px}.activity-event.svelte-xaaokk.svelte-xaaokk{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;color:#b0b0c0;cursor:pointer}.activity-event.svelte-xaaokk.svelte-xaaokk:hover{background:#1a1a28;color:#e4e4ef}.activity-event-icon.svelte-xaaokk.svelte-xaaokk{width:18px;text-align:center;color:#6366f1;font-size:13px;flex-shrink:0}.activity-event-title.svelte-xaaokk.svelte-xaaokk{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-event-type.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#666;flex-shrink:0}.activity-event-target.svelte-xaaokk.svelte-xaaokk{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px;flex-shrink:0}.activity-event-time.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#555;margin-left:8px;flex-shrink:0}.activity-feed.svelte-xaaokk.svelte-xaaokk{padding:24px;overflow-y:auto;flex:1}.activity-feed-header.svelte-xaaokk.svelte-xaaokk{margin-bottom:20px}.activity-feed-header.svelte-xaaokk h2.svelte-xaaokk{font-size:24px}.activity-feed-events.svelte-xaaokk.svelte-xaaokk{display:flex;flex-direction:column;gap:2px}.activity-feed-event.svelte-xaaokk.svelte-xaaokk{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer}.activity-feed-event.svelte-xaaokk.svelte-xaaokk:hover{background:#1a1a28;color:#e4e4ef}.activity-feed-icon.svelte-xaaokk.svelte-xaaokk{width:20px;text-align:center;color:#6366f1;font-size:14px;flex-shrink:0;margin-top:1px}.activity-feed-body.svelte-xaaokk.svelte-xaaokk{flex:1;min-width:0}.activity-feed-title.svelte-xaaokk.svelte-xaaokk{font-size:14px;color:#e4e4ef}.activity-feed-meta.svelte-xaaokk.svelte-xaaokk{display:flex;align-items:center;gap:8px;margin-top:2px}.activity-feed-type.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#666}.activity-feed-target.svelte-xaaokk.svelte-xaaokk{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px}.activity-feed-time.svelte-xaaokk.svelte-xaaokk{font-size:11px;color:#555}
diff --git a/cmd/verstak-gui/frontend-dist/assets/main-D2H3H_wv.css b/cmd/verstak-gui/frontend-dist/assets/main-D2H3H_wv.css
deleted file mode 100644
index 15a5604..0000000
--- a/cmd/verstak-gui/frontend-dist/assets/main-D2H3H_wv.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}.svelte-1ltnnkq.svelte-1ltnnkq,.svelte-1ltnnkq.svelte-1ltnnkq:before,.svelte-1ltnnkq.svelte-1ltnnkq:after{box-sizing:border-box;margin:0;padding:0}.app.svelte-1ltnnkq.svelte-1ltnnkq{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-1ltnnkq.svelte-1ltnnkq{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-1ltnnkq.svelte-1ltnnkq{padding:16px 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #2a2a3c;flex-shrink:0}.logo.svelte-1ltnnkq.svelte-1ltnnkq{font-size:20px;line-height:1}.brand-name.svelte-1ltnnkq.svelte-1ltnnkq{font-size:16px;font-weight:600}.sidebar-nav.svelte-1ltnnkq.svelte-1ltnnkq{flex:1;overflow-y:auto;padding:12px 0}.nav-group.svelte-1ltnnkq.svelte-1ltnnkq{margin-bottom:16px}.nav-label.svelte-1ltnnkq.svelte-1ltnnkq{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666;padding:4px 20px;margin-bottom:4px}.nav-item.svelte-1ltnnkq.svelte-1ltnnkq{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-1ltnnkq.svelte-1ltnnkq:hover{background:#223}.nav-item.selected.svelte-1ltnnkq.svelte-1ltnnkq{background:#2a2a4a;color:#fff;font-weight:500}.nav-empty.svelte-1ltnnkq.svelte-1ltnnkq{padding:8px 20px;color:#555;font-size:12px}.sidebar-footer.svelte-1ltnnkq.svelte-1ltnnkq{padding:12px 20px;border-top:1px solid #2a2a3c;flex-shrink:0}.version.svelte-1ltnnkq.svelte-1ltnnkq{font-size:11px;color:#555}.main.svelte-1ltnnkq.svelte-1ltnnkq{flex:1;display:flex;flex-direction:column;height:100vh;min-width:0;overflow:hidden;background:#13131f}.header.svelte-1ltnnkq.svelte-1ltnnkq{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;flex-shrink:0;min-height:48px}.crumb.svelte-1ltnnkq.svelte-1ltnnkq{font-size:14px;font-weight:500}.crumb.placeholder.svelte-1ltnnkq.svelte-1ltnnkq{color:#666}.crumb-type.svelte-1ltnnkq.svelte-1ltnnkq{font-size:11px;color:#555;background:#1e1e2e;padding:2px 8px;border-radius:10px;margin-left:8px}.error-banner.svelte-1ltnnkq.svelte-1ltnnkq{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-1ltnnkq.svelte-1ltnnkq{background:none;border:none;color:#f66;cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:2px}.dismiss-btn.svelte-1ltnnkq.svelte-1ltnnkq:hover{color:#f44}.tabs.svelte-1ltnnkq.svelte-1ltnnkq{display:flex;border-bottom:1px solid #2a2a3c;flex-shrink:0;padding:0 24px}.tab.svelte-1ltnnkq.svelte-1ltnnkq{padding:10px 16px;border:none;background:none;color:#888;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;font-family:inherit}.tab.svelte-1ltnnkq.svelte-1ltnnkq:hover{color:#ccc}.tab.active.svelte-1ltnnkq.svelte-1ltnnkq{color:#e4e4ef;border-bottom-color:#6366f1}.tab-content.svelte-1ltnnkq.svelte-1ltnnkq{flex:1;overflow-y:auto}.note-editor.svelte-1ltnnkq.svelte-1ltnnkq{flex:1;display:flex;flex-direction:column;height:100%}.note-editor-header.svelte-1ltnnkq.svelte-1ltnnkq{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;gap:12px;flex-shrink:0}.note-title.svelte-1ltnnkq.svelte-1ltnnkq{font-size:16px;font-weight:500}.dirty-mark.svelte-1ltnnkq.svelte-1ltnnkq{color:#f59e0b;font-size:10px}.note-editor-actions.svelte-1ltnnkq.svelte-1ltnnkq{margin-left:auto;display:flex;gap:8px}.note-textarea.svelte-1ltnnkq.svelte-1ltnnkq{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-1ltnnkq.svelte-1ltnnkq{padding:24px}.overview.svelte-1ltnnkq h2.svelte-1ltnnkq{font-size:24px;margin-bottom:16px}.meta-grid.svelte-1ltnnkq.svelte-1ltnnkq{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}.meta-item.svelte-1ltnnkq.svelte-1ltnnkq{background:#1a1a28;padding:12px 16px;border-radius:8px}.meta-label.svelte-1ltnnkq.svelte-1ltnnkq{display:block;font-size:11px;color:#666;margin-bottom:4px;text-transform:uppercase}.quick-actions.svelte-1ltnnkq.svelte-1ltnnkq{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.qa-btn.svelte-1ltnnkq.svelte-1ltnnkq{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-1ltnnkq.svelte-1ltnnkq:hover{background:#223}.qa-btn.svelte-1ltnnkq.svelte-1ltnnkq:disabled{opacity:.4;cursor:not-allowed}.recent-section.svelte-1ltnnkq.svelte-1ltnnkq{margin-bottom:24px}.recent-section.svelte-1ltnnkq h3.svelte-1ltnnkq{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:8px}.recent-note.svelte-1ltnnkq.svelte-1ltnnkq{padding:8px 12px;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between}.recent-note.svelte-1ltnnkq.svelte-1ltnnkq:hover{background:#1a1a28}.recent-date.svelte-1ltnnkq.svelte-1ltnnkq{font-size:11px;color:#555}.recent-entry.svelte-1ltnnkq.svelte-1ltnnkq{padding:6px 0;font-size:13px;color:#888;border-bottom:1px solid #1a1a28}.notes-tab.svelte-1ltnnkq.svelte-1ltnnkq{padding:24px}.tab-toolbar.svelte-1ltnnkq.svelte-1ltnnkq{margin-bottom:16px}.create-form.svelte-1ltnnkq.svelte-1ltnnkq{background:#1a1a28;padding:16px;border-radius:8px;margin-bottom:16px}.create-form.svelte-1ltnnkq input.svelte-1ltnnkq{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-1ltnnkq input.svelte-1ltnnkq:focus{outline:none;border-color:#6366f1}.form-actions.svelte-1ltnnkq.svelte-1ltnnkq{display:flex;gap:8px}.notes-list.svelte-1ltnnkq.svelte-1ltnnkq{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.note-card.svelte-1ltnnkq.svelte-1ltnnkq{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:16px;cursor:pointer}.note-card.svelte-1ltnnkq.svelte-1ltnnkq:hover{border-color:#3a3a5c}.note-card-title.svelte-1ltnnkq.svelte-1ltnnkq{font-size:14px;font-weight:500;margin-bottom:4px}.note-card-date.svelte-1ltnnkq.svelte-1ltnnkq{font-size:11px;color:#555}.worklog-tab.svelte-1ltnnkq.svelte-1ltnnkq{padding:24px}.worklog-form.svelte-1ltnnkq.svelte-1ltnnkq{display:flex;gap:8px;margin-bottom:24px;align-items:center}.worklog-form.svelte-1ltnnkq input.svelte-1ltnnkq{padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit}.worklog-form.svelte-1ltnnkq input.svelte-1ltnnkq:focus{outline:none;border-color:#6366f1}.worklog-form.svelte-1ltnnkq input[type=text].svelte-1ltnnkq{flex:1}.worklog-form.svelte-1ltnnkq input[type=number].svelte-1ltnnkq{width:70px}.worklog-entry.svelte-1ltnnkq.svelte-1ltnnkq{padding:12px 0;border-bottom:1px solid #1a1a28}.wl-meta.svelte-1ltnnkq.svelte-1ltnnkq{font-size:11px;color:#555;margin-top:2px}.action-card.svelte-1ltnnkq.svelte-1ltnnkq{background:#1a1a28;padding:12px 16px;border-radius:8px;display:flex;align-items:center;gap:12px;margin-bottom:8px}.action-type.svelte-1ltnnkq.svelte-1ltnnkq{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px}.empty-state.svelte-1ltnnkq.svelte-1ltnnkq{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-state.svelte-1ltnnkq p.svelte-1ltnnkq{margin:0;font-size:14px;color:#666}.empty-state.svelte-1ltnnkq .empty-icon.svelte-1ltnnkq{margin-bottom:12px;color:#444}.empty-state.svelte-1ltnnkq .hint.svelte-1ltnnkq{font-size:12px;color:#555;margin-top:6px}.empty-state.svelte-1ltnnkq .empty-actions.svelte-1ltnnkq{display:flex;gap:8px;justify-content:center;margin-top:16px}.empty-note.svelte-1ltnnkq.svelte-1ltnnkq{font-size:12px;color:#444;margin-top:16px}.welcome.svelte-1ltnnkq.svelte-1ltnnkq{padding:48px 24px;text-align:center}.welcome.svelte-1ltnnkq h2.svelte-1ltnnkq{font-size:32px;font-weight:300;color:#8888a4;margin-bottom:16px}.welcome.svelte-1ltnnkq p.svelte-1ltnnkq{color:#666;font-size:14px}.error-text.svelte-1ltnnkq.svelte-1ltnnkq{color:#f88}.fab.svelte-1ltnnkq.svelte-1ltnnkq{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-1ltnnkq.svelte-1ltnnkq:hover{background:#4f46e5}.modal-overlay.svelte-1ltnnkq.svelte-1ltnnkq{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-1ltnnkq.svelte-1ltnnkq{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;padding:24px;width:400px;max-width:90vw}.modal.svelte-1ltnnkq h3.svelte-1ltnnkq{font-size:18px;margin-bottom:16px}.form-group.svelte-1ltnnkq.svelte-1ltnnkq{margin-bottom:12px}.form-group.svelte-1ltnnkq label.svelte-1ltnnkq{display:block;font-size:12px;color:#666;margin-bottom:4px}.form-group.svelte-1ltnnkq input.svelte-1ltnnkq,.form-group.svelte-1ltnnkq select.svelte-1ltnnkq{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-1ltnnkq select.svelte-1ltnnkq{-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-1ltnnkq input.svelte-1ltnnkq:focus,.form-group.svelte-1ltnnkq select.svelte-1ltnnkq:focus{outline:none;border-color:#6366f1}.modal-actions.svelte-1ltnnkq.svelte-1ltnnkq{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.btn.svelte-1ltnnkq.svelte-1ltnnkq{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit}.btn.svelte-1ltnnkq.svelte-1ltnnkq:hover{background:#223}.btn-primary.svelte-1ltnnkq.svelte-1ltnnkq{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-1ltnnkq.svelte-1ltnnkq:hover{background:#4f46e5}.btn.svelte-1ltnnkq.svelte-1ltnnkq:disabled{opacity:.4;cursor:not-allowed}.btn-sm.svelte-1ltnnkq.svelte-1ltnnkq{padding:4px 10px;font-size:12px}.btn-danger.svelte-1ltnnkq.svelte-1ltnnkq{color:#ff6b6b;border-color:#4a2222}.btn-danger.svelte-1ltnnkq.svelte-1ltnnkq:hover{background:#3a2222}.files-tab.svelte-1ltnnkq.svelte-1ltnnkq{padding:20px}.files-tab.svelte-1ltnnkq .tab-toolbar.svelte-1ltnnkq{display:flex;gap:8px;align-items:center;margin-bottom:16px}.file-list.svelte-1ltnnkq.svelte-1ltnnkq{display:flex;flex-direction:column}.back-btn.svelte-1ltnnkq.svelte-1ltnnkq{margin-bottom:4px;display:inline-flex;align-items:center;gap:4px}.import-summary.svelte-1ltnnkq.svelte-1ltnnkq{margin-bottom:16px}.summary-row.svelte-1ltnnkq.svelte-1ltnnkq{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;border-bottom:1px solid #2a2a3c}.summary-warn.svelte-1ltnnkq.svelte-1ltnnkq{margin-top:8px;padding:8px 12px;background:#3a2a22;border-radius:6px;color:#fa6;font-size:13px}.rename-error.svelte-1ltnnkq.svelte-1ltnnkq{color:#ff6b6b;font-size:12px;margin-top:4px}.today-dashboard.svelte-1ltnnkq.svelte-1ltnnkq{padding:24px;overflow-y:auto;flex:1}.today-header.svelte-1ltnnkq.svelte-1ltnnkq{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.today-header.svelte-1ltnnkq h2.svelte-1ltnnkq{font-size:24px}.today-date.svelte-1ltnnkq.svelte-1ltnnkq{font-size:13px;color:#666}.today-summary.svelte-1ltnnkq.svelte-1ltnnkq{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.summary-chip.svelte-1ltnnkq.svelte-1ltnnkq{font-size:12px;color:#b0b0c0;background:#1a1a28;border:1px solid #2a2a3c;padding:4px 12px;border-radius:16px}.today-case.svelte-1ltnnkq.svelte-1ltnnkq{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;margin-bottom:12px;overflow:hidden}.today-case-header.svelte-1ltnnkq.svelte-1ltnnkq{padding:12px 16px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #2a2a3c;cursor:pointer}.today-case-header.svelte-1ltnnkq.svelte-1ltnnkq:hover{background:#1e1e30}.today-case-title.svelte-1ltnnkq.svelte-1ltnnkq{font-weight:500}.today-case-type.svelte-1ltnnkq.svelte-1ltnnkq{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px}.today-case-time.svelte-1ltnnkq.svelte-1ltnnkq{font-size:11px;color:#555;margin-left:auto}.today-events.svelte-1ltnnkq.svelte-1ltnnkq{padding:8px 16px}.today-event.svelte-1ltnnkq.svelte-1ltnnkq{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:#b0b0c0}.today-event-icon.svelte-1ltnnkq.svelte-1ltnnkq{width:18px;text-align:center;color:#6366f1;font-size:13px}.today-event-title.svelte-1ltnnkq.svelte-1ltnnkq{flex:1}.today-event-type.svelte-1ltnnkq.svelte-1ltnnkq{font-size:11px;color:#666}.today-event-time.svelte-1ltnnkq.svelte-1ltnnkq{font-size:11px;color:#555;margin-left:auto}.today-events-empty.svelte-1ltnnkq.svelte-1ltnnkq{padding:8px 16px;font-size:13px;color:#666;font-style:italic}.today-empty.svelte-1ltnnkq.svelte-1ltnnkq{padding:48px 24px;text-align:center}.today-empty.svelte-1ltnnkq p.svelte-1ltnnkq{color:#666;font-size:14px;margin:0}.today-empty.svelte-1ltnnkq .hint.svelte-1ltnnkq{font-size:12px;color:#555;margin-top:8px}.today-timeline.svelte-1ltnnkq.svelte-1ltnnkq{margin-top:24px}.today-timeline.svelte-1ltnnkq h3.svelte-1ltnnkq{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:12px}.timeline-event.svelte-1ltnnkq.svelte-1ltnnkq{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}.timeline-dot.svelte-1ltnnkq.svelte-1ltnnkq{width:6px;height:6px;border-radius:50%;background:#6366f1;margin-left:-19px;flex-shrink:0}.timeline-title.svelte-1ltnnkq.svelte-1ltnnkq{flex:1}.timeline-type.svelte-1ltnnkq.svelte-1ltnnkq{font-size:11px;color:#666}.timeline-time.svelte-1ltnnkq.svelte-1ltnnkq{font-size:11px;color:#555}
diff --git a/cmd/verstak-gui/frontend-dist/assets/main-Dt-7hdPr.js b/cmd/verstak-gui/frontend-dist/assets/main-Dt-7hdPr.js
deleted file mode 100644
index af1a6da..0000000
--- a/cmd/verstak-gui/frontend-dist/assets/main-Dt-7hdPr.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var _i=Object.defineProperty;var vi=(n,e,t)=>e in n?_i(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var ot=(n,e,t)=>vi(n,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))l(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&l(o)}).observe(document,{childList:!0,subtree:!0});function t(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function l(i){if(i.ep)return;i.ep=!0;const s=t(i);fetch(i.href,s)}})();function K(){}function Kl(n){return n()}function jt(){return Object.create(null)}function ce(n){n.forEach(Kl)}function Gl(n){return typeof n=="function"}function He(n,e){return n!=n?e==e:n!==e||n&&typeof n=="object"||typeof n=="function"}let Re;function Ke(n,e){return n===e?!0:(Re||(Re=document.createElement("a")),Re.href=e,n===Re.href)}function ki(n){return Object.keys(n).length===0}function hi(n){return n??""}function f(n,e){n.appendChild(e)}function b(n,e,t){n.insertBefore(e,t||null)}function h(n){n.parentNode&&n.parentNode.removeChild(n)}function pe(n,e){for(let t=0;tn.removeEventListener(e,t,l)}function ke(n){return function(e){return e.stopPropagation(),n.call(this,e)}}function ze(n){return function(e){e.target===this&&n.call(this,e)}}function r(n,e,t){t==null?n.removeAttribute(e):n.getAttribute(e)!==t&&n.setAttribute(e,t)}function Ul(n){return n===""?null:+n}function bi(n){return Array.from(n.childNodes)}function z(n,e){e=""+e,n.data!==e&&(n.data=e)}function me(n,e){n.value=e??""}function Bt(n,e,t){for(let l=0;l{const i=n.$$.callbacks[e];if(i){const s=yi(e,t,{cancelable:l});return i.slice().forEach(o=>{o.call(n,s)}),!s.defaultPrevented}return!0}}function wi(n,e){const t=n.$$.callbacks[e.type];t&&t.slice().forEach(l=>l.call(this,e))}const Ne=[],Ot=[];let Ie=[];const Pt=[],qi=Promise.resolve();let ct=!1;function Ci(){ct||(ct=!0,qi.then(Zl))}function Ge(n){Ie.push(n)}const rt=new Set;let De=0;function Zl(){if(De!==0)return;const n=Pe;do{try{for(;Den.indexOf(l)===-1?e.push(l):t.push(l)),t.forEach(l=>l()),Ie=e}const We=new Set;let Me;function he(){Me={r:0,c:[],p:Me}}function be(){Me.r||ce(Me.c),Me=Me.p}function ne(n,e){n&&n.i&&(We.delete(n),n.i(e))}function oe(n,e,t,l){if(n&&n.o){if(We.has(n))return;We.add(n),Me.c.push(()=>{We.delete(n),l&&(t&&n.d(1),l())}),n.o(e)}else l&&l()}function le(n){return(n==null?void 0:n.length)!==void 0?n:Array.from(n)}function Li(n,e){oe(n,1,1,()=>{e.delete(n.key)})}function Si(n,e,t,l,i,s,o,c,a,d,_,y){let p=n.length,v=s.length,g=p;const k={};for(;g--;)k[n[g].key]=g;const q=[],C=new Map,L=new Map,H=[];for(g=v;g--;){const F=y(i,s,g),B=t(F);let T=o.get(B);T?H.push(()=>T.p(F,e)):(T=d(B,F),T.c()),C.set(B,q[g]=T),B in k&&L.set(B,Math.abs(g-k[B]))}const N=new Set,A=new Set;function D(F){ne(F,1),F.m(c,_),o.set(F.key,F),_=F.first,v--}for(;p&&v;){const F=q[v-1],B=n[p-1],T=F.key,E=B.key;F===B?(_=F.first,p--,v--):C.has(E)?!o.has(T)||N.has(T)?D(F):A.has(E)?p--:L.get(T)>L.get(E)?(A.add(T),D(F)):(N.add(E),p--):(a(B,o),p--)}for(;p--;){const F=n[p];C.has(F.key)||a(F,o)}for(;v;)D(q[v-1]);return ce(H),q}function Te(n){n&&n.c()}function ye(n,e,t){const{fragment:l,after_update:i}=n.$$;l&&l.m(e,t),Ge(()=>{const s=n.$$.on_mount.map(Kl).filter(Gl);n.$$.on_destroy?n.$$.on_destroy.push(...s):ce(s),n.$$.on_mount=[]}),i.forEach(Ge)}function we(n,e){const t=n.$$;t.fragment!==null&&(Ti(t.after_update),ce(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function Di(n,e){n.$$.dirty[0]===-1&&(Ne.push(n),Ci(),n.$$.dirty.fill(0)),n.$$.dirty[e/31|0]|=1<{const g=v.length?v[0]:p;return d.ctx&&i(d.ctx[y],d.ctx[y]=g)&&(!d.skip_bound&&d.bound[y]&&d.bound[y](g),_&&Di(n,y)),p}):[],d.update(),_=!0,ce(d.before_update),d.fragment=l?l(d.ctx):!1,e.target){if(e.hydrate){const y=bi(e.target);d.fragment&&d.fragment.l(y),y.forEach(h)}else d.fragment&&d.fragment.c();e.intro&&ne(n.$$.fragment),ye(n,e.target,e.anchor),Zl()}Oe(a)}class Be{constructor(){ot(this,"$$");ot(this,"$$set")}$destroy(){we(this,1),this.$destroy=K}$on(e,t){if(!Gl(t))return K;const l=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return l.push(t),()=>{const i=l.indexOf(t);i!==-1&&l.splice(i,1)}}$set(e){this.$$set&&!ki(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const Ni="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Ni);function Ii(n){let e,t;return{c(){e=R("path"),t=R("polyline"),r(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),r(t,"points","14 2 14 8 20 8")},m(l,i){b(l,e,i),b(l,t,i)},d(l){l&&(h(e),h(t))}}}function Ei(n){let e,t,l,i,s;return{c(){e=R("path"),t=R("polyline"),l=R("line"),i=R("line"),s=R("polyline"),r(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),r(t,"points","14 2 14 8 20 8"),r(l,"x1","16"),r(l,"y1","13"),r(l,"x2","8"),r(l,"y2","13"),r(i,"x1","16"),r(i,"y1","17"),r(i,"x2","8"),r(i,"y2","17"),r(s,"points","10 9 9 9 8 9")},m(o,c){b(o,e,c),b(o,t,c),b(o,l,c),b(o,i,c),b(o,s,c)},d(o){o&&(h(e),h(t),h(l),h(i),h(s))}}}function Fi(n){let e,t;return{c(){e=R("polyline"),t=R("polyline"),r(e,"points","16 18 22 12 16 6"),r(t,"points","8 6 2 12 8 18")},m(l,i){b(l,e,i),b(l,t,i)},d(l){l&&(h(e),h(t))}}}function Hi(n){let e,t,l,i;return{c(){e=R("path"),t=R("polyline"),l=R("line"),i=R("rect"),r(e,"d","M21 8v13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8"),r(t,"points","7 3 12 8 17 3"),r(l,"x1","3"),r(l,"y1","8"),r(l,"x2","21"),r(l,"y2","8"),r(i,"x","10"),r(i,"y","12"),r(i,"width","4"),r(i,"height","4"),r(i,"rx","1")},m(s,o){b(s,e,o),b(s,t,o),b(s,l,o),b(s,i,o)},d(s){s&&(h(e),h(t),h(l),h(i))}}}function ji(n){let e,t,l,i,s;return{c(){e=R("path"),t=R("polyline"),l=R("line"),i=R("line"),s=R("line"),r(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),r(t,"points","14 2 14 8 20 8"),r(l,"x1","9"),r(l,"y1","12"),r(l,"x2","15"),r(l,"y2","12"),r(i,"x1","9"),r(i,"y1","15"),r(i,"x2","13"),r(i,"y2","15"),r(s,"x1","12"),r(s,"y1","15"),r(s,"x2","12"),r(s,"y2","18")},m(o,c){b(o,e,c),b(o,t,c),b(o,l,c),b(o,i,c),b(o,s,c)},d(o){o&&(h(e),h(t),h(l),h(i),h(s))}}}function Bi(n){let e,t,l,i,s,o;return{c(){e=R("path"),t=R("polyline"),l=R("line"),i=R("line"),s=R("line"),o=R("line"),r(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),r(t,"points","14 2 14 8 20 8"),r(l,"x1","8"),r(l,"y1","12"),r(l,"x2","16"),r(l,"y2","12"),r(i,"x1","8"),r(i,"y1","16"),r(i,"x2","16"),r(i,"y2","16"),r(s,"x1","8"),r(s,"y1","14"),r(s,"x2","12"),r(s,"y2","14"),r(o,"x1","12"),r(o,"y1","12"),r(o,"x2","12"),r(o,"y2","18")},m(c,a){b(c,e,a),b(c,t,a),b(c,l,a),b(c,i,a),b(c,s,a),b(c,o,a)},d(c){c&&(h(e),h(t),h(l),h(i),h(s),h(o))}}}function Ai(n){let e,t,l,i;return{c(){e=R("path"),t=R("polyline"),l=R("line"),i=R("line"),r(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),r(t,"points","14 2 14 8 20 8"),r(l,"x1","16"),r(l,"y1","13"),r(l,"x2","8"),r(l,"y2","13"),r(i,"x1","16"),r(i,"y1","17"),r(i,"x2","8"),r(i,"y2","17")},m(s,o){b(s,e,o),b(s,t,o),b(s,l,o),b(s,i,o)},d(s){s&&(h(e),h(t),h(l),h(i))}}}function Oi(n){let e,t,l,i,s;return{c(){e=R("path"),t=R("polyline"),l=R("line"),i=R("line"),s=R("line"),r(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),r(t,"points","14 2 14 8 20 8"),r(l,"x1","8"),r(l,"y1","12"),r(l,"x2","16"),r(l,"y2","12"),r(i,"x1","8"),r(i,"y1","16"),r(i,"x2","16"),r(i,"y2","16"),r(s,"x1","8"),r(s,"y1","14"),r(s,"x2","12"),r(s,"y2","14")},m(o,c){b(o,e,c),b(o,t,c),b(o,l,c),b(o,i,c),b(o,s,c)},d(o){o&&(h(e),h(t),h(l),h(i),h(s))}}}function Pi(n){let e,t,l;return{c(){e=R("path"),t=R("circle"),l=R("circle"),r(e,"d","M9 18V5l12-2v13"),r(t,"cx","6"),r(t,"cy","18"),r(t,"r","3"),r(l,"cx","18"),r(l,"cy","16"),r(l,"r","3")},m(i,s){b(i,e,s),b(i,t,s),b(i,l,s)},d(i){i&&(h(e),h(t),h(l))}}}function zi(n){let e,t;return{c(){e=R("rect"),t=R("polyline"),r(e,"x","2"),r(e,"y","4"),r(e,"width","20"),r(e,"height","16"),r(e,"rx","2"),r(t,"points","10 9 16 12 10 15 10 9")},m(l,i){b(l,e,i),b(l,t,i)},d(l){l&&(h(e),h(t))}}}function Vi(n){let e,t,l;return{c(){e=R("rect"),t=R("circle"),l=R("polyline"),r(e,"x","3"),r(e,"y","3"),r(e,"width","18"),r(e,"height","18"),r(e,"rx","2"),r(e,"ry","2"),r(t,"cx","8.5"),r(t,"cy","8.5"),r(t,"r","1.5"),r(l,"points","21 15 16 10 5 21")},m(i,s){b(i,e,s),b(i,t,s),b(i,l,s)},d(i){i&&(h(e),h(t),h(l))}}}function Ri(n){let e;return{c(){e=R("path"),r(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,l){b(t,e,l)},d(t){t&&h(e)}}}function Wi(n){let e;function t(s,o){return s[0]==="folder"?Ri:s[0]==="image"?Vi:s[0]==="video"?zi:s[0]==="audio"?Pi:s[0]==="pdf"?Oi:s[0]==="document"?Ai:s[0]==="spreadsheet"?Bi:s[0]==="presentation"?ji:s[0]==="archive"?Hi:s[0]==="code"?Fi:s[0]==="text"?Ei:Ii}let l=t(n),i=l(n);return{c(){e=R("svg"),i.c(),r(e,"width",n[1]),r(e,"height",n[1]),r(e,"viewBox","0 0 24 24"),r(e,"fill","none"),r(e,"stroke","currentColor"),r(e,"stroke-width","1.5"),r(e,"stroke-linecap","round"),r(e,"stroke-linejoin","round"),r(e,"xmlns","http://www.w3.org/2000/svg")},m(s,o){b(s,e,o),i.m(e,null)},p(s,[o]){l!==(l=t(s))&&(i.d(1),i=l(s),i&&(i.c(),i.m(e,null))),o&2&&r(e,"width",s[1]),o&2&&r(e,"height",s[1])},i:K,o:K,d(s){s&&h(e),i.d()}}}function Ki(n,e,t){let{kind:l="generic"}=e,{size:i=20}=e;return n.$$set=s=>{"kind"in s&&t(0,l=s.kind),"size"in s&&t(1,i=s.size)},[l,i]}class Yl extends Be{constructor(e){super(),je(this,e,Ki,Wi,He,{kind:0,size:1})}}function Ue(n){if(n==null||n<0)return"—";if(n===0)return"0 B";const e=["B","KB","MB","GB"],t=Math.min(Math.floor(Math.log(n)/Math.log(1024)),e.length-1),l=n/Math.pow(1024,t);return(t===0?l.toFixed(0):l.toFixed(1))+" "+e[t]}const at={"image/jpeg":"Изображение JPEG","image/png":"Изображение PNG","image/gif":"Изображение GIF","image/webp":"Изображение WebP","image/svg+xml":"Изображение SVG","image/bmp":"Изображение BMP","image/tiff":"Изображение TIFF","image/avif":"Изображение AVIF","application/pdf":"PDF документ","application/msword":"Документ Word","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"Документ Word","application/vnd.ms-excel":"Таблица Excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"Таблица Excel","application/vnd.ms-powerpoint":"Презентация PowerPoint","application/vnd.openxmlformats-officedocument.presentationml.presentation":"Презентация PowerPoint","application/zip":"ZIP архив","application/gzip":"GZIP архив","application/x-tar":"TAR архив","application/x-7z-compressed":"7z архив","application/x-rar-compressed":"RAR архив","text/plain":"Текстовый файл","text/html":"HTML файл","text/css":"CSS файл","text/javascript":"JavaScript файл","application/json":"JSON файл","application/xml":"XML файл","application/x-yaml":"YAML файл","application/octet-stream":"Бинарный файл","application/x-msdos-program":"Исполняемый файл","inode/directory":"Папка"};function zt(n){return n?at[n]||n:"Неизвестно"}function Gi(n){if(n.type==="folder")return"Папка";const e=(n.mime||"").toLowerCase();if(at[e])return at[e];const l=(n.name||"").toLowerCase().split(".").pop();return l?l.toUpperCase():"Файл"}function Ql(n){if(n.type==="folder")return"folder";const e=(n.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 l=(n.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(l)?"code":"generic"}const Ui=["image/jpeg","image/png","image/gif","image/webp","image/bmp","image/tiff","image/avif","image/svg+xml"],Ji=["text/plain","text/html","text/css","text/javascript","application/json","application/xml","application/x-yaml","text/x-shellscript"],Xi=["txt","log","conf","ini","yaml","yml","json","xml","csv","sh","py","js","ts","css","html","md","markdown","cfg"],Zi=["jpg","jpeg","png","gif","webp","bmp","tiff","tif","avif","svg"];function xl(n){const e=(n.mime||"").toLowerCase(),l=(n.name||"").toLowerCase().split(".").pop();return Ui.includes(e)||Zi.includes(l)}function $l(n){const e=(n.mime||"").toLowerCase(),l=(n.name||"").toLowerCase().split(".").pop();return Ji.includes(e)||Xi.includes(l)&&l!=="md"&&l!=="markdown"}function en(n){return(n.mime||"").toLowerCase().includes("pdf")}function tn(n){const e=(n.name||"").toLowerCase();return e.endsWith(".md")||e.endsWith(".markdown")}function Yi(n){return xl(n)||en(n)}function Qi(n){return $l(n)||tn(n)}function xi(n){let e,t,l,i=Ue(n[0].size)+"",s;return{c(){e=u("span"),e.textContent="·",t=w(),l=u("span"),s=S(i),r(e,"class","meta-sep svelte-1u905d2")},m(o,c){b(o,e,c),b(o,t,c),b(o,l,c),f(l,s)},p(o,c){c&1&&i!==(i=Ue(o[0].size)+"")&&z(s,i)},d(o){o&&(h(e),h(t),h(l))}}}function $i(n){let e,t,l;return{c(){e=u("button"),e.innerHTML=' ',r(e,"class","action-btn svelte-1u905d2"),r(e,"title","Открыть папку"),r(e,"aria-label","Открыть папку")},m(i,s){b(i,e,s),t||(l=I(e,"click",ke(n[27])),t=!0)},p:K,d(i){i&&h(e),t=!1,l()}}}function es(n){let e,t,l,i,s;return{c(){e=u("button"),e.innerHTML=' ',t=w(),l=u("button"),l.innerHTML=' ',r(e,"class","action-btn svelte-1u905d2"),r(e,"title","Предпросмотр"),r(e,"aria-label","Предпросмотр"),r(l,"class","action-btn svelte-1u905d2"),r(l,"title","Открыть во внешней программе"),r(l,"aria-label","Открыть внешне")},m(o,c){b(o,e,c),b(o,t,c),b(o,l,c),i||(s=[I(e,"click",ke(n[26])),I(l,"click",ke(n[8]))],i=!0)},p:K,d(o){o&&(h(e),h(t),h(l)),i=!1,ce(s)}}}function Vt(n){let e,t,l,i,s,o,c,a,d,_,y,p,v,g,k,q,C,L,H,N,A,D,F,B=n[5]&&ts(n);return{c(){e=u("div"),t=w(),l=u("div"),i=u("button"),i.innerHTML=`
- Открыть`,s=w(),o=u("button"),o.innerHTML=`
- Открыть во внешней программе`,c=w(),B&&B.c(),a=w(),d=u("div"),_=w(),y=u("button"),y.innerHTML=`
- Переименовать`,p=w(),v=u("button"),v.innerHTML=`
- Дублировать`,g=w(),k=u("button"),k.innerHTML=`
- Вырезать`,q=w(),C=u("button"),C.innerHTML=`
- Копировать`,L=w(),H=u("div"),N=w(),A=u("button"),A.innerHTML=`
- Удалить`,r(e,"class","menu-backdrop svelte-1u905d2"),r(e,"role","presentation"),r(i,"class","menu-item svelte-1u905d2"),r(i,"role","menuitem"),r(o,"class","menu-item svelte-1u905d2"),r(o,"role","menuitem"),r(d,"class","menu-sep svelte-1u905d2"),r(y,"class","menu-item svelte-1u905d2"),r(y,"role","menuitem"),r(v,"class","menu-item svelte-1u905d2"),r(v,"role","menuitem"),r(k,"class","menu-item svelte-1u905d2"),r(k,"role","menuitem"),r(C,"class","menu-item svelte-1u905d2"),r(C,"role","menuitem"),r(H,"class","menu-sep svelte-1u905d2"),r(A,"class","menu-item menu-item-danger svelte-1u905d2"),r(A,"role","menuitem"),r(l,"class","menu svelte-1u905d2"),r(l,"role","menu")},m(T,E){b(T,e,E),b(T,t,E),b(T,l,E),f(l,i),f(l,s),f(l,o),f(l,c),B&&B.m(l,null),f(l,a),f(l,d),f(l,_),f(l,y),f(l,p),f(l,v),f(l,g),f(l,k),f(l,q),f(l,C),f(l,L),f(l,H),f(l,N),f(l,A),D||(F=[I(e,"click",ke(n[17])),I(i,"click",n[15]),I(o,"click",n[8]),I(y,"click",n[11]),I(v,"click",n[12]),I(k,"click",n[13]),I(C,"click",n[14]),I(A,"click",n[10]),I(l,"click",ke(n[25]))],D=!0)},p(T,E){T[5]&&B.p(T,E)},d(T){T&&(h(e),h(t),h(l)),B&&B.d(),D=!1,ce(F)}}}function ts(n){let e,t,l;return{c(){e=u("button"),e.innerHTML=`
- Показать в проводнике`,r(e,"class","menu-item svelte-1u905d2"),r(e,"role","menuitem")},m(i,s){b(i,e,s),t||(l=I(e,"click",n[9]),t=!0)},p:K,d(i){i&&h(e),t=!1,l()}}}function ls(n){let e,t,l,i,s,o,c=n[0].name+"",a,d,_,y,p,v,g,k,q,C,L,H,N,A,D,F,B,T,E,J,te,G;l=new Yl({props:{kind:n[4],size:22}});let O=!n[5]&&xi(n);function X(Z,Q){return Z[5]?$i:es}let Y=X(n)(n),x=n[2]&&Vt(n);return{c(){e=u("div"),t=u("div"),Te(l.$$.fragment),i=w(),s=u("div"),o=u("div"),a=S(c),_=w(),y=u("div"),p=u("span"),p.textContent=`${n[6]}`,v=w(),O&&O.c(),g=w(),k=u("div"),Y.c(),q=w(),C=u("button"),L=R("svg"),H=R("circle"),N=R("circle"),A=R("circle"),D=w(),F=u("button"),F.innerHTML=' ',T=w(),x&&x.c(),E=ve(),r(t,"class","file-row-icon svelte-1u905d2"),r(o,"class","file-row-name svelte-1u905d2"),r(o,"title",d=n[0].name),r(y,"class","file-row-meta svelte-1u905d2"),r(s,"class","file-row-body svelte-1u905d2"),r(H,"cx","12"),r(H,"cy","5"),r(H,"r","2"),r(N,"cx","12"),r(N,"cy","12"),r(N,"r","2"),r(A,"cx","12"),r(A,"cy","19"),r(A,"r","2"),r(L,"width","16"),r(L,"height","16"),r(L,"viewBox","0 0 24 24"),r(L,"fill","currentColor"),r(C,"class","action-btn svelte-1u905d2"),r(C,"title","Ещё"),r(C,"aria-label","Ещё"),r(C,"aria-expanded",n[2]),r(F,"class","action-btn action-btn-danger svelte-1u905d2"),r(F,"title","Удалить"),r(F,"aria-label","Удалить"),r(k,"class","file-row-actions svelte-1u905d2"),r(e,"class","file-row svelte-1u905d2"),r(e,"role","button"),r(e,"tabindex","0"),r(e,"draggable","true"),r(e,"aria-label",B=n[5]?`Папка ${n[0].name}`:`Файл ${n[0].name}`),At(e,"file-row--selected",n[1])},m(Z,Q){b(Z,e,Q),f(e,t),ye(l,t,null),f(e,i),f(e,s),f(s,o),f(o,a),f(s,_),f(s,y),f(y,p),f(y,v),O&&O.m(y,null),f(e,g),f(e,k),Y.m(k,null),f(k,q),f(k,C),f(C,L),f(L,H),f(L,N),f(L,A),f(k,D),f(k,F),b(Z,T,Q),x&&x.m(Z,Q),b(Z,E,Q),J=!0,te||(G=[I(window,"click",n[17]),I(C,"click",ke(n[16])),I(F,"click",ke(n[10])),I(e,"click",n[7]),I(e,"contextmenu",n[21]),I(e,"dragstart",n[18]),I(e,"dragover",n[19]),I(e,"drop",n[20])],te=!0)},p(Z,[Q]){(!J||Q&1)&&c!==(c=Z[0].name+"")&&z(a,c),(!J||Q&1&&d!==(d=Z[0].name))&&r(o,"title",d),Z[5]||O.p(Z,Q),Y.p(Z,Q),(!J||Q&4)&&r(C,"aria-expanded",Z[2]),(!J||Q&1&&B!==(B=Z[5]?`Папка ${Z[0].name}`:`Файл ${Z[0].name}`))&&r(e,"aria-label",B),(!J||Q&2)&&At(e,"file-row--selected",Z[1]),Z[2]?x?x.p(Z,Q):(x=Vt(Z),x.c(),x.m(E.parentNode,E)):x&&(x.d(1),x=null)},i(Z){J||(ne(l.$$.fragment,Z),J=!0)},o(Z){oe(l.$$.fragment,Z),J=!1},d(Z){Z&&(h(e),h(T),h(E)),we(l),O&&O.d(),Y.d(),x&&x.d(Z),te=!1,ce(G)}}}function ns(n,e,t){let{item:l}=e,{selected:i=!1}=e,{onDragStart:s}=e,{onDragOver:o}=e,{onDrop:c}=e;const a=Xe(),d=Ql(l),_=l.type==="folder",y=Gi(l);let p=!1,v=null;function g(j){j.ctrlKey||j.metaKey?a("toggleSelect",l.id):j.shiftKey?a("rangeSelect",l.id):v?(clearTimeout(v),v=null,_?a("navigate",l.id):a("preview",l)):v=setTimeout(()=>{v=null,a("selectOne",l.id)},250)}function k(){a("openExternal",l.fileId)}function q(){a("showInFolder",l.id)}function C(){t(2,p=!1),a("delete",{id:l.id,type:l.type})}function L(){t(2,p=!1),a("rename",{id:l.id,name:l.name})}function H(){t(2,p=!1),a("duplicate",l.id)}function N(){t(2,p=!1),a("cut",l.id)}function A(){t(2,p=!1),a("copy",l.id)}function D(){t(2,p=!1),_?a("navigate",l.id):a("preview",l)}function F(){t(2,p=!p)}function B(){t(2,p=!1)}function T(j){s&&s(j,l.id)}function E(j){o&&_&&o(j,l.id)}function J(j){c&&_&&c(j,l.id)}function te(j){j.preventDefault(),t(2,p=!0)}function G(j){wi.call(this,n,j)}const O=()=>a("preview",l),X=()=>a("navigate",l.id);return n.$$set=j=>{"item"in j&&t(0,l=j.item),"selected"in j&&t(1,i=j.selected),"onDragStart"in j&&t(22,s=j.onDragStart),"onDragOver"in j&&t(23,o=j.onDragOver),"onDrop"in j&&t(24,c=j.onDrop)},[l,i,p,a,d,_,y,g,k,q,C,L,H,N,A,D,F,B,T,E,J,te,s,o,c,G,O,X]}class is extends Be{constructor(e){super(),je(this,e,ns,ls,He,{item:0,selected:1,onDragStart:22,onDragOver:23,onDrop:24})}}function Rt(n,e,t){const l=n.slice();return l[4]=e[t],l[6]=t,l}function ss(n){let e;return{c(){e=u("span"),e.textContent="/",r(e,"class","sep svelte-csi2lb")},m(t,l){b(t,e,l)},d(t){t&&h(e)}}}function os(n){let e,t=n[4].name+"",l,i,s;function o(){return n[2](n[6])}return{c(){e=u("button"),l=S(t),r(e,"class","crumb crumb--link svelte-csi2lb")},m(c,a){b(c,e,a),f(e,l),i||(s=I(e,"click",o),i=!0)},p(c,a){n=c,a&1&&t!==(t=n[4].name+"")&&z(l,t)},d(c){c&&h(e),i=!1,s()}}}function rs(n){let e,t=n[4].name+"",l;return{c(){e=u("span"),l=S(t),r(e,"class","crumb crumb--current svelte-csi2lb")},m(i,s){b(i,e,s),f(e,l)},p(i,s){s&1&&t!==(t=i[4].name+"")&&z(l,t)},d(i){i&&h(e)}}}function Wt(n){let e,t,l=n[6]>0&&ss();function i(c,a){return c[6]===c[0].length-1?rs:os}let s=i(n),o=s(n);return{c(){l&&l.c(),e=w(),o.c(),t=ve()},m(c,a){l&&l.m(c,a),b(c,e,a),o.m(c,a),b(c,t,a)},p(c,a){s===(s=i(c))&&o?o.p(c,a):(o.d(1),o=s(c),o&&(o.c(),o.m(t.parentNode,t)))},d(c){c&&(h(e),h(t)),l&&l.d(c),o.d(c)}}}function cs(n){let e,t=le(n[0]),l=[];for(let i=0;is(c);return n.$$set=c=>{"crumbs"in c&&t(0,l=c.crumbs)},[l,s,o]}class ln extends Be{constructor(e){super(),je(this,e,as,cs,He,{crumbs:0})}}function fs(n){let e,t,l,i,s,o;return{c(){e=u("div"),t=u("p"),t.textContent="Предпросмотр недоступен для этого типа файлов.",l=w(),i=u("button"),i.textContent="Открыть во внешней программе",r(i,"class","btn btn-sm svelte-1cw3u0m"),r(e,"class","preview-status svelte-1cw3u0m")},m(c,a){b(c,e,a),f(e,t),f(e,l),f(e,i),s||(o=I(i,"click",n[9]),s=!0)},p:K,d(c){c&&h(e),s=!1,o()}}}function us(n){let e,t;function l(o,c){return c&2&&(e=null),e==null&&(e=!!(o[1]&&o[1].startsWith("data:"))),e?ks:vs}let i=l(n,-1),s=i(n);return{c(){s.c(),t=ve()},m(o,c){s.m(o,c),b(o,t,c)},p(o,c){i===(i=l(o,c))&&s?s.p(o,c):(s.d(1),s=i(o),s&&(s.c(),s.m(t.parentNode,t)))},d(o){o&&h(t),s.d(o)}}}function ds(n){let e,t,l;return{c(){e=u("pre"),t=u("code"),l=S(n[1]),r(e,"class","preview-text svelte-1cw3u0m")},m(i,s){b(i,e,s),f(e,t),f(t,l)},p(i,s){s&2&&z(l,i[1])},d(i){i&&h(e)}}}function ms(n){let e,t,l,i;return{c(){e=u("div"),t=u("img"),Ke(t.src,l=n[1])||r(t,"src",l),r(t,"alt",i=n[0].name),r(t,"class","preview-image svelte-1cw3u0m"),r(e,"class","preview-image-container svelte-1cw3u0m")},m(s,o){b(s,e,o),f(e,t)},p(s,o){o&2&&!Ke(t.src,l=s[1])&&r(t,"src",l),o&1&&i!==(i=s[0].name)&&r(t,"alt",i)},d(s){s&&h(e)}}}function ps(n){let e,t,l,i,s,o,c;return{c(){e=u("div"),t=u("p"),l=S(n[3]),i=w(),s=u("button"),s.textContent="Открыть во внешней программе",r(s,"class","btn btn-sm svelte-1cw3u0m"),r(e,"class","preview-status svelte-1cw3u0m")},m(a,d){b(a,e,d),f(e,t),f(t,l),f(e,i),f(e,s),o||(c=I(s,"click",n[9]),o=!0)},p(a,d){d&8&&z(l,a[3])},d(a){a&&h(e),o=!1,c()}}}function _s(n){let e;return{c(){e=u("div"),e.innerHTML="Загрузка...
",r(e,"class","preview-status svelte-1cw3u0m")},m(t,l){b(t,e,l)},p:K,d(t){t&&h(e)}}}function vs(n){let e,t,l,i,s,o;return{c(){e=u("div"),t=u("p"),t.textContent="Предпросмотр PDF недоступен.",l=w(),i=u("button"),i.textContent="Открыть во внешней программе",r(i,"class","btn btn-sm svelte-1cw3u0m"),r(e,"class","preview-status svelte-1cw3u0m")},m(c,a){b(c,e,a),f(e,t),f(e,l),f(e,i),s||(o=I(i,"click",n[9]),s=!0)},p:K,d(c){c&&h(e),s=!1,o()}}}function ks(n){let e,t,l;return{c(){e=u("div"),t=u("embed"),Ke(t.src,l=n[1])||r(t,"src",l),r(t,"type","application/pdf"),r(t,"class","preview-pdf svelte-1cw3u0m"),r(e,"class","preview-pdf-container svelte-1cw3u0m")},m(i,s){b(i,e,s),f(e,t)},p(i,s){s&2&&!Ke(t.src,l=i[1])&&r(t,"src",l)},d(i){i&&h(e)}}}function hs(n){let e,t,l,i,s,o,c,a=n[0].name+"",d,_,y,p,v=Ue(n[0].size)+"",g,k,q=zt(n[0].mime)+"",C,L,H,N,A,D,F,B,T,E,J,te;s=new Yl({props:{kind:n[8],size:18}});function G(j,Y){return j[2]?_s:j[3]?ps:j[6]&&j[1]?ms:j[5]&&j[1]?ds:j[4]?us:fs}let O=G(n),X=O(n);return{c(){e=u("div"),t=u("div"),l=u("header"),i=u("div"),Te(s.$$.fragment),o=w(),c=u("span"),d=S(a),y=w(),p=u("div"),g=S(v),k=S(" · "),C=S(q),L=w(),H=u("div"),N=u("button"),N.innerHTML=' ',A=w(),D=u("button"),D.innerHTML=' ',F=w(),B=u("div"),X.c(),r(c,"class","preview-name svelte-1cw3u0m"),r(c,"title",_=n[0].name),r(i,"class","preview-title svelte-1cw3u0m"),r(p,"class","preview-meta svelte-1cw3u0m"),r(N,"class","action-btn svelte-1cw3u0m"),r(N,"title","Открыть во внешней программе"),r(N,"aria-label","Открыть внешне"),r(D,"class","action-btn action-btn-close svelte-1cw3u0m"),r(D,"title","Close"),r(D,"aria-label","Close preview"),r(H,"class","preview-actions svelte-1cw3u0m"),r(l,"class","preview-header svelte-1cw3u0m"),r(B,"class","preview-body svelte-1cw3u0m"),r(t,"class","modal svelte-1cw3u0m"),r(e,"class","overlay svelte-1cw3u0m"),r(e,"role","dialog"),r(e,"aria-modal","true"),r(e,"aria-label",T=`Preview: ${n[0].name}`)},m(j,Y){b(j,e,Y),f(e,t),f(t,l),f(l,i),ye(s,i,null),f(i,o),f(i,c),f(c,d),f(l,y),f(l,p),f(p,g),f(p,k),f(p,C),f(l,L),f(l,H),f(H,N),f(H,A),f(H,D),f(t,F),f(t,B),X.m(B,null),E=!0,J||(te=[I(N,"click",n[9]),I(D,"click",n[10]),I(e,"click",ze(n[11]))],J=!0)},p(j,[Y]){(!E||Y&1)&&a!==(a=j[0].name+"")&&z(d,a),(!E||Y&1&&_!==(_=j[0].name))&&r(c,"title",_),(!E||Y&1)&&v!==(v=Ue(j[0].size)+"")&&z(g,v),(!E||Y&1)&&q!==(q=zt(j[0].mime)+"")&&z(C,q),O===(O=G(j))&&X?X.p(j,Y):(X.d(1),X=O(j),X&&(X.c(),X.m(B,null))),(!E||Y&1&&T!==(T=`Preview: ${j[0].name}`))&&r(e,"aria-label",T)},i(j){E||(ne(s.$$.fragment,j),E=!0)},o(j){oe(s.$$.fragment,j),E=!1},d(j){j&&h(e),we(s),X.d(),J=!1,ce(te)}}}function bs(n,e,t){let l,i,s,{item:o}=e,{content:c=""}=e,{loading:a=!1}=e,{error:d=""}=e;const _=Xe(),y=Ql(o);function p(q){q.key==="Escape"&&_("close")}function v(){_("openExternal",o.fileId)}Jl(()=>{window.addEventListener("keydown",p)}),Xl(()=>{window.removeEventListener("keydown",p)});const g=()=>_("close"),k=()=>_("close");return n.$$set=q=>{"item"in q&&t(0,o=q.item),"content"in q&&t(1,c=q.content),"loading"in q&&t(2,a=q.loading),"error"in q&&t(3,d=q.error)},n.$$.update=()=>{n.$$.dirty&3&&t(6,l=xl(o)&&c&&c.startsWith("data:")),n.$$.dirty&1&&t(5,i=$l(o)||tn(o)),n.$$.dirty&1&&t(4,s=en(o))},[o,c,a,d,s,i,l,_,y,v,g,k]}class gs extends Be{constructor(e){super(),je(this,e,bs,hs,He,{item:0,content:1,loading:2,error:3})}}function ys(n){let e,t,l,i,s,o,c,a,d,_,y,p,v,g,k,q,C;return{c(){e=u("div"),t=u("div"),l=u("h3"),i=S(n[0]),s=w(),o=u("p"),c=S(n[1]),a=w(),d=u("div"),_=u("button"),y=S(n[2]),v=w(),g=u("button"),k=S(n[3]),r(l,"class","svelte-1fv6yyk"),r(o,"class","message svelte-1fv6yyk"),r(_,"class",p="btn "+(n[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk"),r(g,"class","btn svelte-1fv6yyk"),r(d,"class","actions svelte-1fv6yyk"),r(t,"class","modal svelte-1fv6yyk"),r(e,"class","overlay svelte-1fv6yyk"),r(e,"role","dialog"),r(e,"aria-modal","true"),r(e,"aria-label",n[0])},m(L,H){b(L,e,H),f(e,t),f(t,l),f(l,i),f(t,s),f(t,o),f(o,c),f(t,a),f(t,d),f(d,_),f(_,y),f(d,v),f(d,g),f(g,k),q||(C=[I(_,"click",n[6]),I(g,"click",n[7]),I(e,"click",ze(n[8]))],q=!0)},p(L,[H]){H&1&&z(i,L[0]),H&2&&z(c,L[1]),H&4&&z(y,L[2]),H&16&&p!==(p="btn "+(L[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk")&&r(_,"class",p),H&8&&z(k,L[3]),H&1&&r(e,"aria-label",L[0])},i:K,o:K,d(L){L&&h(e),q=!1,ce(C)}}}function ws(n,e,t){let{title:l="Подтверждение"}=e,{message:i=""}=e,{confirmText:s="Удалить"}=e,{cancelText:o="Отмена"}=e,{danger:c=!1}=e;const a=Xe(),d=()=>a("confirm"),_=()=>a("cancel"),y=()=>a("cancel");return n.$$set=p=>{"title"in p&&t(0,l=p.title),"message"in p&&t(1,i=p.message),"confirmText"in p&&t(2,s=p.confirmText),"cancelText"in p&&t(3,o=p.cancelText),"danger"in p&&t(4,c=p.danger)},[l,i,s,o,c,a,d,_,y]}class qs extends Be{constructor(e){super(),je(this,e,ws,ys,He,{title:0,message:1,confirmText:2,cancelText:3,danger:4})}}function Kt(n,e,t){const l=n.slice();return l[151]=e[t],l}function Gt(n,e,t){const l=n.slice();return l[173]=e[t],l}function Ut(n,e,t){const l=n.slice();return l[176]=e[t],l}function Jt(n,e,t){const l=n.slice();return l[173]=e[t],l}function Xt(n,e,t){const l=n.slice();return l[154]=e[t],l}function Zt(n,e,t){const l=n.slice();return l[165]=e[t],l}function Yt(n,e,t){const l=n.slice();return l[162]=e[t],l}function Qt(n,e,t){const l=n.slice();return l[157]=e[t],l}function xt(n,e,t){const l=n.slice();return l[154]=e[t],l}function $t(n,e,t){const l=n.slice();return l[157]=e[t],l}function el(n,e,t){const l=n.slice();return l[170]=e[t],l}function tl(n,e,t){const l=n.slice();return l[151]=e[t],l}function ll(n,e,t){const l=n.slice();return l[183]=e[t],l}function nl(n,e,t){const l=n.slice();return l[186]=e[t],l}function il(n){let e,t=n[186].label+"",l,i,s,o,c;function a(){return n[85](n[186])}return{c(){e=u("button"),l=S(t),i=w(),r(e,"class",s="nav-item "+(n[5]===n[186].id?"selected":"")+" svelte-1ltnnkq")},m(d,_){b(d,e,_),f(e,l),f(e,i),o||(c=I(e,"click",a),o=!0)},p(d,_){n=d,_[0]&1&&t!==(t=n[186].label+"")&&z(l,t),_[0]&33&&s!==(s="nav-item "+(n[5]===n[186].id?"selected":"")+" svelte-1ltnnkq")&&r(e,"class",s)},d(d){d&&h(e),o=!1,c()}}}function sl(n){let e,t,l,i,s,o=n[1].length>0&&ol(n),c=le(n[1]),a=[];for(let _=0;_0?o?o.p(_,y):(o=ol(_),o.c(),o.m(t,null)):o&&(o.d(1),o=null),y[0]&66|y[1]&4096){c=le(_[1]);let p;for(p=0;p ',r(i,"class","dismiss-btn svelte-1ltnnkq"),r(i,"aria-label","Dismiss"),r(e,"class","error-banner svelte-1ltnnkq")},m(c,a){b(c,e,a),f(e,t),f(e,l),f(e,i),s||(o=[I(i,"click",ke(n[87])),I(e,"click",n[88])],s=!0)},p(c,a){a[0]&16&&z(t,c[4])},d(c){c&&h(e),s=!1,ce(o)}}}function Ls(n){let e,t,l;function i(c,a){if(c[19])return Fs;if(c[0].length>0)return Es;if(c[4])return Is}let s=i(n),o=s&&s(n);return{c(){e=u("div"),t=u("h2"),t.textContent="Верстак",l=w(),o&&o.c(),r(t,"class","svelte-1ltnnkq"),r(e,"class","welcome svelte-1ltnnkq")},m(c,a){b(c,e,a),f(e,t),f(e,l),o&&o.m(e,null)},p(c,a){s===(s=i(c))&&o?o.p(c,a):(o&&o.d(1),o=s&&s(c),o&&(o.c(),o.m(e,null)))},i:K,o:K,d(c){c&&h(e),o&&o.d()}}}function Ss(n){let e,t,l,i,s,o=n[2].date+"",c,a,d,_=n[2].summary&&ul(n);function y(g,k){return g[2].groups&&g[2].groups.length>0?js:Hs}let p=y(n),v=p(n);return{c(){e=u("div"),t=u("div"),l=u("h2"),l.textContent="Сегодня",i=w(),s=u("span"),c=S(o),a=w(),_&&_.c(),d=w(),v.c(),r(l,"class","svelte-1ltnnkq"),r(s,"class","today-date svelte-1ltnnkq"),r(t,"class","today-header svelte-1ltnnkq"),r(e,"class","today-dashboard svelte-1ltnnkq")},m(g,k){b(g,e,k),f(e,t),f(t,l),f(t,i),f(t,s),f(s,c),f(e,a),_&&_.m(e,null),f(e,d),v.m(e,null)},p(g,k){k[0]&4&&o!==(o=g[2].date+"")&&z(c,o),g[2].summary?_?_.p(g,k):(_=ul(g),_.c(),_.m(e,d)):_&&(_.d(1),_=null),p===(p=y(g))&&v?v.p(g,k):(v.d(1),v=p(g),v&&(v.c(),v.m(e,null)))},i:K,o:K,d(g){g&&h(e),_&&_.d(),v.d()}}}function Ds(n){let e,t,l,i,s,o,c=le(n[41]),a=[];for(let p=0;p{_[g]=null}),be()),~i?(s=_[i],s?s.p(p,v):(s=_[i]=d[i](p),s.c()),ne(s,1),s.m(l,null)):s=null)},i(p){o||(ne(s),o=!0)},o(p){oe(s),o=!1},d(p){p&&(h(e),h(t),h(l)),pe(a,p),~i&&_[i].d()}}}function Ns(n){let e,t,l,i=n[9].title+"",s,o,c,a,d,_,y,p,v,g,k,q=n[9].dirty&&El();return{c(){e=u("div"),t=u("div"),l=u("span"),s=S(i),o=w(),q&&q.c(),c=w(),a=u("div"),d=u("button"),d.textContent="Сохранить",_=w(),y=u("button"),y.textContent="Закрыть",p=w(),v=u("textarea"),r(l,"class","note-title svelte-1ltnnkq"),r(d,"class","btn btn-primary svelte-1ltnnkq"),r(y,"class","btn svelte-1ltnnkq"),r(a,"class","note-editor-actions svelte-1ltnnkq"),r(t,"class","note-editor-header svelte-1ltnnkq"),r(v,"class","note-textarea svelte-1ltnnkq"),r(v,"placeholder","Начните писать..."),r(e,"class","note-editor svelte-1ltnnkq")},m(C,L){b(C,e,L),f(e,t),f(t,l),f(l,s),f(t,o),q&&q.m(t,null),f(t,c),f(t,a),f(a,d),f(a,_),f(a,y),f(e,p),f(e,v),me(v,n[9].content),g||(k=[I(d,"click",n[76]),I(y,"click",n[74]),I(v,"input",n[89]),I(v,"input",n[75])],g=!0)},p(C,L){L[0]&512&&i!==(i=C[9].title+"")&&z(s,i),C[9].dirty?q||(q=El(),q.c(),q.m(t,c)):q&&(q.d(1),q=null),L[0]&512&&me(v,C[9].content)},i:K,o:K,d(C){C&&h(e),q&&q.d(),g=!1,ce(k)}}}function Is(n){let e,t,l;return{c(){e=u("p"),t=S("Ошибка: "),l=S(n[4]),r(e,"class","error-text svelte-1ltnnkq")},m(i,s){b(i,e,s),f(e,t),f(e,l)},p(i,s){s[0]&16&&z(l,i[4])},d(i){i&&h(e)}}}function Es(n){let e,t,l;return{c(){e=u("p"),e.textContent="Выберите раздел в боковой панели.",t=w(),l=u("p"),l.textContent="Или создайте новое дело кнопкой «+».",r(e,"class","svelte-1ltnnkq"),r(l,"class","hint svelte-1ltnnkq")},m(i,s){b(i,e,s),b(i,t,s),b(i,l,s)},p:K,d(i){i&&(h(e),h(t),h(l))}}}function Fs(n){let e;return{c(){e=u("p"),e.textContent="Загрузка...",r(e,"class","svelte-1ltnnkq")},m(t,l){b(t,e,l)},p:K,d(t){t&&h(e)}}}function ul(n){let e,t,l,i=n[2].summary.changedCases>0&&dl(n),s=n[2].summary.notes>0&&ml(n),o=n[2].summary.files>0&&pl(n);return{c(){e=u("div"),i&&i.c(),t=w(),s&&s.c(),l=w(),o&&o.c(),r(e,"class","today-summary svelte-1ltnnkq")},m(c,a){b(c,e,a),i&&i.m(e,null),f(e,t),s&&s.m(e,null),f(e,l),o&&o.m(e,null)},p(c,a){c[2].summary.changedCases>0?i?i.p(c,a):(i=dl(c),i.c(),i.m(e,t)):i&&(i.d(1),i=null),c[2].summary.notes>0?s?s.p(c,a):(s=ml(c),s.c(),s.m(e,l)):s&&(s.d(1),s=null),c[2].summary.files>0?o?o.p(c,a):(o=pl(c),o.c(),o.m(e,null)):o&&(o.d(1),o=null)},d(c){c&&h(e),i&&i.d(),s&&s.d(),o&&o.d()}}}function dl(n){let e,t=n[2].summary.changedCases+"",l,i,s=Fe(n[2].summary.changedCases,"дело","дела","дел")+"",o;return{c(){e=u("span"),l=S(t),i=w(),o=S(s),r(e,"class","summary-chip svelte-1ltnnkq")},m(c,a){b(c,e,a),f(e,l),f(e,i),f(e,o)},p(c,a){a[0]&4&&t!==(t=c[2].summary.changedCases+"")&&z(l,t),a[0]&4&&s!==(s=Fe(c[2].summary.changedCases,"дело","дела","дел")+"")&&z(o,s)},d(c){c&&h(e)}}}function ml(n){let e,t=n[2].summary.notes+"",l,i,s=Fe(n[2].summary.notes,"заметка","заметки","заметок")+"",o;return{c(){e=u("span"),l=S(t),i=w(),o=S(s),r(e,"class","summary-chip svelte-1ltnnkq")},m(c,a){b(c,e,a),f(e,l),f(e,i),f(e,o)},p(c,a){a[0]&4&&t!==(t=c[2].summary.notes+"")&&z(l,t),a[0]&4&&s!==(s=Fe(c[2].summary.notes,"заметка","заметки","заметок")+"")&&z(o,s)},d(c){c&&h(e)}}}function pl(n){let e,t=n[2].summary.files+"",l,i,s=Fe(n[2].summary.files,"файл","файла","файлов")+"",o;return{c(){e=u("span"),l=S(t),i=w(),o=S(s),r(e,"class","summary-chip svelte-1ltnnkq")},m(c,a){b(c,e,a),f(e,l),f(e,i),f(e,o)},p(c,a){a[0]&4&&t!==(t=c[2].summary.files+"")&&z(l,t),a[0]&4&&s!==(s=Fe(c[2].summary.files,"файл","файла","файлов")+"")&&z(o,s)},d(c){c&&h(e)}}}function Hs(n){let e;return{c(){e=u("div"),e.innerHTML='Сегодня пока тихо
Здесь появятся дела, заметки, файлы и действия, с которыми вы работали сегодня.
',r(e,"class","today-empty svelte-1ltnnkq")},m(t,l){b(t,e,l)},p:K,d(t){t&&h(e)}}}function js(n){let e,t,l=le(n[2].groups),i=[];for(let o=0;o0&&kl(n);return{c(){for(let o=0;o0?s?s.p(o,c):(s=kl(o),s.c(),s.m(t.parentNode,t)):s&&(s.d(1),s=null)},d(o){o&&(h(e),h(t)),pe(i,o),s&&s.d(o)}}}function Bs(n){let e;return{c(){e=u("div"),e.textContent="Изменён сегодня, подробная история пока недоступна",r(e,"class","today-events-empty svelte-1ltnnkq")},m(t,l){b(t,e,l)},p:K,d(t){t&&h(e)}}}function As(n){let e,t=le(n[176].events),l=[];for(let i=0;i0?As:Bs}let H=L(n),N=H(n);return{c(){e=u("div"),t=u("div"),l=u("span"),s=S(i),o=w(),c=u("span"),d=S(a),_=w(),y=u("span"),v=S(p),g=w(),N.c(),r(l,"class","today-case-title svelte-1ltnnkq"),r(c,"class","today-case-type svelte-1ltnnkq"),r(y,"class","today-case-time svelte-1ltnnkq"),r(t,"class","today-case-header svelte-1ltnnkq"),r(e,"class","today-case svelte-1ltnnkq")},m(A,D){b(A,e,D),f(e,t),f(t,l),f(l,s),f(t,o),f(t,c),f(c,d),f(t,_),f(t,y),f(y,v),f(e,g),N.m(e,null),k||(q=I(t,"click",C),k=!0)},p(A,D){n=A,D[0]&4&&i!==(i=n[176].nodeTitle+"")&&z(s,i),D[0]&4&&a!==(a=Rl(n[176].nodeKind)+"")&&z(d,a),D[0]&4&&p!==(p=Ee(n[176].lastActivityAt)+"")&&z(v,p),H===(H=L(n))&&N?N.p(n,D):(N.d(1),N=H(n),N&&(N.c(),N.m(e,null)))},d(A){A&&h(e),N.d(),k=!1,q()}}}function kl(n){let e,t,l,i=le(n[2].events),s=[];for(let o=0;oАктивность появится позже
',r(e,"class","empty-state svelte-1ltnnkq")},m(t,l){b(t,e,l)},p:K,i:K,o:K,d(t){t&&h(e)}}}function Ps(n){let e,t,l,i,s,o,c,a,d,_,y,p;function v(q,C){return q[11].length===0?Gs:Ks}let g=v(n),k=g(n);return{c(){e=u("div"),t=u("div"),l=u("input"),i=w(),s=u("input"),o=w(),c=u("button"),a=S("Записать"),_=w(),k.c(),r(l,"type","text"),r(l,"placeholder","Что сделано"),r(l,"class","svelte-1ltnnkq"),r(s,"type","number"),r(s,"placeholder","Мин"),r(s,"min","1"),r(s,"class","svelte-1ltnnkq"),r(c,"class","btn btn-primary svelte-1ltnnkq"),c.disabled=d=!n[13].trim()||!n[12],r(t,"class","worklog-form svelte-1ltnnkq"),r(e,"class","worklog-tab svelte-1ltnnkq")},m(q,C){b(q,e,C),f(e,t),f(t,l),me(l,n[13]),f(t,i),f(t,s),me(s,n[12]),f(t,o),f(t,c),f(c,a),f(e,_),k.m(e,null),y||(p=[I(l,"input",n[113]),I(s,"input",n[114]),I(c,"click",n[77])],y=!0)},p(q,C){C[0]&8192&&l.value!==q[13]&&me(l,q[13]),C[0]&4096&&Ul(s.value)!==q[12]&&me(s,q[12]),C[0]&12288&&d!==(d=!q[13].trim()||!q[12])&&(c.disabled=d),g===(g=v(q))&&k?k.p(q,C):(k.d(1),k=g(q),k&&(k.c(),k.m(e,null)))},i:K,o:K,d(q){q&&h(e),k.d(),y=!1,ce(p)}}}function zs(n){let e;function t(s,o){return s[10].length===0?Js:Us}let l=t(n),i=l(n);return{c(){i.c(),e=ve()},m(s,o){i.m(s,o),b(s,e,o)},p(s,o){l===(l=t(s))&&i?i.p(s,o):(i.d(1),i=l(s),i&&(i.c(),i.m(e.parentNode,e)))},i:K,o:K,d(s){s&&h(e),i.d(s)}}}function Vs(n){let e,t,l,i,s,o,c,a,d,_,y,p,v,g,k,q,C,L,H,N=n[31].items.length>0&&wl(n);const A=[Zs,Xs],D=[];function F(E,J){return E[23]?0:1}p=F(n),v=D[p]=A[p](n);let B=n[20]&&!n[22]&&Cl(),T=n[27]&&Ml(n);return{c(){e=u("div"),t=u("div"),l=u("button"),i=S("+ Добавить файл"),s=w(),o=u("button"),c=S("+ Добавить папку"),a=w(),d=u("button"),d.textContent="+ Новый файл",_=w(),N&&N.c(),y=w(),v.c(),g=w(),B&&B.c(),k=w(),T&&T.c(),q=ve(),r(l,"class","btn btn-primary svelte-1ltnnkq"),l.disabled=n[20],r(o,"class","btn svelte-1ltnnkq"),o.disabled=n[20],r(d,"class","btn svelte-1ltnnkq"),r(t,"class","tab-toolbar svelte-1ltnnkq"),r(e,"class","files-tab svelte-1ltnnkq")},m(E,J){b(E,e,J),f(e,t),f(t,l),f(l,i),f(t,s),f(t,o),f(o,c),f(t,a),f(t,d),f(t,_),N&&N.m(t,null),f(e,y),D[p].m(e,null),f(e,g),B&&B.m(e,null),b(E,k,J),T&&T.m(E,J),b(E,q,J),C=!0,L||(H=[I(l,"click",n[78]),I(o,"click",n[79]),I(d,"click",n[50])],L=!0)},p(E,J){(!C||J[0]&1048576)&&(l.disabled=E[20]),(!C||J[0]&1048576)&&(o.disabled=E[20]),E[31].items.length>0?N?N.p(E,J):(N=wl(E),N.c(),N.m(t,null)):N&&(N.d(1),N=null);let te=p;p=F(E),p===te?D[p].p(E,J):(he(),oe(D[te],1,1,()=>{D[te]=null}),be(),v=D[p],v?v.p(E,J):(v=D[p]=A[p](E),v.c()),ne(v,1),v.m(e,g)),E[20]&&!E[22]?B||(B=Cl(),B.c(),B.m(e,null)):B&&(B.d(1),B=null),E[27]?T?(T.p(E,J),J[0]&134217728&&ne(T,1)):(T=Ml(E),T.c(),ne(T,1),T.m(q.parentNode,q)):T&&(he(),oe(T,1,1,()=>{T=null}),be())},i(E){C||(ne(v),ne(T),C=!0)},o(E){oe(v),oe(T),C=!1},d(E){E&&(h(e),h(k),h(q)),N&&N.d(),D[p].d(),B&&B.d(),T&&T.d(E),L=!1,ce(H)}}}function Rs(n){let e,t,l,i,s,o,c,a=n[17]&&Tl(n);function d(p,v){return p[8].length===0&&!p[17]?to:eo}let _=d(n),y=_(n);return{c(){e=u("div"),t=u("div"),l=u("button"),l.textContent="+ Добавить заметку",i=w(),a&&a.c(),s=w(),y.c(),r(l,"class","btn btn-primary svelte-1ltnnkq"),r(t,"class","tab-toolbar svelte-1ltnnkq"),r(e,"class","notes-tab svelte-1ltnnkq")},m(p,v){b(p,e,v),f(e,t),f(t,l),f(e,i),a&&a.m(e,null),f(e,s),y.m(e,null),o||(c=I(l,"click",n[70]),o=!0)},p(p,v){p[17]?a?a.p(p,v):(a=Tl(p),a.c(),a.m(e,s)):a&&(a.d(1),a=null),_===(_=d(p))&&y?y.p(p,v):(y.d(1),y=_(p),y&&(y.c(),y.m(e,null)))},i:K,o:K,d(p){p&&h(e),a&&a.d(),y.d(),o=!1,c()}}}function Ws(n){let e,t,l=n[6].title+"",i,s,o,c,a,d,_=n[6].type+"",y,p,v,g,k,q=(n[6].section||"—")+"",C,L,H,N,A,D=ge(n[6].createdAt)+"",F,B,T,E,J,te,G,O,X,j,Y,x,Z,Q,V=n[8].length>0&&Sl(n),W=n[11].length>0&&Nl(n);return{c(){e=u("div"),t=u("h2"),i=S(l),s=w(),o=u("div"),c=u("div"),a=u("span"),a.textContent="Тип",d=u("span"),y=S(_),p=w(),v=u("div"),g=u("span"),g.textContent="Раздел",k=u("span"),C=S(q),L=w(),H=u("div"),N=u("span"),N.textContent="Создано",A=u("span"),F=S(D),B=w(),T=u("div"),E=u("button"),E.innerHTML=`
- Новая заметка`,J=w(),te=u("button"),te.innerHTML=`
- Добавить файл`,G=w(),O=u("button"),O.innerHTML=`
- Добавить действие`,X=w(),j=u("button"),j.innerHTML=`
- Записать время`,Y=w(),V&&V.c(),x=w(),W&&W.c(),r(t,"class","svelte-1ltnnkq"),r(a,"class","meta-label svelte-1ltnnkq"),r(d,"class","svelte-1ltnnkq"),r(c,"class","meta-item svelte-1ltnnkq"),r(g,"class","meta-label svelte-1ltnnkq"),r(k,"class","svelte-1ltnnkq"),r(v,"class","meta-item svelte-1ltnnkq"),r(N,"class","meta-label svelte-1ltnnkq"),r(A,"class","svelte-1ltnnkq"),r(H,"class","meta-item svelte-1ltnnkq"),r(o,"class","meta-grid svelte-1ltnnkq"),r(E,"class","qa-btn svelte-1ltnnkq"),r(te,"class","qa-btn svelte-1ltnnkq"),r(O,"class","qa-btn svelte-1ltnnkq"),O.disabled=!0,r(O,"title","Следующий этап"),r(j,"class","qa-btn svelte-1ltnnkq"),r(T,"class","quick-actions svelte-1ltnnkq"),r(e,"class","overview svelte-1ltnnkq")},m(U,ee){b(U,e,ee),f(e,t),f(t,i),f(e,s),f(e,o),f(o,c),f(c,a),f(c,d),f(d,y),f(o,p),f(o,v),f(v,g),f(v,k),f(k,C),f(o,L),f(o,H),f(H,N),f(H,A),f(A,F),f(e,B),f(e,T),f(T,E),f(T,J),f(T,te),f(T,G),f(T,O),f(T,X),f(T,j),f(e,Y),V&&V.m(e,null),f(e,x),W&&W.m(e,null),Z||(Q=[I(E,"click",n[91]),I(te,"click",n[92]),I(j,"click",n[93])],Z=!0)},p(U,ee){ee[0]&64&&l!==(l=U[6].title+"")&&z(i,l),ee[0]&64&&_!==(_=U[6].type+"")&&z(y,_),ee[0]&64&&q!==(q=(U[6].section||"—")+"")&&z(C,q),ee[0]&64&&D!==(D=ge(U[6].createdAt)+"")&&z(F,D),U[8].length>0?V?V.p(U,ee):(V=Sl(U),V.c(),V.m(e,x)):V&&(V.d(1),V=null),U[11].length>0?W?W.p(U,ee):(W=Nl(U),W.c(),W.m(e,null)):W&&(W.d(1),W=null)},i:K,o:K,d(U){U&&h(e),V&&V.d(),W&&W.d(),Z=!1,ce(Q)}}}function Ks(n){let e,t=le(n[11]),l=[];for(let i=0;iЗаписей работы пока нет',r(e,"class","empty-state svelte-1ltnnkq")},m(t,l){b(t,e,l)},p:K,d(t){t&&h(e)}}}function gl(n){let e,t,l=n[154].summary+"",i,s,o,c=n[154].minutes+"",a,d,_=ge(n[154].createdAt)+"",y,p;return{c(){e=u("div"),t=u("div"),i=S(l),s=w(),o=u("div"),a=S(c),d=S(" мин · "),y=S(_),p=w(),r(t,"class","svelte-1ltnnkq"),r(o,"class","wl-meta svelte-1ltnnkq"),r(e,"class","worklog-entry svelte-1ltnnkq")},m(v,g){b(v,e,g),f(e,t),f(t,i),f(e,s),f(e,o),f(o,a),f(o,d),f(o,y),f(e,p)},p(v,g){g[0]&2048&&l!==(l=v[154].summary+"")&&z(i,l),g[0]&2048&&c!==(c=v[154].minutes+"")&&z(a,c),g[0]&2048&&_!==(_=ge(v[154].createdAt)+"")&&z(y,_)},d(v){v&&h(e)}}}function Us(n){let e,t=le(n[10]),l=[];for(let i=0;iДействий пока нет',r(e,"class","empty-state svelte-1ltnnkq")},m(t,l){b(t,e,l)},p:K,d(t){t&&h(e)}}}function yl(n){let e,t,l=n[165].title+"",i,s,o=n[165].type+"",c,a,d,_,y,p;function v(){return n[112](n[165])}return{c(){e=u("div"),t=u("span"),i=S(l),s=u("span"),c=S(o),a=w(),d=u("button"),d.textContent="Запустить",_=w(),r(t,"class","svelte-1ltnnkq"),r(s,"class","action-type svelte-1ltnnkq"),r(d,"class","btn btn-sm svelte-1ltnnkq"),r(e,"class","action-card svelte-1ltnnkq")},m(g,k){b(g,e,k),f(e,t),f(t,i),f(e,s),f(s,c),f(e,a),f(e,d),f(e,_),y||(p=I(d,"click",v),y=!0)},p(g,k){n=g,k[0]&1024&&l!==(l=n[165].title+"")&&z(i,l),k[0]&1024&&o!==(o=n[165].type+"")&&z(c,o)},d(g){g&&h(e),y=!1,p()}}}function wl(n){let e,t,l=n[31].items.length+"",i,s,o;return{c(){e=u("button"),t=S("Вставить "),i=S(l),r(e,"class","btn svelte-1ltnnkq")},m(c,a){b(c,e,a),f(e,t),f(e,i),s||(o=I(e,"click",n[55]),s=!0)},p(c,a){a[1]&1&&l!==(l=c[31].items.length+"")&&z(i,l)},d(c){c&&h(e),s=!1,o()}}}function Xs(n){let e,t,l,i,s,o,c;const a=[Qs,Ys],d=[];function _(g,k){return g[25].length>0?0:1}e=_(n),t=d[e]=a[e](n);const y=[$s,xs],p=[];function v(g,k){return g[26].length===0?0:1}return i=v(n),s=p[i]=y[i](n),{c(){t.c(),l=w(),s.c(),o=ve()},m(g,k){d[e].m(g,k),b(g,l,k),p[i].m(g,k),b(g,o,k),c=!0},p(g,k){let q=e;e=_(g),e===q?d[e].p(g,k):(he(),oe(d[q],1,1,()=>{d[q]=null}),be(),t=d[e],t?t.p(g,k):(t=d[e]=a[e](g),t.c()),ne(t,1),t.m(l.parentNode,l));let C=i;i=v(g),i===C?p[i].p(g,k):(he(),oe(p[C],1,1,()=>{p[C]=null}),be(),s=p[i],s?s.p(g,k):(s=p[i]=y[i](g),s.c()),ne(s,1),s.m(o.parentNode,o))},i(g){c||(ne(t),ne(s),c=!0)},o(g){oe(t),oe(s),c=!1},d(g){g&&(h(l),h(o)),d[e].d(g),p[i].d(g)}}}function Zs(n){let e;return{c(){e=u("div"),e.innerHTML='Загрузка...
',r(e,"class","empty-state svelte-1ltnnkq")},m(t,l){b(t,e,l)},p:K,i:K,o:K,d(t){t&&h(e)}}}function Ys(n){let e,t;return e=new ln({props:{crumbs:[{name:"Файлы"}]}}),{c(){Te(e.$$.fragment)},m(l,i){ye(e,l,i),t=!0},p:K,i(l){t||(ne(e.$$.fragment,l),t=!0)},o(l){oe(e.$$.fragment,l),t=!1},d(l){we(e,l)}}}function Qs(n){let e,t,l,i,s,o;return e=new ln({props:{crumbs:[{name:"Файлы"},...n[25]]}}),e.$on("navigate",n[98]),{c(){Te(e.$$.fragment),t=w(),l=u("button"),l.innerHTML=`
- Back`,r(l,"class","btn btn-sm back-btn svelte-1ltnnkq")},m(c,a){ye(e,c,a),b(c,t,a),b(c,l,a),i=!0,s||(o=I(l,"click",n[46]),s=!0)},p(c,a){const d={};a[0]&33554432&&(d.crumbs=[{name:"Файлы"},...c[25]]),e.$set(d)},i(c){i||(ne(e.$$.fragment,c),i=!0)},o(c){oe(e.$$.fragment,c),i=!1},d(c){c&&(h(t),h(l)),we(e,c),s=!1,o()}}}function xs(n){let e,t=[],l=new Map,i,s=le(n[26]);const o=c=>c[162].id;for(let c=0;c0?"В этой папке пока нет файлов":"В этом проекте пока нет файлов",o,c,a,d,_,y,p,v,g,k;return{c(){e=u("div"),t=u("div"),t.innerHTML=' ',l=w(),i=u("p"),o=S(s),c=w(),a=u("p"),a.textContent="Добавьте файл или папку, чтобы сохранить материалы проекта.",d=w(),_=u("div"),y=u("button"),y.textContent="Добавить файл",p=w(),v=u("button"),v.textContent="Добавить папку",r(t,"class","empty-icon svelte-1ltnnkq"),r(i,"class","svelte-1ltnnkq"),r(a,"class","hint svelte-1ltnnkq"),r(y,"class","btn btn-primary svelte-1ltnnkq"),r(v,"class","btn svelte-1ltnnkq"),r(_,"class","empty-actions svelte-1ltnnkq"),r(e,"class","empty-state svelte-1ltnnkq")},m(q,C){b(q,e,C),f(e,t),f(e,l),f(e,i),f(i,o),f(e,c),f(e,a),f(e,d),f(e,_),f(_,y),f(_,p),f(_,v),g||(k=[I(y,"click",n[78]),I(v,"click",n[79])],g=!0)},p(q,C){C[0]&33554432&&s!==(s=q[25].length>0?"В этой папке пока нет файлов":"В этом проекте пока нет файлов")&&z(o,s)},i:K,o:K,d(q){q&&h(e),g=!1,ce(k)}}}function ql(n,e){let t,l,i;return l=new is({props:{item:e[162],selected:e[32].includes(e[162].id),onDragStart:e[59],onDragOver:e[60],onDrop:e[61]}}),l.$on("navigate",e[99]),l.$on("preview",e[100]),l.$on("openExternal",e[101]),l.$on("showInFolder",e[102]),l.$on("delete",e[103]),l.$on("rename",e[104]),l.$on("duplicate",e[105]),l.$on("cut",e[106]),l.$on("copy",e[107]),l.$on("selectOne",e[108]),l.$on("toggleSelect",e[109]),l.$on("rangeSelect",e[110]),{key:n,first:null,c(){t=ve(),Te(l.$$.fragment),this.first=t},m(s,o){b(s,t,o),ye(l,s,o),i=!0},p(s,o){e=s;const c={};o[0]&67108864&&(c.item=e[162]),o[0]&67108864|o[1]&2&&(c.selected=e[32].includes(e[162].id)),l.$set(c)},i(s){i||(ne(l.$$.fragment,s),i=!0)},o(s){oe(l.$$.fragment,s),i=!1},d(s){s&&h(t),we(l,s)}}}function Cl(n){let e;return{c(){e=u("div"),e.innerHTML='Сканирование...
',r(e,"class","empty-state svelte-1ltnnkq")},m(t,l){b(t,e,l)},d(t){t&&h(e)}}}function Ml(n){let e,t;return e=new gs({props:{item:n[27],content:n[28],loading:n[29],error:n[30]}}),e.$on("close",n[49]),e.$on("openExternal",n[111]),{c(){Te(e.$$.fragment)},m(l,i){ye(e,l,i),t=!0},p(l,i){const s={};i[0]&134217728&&(s.item=l[27]),i[0]&268435456&&(s.content=l[28]),i[0]&536870912&&(s.loading=l[29]),i[0]&1073741824&&(s.error=l[30]),e.$set(s)},i(l){t||(ne(e.$$.fragment,l),t=!0)},o(l){oe(e.$$.fragment,l),t=!1},d(l){we(e,l)}}}function Tl(n){let e,t,l,i,s,o,c,a,d;return{c(){e=u("div"),t=u("input"),l=w(),i=u("div"),s=u("button"),s.textContent="Создать",o=w(),c=u("button"),c.textContent="Отмена",r(t,"type","text"),r(t,"placeholder","Название заметки"),r(t,"class","svelte-1ltnnkq"),r(s,"class","btn btn-primary svelte-1ltnnkq"),r(c,"class","btn svelte-1ltnnkq"),r(i,"class","form-actions svelte-1ltnnkq"),r(e,"class","create-form svelte-1ltnnkq")},m(_,y){b(_,e,y),f(e,t),me(t,n[18]),f(e,l),f(e,i),f(i,s),f(i,o),f(i,c),a||(d=[I(t,"input",n[95]),I(t,"keydown",n[96]),I(s,"click",n[72]),I(c,"click",n[71])],a=!0)},p(_,y){y[0]&262144&&t.value!==_[18]&&me(t,_[18])},d(_){_&&h(e),a=!1,ce(d)}}}function eo(n){let e,t=le(n[8]),l=[];for(let i=0;iНет заметокСоздайте первую заметку для этого дела.
',r(e,"class","empty-state svelte-1ltnnkq")},m(t,l){b(t,e,l)},p:K,d(t){t&&h(e)}}}function Ll(n){let e,t,l=n[157].title+"",i,s,o,c=ge(n[157].createdAt)+"",a,d,_,y;function p(){return n[97](n[157])}return{c(){e=u("div"),t=u("div"),i=S(l),s=w(),o=u("div"),a=S(c),d=w(),r(t,"class","note-card-title svelte-1ltnnkq"),r(o,"class","note-card-date svelte-1ltnnkq"),r(e,"class","note-card svelte-1ltnnkq")},m(v,g){b(v,e,g),f(e,t),f(t,i),f(e,s),f(e,o),f(o,a),f(e,d),_||(y=I(e,"click",p),_=!0)},p(v,g){n=v,g[0]&256&&l!==(l=n[157].title+"")&&z(i,l),g[0]&256&&c!==(c=ge(n[157].createdAt)+"")&&z(a,c)},d(v){v&&h(e),_=!1,y()}}}function Sl(n){let e,t,l,i=le(n[8].slice(0,5)),s=[];for(let o=0;on[118].call(v)),r(_,"class","form-group svelte-1ltnnkq"),r(q,"class","btn btn-primary svelte-1ltnnkq"),r(L,"class","btn svelte-1ltnnkq"),r(k,"class","modal-actions svelte-1ltnnkq"),r(t,"class","modal svelte-1ltnnkq"),r(e,"class","modal-overlay svelte-1ltnnkq")},m(F,B){b(F,e,B),f(e,t),f(t,l),f(t,i),f(t,s),f(s,o),f(s,c),f(s,a),me(a,n[15]),f(t,d),f(t,_),f(_,y),f(_,p),f(_,v);for(let T=0;T⚒ Верстак ',i=w(),s=u("nav"),o=u("div"),c=u("div"),c.textContent="Разделы",a=w();for(let P=0;P{Q[_e]=null}),be(),A=Q[N],A?A.p(P,se):(A=Q[N]=Z[N](P),A.c()),ne(A,1),A.m(k,D)),!P[9]&&!P[6]&&P[5]!=="today"&&P[5]!=="inbox"?W?W.p(P,se):(W=Fl(P),W.c(),W.m(k,F)):W&&(W.d(1),W=null),P[14]?U?U.p(P,se):(U=Hl(P),U.c(),U.m(k,B)):U&&(U.d(1),U=null),P[22]&&P[21]?ee?ee.p(P,se):(ee=Bl(P),ee.c(),ee.m(k,T)):ee&&(ee.d(1),ee=null),P[38]?fe?fe.p(P,se):(fe=Ol(P),fe.c(),fe.m(k,E)):fe&&(fe.d(1),fe=null),P[33]?re?(re.p(P,se),se[1]&4&&ne(re,1)):(re=zl(P),re.c(),ne(re,1),re.m(k,null)):re&&(he(),oe(re,1,1,()=>{re=null}),be())},i(P){J||(ne(A),ne(re),J=!0)},o(P){oe(A),oe(re),J=!1},d(P){P&&h(e),pe(G,P),O&&O.d(),Y.d(),x&&x.d(),Q[N].d(),W&&W.d(),U&&U.d(),ee&&ee.d(),fe&&fe.d(),re&&re.d()}}}function $(n,...e){try{if(window.go&&window.go.main&&window.go.main.App){const t=window.go.main.App[n];if(typeof t=="function")return t(...e)}}catch(t){console.error("Wails call error:",n,t)}return Promise.reject(new Error("Wails not connected: "+n))}function Je(n){return{note_created:"Заметка создана",note_updated:"Заметка изменена",file_added:"Файл добавлен",file_deleted:"Файл удалён",file_renamed:"Файл переименован",file_copied:"Файл скопирован",file_moved:"Файл перемещён",folder_added:"Папка добавлена",folder_deleted:"Папка удалена",folder_renamed:"Папка переименована",node_created:"Дело создано",node_updated:"Дело изменено"}[n]||n}function Vl(n){return n==="note_created"||n==="file_added"||n==="folder_added"||n==="node_created"?"+":n==="file_deleted"||n==="folder_deleted"?"×":n==="file_renamed"||n==="folder_renamed"||n==="note_updated"||n==="node_updated"?"~":n==="file_copied"?"⧉":n==="file_moved"?"→":"•"}function Ee(n){if(!n)return"";try{return new Date(n).toLocaleTimeString("ru-RU",{hour:"2-digit",minute:"2-digit"})}catch{return""}}function ge(n){if(!n)return"";try{return new Date(n).toLocaleDateString("ru-RU",{day:"numeric",month:"short"})}catch{return n}}function Rl(n){return{project:"Проект",client:"Клиент",document:"Документ",recipe:"Рецепт",archive:"Архив",case:"Дело"}[n]||n||"Дело"}function Fe(n,e,t,l){return n=Math.abs(n)%100,n>=5&&n<=20?l:(n%=10,n===1?e:n>=2&&n<=4?t:l)}const Wl=n=>n.id!=="today"&&n.id!=="inbox";function no(n,e,t){let l=[],i=[],s=null,o="",c="",a="",d=null,_="overview",y=[],p=null,v=[],g=[],k=[],q="",C="",L=!1,H="",N="clients",A=!1,D="",F=!0,B=!1,T=null,E=!1,J="",te=!1,G=null,O=[],X=[],j=null,Y="",x=!1,Z="",Q={items:[],mode:"copy"},V=[],W=[],U=!1,ee="",fe="",re=!1,P="Удалить",se=null,_e=null,ue=!1,qe="",Le="",Se="";const nn=[{id:"overview",label:"Обзор"},{id:"notes",label:"Заметки"},{id:"files",label:"Файлы"},{id:"actions",label:"Действия"},{id:"worklog",label:"Журнал"},{id:"activity",label:"Активность"}];let Ze=null;Jl(async()=>{try{t(3,o=await $("VerstakVersion")||"verstak-gui/v2"),t(0,l=await $("ListSections")||[])}catch(m){t(4,c=String(m)),t(0,l=[{id:"today",label:"Сегодня"},{id:"inbox",label:"Неразобранное"},{id:"clients",label:"Клиенты"},{id:"projects",label:"Проекты"},{id:"recipes",label:"Рецепты"},{id:"documents",label:"Документы"},{id:"archive",label:"Архив"}])}window.runtime&&window.runtime.EventsOn&&(window.runtime.EventsOn("files-dropped",Dn),Ze=()=>window.runtime.EventsOff("files-dropped")),window.addEventListener("keydown",wt),t(19,F=!1)}),Xl(()=>{Ze&&Ze(),window.removeEventListener("keydown",wt)});async function Ye(m){t(5,a=m),t(6,d=null),t(7,_="overview"),t(8,y=[]),v=[],t(10,g=[]),t(11,k=[]),t(14,L=!1),t(4,c=""),t(2,s=null),t(1,i=[]);try{m==="today"?t(2,s=await $("ListTodayView")||{cases:[]}):t(1,i=await $("ListNodesBySection",m)||[])}catch(M){t(4,c=String(M)),t(1,i=[]),t(2,s={cases:[]})}}async function Qe(m){t(6,d=m),t(7,_="overview"),t(8,y=[]),v=[],t(10,g=[]),t(11,k=[]),t(26,X=[]),t(25,O=[]),t(24,G=null),t(27,j=null),t(28,Y=""),t(32,V=[]),W=[],t(9,p=null),t(14,L=!1),t(17,A=!1),t(4,c=""),await ut(m.id)}async function ut(m){try{t(8,y=await $("ListNotes",m)||[])}catch{}try{v=await $("ListFiles",m)||[]}catch{}try{t(10,g=await $("ListActions",m)||[])}catch{}try{t(11,k=await $("ListWorklog",m)||[])}catch{}}async function de(m){t(23,te=!0);try{let M=await $("ListItems",m)||[];M.sort((ie,ae)=>ie.type!==ae.type?ie.type==="folder"?-1:1:(ie.name||"").localeCompare(ae.name||"")),t(26,X=M)}catch{t(26,X=[])}t(23,te=!1)}async function xe(m){if(d){try{const M=await $("GetNodeDetail",m);M&&t(25,O=[...O,{id:m,name:M.title}])}catch{t(25,O=[...O,{id:m,name:"..."}])}t(24,G=m),await de(m)}}function dt(){if(O.length<2)t(25,O=[]),t(24,G=null),de(d.id);else{const m=O[O.length-2];t(25,O=O.slice(0,-1)),t(24,G=m.id),de(m.id)}}function mt(m){const M=O[m];t(25,O=O.slice(0,m+1)),t(24,G=M.id),de(M.id)}async function $e(m){t(27,j=m),t(28,Y=""),t(30,Z=""),t(29,x=!0);try{Yi(m)?t(28,Y=await $("GetFileBase64",m.fileId)||""):Qi(m)&&t(28,Y=await $("ReadFileText",m.fileId)||"")}catch(M){t(30,Z=String(M))}t(29,x=!1)}function et(){t(27,j=null),t(28,Y=""),t(30,Z="")}async function sn(){const m=prompt("Введите имя файла:");if(!(!m||!m.trim()))try{const M=G||d.id;await $("CreateEmptyFile",M,m.trim()),await de(M)}catch(M){t(4,c=String(M))}}async function pt(m){try{await $("DuplicateNode",m);const M=G||d.id;await de(M)}catch(M){t(4,c=String(M))}}function _t(m){const M=X.find(ie=>ie.id===m);M&&Ct(M.id,M.name)}function vt(m){t(31,Q={items:[m],mode:"cut"})}function kt(m){t(31,Q={items:[m],mode:"copy"})}async function ht(){if(Q.items.length===0)return;const m=G||d.id;try{if(Q.mode==="copy")for(const M of Q.items)await $("DuplicateNode",M);else for(const M of Q.items)await $("MoveNode",M,m);t(31,Q={items:[],mode:"copy"}),await de(m)}catch(M){t(4,c=String(M))}}function bt(m){V.includes(m)?t(32,V=V.filter(M=>M!==m)):t(32,V=[...V,m])}function gt(m){t(32,V=[m])}function on(){t(32,V=X.map(m=>m.id))}function yt(m){if(X.length===0)return;const M=V.length>0?V[V.length-1]:X[0].id,ie=X.findIndex(Ce=>Ce.id===M),ae=X.findIndex(Ce=>Ce.id===m);if(ie===-1||ae===-1)return;const Ae=Math.min(ie,ae),st=Math.max(ie,ae),pi=X.slice(Ae,st+1).map(Ce=>Ce.id),Ht=new Set(V);pi.forEach(Ce=>Ht.add(Ce)),t(32,V=[...Ht])}function rn(){t(32,V=[])}function tt(m){return m.length>0?m:X.map(M=>M.id)}async function cn(){var ie;const m=tt(V),M=m.length===1&&((ie=X.find(ae=>ae.id===m[0]))==null?void 0:ie.type)==="folder"?"папку":`файлов (${m.length})`;Ve({title:"Удаление",message:`Удалить ${M}?`,confirmText:"Удалить",danger:!0,onConfirm:async()=>{for(const Ae of m)try{await $("DeleteFileOrFolder",Ae)}catch(st){t(4,c=String(st))}t(32,V=[]);const ae=G||d.id;await de(ae)}})}function an(){const m=tt(V);t(31,Q={items:m,mode:"cut"}),t(32,V=[])}function fn(){const m=tt(V);t(31,Q={items:m,mode:"copy"}),t(32,V=[])}function un(m,M){const ie=V.includes(M)?V:[M];W=ie,m.dataTransfer.effectAllowed="move",m.dataTransfer.setData("text/plain",ie.join(","))}function dn(m,M){const ie=X.find(ae=>ae.id===M);ie&&ie.type==="folder"&&(m.preventDefault(),m.dataTransfer.dropEffect="move")}async function mn(m,M){if(m.preventDefault(),W.length!==0){for(const ie of W)try{await $("MoveNode",ie,M)}catch(ae){t(4,c=String(ae))}W=[],t(32,V=[]),await de(G||d.id)}}function wt(m){if(_==="files"&&!(m.target.tagName==="INPUT"||m.target.tagName==="TEXTAREA"))if(m.ctrlKey||m.metaKey)m.key==="c"||m.key==="C"?(m.preventDefault(),fn()):m.key==="x"||m.key==="X"?(m.preventDefault(),an()):m.key==="v"||m.key==="V"?(m.preventDefault(),ht()):m.key==="a"||m.key==="A"?(m.preventDefault(),on()):m.key==="o"||m.key==="O"?(m.preventDefault(),pn()):m.key==="Enter"&&(m.preventDefault(),qt());else if(m.key==="Enter")m.preventDefault(),qt();else if(m.key==="Delete"||m.key==="Backspace"){if(j){m.preventDefault(),et();return}if(V.length>0){m.preventDefault(),cn();return}if(m.key==="Backspace"&&O.length>0){m.preventDefault(),dt();return}}else if(m.key==="Escape"){if(j){et();return}if(V.length>0){rn();return}}else m.key==="F2"&&(m.preventDefault(),_n())}function qt(){if(V.length===1){const m=X.find(M=>M.id===V[0]);m&&(m.type==="folder"?xe(m.id):$e(m))}}function pn(){if(V.length===1){const m=X.find(M=>M.id===V[0]);m&&m.fileId&&$("OpenFile",m.fileId)}}function Ct(m,M){qe=m,t(39,Le=M),t(40,Se=""),t(38,ue=!0)}function _n(){if(V.length===1){const m=X.find(M=>M.id===V[0]);m&&Ct(m.id,m.name)}}async function Mt(){const m=Le.trim();if(!m){t(40,Se="Имя не может быть пустым");return}try{await $("ValidateName",m)}catch{t(40,Se="Недопустимое имя");return}t(38,ue=!1),qe="";try{await $("RenameNode",qe,m);const M=G||d.id;await de(M)}catch(M){t(4,c=String(M))}}function vn(){t(38,ue=!1),qe="",t(39,Le=""),t(40,Se="")}function kn(m){m.key==="Enter"?Mt():t(40,Se="")}function Ve(m){t(34,ee=m.title||"Подтверждение"),t(35,fe=m.message||""),t(36,re=m.danger!==void 0?m.danger:!0),t(37,P=m.confirmText||"Удалить"),se=m.onConfirm||null,_e=m.onCancel||null,t(33,U=!0)}function Tt(){t(33,U=!1),se=null,_e=null}function hn(){se&&se(),Tt()}function bn(){_e&&_e(),Tt()}function gn(){t(14,L=!0),t(15,H=""),t(16,N=a||"clients")}function yn(){t(14,L=!1),t(15,H="")}async function Lt(){if(H.trim())try{const m=await $("CreateNode","","case",H.trim(),N);t(14,L=!1),t(15,H=""),await Ye(N)}catch(m){t(4,c=String(m))}}function St(){t(17,A=!0),t(18,D="")}function wn(){t(17,A=!1),t(18,D="")}async function Dt(){if(!(!D.trim()||!d))try{const m=await $("CreateNote",d.id,D.trim());t(8,y=[...y,m&&m.id?m:{id:Date.now().toString(),title:D.trim(),createdAt:new Date().toISOString()}]),t(17,A=!1),t(18,D="")}catch{const M={id:Date.now().toString(),title:D.trim(),createdAt:new Date().toISOString()};t(8,y=[...y,M]),t(17,A=!1),t(18,D="")}}async function lt(m){if(p&&p.dirty){Ve({title:"Несохранённые изменения",message:"Закрыть редактор? Все несохранённые изменения будут потеряны.",confirmText:"Закрыть",danger:!1,onConfirm:async()=>{await Nt(m)}});return}await Nt(m)}async function Nt(m){try{const M=await $("ReadNote",m.id);t(9,p={id:m.id,title:m.title,content:M||"",dirty:!1})}catch{t(9,p={id:m.id,title:m.title,content:"# "+m.title+`
-
-`,dirty:!1})}}function qn(){if(p&&p.dirty){Ve({title:"Несохранённые изменения",message:"Закрыть редактор? Все несохранённые изменения будут потеряны.",confirmText:"Закрыть",danger:!1,onConfirm:()=>{t(9,p=null)}});return}t(9,p=null)}function Cn(m){p&&(t(9,p.content=m.target.value,p),t(9,p.dirty=!0,p))}async function Mn(){if(p)try{await $("SaveNote",p.id,p.content),t(9,p.dirty=!1,p)}catch{t(9,p.dirty=!1,p)}}async function Tn(){const m=parseInt(q,10);if(!(!C.trim()||isNaN(m)||m<=0||!d)){try{const M=await $("CreateWorklog",d.id,C.trim(),m);t(11,k=[...k,M&&M.id?M:{id:Date.now().toString(),nodeId:d.id,summary:C.trim(),minutes:m,createdAt:new Date().toISOString()}])}catch{t(11,k=[...k,{id:Date.now().toString(),nodeId:d.id,summary:C.trim(),minutes:m,createdAt:new Date().toISOString()}])}t(13,C=""),t(12,q="")}}async function It(){const m=await $("PickFile");m&&await nt(d.id,m)}async function Ln(){const m=await $("PickDirectory");m&&await nt(d.id,m)}async function nt(m,M){t(20,B=!0);try{const ie=await $("PreviewImport",M);t(21,T=ie),J=M,t(22,E=!0)}catch(ie){t(4,c=String(ie))}t(20,B=!1)}async function it(m){try{const M=m==="copy"?await $("AddPathCopy",d.id,J):await $("AddPathLink",d.id,J);t(22,E=!1),t(21,T=null),t(25,O=[]),t(24,G=null),await Promise.all([ut(d.id),de(d.id)])}catch(M){t(4,c=String(M))}}function Sn(){t(22,E=!1),t(21,T=null)}async function Et({id:m,type:M}){Ve({title:"Удаление",message:`Удалить ${M==="folder"?"папку":"файл"}?`,confirmText:"Удалить",danger:!0,onConfirm:async()=>{try{await $("DeleteFileOrFolder",m),v=v.filter(Ae=>Ae.nodeId!==m);const ae=G||d.id;await de(ae)}catch(ae){t(4,c=String(ae))}}})}async function Dn(m){if(!m||m.length===0)return;if(!d){t(4,c="Сначала выберите дело для добавления файлов");return}const M=m[0];await nt(d.id,M)}function Nn(m){return _===m?"tab active":"tab"}async function Ft(m){try{const M=await $("GetNodeDetail",m);M&&Qe(M)}catch(M){t(4,c=String(M))}}const In=m=>Ye(m.id),En=m=>Qe(m),Fn=()=>t(4,c=""),Hn=()=>t(4,c="");function jn(){p.content=this.value,t(9,p)}const Bn=m=>{t(7,_=m.id),m.id==="files"&&d&&X.length===0&&!G&&de(d.id)},An=()=>{t(7,_="notes"),St()},On=()=>{t(7,_="files"),It()},Pn=()=>t(7,_="worklog"),zn=m=>lt(m);function Vn(){D=this.value,t(18,D)}const Rn=m=>m.key==="Enter"&&Dt(),Wn=m=>lt(m),Kn=m=>{const M=m.detail;M===0?(t(25,O=[]),t(24,G=null),de(d.id)):mt(M-1)},Gn=m=>xe(m.detail),Un=m=>$e(m.detail),Jn=m=>$("OpenFile",m.detail),Xn=m=>$("OpenFolder",m.detail),Zn=m=>Et(m.detail),Yn=m=>_t(m.detail.id),Qn=m=>pt(m.detail),xn=m=>vt(m.detail),$n=m=>kt(m.detail),ei=m=>gt(m.detail),ti=m=>bt(m.detail),li=m=>yt(m.detail),ni=m=>$("OpenFile",m.detail),ii=m=>$("RunAction",m.id);function si(){C=this.value,t(13,C)}function oi(){q=Ul(this.value),t(12,q)}const ri=m=>Ft(m.nodeId);function ci(){H=this.value,t(15,H)}const ai=m=>m.key==="Enter"&&Lt();function fi(){N=gi(this),t(16,N),t(0,l)}const ui=()=>it("copy"),di=()=>it("link");function mi(){Le=this.value,t(39,Le)}return[l,i,s,o,c,a,d,_,y,p,g,k,q,C,L,H,N,A,D,F,B,T,E,te,G,O,X,j,Y,x,Z,Q,V,U,ee,fe,re,P,ue,Le,Se,nn,Ye,Qe,de,xe,dt,mt,$e,et,sn,pt,_t,vt,kt,ht,bt,gt,yt,un,dn,mn,Mt,vn,kn,hn,bn,gn,yn,Lt,St,wn,Dt,lt,qn,Cn,Mn,Tn,It,Ln,it,Sn,Et,Nn,Ft,In,En,Fn,Hn,jn,Bn,An,On,Pn,zn,Vn,Rn,Wn,Kn,Gn,Un,Jn,Xn,Zn,Yn,Qn,xn,$n,ei,ti,li,ni,ii,si,oi,ri,ci,ai,fi,ui,di,mi]}class io extends Be{constructor(e){super(),je(this,e,no,lo,He,{},null,[-1,-1,-1,-1,-1,-1,-1])}}new io({target:document.getElementById("app")});
diff --git a/cmd/verstak-gui/frontend-dist/assets/main-DtITCkHU.js b/cmd/verstak-gui/frontend-dist/assets/main-DtITCkHU.js
new file mode 100644
index 0000000..86bdd7b
--- /dev/null
+++ b/cmd/verstak-gui/frontend-dist/assets/main-DtITCkHU.js
@@ -0,0 +1,16 @@
+var Hi=Object.defineProperty;var ji=(l,e,t)=>e in l?Hi(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t;var dt=(l,e,t)=>ji(l,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function t(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(i){if(i.ep)return;i.ep=!0;const s=t(i);fetch(i.href,s)}})();function q(){}function ln(l){return l()}function Vt(){return Object.create(null)}function se(l){l.forEach(ln)}function nn(l){return typeof l=="function"}function Be(l,e){return l!=l?e==e:l!==e||l&&typeof l=="object"||typeof l=="function"}let Xe;function Ye(l,e){return l===e?!0:(Xe||(Xe=document.createElement("a")),Xe.href=e,l===Xe.href)}function Bi(l){return Object.keys(l).length===0}function Oi(l){return l??""}function f(l,e){l.appendChild(e)}function g(l,e,t){l.insertBefore(e,t||null)}function h(l){l.parentNode&&l.parentNode.removeChild(l)}function ue(l,e){for(let t=0;tl.removeEventListener(e,t,n)}function ge(l){return function(e){return e.stopPropagation(),l.call(this,e)}}function Ke(l){return function(e){e.target===this&&l.call(this,e)}}function a(l,e,t){t==null?l.removeAttribute(e):l.getAttribute(e)!==t&&l.setAttribute(e,t)}function on(l){return l===""?null:+l}function Pi(l){return Array.from(l.childNodes)}function O(l,e){e=""+e,l.data!==e&&(l.data=e)}function _e(l,e){l.value=e??""}function Rt(l,e,t){for(let n=0;n{const i=l.$$.callbacks[e];if(i){const s=Vi(e,t,{cancelable:n});return i.slice().forEach(o=>{o.call(l,s)}),!s.defaultPrevented}return!0}}function Ri(l,e){const t=l.$$.callbacks[e.type];t&&t.slice().forEach(n=>n.call(this,e))}const Ae=[],Kt=[];let He=[];const xt=[],Wi=Promise.resolve();let _t=!1;function Ki(){_t||(_t=!0,Wi.then(rn))}function Qe(l){He.push(l)}const kt=new Set;let Fe=0;function rn(){if(Fe!==0)return;const l=We;do{try{for(;Fel.indexOf(n)===-1?e.push(n):t.push(n)),t.forEach(n=>n()),He=e}const Ze=new Set;let De;function ye(){De={r:0,c:[],p:De}}function we(){De.r||se(De.c),De=De.p}function ie(l,e){l&&l.i&&(Ze.delete(l),l.i(e))}function re(l,e,t,n){if(l&&l.o){if(Ze.has(l))return;Ze.add(l),De.c.push(()=>{Ze.delete(l),n&&(t&&l.d(1),n())}),l.o(e)}else n&&n()}function te(l){return(l==null?void 0:l.length)!==void 0?l:Array.from(l)}function Gi(l,e){re(l,1,1,()=>{e.delete(l.key)})}function Ui(l,e,t,n,i,s,o,r,c,k,m,v){let _=l.length,p=s.length,b=_;const y={};for(;b--;)y[l[b].key]=b;const w=[],T=new Map,S=new Map,A=[];for(b=p;b--;){const I=v(i,s,b),F=t(I);let L=o.get(F);L?A.push(()=>L.p(I,e)):(L=k(F,I),L.c()),T.set(F,w[b]=L),F in y&&S.set(F,Math.abs(b-y[F]))}const M=new Set,j=new Set;function B(I){ie(I,1),I.m(r,m),o.set(I.key,I),m=I.first,p--}for(;_&&p;){const I=w[p-1],F=l[_-1],L=I.key,N=F.key;I===F?(m=I.first,_--,p--):T.has(N)?!o.has(L)||M.has(L)?B(I):j.has(N)?_--:S.get(L)>S.get(N)?(j.add(L),B(I)):(M.add(N),_--):(c(F,o),_--)}for(;_--;){const I=l[_];T.has(I.key)||c(I,o)}for(;p;)B(w[p-1]);return se(A),w}function Ie(l){l&&l.c()}function Me(l,e,t){const{fragment:n,after_update:i}=l.$$;n&&n.m(e,t),Qe(()=>{const s=l.$$.on_mount.map(ln).filter(nn);l.$$.on_destroy?l.$$.on_destroy.push(...s):se(s),l.$$.on_mount=[]}),i.forEach(Qe)}function Le(l,e){const t=l.$$;t.fragment!==null&&(qi(t.after_update),se(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function Ji(l,e){l.$$.dirty[0]===-1&&(Ae.push(l),Ki(),l.$$.dirty.fill(0)),l.$$.dirty[e/31|0]|=1<{const b=p.length?p[0]:_;return k.ctx&&i(k.ctx[v],k.ctx[v]=b)&&(!k.skip_bound&&k.bound[v]&&k.bound[v](b),m&&Ji(l,v)),_}):[],k.update(),m=!0,se(k.before_update),k.fragment=n?n(k.ctx):!1,e.target){if(e.hydrate){const v=Pi(e.target);k.fragment&&k.fragment.l(v),v.forEach(h)}else k.fragment&&k.fragment.c();e.intro&&ie(l.$$.fragment),Me(l,e.target,e.anchor),rn()}Re(c)}class Pe{constructor(){dt(this,"$$");dt(this,"$$set")}$destroy(){Le(this,1),this.$destroy=q}$on(e,t){if(!nn(t))return q;const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{const i=n.indexOf(t);i!==-1&&n.splice(i,1)}}$set(e){this.$$set&&!Bi(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const Xi="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Xi);function Zi(l){let e,t;return{c(){e=x("path"),t=x("polyline"),a(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),a(t,"points","14 2 14 8 20 8")},m(n,i){g(n,e,i),g(n,t,i)},d(n){n&&(h(e),h(t))}}}function Yi(l){let e,t,n,i,s;return{c(){e=x("path"),t=x("polyline"),n=x("line"),i=x("line"),s=x("polyline"),a(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),a(t,"points","14 2 14 8 20 8"),a(n,"x1","16"),a(n,"y1","13"),a(n,"x2","8"),a(n,"y2","13"),a(i,"x1","16"),a(i,"y1","17"),a(i,"x2","8"),a(i,"y2","17"),a(s,"points","10 9 9 9 8 9")},m(o,r){g(o,e,r),g(o,t,r),g(o,n,r),g(o,i,r),g(o,s,r)},d(o){o&&(h(e),h(t),h(n),h(i),h(s))}}}function Qi(l){let e,t;return{c(){e=x("polyline"),t=x("polyline"),a(e,"points","16 18 22 12 16 6"),a(t,"points","8 6 2 12 8 18")},m(n,i){g(n,e,i),g(n,t,i)},d(n){n&&(h(e),h(t))}}}function $i(l){let e,t,n,i;return{c(){e=x("path"),t=x("polyline"),n=x("line"),i=x("rect"),a(e,"d","M21 8v13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8"),a(t,"points","7 3 12 8 17 3"),a(n,"x1","3"),a(n,"y1","8"),a(n,"x2","21"),a(n,"y2","8"),a(i,"x","10"),a(i,"y","12"),a(i,"width","4"),a(i,"height","4"),a(i,"rx","1")},m(s,o){g(s,e,o),g(s,t,o),g(s,n,o),g(s,i,o)},d(s){s&&(h(e),h(t),h(n),h(i))}}}function eo(l){let e,t,n,i,s;return{c(){e=x("path"),t=x("polyline"),n=x("line"),i=x("line"),s=x("line"),a(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),a(t,"points","14 2 14 8 20 8"),a(n,"x1","9"),a(n,"y1","12"),a(n,"x2","15"),a(n,"y2","12"),a(i,"x1","9"),a(i,"y1","15"),a(i,"x2","13"),a(i,"y2","15"),a(s,"x1","12"),a(s,"y1","15"),a(s,"x2","12"),a(s,"y2","18")},m(o,r){g(o,e,r),g(o,t,r),g(o,n,r),g(o,i,r),g(o,s,r)},d(o){o&&(h(e),h(t),h(n),h(i),h(s))}}}function to(l){let e,t,n,i,s,o;return{c(){e=x("path"),t=x("polyline"),n=x("line"),i=x("line"),s=x("line"),o=x("line"),a(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),a(t,"points","14 2 14 8 20 8"),a(n,"x1","8"),a(n,"y1","12"),a(n,"x2","16"),a(n,"y2","12"),a(i,"x1","8"),a(i,"y1","16"),a(i,"x2","16"),a(i,"y2","16"),a(s,"x1","8"),a(s,"y1","14"),a(s,"x2","12"),a(s,"y2","14"),a(o,"x1","12"),a(o,"y1","12"),a(o,"x2","12"),a(o,"y2","18")},m(r,c){g(r,e,c),g(r,t,c),g(r,n,c),g(r,i,c),g(r,s,c),g(r,o,c)},d(r){r&&(h(e),h(t),h(n),h(i),h(s),h(o))}}}function lo(l){let e,t,n,i;return{c(){e=x("path"),t=x("polyline"),n=x("line"),i=x("line"),a(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),a(t,"points","14 2 14 8 20 8"),a(n,"x1","16"),a(n,"y1","13"),a(n,"x2","8"),a(n,"y2","13"),a(i,"x1","16"),a(i,"y1","17"),a(i,"x2","8"),a(i,"y2","17")},m(s,o){g(s,e,o),g(s,t,o),g(s,n,o),g(s,i,o)},d(s){s&&(h(e),h(t),h(n),h(i))}}}function no(l){let e,t,n,i,s;return{c(){e=x("path"),t=x("polyline"),n=x("line"),i=x("line"),s=x("line"),a(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),a(t,"points","14 2 14 8 20 8"),a(n,"x1","8"),a(n,"y1","12"),a(n,"x2","16"),a(n,"y2","12"),a(i,"x1","8"),a(i,"y1","16"),a(i,"x2","16"),a(i,"y2","16"),a(s,"x1","8"),a(s,"y1","14"),a(s,"x2","12"),a(s,"y2","14")},m(o,r){g(o,e,r),g(o,t,r),g(o,n,r),g(o,i,r),g(o,s,r)},d(o){o&&(h(e),h(t),h(n),h(i),h(s))}}}function io(l){let e,t,n;return{c(){e=x("path"),t=x("circle"),n=x("circle"),a(e,"d","M9 18V5l12-2v13"),a(t,"cx","6"),a(t,"cy","18"),a(t,"r","3"),a(n,"cx","18"),a(n,"cy","16"),a(n,"r","3")},m(i,s){g(i,e,s),g(i,t,s),g(i,n,s)},d(i){i&&(h(e),h(t),h(n))}}}function oo(l){let e,t;return{c(){e=x("rect"),t=x("polyline"),a(e,"x","2"),a(e,"y","4"),a(e,"width","20"),a(e,"height","16"),a(e,"rx","2"),a(t,"points","10 9 16 12 10 15 10 9")},m(n,i){g(n,e,i),g(n,t,i)},d(n){n&&(h(e),h(t))}}}function so(l){let e,t,n;return{c(){e=x("rect"),t=x("circle"),n=x("polyline"),a(e,"x","3"),a(e,"y","3"),a(e,"width","18"),a(e,"height","18"),a(e,"rx","2"),a(e,"ry","2"),a(t,"cx","8.5"),a(t,"cy","8.5"),a(t,"r","1.5"),a(n,"points","21 15 16 10 5 21")},m(i,s){g(i,e,s),g(i,t,s),g(i,n,s)},d(i){i&&(h(e),h(t),h(n))}}}function ao(l){let e;return{c(){e=x("path"),a(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&&h(e)}}}function ro(l){let e;function t(s,o){return s[0]==="folder"?ao:s[0]==="image"?so:s[0]==="video"?oo:s[0]==="audio"?io:s[0]==="pdf"?no:s[0]==="document"?lo:s[0]==="spreadsheet"?to:s[0]==="presentation"?eo:s[0]==="archive"?$i:s[0]==="code"?Qi:s[0]==="text"?Yi:Zi}let n=t(l),i=n(l);return{c(){e=x("svg"),i.c(),a(e,"width",l[1]),a(e,"height",l[1]),a(e,"viewBox","0 0 24 24"),a(e,"fill","none"),a(e,"stroke","currentColor"),a(e,"stroke-width","1.5"),a(e,"stroke-linecap","round"),a(e,"stroke-linejoin","round"),a(e,"xmlns","http://www.w3.org/2000/svg")},m(s,o){g(s,e,o),i.m(e,null)},p(s,[o]){n!==(n=t(s))&&(i.d(1),i=n(s),i&&(i.c(),i.m(e,null))),o&2&&a(e,"width",s[1]),o&2&&a(e,"height",s[1])},i:q,o:q,d(s){s&&h(e),i.d()}}}function co(l,e,t){let{kind:n="generic"}=e,{size:i=20}=e;return l.$$set=s=>{"kind"in s&&t(0,n=s.kind),"size"in s&&t(1,i=s.size)},[n,i]}class cn extends Pe{constructor(e){super(),Oe(this,e,co,ro,Be,{kind:0,size:1})}}function $e(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 pt={"image/jpeg":"Изображение JPEG","image/png":"Изображение PNG","image/gif":"Изображение GIF","image/webp":"Изображение WebP","image/svg+xml":"Изображение SVG","image/bmp":"Изображение BMP","image/tiff":"Изображение TIFF","image/avif":"Изображение AVIF","application/pdf":"PDF документ","application/msword":"Документ Word","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"Документ Word","application/vnd.ms-excel":"Таблица Excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"Таблица Excel","application/vnd.ms-powerpoint":"Презентация PowerPoint","application/vnd.openxmlformats-officedocument.presentationml.presentation":"Презентация PowerPoint","application/zip":"ZIP архив","application/gzip":"GZIP архив","application/x-tar":"TAR архив","application/x-7z-compressed":"7z архив","application/x-rar-compressed":"RAR архив","text/plain":"Текстовый файл","text/html":"HTML файл","text/css":"CSS файл","text/javascript":"JavaScript файл","application/json":"JSON файл","application/xml":"XML файл","application/x-yaml":"YAML файл","application/octet-stream":"Бинарный файл","application/x-msdos-program":"Исполняемый файл","inode/directory":"Папка"};function qt(l){return l?pt[l]||l:"Неизвестно"}function fo(l){if(l.type==="folder")return"Папка";const e=(l.mime||"").toLowerCase();if(pt[e])return pt[e];const n=(l.name||"").toLowerCase().split(".").pop();return n?n.toUpperCase():"Файл"}function fn(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 uo=["image/jpeg","image/png","image/gif","image/webp","image/bmp","image/tiff","image/avif","image/svg+xml"],ko=["text/plain","text/html","text/css","text/javascript","application/json","application/xml","application/x-yaml","text/x-shellscript"],_o=["txt","log","conf","ini","yaml","yml","json","xml","csv","sh","py","js","ts","css","html","md","markdown","cfg"],po=["jpg","jpeg","png","gif","webp","bmp","tiff","tif","avif","svg"];function un(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return uo.includes(e)||po.includes(n)}function dn(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return ko.includes(e)||_o.includes(n)&&n!=="md"&&n!=="markdown"}function kn(l){return(l.mime||"").toLowerCase().includes("pdf")}function _n(l){const e=(l.name||"").toLowerCase();return e.endsWith(".md")||e.endsWith(".markdown")}function mo(l){return un(l)||kn(l)}function vo(l){return dn(l)||_n(l)}function ho(l){let e,t,n,i=$e(l[0].size)+"",s;return{c(){e=u("span"),e.textContent="·",t=C(),n=u("span"),s=E(i),a(e,"class","meta-sep svelte-1u905d2")},m(o,r){g(o,e,r),g(o,t,r),g(o,n,r),f(n,s)},p(o,r){r&1&&i!==(i=$e(o[0].size)+"")&&O(s,i)},d(o){o&&(h(e),h(t),h(n))}}}function bo(l){let e,t,n;return{c(){e=u("button"),e.innerHTML=' ',a(e,"class","action-btn svelte-1u905d2"),a(e,"title","Открыть папку"),a(e,"aria-label","Открыть папку")},m(i,s){g(i,e,s),t||(n=H(e,"click",ge(l[27])),t=!0)},p:q,d(i){i&&h(e),t=!1,n()}}}function go(l){let e,t,n,i,s;return{c(){e=u("button"),e.innerHTML=' ',t=C(),n=u("button"),n.innerHTML=' ',a(e,"class","action-btn svelte-1u905d2"),a(e,"title","Предпросмотр"),a(e,"aria-label","Предпросмотр"),a(n,"class","action-btn svelte-1u905d2"),a(n,"title","Открыть во внешней программе"),a(n,"aria-label","Открыть внешне")},m(o,r){g(o,e,r),g(o,t,r),g(o,n,r),i||(s=[H(e,"click",ge(l[26])),H(n,"click",ge(l[8]))],i=!0)},p:q,d(o){o&&(h(e),h(t),h(n)),i=!1,se(s)}}}function Gt(l){let e,t,n,i,s,o,r,c,k,m,v,_,p,b,y,w,T,S,A,M,j,B,I,F=l[5]&&yo(l);return{c(){e=u("div"),t=C(),n=u("div"),i=u("button"),i.innerHTML=`
+ Открыть`,s=C(),o=u("button"),o.innerHTML=`
+ Открыть во внешней программе`,r=C(),F&&F.c(),c=C(),k=u("div"),m=C(),v=u("button"),v.innerHTML=`
+ Переименовать`,_=C(),p=u("button"),p.innerHTML=`
+ Дублировать`,b=C(),y=u("button"),y.innerHTML=`
+ Вырезать`,w=C(),T=u("button"),T.innerHTML=`
+ Копировать`,S=C(),A=u("div"),M=C(),j=u("button"),j.innerHTML=`
+ Удалить`,a(e,"class","menu-backdrop svelte-1u905d2"),a(e,"role","presentation"),a(i,"class","menu-item svelte-1u905d2"),a(i,"role","menuitem"),a(o,"class","menu-item svelte-1u905d2"),a(o,"role","menuitem"),a(k,"class","menu-sep svelte-1u905d2"),a(v,"class","menu-item svelte-1u905d2"),a(v,"role","menuitem"),a(p,"class","menu-item svelte-1u905d2"),a(p,"role","menuitem"),a(y,"class","menu-item svelte-1u905d2"),a(y,"role","menuitem"),a(T,"class","menu-item svelte-1u905d2"),a(T,"role","menuitem"),a(A,"class","menu-sep svelte-1u905d2"),a(j,"class","menu-item menu-item-danger svelte-1u905d2"),a(j,"role","menuitem"),a(n,"class","menu svelte-1u905d2"),a(n,"role","menu")},m(L,N){g(L,e,N),g(L,t,N),g(L,n,N),f(n,i),f(n,s),f(n,o),f(n,r),F&&F.m(n,null),f(n,c),f(n,k),f(n,m),f(n,v),f(n,_),f(n,p),f(n,b),f(n,y),f(n,w),f(n,T),f(n,S),f(n,A),f(n,M),f(n,j),B||(I=[H(e,"click",ge(l[17])),H(i,"click",l[15]),H(o,"click",l[8]),H(v,"click",l[11]),H(p,"click",l[12]),H(y,"click",l[13]),H(T,"click",l[14]),H(j,"click",l[10]),H(n,"click",ge(l[25]))],B=!0)},p(L,N){L[5]&&F.p(L,N)},d(L){L&&(h(e),h(t),h(n)),F&&F.d(),B=!1,se(I)}}}function yo(l){let e,t,n;return{c(){e=u("button"),e.innerHTML=`
+ Показать в проводнике`,a(e,"class","menu-item svelte-1u905d2"),a(e,"role","menuitem")},m(i,s){g(i,e,s),t||(n=H(e,"click",l[9]),t=!0)},p:q,d(i){i&&h(e),t=!1,n()}}}function wo(l){let e,t,n,i,s,o,r=l[0].name+"",c,k,m,v,_,p,b,y,w,T,S,A,M,j,B,I,F,L,N,X,ee,Z;n=new cn({props:{kind:l[4],size:22}});let V=!l[5]&&ho(l);function le(R,$){return R[5]?bo:go}let K=le(l)(l),W=l[2]&&Gt(l);return{c(){e=u("div"),t=u("div"),Ie(n.$$.fragment),i=C(),s=u("div"),o=u("div"),c=E(r),m=C(),v=u("div"),_=u("span"),_.textContent=`${l[6]}`,p=C(),V&&V.c(),b=C(),y=u("div"),K.c(),w=C(),T=u("button"),S=x("svg"),A=x("circle"),M=x("circle"),j=x("circle"),B=C(),I=u("button"),I.innerHTML=' ',L=C(),W&&W.c(),N=he(),a(t,"class","file-row-icon svelte-1u905d2"),a(o,"class","file-row-name svelte-1u905d2"),a(o,"title",k=l[0].name),a(v,"class","file-row-meta svelte-1u905d2"),a(s,"class","file-row-body svelte-1u905d2"),a(A,"cx","12"),a(A,"cy","5"),a(A,"r","2"),a(M,"cx","12"),a(M,"cy","12"),a(M,"r","2"),a(j,"cx","12"),a(j,"cy","19"),a(j,"r","2"),a(S,"width","16"),a(S,"height","16"),a(S,"viewBox","0 0 24 24"),a(S,"fill","currentColor"),a(T,"class","action-btn svelte-1u905d2"),a(T,"title","Ещё"),a(T,"aria-label","Ещё"),a(T,"aria-expanded",l[2]),a(I,"class","action-btn action-btn-danger svelte-1u905d2"),a(I,"title","Удалить"),a(I,"aria-label","Удалить"),a(y,"class","file-row-actions svelte-1u905d2"),a(e,"class","file-row svelte-1u905d2"),a(e,"role","button"),a(e,"tabindex","0"),a(e,"draggable","true"),a(e,"aria-label",F=l[5]?`Папка ${l[0].name}`:`Файл ${l[0].name}`),Wt(e,"file-row--selected",l[1])},m(R,$){g(R,e,$),f(e,t),Me(n,t,null),f(e,i),f(e,s),f(s,o),f(o,c),f(s,m),f(s,v),f(v,_),f(v,p),V&&V.m(v,null),f(e,b),f(e,y),K.m(y,null),f(y,w),f(y,T),f(T,S),f(S,A),f(S,M),f(S,j),f(y,B),f(y,I),g(R,L,$),W&&W.m(R,$),g(R,N,$),X=!0,ee||(Z=[H(window,"click",l[17]),H(T,"click",ge(l[16])),H(I,"click",ge(l[10])),H(e,"click",l[7]),H(e,"contextmenu",l[21]),H(e,"dragstart",l[18]),H(e,"dragover",l[19]),H(e,"drop",l[20])],ee=!0)},p(R,[$]){(!X||$&1)&&r!==(r=R[0].name+"")&&O(c,r),(!X||$&1&&k!==(k=R[0].name))&&a(o,"title",k),R[5]||V.p(R,$),K.p(R,$),(!X||$&4)&&a(T,"aria-expanded",R[2]),(!X||$&1&&F!==(F=R[5]?`Папка ${R[0].name}`:`Файл ${R[0].name}`))&&a(e,"aria-label",F),(!X||$&2)&&Wt(e,"file-row--selected",R[1]),R[2]?W?W.p(R,$):(W=Gt(R),W.c(),W.m(N.parentNode,N)):W&&(W.d(1),W=null)},i(R){X||(ie(n.$$.fragment,R),X=!0)},o(R){re(n.$$.fragment,R),X=!1},d(R){R&&(h(e),h(L),h(N)),Le(n),V&&V.d(),K.d(),W&&W.d(R),ee=!1,se(Z)}}}function Co(l,e,t){let{item:n}=e,{selected:i=!1}=e,{onDragStart:s}=e,{onDragOver:o}=e,{onDrop:r}=e;const c=et(),k=fn(n),m=n.type==="folder",v=fo(n);let _=!1,p=null;function b(P){P.ctrlKey||P.metaKey?c("toggleSelect",n.id):P.shiftKey?c("rangeSelect",n.id):p?(clearTimeout(p),p=null,m?c("navigate",n.id):c("preview",n)):p=setTimeout(()=>{p=null,c("selectOne",n.id)},250)}function y(){c("openExternal",n.fileId)}function w(){c("showInFolder",n.id)}function T(){t(2,_=!1),c("delete",{id:n.id,type:n.type})}function S(){t(2,_=!1),c("rename",{id:n.id,name:n.name})}function A(){t(2,_=!1),c("duplicate",n.id)}function M(){t(2,_=!1),c("cut",n.id)}function j(){t(2,_=!1),c("copy",n.id)}function B(){t(2,_=!1),m?c("navigate",n.id):c("preview",n)}function I(){t(2,_=!_)}function F(){t(2,_=!1)}function L(P){s&&s(P,n.id)}function N(P){o&&m&&o(P,n.id)}function X(P){r&&m&&r(P,n.id)}function ee(P){P.preventDefault(),t(2,_=!0)}function Z(P){Ri.call(this,l,P)}const V=()=>c("preview",n),le=()=>c("navigate",n.id);return l.$$set=P=>{"item"in P&&t(0,n=P.item),"selected"in P&&t(1,i=P.selected),"onDragStart"in P&&t(22,s=P.onDragStart),"onDragOver"in P&&t(23,o=P.onDragOver),"onDrop"in P&&t(24,r=P.onDrop)},[n,i,_,c,k,m,v,b,y,w,T,S,A,M,j,B,I,F,L,N,X,ee,s,o,r,Z,V,le]}class To extends Pe{constructor(e){super(),Oe(this,e,Co,wo,Be,{item:0,selected:1,onDragStart:22,onDragOver:23,onDrop:24})}}function Ut(l,e,t){const n=l.slice();return n[4]=e[t],n[6]=t,n}function Mo(l){let e;return{c(){e=u("span"),e.textContent="/",a(e,"class","sep svelte-csi2lb")},m(t,n){g(t,e,n)},d(t){t&&h(e)}}}function Lo(l){let e,t=l[4].name+"",n,i,s;function o(){return l[2](l[6])}return{c(){e=u("button"),n=E(t),a(e,"class","crumb crumb--link svelte-csi2lb")},m(r,c){g(r,e,c),f(e,n),i||(s=H(e,"click",o),i=!0)},p(r,c){l=r,c&1&&t!==(t=l[4].name+"")&&O(n,t)},d(r){r&&h(e),i=!1,s()}}}function So(l){let e,t=l[4].name+"",n;return{c(){e=u("span"),n=E(t),a(e,"class","crumb crumb--current svelte-csi2lb")},m(i,s){g(i,e,s),f(e,n)},p(i,s){s&1&&t!==(t=i[4].name+"")&&O(n,t)},d(i){i&&h(e)}}}function Jt(l){let e,t,n=l[6]>0&&Mo();function i(r,c){return r[6]===r[0].length-1?So:Lo}let s=i(l),o=s(l);return{c(){n&&n.c(),e=C(),o.c(),t=he()},m(r,c){n&&n.m(r,c),g(r,e,c),o.m(r,c),g(r,t,c)},p(r,c){s===(s=i(r))&&o?o.p(r,c):(o.d(1),o=s(r),o&&(o.c(),o.m(t.parentNode,t)))},d(r){r&&(h(e),h(t)),n&&n.d(r),o.d(r)}}}function Do(l){let e,t=te(l[0]),n=[];for(let i=0;is(r);return l.$$set=r=>{"crumbs"in r&&t(0,n=r.crumbs)},[n,s,o]}class pn extends Pe{constructor(e){super(),Oe(this,e,Io,Do,Be,{crumbs:0})}}function No(l){let e,t,n,i,s,o;return{c(){e=u("div"),t=u("p"),t.textContent="Предпросмотр недоступен для этого типа файлов.",n=C(),i=u("button"),i.textContent="Открыть во внешней программе",a(i,"class","btn btn-sm svelte-1cw3u0m"),a(e,"class","preview-status svelte-1cw3u0m")},m(r,c){g(r,e,c),f(e,t),f(e,n),f(e,i),s||(o=H(i,"click",l[9]),s=!0)},p:q,d(r){r&&h(e),s=!1,o()}}}function Eo(l){let e,t;function n(o,r){return r&2&&(e=null),e==null&&(e=!!(o[1]&&o[1].startsWith("data:"))),e?Oo:Bo}let i=n(l,-1),s=i(l);return{c(){s.c(),t=he()},m(o,r){s.m(o,r),g(o,t,r)},p(o,r){i===(i=n(o,r))&&s?s.p(o,r):(s.d(1),s=i(o),s&&(s.c(),s.m(t.parentNode,t)))},d(o){o&&h(t),s.d(o)}}}function Fo(l){let e,t,n;return{c(){e=u("pre"),t=u("code"),n=E(l[1]),a(e,"class","preview-text svelte-1cw3u0m")},m(i,s){g(i,e,s),f(e,t),f(t,n)},p(i,s){s&2&&O(n,i[1])},d(i){i&&h(e)}}}function Ao(l){let e,t,n,i;return{c(){e=u("div"),t=u("img"),Ye(t.src,n=l[1])||a(t,"src",n),a(t,"alt",i=l[0].name),a(t,"class","preview-image svelte-1cw3u0m"),a(e,"class","preview-image-container svelte-1cw3u0m")},m(s,o){g(s,e,o),f(e,t)},p(s,o){o&2&&!Ye(t.src,n=s[1])&&a(t,"src",n),o&1&&i!==(i=s[0].name)&&a(t,"alt",i)},d(s){s&&h(e)}}}function Ho(l){let e,t,n,i,s,o,r;return{c(){e=u("div"),t=u("p"),n=E(l[3]),i=C(),s=u("button"),s.textContent="Открыть во внешней программе",a(s,"class","btn btn-sm svelte-1cw3u0m"),a(e,"class","preview-status svelte-1cw3u0m")},m(c,k){g(c,e,k),f(e,t),f(t,n),f(e,i),f(e,s),o||(r=H(s,"click",l[9]),o=!0)},p(c,k){k&8&&O(n,c[3])},d(c){c&&h(e),o=!1,r()}}}function jo(l){let e;return{c(){e=u("div"),e.innerHTML="Загрузка...
",a(e,"class","preview-status svelte-1cw3u0m")},m(t,n){g(t,e,n)},p:q,d(t){t&&h(e)}}}function Bo(l){let e,t,n,i,s,o;return{c(){e=u("div"),t=u("p"),t.textContent="Предпросмотр PDF недоступен.",n=C(),i=u("button"),i.textContent="Открыть во внешней программе",a(i,"class","btn btn-sm svelte-1cw3u0m"),a(e,"class","preview-status svelte-1cw3u0m")},m(r,c){g(r,e,c),f(e,t),f(e,n),f(e,i),s||(o=H(i,"click",l[9]),s=!0)},p:q,d(r){r&&h(e),s=!1,o()}}}function Oo(l){let e,t,n;return{c(){e=u("div"),t=u("embed"),Ye(t.src,n=l[1])||a(t,"src",n),a(t,"type","application/pdf"),a(t,"class","preview-pdf svelte-1cw3u0m"),a(e,"class","preview-pdf-container svelte-1cw3u0m")},m(i,s){g(i,e,s),f(e,t)},p(i,s){s&2&&!Ye(t.src,n=i[1])&&a(t,"src",n)},d(i){i&&h(e)}}}function Po(l){let e,t,n,i,s,o,r,c=l[0].name+"",k,m,v,_,p=$e(l[0].size)+"",b,y,w=qt(l[0].mime)+"",T,S,A,M,j,B,I,F,L,N,X,ee;s=new cn({props:{kind:l[8],size:18}});function Z(P,K){return P[2]?jo:P[3]?Ho:P[6]&&P[1]?Ao:P[5]&&P[1]?Fo:P[4]?Eo:No}let V=Z(l),le=V(l);return{c(){e=u("div"),t=u("div"),n=u("header"),i=u("div"),Ie(s.$$.fragment),o=C(),r=u("span"),k=E(c),v=C(),_=u("div"),b=E(p),y=E(" · "),T=E(w),S=C(),A=u("div"),M=u("button"),M.innerHTML=' ',j=C(),B=u("button"),B.innerHTML=' ',I=C(),F=u("div"),le.c(),a(r,"class","preview-name svelte-1cw3u0m"),a(r,"title",m=l[0].name),a(i,"class","preview-title svelte-1cw3u0m"),a(_,"class","preview-meta svelte-1cw3u0m"),a(M,"class","action-btn svelte-1cw3u0m"),a(M,"title","Открыть во внешней программе"),a(M,"aria-label","Открыть внешне"),a(B,"class","action-btn action-btn-close svelte-1cw3u0m"),a(B,"title","Close"),a(B,"aria-label","Close preview"),a(A,"class","preview-actions svelte-1cw3u0m"),a(n,"class","preview-header svelte-1cw3u0m"),a(F,"class","preview-body svelte-1cw3u0m"),a(t,"class","modal svelte-1cw3u0m"),a(e,"class","overlay svelte-1cw3u0m"),a(e,"role","dialog"),a(e,"aria-modal","true"),a(e,"aria-label",L=`Preview: ${l[0].name}`)},m(P,K){g(P,e,K),f(e,t),f(t,n),f(n,i),Me(s,i,null),f(i,o),f(i,r),f(r,k),f(n,v),f(n,_),f(_,b),f(_,y),f(_,T),f(n,S),f(n,A),f(A,M),f(A,j),f(A,B),f(t,I),f(t,F),le.m(F,null),N=!0,X||(ee=[H(M,"click",l[9]),H(B,"click",l[10]),H(e,"click",Ke(l[11]))],X=!0)},p(P,[K]){(!N||K&1)&&c!==(c=P[0].name+"")&&O(k,c),(!N||K&1&&m!==(m=P[0].name))&&a(r,"title",m),(!N||K&1)&&p!==(p=$e(P[0].size)+"")&&O(b,p),(!N||K&1)&&w!==(w=qt(P[0].mime)+"")&&O(T,w),V===(V=Z(P))&&le?le.p(P,K):(le.d(1),le=V(P),le&&(le.c(),le.m(F,null))),(!N||K&1&&L!==(L=`Preview: ${P[0].name}`))&&a(e,"aria-label",L)},i(P){N||(ie(s.$$.fragment,P),N=!0)},o(P){re(s.$$.fragment,P),N=!1},d(P){P&&h(e),Le(s),le.d(),X=!1,se(ee)}}}function zo(l,e,t){let n,i,s,{item:o}=e,{content:r=""}=e,{loading:c=!1}=e,{error:k=""}=e;const m=et(),v=fn(o);function _(w){w.key==="Escape"&&m("close")}function p(){m("openExternal",o.fileId)}sn(()=>{window.addEventListener("keydown",_)}),an(()=>{window.removeEventListener("keydown",_)});const b=()=>m("close"),y=()=>m("close");return l.$$set=w=>{"item"in w&&t(0,o=w.item),"content"in w&&t(1,r=w.content),"loading"in w&&t(2,c=w.loading),"error"in w&&t(3,k=w.error)},l.$$.update=()=>{l.$$.dirty&3&&t(6,n=un(o)&&r&&r.startsWith("data:")),l.$$.dirty&1&&t(5,i=dn(o)||_n(o)),l.$$.dirty&1&&t(4,s=kn(o))},[o,r,c,k,s,i,n,m,v,p,b,y]}class Vo extends Pe{constructor(e){super(),Oe(this,e,zo,Po,Be,{item:0,content:1,loading:2,error:3})}}function Ro(l){let e,t,n,i,s,o,r,c,k,m,v,_,p,b,y,w,T;return{c(){e=u("div"),t=u("div"),n=u("h3"),i=E(l[0]),s=C(),o=u("p"),r=E(l[1]),c=C(),k=u("div"),m=u("button"),v=E(l[2]),p=C(),b=u("button"),y=E(l[3]),a(n,"class","svelte-1fv6yyk"),a(o,"class","message svelte-1fv6yyk"),a(m,"class",_="btn "+(l[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk"),a(b,"class","btn svelte-1fv6yyk"),a(k,"class","actions svelte-1fv6yyk"),a(t,"class","modal svelte-1fv6yyk"),a(e,"class","overlay svelte-1fv6yyk"),a(e,"role","dialog"),a(e,"aria-modal","true"),a(e,"aria-label",l[0])},m(S,A){g(S,e,A),f(e,t),f(t,n),f(n,i),f(t,s),f(t,o),f(o,r),f(t,c),f(t,k),f(k,m),f(m,v),f(k,p),f(k,b),f(b,y),w||(T=[H(m,"click",l[6]),H(b,"click",l[7]),H(e,"click",Ke(l[8]))],w=!0)},p(S,[A]){A&1&&O(i,S[0]),A&2&&O(r,S[1]),A&4&&O(v,S[2]),A&16&&_!==(_="btn "+(S[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk")&&a(m,"class",_),A&8&&O(y,S[3]),A&1&&a(e,"aria-label",S[0])},i:q,o:q,d(S){S&&h(e),w=!1,se(T)}}}function Wo(l,e,t){let{title:n="Подтверждение"}=e,{message:i=""}=e,{confirmText:s="Удалить"}=e,{cancelText:o="Отмена"}=e,{danger:r=!1}=e;const c=et(),k=()=>c("confirm"),m=()=>c("cancel"),v=()=>c("cancel");return l.$$set=_=>{"title"in _&&t(0,n=_.title),"message"in _&&t(1,i=_.message),"confirmText"in _&&t(2,s=_.confirmText),"cancelText"in _&&t(3,o=_.cancelText),"danger"in _&&t(4,r=_.danger)},[n,i,s,o,r,c,k,m,v]}class Ko extends Pe{constructor(e){super(),Oe(this,e,Wo,Ro,Be,{title:0,message:1,confirmText:2,cancelText:3,danger:4})}}function Xt(l,e,t){const n=l.slice();return n[162]=e[t],n}function Zt(l,e,t){const n=l.slice();return n[181]=e[t],n}function Yt(l,e,t){const n=l.slice();return n[181]=e[t],n}function Qt(l,e,t){const n=l.slice();return n[189]=e[t],n}function $t(l,e,t){const n=l.slice();return n[181]=e[t],n}function el(l,e,t){const n=l.slice();return n[181]=e[t],n}function tl(l,e,t){const n=l.slice();return n[165]=e[t],n}function ll(l,e,t){const n=l.slice();return n[176]=e[t],n}function nl(l,e,t){const n=l.slice();return n[173]=e[t],n}function il(l,e,t){const n=l.slice();return n[168]=e[t],n}function ol(l,e,t){const n=l.slice();return n[165]=e[t],n}function sl(l,e,t){const n=l.slice();return n[168]=e[t],n}function al(l,e,t){const n=l.slice();return n[184]=e[t],n}function rl(l,e,t){const n=l.slice();return n[162]=e[t],n}function cl(l,e,t){const n=l.slice();return n[198]=e[t],n}function fl(l,e,t){const n=l.slice();return n[201]=e[t],n}function ul(l){let e,t=l[201].label+"",n,i,s,o,r;function c(){return l[87](l[201])}return{c(){e=u("button"),n=E(t),i=C(),a(e,"class",s="nav-item "+(l[7]===l[201].id?"selected":"")+" svelte-xaaokk")},m(k,m){g(k,e,m),f(e,n),f(e,i),o||(r=H(e,"click",c),o=!0)},p(k,m){l=k,m[0]&1&&t!==(t=l[201].label+"")&&O(n,t),m[0]&129&&s!==(s="nav-item "+(l[7]===l[201].id?"selected":"")+" svelte-xaaokk")&&a(e,"class",s)},d(k){k&&h(e),o=!1,r()}}}function dl(l){let e,t,n,i,s,o=l[1].length>0&&kl(l),r=te(l[1]),c=[];for(let m=0;m0?o?o.p(m,v):(o=kl(m),o.c(),o.m(t,null)):o&&(o.d(1),o=null),v[0]&258|v[1]&16384){r=te(m[1]);let _;for(_=0;_ ',a(i,"class","dismiss-btn svelte-xaaokk"),a(i,"aria-label","Dismiss"),a(e,"class","error-banner svelte-xaaokk")},m(r,c){g(r,e,c),f(e,t),f(e,n),f(e,i),s||(o=[H(i,"click",ge(l[89])),H(e,"click",l[90])],s=!0)},p(r,c){c[0]&64&&O(t,r[6])},d(r){r&&h(e),s=!1,se(o)}}}function Uo(l){let e,t,n;function i(r,c){if(r[21])return es;if(r[0].length>0)return $o;if(r[6])return Qo}let s=i(l),o=s&&s(l);return{c(){e=u("div"),t=u("h2"),t.textContent="Верстак",n=C(),o&&o.c(),a(t,"class","svelte-xaaokk"),a(e,"class","welcome svelte-xaaokk")},m(r,c){g(r,e,c),f(e,t),f(e,n),o&&o.m(e,null)},p(r,c){s===(s=i(r))&&o?o.p(r,c):(o&&o.d(1),o=s&&s(r),o&&(o.c(),o.m(e,null)))},i:q,o:q,d(r){r&&h(e),o&&o.d()}}}function Jo(l){let e,t,n;function i(r,c){return r[3].length===0?ls:ts}let s=i(l),o=s(l);return{c(){e=u("div"),t=u("div"),t.innerHTML='Активность ',n=C(),o.c(),a(t,"class","activity-feed-header svelte-xaaokk"),a(e,"class","activity-feed svelte-xaaokk")},m(r,c){g(r,e,c),f(e,t),f(e,n),o.m(e,null)},p(r,c){s===(s=i(r))&&o?o.p(r,c):(o.d(1),o=s(r),o&&(o.c(),o.m(e,null)))},i:q,o:q,d(r){r&&h(e),o.d()}}}function Xo(l){let e,t,n,i,s,o=l[2].date+"",r,c,k,m=l[2].summary&&gl(l);function v(b,y){return b[2].groups&&b[2].groups.length>0?is:ns}let _=v(l),p=_(l);return{c(){e=u("div"),t=u("div"),n=u("h2"),n.textContent="Сегодня",i=C(),s=u("span"),r=E(o),c=C(),m&&m.c(),k=C(),p.c(),a(n,"class","svelte-xaaokk"),a(s,"class","today-date svelte-xaaokk"),a(t,"class","today-header svelte-xaaokk"),a(e,"class","today-dashboard svelte-xaaokk")},m(b,y){g(b,e,y),f(e,t),f(t,n),f(t,i),f(t,s),f(s,r),f(e,c),m&&m.m(e,null),f(e,k),p.m(e,null)},p(b,y){y[0]&4&&o!==(o=b[2].date+"")&&O(r,o),b[2].summary?m?m.p(b,y):(m=gl(b),m.c(),m.m(e,k)):m&&(m.d(1),m=null),_===(_=v(b))&&p?p.p(b,y):(p.d(1),p=_(b),p&&(p.c(),p.m(e,null)))},i:q,o:q,d(b){b&&h(e),m&&m.d(),p.d()}}}function Zo(l){let e,t,n,i,s,o,r=te(l[43]),c=[];for(let _=0;_{m[b]=null}),we()),~i?(s=m[i],s?s.p(_,p):(s=m[i]=k[i](_),s.c()),ie(s,1),s.m(n,null)):s=null)},i(_){o||(ie(s),o=!0)},o(_){re(s),o=!1},d(_){_&&(h(e),h(t),h(n)),ue(c,_),~i&&m[i].d()}}}function Yo(l){let e,t,n,i=l[11].title+"",s,o,r,c,k,m,v,_,p,b,y,w=l[11].dirty&&ql();return{c(){e=u("div"),t=u("div"),n=u("span"),s=E(i),o=C(),w&&w.c(),r=C(),c=u("div"),k=u("button"),k.textContent="Сохранить",m=C(),v=u("button"),v.textContent="Закрыть",_=C(),p=u("textarea"),a(n,"class","note-title svelte-xaaokk"),a(k,"class","btn btn-primary svelte-xaaokk"),a(v,"class","btn svelte-xaaokk"),a(c,"class","note-editor-actions svelte-xaaokk"),a(t,"class","note-editor-header svelte-xaaokk"),a(p,"class","note-textarea svelte-xaaokk"),a(p,"placeholder","Начните писать..."),a(e,"class","note-editor svelte-xaaokk")},m(T,S){g(T,e,S),f(e,t),f(t,n),f(n,s),f(t,o),w&&w.m(t,null),f(t,r),f(t,c),f(c,k),f(c,m),f(c,v),f(e,_),f(e,p),_e(p,l[11].content),b||(y=[H(k,"click",l[78]),H(v,"click",l[76]),H(p,"input",l[91]),H(p,"input",l[77])],b=!0)},p(T,S){S[0]&2048&&i!==(i=T[11].title+"")&&O(s,i),T[11].dirty?w||(w=ql(),w.c(),w.m(t,r)):w&&(w.d(1),w=null),S[0]&2048&&_e(p,T[11].content)},i:q,o:q,d(T){T&&h(e),w&&w.d(),b=!1,se(y)}}}function Qo(l){let e,t,n;return{c(){e=u("p"),t=E("Ошибка: "),n=E(l[6]),a(e,"class","error-text svelte-xaaokk")},m(i,s){g(i,e,s),f(e,t),f(e,n)},p(i,s){s[0]&64&&O(n,i[6])},d(i){i&&h(e)}}}function $o(l){let e,t,n;return{c(){e=u("p"),e.textContent="Выберите раздел в боковой панели.",t=C(),n=u("p"),n.textContent="Или создайте новое дело кнопкой «+».",a(e,"class","svelte-xaaokk"),a(n,"class","hint svelte-xaaokk")},m(i,s){g(i,e,s),g(i,t,s),g(i,n,s)},p:q,d(i){i&&(h(e),h(t),h(n))}}}function es(l){let e;return{c(){e=u("p"),e.textContent="Загрузка...",a(e,"class","svelte-xaaokk")},m(t,n){g(t,e,n)},p:q,d(t){t&&h(e)}}}function ts(l){let e,t=te(l[3]),n=[];for(let i=0;iАктивность пока не зафиксирована',a(e,"class","empty-state svelte-xaaokk")},m(t,n){g(t,e,n)},p:q,d(t){t&&h(e)}}}function hl(l){let e,t=l[181].targetType+"",n;return{c(){e=u("span"),n=E(t),a(e,"class","activity-feed-target svelte-xaaokk")},m(i,s){g(i,e,s),f(e,n)},p(i,s){s[0]&8&&t!==(t=i[181].targetType+"")&&O(n,t)},d(i){i&&h(e)}}}function bl(l){let e,t,n=je(l[181].eventType)+"",i,s,o,r,c=l[181].title+"",k,m,v,_,p=Ce(l[181].eventType)+"",b,y,w,T,S=ve(l[181].createdAt)+"",A,M,j=me(l[181].createdAt)+"",B,I,F,L,N=l[181].targetType&&hl(l);function X(){return l[123](l[181])}function ee(...Z){return l[124](l[181],...Z)}return{c(){e=u("div"),t=u("span"),i=E(n),s=C(),o=u("div"),r=u("span"),k=E(c),m=C(),v=u("div"),_=u("span"),b=E(p),y=C(),N&&N.c(),w=C(),T=u("span"),A=E(S),M=C(),B=E(j),I=C(),a(t,"class","activity-feed-icon svelte-xaaokk"),a(r,"class","activity-feed-title svelte-xaaokk"),a(_,"class","activity-feed-type svelte-xaaokk"),a(T,"class","activity-feed-time svelte-xaaokk"),a(v,"class","activity-feed-meta svelte-xaaokk"),a(o,"class","activity-feed-body svelte-xaaokk"),a(e,"class","activity-feed-event svelte-xaaokk"),a(e,"role","button"),a(e,"tabindex","0")},m(Z,V){g(Z,e,V),f(e,t),f(t,i),f(e,s),f(e,o),f(o,r),f(r,k),f(o,m),f(o,v),f(v,_),f(_,b),f(v,y),N&&N.m(v,null),f(v,w),f(v,T),f(T,A),f(T,M),f(T,B),f(e,I),F||(L=[H(e,"click",X),H(e,"keydown",ee)],F=!0)},p(Z,V){l=Z,V[0]&8&&n!==(n=je(l[181].eventType)+"")&&O(i,n),V[0]&8&&c!==(c=l[181].title+"")&&O(k,c),V[0]&8&&p!==(p=Ce(l[181].eventType)+"")&&O(b,p),l[181].targetType?N?N.p(l,V):(N=hl(l),N.c(),N.m(v,w)):N&&(N.d(1),N=null),V[0]&8&&S!==(S=ve(l[181].createdAt)+"")&&O(A,S),V[0]&8&&j!==(j=me(l[181].createdAt)+"")&&O(B,j)},d(Z){Z&&h(e),N&&N.d(),F=!1,se(L)}}}function gl(l){let e,t,n,i=l[2].summary.changedCases>0&&yl(l),s=l[2].summary.notes>0&&wl(l),o=l[2].summary.files>0&&Cl(l);return{c(){e=u("div"),i&&i.c(),t=C(),s&&s.c(),n=C(),o&&o.c(),a(e,"class","today-summary svelte-xaaokk")},m(r,c){g(r,e,c),i&&i.m(e,null),f(e,t),s&&s.m(e,null),f(e,n),o&&o.m(e,null)},p(r,c){r[2].summary.changedCases>0?i?i.p(r,c):(i=yl(r),i.c(),i.m(e,t)):i&&(i.d(1),i=null),r[2].summary.notes>0?s?s.p(r,c):(s=wl(r),s.c(),s.m(e,n)):s&&(s.d(1),s=null),r[2].summary.files>0?o?o.p(r,c):(o=Cl(r),o.c(),o.m(e,null)):o&&(o.d(1),o=null)},d(r){r&&h(e),i&&i.d(),s&&s.d(),o&&o.d()}}}function yl(l){let e,t=l[2].summary.changedCases+"",n,i,s=Te(l[2].summary.changedCases,"дело","дела","дел")+"",o;return{c(){e=u("span"),n=E(t),i=C(),o=E(s),a(e,"class","summary-chip svelte-xaaokk")},m(r,c){g(r,e,c),f(e,n),f(e,i),f(e,o)},p(r,c){c[0]&4&&t!==(t=r[2].summary.changedCases+"")&&O(n,t),c[0]&4&&s!==(s=Te(r[2].summary.changedCases,"дело","дела","дел")+"")&&O(o,s)},d(r){r&&h(e)}}}function wl(l){let e,t=l[2].summary.notes+"",n,i,s=Te(l[2].summary.notes,"заметка","заметки","заметок")+"",o;return{c(){e=u("span"),n=E(t),i=C(),o=E(s),a(e,"class","summary-chip svelte-xaaokk")},m(r,c){g(r,e,c),f(e,n),f(e,i),f(e,o)},p(r,c){c[0]&4&&t!==(t=r[2].summary.notes+"")&&O(n,t),c[0]&4&&s!==(s=Te(r[2].summary.notes,"заметка","заметки","заметок")+"")&&O(o,s)},d(r){r&&h(e)}}}function Cl(l){let e,t=l[2].summary.files+"",n,i,s=Te(l[2].summary.files,"файл","файла","файлов")+"",o;return{c(){e=u("span"),n=E(t),i=C(),o=E(s),a(e,"class","summary-chip svelte-xaaokk")},m(r,c){g(r,e,c),f(e,n),f(e,i),f(e,o)},p(r,c){c[0]&4&&t!==(t=r[2].summary.files+"")&&O(n,t),c[0]&4&&s!==(s=Te(r[2].summary.files,"файл","файла","файлов")+"")&&O(o,s)},d(r){r&&h(e)}}}function ns(l){let e;return{c(){e=u("div"),e.innerHTML='Сегодня пока тихо
Здесь появятся дела, заметки, файлы и действия, с которыми вы работали сегодня.
',a(e,"class","today-empty svelte-xaaokk")},m(t,n){g(t,e,n)},p:q,d(t){t&&h(e)}}}function is(l){let e,t,n=te(l[2].groups),i=[];for(let o=0;o0&&Dl(l);return{c(){for(let o=0;o0?s?s.p(o,r):(s=Dl(o),s.c(),s.m(t.parentNode,t)):s&&(s.d(1),s=null)},d(o){o&&(h(e),h(t)),ue(i,o),s&&s.d(o)}}}function Tl(l){let e,t=l[189].events.length+"",n,i,s=Te(l[189].events.length,"событие","события","событий")+"",o;return{c(){e=u("span"),n=E(t),i=C(),o=E(s),a(e,"class","today-case-count svelte-xaaokk")},m(r,c){g(r,e,c),f(e,n),f(e,i),f(e,o)},p(r,c){c[0]&4&&t!==(t=r[189].events.length+"")&&O(n,t),c[0]&4&&s!==(s=Te(r[189].events.length,"событие","события","событий")+"")&&O(o,s)},d(r){r&&h(e)}}}function os(l){let e;return{c(){e=u("div"),e.textContent="Изменён сегодня",a(e,"class","today-events-empty svelte-xaaokk")},m(t,n){g(t,e,n)},p:q,d(t){t&&h(e)}}}function ss(l){let e,t=te(l[189].events),n=[];for(let i=0;i0?ss:os}let B=j(l),I=B(l);return{c(){e=u("div"),t=u("div"),n=u("span"),s=E(i),o=C(),r=u("span"),k=E(c),m=C(),S&&S.c(),v=C(),_=u("span"),b=E(p),y=C(),I.c(),a(n,"class","today-case-title svelte-xaaokk"),a(r,"class","today-case-type svelte-xaaokk"),a(_,"class","today-case-time svelte-xaaokk"),a(t,"class","today-case-header svelte-xaaokk"),a(t,"role","button"),a(t,"tabindex","0"),a(e,"class","today-case svelte-xaaokk")},m(F,L){g(F,e,L),f(e,t),f(t,n),f(n,s),f(t,o),f(t,r),f(r,k),f(t,m),S&&S.m(t,null),f(t,v),f(t,_),f(_,b),f(e,y),I.m(e,null),w||(T=[H(t,"click",A),H(t,"keydown",M)],w=!0)},p(F,L){l=F,L[0]&4&&i!==(i=l[189].nodeTitle+"")&&O(s,i),L[0]&4&&c!==(c=en(l[189].nodeKind)+"")&&O(k,c),l[189].events?S?S.p(l,L):(S=Tl(l),S.c(),S.m(t,v)):S&&(S.d(1),S=null),L[0]&4&&p!==(p=me(l[189].lastActivityAt)+"")&&O(b,p),B===(B=j(l))&&I?I.p(l,L):(I.d(1),I=B(l),I&&(I.c(),I.m(e,null)))},d(F){F&&h(e),S&&S.d(),I.d(),w=!1,se(T)}}}function Dl(l){let e,t,n,i=te(l[2].events),s=[];for(let o=0;o0&&jl(l);const j=[gs,bs],B=[];function I(N,X){return N[25]?0:1}_=I(l),p=B[_]=j[_](l);let F=l[22]&&!l[24]&&Ol(),L=l[29]&&Pl(l);return{c(){e=u("div"),t=u("div"),n=u("button"),i=E("+ Добавить файл"),s=C(),o=u("button"),r=E("+ Добавить папку"),c=C(),k=u("button"),k.textContent="+ Новый файл",m=C(),M&&M.c(),v=C(),p.c(),b=C(),F&&F.c(),y=C(),L&&L.c(),w=he(),a(n,"class","btn btn-primary svelte-xaaokk"),n.disabled=l[22],a(o,"class","btn svelte-xaaokk"),o.disabled=l[22],a(k,"class","btn svelte-xaaokk"),a(t,"class","tab-toolbar svelte-xaaokk"),a(e,"class","files-tab svelte-xaaokk")},m(N,X){g(N,e,X),f(e,t),f(t,n),f(n,i),f(t,s),f(t,o),f(o,r),f(t,c),f(t,k),f(t,m),M&&M.m(t,null),f(e,v),B[_].m(e,null),f(e,b),F&&F.m(e,null),g(N,y,X),L&&L.m(N,X),g(N,w,X),T=!0,S||(A=[H(n,"click",l[80]),H(o,"click",l[81]),H(k,"click",l[52])],S=!0)},p(N,X){(!T||X[0]&4194304)&&(n.disabled=N[22]),(!T||X[0]&4194304)&&(o.disabled=N[22]),N[33].items.length>0?M?M.p(N,X):(M=jl(N),M.c(),M.m(t,null)):M&&(M.d(1),M=null);let ee=_;_=I(N),_===ee?B[_].p(N,X):(ye(),re(B[ee],1,1,()=>{B[ee]=null}),we(),p=B[_],p?p.p(N,X):(p=B[_]=j[_](N),p.c()),ie(p,1),p.m(e,b)),N[22]&&!N[24]?F||(F=Ol(),F.c(),F.m(e,null)):F&&(F.d(1),F=null),N[29]?L?(L.p(N,X),X[0]&536870912&&ie(L,1)):(L=Pl(N),L.c(),ie(L,1),L.m(w.parentNode,w)):L&&(ye(),re(L,1,1,()=>{L=null}),we())},i(N){T||(ie(p),ie(L),T=!0)},o(N){re(p),re(L),T=!1},d(N){N&&(h(e),h(y),h(w)),M&&M.d(),B[_].d(),F&&F.d(),L&&L.d(N),S=!1,se(A)}}}function us(l){let e,t,n,i,s,o,r,c=l[19]&&zl(l);function k(_,p){return _[10].length===0&&!_[19]?Ls:Ms}let m=k(l),v=m(l);return{c(){e=u("div"),t=u("div"),n=u("button"),n.textContent="+ Добавить заметку",i=C(),c&&c.c(),s=C(),v.c(),a(n,"class","btn btn-primary svelte-xaaokk"),a(t,"class","tab-toolbar svelte-xaaokk"),a(e,"class","notes-tab svelte-xaaokk")},m(_,p){g(_,e,p),f(e,t),f(t,n),f(e,i),c&&c.m(e,null),f(e,s),v.m(e,null),o||(r=H(n,"click",l[72]),o=!0)},p(_,p){_[19]?c?c.p(_,p):(c=zl(_),c.c(),c.m(e,s)):c&&(c.d(1),c=null),m===(m=k(_))&&v?v.p(_,p):(v.d(1),v=m(_),v&&(v.c(),v.m(e,null)))},i:q,o:q,d(_){_&&h(e),c&&c.d(),v.d(),o=!1,r()}}}function ds(l){let e,t,n=l[8].title+"",i,s,o,r,c,k,m=l[8].type+"",v,_,p,b,y,w=(l[8].section||"—")+"",T,S,A,M,j,B=ve(l[8].createdAt)+"",I,F,L,N,X,ee,Z,V,le,P,K,W,R,$,ne=l[10].length>0&&Rl(l),G=l[13].length>0&&Kl(l);return{c(){e=u("div"),t=u("h2"),i=E(n),s=C(),o=u("div"),r=u("div"),c=u("span"),c.textContent="Тип",k=u("span"),v=E(m),_=C(),p=u("div"),b=u("span"),b.textContent="Раздел",y=u("span"),T=E(w),S=C(),A=u("div"),M=u("span"),M.textContent="Создано",j=u("span"),I=E(B),F=C(),L=u("div"),N=u("button"),N.innerHTML=`
+ Новая заметка`,X=C(),ee=u("button"),ee.innerHTML=`
+ Добавить файл`,Z=C(),V=u("button"),V.innerHTML=`
+ Добавить действие`,le=C(),P=u("button"),P.innerHTML=`
+ Записать время`,K=C(),ne&&ne.c(),W=C(),G&&G.c(),a(t,"class","svelte-xaaokk"),a(c,"class","meta-label svelte-xaaokk"),a(k,"class","svelte-xaaokk"),a(r,"class","meta-item svelte-xaaokk"),a(b,"class","meta-label svelte-xaaokk"),a(y,"class","svelte-xaaokk"),a(p,"class","meta-item svelte-xaaokk"),a(M,"class","meta-label svelte-xaaokk"),a(j,"class","svelte-xaaokk"),a(A,"class","meta-item svelte-xaaokk"),a(o,"class","meta-grid svelte-xaaokk"),a(N,"class","qa-btn svelte-xaaokk"),a(ee,"class","qa-btn svelte-xaaokk"),a(V,"class","qa-btn svelte-xaaokk"),V.disabled=!0,a(V,"title","Следующий этап"),a(P,"class","qa-btn svelte-xaaokk"),a(L,"class","quick-actions svelte-xaaokk"),a(e,"class","overview svelte-xaaokk")},m(U,Y){g(U,e,Y),f(e,t),f(t,i),f(e,s),f(e,o),f(o,r),f(r,c),f(r,k),f(k,v),f(o,_),f(o,p),f(p,b),f(p,y),f(y,T),f(o,S),f(o,A),f(A,M),f(A,j),f(j,I),f(e,F),f(e,L),f(L,N),f(L,X),f(L,ee),f(L,Z),f(L,V),f(L,le),f(L,P),f(e,K),ne&&ne.m(e,null),f(e,W),G&&G.m(e,null),R||($=[H(N,"click",l[93]),H(ee,"click",l[94]),H(P,"click",l[95])],R=!0)},p(U,Y){Y[0]&256&&n!==(n=U[8].title+"")&&O(i,n),Y[0]&256&&m!==(m=U[8].type+"")&&O(v,m),Y[0]&256&&w!==(w=(U[8].section||"—")+"")&&O(T,w),Y[0]&256&&B!==(B=ve(U[8].createdAt)+"")&&O(I,B),U[10].length>0?ne?ne.p(U,Y):(ne=Rl(U),ne.c(),ne.m(e,W)):ne&&(ne.d(1),ne=null),U[13].length>0?G?G.p(U,Y):(G=Kl(U),G.c(),G.m(e,null)):G&&(G.d(1),G=null)},i:q,o:q,d(U){U&&h(e),ne&&ne.d(),G&&G.d(),R=!1,se($)}}}function ks(l){let e,t=te(l[4]),n=[];for(let i=0;iАктивность пока не зафиксирована',a(e,"class","empty-state svelte-xaaokk")},m(t,n){g(t,e,n)},p:q,d(t){t&&h(e)}}}function El(l){let e,t=l[181].targetType+"",n;return{c(){e=u("span"),n=E(t),a(e,"class","activity-event-target svelte-xaaokk")},m(i,s){g(i,e,s),f(e,n)},p(i,s){s[0]&16&&t!==(t=i[181].targetType+"")&&O(n,t)},d(i){i&&h(e)}}}function Fl(l){let e,t,n=je(l[181].eventType)+"",i,s,o,r=l[181].title+"",c,k,m,v=Ce(l[181].eventType)+"",_,p,b,y,w=me(l[181].createdAt)+"",T,S,A=l[181].targetType&&El(l);return{c(){e=u("div"),t=u("span"),i=E(n),s=C(),o=u("span"),c=E(r),k=C(),m=u("span"),_=E(v),p=C(),A&&A.c(),b=C(),y=u("span"),T=E(w),S=C(),a(t,"class","activity-event-icon svelte-xaaokk"),a(o,"class","activity-event-title svelte-xaaokk"),a(m,"class","activity-event-type svelte-xaaokk"),a(y,"class","activity-event-time svelte-xaaokk"),a(e,"class","activity-event svelte-xaaokk")},m(M,j){g(M,e,j),f(e,t),f(t,i),f(e,s),f(e,o),f(o,c),f(e,k),f(e,m),f(m,_),f(e,p),A&&A.m(e,null),f(e,b),f(e,y),f(y,T),f(e,S)},p(M,j){j[0]&16&&n!==(n=je(M[181].eventType)+"")&&O(i,n),j[0]&16&&r!==(r=M[181].title+"")&&O(c,r),j[0]&16&&v!==(v=Ce(M[181].eventType)+"")&&O(_,v),M[181].targetType?A?A.p(M,j):(A=El(M),A.c(),A.m(e,b)):A&&(A.d(1),A=null),j[0]&16&&w!==(w=me(M[181].createdAt)+"")&&O(T,w)},d(M){M&&h(e),A&&A.d()}}}function ps(l){let e,t=te(l[13]),n=[];for(let i=0;iЗаписей работы пока нет',a(e,"class","empty-state svelte-xaaokk")},m(t,n){g(t,e,n)},p:q,d(t){t&&h(e)}}}function Al(l){let e,t,n=l[165].summary+"",i,s,o,r=l[165].minutes+"",c,k,m=ve(l[165].createdAt)+"",v,_;return{c(){e=u("div"),t=u("div"),i=E(n),s=C(),o=u("div"),c=E(r),k=E(" мин · "),v=E(m),_=C(),a(t,"class","svelte-xaaokk"),a(o,"class","wl-meta svelte-xaaokk"),a(e,"class","worklog-entry svelte-xaaokk")},m(p,b){g(p,e,b),f(e,t),f(t,i),f(e,s),f(e,o),f(o,c),f(o,k),f(o,v),f(e,_)},p(p,b){b[0]&8192&&n!==(n=p[165].summary+"")&&O(i,n),b[0]&8192&&r!==(r=p[165].minutes+"")&&O(c,r),b[0]&8192&&m!==(m=ve(p[165].createdAt)+"")&&O(v,m)},d(p){p&&h(e)}}}function vs(l){let e,t=te(l[12]),n=[];for(let i=0;iДействий пока нет',a(e,"class","empty-state svelte-xaaokk")},m(t,n){g(t,e,n)},p:q,d(t){t&&h(e)}}}function Hl(l){let e,t,n=l[176].title+"",i,s,o=l[176].type+"",r,c,k,m,v,_;function p(){return l[114](l[176])}return{c(){e=u("div"),t=u("span"),i=E(n),s=u("span"),r=E(o),c=C(),k=u("button"),k.textContent="Запустить",m=C(),a(t,"class","svelte-xaaokk"),a(s,"class","action-type svelte-xaaokk"),a(k,"class","btn btn-sm svelte-xaaokk"),a(e,"class","action-card svelte-xaaokk")},m(b,y){g(b,e,y),f(e,t),f(t,i),f(e,s),f(s,r),f(e,c),f(e,k),f(e,m),v||(_=H(k,"click",p),v=!0)},p(b,y){l=b,y[0]&4096&&n!==(n=l[176].title+"")&&O(i,n),y[0]&4096&&o!==(o=l[176].type+"")&&O(r,o)},d(b){b&&h(e),v=!1,_()}}}function jl(l){let e,t,n=l[33].items.length+"",i,s,o;return{c(){e=u("button"),t=E("Вставить "),i=E(n),a(e,"class","btn svelte-xaaokk")},m(r,c){g(r,e,c),f(e,t),f(e,i),s||(o=H(e,"click",l[57]),s=!0)},p(r,c){c[1]&4&&n!==(n=r[33].items.length+"")&&O(i,n)},d(r){r&&h(e),s=!1,o()}}}function bs(l){let e,t,n,i,s,o,r;const c=[ws,ys],k=[];function m(b,y){return b[27].length>0?0:1}e=m(l),t=k[e]=c[e](l);const v=[Ts,Cs],_=[];function p(b,y){return b[28].length===0?0:1}return i=p(l),s=_[i]=v[i](l),{c(){t.c(),n=C(),s.c(),o=he()},m(b,y){k[e].m(b,y),g(b,n,y),_[i].m(b,y),g(b,o,y),r=!0},p(b,y){let w=e;e=m(b),e===w?k[e].p(b,y):(ye(),re(k[w],1,1,()=>{k[w]=null}),we(),t=k[e],t?t.p(b,y):(t=k[e]=c[e](b),t.c()),ie(t,1),t.m(n.parentNode,n));let T=i;i=p(b),i===T?_[i].p(b,y):(ye(),re(_[T],1,1,()=>{_[T]=null}),we(),s=_[i],s?s.p(b,y):(s=_[i]=v[i](b),s.c()),ie(s,1),s.m(o.parentNode,o))},i(b){r||(ie(t),ie(s),r=!0)},o(b){re(t),re(s),r=!1},d(b){b&&(h(n),h(o)),k[e].d(b),_[i].d(b)}}}function gs(l){let e;return{c(){e=u("div"),e.innerHTML='Загрузка...
',a(e,"class","empty-state svelte-xaaokk")},m(t,n){g(t,e,n)},p:q,i:q,o:q,d(t){t&&h(e)}}}function ys(l){let e,t;return e=new pn({props:{crumbs:[{name:"Файлы"}]}}),{c(){Ie(e.$$.fragment)},m(n,i){Me(e,n,i),t=!0},p:q,i(n){t||(ie(e.$$.fragment,n),t=!0)},o(n){re(e.$$.fragment,n),t=!1},d(n){Le(e,n)}}}function ws(l){let e,t,n,i,s,o;return e=new pn({props:{crumbs:[{name:"Файлы"},...l[27]]}}),e.$on("navigate",l[100]),{c(){Ie(e.$$.fragment),t=C(),n=u("button"),n.innerHTML=`
+ Back`,a(n,"class","btn btn-sm back-btn svelte-xaaokk")},m(r,c){Me(e,r,c),g(r,t,c),g(r,n,c),i=!0,s||(o=H(n,"click",l[48]),s=!0)},p(r,c){const k={};c[0]&134217728&&(k.crumbs=[{name:"Файлы"},...r[27]]),e.$set(k)},i(r){i||(ie(e.$$.fragment,r),i=!0)},o(r){re(e.$$.fragment,r),i=!1},d(r){r&&(h(t),h(n)),Le(e,r),s=!1,o()}}}function Cs(l){let e,t=[],n=new Map,i,s=te(l[28]);const o=r=>r[173].id;for(let r=0;r0?"В этой папке пока нет файлов":"В этом проекте пока нет файлов",o,r,c,k,m,v,_,p,b,y;return{c(){e=u("div"),t=u("div"),t.innerHTML=' ',n=C(),i=u("p"),o=E(s),r=C(),c=u("p"),c.textContent="Добавьте файл или папку, чтобы сохранить материалы проекта.",k=C(),m=u("div"),v=u("button"),v.textContent="Добавить файл",_=C(),p=u("button"),p.textContent="Добавить папку",a(t,"class","empty-icon svelte-xaaokk"),a(i,"class","svelte-xaaokk"),a(c,"class","hint svelte-xaaokk"),a(v,"class","btn btn-primary svelte-xaaokk"),a(p,"class","btn svelte-xaaokk"),a(m,"class","empty-actions svelte-xaaokk"),a(e,"class","empty-state svelte-xaaokk")},m(w,T){g(w,e,T),f(e,t),f(e,n),f(e,i),f(i,o),f(e,r),f(e,c),f(e,k),f(e,m),f(m,v),f(m,_),f(m,p),b||(y=[H(v,"click",l[80]),H(p,"click",l[81])],b=!0)},p(w,T){T[0]&134217728&&s!==(s=w[27].length>0?"В этой папке пока нет файлов":"В этом проекте пока нет файлов")&&O(o,s)},i:q,o:q,d(w){w&&h(e),b=!1,se(y)}}}function Bl(l,e){let t,n,i;return n=new To({props:{item:e[173],selected:e[34].includes(e[173].id),onDragStart:e[61],onDragOver:e[62],onDrop:e[63]}}),n.$on("navigate",e[101]),n.$on("preview",e[102]),n.$on("openExternal",e[103]),n.$on("showInFolder",e[104]),n.$on("delete",e[105]),n.$on("rename",e[106]),n.$on("duplicate",e[107]),n.$on("cut",e[108]),n.$on("copy",e[109]),n.$on("selectOne",e[110]),n.$on("toggleSelect",e[111]),n.$on("rangeSelect",e[112]),{key:l,first:null,c(){t=he(),Ie(n.$$.fragment),this.first=t},m(s,o){g(s,t,o),Me(n,s,o),i=!0},p(s,o){e=s;const r={};o[0]&268435456&&(r.item=e[173]),o[0]&268435456|o[1]&8&&(r.selected=e[34].includes(e[173].id)),n.$set(r)},i(s){i||(ie(n.$$.fragment,s),i=!0)},o(s){re(n.$$.fragment,s),i=!1},d(s){s&&h(t),Le(n,s)}}}function Ol(l){let e;return{c(){e=u("div"),e.innerHTML='Сканирование...
',a(e,"class","empty-state svelte-xaaokk")},m(t,n){g(t,e,n)},d(t){t&&h(e)}}}function Pl(l){let e,t;return e=new Vo({props:{item:l[29],content:l[30],loading:l[31],error:l[32]}}),e.$on("close",l[51]),e.$on("openExternal",l[113]),{c(){Ie(e.$$.fragment)},m(n,i){Me(e,n,i),t=!0},p(n,i){const s={};i[0]&536870912&&(s.item=n[29]),i[0]&1073741824&&(s.content=n[30]),i[1]&1&&(s.loading=n[31]),i[1]&2&&(s.error=n[32]),e.$set(s)},i(n){t||(ie(e.$$.fragment,n),t=!0)},o(n){re(e.$$.fragment,n),t=!1},d(n){Le(e,n)}}}function zl(l){let e,t,n,i,s,o,r,c,k;return{c(){e=u("div"),t=u("input"),n=C(),i=u("div"),s=u("button"),s.textContent="Создать",o=C(),r=u("button"),r.textContent="Отмена",a(t,"type","text"),a(t,"placeholder","Название заметки"),a(t,"class","svelte-xaaokk"),a(s,"class","btn btn-primary svelte-xaaokk"),a(r,"class","btn svelte-xaaokk"),a(i,"class","form-actions svelte-xaaokk"),a(e,"class","create-form svelte-xaaokk")},m(m,v){g(m,e,v),f(e,t),_e(t,l[20]),f(e,n),f(e,i),f(i,s),f(i,o),f(i,r),c||(k=[H(t,"input",l[97]),H(t,"keydown",l[98]),H(s,"click",l[74]),H(r,"click",l[73])],c=!0)},p(m,v){v[0]&1048576&&t.value!==m[20]&&_e(t,m[20])},d(m){m&&h(e),c=!1,se(k)}}}function Ms(l){let e,t=te(l[10]),n=[];for(let i=0;iНет заметокСоздайте первую заметку для этого дела.
',a(e,"class","empty-state svelte-xaaokk")},m(t,n){g(t,e,n)},p:q,d(t){t&&h(e)}}}function Vl(l){let e,t,n=l[168].title+"",i,s,o,r=ve(l[168].createdAt)+"",c,k,m,v;function _(){return l[99](l[168])}return{c(){e=u("div"),t=u("div"),i=E(n),s=C(),o=u("div"),c=E(r),k=C(),a(t,"class","note-card-title svelte-xaaokk"),a(o,"class","note-card-date svelte-xaaokk"),a(e,"class","note-card svelte-xaaokk")},m(p,b){g(p,e,b),f(e,t),f(t,i),f(e,s),f(e,o),f(o,c),f(e,k),m||(v=H(e,"click",_),m=!0)},p(p,b){l=p,b[0]&1024&&n!==(n=l[168].title+"")&&O(i,n),b[0]&1024&&r!==(r=ve(l[168].createdAt)+"")&&O(c,r)},d(p){p&&h(e),m=!1,v()}}}function Rl(l){let e,t,n,i=te(l[10].slice(0,5)),s=[];for(let o=0;ol[127].call(p)),a(m,"class","form-group svelte-xaaokk"),a(w,"class","btn btn-primary svelte-xaaokk"),a(S,"class","btn svelte-xaaokk"),a(y,"class","modal-actions svelte-xaaokk"),a(t,"class","modal svelte-xaaokk"),a(e,"class","modal-overlay svelte-xaaokk")},m(I,F){g(I,e,F),f(e,t),f(t,n),f(t,i),f(t,s),f(s,o),f(s,r),f(s,c),_e(c,l[17]),f(t,k),f(t,m),f(m,v),f(m,_),f(m,p);for(let L=0;L⚒ Верстак ',i=C(),s=u("nav"),o=u("div"),r=u("div"),r.textContent="Разделы",c=C();for(let z=0;z{$[pe]=null}),we(),j=$[M],j?j.p(z,ce):(j=$[M]=R[M](z),j.c()),ie(j,1),j.m(y,B)),!z[11]&&!z[8]&&z[7]!=="today"&&z[7]!=="inbox"&&z[7]!=="activity"?G?G.p(z,ce):(G=Gl(z),G.c(),G.m(y,I)):G&&(G.d(1),G=null),z[16]?U?U.p(z,ce):(U=Ul(z),U.c(),U.m(y,F)):U&&(U.d(1),U=null),z[24]&&z[23]?Y?Y.p(z,ce):(Y=Xl(z),Y.c(),Y.m(y,L)):Y&&(Y.d(1),Y=null),z[40]?J?J.p(z,ce):(J=Yl(z),J.c(),J.m(y,N)):J&&(J.d(1),J=null),z[35]?ae?(ae.p(z,ce),ce[1]&16&&ie(ae,1)):(ae=$l(z),ae.c(),ie(ae,1),ae.m(y,null)):ae&&(ye(),re(ae,1,1,()=>{ae=null}),we())},i(z){X||(ie(j),ie(ae),X=!0)},o(z){re(j),re(ae),X=!1},d(z){z&&h(e),ue(Z,z),V&&V.d(),K.d(),W&&W.d(),$[M].d(),G&&G.d(),U&&U.d(),Y&&Y.d(),J&&J.d(),ae&&ae.d()}}}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 Ce(l){return{note_created:"Заметка создана",note_updated:"Заметка изменена",file_added:"Файл добавлен",file_deleted:"Файл удалён",file_renamed:"Файл переименован",file_copied:"Файл скопирован",file_moved:"Файл перемещён",folder_added:"Папка добавлена",folder_deleted:"Папка удалена",folder_renamed:"Папка переименована",node_created:"Дело создано",node_updated:"Дело изменено"}[l]||l}function je(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 me(l){if(!l)return"";try{return new Date(l).toLocaleTimeString("ru-RU",{hour:"2-digit",minute:"2-digit"})}catch{return""}}function ve(l){if(!l)return"";try{return new Date(l).toLocaleDateString("ru-RU",{day:"numeric",month:"short"})}catch{return l}}function en(l){return{project:"Проект",client:"Клиент",document:"Документ",recipe:"Рецепт",archive:"Архив",case:"Дело"}[l]||l||"Дело"}function Te(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)}const tn=l=>l.id!=="today"&&l.id!=="inbox"&&l.id!=="activity";function Ds(l,e,t){let n=[],i=[],s=null,o=[],r=0,c=!0,k=[],m="",v="",_="",p=null,b="overview",y=[],w=null,T=[],S=[],A=[],M="",j="",B=!1,I="",F="clients",L=!1,N="",X=!0,ee=!1,Z=null,V=!1,le="",P=!1,K=null,W=[],R=[],$=null,ne="",G=!1,U="",Y={items:[],mode:"copy"},J=[],ae=[],z=!1,ce="",pe="",de=!1,ze="Удалить",xe=null,qe=null,Ge=!1,Ue="",Ne="",Ee="";const mn=[{id:"overview",label:"Обзор"},{id:"notes",label:"Заметки"},{id:"files",label:"Файлы"},{id:"actions",label:"Действия"},{id:"worklog",label:"Журнал"},{id:"activity",label:"Активность"}];let tt=null;sn(async()=>{try{t(5,m=await Q("VerstakVersion")||"verstak-gui/v2"),t(0,n=await Q("ListSections")||[])}catch(d){t(6,v=String(d)),t(0,n=[{id:"today",label:"Сегодня"},{id:"inbox",label:"Неразобранное"},{id:"activity",label:"Активность"},{id:"clients",label:"Клиенты"},{id:"projects",label:"Проекты"},{id:"recipes",label:"Рецепты"},{id:"documents",label:"Документы"},{id:"archive",label:"Архив"}])}window.runtime&&window.runtime.EventsOn&&(window.runtime.EventsOn("files-dropped",Rn),tt=()=>window.runtime.EventsOff("files-dropped")),window.addEventListener("keydown",Dt),t(21,X=!1)}),an(()=>{tt&&tt(),window.removeEventListener("keydown",Dt)});async function lt(d){t(7,_=d),t(8,p=null),t(9,b="overview"),t(10,y=[]),T=[],t(12,S=[]),t(13,A=[]),t(16,B=!1),t(6,v=""),t(2,s=null),t(3,o=[]),r=0,c=!0,t(1,i=[]);try{d==="today"?t(2,s=await Q("ListTodayView")||{cases:[]}):d==="activity"?(t(3,o=await Q("ListActivityFeed",50,0)||[]),r=o.length,c=o.length===50):t(1,i=await Q("ListNodesBySection",d)||[])}catch(D){t(6,v=String(D)),t(1,i=[]),t(2,s={cases:[]}),t(3,o=[])}}async function nt(d){t(8,p=d),t(9,b="overview"),t(10,y=[]),T=[],t(12,S=[]),t(13,A=[]),t(28,R=[]),t(27,W=[]),t(26,K=null),t(29,$=null),t(30,ne=""),t(34,J=[]),ae=[],t(11,w=null),t(16,B=!1),t(19,L=!1),t(6,v=""),t(4,k=[]),await vt(d.id)}async function vt(d){try{t(10,y=await Q("ListNotes",d)||[])}catch{}try{T=await Q("ListFiles",d)||[]}catch{}try{t(12,S=await Q("ListActions",d)||[])}catch{}try{t(13,A=await Q("ListWorklog",d)||[])}catch{}try{t(4,k=await Q("ListActivityByNode",d,50,0)||[])}catch{}}async function ke(d){t(25,P=!0);try{let D=await Q("ListItems",d)||[];D.sort((oe,fe)=>oe.type!==fe.type?oe.type==="folder"?-1:1:(oe.name||"").localeCompare(fe.name||"")),t(28,R=D)}catch{t(28,R=[])}t(25,P=!1)}async function it(d){if(p){try{const D=await Q("GetNodeDetail",d);D&&t(27,W=[...W,{id:d,name:D.title}])}catch{t(27,W=[...W,{id:d,name:"..."}])}t(26,K=d),await ke(d)}}function ht(){if(W.length<2)t(27,W=[]),t(26,K=null),ke(p.id);else{const d=W[W.length-2];t(27,W=W.slice(0,-1)),t(26,K=d.id),ke(d.id)}}function bt(d){const D=W[d];t(27,W=W.slice(0,d+1)),t(26,K=D.id),ke(D.id)}async function ot(d){t(29,$=d),t(30,ne=""),t(32,U=""),t(31,G=!0);try{mo(d)?t(30,ne=await Q("GetFileBase64",d.fileId)||""):vo(d)&&t(30,ne=await Q("ReadFileText",d.fileId)||"")}catch(D){t(32,U=String(D))}t(31,G=!1)}function st(){t(29,$=null),t(30,ne=""),t(32,U="")}async function vn(){const d=prompt("Введите имя файла:");if(!(!d||!d.trim()))try{const D=K||p.id;await Q("CreateEmptyFile",D,d.trim()),await ke(D)}catch(D){t(6,v=String(D))}}async function gt(d){try{await Q("DuplicateNode",d);const D=K||p.id;await ke(D)}catch(D){t(6,v=String(D))}}function yt(d){const D=R.find(oe=>oe.id===d);D&&Nt(D.id,D.name)}function wt(d){t(33,Y={items:[d],mode:"cut"})}function Ct(d){t(33,Y={items:[d],mode:"copy"})}async function Tt(){if(Y.items.length===0)return;const d=K||p.id;try{if(Y.mode==="copy")for(const D of Y.items)await Q("DuplicateNode",D);else for(const D of Y.items)await Q("MoveNode",D,d);t(33,Y={items:[],mode:"copy"}),await ke(d)}catch(D){t(6,v=String(D))}}function Mt(d){J.includes(d)?t(34,J=J.filter(D=>D!==d)):t(34,J=[...J,d])}function Lt(d){t(34,J=[d])}function hn(){t(34,J=R.map(d=>d.id))}function St(d){if(R.length===0)return;const D=J.length>0?J[J.length-1]:R[0].id,oe=R.findIndex(Se=>Se.id===D),fe=R.findIndex(Se=>Se.id===d);if(oe===-1||fe===-1)return;const Ve=Math.min(oe,fe),ut=Math.max(oe,fe),Ai=R.slice(Ve,ut+1).map(Se=>Se.id),zt=new Set(J);Ai.forEach(Se=>zt.add(Se)),t(34,J=[...zt])}function bn(){t(34,J=[])}function at(d){return d.length>0?d:R.map(D=>D.id)}async function gn(){var oe;const d=at(J),D=d.length===1&&((oe=R.find(fe=>fe.id===d[0]))==null?void 0:oe.type)==="folder"?"папку":`файлов (${d.length})`;Je({title:"Удаление",message:`Удалить ${D}?`,confirmText:"Удалить",danger:!0,onConfirm:async()=>{for(const Ve of d)try{await Q("DeleteFileOrFolder",Ve)}catch(ut){t(6,v=String(ut))}t(34,J=[]);const fe=K||p.id;await ke(fe)}})}function yn(){const d=at(J);t(33,Y={items:d,mode:"cut"}),t(34,J=[])}function wn(){const d=at(J);t(33,Y={items:d,mode:"copy"}),t(34,J=[])}function Cn(d,D){const oe=J.includes(D)?J:[D];ae=oe,d.dataTransfer.effectAllowed="move",d.dataTransfer.setData("text/plain",oe.join(","))}function Tn(d,D){const oe=R.find(fe=>fe.id===D);oe&&oe.type==="folder"&&(d.preventDefault(),d.dataTransfer.dropEffect="move")}async function Mn(d,D){if(d.preventDefault(),ae.length!==0){for(const oe of ae)try{await Q("MoveNode",oe,D)}catch(fe){t(6,v=String(fe))}ae=[],t(34,J=[]),await ke(K||p.id)}}function Dt(d){if(b==="files"&&!(d.target.tagName==="INPUT"||d.target.tagName==="TEXTAREA"))if(d.ctrlKey||d.metaKey)d.key==="c"||d.key==="C"?(d.preventDefault(),wn()):d.key==="x"||d.key==="X"?(d.preventDefault(),yn()):d.key==="v"||d.key==="V"?(d.preventDefault(),Tt()):d.key==="a"||d.key==="A"?(d.preventDefault(),hn()):d.key==="o"||d.key==="O"?(d.preventDefault(),Ln()):d.key==="Enter"&&(d.preventDefault(),It());else if(d.key==="Enter")d.preventDefault(),It();else if(d.key==="Delete"||d.key==="Backspace"){if($){d.preventDefault(),st();return}if(J.length>0){d.preventDefault(),gn();return}if(d.key==="Backspace"&&W.length>0){d.preventDefault(),ht();return}}else if(d.key==="Escape"){if($){st();return}if(J.length>0){bn();return}}else d.key==="F2"&&(d.preventDefault(),Sn())}function It(){if(J.length===1){const d=R.find(D=>D.id===J[0]);d&&(d.type==="folder"?it(d.id):ot(d))}}function Ln(){if(J.length===1){const d=R.find(D=>D.id===J[0]);d&&d.fileId&&Q("OpenFile",d.fileId)}}function Nt(d,D){Ue=d,t(41,Ne=D),t(42,Ee=""),t(40,Ge=!0)}function Sn(){if(J.length===1){const d=R.find(D=>D.id===J[0]);d&&Nt(d.id,d.name)}}async function Et(){const d=Ne.trim();if(!d){t(42,Ee="Имя не может быть пустым");return}try{await Q("ValidateName",d)}catch{t(42,Ee="Недопустимое имя");return}t(40,Ge=!1),Ue="";try{await Q("RenameNode",Ue,d);const D=K||p.id;await ke(D)}catch(D){t(6,v=String(D))}}function Dn(){t(40,Ge=!1),Ue="",t(41,Ne=""),t(42,Ee="")}function In(d){d.key==="Enter"?Et():t(42,Ee="")}function Je(d){t(36,ce=d.title||"Подтверждение"),t(37,pe=d.message||""),t(38,de=d.danger!==void 0?d.danger:!0),t(39,ze=d.confirmText||"Удалить"),xe=d.onConfirm||null,qe=d.onCancel||null,t(35,z=!0)}function Ft(){t(35,z=!1),xe=null,qe=null}function Nn(){xe&&xe(),Ft()}function En(){qe&&qe(),Ft()}function Fn(){t(16,B=!0),t(17,I=""),t(18,F=_||"clients")}function An(){t(16,B=!1),t(17,I="")}async function At(){if(I.trim())try{const d=await Q("CreateNode","","case",I.trim(),F);t(16,B=!1),t(17,I=""),await lt(F)}catch(d){t(6,v=String(d))}}function Ht(){t(19,L=!0),t(20,N="")}function Hn(){t(19,L=!1),t(20,N="")}async function jt(){if(!(!N.trim()||!p))try{const d=await Q("CreateNote",p.id,N.trim());t(10,y=[...y,d&&d.id?d:{id:Date.now().toString(),title:N.trim(),createdAt:new Date().toISOString()}]),t(19,L=!1),t(20,N="")}catch{const D={id:Date.now().toString(),title:N.trim(),createdAt:new Date().toISOString()};t(10,y=[...y,D]),t(19,L=!1),t(20,N="")}}async function rt(d){if(w&&w.dirty){Je({title:"Несохранённые изменения",message:"Закрыть редактор? Все несохранённые изменения будут потеряны.",confirmText:"Закрыть",danger:!1,onConfirm:async()=>{await Bt(d)}});return}await Bt(d)}async function Bt(d){try{const D=await Q("ReadNote",d.id);t(11,w={id:d.id,title:d.title,content:D||"",dirty:!1})}catch{t(11,w={id:d.id,title:d.title,content:"# "+d.title+`
+
+`,dirty:!1})}}function jn(){if(w&&w.dirty){Je({title:"Несохранённые изменения",message:"Закрыть редактор? Все несохранённые изменения будут потеряны.",confirmText:"Закрыть",danger:!1,onConfirm:()=>{t(11,w=null)}});return}t(11,w=null)}function Bn(d){w&&(t(11,w.content=d.target.value,w),t(11,w.dirty=!0,w))}async function On(){if(w)try{await Q("SaveNote",w.id,w.content),t(11,w.dirty=!1,w)}catch{t(11,w.dirty=!1,w)}}async function Pn(){const d=parseInt(M,10);if(!(!j.trim()||isNaN(d)||d<=0||!p)){try{const D=await Q("CreateWorklog",p.id,j.trim(),d);t(13,A=[...A,D&&D.id?D:{id:Date.now().toString(),nodeId:p.id,summary:j.trim(),minutes:d,createdAt:new Date().toISOString()}])}catch{t(13,A=[...A,{id:Date.now().toString(),nodeId:p.id,summary:j.trim(),minutes:d,createdAt:new Date().toISOString()}])}t(15,j=""),t(14,M="")}}async function Ot(){const d=await Q("PickFile");d&&await ct(p.id,d)}async function zn(){const d=await Q("PickDirectory");d&&await ct(p.id,d)}async function ct(d,D){t(22,ee=!0);try{const oe=await Q("PreviewImport",D);t(23,Z=oe),le=D,t(24,V=!0)}catch(oe){t(6,v=String(oe))}t(22,ee=!1)}async function ft(d){try{const D=d==="copy"?await Q("AddPathCopy",p.id,le):await Q("AddPathLink",p.id,le);t(24,V=!1),t(23,Z=null),t(27,W=[]),t(26,K=null),await Promise.all([vt(p.id),ke(p.id)])}catch(D){t(6,v=String(D))}}function Vn(){t(24,V=!1),t(23,Z=null)}async function Pt({id:d,type:D}){Je({title:"Удаление",message:`Удалить ${D==="folder"?"папку":"файл"}?`,confirmText:"Удалить",danger:!0,onConfirm:async()=>{try{await Q("DeleteFileOrFolder",d),T=T.filter(Ve=>Ve.nodeId!==d);const fe=K||p.id;await ke(fe)}catch(fe){t(6,v=String(fe))}}})}async function Rn(d){if(!d||d.length===0)return;if(!p){t(6,v="Сначала выберите дело для добавления файлов");return}const D=d[0];await ct(p.id,D)}function Wn(d){return b===d?"tab active":"tab"}async function be(d){try{const D=await Q("GetNodeDetail",d);D&&nt(D)}catch(D){t(6,v=String(D))}}const Kn=d=>lt(d.id),xn=d=>nt(d),qn=()=>t(6,v=""),Gn=()=>t(6,v="");function Un(){w.content=this.value,t(11,w)}const Jn=d=>{t(9,b=d.id),d.id==="files"&&p&&R.length===0&&!K&&ke(p.id)},Xn=()=>{t(9,b="notes"),Ht()},Zn=()=>{t(9,b="files"),Ot()},Yn=()=>t(9,b="worklog"),Qn=d=>rt(d);function $n(){N=this.value,t(20,N)}const ei=d=>d.key==="Enter"&&jt(),ti=d=>rt(d),li=d=>{const D=d.detail;D===0?(t(27,W=[]),t(26,K=null),ke(p.id)):bt(D-1)},ni=d=>it(d.detail),ii=d=>ot(d.detail),oi=d=>Q("OpenFile",d.detail),si=d=>Q("OpenFolder",d.detail),ai=d=>Pt(d.detail),ri=d=>yt(d.detail.id),ci=d=>gt(d.detail),fi=d=>wt(d.detail),ui=d=>Ct(d.detail),di=d=>Lt(d.detail),ki=d=>Mt(d.detail),_i=d=>St(d.detail),pi=d=>Q("OpenFile",d.detail),mi=d=>Q("RunAction",d.id);function vi(){j=this.value,t(15,j)}function hi(){M=on(this.value),t(14,M)}const bi=d=>be(d.nodeId),gi=(d,D)=>D.key==="Enter"&&be(d.nodeId),yi=d=>be(d.nodeId),wi=(d,D)=>D.key==="Enter"&&be(d.nodeId),Ci=d=>be(d.nodeId),Ti=(d,D)=>D.key==="Enter"&&be(d.nodeId),Mi=d=>be(d.nodeId),Li=(d,D)=>D.key==="Enter"&&be(d.nodeId);function Si(){I=this.value,t(17,I)}const Di=d=>d.key==="Enter"&&At();function Ii(){F=zi(this),t(18,F),t(0,n)}const Ni=()=>ft("copy"),Ei=()=>ft("link");function Fi(){Ne=this.value,t(41,Ne)}return[n,i,s,o,k,m,v,_,p,b,y,w,S,A,M,j,B,I,F,L,N,X,ee,Z,V,P,K,W,R,$,ne,G,U,Y,J,z,ce,pe,de,ze,Ge,Ne,Ee,mn,lt,nt,ke,it,ht,bt,ot,st,vn,gt,yt,wt,Ct,Tt,Mt,Lt,St,Cn,Tn,Mn,Et,Dn,In,Nn,En,Fn,An,At,Ht,Hn,jt,rt,jn,Bn,On,Pn,Ot,zn,ft,Vn,Pt,Wn,be,Kn,xn,qn,Gn,Un,Jn,Xn,Zn,Yn,Qn,$n,ei,ti,li,ni,ii,oi,si,ai,ri,ci,fi,ui,di,ki,_i,pi,mi,vi,hi,bi,gi,yi,wi,Ci,Ti,Mi,Li,Si,Di,Ii,Ni,Ei,Fi]}class Is extends Pe{constructor(e){super(),Oe(this,e,Ds,Ss,Be,{},null,[-1,-1,-1,-1,-1,-1,-1])}}new Is({target:document.getElementById("app")});
diff --git a/cmd/verstak-gui/frontend-dist/index.html b/cmd/verstak-gui/frontend-dist/index.html
index d533fca..b8bfaac 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/wailsjs/go/main/App.js b/frontend/src/wailsjs/go/main/App.js
index 12986dc..a21b869 100644
--- a/frontend/src/wailsjs/go/main/App.js
+++ b/frontend/src/wailsjs/go/main/App.js
@@ -109,3 +109,19 @@ export function OpenFolder(arg1) {
export function VerstakVersion() {
return window['go']['main']['App']['VerstakVersion']();
}
+
+export function ListActivityFeed(arg1, arg2) {
+ return window['go']['main']['App']['ListActivityFeed'](arg1, arg2);
+}
+
+export function ListActivityByNode(arg1, arg2, arg3) {
+ return window['go']['main']['App']['ListActivityByNode'](arg1, arg2, arg3);
+}
+
+export function CountActivityByNode(arg1) {
+ return window['go']['main']['App']['CountActivityByNode'](arg1);
+}
+
+export function CreateEmptyFile(arg1, arg2) {
+ return window['go']['main']['App']['CreateEmptyFile'](arg1, arg2);
+}