diff --git a/cmd/verstak-gui/app.go b/cmd/verstak-gui/app.go index fc61019..b34bcf2 100644 --- a/cmd/verstak-gui/app.go +++ b/cmd/verstak-gui/app.go @@ -3,6 +3,7 @@ package main import ( "context" "fmt" + "log" "os" "os/exec" "path/filepath" @@ -51,6 +52,49 @@ func (a *App) startup(ctx context.Context) { wailsruntime.EventsEmit(ctx, "files-dropped", paths) } }) + go a.autoSyncLoop() +} + +func (a *App) autoSyncLoop() { + const checkInterval = 60 * time.Second + ticker := time.NewTicker(checkInterval) + defer ticker.Stop() + log.Printf("[autosync] started, vault=%s", a.vault) + for { + select { + case <-ticker.C: + serverURL := "" + cfg, err := config.Load(a.vault) + if err == nil { + serverURL = cfg.Sync.ServerURL + } + // Fall back to SQLite sync_state if config doesn't have it. + if serverURL == "" { + sURL, _, _, _, _ := a.sync.GetState() + serverURL = sURL + } + if serverURL == "" { + log.Printf("[autosync] no server URL") + continue + } + if cfg != nil && cfg.Sync.SyncInterval <= 0 { + log.Printf("[autosync] interval=%d, skipping", cfg.Sync.SyncInterval) + continue + } + deviceToken := config.LoadDeviceToken(a.vault) + if deviceToken == "" { + log.Printf("[autosync] no device token") + continue + } + log.Printf("[autosync] running SyncNow...") + if _, err := a.SyncNow(); err != nil { + log.Printf("[autosync] SyncNow error: %v", err) + } + case <-a.ctx.Done(): + log.Printf("[autosync] stopped") + return + } + } } // ============================================================ @@ -844,6 +888,10 @@ type SyncStatusDTO struct { Configured bool `json:"configured"` ServerURL string `json:"serverUrl"` DeviceID string `json:"deviceId"` + DeviceName string `json:"deviceName"` + Connected bool `json:"connected"` + Revoked bool `json:"revoked"` + TokenStored bool `json:"tokenStored"` UnpushedOps int `json:"unpushedOps"` LastSyncAt string `json:"lastSyncAt"` SyncInterval int `json:"syncInterval"` @@ -854,65 +902,120 @@ func (a *App) SyncStatus() (*SyncStatusDTO, error) { if err != nil { return &SyncStatusDTO{}, nil } - unpushed, _ := a.sync.GetUnpushedOps() cfg, _ := config.Load(a.vault) + deviceToken := config.LoadDeviceToken(a.vault) dto := &SyncStatusDTO{ - Configured: serverURL != "" && apiKey != "", + Configured: serverURL != "" && (apiKey != "" || deviceToken != ""), ServerURL: serverURL, - UnpushedOps: len(unpushed), LastSyncAt: lastSyncAt, + UnpushedOps: 0, + TokenStored: deviceToken != "", } if cfg != nil { dto.DeviceID = cfg.Sync.DeviceID dto.SyncInterval = cfg.Sync.SyncInterval } + unpushed, _ := a.sync.GetUnpushedOps() + dto.UnpushedOps = len(unpushed) + + if deviceToken != "" { + client := syncsvc.NewClient(serverURL, "", "", a.vault) + client.DeviceToken = deviceToken + if cfg != nil { + client.DeviceID = cfg.Sync.DeviceID + } + if info, err := client.GetMe(); err == nil { + dto.DeviceName = info.DeviceName + dto.DeviceID = info.DeviceID + dto.Connected = true + if info.RevokedAt != "" { + dto.Revoked = true + dto.Connected = false + } + } + } return dto, nil } func (a *App) SyncConfigure(serverURL, username, password string) error { - // Register device on server with user credentials. hostname, _ := os.Hostname() if hostname == "" { hostname = "unknown" } client := syncsvc.NewClient(serverURL, "", "", a.vault) - deviceID, apiKey, err := client.RegisterDeviceWithAuth(hostname, username, password) + deviceID, deviceToken, err := client.PairDevice(serverURL, username, password, hostname, "verstak-gui/v2") if err != nil { - return fmt.Errorf("register: %w", err) + return fmt.Errorf("pair: %w", err) } - if err := a.sync.SetState(serverURL, apiKey); err != nil { + // Save token to separate file with 0600 perms. + if err := config.SaveDeviceToken(a.vault, deviceToken); err != nil { + return fmt.Errorf("save token: %w", err) + } + if err := a.sync.SetState(serverURL, ""); err != nil { return err } - // Persist to vault config. cfg, err := config.Load(a.vault) if err != nil { - return err + cfg = &config.Config{} } cfg.Sync.ServerURL = serverURL - cfg.Sync.APIKey = apiKey cfg.Sync.DeviceID = deviceID + cfg.Sync.APIKey = "" return config.Save(a.vault, cfg) } +func (a *App) SyncDisconnect() error { + deviceToken := config.LoadDeviceToken(a.vault) + cfg, err := config.Load(a.vault) + if err != nil { + cfg = &config.Config{} + } + // Revoke token on server if we have one. + if deviceToken != "" { + client := syncsvc.NewClient(cfg.Sync.ServerURL, "", "", a.vault) + client.DeviceToken = deviceToken + _ = client.RevokeCurrent() + } + config.RemoveDeviceToken(a.vault) + cfg.Sync.ServerURL = "" + cfg.Sync.DeviceID = "" + cfg.Sync.APIKey = "" + if err := config.Save(a.vault, cfg); err != nil { + return err + } + return a.sync.SetState("", "") +} + func (a *App) SyncTestConnection(serverURL, username, password string) error { client := syncsvc.NewClient(serverURL, "", "", a.vault) - _, _, err := client.RegisterDeviceWithAuth("test-connection", username, password) + _, _, err := client.PairDevice(serverURL, username, password, "test-connection", "verstak-gui/v2") return err } func (a *App) SyncSetInterval(minutes int) error { cfg, err := config.Load(a.vault) if err != nil { - return err + cfg = &config.Config{} + } + // If config lost the server URL, restore from sync_state. + if cfg.Sync.ServerURL == "" { + sURL, _, _, _, _ := a.sync.GetState() + if sURL != "" { + cfg.Sync.ServerURL = sURL + } + } + if cfg.Sync.DeviceID == "" { + cfg.Sync.DeviceID = a.sync.GetDeviceID() } cfg.Sync.SyncInterval = minutes return config.Save(a.vault, cfg) } func (a *App) SyncNow() (map[string]interface{}, error) { - serverURL, apiKey, lastRev, _, err := a.sync.GetState() - if err != nil || serverURL == "" || apiKey == "" { + serverURL, apiKey, lastPullSeq, _, err := a.sync.GetState() + deviceToken := config.LoadDeviceToken(a.vault) + if err != nil || serverURL == "" || (apiKey == "" && deviceToken == "") { return nil, fmt.Errorf("sync not configured") } @@ -922,6 +1025,7 @@ func (a *App) SyncNow() (map[string]interface{}, error) { } client := syncsvc.NewClient(serverURL, apiKey, deviceID, a.vault) + client.DeviceToken = deviceToken // Push unpushed ops. unpushed, err := a.sync.GetUnpushedOps() @@ -940,15 +1044,33 @@ func (a *App) SyncNow() (map[string]interface{}, error) { } // Pull remote ops. - pullResult, err := client.Pull(lastRev) + pullResult, err := client.Pull(lastPullSeq) if err != nil { return nil, fmt.Errorf("pull: %w", err) } + if len(pullResult.Ops) > 0 { + // Apply pulled ops locally (record as remote ops, mark applied). + for _, op := range pullResult.Ops { + _ = a.sync.RecordRemoteOp(op) + } + opIDs := make([]string, len(pullResult.Ops)) + for i, op := range pullResult.Ops { + opIDs[i] = op.OpID + } + _ = a.sync.MarkApplied(opIDs) + } + + // Update sync state. + if pullResult.ServerSequence > lastPullSeq { + _ = a.sync.SetLastPullSeq(pullResult.ServerSequence) + } + _ = a.sync.SetLastSyncAt(time.Now().UTC().Format(time.RFC3339)) + return map[string]interface{}{ "pushed": len(pushResult.Accepted), "pulled": len(pullResult.Ops), - "serverRevision": pullResult.ServerRevision, + "serverSequence": pullResult.ServerSequence, }, nil } diff --git a/cmd/verstak-gui/frontend-dist/assets/main-Bkv7FuGB.css b/cmd/verstak-gui/frontend-dist/assets/main-Bkv7FuGB.css new file mode 100644 index 0000000..289504f --- /dev/null +++ b/cmd/verstak-gui/frontend-dist/assets/main-Bkv7FuGB.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-1qo7cgm.svelte-1qo7cgm,.svelte-1qo7cgm.svelte-1qo7cgm:before,.svelte-1qo7cgm.svelte-1qo7cgm:after{box-sizing:border-box;margin:0;padding:0}.app.svelte-1qo7cgm.svelte-1qo7cgm{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-1qo7cgm.svelte-1qo7cgm{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-1qo7cgm.svelte-1qo7cgm{padding:16px 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #2a2a3c;flex-shrink:0}.logo.svelte-1qo7cgm.svelte-1qo7cgm{font-size:20px;line-height:1}.brand-name.svelte-1qo7cgm.svelte-1qo7cgm{font-size:16px;font-weight:600}.sidebar-nav.svelte-1qo7cgm.svelte-1qo7cgm{flex:1;overflow-y:auto;padding:12px 0}.nav-group.svelte-1qo7cgm.svelte-1qo7cgm{margin-bottom:16px}.nav-label.svelte-1qo7cgm.svelte-1qo7cgm{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666;padding:4px 20px;margin-bottom:4px}.nav-item.svelte-1qo7cgm.svelte-1qo7cgm{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-1qo7cgm.svelte-1qo7cgm:hover{background:#223}.nav-item.selected.svelte-1qo7cgm.svelte-1qo7cgm{background:#2a2a4a;color:#fff;font-weight:500}.nav-empty.svelte-1qo7cgm.svelte-1qo7cgm{padding:8px 20px;color:#555;font-size:12px}.sidebar-footer.svelte-1qo7cgm.svelte-1qo7cgm{padding:8px 12px;border-top:1px solid #2a2a3c;flex-shrink:0;display:flex;flex-direction:column;gap:4px}.version.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#555;text-align:center}.main.svelte-1qo7cgm.svelte-1qo7cgm{flex:1;display:flex;flex-direction:column;height:100vh;min-width:0;overflow:hidden;background:#13131f}.header.svelte-1qo7cgm.svelte-1qo7cgm{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;flex-shrink:0;min-height:48px}.header-left.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;align-items:center;gap:8px;flex:1}.header-right.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;align-items:center;gap:8px}.header-sync-btn.svelte-1qo7cgm.svelte-1qo7cgm{background:#1e1e38;border:1px solid #6366f1;border-radius:8px;padding:6px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:#c0c0f0;font-family:inherit;font-size:13px;position:relative}.header-sync-btn.svelte-1qo7cgm.svelte-1qo7cgm:hover{background:#2a2a50;color:#e4e4ef;border-color:#818cf8}.header-sync-btn.svelte-1qo7cgm.svelte-1qo7cgm:disabled{opacity:.5;cursor:not-allowed}.sync-badge.svelte-1qo7cgm.svelte-1qo7cgm{background:#6366f1;color:#fff;font-size:10px;border-radius:50%;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;position:absolute;top:-6px;right:-6px}.crumb.svelte-1qo7cgm.svelte-1qo7cgm{font-size:14px;font-weight:500}.crumb.placeholder.svelte-1qo7cgm.svelte-1qo7cgm{color:#666}.crumb-type.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#555;background:#1e1e2e;padding:2px 8px;border-radius:10px;margin-left:8px}.error-banner.svelte-1qo7cgm.svelte-1qo7cgm{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-1qo7cgm.svelte-1qo7cgm{background:none;border:none;color:#f66;cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:2px}.dismiss-btn.svelte-1qo7cgm.svelte-1qo7cgm:hover{color:#f44}.tabs.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;border-bottom:1px solid #2a2a3c;flex-shrink:0;padding:0 24px}.tab.svelte-1qo7cgm.svelte-1qo7cgm{padding:10px 16px;border:none;background:none;color:#888;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;font-family:inherit}.tab.svelte-1qo7cgm.svelte-1qo7cgm:hover{color:#ccc}.tab.active.svelte-1qo7cgm.svelte-1qo7cgm{color:#e4e4ef;border-bottom-color:#6366f1}.tab-content.svelte-1qo7cgm.svelte-1qo7cgm{flex:1;overflow-y:auto}.note-editor.svelte-1qo7cgm.svelte-1qo7cgm{flex:1;display:flex;flex-direction:column;height:100%}.note-editor-header.svelte-1qo7cgm.svelte-1qo7cgm{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;gap:12px;flex-shrink:0}.note-title.svelte-1qo7cgm.svelte-1qo7cgm{font-size:16px;font-weight:500}.dirty-mark.svelte-1qo7cgm.svelte-1qo7cgm{color:#f59e0b;font-size:10px}.note-editor-actions.svelte-1qo7cgm.svelte-1qo7cgm{margin-left:auto;display:flex;gap:8px}.note-textarea.svelte-1qo7cgm.svelte-1qo7cgm{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-1qo7cgm.svelte-1qo7cgm{padding:24px}.overview.svelte-1qo7cgm h2.svelte-1qo7cgm{font-size:24px;margin-bottom:16px}.meta-grid.svelte-1qo7cgm.svelte-1qo7cgm{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}.meta-item.svelte-1qo7cgm.svelte-1qo7cgm{background:#1a1a28;padding:12px 16px;border-radius:8px}.meta-label.svelte-1qo7cgm.svelte-1qo7cgm{display:block;font-size:11px;color:#666;margin-bottom:4px;text-transform:uppercase}.quick-actions.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.qa-btn.svelte-1qo7cgm.svelte-1qo7cgm{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-1qo7cgm.svelte-1qo7cgm:hover{background:#223}.qa-btn.svelte-1qo7cgm.svelte-1qo7cgm:disabled{opacity:.4;cursor:not-allowed}.recent-section.svelte-1qo7cgm.svelte-1qo7cgm{margin-bottom:24px}.recent-section.svelte-1qo7cgm h3.svelte-1qo7cgm{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:8px}.recent-note.svelte-1qo7cgm.svelte-1qo7cgm{padding:8px 12px;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between}.recent-note.svelte-1qo7cgm.svelte-1qo7cgm:hover{background:#1a1a28}.recent-date.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#555}.recent-entry.svelte-1qo7cgm.svelte-1qo7cgm{padding:6px 0;font-size:13px;color:#888;border-bottom:1px solid #1a1a28}.notes-tab.svelte-1qo7cgm.svelte-1qo7cgm{padding:24px}.tab-toolbar.svelte-1qo7cgm.svelte-1qo7cgm{margin-bottom:16px}.create-form.svelte-1qo7cgm.svelte-1qo7cgm{background:#1a1a28;padding:16px;border-radius:8px;margin-bottom:16px}.create-form.svelte-1qo7cgm input.svelte-1qo7cgm{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-1qo7cgm input.svelte-1qo7cgm:focus{outline:none;border-color:#6366f1}.form-actions.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;gap:8px}.notes-list.svelte-1qo7cgm.svelte-1qo7cgm{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.note-card.svelte-1qo7cgm.svelte-1qo7cgm{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:16px;cursor:pointer}.note-card.svelte-1qo7cgm.svelte-1qo7cgm:hover{border-color:#3a3a5c}.note-card-title.svelte-1qo7cgm.svelte-1qo7cgm{font-size:14px;font-weight:500;margin-bottom:4px}.note-card-date.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#555}.worklog-tab.svelte-1qo7cgm.svelte-1qo7cgm{padding:24px}.worklog-form.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;gap:8px;margin-bottom:24px;align-items:center}.worklog-form.svelte-1qo7cgm input.svelte-1qo7cgm{padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit}.worklog-form.svelte-1qo7cgm input.svelte-1qo7cgm:focus{outline:none;border-color:#6366f1}.worklog-form.svelte-1qo7cgm input[type=text].svelte-1qo7cgm{flex:1}.worklog-form.svelte-1qo7cgm input[type=number].svelte-1qo7cgm{width:70px}.worklog-entry.svelte-1qo7cgm.svelte-1qo7cgm{padding:12px 0;border-bottom:1px solid #1a1a28}.wl-meta.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#555;margin-top:2px}.actions-tab.svelte-1qo7cgm.svelte-1qo7cgm{padding:24px}.action-card.svelte-1qo7cgm.svelte-1qo7cgm{background:#1a1a28;padding:12px 16px;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.action-info.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.action-title.svelte-1qo7cgm.svelte-1qo7cgm{font-weight:500}.action-type.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px;white-space:nowrap}.action-data.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#555;font-family:SF Mono,Fira Code,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.action-btns.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;gap:4px;flex-shrink:0}.action-btns.svelte-1qo7cgm .btn-danger.svelte-1qo7cgm{color:#ff6b6b;border-color:#4a2222;padding:4px 8px}.action-btns.svelte-1qo7cgm .btn-danger.svelte-1qo7cgm:hover{background:#3a2222}.empty-state.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-state.svelte-1qo7cgm p.svelte-1qo7cgm{margin:0;font-size:14px;color:#666}.empty-state.svelte-1qo7cgm .empty-icon.svelte-1qo7cgm{margin-bottom:12px;color:#444}.empty-state.svelte-1qo7cgm .hint.svelte-1qo7cgm{font-size:12px;color:#555;margin-top:6px}.empty-state.svelte-1qo7cgm .empty-actions.svelte-1qo7cgm{display:flex;gap:8px;justify-content:center;margin-top:16px}.empty-note.svelte-1qo7cgm.svelte-1qo7cgm{font-size:12px;color:#444;margin-top:16px}.welcome.svelte-1qo7cgm.svelte-1qo7cgm{padding:48px 24px;text-align:center}.welcome.svelte-1qo7cgm h2.svelte-1qo7cgm{font-size:32px;font-weight:300;color:#8888a4;margin-bottom:16px}.welcome.svelte-1qo7cgm p.svelte-1qo7cgm{color:#666;font-size:14px}.error-text.svelte-1qo7cgm.svelte-1qo7cgm{color:#f88}.fab.svelte-1qo7cgm.svelte-1qo7cgm{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-1qo7cgm.svelte-1qo7cgm:hover{background:#4f46e5}.modal-overlay.svelte-1qo7cgm.svelte-1qo7cgm{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-1qo7cgm.svelte-1qo7cgm{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;padding:24px;width:400px;max-width:90vw}.modal.svelte-1qo7cgm h3.svelte-1qo7cgm{font-size:18px;margin-bottom:16px}.form-group.svelte-1qo7cgm.svelte-1qo7cgm{margin-bottom:12px}.form-group.svelte-1qo7cgm label.svelte-1qo7cgm{display:block;font-size:12px;color:#666;margin-bottom:4px}.form-group.svelte-1qo7cgm input.svelte-1qo7cgm,.form-group.svelte-1qo7cgm select.svelte-1qo7cgm{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-1qo7cgm select.svelte-1qo7cgm{-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-1qo7cgm input.svelte-1qo7cgm:focus,.form-group.svelte-1qo7cgm select.svelte-1qo7cgm:focus{outline:none;border-color:#6366f1}.modal-actions.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.btn.svelte-1qo7cgm.svelte-1qo7cgm{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit}.btn.svelte-1qo7cgm.svelte-1qo7cgm:hover{background:#223}.btn-primary.svelte-1qo7cgm.svelte-1qo7cgm{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-1qo7cgm.svelte-1qo7cgm:hover{background:#4f46e5}.btn.svelte-1qo7cgm.svelte-1qo7cgm:disabled{opacity:.4;cursor:not-allowed}.btn-sm.svelte-1qo7cgm.svelte-1qo7cgm{padding:4px 10px;font-size:12px}.btn-danger.svelte-1qo7cgm.svelte-1qo7cgm{color:#ff6b6b;border-color:#4a2222}.btn-danger.svelte-1qo7cgm.svelte-1qo7cgm:hover{background:#3a2222}.files-tab.svelte-1qo7cgm.svelte-1qo7cgm{padding:20px}.files-tab.svelte-1qo7cgm .tab-toolbar.svelte-1qo7cgm{display:flex;gap:8px;align-items:center;margin-bottom:16px}.file-list.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;flex-direction:column}.back-btn.svelte-1qo7cgm.svelte-1qo7cgm{margin-bottom:4px;display:inline-flex;align-items:center;gap:4px}.import-summary.svelte-1qo7cgm.svelte-1qo7cgm{margin-bottom:16px}.summary-row.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;border-bottom:1px solid #2a2a3c}.summary-warn.svelte-1qo7cgm.svelte-1qo7cgm{margin-top:8px;padding:8px 12px;background:#3a2a22;border-radius:6px;color:#fa6;font-size:13px}.rename-error.svelte-1qo7cgm.svelte-1qo7cgm{color:#ff6b6b;font-size:12px;margin-top:4px}.today-dashboard.svelte-1qo7cgm.svelte-1qo7cgm{padding:24px;overflow-y:auto;flex:1}.today-header.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.today-header.svelte-1qo7cgm h2.svelte-1qo7cgm{font-size:24px}.today-date.svelte-1qo7cgm.svelte-1qo7cgm{font-size:13px;color:#666}.today-summary.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.summary-chip.svelte-1qo7cgm.svelte-1qo7cgm{font-size:12px;color:#b0b0c0;background:#1a1a28;border:1px solid #2a2a3c;padding:4px 12px;border-radius:16px}.today-case.svelte-1qo7cgm.svelte-1qo7cgm{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;margin-bottom:12px;overflow:hidden}.today-case-header.svelte-1qo7cgm.svelte-1qo7cgm{padding:12px 16px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #2a2a3c;cursor:pointer}.today-case-header.svelte-1qo7cgm.svelte-1qo7cgm:hover{background:#1e1e30}.today-case-title.svelte-1qo7cgm.svelte-1qo7cgm{font-weight:500}.today-case-type.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px}.today-case-count.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#6366f1;margin-left:4px}.today-case-time.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#555;margin-left:auto}.today-events.svelte-1qo7cgm.svelte-1qo7cgm{padding:8px 16px}.today-event.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:#b0b0c0;cursor:pointer}.today-event.svelte-1qo7cgm.svelte-1qo7cgm:hover{color:#e4e4ef}.today-event-icon.svelte-1qo7cgm.svelte-1qo7cgm{width:18px;text-align:center;color:#6366f1;font-size:13px}.today-event-title.svelte-1qo7cgm.svelte-1qo7cgm{flex:1}.today-event-type.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#666}.today-event-time.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#555;margin-left:auto}.today-events-empty.svelte-1qo7cgm.svelte-1qo7cgm{padding:8px 16px;font-size:13px;color:#666;font-style:italic}.today-empty.svelte-1qo7cgm.svelte-1qo7cgm{padding:48px 24px;text-align:center}.today-empty.svelte-1qo7cgm p.svelte-1qo7cgm{color:#666;font-size:14px;margin:0}.today-empty.svelte-1qo7cgm .hint.svelte-1qo7cgm{font-size:12px;color:#555;margin-top:8px}.today-timeline.svelte-1qo7cgm.svelte-1qo7cgm{margin-top:24px}.today-timeline.svelte-1qo7cgm h3.svelte-1qo7cgm{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:12px}.timeline-event.svelte-1qo7cgm.svelte-1qo7cgm{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-1qo7cgm.svelte-1qo7cgm:hover{color:#e4e4ef}.timeline-dot.svelte-1qo7cgm.svelte-1qo7cgm{width:6px;height:6px;border-radius:50%;background:#6366f1;margin-left:-19px;flex-shrink:0}.timeline-title.svelte-1qo7cgm.svelte-1qo7cgm{flex:1}.timeline-type.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#666}.timeline-time.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#555}.activity-tab.svelte-1qo7cgm.svelte-1qo7cgm{padding:24px}.activity-events.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;flex-direction:column;gap:2px}.activity-event.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;color:#b0b0c0;cursor:pointer}.activity-event.svelte-1qo7cgm.svelte-1qo7cgm:hover{background:#1a1a28;color:#e4e4ef}.activity-event-icon.svelte-1qo7cgm.svelte-1qo7cgm{width:18px;text-align:center;color:#6366f1;font-size:13px;flex-shrink:0}.activity-event-title.svelte-1qo7cgm.svelte-1qo7cgm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-event-type.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#666;flex-shrink:0}.activity-event-target.svelte-1qo7cgm.svelte-1qo7cgm{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px;flex-shrink:0}.activity-event-time.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#555;margin-left:8px;flex-shrink:0}.activity-feed.svelte-1qo7cgm.svelte-1qo7cgm{padding:24px;overflow-y:auto;flex:1}.activity-feed-header.svelte-1qo7cgm.svelte-1qo7cgm{margin-bottom:20px}.activity-feed-header.svelte-1qo7cgm h2.svelte-1qo7cgm{font-size:24px}.activity-feed-events.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;flex-direction:column;gap:2px}.activity-feed-event.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer}.activity-feed-event.svelte-1qo7cgm.svelte-1qo7cgm:hover{background:#1a1a28;color:#e4e4ef}.activity-feed-icon.svelte-1qo7cgm.svelte-1qo7cgm{width:20px;text-align:center;color:#6366f1;font-size:14px;flex-shrink:0;margin-top:1px}.activity-feed-body.svelte-1qo7cgm.svelte-1qo7cgm{flex:1;min-width:0}.activity-feed-title.svelte-1qo7cgm.svelte-1qo7cgm{font-size:14px;color:#e4e4ef}.activity-feed-meta.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;align-items:center;gap:8px;margin-top:2px}.activity-feed-type.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#666}.activity-feed-target.svelte-1qo7cgm.svelte-1qo7cgm{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px}.activity-feed-time.svelte-1qo7cgm.svelte-1qo7cgm{font-size:11px;color:#555}.sidebar-sync-btn.svelte-1qo7cgm.svelte-1qo7cgm{background:#1e1e38;border:1px solid #6366f1;border-radius:8px;padding:8px 12px;cursor:pointer;width:100%;display:flex;align-items:center;gap:8px;color:#c0c0f0;font-family:inherit;font-size:13px}.sidebar-sync-btn.svelte-1qo7cgm.svelte-1qo7cgm:hover{background:#2a2a50;color:#e4e4ef;border-color:#818cf8}.sidebar-sync-label.svelte-1qo7cgm.svelte-1qo7cgm{flex:1;text-align:left}.sync-dot.svelte-1qo7cgm.svelte-1qo7cgm{width:8px;height:8px;border-radius:50%;background:#4a4a4a;flex-shrink:0}.sync-dot.active.svelte-1qo7cgm.svelte-1qo7cgm{background:#4ade80;box-shadow:0 0 6px #4ade8080}.modal-sync.svelte-1qo7cgm.svelte-1qo7cgm{width:460px}.sync-status.svelte-1qo7cgm.svelte-1qo7cgm{background:#13131f;border-radius:8px;padding:12px;margin-bottom:16px}.sync-row.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;justify-content:space-between;padding:4px 0;font-size:13px}.sync-label.svelte-1qo7cgm.svelte-1qo7cgm{color:#666}.sync-value.svelte-1qo7cgm.svelte-1qo7cgm{color:#e4e4ef}.sync-value.mono.svelte-1qo7cgm.svelte-1qo7cgm{font-family:SF Mono,Fira Code,monospace;font-size:12px}.sync-result.svelte-1qo7cgm.svelte-1qo7cgm{font-size:12px;color:#6366f1;padding:4px 0}.sync-connected-actions.svelte-1qo7cgm.svelte-1qo7cgm{display:flex;gap:8px;margin-bottom:16px} diff --git a/cmd/verstak-gui/frontend-dist/assets/main-CvznySlT.js b/cmd/verstak-gui/frontend-dist/assets/main-CvznySlT.js new file mode 100644 index 0000000..d2d1bf0 --- /dev/null +++ b/cmd/verstak-gui/frontend-dist/assets/main-CvznySlT.js @@ -0,0 +1,16 @@ +var js=Object.defineProperty;var Bs=(l,e,t)=>e in l?js(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t;var Ft=(l,e,t)=>Bs(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 o of i)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&n(s)}).observe(document,{childList:!0,subtree:!0});function t(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(i){if(i.ep)return;i.ep=!0;const o=t(i);fetch(i.href,o)}})();function W(){}function zn(l){return l()}function fl(){return Object.create(null)}function oe(l){l.forEach(zn)}function Vn(l){return typeof l=="function"}function it(l,e){return l!=l?e==e:l!==e||l&&typeof l=="object"||typeof l=="function"}let _t;function gt(l,e){return l===e?!0:(_t||(_t=document.createElement("a")),_t.href=e,l===_t.href)}function Os(l){return Object.keys(l).length===0}function Ps(l){return l??""}function r(l,e){l.appendChild(e)}function b(l,e,t){l.insertBefore(e,t||null)}function h(l){l.parentNode&&l.parentNode.removeChild(l)}function Ce(l,e){for(let t=0;tl.removeEventListener(e,t,n)}function Ve(l){return function(e){return e.stopPropagation(),l.call(this,e)}}function Ye(l){return function(e){e.target===this&&l.call(this,e)}}function c(l,e,t){t==null?l.removeAttribute(e):l.getAttribute(e)!==t&&l.setAttribute(e,t)}function ht(l){return l===""?null:+l}function zs(l){return Array.from(l.childNodes)}function O(l,e){e=""+e,l.data!==e&&(l.data=e)}function se(l,e){l.value=e??""}function He(l,e,t,n){t==null?l.style.removeProperty(e):l.style.setProperty(e,t,"")}function tt(l,e,t){for(let n=0;n{const i=l.$$.callbacks[e];if(i){const o=Vs(e,t,{cancelable:n});return i.slice().forEach(s=>{s.call(l,o)}),!o.defaultPrevented}return!0}}function Rs(l,e){const t=l.$$.callbacks[e.type];t&&t.slice().forEach(n=>n.call(this,e))}const $e=[],ul=[];let et=[];const dl=[],Ks=Promise.resolve();let Bt=!1;function Us(){Bt||(Bt=!0,Ks.then(Un))}function lt(l){et.push(l)}const jt=new Set;let xe=0;function Un(){if(xe!==0)return;const l=dt;do{try{for(;xe<$e.length;){const e=$e[xe];xe++,ut(e),Ws(e.$$)}}catch(e){throw $e.length=0,xe=0,e}for(ut(null),$e.length=0,xe=0;ul.length;)ul.pop()();for(let e=0;el.indexOf(n)===-1?e.push(n):t.push(n)),t.forEach(n=>n()),et=e}const vt=new Set;let Ze;function Re(){Ze={r:0,c:[],p:Ze}}function Ke(){Ze.r||oe(Ze.c),Ze=Ze.p}function ae(l,e){l&&l.i&&(vt.delete(l),l.i(e))}function de(l,e,t,n){if(l&&l.o){if(vt.has(l))return;vt.add(l),Ze.c.push(()=>{vt.delete(l),n&&(t&&l.d(1),n())}),l.o(e)}else n&&n()}function Y(l){return(l==null?void 0:l.length)!==void 0?l:Array.from(l)}function Js(l,e){de(l,1,1,()=>{e.delete(l.key)})}function Xs(l,e,t,n,i,o,s,a,f,d,_,g){let p=l.length,v=o.length,w=p;const C={};for(;w--;)C[l[w].key]=w;const q=[],T=new Map,D=new Map,N=[];for(w=v;w--;){const S=g(i,o,w),L=t(S);let y=s.get(L);y?N.push(()=>y.p(S,e)):(y=d(L,S),y.c()),T.set(L,q[w]=y),L in C&&D.set(L,Math.abs(w-C[L]))}const I=new Set,A=new Set;function j(S){ae(S,1),S.m(a,_),s.set(S.key,S),_=S.first,v--}for(;p&&v;){const S=q[v-1],L=l[p-1],y=S.key,M=L.key;S===L?(_=S.first,p--,v--):T.has(M)?!s.has(y)||I.has(y)?j(S):A.has(M)?p--:D.get(y)>D.get(M)?(A.add(y),j(S)):(I.add(M),p--):(f(L,s),p--)}for(;p--;){const S=l[p];T.has(S.key)||f(S,s)}for(;v;)j(q[v-1]);return oe(N),q}function Qe(l){l&&l.c()}function Ge(l,e,t){const{fragment:n,after_update:i}=l.$$;n&&n.m(e,t),lt(()=>{const o=l.$$.on_mount.map(zn).filter(Vn);l.$$.on_destroy?l.$$.on_destroy.push(...o):oe(o),l.$$.on_mount=[]}),i.forEach(lt)}function Je(l,e){const t=l.$$;t.fragment!==null&&(Gs(t.after_update),oe(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function Zs(l,e){l.$$.dirty[0]===-1&&($e.push(l),Us(),l.$$.dirty.fill(0)),l.$$.dirty[e/31|0]|=1<{const w=v.length?v[0]:p;return d.ctx&&i(d.ctx[g],d.ctx[g]=w)&&(!d.skip_bound&&d.bound[g]&&d.bound[g](w),_&&Zs(l,g)),p}):[],d.update(),_=!0,oe(d.before_update),d.fragment=n?n(d.ctx):!1,e.target){if(e.hydrate){const g=zs(e.target);d.fragment&&d.fragment.l(g),g.forEach(h)}else d.fragment&&d.fragment.c();e.intro&&ae(l.$$.fragment),Ge(l,e.target,e.anchor),Un()}ut(f)}class ot{constructor(){Ft(this,"$$");Ft(this,"$$set")}$destroy(){Je(this,1),this.$destroy=W}$on(e,t){if(!Vn(t))return W;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&&!Os(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const Ys="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Ys);function Qs(l){let e,t;return{c(){e=K("path"),t=K("polyline"),c(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),c(t,"points","14 2 14 8 20 8")},m(n,i){b(n,e,i),b(n,t,i)},d(n){n&&(h(e),h(t))}}}function xs(l){let e,t,n,i,o;return{c(){e=K("path"),t=K("polyline"),n=K("line"),i=K("line"),o=K("polyline"),c(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),c(t,"points","14 2 14 8 20 8"),c(n,"x1","16"),c(n,"y1","13"),c(n,"x2","8"),c(n,"y2","13"),c(i,"x1","16"),c(i,"y1","17"),c(i,"x2","8"),c(i,"y2","17"),c(o,"points","10 9 9 9 8 9")},m(s,a){b(s,e,a),b(s,t,a),b(s,n,a),b(s,i,a),b(s,o,a)},d(s){s&&(h(e),h(t),h(n),h(i),h(o))}}}function $s(l){let e,t;return{c(){e=K("polyline"),t=K("polyline"),c(e,"points","16 18 22 12 16 6"),c(t,"points","8 6 2 12 8 18")},m(n,i){b(n,e,i),b(n,t,i)},d(n){n&&(h(e),h(t))}}}function eo(l){let e,t,n,i;return{c(){e=K("path"),t=K("polyline"),n=K("line"),i=K("rect"),c(e,"d","M21 8v13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8"),c(t,"points","7 3 12 8 17 3"),c(n,"x1","3"),c(n,"y1","8"),c(n,"x2","21"),c(n,"y2","8"),c(i,"x","10"),c(i,"y","12"),c(i,"width","4"),c(i,"height","4"),c(i,"rx","1")},m(o,s){b(o,e,s),b(o,t,s),b(o,n,s),b(o,i,s)},d(o){o&&(h(e),h(t),h(n),h(i))}}}function to(l){let e,t,n,i,o;return{c(){e=K("path"),t=K("polyline"),n=K("line"),i=K("line"),o=K("line"),c(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),c(t,"points","14 2 14 8 20 8"),c(n,"x1","9"),c(n,"y1","12"),c(n,"x2","15"),c(n,"y2","12"),c(i,"x1","9"),c(i,"y1","15"),c(i,"x2","13"),c(i,"y2","15"),c(o,"x1","12"),c(o,"y1","15"),c(o,"x2","12"),c(o,"y2","18")},m(s,a){b(s,e,a),b(s,t,a),b(s,n,a),b(s,i,a),b(s,o,a)},d(s){s&&(h(e),h(t),h(n),h(i),h(o))}}}function lo(l){let e,t,n,i,o,s;return{c(){e=K("path"),t=K("polyline"),n=K("line"),i=K("line"),o=K("line"),s=K("line"),c(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),c(t,"points","14 2 14 8 20 8"),c(n,"x1","8"),c(n,"y1","12"),c(n,"x2","16"),c(n,"y2","12"),c(i,"x1","8"),c(i,"y1","16"),c(i,"x2","16"),c(i,"y2","16"),c(o,"x1","8"),c(o,"y1","14"),c(o,"x2","12"),c(o,"y2","14"),c(s,"x1","12"),c(s,"y1","12"),c(s,"x2","12"),c(s,"y2","18")},m(a,f){b(a,e,f),b(a,t,f),b(a,n,f),b(a,i,f),b(a,o,f),b(a,s,f)},d(a){a&&(h(e),h(t),h(n),h(i),h(o),h(s))}}}function no(l){let e,t,n,i;return{c(){e=K("path"),t=K("polyline"),n=K("line"),i=K("line"),c(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),c(t,"points","14 2 14 8 20 8"),c(n,"x1","16"),c(n,"y1","13"),c(n,"x2","8"),c(n,"y2","13"),c(i,"x1","16"),c(i,"y1","17"),c(i,"x2","8"),c(i,"y2","17")},m(o,s){b(o,e,s),b(o,t,s),b(o,n,s),b(o,i,s)},d(o){o&&(h(e),h(t),h(n),h(i))}}}function io(l){let e,t,n,i,o;return{c(){e=K("path"),t=K("polyline"),n=K("line"),i=K("line"),o=K("line"),c(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),c(t,"points","14 2 14 8 20 8"),c(n,"x1","8"),c(n,"y1","12"),c(n,"x2","16"),c(n,"y2","12"),c(i,"x1","8"),c(i,"y1","16"),c(i,"x2","16"),c(i,"y2","16"),c(o,"x1","8"),c(o,"y1","14"),c(o,"x2","12"),c(o,"y2","14")},m(s,a){b(s,e,a),b(s,t,a),b(s,n,a),b(s,i,a),b(s,o,a)},d(s){s&&(h(e),h(t),h(n),h(i),h(o))}}}function so(l){let e,t,n;return{c(){e=K("path"),t=K("circle"),n=K("circle"),c(e,"d","M9 18V5l12-2v13"),c(t,"cx","6"),c(t,"cy","18"),c(t,"r","3"),c(n,"cx","18"),c(n,"cy","16"),c(n,"r","3")},m(i,o){b(i,e,o),b(i,t,o),b(i,n,o)},d(i){i&&(h(e),h(t),h(n))}}}function oo(l){let e,t;return{c(){e=K("rect"),t=K("polyline"),c(e,"x","2"),c(e,"y","4"),c(e,"width","20"),c(e,"height","16"),c(e,"rx","2"),c(t,"points","10 9 16 12 10 15 10 9")},m(n,i){b(n,e,i),b(n,t,i)},d(n){n&&(h(e),h(t))}}}function co(l){let e,t,n;return{c(){e=K("rect"),t=K("circle"),n=K("polyline"),c(e,"x","3"),c(e,"y","3"),c(e,"width","18"),c(e,"height","18"),c(e,"rx","2"),c(e,"ry","2"),c(t,"cx","8.5"),c(t,"cy","8.5"),c(t,"r","1.5"),c(n,"points","21 15 16 10 5 21")},m(i,o){b(i,e,o),b(i,t,o),b(i,n,o)},d(i){i&&(h(e),h(t),h(n))}}}function ro(l){let e;return{c(){e=K("path"),c(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){b(t,e,n)},d(t){t&&h(e)}}}function ao(l){let e;function t(o,s){return o[0]==="folder"?ro:o[0]==="image"?co:o[0]==="video"?oo:o[0]==="audio"?so:o[0]==="pdf"?io:o[0]==="document"?no:o[0]==="spreadsheet"?lo:o[0]==="presentation"?to:o[0]==="archive"?eo:o[0]==="code"?$s:o[0]==="text"?xs:Qs}let n=t(l),i=n(l);return{c(){e=K("svg"),i.c(),c(e,"width",l[1]),c(e,"height",l[1]),c(e,"viewBox","0 0 24 24"),c(e,"fill","none"),c(e,"stroke","currentColor"),c(e,"stroke-width","1.5"),c(e,"stroke-linecap","round"),c(e,"stroke-linejoin","round"),c(e,"xmlns","http://www.w3.org/2000/svg")},m(o,s){b(o,e,s),i.m(e,null)},p(o,[s]){n!==(n=t(o))&&(i.d(1),i=n(o),i&&(i.c(),i.m(e,null))),s&2&&c(e,"width",o[1]),s&2&&c(e,"height",o[1])},i:W,o:W,d(o){o&&h(e),i.d()}}}function fo(l,e,t){let{kind:n="generic"}=e,{size:i=20}=e;return l.$$set=o=>{"kind"in o&&t(0,n=o.kind),"size"in o&&t(1,i=o.size)},[n,i]}class Wn extends ot{constructor(e){super(),st(this,e,fo,ao,it,{kind:0,size:1})}}function kt(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 Ot={"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 ml(l){return l?Ot[l]||l:"Неизвестно"}function uo(l){if(l.type==="folder")return"Папка";const e=(l.mime||"").toLowerCase();if(Ot[e])return Ot[e];const n=(l.name||"").toLowerCase().split(".").pop();return n?n.toUpperCase():"Файл"}function Gn(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 mo=["image/jpeg","image/png","image/gif","image/webp","image/bmp","image/tiff","image/avif","image/svg+xml"],po=["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"],vo=["jpg","jpeg","png","gif","webp","bmp","tiff","tif","avif","svg"];function Jn(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return mo.includes(e)||vo.includes(n)}function Xn(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return po.includes(e)||_o.includes(n)&&n!=="md"&&n!=="markdown"}function Zn(l){return(l.mime||"").toLowerCase().includes("pdf")}function Yn(l){const e=(l.name||"").toLowerCase();return e.endsWith(".md")||e.endsWith(".markdown")}function go(l){return Jn(l)||Zn(l)}function ho(l){return Xn(l)||Yn(l)}function bo(l){let e,t,n,i=kt(l[0].size)+"",o;return{c(){e=u("span"),e.textContent="·",t=k(),n=u("span"),o=E(i),c(e,"class","meta-sep svelte-1u905d2")},m(s,a){b(s,e,a),b(s,t,a),b(s,n,a),r(n,o)},p(s,a){a&1&&i!==(i=kt(s[0].size)+"")&&O(o,i)},d(s){s&&(h(e),h(t),h(n))}}}function ko(l){let e,t,n;return{c(){e=u("button"),e.innerHTML='',c(e,"class","action-btn svelte-1u905d2"),c(e,"title","Открыть папку"),c(e,"aria-label","Открыть папку")},m(i,o){b(i,e,o),t||(n=F(e,"click",Ve(l[27])),t=!0)},p:W,d(i){i&&h(e),t=!1,n()}}}function yo(l){let e,t,n,i,o;return{c(){e=u("button"),e.innerHTML='',t=k(),n=u("button"),n.innerHTML='',c(e,"class","action-btn svelte-1u905d2"),c(e,"title","Предпросмотр"),c(e,"aria-label","Предпросмотр"),c(n,"class","action-btn svelte-1u905d2"),c(n,"title","Открыть во внешней программе"),c(n,"aria-label","Открыть внешне")},m(s,a){b(s,e,a),b(s,t,a),b(s,n,a),i||(o=[F(e,"click",Ve(l[26])),F(n,"click",Ve(l[8]))],i=!0)},p:W,d(s){s&&(h(e),h(t),h(n)),i=!1,oe(o)}}}function pl(l){let e,t,n,i,o,s,a,f,d,_,g,p,v,w,C,q,T,D,N,I,A,j,S,L=l[5]&&wo(l);return{c(){e=u("div"),t=k(),n=u("div"),i=u("button"),i.innerHTML=` + Открыть`,o=k(),s=u("button"),s.innerHTML=` + Открыть во внешней программе`,a=k(),L&&L.c(),f=k(),d=u("div"),_=k(),g=u("button"),g.innerHTML=` + Переименовать`,p=k(),v=u("button"),v.innerHTML=` + Дублировать`,w=k(),C=u("button"),C.innerHTML=` + Вырезать`,q=k(),T=u("button"),T.innerHTML=` + Копировать`,D=k(),N=u("div"),I=k(),A=u("button"),A.innerHTML=` + Удалить`,c(e,"class","menu-backdrop svelte-1u905d2"),c(e,"role","presentation"),c(i,"class","menu-item svelte-1u905d2"),c(i,"role","menuitem"),c(s,"class","menu-item svelte-1u905d2"),c(s,"role","menuitem"),c(d,"class","menu-sep svelte-1u905d2"),c(g,"class","menu-item svelte-1u905d2"),c(g,"role","menuitem"),c(v,"class","menu-item svelte-1u905d2"),c(v,"role","menuitem"),c(C,"class","menu-item svelte-1u905d2"),c(C,"role","menuitem"),c(T,"class","menu-item svelte-1u905d2"),c(T,"role","menuitem"),c(N,"class","menu-sep svelte-1u905d2"),c(A,"class","menu-item menu-item-danger svelte-1u905d2"),c(A,"role","menuitem"),c(n,"class","menu svelte-1u905d2"),c(n,"role","menu")},m(y,M){b(y,e,M),b(y,t,M),b(y,n,M),r(n,i),r(n,o),r(n,s),r(n,a),L&&L.m(n,null),r(n,f),r(n,d),r(n,_),r(n,g),r(n,p),r(n,v),r(n,w),r(n,C),r(n,q),r(n,T),r(n,D),r(n,N),r(n,I),r(n,A),j||(S=[F(e,"click",Ve(l[17])),F(i,"click",l[15]),F(s,"click",l[8]),F(g,"click",l[11]),F(v,"click",l[12]),F(C,"click",l[13]),F(T,"click",l[14]),F(A,"click",l[10]),F(n,"click",Ve(l[25]))],j=!0)},p(y,M){y[5]&&L.p(y,M)},d(y){y&&(h(e),h(t),h(n)),L&&L.d(),j=!1,oe(S)}}}function wo(l){let e,t,n;return{c(){e=u("button"),e.innerHTML=` + Показать в проводнике`,c(e,"class","menu-item svelte-1u905d2"),c(e,"role","menuitem")},m(i,o){b(i,e,o),t||(n=F(e,"click",l[9]),t=!0)},p:W,d(i){i&&h(e),t=!1,n()}}}function qo(l){let e,t,n,i,o,s,a=l[0].name+"",f,d,_,g,p,v,w,C,q,T,D,N,I,A,j,S,L,y,M,z,J,Z;n=new Wn({props:{kind:l[4],size:22}});let V=!l[5]&&bo(l);function R(X,ne){return X[5]?ko:yo}let U=R(l)(l),le=l[2]&&pl(l);return{c(){e=u("div"),t=u("div"),Qe(n.$$.fragment),i=k(),o=u("div"),s=u("div"),f=E(a),_=k(),g=u("div"),p=u("span"),p.textContent=`${l[6]}`,v=k(),V&&V.c(),w=k(),C=u("div"),U.c(),q=k(),T=u("button"),D=K("svg"),N=K("circle"),I=K("circle"),A=K("circle"),j=k(),S=u("button"),S.innerHTML='',y=k(),le&&le.c(),M=ze(),c(t,"class","file-row-icon svelte-1u905d2"),c(s,"class","file-row-name svelte-1u905d2"),c(s,"title",d=l[0].name),c(g,"class","file-row-meta svelte-1u905d2"),c(o,"class","file-row-body svelte-1u905d2"),c(N,"cx","12"),c(N,"cy","5"),c(N,"r","2"),c(I,"cx","12"),c(I,"cy","12"),c(I,"r","2"),c(A,"cx","12"),c(A,"cy","19"),c(A,"r","2"),c(D,"width","16"),c(D,"height","16"),c(D,"viewBox","0 0 24 24"),c(D,"fill","currentColor"),c(T,"class","action-btn svelte-1u905d2"),c(T,"title","Ещё"),c(T,"aria-label","Ещё"),c(T,"aria-expanded",l[2]),c(S,"class","action-btn action-btn-danger svelte-1u905d2"),c(S,"title","Удалить"),c(S,"aria-label","Удалить"),c(C,"class","file-row-actions svelte-1u905d2"),c(e,"class","file-row svelte-1u905d2"),c(e,"role","button"),c(e,"tabindex","0"),c(e,"draggable","true"),c(e,"aria-label",L=l[5]?`Папка ${l[0].name}`:`Файл ${l[0].name}`),bt(e,"file-row--selected",l[1])},m(X,ne){b(X,e,ne),r(e,t),Ge(n,t,null),r(e,i),r(e,o),r(o,s),r(s,f),r(o,_),r(o,g),r(g,p),r(g,v),V&&V.m(g,null),r(e,w),r(e,C),U.m(C,null),r(C,q),r(C,T),r(T,D),r(D,N),r(D,I),r(D,A),r(C,j),r(C,S),b(X,y,ne),le&&le.m(X,ne),b(X,M,ne),z=!0,J||(Z=[F(window,"click",l[17]),F(T,"click",Ve(l[16])),F(S,"click",Ve(l[10])),F(e,"click",l[7]),F(e,"contextmenu",l[21]),F(e,"dragstart",l[18]),F(e,"dragover",l[19]),F(e,"drop",l[20])],J=!0)},p(X,[ne]){(!z||ne&1)&&a!==(a=X[0].name+"")&&O(f,a),(!z||ne&1&&d!==(d=X[0].name))&&c(s,"title",d),X[5]||V.p(X,ne),U.p(X,ne),(!z||ne&4)&&c(T,"aria-expanded",X[2]),(!z||ne&1&&L!==(L=X[5]?`Папка ${X[0].name}`:`Файл ${X[0].name}`))&&c(e,"aria-label",L),(!z||ne&2)&&bt(e,"file-row--selected",X[1]),X[2]?le?le.p(X,ne):(le=pl(X),le.c(),le.m(M.parentNode,M)):le&&(le.d(1),le=null)},i(X){z||(ae(n.$$.fragment,X),z=!0)},o(X){de(n.$$.fragment,X),z=!1},d(X){X&&(h(e),h(y),h(M)),Je(n),V&&V.d(),U.d(),le&&le.d(X),J=!1,oe(Z)}}}function Co(l,e,t){let{item:n}=e,{selected:i=!1}=e,{onDragStart:o}=e,{onDragOver:s}=e,{onDrop:a}=e;const f=yt(),d=Gn(n),_=n.type==="folder",g=uo(n);let p=!1,v=null;function w(B){B.ctrlKey||B.metaKey?f("toggleSelect",n.id):B.shiftKey?f("rangeSelect",n.id):v?(clearTimeout(v),v=null,_?f("navigate",n.id):f("preview",n)):v=setTimeout(()=>{v=null,f("selectOne",n.id)},250)}function C(){f("openExternal",n.fileId)}function q(){f("showInFolder",n.id)}function T(){t(2,p=!1),f("delete",{id:n.id,type:n.type})}function D(){t(2,p=!1),f("rename",{id:n.id,name:n.name})}function N(){t(2,p=!1),f("duplicate",n.id)}function I(){t(2,p=!1),f("cut",n.id)}function A(){t(2,p=!1),f("copy",n.id)}function j(){t(2,p=!1),_?f("navigate",n.id):f("preview",n)}function S(){t(2,p=!p)}function L(){t(2,p=!1)}function y(B){o&&o(B,n.id)}function M(B){s&&_&&s(B,n.id)}function z(B){a&&_&&a(B,n.id)}function J(B){B.preventDefault(),t(2,p=!0)}function Z(B){Rs.call(this,l,B)}const V=()=>f("preview",n),R=()=>f("navigate",n.id);return l.$$set=B=>{"item"in B&&t(0,n=B.item),"selected"in B&&t(1,i=B.selected),"onDragStart"in B&&t(22,o=B.onDragStart),"onDragOver"in B&&t(23,s=B.onDragOver),"onDrop"in B&&t(24,a=B.onDrop)},[n,i,p,f,d,_,g,w,C,q,T,D,N,I,A,j,S,L,y,M,z,J,o,s,a,Z,V,R]}class To extends ot{constructor(e){super(),st(this,e,Co,qo,it,{item:0,selected:1,onDragStart:22,onDragOver:23,onDrop:24})}}function _l(l,e,t){const n=l.slice();return n[4]=e[t],n[6]=t,n}function So(l){let e;return{c(){e=u("span"),e.textContent="/",c(e,"class","sep svelte-csi2lb")},m(t,n){b(t,e,n)},d(t){t&&h(e)}}}function Mo(l){let e,t=l[4].name+"",n,i,o;function s(){return l[2](l[6])}return{c(){e=u("button"),n=E(t),c(e,"class","crumb crumb--link svelte-csi2lb")},m(a,f){b(a,e,f),r(e,n),i||(o=F(e,"click",s),i=!0)},p(a,f){l=a,f&1&&t!==(t=l[4].name+"")&&O(n,t)},d(a){a&&h(e),i=!1,o()}}}function Lo(l){let e,t=l[4].name+"",n;return{c(){e=u("span"),n=E(t),c(e,"class","crumb crumb--current svelte-csi2lb")},m(i,o){b(i,e,o),r(e,n)},p(i,o){o&1&&t!==(t=i[4].name+"")&&O(n,t)},d(i){i&&h(e)}}}function vl(l){let e,t,n=l[6]>0&&So();function i(a,f){return a[6]===a[0].length-1?Lo:Mo}let o=i(l),s=o(l);return{c(){n&&n.c(),e=k(),s.c(),t=ze()},m(a,f){n&&n.m(a,f),b(a,e,f),s.m(a,f),b(a,t,f)},p(a,f){o===(o=i(a))&&s?s.p(a,f):(s.d(1),s=o(a),s&&(s.c(),s.m(t.parentNode,t)))},d(a){a&&(h(e),h(t)),n&&n.d(a),s.d(a)}}}function Io(l){let e,t=Y(l[0]),n=[];for(let i=0;io(a);return l.$$set=a=>{"crumbs"in a&&t(0,n=a.crumbs)},[n,o,s]}class Qn extends ot{constructor(e){super(),st(this,e,Do,Io,it,{crumbs:0})}}function No(l){let e,t,n,i,o,s;return{c(){e=u("div"),t=u("p"),t.textContent="Предпросмотр недоступен для этого типа файлов.",n=k(),i=u("button"),i.textContent="Открыть во внешней программе",c(i,"class","btn btn-sm svelte-1cw3u0m"),c(e,"class","preview-status svelte-1cw3u0m")},m(a,f){b(a,e,f),r(e,t),r(e,n),r(e,i),o||(s=F(i,"click",l[9]),o=!0)},p:W,d(a){a&&h(e),o=!1,s()}}}function Ao(l){let e,t;function n(s,a){return a&2&&(e=null),e==null&&(e=!!(s[1]&&s[1].startsWith("data:"))),e?Oo:Bo}let i=n(l,-1),o=i(l);return{c(){o.c(),t=ze()},m(s,a){o.m(s,a),b(s,t,a)},p(s,a){i===(i=n(s,a))&&o?o.p(s,a):(o.d(1),o=i(s),o&&(o.c(),o.m(t.parentNode,t)))},d(s){s&&h(t),o.d(s)}}}function Eo(l){let e,t,n;return{c(){e=u("pre"),t=u("code"),n=E(l[1]),c(e,"class","preview-text svelte-1cw3u0m")},m(i,o){b(i,e,o),r(e,t),r(t,n)},p(i,o){o&2&&O(n,i[1])},d(i){i&&h(e)}}}function Fo(l){let e,t,n,i;return{c(){e=u("div"),t=u("img"),gt(t.src,n=l[1])||c(t,"src",n),c(t,"alt",i=l[0].name),c(t,"class","preview-image svelte-1cw3u0m"),c(e,"class","preview-image-container svelte-1cw3u0m")},m(o,s){b(o,e,s),r(e,t)},p(o,s){s&2&&!gt(t.src,n=o[1])&&c(t,"src",n),s&1&&i!==(i=o[0].name)&&c(t,"alt",i)},d(o){o&&h(e)}}}function Ho(l){let e,t,n,i,o,s,a;return{c(){e=u("div"),t=u("p"),n=E(l[3]),i=k(),o=u("button"),o.textContent="Открыть во внешней программе",c(o,"class","btn btn-sm svelte-1cw3u0m"),c(e,"class","preview-status svelte-1cw3u0m")},m(f,d){b(f,e,d),r(e,t),r(t,n),r(e,i),r(e,o),s||(a=F(o,"click",l[9]),s=!0)},p(f,d){d&8&&O(n,f[3])},d(f){f&&h(e),s=!1,a()}}}function jo(l){let e;return{c(){e=u("div"),e.innerHTML="

Загрузка...

",c(e,"class","preview-status svelte-1cw3u0m")},m(t,n){b(t,e,n)},p:W,d(t){t&&h(e)}}}function Bo(l){let e,t,n,i,o,s;return{c(){e=u("div"),t=u("p"),t.textContent="Предпросмотр PDF недоступен.",n=k(),i=u("button"),i.textContent="Открыть во внешней программе",c(i,"class","btn btn-sm svelte-1cw3u0m"),c(e,"class","preview-status svelte-1cw3u0m")},m(a,f){b(a,e,f),r(e,t),r(e,n),r(e,i),o||(s=F(i,"click",l[9]),o=!0)},p:W,d(a){a&&h(e),o=!1,s()}}}function Oo(l){let e,t,n;return{c(){e=u("div"),t=u("embed"),gt(t.src,n=l[1])||c(t,"src",n),c(t,"type","application/pdf"),c(t,"class","preview-pdf svelte-1cw3u0m"),c(e,"class","preview-pdf-container svelte-1cw3u0m")},m(i,o){b(i,e,o),r(e,t)},p(i,o){o&2&&!gt(t.src,n=i[1])&&c(t,"src",n)},d(i){i&&h(e)}}}function Po(l){let e,t,n,i,o,s,a,f=l[0].name+"",d,_,g,p,v=kt(l[0].size)+"",w,C,q=ml(l[0].mime)+"",T,D,N,I,A,j,S,L,y,M,z,J;o=new Wn({props:{kind:l[8],size:18}});function Z(B,U){return B[2]?jo:B[3]?Ho:B[6]&&B[1]?Fo:B[5]&&B[1]?Eo:B[4]?Ao:No}let V=Z(l),R=V(l);return{c(){e=u("div"),t=u("div"),n=u("header"),i=u("div"),Qe(o.$$.fragment),s=k(),a=u("span"),d=E(f),g=k(),p=u("div"),w=E(v),C=E(" · "),T=E(q),D=k(),N=u("div"),I=u("button"),I.innerHTML='',A=k(),j=u("button"),j.innerHTML='',S=k(),L=u("div"),R.c(),c(a,"class","preview-name svelte-1cw3u0m"),c(a,"title",_=l[0].name),c(i,"class","preview-title svelte-1cw3u0m"),c(p,"class","preview-meta svelte-1cw3u0m"),c(I,"class","action-btn svelte-1cw3u0m"),c(I,"title","Открыть во внешней программе"),c(I,"aria-label","Открыть внешне"),c(j,"class","action-btn action-btn-close svelte-1cw3u0m"),c(j,"title","Close"),c(j,"aria-label","Close preview"),c(N,"class","preview-actions svelte-1cw3u0m"),c(n,"class","preview-header svelte-1cw3u0m"),c(L,"class","preview-body svelte-1cw3u0m"),c(t,"class","modal svelte-1cw3u0m"),c(e,"class","overlay svelte-1cw3u0m"),c(e,"role","dialog"),c(e,"aria-modal","true"),c(e,"aria-label",y=`Preview: ${l[0].name}`)},m(B,U){b(B,e,U),r(e,t),r(t,n),r(n,i),Ge(o,i,null),r(i,s),r(i,a),r(a,d),r(n,g),r(n,p),r(p,w),r(p,C),r(p,T),r(n,D),r(n,N),r(N,I),r(N,A),r(N,j),r(t,S),r(t,L),R.m(L,null),M=!0,z||(J=[F(I,"click",l[9]),F(j,"click",l[10]),F(e,"click",Ye(l[11]))],z=!0)},p(B,[U]){(!M||U&1)&&f!==(f=B[0].name+"")&&O(d,f),(!M||U&1&&_!==(_=B[0].name))&&c(a,"title",_),(!M||U&1)&&v!==(v=kt(B[0].size)+"")&&O(w,v),(!M||U&1)&&q!==(q=ml(B[0].mime)+"")&&O(T,q),V===(V=Z(B))&&R?R.p(B,U):(R.d(1),R=V(B),R&&(R.c(),R.m(L,null))),(!M||U&1&&y!==(y=`Preview: ${B[0].name}`))&&c(e,"aria-label",y)},i(B){M||(ae(o.$$.fragment,B),M=!0)},o(B){de(o.$$.fragment,B),M=!1},d(B){B&&h(e),Je(o),R.d(),z=!1,oe(J)}}}function zo(l,e,t){let n,i,o,{item:s}=e,{content:a=""}=e,{loading:f=!1}=e,{error:d=""}=e;const _=yt(),g=Gn(s);function p(q){q.key==="Escape"&&_("close")}function v(){_("openExternal",s.fileId)}Rn(()=>{window.addEventListener("keydown",p)}),Kn(()=>{window.removeEventListener("keydown",p)});const w=()=>_("close"),C=()=>_("close");return l.$$set=q=>{"item"in q&&t(0,s=q.item),"content"in q&&t(1,a=q.content),"loading"in q&&t(2,f=q.loading),"error"in q&&t(3,d=q.error)},l.$$.update=()=>{l.$$.dirty&3&&t(6,n=Jn(s)&&a&&a.startsWith("data:")),l.$$.dirty&1&&t(5,i=Xn(s)||Yn(s)),l.$$.dirty&1&&t(4,o=Zn(s))},[s,a,f,d,o,i,n,_,g,v,w,C]}class Vo extends ot{constructor(e){super(),st(this,e,zo,Po,it,{item:0,content:1,loading:2,error:3})}}function Ro(l){let e,t,n,i,o,s,a,f,d,_,g,p,v,w,C,q,T;return{c(){e=u("div"),t=u("div"),n=u("h3"),i=E(l[0]),o=k(),s=u("p"),a=E(l[1]),f=k(),d=u("div"),_=u("button"),g=E(l[2]),v=k(),w=u("button"),C=E(l[3]),c(n,"class","svelte-1fv6yyk"),c(s,"class","message svelte-1fv6yyk"),c(_,"class",p="btn "+(l[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk"),c(w,"class","btn svelte-1fv6yyk"),c(d,"class","actions svelte-1fv6yyk"),c(t,"class","modal svelte-1fv6yyk"),c(e,"class","overlay svelte-1fv6yyk"),c(e,"role","dialog"),c(e,"aria-modal","true"),c(e,"aria-label",l[0])},m(D,N){b(D,e,N),r(e,t),r(t,n),r(n,i),r(t,o),r(t,s),r(s,a),r(t,f),r(t,d),r(d,_),r(_,g),r(d,v),r(d,w),r(w,C),q||(T=[F(_,"click",l[6]),F(w,"click",l[7]),F(e,"click",Ye(l[8]))],q=!0)},p(D,[N]){N&1&&O(i,D[0]),N&2&&O(a,D[1]),N&4&&O(g,D[2]),N&16&&p!==(p="btn "+(D[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk")&&c(_,"class",p),N&8&&O(C,D[3]),N&1&&c(e,"aria-label",D[0])},i:W,o:W,d(D){D&&h(e),q=!1,oe(T)}}}function Ko(l,e,t){let{title:n="Подтверждение"}=e,{message:i=""}=e,{confirmText:o="Удалить"}=e,{cancelText:s="Отмена"}=e,{danger:a=!1}=e;const f=yt(),d=()=>f("confirm"),_=()=>f("cancel"),g=()=>f("cancel");return l.$$set=p=>{"title"in p&&t(0,n=p.title),"message"in p&&t(1,i=p.message),"confirmText"in p&&t(2,o=p.confirmText),"cancelText"in p&&t(3,s=p.cancelText),"danger"in p&&t(4,a=p.danger)},[n,i,o,s,a,f,d,_,g]}class Uo extends ot{constructor(e){super(),st(this,e,Ko,Ro,it,{title:0,message:1,confirmText:2,cancelText:3,danger:4})}}function gl(l,e,t){const n=l.slice();return n[201]=e[t],n}function hl(l,e,t){const n=l.slice();return n[204]=e[t],n}function bl(l,e,t){const n=l.slice();return n[207]=e[t],n}function kl(l,e,t){const n=l.slice();return n[226]=e[t],n}function yl(l,e,t){const n=l.slice();return n[226]=e[t],n}function wl(l,e,t){const n=l.slice();return n[234]=e[t],n}function ql(l,e,t){const n=l.slice();return n[226]=e[t],n}function Cl(l,e,t){const n=l.slice();return n[226]=e[t],n}function Tl(l,e,t){const n=l.slice();return n[210]=e[t],n}function Sl(l,e,t){const n=l.slice();return n[221]=e[t],n}function Ml(l,e,t){const n=l.slice();return n[218]=e[t],n}function Ll(l,e,t){const n=l.slice();return n[213]=e[t],n}function Il(l,e,t){const n=l.slice();return n[210]=e[t],n}function Dl(l,e,t){const n=l.slice();return n[213]=e[t],n}function Nl(l,e,t){const n=l.slice();return n[229]=e[t],n}function Al(l,e,t){const n=l.slice();return n[207]=e[t],n}function El(l,e,t){const n=l.slice();return n[243]=e[t],n}function Fl(l,e,t){const n=l.slice();return n[246]=e[t],n}function Hl(l){let e,t=l[246].label+"",n,i,o,s,a;function f(){return l[114](l[246])}return{c(){e=u("button"),n=E(t),i=k(),c(e,"class",o="nav-item "+(l[7]===l[246].id?"selected":"")+" svelte-1qo7cgm")},m(d,_){b(d,e,_),r(e,n),r(e,i),s||(a=F(e,"click",f),s=!0)},p(d,_){l=d,_[0]&1&&t!==(t=l[246].label+"")&&O(n,t),_[0]&129&&o!==(o="nav-item "+(l[7]===l[246].id?"selected":"")+" svelte-1qo7cgm")&&c(e,"class",o)},d(d){d&&h(e),s=!1,a()}}}function jl(l){let e,t,n,i,o,s=l[1].length>0&&Bl(l),a=Y(l[1]),f=[];for(let _=0;_0?s?s.p(_,g):(s=Bl(_),s.c(),s.m(t,null)):s&&(s.d(1),s=null),g[0]&258|g[1]&536870912){a=Y(_[1]);let p;for(p=0;p0&&Rl(l);return{c(){e=u("button"),t=K("svg"),n=K("polyline"),i=K("polyline"),o=K("path"),s=k(),d&&d.c(),c(n,"points","23 4 23 10 17 10"),c(n,"class","svelte-1qo7cgm"),c(i,"points","1 20 1 14 7 14"),c(i,"class","svelte-1qo7cgm"),c(o,"d","M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"),c(o,"class","svelte-1qo7cgm"),c(t,"width","16"),c(t,"height","16"),c(t,"viewBox","0 0 24 24"),c(t,"fill","none"),c(t,"stroke","currentColor"),c(t,"stroke-width","2"),c(t,"stroke-linecap","round"),c(t,"stroke-linejoin","round"),c(t,"class","svelte-1qo7cgm"),c(e,"class","header-sync-btn svelte-1qo7cgm"),e.disabled=l[51],c(e,"title","Синхронизировать")},m(_,g){b(_,e,g),r(e,t),r(t,n),r(t,i),r(t,o),r(e,s),d&&d.m(e,null),a||(f=F(e,"click",l[113]),a=!0)},p(_,g){_[50].unpushedOps>0?d?d.p(_,g):(d=Rl(_),d.c(),d.m(e,null)):d&&(d.d(1),d=null),g[1]&1048576&&(e.disabled=_[51])},d(_){_&&h(e),d&&d.d(),a=!1,f()}}}function Rl(l){let e,t=l[50].unpushedOps+"",n;return{c(){e=u("span"),n=E(t),c(e,"class","sync-badge svelte-1qo7cgm")},m(i,o){b(i,e,o),r(e,n)},p(i,o){o[1]&524288&&t!==(t=i[50].unpushedOps+"")&&O(n,t)},d(i){i&&h(e)}}}function Kl(l){let e,t,n,i,o,s;return{c(){e=u("div"),t=E(l[6]),n=k(),i=u("button"),i.innerHTML='',c(i,"class","dismiss-btn svelte-1qo7cgm"),c(i,"aria-label","Dismiss"),c(e,"class","error-banner svelte-1qo7cgm")},m(a,f){b(a,e,f),r(e,t),r(e,n),r(e,i),o||(s=[F(i,"click",Ve(l[116])),F(e,"click",l[117])],o=!0)},p(a,f){f[0]&64&&O(t,a[6])},d(a){a&&h(e),o=!1,oe(s)}}}function Xo(l){let e,t,n;function i(a,f){if(a[27])return tc;if(a[0].length>0)return ec;if(a[6])return $o}let o=i(l),s=o&&o(l);return{c(){e=u("div"),t=u("h2"),t.textContent="Верстак",n=k(),s&&s.c(),c(t,"class","svelte-1qo7cgm"),c(e,"class","welcome svelte-1qo7cgm")},m(a,f){b(a,e,f),r(e,t),r(e,n),s&&s.m(e,null)},p(a,f){o===(o=i(a))&&s?s.p(a,f):(s&&s.d(1),s=o&&o(a),s&&(s.c(),s.m(e,null)))},i:W,o:W,d(a){a&&h(e),s&&s.d()}}}function Zo(l){let e,t,n;function i(a,f){return a[3].length===0?nc:lc}let o=i(l),s=o(l);return{c(){e=u("div"),t=u("div"),t.innerHTML='

Активность

',n=k(),s.c(),c(t,"class","activity-feed-header svelte-1qo7cgm"),c(e,"class","activity-feed svelte-1qo7cgm")},m(a,f){b(a,e,f),r(e,t),r(e,n),s.m(e,null)},p(a,f){o===(o=i(a))&&s?s.p(a,f):(s.d(1),s=o(a),s&&(s.c(),s.m(e,null)))},i:W,o:W,d(a){a&&h(e),s.d()}}}function Yo(l){let e,t,n,i,o,s=l[2].date+"",a,f,d,_=l[2].summary&&Gl(l);function g(w,C){return w[2].groups&&w[2].groups.length>0?sc:ic}let p=g(l),v=p(l);return{c(){e=u("div"),t=u("div"),n=u("h2"),n.textContent="Сегодня",i=k(),o=u("span"),a=E(s),f=k(),_&&_.c(),d=k(),v.c(),c(n,"class","svelte-1qo7cgm"),c(o,"class","today-date svelte-1qo7cgm"),c(t,"class","today-header svelte-1qo7cgm"),c(e,"class","today-dashboard svelte-1qo7cgm")},m(w,C){b(w,e,C),r(e,t),r(t,n),r(t,i),r(t,o),r(o,a),r(e,f),_&&_.m(e,null),r(e,d),v.m(e,null)},p(w,C){C[0]&4&&s!==(s=w[2].date+"")&&O(a,s),w[2].summary?_?_.p(w,C):(_=Gl(w),_.c(),_.m(e,d)):_&&(_.d(1),_=null),p===(p=g(w))&&v?v.p(w,C):(v.d(1),v=p(w),v&&(v.c(),v.m(e,null)))},i:W,o:W,d(w){w&&h(e),_&&_.d(),v.d()}}}function Qo(l){let e,t,n,i,o,s,a=Y(l[58]),f=[];for(let p=0;p{_[w]=null}),Ke()),~i?(o=_[i],o?o.p(p,v):(o=_[i]=d[i](p),o.c()),ae(o,1),o.m(n,null)):o=null)},i(p){s||(ae(o),s=!0)},o(p){de(o),s=!1},d(p){p&&(h(e),h(t),h(n)),Ce(f,p),~i&&_[i].d()}}}function xo(l){let e,t,n,i=l[11].title+"",o,s,a,f,d,_,g,p,v,w,C,q=l[11].dirty&&hn();return{c(){e=u("div"),t=u("div"),n=u("span"),o=E(i),s=k(),q&&q.c(),a=k(),f=u("div"),d=u("button"),d.textContent="Сохранить",_=k(),g=u("button"),g.textContent="Закрыть",p=k(),v=u("textarea"),c(n,"class","note-title svelte-1qo7cgm"),c(d,"class","btn btn-primary svelte-1qo7cgm"),c(g,"class","btn svelte-1qo7cgm"),c(f,"class","note-editor-actions svelte-1qo7cgm"),c(t,"class","note-editor-header svelte-1qo7cgm"),c(v,"class","note-textarea svelte-1qo7cgm"),c(v,"placeholder","Начните писать..."),c(e,"class","note-editor svelte-1qo7cgm")},m(T,D){b(T,e,D),r(e,t),r(t,n),r(n,o),r(t,s),q&&q.m(t,null),r(t,a),r(t,f),r(f,d),r(f,_),r(f,g),r(e,p),r(e,v),se(v,l[11].content),w||(C=[F(d,"click",l[93]),F(g,"click",l[91]),F(v,"input",l[118]),F(v,"input",l[92])],w=!0)},p(T,D){D[0]&2048&&i!==(i=T[11].title+"")&&O(o,i),T[11].dirty?q||(q=hn(),q.c(),q.m(t,a)):q&&(q.d(1),q=null),D[0]&2048&&se(v,T[11].content)},i:W,o:W,d(T){T&&h(e),q&&q.d(),w=!1,oe(C)}}}function $o(l){let e,t,n;return{c(){e=u("p"),t=E("Ошибка: "),n=E(l[6]),c(e,"class","error-text svelte-1qo7cgm")},m(i,o){b(i,e,o),r(e,t),r(e,n)},p(i,o){o[0]&64&&O(n,i[6])},d(i){i&&h(e)}}}function ec(l){let e,t,n;return{c(){e=u("p"),e.textContent="Выберите раздел в боковой панели.",t=k(),n=u("p"),n.textContent="Или создайте новое дело кнопкой «+».",c(e,"class","svelte-1qo7cgm"),c(n,"class","hint svelte-1qo7cgm")},m(i,o){b(i,e,o),b(i,t,o),b(i,n,o)},p:W,d(i){i&&(h(e),h(t),h(n))}}}function tc(l){let e;return{c(){e=u("p"),e.textContent="Загрузка...",c(e,"class","svelte-1qo7cgm")},m(t,n){b(t,e,n)},p:W,d(t){t&&h(e)}}}function lc(l){let e,t=Y(l[3]),n=[];for(let i=0;iАктивность пока не зафиксирована

',c(e,"class","empty-state svelte-1qo7cgm")},m(t,n){b(t,e,n)},p:W,d(t){t&&h(e)}}}function Ul(l){let e,t=l[226].targetType+"",n;return{c(){e=u("span"),n=E(t),c(e,"class","activity-feed-target svelte-1qo7cgm")},m(i,o){b(i,e,o),r(e,n)},p(i,o){o[0]&8&&t!==(t=i[226].targetType+"")&&O(n,t)},d(i){i&&h(e)}}}function Wl(l){let e,t,n=nt(l[226].eventType)+"",i,o,s,a,f=l[226].title+"",d,_,g,p,v=Ue(l[226].eventType)+"",w,C,q,T,D=Be(l[226].createdAt)+"",N,I,A=je(l[226].createdAt)+"",j,S,L,y,M=l[226].targetType&&Ul(l);function z(){return l[151](l[226])}function J(...Z){return l[152](l[226],...Z)}return{c(){e=u("div"),t=u("span"),i=E(n),o=k(),s=u("div"),a=u("span"),d=E(f),_=k(),g=u("div"),p=u("span"),w=E(v),C=k(),M&&M.c(),q=k(),T=u("span"),N=E(D),I=k(),j=E(A),S=k(),c(t,"class","activity-feed-icon svelte-1qo7cgm"),c(a,"class","activity-feed-title svelte-1qo7cgm"),c(p,"class","activity-feed-type svelte-1qo7cgm"),c(T,"class","activity-feed-time svelte-1qo7cgm"),c(g,"class","activity-feed-meta svelte-1qo7cgm"),c(s,"class","activity-feed-body svelte-1qo7cgm"),c(e,"class","activity-feed-event svelte-1qo7cgm"),c(e,"role","button"),c(e,"tabindex","0")},m(Z,V){b(Z,e,V),r(e,t),r(t,i),r(e,o),r(e,s),r(s,a),r(a,d),r(s,_),r(s,g),r(g,p),r(p,w),r(g,C),M&&M.m(g,null),r(g,q),r(g,T),r(T,N),r(T,I),r(T,j),r(e,S),L||(y=[F(e,"click",z),F(e,"keydown",J)],L=!0)},p(Z,V){l=Z,V[0]&8&&n!==(n=nt(l[226].eventType)+"")&&O(i,n),V[0]&8&&f!==(f=l[226].title+"")&&O(d,f),V[0]&8&&v!==(v=Ue(l[226].eventType)+"")&&O(w,v),l[226].targetType?M?M.p(l,V):(M=Ul(l),M.c(),M.m(g,q)):M&&(M.d(1),M=null),V[0]&8&&D!==(D=Be(l[226].createdAt)+"")&&O(N,D),V[0]&8&&A!==(A=je(l[226].createdAt)+"")&&O(j,A)},d(Z){Z&&h(e),M&&M.d(),L=!1,oe(y)}}}function Gl(l){let e,t,n,i=l[2].summary.changedCases>0&&Jl(l),o=l[2].summary.notes>0&&Xl(l),s=l[2].summary.files>0&&Zl(l);return{c(){e=u("div"),i&&i.c(),t=k(),o&&o.c(),n=k(),s&&s.c(),c(e,"class","today-summary svelte-1qo7cgm")},m(a,f){b(a,e,f),i&&i.m(e,null),r(e,t),o&&o.m(e,null),r(e,n),s&&s.m(e,null)},p(a,f){a[2].summary.changedCases>0?i?i.p(a,f):(i=Jl(a),i.c(),i.m(e,t)):i&&(i.d(1),i=null),a[2].summary.notes>0?o?o.p(a,f):(o=Xl(a),o.c(),o.m(e,n)):o&&(o.d(1),o=null),a[2].summary.files>0?s?s.p(a,f):(s=Zl(a),s.c(),s.m(e,null)):s&&(s.d(1),s=null)},d(a){a&&h(e),i&&i.d(),o&&o.d(),s&&s.d()}}}function Jl(l){let e,t=l[2].summary.changedCases+"",n,i,o=We(l[2].summary.changedCases,"дело","дела","дел")+"",s;return{c(){e=u("span"),n=E(t),i=k(),s=E(o),c(e,"class","summary-chip svelte-1qo7cgm")},m(a,f){b(a,e,f),r(e,n),r(e,i),r(e,s)},p(a,f){f[0]&4&&t!==(t=a[2].summary.changedCases+"")&&O(n,t),f[0]&4&&o!==(o=We(a[2].summary.changedCases,"дело","дела","дел")+"")&&O(s,o)},d(a){a&&h(e)}}}function Xl(l){let e,t=l[2].summary.notes+"",n,i,o=We(l[2].summary.notes,"заметка","заметки","заметок")+"",s;return{c(){e=u("span"),n=E(t),i=k(),s=E(o),c(e,"class","summary-chip svelte-1qo7cgm")},m(a,f){b(a,e,f),r(e,n),r(e,i),r(e,s)},p(a,f){f[0]&4&&t!==(t=a[2].summary.notes+"")&&O(n,t),f[0]&4&&o!==(o=We(a[2].summary.notes,"заметка","заметки","заметок")+"")&&O(s,o)},d(a){a&&h(e)}}}function Zl(l){let e,t=l[2].summary.files+"",n,i,o=We(l[2].summary.files,"файл","файла","файлов")+"",s;return{c(){e=u("span"),n=E(t),i=k(),s=E(o),c(e,"class","summary-chip svelte-1qo7cgm")},m(a,f){b(a,e,f),r(e,n),r(e,i),r(e,s)},p(a,f){f[0]&4&&t!==(t=a[2].summary.files+"")&&O(n,t),f[0]&4&&o!==(o=We(a[2].summary.files,"файл","файла","файлов")+"")&&O(s,o)},d(a){a&&h(e)}}}function ic(l){let e;return{c(){e=u("div"),e.innerHTML='

Сегодня пока тихо

Здесь появятся дела, заметки, файлы и действия, с которыми вы работали сегодня.

',c(e,"class","today-empty svelte-1qo7cgm")},m(t,n){b(t,e,n)},p:W,d(t){t&&h(e)}}}function sc(l){let e,t,n=Y(l[2].groups),i=[];for(let s=0;s0&&en(l);return{c(){for(let s=0;s0?o?o.p(s,a):(o=en(s),o.c(),o.m(t.parentNode,t)):o&&(o.d(1),o=null)},d(s){s&&(h(e),h(t)),Ce(i,s),o&&o.d(s)}}}function Yl(l){let e,t=l[234].events.length+"",n,i,o=We(l[234].events.length,"событие","события","событий")+"",s;return{c(){e=u("span"),n=E(t),i=k(),s=E(o),c(e,"class","today-case-count svelte-1qo7cgm")},m(a,f){b(a,e,f),r(e,n),r(e,i),r(e,s)},p(a,f){f[0]&4&&t!==(t=a[234].events.length+"")&&O(n,t),f[0]&4&&o!==(o=We(a[234].events.length,"событие","события","событий")+"")&&O(s,o)},d(a){a&&h(e)}}}function oc(l){let e;return{c(){e=u("div"),e.textContent="Изменён сегодня",c(e,"class","today-events-empty svelte-1qo7cgm")},m(t,n){b(t,e,n)},p:W,d(t){t&&h(e)}}}function cc(l){let e,t=Y(l[234].events),n=[];for(let i=0;i0?cc:oc}let j=A(l),S=j(l);return{c(){e=u("div"),t=u("div"),n=u("span"),o=E(i),s=k(),a=u("span"),d=E(f),_=k(),D&&D.c(),g=k(),p=u("span"),w=E(v),C=k(),S.c(),c(n,"class","today-case-title svelte-1qo7cgm"),c(a,"class","today-case-type svelte-1qo7cgm"),c(p,"class","today-case-time svelte-1qo7cgm"),c(t,"class","today-case-header svelte-1qo7cgm"),c(t,"role","button"),c(t,"tabindex","0"),c(e,"class","today-case svelte-1qo7cgm")},m(L,y){b(L,e,y),r(e,t),r(t,n),r(n,o),r(t,s),r(t,a),r(a,d),r(t,_),D&&D.m(t,null),r(t,g),r(t,p),r(p,w),r(e,C),S.m(e,null),q||(T=[F(t,"click",N),F(t,"keydown",I)],q=!0)},p(L,y){l=L,y[0]&4&&i!==(i=l[234].nodeTitle+"")&&O(o,i),y[0]&4&&f!==(f=On(l[234].nodeKind)+"")&&O(d,f),l[234].events?D?D.p(l,y):(D=Yl(l),D.c(),D.m(t,g)):D&&(D.d(1),D=null),y[0]&4&&v!==(v=je(l[234].lastActivityAt)+"")&&O(w,v),j===(j=A(l))&&S?S.p(l,y):(S.d(1),S=j(l),S&&(S.c(),S.m(e,null)))},d(L){L&&h(e),D&&D.d(),S.d(),q=!1,oe(T)}}}function en(l){let e,t,n,i=Y(l[2].events),o=[];for(let s=0;s0&&rn(l);const A=[yc,kc],j=[];function S(M,z){return M[31]?0:1}p=S(l),v=j[p]=A[p](l);let L=l[28]&&!l[30]&&fn(),y=l[35]&&un(l);return{c(){e=u("div"),t=u("div"),n=u("button"),i=E("+ Добавить файл"),o=k(),s=u("button"),a=E("+ Добавить папку"),f=k(),d=u("button"),d.textContent="+ Новый файл",_=k(),I&&I.c(),g=k(),v.c(),w=k(),L&&L.c(),C=k(),y&&y.c(),q=ze(),c(n,"class","btn btn-primary svelte-1qo7cgm"),n.disabled=l[28],c(s,"class","btn svelte-1qo7cgm"),s.disabled=l[28],c(d,"class","btn svelte-1qo7cgm"),c(t,"class","tab-toolbar svelte-1qo7cgm"),c(e,"class","files-tab svelte-1qo7cgm")},m(M,z){b(M,e,z),r(e,t),r(t,n),r(n,i),r(t,o),r(t,s),r(s,a),r(t,f),r(t,d),r(t,_),I&&I.m(t,null),r(e,g),j[p].m(e,null),r(e,w),L&&L.m(e,null),b(M,C,z),y&&y.m(M,z),b(M,q,z),T=!0,D||(N=[F(n,"click",l[95]),F(s,"click",l[96]),F(d,"click",l[67])],D=!0)},p(M,z){(!T||z[0]&268435456)&&(n.disabled=M[28]),(!T||z[0]&268435456)&&(s.disabled=M[28]),M[39].items.length>0?I?I.p(M,z):(I=rn(M),I.c(),I.m(t,null)):I&&(I.d(1),I=null);let J=p;p=S(M),p===J?j[p].p(M,z):(Re(),de(j[J],1,1,()=>{j[J]=null}),Ke(),v=j[p],v?v.p(M,z):(v=j[p]=A[p](M),v.c()),ae(v,1),v.m(e,w)),M[28]&&!M[30]?L||(L=fn(),L.c(),L.m(e,null)):L&&(L.d(1),L=null),M[35]?y?(y.p(M,z),z[1]&16&&ae(y,1)):(y=un(M),y.c(),ae(y,1),y.m(q.parentNode,q)):y&&(Re(),de(y,1,1,()=>{y=null}),Ke())},i(M){T||(ae(v),ae(y),T=!0)},o(M){de(v),de(y),T=!1},d(M){M&&(h(e),h(C),h(q)),I&&I.d(),j[p].d(),L&&L.d(),y&&y.d(M),D=!1,oe(N)}}}function dc(l){let e,t,n,i,o,s,a,f=l[21]&&dn(l);function d(p,v){return p[10].length===0&&!p[21]?Mc:Sc}let _=d(l),g=_(l);return{c(){e=u("div"),t=u("div"),n=u("button"),n.textContent="+ Добавить заметку",i=k(),f&&f.c(),o=k(),g.c(),c(n,"class","btn btn-primary svelte-1qo7cgm"),c(t,"class","tab-toolbar svelte-1qo7cgm"),c(e,"class","notes-tab svelte-1qo7cgm")},m(p,v){b(p,e,v),r(e,t),r(t,n),r(e,i),f&&f.m(e,null),r(e,o),g.m(e,null),s||(a=F(n,"click",l[87]),s=!0)},p(p,v){p[21]?f?f.p(p,v):(f=dn(p),f.c(),f.m(e,o)):f&&(f.d(1),f=null),_===(_=d(p))&&g?g.p(p,v):(g.d(1),g=_(p),g&&(g.c(),g.m(e,null)))},i:W,o:W,d(p){p&&h(e),f&&f.d(),g.d(),s=!1,a()}}}function mc(l){let e,t,n=l[8].title+"",i,o,s,a,f,d,_=l[8].type+"",g,p,v,w,C,q=(l[8].section||"—")+"",T,D,N,I,A,j=Be(l[8].createdAt)+"",S,L,y,M,z,J,Z,V,R,B,U,le,X,ne,re=l[10].length>0&&pn(l),Q=l[13].length>0&&vn(l);return{c(){e=u("div"),t=u("h2"),i=E(n),o=k(),s=u("div"),a=u("div"),f=u("span"),f.textContent="Тип",d=u("span"),g=E(_),p=k(),v=u("div"),w=u("span"),w.textContent="Раздел",C=u("span"),T=E(q),D=k(),N=u("div"),I=u("span"),I.textContent="Создано",A=u("span"),S=E(j),L=k(),y=u("div"),M=u("button"),M.innerHTML=` + Новая заметка`,z=k(),J=u("button"),J.innerHTML=` + Добавить файл`,Z=k(),V=u("button"),V.innerHTML=` + Добавить действие`,R=k(),B=u("button"),B.innerHTML=` + Записать время`,U=k(),re&&re.c(),le=k(),Q&&Q.c(),c(t,"class","svelte-1qo7cgm"),c(f,"class","meta-label svelte-1qo7cgm"),c(d,"class","svelte-1qo7cgm"),c(a,"class","meta-item svelte-1qo7cgm"),c(w,"class","meta-label svelte-1qo7cgm"),c(C,"class","svelte-1qo7cgm"),c(v,"class","meta-item svelte-1qo7cgm"),c(I,"class","meta-label svelte-1qo7cgm"),c(A,"class","svelte-1qo7cgm"),c(N,"class","meta-item svelte-1qo7cgm"),c(s,"class","meta-grid svelte-1qo7cgm"),c(M,"class","qa-btn svelte-1qo7cgm"),c(J,"class","qa-btn svelte-1qo7cgm"),c(V,"class","qa-btn svelte-1qo7cgm"),c(B,"class","qa-btn svelte-1qo7cgm"),c(y,"class","quick-actions svelte-1qo7cgm"),c(e,"class","overview svelte-1qo7cgm")},m(ee,x){b(ee,e,x),r(e,t),r(t,i),r(e,o),r(e,s),r(s,a),r(a,f),r(a,d),r(d,g),r(s,p),r(s,v),r(v,w),r(v,C),r(C,T),r(s,D),r(s,N),r(N,I),r(N,A),r(A,S),r(e,L),r(e,y),r(y,M),r(y,z),r(y,J),r(y,Z),r(y,V),r(y,R),r(y,B),r(e,U),re&&re.m(e,null),r(e,le),Q&&Q.m(e,null),X||(ne=[F(M,"click",l[120]),F(J,"click",l[121]),F(V,"click",l[101]),F(B,"click",l[122])],X=!0)},p(ee,x){x[0]&256&&n!==(n=ee[8].title+"")&&O(i,n),x[0]&256&&_!==(_=ee[8].type+"")&&O(g,_),x[0]&256&&q!==(q=(ee[8].section||"—")+"")&&O(T,q),x[0]&256&&j!==(j=Be(ee[8].createdAt)+"")&&O(S,j),ee[10].length>0?re?re.p(ee,x):(re=pn(ee),re.c(),re.m(e,le)):re&&(re.d(1),re=null),ee[13].length>0?Q?Q.p(ee,x):(Q=vn(ee),Q.c(),Q.m(e,null)):Q&&(Q.d(1),Q=null)},i:W,o:W,d(ee){ee&&h(e),re&&re.d(),Q&&Q.d(),X=!1,oe(ne)}}}function pc(l){let e,t=Y(l[4]),n=[];for(let i=0;iАктивность пока не зафиксирована

',c(e,"class","empty-state svelte-1qo7cgm")},m(t,n){b(t,e,n)},p:W,d(t){t&&h(e)}}}function nn(l){let e,t=l[226].targetType+"",n;return{c(){e=u("span"),n=E(t),c(e,"class","activity-event-target svelte-1qo7cgm")},m(i,o){b(i,e,o),r(e,n)},p(i,o){o[0]&16&&t!==(t=i[226].targetType+"")&&O(n,t)},d(i){i&&h(e)}}}function sn(l){let e,t,n=nt(l[226].eventType)+"",i,o,s,a=l[226].title+"",f,d,_,g=Ue(l[226].eventType)+"",p,v,w,C,q=je(l[226].createdAt)+"",T,D,N=l[226].targetType&&nn(l);return{c(){e=u("div"),t=u("span"),i=E(n),o=k(),s=u("span"),f=E(a),d=k(),_=u("span"),p=E(g),v=k(),N&&N.c(),w=k(),C=u("span"),T=E(q),D=k(),c(t,"class","activity-event-icon svelte-1qo7cgm"),c(s,"class","activity-event-title svelte-1qo7cgm"),c(_,"class","activity-event-type svelte-1qo7cgm"),c(C,"class","activity-event-time svelte-1qo7cgm"),c(e,"class","activity-event svelte-1qo7cgm")},m(I,A){b(I,e,A),r(e,t),r(t,i),r(e,o),r(e,s),r(s,f),r(e,d),r(e,_),r(_,p),r(e,v),N&&N.m(e,null),r(e,w),r(e,C),r(C,T),r(e,D)},p(I,A){A[0]&16&&n!==(n=nt(I[226].eventType)+"")&&O(i,n),A[0]&16&&a!==(a=I[226].title+"")&&O(f,a),A[0]&16&&g!==(g=Ue(I[226].eventType)+"")&&O(p,g),I[226].targetType?N?N.p(I,A):(N=nn(I),N.c(),N.m(e,w)):N&&(N.d(1),N=null),A[0]&16&&q!==(q=je(I[226].createdAt)+"")&&O(T,q)},d(I){I&&h(e),N&&N.d()}}}function vc(l){let e,t=Y(l[13]),n=[];for(let i=0;iЗаписей работы пока нет

',c(e,"class","empty-state svelte-1qo7cgm")},m(t,n){b(t,e,n)},p:W,d(t){t&&h(e)}}}function on(l){let e,t,n=l[210].summary+"",i,o,s,a=l[210].minutes+"",f,d,_=Be(l[210].createdAt)+"",g,p;return{c(){e=u("div"),t=u("div"),i=E(n),o=k(),s=u("div"),f=E(a),d=E(" мин · "),g=E(_),p=k(),c(t,"class","svelte-1qo7cgm"),c(s,"class","wl-meta svelte-1qo7cgm"),c(e,"class","worklog-entry svelte-1qo7cgm")},m(v,w){b(v,e,w),r(e,t),r(t,i),r(e,o),r(e,s),r(s,f),r(s,d),r(s,g),r(e,p)},p(v,w){w[0]&8192&&n!==(n=v[210].summary+"")&&O(i,n),w[0]&8192&&a!==(a=v[210].minutes+"")&&O(f,a),w[0]&8192&&_!==(_=Be(v[210].createdAt)+"")&&O(g,_)},d(v){v&&h(e)}}}function hc(l){let e,t=Y(l[12]),n=[];for(let i=0;iДействий пока нет

',c(e,"class","empty-state svelte-1qo7cgm")},m(t,n){b(t,e,n)},p:W,d(t){t&&h(e)}}}function cn(l){let e,t,n,i=l[221].title+"",o,s,a,f=l[105](l[221].type)+"",d,_,g,p=l[221].data+"",v,w,C,q,T,D,N,I,A;function j(){return l[141](l[221])}function S(){return l[142](l[221])}return{c(){e=u("div"),t=u("div"),n=u("span"),o=E(i),s=k(),a=u("span"),d=E(f),_=k(),g=u("span"),v=E(p),w=k(),C=u("div"),q=u("button"),q.textContent="Запустить",T=k(),D=u("button"),D.innerHTML='',N=k(),c(n,"class","action-title svelte-1qo7cgm"),c(a,"class","action-type svelte-1qo7cgm"),c(g,"class","action-data svelte-1qo7cgm"),c(t,"class","action-info svelte-1qo7cgm"),c(q,"class","btn btn-sm svelte-1qo7cgm"),c(D,"class","btn btn-sm btn-danger svelte-1qo7cgm"),c(C,"class","action-btns svelte-1qo7cgm"),c(e,"class","action-card svelte-1qo7cgm")},m(L,y){b(L,e,y),r(e,t),r(t,n),r(n,o),r(t,s),r(t,a),r(a,d),r(t,_),r(t,g),r(g,v),r(e,w),r(e,C),r(C,q),r(C,T),r(C,D),r(e,N),I||(A=[F(q,"click",j),F(D,"click",S)],I=!0)},p(L,y){l=L,y[0]&4096&&i!==(i=l[221].title+"")&&O(o,i),y[0]&4096&&f!==(f=l[105](l[221].type)+"")&&O(d,f),y[0]&4096&&p!==(p=l[221].data+"")&&O(v,p)},d(L){L&&h(e),I=!1,oe(A)}}}function rn(l){let e,t,n=l[39].items.length+"",i,o,s;return{c(){e=u("button"),t=E("Вставить "),i=E(n),c(e,"class","btn svelte-1qo7cgm")},m(a,f){b(a,e,f),r(e,t),r(e,i),o||(s=F(e,"click",l[72]),o=!0)},p(a,f){f[1]&256&&n!==(n=a[39].items.length+"")&&O(i,n)},d(a){a&&h(e),o=!1,s()}}}function kc(l){let e,t,n,i,o,s,a;const f=[qc,wc],d=[];function _(w,C){return w[33].length>0?0:1}e=_(l),t=d[e]=f[e](l);const g=[Tc,Cc],p=[];function v(w,C){return w[34].length===0?0:1}return i=v(l),o=p[i]=g[i](l),{c(){t.c(),n=k(),o.c(),s=ze()},m(w,C){d[e].m(w,C),b(w,n,C),p[i].m(w,C),b(w,s,C),a=!0},p(w,C){let q=e;e=_(w),e===q?d[e].p(w,C):(Re(),de(d[q],1,1,()=>{d[q]=null}),Ke(),t=d[e],t?t.p(w,C):(t=d[e]=f[e](w),t.c()),ae(t,1),t.m(n.parentNode,n));let T=i;i=v(w),i===T?p[i].p(w,C):(Re(),de(p[T],1,1,()=>{p[T]=null}),Ke(),o=p[i],o?o.p(w,C):(o=p[i]=g[i](w),o.c()),ae(o,1),o.m(s.parentNode,s))},i(w){a||(ae(t),ae(o),a=!0)},o(w){de(t),de(o),a=!1},d(w){w&&(h(n),h(s)),d[e].d(w),p[i].d(w)}}}function yc(l){let e;return{c(){e=u("div"),e.innerHTML='

Загрузка...

',c(e,"class","empty-state svelte-1qo7cgm")},m(t,n){b(t,e,n)},p:W,i:W,o:W,d(t){t&&h(e)}}}function wc(l){let e,t;return e=new Qn({props:{crumbs:[{name:"Файлы"}]}}),{c(){Qe(e.$$.fragment)},m(n,i){Ge(e,n,i),t=!0},p:W,i(n){t||(ae(e.$$.fragment,n),t=!0)},o(n){de(e.$$.fragment,n),t=!1},d(n){Je(e,n)}}}function qc(l){let e,t,n,i,o,s;return e=new Qn({props:{crumbs:[{name:"Файлы"},...l[33]]}}),e.$on("navigate",l[127]),{c(){Qe(e.$$.fragment),t=k(),n=u("button"),n.innerHTML=` + Back`,c(n,"class","btn btn-sm back-btn svelte-1qo7cgm")},m(a,f){Ge(e,a,f),b(a,t,f),b(a,n,f),i=!0,o||(s=F(n,"click",l[63]),o=!0)},p(a,f){const d={};f[1]&4&&(d.crumbs=[{name:"Файлы"},...a[33]]),e.$set(d)},i(a){i||(ae(e.$$.fragment,a),i=!0)},o(a){de(e.$$.fragment,a),i=!1},d(a){a&&(h(t),h(n)),Je(e,a),o=!1,s()}}}function Cc(l){let e,t=[],n=new Map,i,o=Y(l[34]);const s=a=>a[218].id;for(let a=0;a0?"В этой папке пока нет файлов":"В этом проекте пока нет файлов",s,a,f,d,_,g,p,v,w,C;return{c(){e=u("div"),t=u("div"),t.innerHTML='',n=k(),i=u("p"),s=E(o),a=k(),f=u("p"),f.textContent="Добавьте файл или папку, чтобы сохранить материалы проекта.",d=k(),_=u("div"),g=u("button"),g.textContent="Добавить файл",p=k(),v=u("button"),v.textContent="Добавить папку",c(t,"class","empty-icon svelte-1qo7cgm"),c(i,"class","svelte-1qo7cgm"),c(f,"class","hint svelte-1qo7cgm"),c(g,"class","btn btn-primary svelte-1qo7cgm"),c(v,"class","btn svelte-1qo7cgm"),c(_,"class","empty-actions svelte-1qo7cgm"),c(e,"class","empty-state svelte-1qo7cgm")},m(q,T){b(q,e,T),r(e,t),r(e,n),r(e,i),r(i,s),r(e,a),r(e,f),r(e,d),r(e,_),r(_,g),r(_,p),r(_,v),w||(C=[F(g,"click",l[95]),F(v,"click",l[96])],w=!0)},p(q,T){T[1]&4&&o!==(o=q[33].length>0?"В этой папке пока нет файлов":"В этом проекте пока нет файлов")&&O(s,o)},i:W,o:W,d(q){q&&h(e),w=!1,oe(C)}}}function an(l,e){let t,n,i;return n=new To({props:{item:e[218],selected:e[40].includes(e[218].id),onDragStart:e[76],onDragOver:e[77],onDrop:e[78]}}),n.$on("navigate",e[128]),n.$on("preview",e[129]),n.$on("openExternal",e[130]),n.$on("showInFolder",e[131]),n.$on("delete",e[132]),n.$on("rename",e[133]),n.$on("duplicate",e[134]),n.$on("cut",e[135]),n.$on("copy",e[136]),n.$on("selectOne",e[137]),n.$on("toggleSelect",e[138]),n.$on("rangeSelect",e[139]),{key:l,first:null,c(){t=ze(),Qe(n.$$.fragment),this.first=t},m(o,s){b(o,t,s),Ge(n,o,s),i=!0},p(o,s){e=o;const a={};s[1]&8&&(a.item=e[218]),s[1]&520&&(a.selected=e[40].includes(e[218].id)),n.$set(a)},i(o){i||(ae(n.$$.fragment,o),i=!0)},o(o){de(n.$$.fragment,o),i=!1},d(o){o&&h(t),Je(n,o)}}}function fn(l){let e;return{c(){e=u("div"),e.innerHTML='

Сканирование...

',c(e,"class","empty-state svelte-1qo7cgm")},m(t,n){b(t,e,n)},d(t){t&&h(e)}}}function un(l){let e,t;return e=new Vo({props:{item:l[35],content:l[36],loading:l[37],error:l[38]}}),e.$on("close",l[66]),e.$on("openExternal",l[140]),{c(){Qe(e.$$.fragment)},m(n,i){Ge(e,n,i),t=!0},p(n,i){const o={};i[1]&16&&(o.item=n[35]),i[1]&32&&(o.content=n[36]),i[1]&64&&(o.loading=n[37]),i[1]&128&&(o.error=n[38]),e.$set(o)},i(n){t||(ae(e.$$.fragment,n),t=!0)},o(n){de(e.$$.fragment,n),t=!1},d(n){Je(e,n)}}}function dn(l){let e,t,n,i,o,s,a,f,d;return{c(){e=u("div"),t=u("input"),n=k(),i=u("div"),o=u("button"),o.textContent="Создать",s=k(),a=u("button"),a.textContent="Отмена",c(t,"type","text"),c(t,"placeholder","Название заметки"),c(t,"class","svelte-1qo7cgm"),c(o,"class","btn btn-primary svelte-1qo7cgm"),c(a,"class","btn svelte-1qo7cgm"),c(i,"class","form-actions svelte-1qo7cgm"),c(e,"class","create-form svelte-1qo7cgm")},m(_,g){b(_,e,g),r(e,t),se(t,l[22]),r(e,n),r(e,i),r(i,o),r(i,s),r(i,a),f||(d=[F(t,"input",l[124]),F(t,"keydown",l[125]),F(o,"click",l[89]),F(a,"click",l[88])],f=!0)},p(_,g){g[0]&4194304&&t.value!==_[22]&&se(t,_[22])},d(_){_&&h(e),f=!1,oe(d)}}}function Sc(l){let e,t=Y(l[10]),n=[];for(let i=0;iНет заметок

Создайте первую заметку для этого дела.

',c(e,"class","empty-state svelte-1qo7cgm")},m(t,n){b(t,e,n)},p:W,d(t){t&&h(e)}}}function mn(l){let e,t,n=l[213].title+"",i,o,s,a=Be(l[213].createdAt)+"",f,d,_,g;function p(){return l[126](l[213])}return{c(){e=u("div"),t=u("div"),i=E(n),o=k(),s=u("div"),f=E(a),d=k(),c(t,"class","note-card-title svelte-1qo7cgm"),c(s,"class","note-card-date svelte-1qo7cgm"),c(e,"class","note-card svelte-1qo7cgm")},m(v,w){b(v,e,w),r(e,t),r(t,i),r(e,o),r(e,s),r(s,f),r(e,d),_||(g=F(e,"click",p),_=!0)},p(v,w){l=v,w[0]&1024&&n!==(n=l[213].title+"")&&O(i,n),w[0]&1024&&a!==(a=Be(l[213].createdAt)+"")&&O(f,a)},d(v){v&&h(e),_=!1,g()}}}function pn(l){let e,t,n,i=Y(l[10].slice(0,5)),o=[];for(let s=0;s0&&wn(l);return{c(){e=u("div"),t=u("div"),n=u("h3"),n.textContent="Новое дело",i=k(),o=u("div"),s=u("label"),s.textContent="Название",a=k(),f=u("input"),d=k(),_=u("div"),g=u("label"),g.textContent="Раздел",p=k(),v=u("select");for(let y=0;yl[155].call(v)),c(_,"class","form-group svelte-1qo7cgm"),c(T,"class","btn btn-primary svelte-1qo7cgm"),c(N,"class","btn svelte-1qo7cgm"),c(q,"class","modal-actions svelte-1qo7cgm"),c(t,"class","modal svelte-1qo7cgm"),c(e,"class","modal-overlay svelte-1qo7cgm")},m(y,M){b(y,e,M),r(e,t),r(t,n),r(t,i),r(t,o),r(o,s),r(o,a),r(o,f),se(f,l[17]),r(t,d),r(t,_),r(_,g),r(_,p),r(_,v);for(let z=0;z0?L?L.p(y,M):(L=wn(y),L.c(),L.m(t,C)):L&&(L.d(1),L=null)},d(y){y&&h(e),Ce(S,y),L&&L.d(),I=!1,oe(A)}}}function yn(l){let e,t=l[207].label+"",n,i;return{c(){e=u("option"),n=E(t),e.__value=i=l[207].id,se(e,e.__value),c(e,"class","svelte-1qo7cgm")},m(o,s){b(o,e,s),r(e,n)},p(o,s){s[0]&1&&t!==(t=o[207].label+"")&&O(n,t),s[0]&1&&i!==(i=o[207].id)&&(e.__value=i,se(e,e.__value))},d(o){o&&h(e)}}}function wn(l){let e,t,n,i,o,s,a,f=Y(l[20]),d=[];for(let _=0;_l[156].call(i)),c(e,"class","form-group svelte-1qo7cgm")},m(_,g){b(_,e,g),r(e,t),r(e,n),r(e,i),r(i,o);for(let p=0;pl[159].call(v)),c(_,"class","form-group svelte-1qo7cgm"),c(q,"class","svelte-1qo7cgm"),c(I,"type","text"),c(I,"placeholder",A=l[25]==="open_url"?"https://example.com":l[25]==="open_folder"||l[25]==="open_file"?"/path/to/file":"команда"),c(I,"class","svelte-1qo7cgm"),c(C,"class","form-group svelte-1qo7cgm"),c(L,"class","btn btn-primary svelte-1qo7cgm"),c(M,"class","btn svelte-1qo7cgm"),c(S,"class","modal-actions svelte-1qo7cgm"),c(t,"class","modal svelte-1qo7cgm"),c(e,"class","modal-overlay svelte-1qo7cgm")},m(R,B){b(R,e,B),r(e,t),r(t,n),r(t,i),r(t,o),r(o,s),r(o,a),r(o,f),se(f,l[24]),r(t,d),r(t,_),r(_,g),r(_,p),r(_,v);for(let U=0;U