From d34100e2ed21c594fe1171705b346a8ecd2c6c9c Mon Sep 17 00:00:00 2001 From: mirivlad Date: Wed, 3 Jun 2026 10:56:13 +0800 Subject: [PATCH] feat: node search picker, ByNode grouping fix, PDF export - node picker: Search/Path on Repository, SearchNodes binding, debounced search dropdown showing title + full path - ByNode summary groups by nodeID with NodePath as label (not NodeTitle) - PDF export for worklog reports with embedded DejaVuSans fonts - ExportWorklogPDF binding + button on Journal screen - Removed unused Section field from ReportFilter - ListReport now calls BuildReportPaths so nodePath is available - go.sum: +github.com/signintech/gopdf dependency --- cmd/verstak-gui/bindings_nodes.go | 28 ++ cmd/verstak-gui/bindings_worklog.go | 5 + .../frontend-dist/assets/main-BYxU8Qbt.js | 3 + .../frontend-dist/assets/main-C7UPiZtQ.css | 1 + .../frontend-dist/assets/main-DGiHvQWG.js | 3 + cmd/verstak-gui/frontend-dist/index.html | 4 +- frontend/src/App.svelte | 100 +++++-- frontend/src/lib/i18n/locales/en.js | 1 + frontend/src/lib/i18n/locales/ru.js | 1 + go.mod | 2 + go.sum | 5 + internal/core/nodes/repository.go | 40 +++ .../core/worklog/fonts/DejaVuSans-Bold.ttf | Bin 0 -> 708920 bytes internal/core/worklog/fonts/DejaVuSans.ttf | Bin 0 -> 759720 bytes internal/core/worklog/report.go | 36 ++- internal/core/worklog/report_pdf.go | 266 ++++++++++++++++++ internal/core/worklog/worklog_test.go | 49 ++++ 17 files changed, 512 insertions(+), 32 deletions(-) create mode 100644 cmd/verstak-gui/frontend-dist/assets/main-BYxU8Qbt.js create mode 100644 cmd/verstak-gui/frontend-dist/assets/main-C7UPiZtQ.css create mode 100644 cmd/verstak-gui/frontend-dist/assets/main-DGiHvQWG.js create mode 100644 internal/core/worklog/fonts/DejaVuSans-Bold.ttf create mode 100644 internal/core/worklog/fonts/DejaVuSans.ttf create mode 100644 internal/core/worklog/report_pdf.go diff --git a/cmd/verstak-gui/bindings_nodes.go b/cmd/verstak-gui/bindings_nodes.go index 5f43c54..6147817 100644 --- a/cmd/verstak-gui/bindings_nodes.go +++ b/cmd/verstak-gui/bindings_nodes.go @@ -907,6 +907,34 @@ func (a *App) rollbackFileMoves(moves []fileMoveInfo) error { return nil } +type SearchNodeResult struct { + ID string `json:"id"` + Title string `json:"title"` + Path string `json:"path"` + Type string `json:"type"` +} + +func (a *App) SearchNodes(query string) ([]SearchNodeResult, error) { + nodes, err := a.nodes.Search(query, 20) + if err != nil { + return nil, err + } + results := make([]SearchNodeResult, 0, len(nodes)) + for i := range nodes { + if nodes[i].IsDeleted() { + continue + } + path := a.nodes.Path(nodes[i].ID) + results = append(results, SearchNodeResult{ + ID: nodes[i].ID, + Title: nodes[i].Title, + Path: path, + Type: nodes[i].Type, + }) + } + return results, nil +} + func (a *App) OpenNodeFolder(nodeID string) (string, error) { n, err := a.nodes.GetActive(nodeID) if err != nil { diff --git a/cmd/verstak-gui/bindings_worklog.go b/cmd/verstak-gui/bindings_worklog.go index 953cabd..664a55a 100644 --- a/cmd/verstak-gui/bindings_worklog.go +++ b/cmd/verstak-gui/bindings_worklog.go @@ -61,6 +61,11 @@ func (a *App) ExportWorklogMarkdown(dateFrom, dateTo, nodeID string, includeChil return a.worklog.ExportMarkdown(f) } +func (a *App) ExportWorklogPDF(dateFrom, dateTo, nodeID string, includeChildren bool, billableFilter, approxFilter string) ([]byte, error) { + f := buildWorklogFilter(dateFrom, dateTo, nodeID, includeChildren, billableFilter, approxFilter) + return a.worklog.ExportPDF(f) +} + func boolPtr(s string) *bool { switch s { case "yes": diff --git a/cmd/verstak-gui/frontend-dist/assets/main-BYxU8Qbt.js b/cmd/verstak-gui/frontend-dist/assets/main-BYxU8Qbt.js new file mode 100644 index 0000000..fee8689 --- /dev/null +++ b/cmd/verstak-gui/frontend-dist/assets/main-BYxU8Qbt.js @@ -0,0 +1,3 @@ +var Rr=Object.defineProperty;var Br=(l,e,t)=>e in l?Rr(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t;var rl=(l,e,t)=>Br(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 r of s.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).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 oe(){}function ti(l){return l()}function Ql(){return Object.create(null)}function he(l){l.forEach(ti)}function Ht(l){return typeof l=="function"}function ht(l,e){return l!=l?e==e:l!==e||l&&typeof l=="object"||typeof l=="function"}let Ut;function Kt(l,e){return l===e?!0:(Ut||(Ut=document.createElement("a")),Ut.href=e,l===Ut.href)}function Vr(l){return Object.keys(l).length===0}const Hr=typeof window<"u"?window:typeof globalThis<"u"?globalThis:global;function c(l,e){l.appendChild(e)}function C(l,e,t){l.insertBefore(e,t||null)}function q(l){l.parentNode&&l.parentNode.removeChild(l)}function Oe(l,e){for(let t=0;tl.removeEventListener(e,t,n)}function ml(l){return function(e){return e.preventDefault(),l.call(this,e)}}function it(l){return function(e){return e.stopPropagation(),l.call(this,e)}}function Ct(l){return function(e){e.target===this&&l.call(this,e)}}function o(l,e,t){t==null?l.removeAttribute(e):l.getAttribute(e)!==t&&l.setAttribute(e,t)}function Gt(l){return l===""?null:+l}function Ur(l){return Array.from(l.childNodes)}function U(l,e){e=""+e,l.data!==e&&(l.data=e)}function Ce(l,e){l.value=e??""}function Ve(l,e,t,n){t==null?l.style.removeProperty(e):l.style.setProperty(e,t,"")}function Dt(l,e,t){for(let n=0;n{const i=l.$$.callbacks[e];if(i){const s=Wr(e,t,{cancelable:n});return i.slice().forEach(r=>{r.call(l,s)}),!s.defaultPrevented}return!0}}function ni(l,e){const t=l.$$.callbacks[e.type];t&&t.slice().forEach(n=>n.call(this,e))}const Nt=[],xl=[];let Mt=[];const $l=[],Kr=Promise.resolve();let fl=!1;function Gr(){fl||(fl=!0,Kr.then(oi))}function Ft(l){Mt.push(l)}const al=new Set;let Tt=0;function oi(){if(Tt!==0)return;const l=Vt;do{try{for(;Ttl.indexOf(n)===-1?e.push(n):t.push(n)),t.forEach(n=>n()),Mt=e}const Wt=new Set;let qt;function Qe(){qt={r:0,c:[],p:qt}}function xe(){qt.r||he(qt.c),qt=qt.p}function ce(l,e){l&&l.i&&(Wt.delete(l),l.i(e))}function _e(l,e,t,n){if(l&&l.o){if(Wt.has(l))return;Wt.add(l),qt.c.push(()=>{Wt.delete(l),n&&(t&&l.d(1),n())}),l.o(e)}else n&&n()}function ae(l){return(l==null?void 0:l.length)!==void 0?l:Array.from(l)}function ii(l,e){_e(l,1,1,()=>{e.delete(l.key)})}function si(l,e,t,n,i,s,r,a,u,d,h,_){let v=l.length,g=s.length,b=v;const k={};for(;b--;)k[l[b].key]=b;const y=[],S=new Map,D=new Map,T=[];for(b=g;b--;){const N=_(i,s,b),M=t(N);let V=r.get(M);V?T.push(()=>V.p(N,e)):(V=d(M,N),V.c()),S.set(M,y[b]=V),M in k&&D.set(M,Math.abs(b-k[M]))}const j=new Set,F=new Set;function L(N){ce(N,1),N.m(a,h),r.set(N.key,N),h=N.first,g--}for(;v&&g;){const N=y[g-1],M=l[v-1],V=N.key,P=M.key;N===M?(h=N.first,v--,g--):S.has(P)?!r.has(V)||j.has(V)?L(N):F.has(P)?v--:D.get(V)>D.get(P)?(F.add(V),L(N)):(j.add(P),v--):(u(M,r),v--)}for(;v--;){const N=l[v];S.has(N.key)||u(N,r)}for(;g;)L(y[g-1]);return he(T),y}function st(l){l&&l.c()}function nt(l,e,t){const{fragment:n,after_update:i}=l.$$;n&&n.m(e,t),Ft(()=>{const s=l.$$.on_mount.map(ti).filter(Ht);l.$$.on_destroy?l.$$.on_destroy.push(...s):he(s),l.$$.on_mount=[]}),i.forEach(Ft)}function ot(l,e){const t=l.$$;t.fragment!==null&&(Yr(t.after_update),he(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function Xr(l,e){l.$$.dirty[0]===-1&&(Nt.push(l),Gr(),l.$$.dirty.fill(0)),l.$$.dirty[e/31|0]|=1<{const b=g.length?g[0]:v;return d.ctx&&i(d.ctx[_],d.ctx[_]=b)&&(!d.skip_bound&&d.bound[_]&&d.bound[_](b),h&&Xr(l,_)),v}):[],d.update(),h=!0,he(d.before_update),d.fragment=n?n(d.ctx):!1,e.target){if(e.hydrate){const _=Ur(e.target);d.fragment&&d.fragment.l(_),_.forEach(q)}else d.fragment&&d.fragment.c();e.intro&&ce(l.$$.fragment),nt(l,e.target,e.anchor),oi()}Bt(u)}class bt{constructor(){rl(this,"$$");rl(this,"$$set")}$destroy(){ot(this,1),this.$destroy=oe}$on(e,t){if(!Ht(t))return oe;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&&!Vr(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const Zr="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Zr);function Qr(l){let e,t;return{c(){e=B("path"),t=B("polyline"),o(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),o(t,"points","14 2 14 8 20 8")},m(n,i){C(n,e,i),C(n,t,i)},d(n){n&&(q(e),q(t))}}}function xr(l){let e,t,n,i,s;return{c(){e=B("path"),t=B("polyline"),n=B("line"),i=B("line"),s=B("polyline"),o(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),o(t,"points","14 2 14 8 20 8"),o(n,"x1","16"),o(n,"y1","13"),o(n,"x2","8"),o(n,"y2","13"),o(i,"x1","16"),o(i,"y1","17"),o(i,"x2","8"),o(i,"y2","17"),o(s,"points","10 9 9 9 8 9")},m(r,a){C(r,e,a),C(r,t,a),C(r,n,a),C(r,i,a),C(r,s,a)},d(r){r&&(q(e),q(t),q(n),q(i),q(s))}}}function $r(l){let e,t;return{c(){e=B("polyline"),t=B("polyline"),o(e,"points","16 18 22 12 16 6"),o(t,"points","8 6 2 12 8 18")},m(n,i){C(n,e,i),C(n,t,i)},d(n){n&&(q(e),q(t))}}}function ec(l){let e,t,n,i;return{c(){e=B("path"),t=B("polyline"),n=B("line"),i=B("rect"),o(e,"d","M21 8v13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8"),o(t,"points","7 3 12 8 17 3"),o(n,"x1","3"),o(n,"y1","8"),o(n,"x2","21"),o(n,"y2","8"),o(i,"x","10"),o(i,"y","12"),o(i,"width","4"),o(i,"height","4"),o(i,"rx","1")},m(s,r){C(s,e,r),C(s,t,r),C(s,n,r),C(s,i,r)},d(s){s&&(q(e),q(t),q(n),q(i))}}}function tc(l){let e,t,n,i,s;return{c(){e=B("path"),t=B("polyline"),n=B("line"),i=B("line"),s=B("line"),o(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),o(t,"points","14 2 14 8 20 8"),o(n,"x1","9"),o(n,"y1","12"),o(n,"x2","15"),o(n,"y2","12"),o(i,"x1","9"),o(i,"y1","15"),o(i,"x2","13"),o(i,"y2","15"),o(s,"x1","12"),o(s,"y1","15"),o(s,"x2","12"),o(s,"y2","18")},m(r,a){C(r,e,a),C(r,t,a),C(r,n,a),C(r,i,a),C(r,s,a)},d(r){r&&(q(e),q(t),q(n),q(i),q(s))}}}function lc(l){let e,t,n,i,s,r;return{c(){e=B("path"),t=B("polyline"),n=B("line"),i=B("line"),s=B("line"),r=B("line"),o(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),o(t,"points","14 2 14 8 20 8"),o(n,"x1","8"),o(n,"y1","12"),o(n,"x2","16"),o(n,"y2","12"),o(i,"x1","8"),o(i,"y1","16"),o(i,"x2","16"),o(i,"y2","16"),o(s,"x1","8"),o(s,"y1","14"),o(s,"x2","12"),o(s,"y2","14"),o(r,"x1","12"),o(r,"y1","12"),o(r,"x2","12"),o(r,"y2","18")},m(a,u){C(a,e,u),C(a,t,u),C(a,n,u),C(a,i,u),C(a,s,u),C(a,r,u)},d(a){a&&(q(e),q(t),q(n),q(i),q(s),q(r))}}}function nc(l){let e,t,n,i;return{c(){e=B("path"),t=B("polyline"),n=B("line"),i=B("line"),o(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),o(t,"points","14 2 14 8 20 8"),o(n,"x1","16"),o(n,"y1","13"),o(n,"x2","8"),o(n,"y2","13"),o(i,"x1","16"),o(i,"y1","17"),o(i,"x2","8"),o(i,"y2","17")},m(s,r){C(s,e,r),C(s,t,r),C(s,n,r),C(s,i,r)},d(s){s&&(q(e),q(t),q(n),q(i))}}}function oc(l){let e,t,n,i,s;return{c(){e=B("path"),t=B("polyline"),n=B("line"),i=B("line"),s=B("line"),o(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),o(t,"points","14 2 14 8 20 8"),o(n,"x1","8"),o(n,"y1","12"),o(n,"x2","16"),o(n,"y2","12"),o(i,"x1","8"),o(i,"y1","16"),o(i,"x2","16"),o(i,"y2","16"),o(s,"x1","8"),o(s,"y1","14"),o(s,"x2","12"),o(s,"y2","14")},m(r,a){C(r,e,a),C(r,t,a),C(r,n,a),C(r,i,a),C(r,s,a)},d(r){r&&(q(e),q(t),q(n),q(i),q(s))}}}function ic(l){let e,t,n;return{c(){e=B("path"),t=B("circle"),n=B("circle"),o(e,"d","M9 18V5l12-2v13"),o(t,"cx","6"),o(t,"cy","18"),o(t,"r","3"),o(n,"cx","18"),o(n,"cy","16"),o(n,"r","3")},m(i,s){C(i,e,s),C(i,t,s),C(i,n,s)},d(i){i&&(q(e),q(t),q(n))}}}function sc(l){let e,t;return{c(){e=B("rect"),t=B("polyline"),o(e,"x","2"),o(e,"y","4"),o(e,"width","20"),o(e,"height","16"),o(e,"rx","2"),o(t,"points","10 9 16 12 10 15 10 9")},m(n,i){C(n,e,i),C(n,t,i)},d(n){n&&(q(e),q(t))}}}function rc(l){let e,t,n;return{c(){e=B("rect"),t=B("circle"),n=B("polyline"),o(e,"x","3"),o(e,"y","3"),o(e,"width","18"),o(e,"height","18"),o(e,"rx","2"),o(e,"ry","2"),o(t,"cx","8.5"),o(t,"cy","8.5"),o(t,"r","1.5"),o(n,"points","21 15 16 10 5 21")},m(i,s){C(i,e,s),C(i,t,s),C(i,n,s)},d(i){i&&(q(e),q(t),q(n))}}}function cc(l){let e;return{c(){e=B("path"),o(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){C(t,e,n)},d(t){t&&q(e)}}}function ac(l){let e;function t(s,r){return s[0]==="folder"?cc:s[0]==="image"?rc:s[0]==="video"?sc:s[0]==="audio"?ic:s[0]==="pdf"?oc:s[0]==="document"?nc:s[0]==="spreadsheet"?lc:s[0]==="presentation"?tc:s[0]==="archive"?ec:s[0]==="code"?$r:s[0]==="text"?xr:Qr}let n=t(l),i=n(l);return{c(){e=B("svg"),i.c(),o(e,"width",l[1]),o(e,"height",l[1]),o(e,"viewBox","0 0 24 24"),o(e,"fill","none"),o(e,"stroke","currentColor"),o(e,"stroke-width","1.5"),o(e,"stroke-linecap","round"),o(e,"stroke-linejoin","round"),o(e,"xmlns","http://www.w3.org/2000/svg")},m(s,r){C(s,e,r),i.m(e,null)},p(s,[r]){n!==(n=t(s))&&(i.d(1),i=n(s),i&&(i.c(),i.m(e,null))),r&2&&o(e,"width",s[1]),r&2&&o(e,"height",s[1])},i:oe,o:oe,d(s){s&&q(e),i.d()}}}function uc(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 ri extends bt{constructor(e){super(),wt(this,e,uc,ac,ht,{kind:0,size:1})}}const fc={"nav.today":"Сегодня","nav.inbox":"Неразобранное","nav.activity":"Активность","nav.journal":"Журнал","nav.clients":"Клиенты","nav.projects":"Проекты","nav.recipes":"Рецепты","nav.documents":"Документы","nav.archive":"Архив","nav.sections":"Разделы","nav.cases":"Дела","nav.noCases":"Нет дел","nav.sync":"Синхронизация","nav.syncSettings":"Настройки синхронизации","nav.syncNow":"Синхронизировать","nav.selectPrompt":"Выберите раздел или дело","nav.brand":"Верстак","nav.system":"Системное","nav.workspace":"Рабочее пространство","nav.noNodes":"Нет узлов","nav.openFolder":"Открыть папку","nav.createInside":"Создать внутри","nav.createNode":"Создать элемент","nav.moveToRoot":"Переместить в корень","tab.overview":"Обзор","tab.notes":"Заметки","tab.files":"Файлы","tab.actions":"Действия","tab.worklog":"Журнал","tab.activity":"Активность","common.save":"Сохранить","common.cancel":"Отмена","common.delete":"Удалить","common.rename":"Переименовать","common.close":"Закрыть","common.create":"Создать","common.confirm":"Подтверждение","common.back":"← Назад","common.loading":"Загрузка...","common.error":"Ошибка:","common.yes":"Да","common.ok":"OK","common.copy":"Копировать","common.cut":"Вырезать","common.paste":"Вставить","common.duplicate":"Дублировать","common.run":"Запустить","common.test":"Test","common.all":"Все","common.no":"Нет","common.date":"Дата","common.search":"Найти","common.testAgain":"Проверить","common.connect":"Подключиться","common.disconnect":"Отключиться","common.settings":"Настройки","common.name":"Название","common.type":"Тип","common.section":"Раздел","common.created":"Создано","common.empty":"Нет","common.newName":"Новое имя","welcome.title":"Верстак","welcome.selectSection":"Выберите раздел в боковой панели.","welcome.createCase":"Или создайте новое дело кнопкой «+».","welcome.addCase":"Добавить дело","event.noteCreated":"Заметка создана","event.noteUpdated":"Заметка изменена","event.fileAdded":"Файл добавлен","event.fileDeleted":"Файл удалён","event.fileRenamed":"Файл переименован","event.fileCopied":"Файл скопирован","event.fileMoved":"Файл перемещён","event.folderAdded":"Папка добавлена","event.folderDeleted":"Папка удалена","event.folderRenamed":"Папка переименована","event.caseCreated":"Дело создано","event.caseUpdated":"Дело изменено","kind.project":"Проект","kind.client":"Клиент","kind.document":"Документ","kind.recipe":"Рецепт","kind.folder":"Папка","kind.note":"Заметка","kind.file":"Файл","kind.archive":"Архив","kind.case":"Дело","action.openUrl":"Открыть URL","action.openFile":"Открыть файл","action.openFolder":"Открыть папку","action.runCommand":"Запустить команду","action.runScript":"Запустить скрипт","action.openTerminal":"Открыть терминал","action.launchApp":"Запустить приложение","action.addAction":"+ Добавить действие","action.newAction":"Новое действие","action.noActions":"Действий пока нет","action.run":"Запустить","action.dataUrl":"URL","action.dataPath":"Путь","action.dataCommand":"Команда","action.urlPlaceholder":"https://example.com","action.pathPlaceholder":"/path/to/file","action.commandPlaceholder":"команда","action.namePlaceholder":"Например: Открыть сайт","note.add":"+ Добавить заметку","note.new":"Новая заметка","note.title":"Название заметки","note.noNotes":"Нет заметок","note.createFirst":"Создайте первую заметку для этого дела.","note.placeholder":"Начните писать...","note.unsavedTitle":"Несохранённые изменения","note.unsavedMessage":"Закрыть редактор? Все несохранённые изменения будут потеряны.","note.unsavedClose":"Закрыть","file.addFile":"+ Добавить файл","file.addFolder":"+ Добавить папку","file.newFile":"+ Новый файл","file.addFileSimple":"Добавить файл","file.addFolderSimple":"Добавить папку","file.noFiles":"В этой папке пока нет файлов","file.noFilesCase":"В этом проекте пока нет файлов","file.hint":"Добавьте файл или папку, чтобы сохранить материалы проекта.","file.root":"Файлы","file.preview":"Предпросмотр","file.openExternal":"Открыть во внешней программе","file.openFolder":"Открыть папку","file.showInExplorer":"Показать в проводнике","file.more":"Ещё","file.delete":"Удалить","file.ariaFolder":"Папка","file.ariaFile":"Файл","file.scanning":"Сканирование...","file.pickSingle":"Выберите файл","file.pickMultiple":"Выберите файлы","file.pickDirectory":"Выберите папку","file.importTitle":"Добавить в","file.importFiles":"Файлов:","file.importFolders":"Папок:","file.importSize":"Размер:","file.importCopy":"Скопировать","file.importLink":"Привязать","file.selectCaseFirst":"Сначала выберите дело для добавления файлов","worklog.title":"Журнал","worklog.whatDone":"Что сделано","worklog.minutes":"Мин","worklog.min":"мин","worklog.log":"Записать","worklog.empty":"Записей работы пока нет","worklog.suggestions":"Предложения на сегодня","worklog.apply":"Применить","sync.title":"Синхронизация","sync.settings":"Настройки синхронизации","sync.status":"Статус","sync.server":"Сервер","sync.device":"Устройство","sync.deviceId":"ID устройства","sync.unpushed":"Неотправлено","sync.lastSync":"Последняя синх.","sync.revoked":"Отозвано","sync.connected":"Подключено","sync.notConnected":"Не подключено","sync.disabled":"Отключена","sync.serverUrl":"URL сервера","sync.serverUrlPlaceholder":"https://example.com:47732","sync.username":"Логин","sync.usernamePlaceholder":"username","sync.password":"Пароль","sync.passwordPlaceholder":"password","sync.autoSync":"Автосинхронизация (мин, 0 = отключено)","sync.saveInterval":"Сохранить интервал","sync.syncNow":"Синхронизировать","sync.disconnect":"Отключиться","sync.connect":"Подключиться","sync.test":"Проверить","sync.settingsSaved":"интервал сохранён","today.title":"Сегодня","today.changedCases":"Изменён сегодня","today.timeline":"Лента за сегодня","today.empty":"Сегодня пока тихо","today.emptyHint":"Здесь появятся дела, заметки, файлы и действия, с которыми вы работали сегодня.","today.plural.case_one":"дело","today.plural.case_few":"дела","today.plural.case_many":"дел","today.plural.note_one":"заметка","today.plural.note_few":"заметки","today.plural.note_many":"заметок","today.plural.file_one":"файл","today.plural.file_few":"файла","today.plural.file_many":"файлов","today.plural.event_one":"событие","today.plural.event_few":"события","today.plural.event_many":"событий","journal.title":"Журнал работы","journal.empty":"Нет записей за выбранный период","journal.dateFrom":"От","journal.dateTo":"До","journal.filter":"Фильтр","journal.total":"Всего","journal.exportCSV":"CSV","journal.exportMarkdown":"Markdown","journal.billable":"Оплачиваемое","journal.approximate":"Примерно","journal.node":"Дело","journal.path":"Путь","journal.byDay":"По дням","journal.byNode":"По делам","journal.includeChildren":"С подзадачами","journal.nodeSearch":"Поиск дела...","suggest.title":"Предложения на сегодня","suggest.apply":"Записать","suggest.dismiss":"Скрыть","suggest.open":"Открыть","suggest.confidence.low":"Низкая уверенность","suggest.confidence.medium":"Средняя уверенность","suggest.confidence.high":"Высокая уверенность","suggest.minutes":"мин","suggest.edit":"Изменить","suggest.noSuggestions":"Нет предложений для журнала","activity.title":"Активность","activity.empty":"Активность пока не зафиксирована","activity.perCaseEmpty":"Активность пока не зафиксирована","overview.type":"Тип","overview.section":"Раздел","overview.created":"Создано","overview.newNote":"Новая заметка","overview.addFile":"Добавить файл","overview.addAction":"Добавить действие","overview.logTime":"Записать время","overview.recentNotes":"Последние заметки","overview.recentEntries":"Последние записи","rename.title":"Переименовать","rename.emptyError":"Имя не может быть пустым","rename.invalidError":"Недопустимое имя","delete.confirmTitle":"Удаление","delete.confirmMessage":"Удалить","delete.folder":"папку","delete.file":"файл","template.optionNone":"Пустое дело","template.optional":"Шаблон (опционально)","template.none.desc":"Без шаблона, простой узел-контейнер","template.folder":"Папка","template.folder.desc":"Папка для группировки элементов внутри рабочего пространства","template.project":"Проект","template.project.desc":"Отдельный проект или задача с файлами, заметками и журналом","template.client":"Клиент","template.client.desc":"Организация или человек, для которых ведутся работы","template.document":"Документ","template.document.desc":"Документ с описанием, заметками и файлами","template.recipe":"Рецепт","template.recipe.desc":"Повторяемая процедура или инструкция","template.note":"Заметка","template.file":"Файл","template.select":"Выберите тип","mime.jpeg":"Изображение JPEG","mime.png":"Изображение PNG","mime.gif":"Изображение GIF","mime.webp":"Изображение WebP","mime.svg":"Изображение SVG","mime.bmp":"Изображение BMP","mime.tiff":"Изображение TIFF","mime.avif":"Изображение AVIF","mime.pdf":"PDF документ","mime.word":"Документ Word","mime.excel":"Таблица Excel","mime.ppt":"Презентация PowerPoint","mime.zip":"ZIP архив","mime.gzip":"GZIP архив","mime.tar":"TAR архив","mime.sevenz":"7z архив","mime.rar":"RAR архив","mime.text":"Текстовый файл","mime.html":"HTML файл","mime.css":"CSS файл","mime.js":"JavaScript файл","mime.json":"JSON файл","mime.xml":"XML файл","mime.yaml":"YAML файл","mime.binary":"Бинарный файл","mime.executable":"Исполняемый файл","mime.folder":"Папка","mime.unknown":"Неизвестно","mime.file":"Файл","error.nameEmpty":"Имя не может быть пустым","error.nameInvalid":"Недопустимое имя","error.selectCaseFirst":"Сначала выберите дело","common.open":"Открыть","delete.files":"файлов ({count})","file.namePrompt":"Введите имя файла:","file.pdfUnavailable":"Предпросмотр PDF недоступен.","file.previewUnavailable":"Предпросмотр недоступен для этого типа файлов.","case.new":"Новое дело","case.namePlaceholder":"Название дела","error.generic":"Произошла ошибка","error.invalidCredentials":"Неверный логин или пароль","error.accountBlocked":"Аккаунт заблокирован","error.emailNotConfirmed":"Email не подтверждён","error.tokenInvalid":"Неверный или просроченный токен","error.tokenExpired":"Срок действия токена истёк"},dc={"nav.today":"Today","nav.inbox":"Inbox","nav.activity":"Activity","nav.clients":"Clients","nav.projects":"Projects","nav.recipes":"Recipes","nav.documents":"Documents","nav.archive":"Archive","nav.sections":"Sections","nav.cases":"Cases","nav.noCases":"No cases","nav.system":"System","nav.workspace":"Workspace","nav.noNodes":"No nodes","nav.openFolder":"Open folder","nav.createInside":"Create inside","nav.createNode":"Create element","nav.moveToRoot":"Move to root","nav.selectPrompt":"Select a section or case","nav.brand":"Verstak","tab.overview":"Overview","tab.notes":"Notes","tab.files":"Files","tab.actions":"Actions","tab.worklog":"Work Log","tab.activity":"Activity","common.save":"Save","common.cancel":"Cancel","common.delete":"Delete","common.rename":"Rename","common.close":"Close","common.create":"Create","common.confirm":"Confirm","common.back":"← Back","common.loading":"Loading...","common.error":"Error:","common.yes":"Yes","common.ok":"OK","common.run":"Run","common.name":"Name","common.settings":"Settings","welcome.title":"Verstak","welcome.selectSection":"Select a section in the sidebar.","welcome.addCase":"Add case","event.noteCreated":"Note created","event.noteUpdated":"Note updated","event.fileAdded":"File added","event.fileDeleted":"File deleted","event.fileRenamed":"File renamed","event.fileCopied":"File copied","event.fileMoved":"File moved","event.caseCreated":"Case created","action.openUrl":"Open URL","action.openFile":"Open file","action.openFolder":"Open folder","action.runCommand":"Run command","action.runScript":"Run script","action.openTerminal":"Open terminal","action.launchApp":"Launch app","note.add":"+ Add note","note.noNotes":"No notes","note.title":"Note title","note.placeholder":"Start writing...","file.addFile":"+ Add file","file.addFolder":"+ Add folder","file.preview":"Preview","file.openExternal":"Open in external program","file.openFolder":"Open folder","file.showInExplorer":"Show in explorer","file.delete":"Delete","file.pickSingle":"Select file","file.pickDirectory":"Select folder","sync.title":"Sync","sync.settings":"Sync settings","sync.status":"Status","sync.server":"Server","sync.device":"Device","sync.connected":"Connected","sync.notConnected":"Not connected","sync.disabled":"Disabled","kind.project":"Project","kind.client":"Client","kind.document":"Document","kind.recipe":"Recipe","kind.folder":"Folder","kind.note":"Note","kind.file":"File","kind.archive":"Archive","kind.case":"Case","template.optionNone":"Empty case","template.optional":"Template (optional)","template.none.desc":"No template, simple container node","template.folder":"Folder","template.folder.desc":"A folder to group items inside a workspace","template.project":"Project","template.project.desc":"A distinct project or task with files, notes and work log","template.client":"Client","template.client.desc":"An organization or person for whom work is performed","template.document":"Document","template.document.desc":"A document with description, notes and files","template.recipe":"Recipe","template.recipe.desc":"A repeatable procedure or instruction","template.note":"Note","template.file":"File","template.select":"Select type","case.new":"New case","case.namePlaceholder":"Case name","error.generic":"An error occurred","error.invalidCredentials":"Invalid username or password","worklog.suggestions":"Suggestions for today","worklog.apply":"Apply","common.all":"All","common.no":"No","common.date":"Date","common.search":"Search","nav.journal":"Journal","journal.title":"Work Log","journal.empty":"No entries for the selected period","journal.dateFrom":"From","journal.dateTo":"To","journal.filter":"Filter","journal.total":"Total","journal.exportCSV":"CSV","journal.exportMarkdown":"Markdown","journal.billable":"Billable","journal.approximate":"Approx","journal.node":"Case","journal.path":"Path","journal.byDay":"By day","journal.byNode":"By case","journal.includeChildren":"Include subtasks","journal.nodeSearch":"Search case...","suggest.title":"Suggestions","suggest.apply":"Log","suggest.dismiss":"Dismiss","suggest.open":"Open","suggest.confidence.low":"Low confidence","suggest.confidence.medium":"Medium confidence","suggest.confidence.high":"High confidence","suggest.minutes":"min","suggest.edit":"Edit","suggest.noSuggestions":"No suggestions"},en={ru:fc,en:dc};let tn="ru";function m(l,e){var i;const t=en[tn];let n=t==null?void 0:t[l];if(n==null&&tn!=="ru"&&(n=(i=en.ru)==null?void 0:i[l]),n==null&&(n=l),e!=null)for(const[s,r]of Object.entries(e))n=n.replace(`{${s}}`,String(r));return n}function Jt(l){if(l==null||l<0)return"—";if(l===0)return"0 B";const e=["B","KB","MB","GB"],t=Math.min(Math.floor(Math.log(l)/Math.log(1024)),e.length-1),n=l/Math.pow(1024,t);return(t===0?n.toFixed(0):n.toFixed(1))+" "+e[t]}const dl={"image/jpeg":m("mime.jpeg"),"image/png":m("mime.png"),"image/gif":m("mime.gif"),"image/webp":m("mime.webp"),"image/svg+xml":m("mime.svg"),"image/bmp":m("mime.bmp"),"image/tiff":m("mime.tiff"),"image/avif":m("mime.avif"),"application/pdf":m("mime.pdf"),"application/msword":m("mime.word"),"application/vnd.openxmlformats-officedocument.wordprocessingml.document":m("mime.word"),"application/vnd.ms-excel":m("mime.excel"),"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":m("mime.excel"),"application/vnd.ms-powerpoint":m("mime.ppt"),"application/vnd.openxmlformats-officedocument.presentationml.presentation":m("mime.ppt"),"application/zip":m("mime.zip"),"application/gzip":m("mime.gzip"),"application/x-tar":m("mime.tar"),"application/x-7z-compressed":m("mime.sevenz"),"application/x-rar-compressed":m("mime.rar"),"text/plain":m("mime.text"),"text/html":m("mime.html"),"text/css":m("mime.css"),"text/javascript":m("mime.js"),"application/json":m("mime.json"),"application/xml":m("mime.xml"),"application/x-yaml":m("mime.yaml"),"application/octet-stream":m("mime.binary"),"application/x-msdos-program":m("mime.executable"),"inode/directory":m("mime.folder")};function ln(l){return l?dl[l]||l:m("mime.unknown")}function pc(l){if(l.type==="folder")return m("mime.folder");const e=(l.mime||"").toLowerCase();if(dl[e])return dl[e];const n=(l.name||"").toLowerCase().split(".").pop();return n?n.toUpperCase():m("mime.file")}function ci(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 mc=["image/jpeg","image/png","image/gif","image/webp","image/bmp","image/tiff","image/avif","image/svg+xml"],_c=["text/plain","text/html","text/css","text/javascript","application/json","application/xml","application/x-yaml","text/x-shellscript"],vc=["txt","log","conf","ini","yaml","yml","json","xml","csv","sh","py","js","ts","css","html","md","markdown","cfg"],hc=["jpg","jpeg","png","gif","webp","bmp","tiff","tif","avif","svg"];function ai(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return mc.includes(e)||hc.includes(n)}function ui(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return _c.includes(e)||vc.includes(n)&&n!=="md"&&n!=="markdown"}function fi(l){return(l.mime||"").toLowerCase().includes("pdf")}function di(l){const e=(l.name||"").toLowerCase();return e.endsWith(".md")||e.endsWith(".markdown")}function wc(l){return ai(l)||fi(l)}function bc(l){return ui(l)||di(l)}const{window:gc}=Hr;function kc(l){let e,t,n,i=Jt(l[0].size)+"",s;return{c(){e=f("span"),e.textContent="·",t=w(),n=f("span"),s=I(i),o(e,"class","meta-sep svelte-1skuef2")},m(r,a){C(r,e,a),C(r,t,a),C(r,n,a),c(n,s)},p(r,a){a[0]&1&&i!==(i=Jt(r[0].size)+"")&&U(s,i)},d(r){r&&(q(e),q(t),q(n))}}}function yc(l){let e,t,n,i,s;return{c(){e=f("button"),e.innerHTML='',t=w(),n=f("button"),n.innerHTML='',o(e,"class","action-btn svelte-1skuef2"),o(e,"title",m("file.openFolder")),o(e,"aria-label",m("file.openFolder")),o(n,"class","action-btn svelte-1skuef2"),o(n,"title",m("file.showInExplorer")),o(n,"aria-label",m("file.showInExplorer"))},m(r,a){C(r,e,a),C(r,t,a),C(r,n,a),i||(s=[E(e,"click",it(l[30])),E(n,"click",it(l[11]))],i=!0)},p:oe,d(r){r&&(q(e),q(t),q(n)),i=!1,he(s)}}}function qc(l){let e,t,n,i,s,r,a;return{c(){e=f("button"),e.innerHTML='',t=w(),n=f("button"),n.innerHTML='',i=w(),s=f("button"),s.innerHTML='',o(e,"class","action-btn svelte-1skuef2"),o(e,"title",m("file.preview")),o(e,"aria-label",m("file.preview")),o(n,"class","action-btn svelte-1skuef2"),o(n,"title",m("file.openExternal")),o(n,"aria-label",m("file.openExternal")),o(s,"class","action-btn svelte-1skuef2"),o(s,"title",m("file.showInExplorer")),o(s,"aria-label",m("file.showInExplorer"))},m(u,d){C(u,e,d),C(u,t,d),C(u,n,d),C(u,i,d),C(u,s,d),r||(a=[E(e,"click",it(l[29])),E(n,"click",it(l[10])),E(s,"click",it(l[11]))],r=!0)},p:oe,d(u){u&&(q(e),q(t),q(n),q(i),q(s)),r=!1,he(a)}}}function nn(l){let e,t,n,i,s,r,a,u,d=m("common.open")+"",h,_,v,g,b,k,y,S,D=m("file.openExternal")+"",T,j,F,L,N,M,V=m("file.showInExplorer")+"",P,W,H,R,K,G,Q,Y,X,J=m("common.rename")+"",O,ie,pe,ee,te,le,ve,we=m("common.duplicate")+"",Me,Le,Ie,z,Z,de,ke,Te,ze,He=m("common.cut")+"",tt,Ee,ye,ue,re,se,Ne,Se=m("common.copy")+"",qe,fe,me,be,Re,Ke,Ae,Pe,Ue,Ge=m("common.delete")+"",We,Fe,Be;return{c(){e=f("div"),t=w(),n=f("div"),i=f("button"),s=B("svg"),r=B("path"),a=B("circle"),u=w(),h=I(d),_=w(),v=f("button"),g=B("svg"),b=B("path"),k=B("polyline"),y=B("line"),S=w(),T=I(D),j=w(),F=f("button"),L=B("svg"),N=B("path"),M=w(),P=I(V),W=w(),H=f("div"),R=w(),K=f("button"),G=B("svg"),Q=B("path"),Y=B("path"),X=w(),O=I(J),ie=w(),pe=f("button"),ee=B("svg"),te=B("rect"),le=B("path"),ve=w(),Me=I(we),Le=w(),Ie=f("button"),z=B("svg"),Z=B("circle"),de=B("circle"),ke=B("line"),Te=B("line"),ze=w(),tt=I(He),Ee=w(),ye=f("button"),ue=B("svg"),re=B("rect"),se=B("path"),Ne=w(),qe=I(Se),fe=w(),me=f("div"),be=w(),Re=f("button"),Ke=B("svg"),Ae=B("polyline"),Pe=B("path"),Ue=w(),We=I(Ge),o(e,"class","menu-backdrop svelte-1skuef2"),o(e,"role","presentation"),o(r,"d","M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"),o(a,"cx","12"),o(a,"cy","12"),o(a,"r","3"),o(s,"width","14"),o(s,"height","14"),o(s,"viewBox","0 0 24 24"),o(s,"fill","none"),o(s,"stroke","currentColor"),o(s,"stroke-width","2"),o(s,"stroke-linecap","round"),o(s,"stroke-linejoin","round"),o(i,"class","menu-item svelte-1skuef2"),o(i,"role","menuitem"),o(b,"d","M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"),o(k,"points","15 3 21 3 21 9"),o(y,"x1","10"),o(y,"y1","14"),o(y,"x2","21"),o(y,"y2","3"),o(g,"width","14"),o(g,"height","14"),o(g,"viewBox","0 0 24 24"),o(g,"fill","none"),o(g,"stroke","currentColor"),o(g,"stroke-width","2"),o(g,"stroke-linecap","round"),o(g,"stroke-linejoin","round"),o(v,"class","menu-item svelte-1skuef2"),o(v,"role","menuitem"),o(N,"d","M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"),o(L,"width","14"),o(L,"height","14"),o(L,"viewBox","0 0 24 24"),o(L,"fill","none"),o(L,"stroke","currentColor"),o(L,"stroke-width","2"),o(L,"stroke-linecap","round"),o(L,"stroke-linejoin","round"),o(F,"class","menu-item svelte-1skuef2"),o(F,"role","menuitem"),o(H,"class","menu-sep svelte-1skuef2"),o(Q,"d","M12 20h9"),o(Y,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"),o(G,"width","14"),o(G,"height","14"),o(G,"viewBox","0 0 24 24"),o(G,"fill","none"),o(G,"stroke","currentColor"),o(G,"stroke-width","2"),o(G,"stroke-linecap","round"),o(G,"stroke-linejoin","round"),o(K,"class","menu-item svelte-1skuef2"),o(K,"role","menuitem"),o(te,"x","9"),o(te,"y","9"),o(te,"width","13"),o(te,"height","13"),o(te,"rx","2"),o(te,"ry","2"),o(le,"d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"),o(ee,"width","14"),o(ee,"height","14"),o(ee,"viewBox","0 0 24 24"),o(ee,"fill","none"),o(ee,"stroke","currentColor"),o(ee,"stroke-width","2"),o(ee,"stroke-linecap","round"),o(ee,"stroke-linejoin","round"),o(pe,"class","menu-item svelte-1skuef2"),o(pe,"role","menuitem"),o(Z,"cx","6"),o(Z,"cy","6"),o(Z,"r","3"),o(de,"cx","6"),o(de,"cy","18"),o(de,"r","3"),o(ke,"x1","20"),o(ke,"y1","4"),o(ke,"x2","8.12"),o(ke,"y2","15.88"),o(Te,"x1","8.12"),o(Te,"y1","8.12"),o(Te,"x2","20"),o(Te,"y2","20"),o(z,"width","14"),o(z,"height","14"),o(z,"viewBox","0 0 24 24"),o(z,"fill","none"),o(z,"stroke","currentColor"),o(z,"stroke-width","2"),o(z,"stroke-linecap","round"),o(z,"stroke-linejoin","round"),o(Ie,"class","menu-item svelte-1skuef2"),o(Ie,"role","menuitem"),o(re,"x","9"),o(re,"y","9"),o(re,"width","13"),o(re,"height","13"),o(re,"rx","2"),o(re,"ry","2"),o(se,"d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"),o(ue,"width","14"),o(ue,"height","14"),o(ue,"viewBox","0 0 24 24"),o(ue,"fill","none"),o(ue,"stroke","currentColor"),o(ue,"stroke-width","2"),o(ue,"stroke-linecap","round"),o(ue,"stroke-linejoin","round"),o(ye,"class","menu-item svelte-1skuef2"),o(ye,"role","menuitem"),o(me,"class","menu-sep svelte-1skuef2"),o(Ae,"points","3 6 5 6 21 6"),o(Pe,"d","M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"),o(Ke,"width","14"),o(Ke,"height","14"),o(Ke,"viewBox","0 0 24 24"),o(Ke,"fill","none"),o(Ke,"stroke","currentColor"),o(Ke,"stroke-width","2"),o(Ke,"stroke-linecap","round"),o(Ke,"stroke-linejoin","round"),o(Re,"class","menu-item menu-item-danger svelte-1skuef2"),o(Re,"role","menuitem"),o(n,"class","menu svelte-1skuef2"),Ve(n,"left",l[3]+"px"),Ve(n,"top",l[4]+"px"),Ve(n,"position","fixed"),o(n,"role","menu"),o(n,"tabindex","-1")},m(Xe,x){C(Xe,e,x),C(Xe,t,x),C(Xe,n,x),c(n,i),c(i,s),c(s,r),c(s,a),c(i,u),c(i,h),c(n,_),c(n,v),c(v,g),c(g,b),c(g,k),c(g,y),c(v,S),c(v,T),c(n,j),c(n,F),c(F,L),c(L,N),c(F,M),c(F,P),c(n,W),c(n,H),c(n,R),c(n,K),c(K,G),c(G,Q),c(G,Y),c(K,X),c(K,O),c(n,ie),c(n,pe),c(pe,ee),c(ee,te),c(ee,le),c(pe,ve),c(pe,Me),c(n,Le),c(n,Ie),c(Ie,z),c(z,Z),c(z,de),c(z,ke),c(z,Te),c(Ie,ze),c(Ie,tt),c(n,Ee),c(n,ye),c(ye,ue),c(ue,re),c(ue,se),c(ye,Ne),c(ye,qe),c(n,fe),c(n,me),c(n,be),c(n,Re),c(Re,Ke),c(Ke,Ae),c(Ke,Pe),c(Re,Ue),c(Re,We),Fe||(Be=[E(e,"click",it(l[19])),E(i,"click",l[17]),E(v,"click",l[10]),E(F,"click",l[11]),E(K,"click",l[13]),E(pe,"click",l[14]),E(Ie,"click",l[15]),E(ye,"click",l[16]),E(Re,"click",l[12]),E(n,"click",it(l[28])),E(n,"keydown",l[31])],Fe=!0)},p(Xe,x){x[0]&8&&Ve(n,"left",Xe[3]+"px"),x[0]&16&&Ve(n,"top",Xe[4]+"px")},d(Xe){Xe&&(q(e),q(t),q(n)),Fe=!1,he(Be)}}}function Cc(l){let e,t,n,i,s,r,a=l[0].name+"",u,d,h,_,v,g,b,k,y,S,D,T,j,F,L,N,M,V,P,W,H,R;n=new ri({props:{kind:l[6],size:22}});let K=!l[7]&&kc(l);function G(J,O){return J[7]?yc:qc}let Y=G(l)(l),X=l[2]&&nn(l);return{c(){e=f("div"),t=f("div"),st(n.$$.fragment),i=w(),s=f("div"),r=f("div"),u=I(a),h=w(),_=f("div"),v=f("span"),v.textContent=`${l[8]}`,g=w(),K&&K.c(),b=w(),k=f("div"),Y.c(),y=w(),S=f("button"),D=B("svg"),T=B("circle"),j=B("circle"),F=B("circle"),L=w(),N=f("button"),N.innerHTML='',V=w(),X&&X.c(),P=ut(),o(t,"class","file-row-icon svelte-1skuef2"),o(r,"class","file-row-name svelte-1skuef2"),o(r,"title",d=l[0].name),o(_,"class","file-row-meta svelte-1skuef2"),o(s,"class","file-row-body svelte-1skuef2"),o(T,"cx","12"),o(T,"cy","5"),o(T,"r","2"),o(j,"cx","12"),o(j,"cy","12"),o(j,"r","2"),o(F,"cx","12"),o(F,"cy","19"),o(F,"r","2"),o(D,"width","16"),o(D,"height","16"),o(D,"viewBox","0 0 24 24"),o(D,"fill","currentColor"),o(S,"class","action-btn svelte-1skuef2"),o(S,"title",m("file.more")),o(S,"aria-label",m("file.more")),o(S,"aria-expanded",l[2]),o(N,"class","action-btn action-btn-danger svelte-1skuef2"),o(N,"title",m("common.delete")),o(N,"aria-label",m("common.delete")),o(k,"class","file-row-actions svelte-1skuef2"),o(e,"class","file-row svelte-1skuef2"),o(e,"role","button"),o(e,"tabindex","0"),o(e,"draggable","true"),o(e,"aria-label",M=l[7]?m("file.ariaFolder")+" "+l[0].name:m("file.ariaFile")+" "+l[0].name),De(e,"file-row--selected",l[1])},m(J,O){C(J,e,O),c(e,t),nt(n,t,null),c(e,i),c(e,s),c(s,r),c(r,u),c(s,h),c(s,_),c(_,v),c(_,g),K&&K.m(_,null),c(e,b),c(e,k),Y.m(k,null),c(k,y),c(k,S),c(S,D),c(D,T),c(D,j),c(D,F),c(k,L),c(k,N),C(J,V,O),X&&X.m(J,O),C(J,P,O),W=!0,H||(R=[E(gc,"click",l[19]),E(S,"click",it(l[18])),E(N,"click",it(l[12])),E(e,"click",l[9]),E(e,"keydown",l[24]),E(e,"contextmenu",l[23]),E(e,"dragstart",l[20]),E(e,"dragover",l[21]),E(e,"drop",l[22])],H=!0)},p(J,O){(!W||O[0]&1)&&a!==(a=J[0].name+"")&&U(u,a),(!W||O[0]&1&&d!==(d=J[0].name))&&o(r,"title",d),J[7]||K.p(J,O),Y.p(J,O),(!W||O[0]&4)&&o(S,"aria-expanded",J[2]),(!W||O[0]&1&&M!==(M=J[7]?m("file.ariaFolder")+" "+J[0].name:m("file.ariaFile")+" "+J[0].name))&&o(e,"aria-label",M),(!W||O[0]&2)&&De(e,"file-row--selected",J[1]),J[2]?X?X.p(J,O):(X=nn(J),X.c(),X.m(P.parentNode,P)):X&&(X.d(1),X=null)},i(J){W||(ce(n.$$.fragment,J),W=!0)},o(J){_e(n.$$.fragment,J),W=!1},d(J){J&&(q(e),q(V),q(P)),ot(n),K&&K.d(),Y.d(),X&&X.d(J),H=!1,he(R)}}}function Sc(l,e,t){let{item:n}=e,{selected:i=!1}=e,{onDragStart:s}=e,{onDragOver:r}=e,{onDrop:a}=e;const u=Yt(),d=ci(n),h=n.type==="folder",_=pc(n);let v=!1,g=0,b=0,k=null;function y(O){O.ctrlKey||O.metaKey?u("toggleSelect",n.id):O.shiftKey?u("rangeSelect",n.id):k?(clearTimeout(k),k=null,h?u("navigate",n.id):u("preview",n)):k=setTimeout(()=>{k=null,u("selectOne",n.id)},250)}function S(){u("openExternal",n.fileId)}function D(){t(2,v=!1),u("showInFolder",n.nodeId||n.id)}function T(){t(2,v=!1),u("delete",{id:n.id,type:n.type})}function j(){t(2,v=!1),u("rename",{id:n.id,name:n.name})}function F(){t(2,v=!1),u("duplicate",n.id)}function L(){t(2,v=!1),u("cut",n.id)}function N(){t(2,v=!1),u("copy",n.id)}function M(){t(2,v=!1),h?u("navigate",n.id):u("preview",n)}function V(){t(2,v=!v)}function P(){t(2,v=!1)}function W(O){s&&s(O,n.id)}function H(O){r&&h&&r(O,n.id)}function R(O){a&&h&&a(O,n.id)}function K(O){O.preventDefault(),t(3,g=Math.min(O.clientX,window.innerWidth-240)),t(4,b=Math.min(O.clientY,window.innerHeight-320)),t(2,v=!0)}function G(O){(O.key==="Enter"||O.key===" ")&&(O.preventDefault(),y(O))}function Q(O){ni.call(this,l,O)}const Y=()=>u("preview",n),X=()=>u("navigate",n.id),J=O=>{O.key==="Escape"&&(O.stopPropagation(),P())};return l.$$set=O=>{"item"in O&&t(0,n=O.item),"selected"in O&&t(1,i=O.selected),"onDragStart"in O&&t(25,s=O.onDragStart),"onDragOver"in O&&t(26,r=O.onDragOver),"onDrop"in O&&t(27,a=O.onDrop)},[n,i,v,g,b,u,d,h,_,y,S,D,T,j,F,L,N,M,V,P,W,H,R,K,G,s,r,a,Q,Y,X,J]}class jc extends bt{constructor(e){super(),wt(this,e,Sc,Cc,ht,{item:0,selected:1,onDragStart:25,onDragOver:26,onDrop:27},null,[-1,-1])}}function on(l,e,t){const n=l.slice();return n[4]=e[t],n[6]=t,n}function Tc(l){let e;return{c(){e=f("span"),e.textContent="/",o(e,"class","sep svelte-csi2lb")},m(t,n){C(t,e,n)},d(t){t&&q(e)}}}function Nc(l){let e,t=l[4].name+"",n,i,s;function r(){return l[2](l[6])}return{c(){e=f("button"),n=I(t),o(e,"class","crumb crumb--link svelte-csi2lb")},m(a,u){C(a,e,u),c(e,n),i||(s=E(e,"click",r),i=!0)},p(a,u){l=a,u&1&&t!==(t=l[4].name+"")&&U(n,t)},d(a){a&&q(e),i=!1,s()}}}function Dc(l){let e,t=l[4].name+"",n;return{c(){e=f("span"),n=I(t),o(e,"class","crumb crumb--current svelte-csi2lb")},m(i,s){C(i,e,s),c(e,n)},p(i,s){s&1&&t!==(t=i[4].name+"")&&U(n,t)},d(i){i&&q(e)}}}function sn(l){let e,t,n=l[6]>0&&Tc();function i(a,u){return a[6]===a[0].length-1?Dc:Nc}let s=i(l),r=s(l);return{c(){n&&n.c(),e=w(),r.c(),t=ut()},m(a,u){n&&n.m(a,u),C(a,e,u),r.m(a,u),C(a,t,u)},p(a,u){s===(s=i(a))&&r?r.p(a,u):(r.d(1),r=s(a),r&&(r.c(),r.m(t.parentNode,t)))},d(a){a&&(q(e),q(t)),n&&n.d(a),r.d(a)}}}function Mc(l){let e,t=ae(l[0]),n=[];for(let i=0;is(a);return l.$$set=a=>{"crumbs"in a&&t(0,n=a.crumbs)},[n,s,r]}class pi extends bt{constructor(e){super(),wt(this,e,Fc,Mc,ht,{crumbs:0})}}function Ic(l){let e,t,n,i,s,r;return{c(){e=f("div"),t=f("p"),t.textContent=`${m("file.previewUnavailable")}`,n=w(),i=f("button"),i.textContent=`${m("file.openExternal")}`,o(i,"class","btn btn-sm svelte-1cw3u0m"),o(e,"class","preview-status svelte-1cw3u0m")},m(a,u){C(a,e,u),c(e,t),c(e,n),c(e,i),s||(r=E(i,"click",l[9]),s=!0)},p:oe,d(a){a&&q(e),s=!1,r()}}}function Ec(l){let e,t;function n(r,a){return a&2&&(e=null),e==null&&(e=!!(r[1]&&r[1].startsWith("data:"))),e?Rc:zc}let i=n(l,-1),s=i(l);return{c(){s.c(),t=ut()},m(r,a){s.m(r,a),C(r,t,a)},p(r,a){i===(i=n(r,a))&&s?s.p(r,a):(s.d(1),s=i(r),s&&(s.c(),s.m(t.parentNode,t)))},d(r){r&&q(t),s.d(r)}}}function Ac(l){let e,t,n;return{c(){e=f("pre"),t=f("code"),n=I(l[1]),o(e,"class","preview-text svelte-1cw3u0m")},m(i,s){C(i,e,s),c(e,t),c(t,n)},p(i,s){s&2&&U(n,i[1])},d(i){i&&q(e)}}}function Lc(l){let e,t,n,i;return{c(){e=f("div"),t=f("img"),Kt(t.src,n=l[1])||o(t,"src",n),o(t,"alt",i=l[0].name),o(t,"class","preview-image svelte-1cw3u0m"),o(e,"class","preview-image-container svelte-1cw3u0m")},m(s,r){C(s,e,r),c(e,t)},p(s,r){r&2&&!Kt(t.src,n=s[1])&&o(t,"src",n),r&1&&i!==(i=s[0].name)&&o(t,"alt",i)},d(s){s&&q(e)}}}function Pc(l){let e,t,n,i,s,r,a;return{c(){e=f("div"),t=f("p"),n=I(l[3]),i=w(),s=f("button"),s.textContent=`${m("file.openExternal")}`,o(s,"class","btn btn-sm svelte-1cw3u0m"),o(e,"class","preview-status svelte-1cw3u0m")},m(u,d){C(u,e,d),c(e,t),c(t,n),c(e,i),c(e,s),r||(a=E(s,"click",l[9]),r=!0)},p(u,d){d&8&&U(n,u[3])},d(u){u&&q(e),r=!1,a()}}}function Oc(l){let e,t;return{c(){e=f("div"),t=f("p"),t.textContent=`${m("common.loading")}`,o(e,"class","preview-status svelte-1cw3u0m")},m(n,i){C(n,e,i),c(e,t)},p:oe,d(n){n&&q(e)}}}function zc(l){let e,t,n,i,s,r;return{c(){e=f("div"),t=f("p"),t.textContent=`${m("file.pdfUnavailable")}`,n=w(),i=f("button"),i.textContent=`${m("file.openExternal")}`,o(i,"class","btn btn-sm svelte-1cw3u0m"),o(e,"class","preview-status svelte-1cw3u0m")},m(a,u){C(a,e,u),c(e,t),c(e,n),c(e,i),s||(r=E(i,"click",l[9]),s=!0)},p:oe,d(a){a&&q(e),s=!1,r()}}}function Rc(l){let e,t,n;return{c(){e=f("div"),t=f("embed"),Kt(t.src,n=l[1])||o(t,"src",n),o(t,"type","application/pdf"),o(t,"class","preview-pdf svelte-1cw3u0m"),o(e,"class","preview-pdf-container svelte-1cw3u0m")},m(i,s){C(i,e,s),c(e,t)},p(i,s){s&2&&!Kt(t.src,n=i[1])&&o(t,"src",n)},d(i){i&&q(e)}}}function Bc(l){let e,t,n,i,s,r,a,u=l[0].name+"",d,h,_,v,g=Jt(l[0].size)+"",b,k,y=ln(l[0].mime)+"",S,D,T,j,F,L,N,M,V,P,W;s=new ri({props:{kind:l[8],size:18}});function H(G,Q){return G[2]?Oc:G[3]?Pc:G[6]&&G[1]?Lc:G[5]&&G[1]?Ac:G[4]?Ec:Ic}let R=H(l),K=R(l);return{c(){e=f("div"),t=f("div"),n=f("header"),i=f("div"),st(s.$$.fragment),r=w(),a=f("span"),d=I(u),_=w(),v=f("div"),b=I(g),k=I(" · "),S=I(y),D=w(),T=f("div"),j=f("button"),j.innerHTML='',F=w(),L=f("button"),L.innerHTML='',N=w(),M=f("div"),K.c(),o(a,"class","preview-name svelte-1cw3u0m"),o(a,"title",h=l[0].name),o(i,"class","preview-title svelte-1cw3u0m"),o(v,"class","preview-meta svelte-1cw3u0m"),o(j,"class","action-btn svelte-1cw3u0m"),o(j,"title",m("file.openExternal")),o(j,"aria-label",m("file.openExternal")),o(L,"class","action-btn action-btn-close svelte-1cw3u0m"),o(L,"title","Close"),o(L,"aria-label","Close preview"),o(T,"class","preview-actions svelte-1cw3u0m"),o(n,"class","preview-header svelte-1cw3u0m"),o(M,"class","preview-body svelte-1cw3u0m"),o(t,"class","modal svelte-1cw3u0m"),o(e,"class","overlay svelte-1cw3u0m"),o(e,"role","presentation")},m(G,Q){C(G,e,Q),c(e,t),c(t,n),c(n,i),nt(s,i,null),c(i,r),c(i,a),c(a,d),c(n,_),c(n,v),c(v,b),c(v,k),c(v,S),c(n,D),c(n,T),c(T,j),c(T,F),c(T,L),c(t,N),c(t,M),K.m(M,null),V=!0,P||(W=[E(j,"click",l[9]),E(L,"click",l[10]),E(e,"click",Ct(l[11])),E(e,"keydown",l[12])],P=!0)},p(G,[Q]){(!V||Q&1)&&u!==(u=G[0].name+"")&&U(d,u),(!V||Q&1&&h!==(h=G[0].name))&&o(a,"title",h),(!V||Q&1)&&g!==(g=Jt(G[0].size)+"")&&U(b,g),(!V||Q&1)&&y!==(y=ln(G[0].mime)+"")&&U(S,y),R===(R=H(G))&&K?K.p(G,Q):(K.d(1),K=R(G),K&&(K.c(),K.m(M,null)))},i(G){V||(ce(s.$$.fragment,G),V=!0)},o(G){_e(s.$$.fragment,G),V=!1},d(G){G&&q(e),ot(s),K.d(),P=!1,he(W)}}}function Vc(l,e,t){let n,i,s,{item:r}=e,{content:a=""}=e,{loading:u=!1}=e,{error:d=""}=e;const h=Yt(),_=ci(r);function v(S){S.key==="Escape"&&h("close")}function g(){h("openExternal",r.fileId)}li(()=>{window.addEventListener("keydown",v)}),vl(()=>{window.removeEventListener("keydown",v)});const b=()=>h("close"),k=()=>h("close"),y=S=>{S.key==="Escape"&&(S.preventDefault(),h("close"))};return l.$$set=S=>{"item"in S&&t(0,r=S.item),"content"in S&&t(1,a=S.content),"loading"in S&&t(2,u=S.loading),"error"in S&&t(3,d=S.error)},l.$$.update=()=>{l.$$.dirty&3&&t(6,n=ai(r)&&a&&a.startsWith("data:")),l.$$.dirty&1&&t(5,i=ui(r)||di(r)),l.$$.dirty&1&&t(4,s=fi(r))},[r,a,u,d,s,i,n,h,_,g,b,k,y]}class Hc extends bt{constructor(e){super(),wt(this,e,Vc,Bc,ht,{item:0,content:1,loading:2,error:3})}}function Uc(l){let e,t,n,i,s,r,a,u,d,h,_,v,g,b,k,y,S;return{c(){e=f("div"),t=f("div"),n=f("h3"),i=I(l[0]),s=w(),r=f("p"),a=I(l[1]),u=w(),d=f("div"),h=f("button"),_=I(l[2]),g=w(),b=f("button"),k=I(l[3]),o(n,"class","svelte-1fv6yyk"),o(r,"class","message svelte-1fv6yyk"),o(h,"class",v="btn "+(l[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk"),o(b,"class","btn svelte-1fv6yyk"),o(d,"class","actions svelte-1fv6yyk"),o(t,"class","modal svelte-1fv6yyk"),o(e,"class","overlay svelte-1fv6yyk"),o(e,"role","presentation")},m(D,T){C(D,e,T),c(e,t),c(t,n),c(n,i),c(t,s),c(t,r),c(r,a),c(t,u),c(t,d),c(d,h),c(h,_),c(d,g),c(d,b),c(b,k),y||(S=[E(h,"click",l[6]),E(b,"click",l[7]),E(e,"click",Ct(l[8])),E(e,"keydown",l[9])],y=!0)},p(D,[T]){T&1&&U(i,D[0]),T&2&&U(a,D[1]),T&4&&U(_,D[2]),T&16&&v!==(v="btn "+(D[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk")&&o(h,"class",v),T&8&&U(k,D[3])},i:oe,o:oe,d(D){D&&q(e),y=!1,he(S)}}}function Wc(l,e,t){let{title:n=m("common.confirm")}=e,{message:i=""}=e,{confirmText:s=m("common.delete")}=e,{cancelText:r=m("common.cancel")}=e,{danger:a=!1}=e;const u=Yt(),d=()=>u("confirm"),h=()=>u("cancel"),_=()=>u("cancel"),v=g=>{g.key==="Escape"&&(g.preventDefault(),u("cancel"))};return l.$$set=g=>{"title"in g&&t(0,n=g.title),"message"in g&&t(1,i=g.message),"confirmText"in g&&t(2,s=g.confirmText),"cancelText"in g&&t(3,r=g.cancelText),"danger"in g&&t(4,a=g.danger)},[n,i,s,r,a,u,d,h,_,v]}class Kc extends bt{constructor(e){super(),wt(this,e,Wc,Uc,ht,{title:0,message:1,confirmText:2,cancelText:3,danger:4})}}function Gc(l){let e,t,n;return{c(){e=B("circle"),t=B("line"),n=B("line"),o(e,"cx","12"),o(e,"cy","12"),o(e,"r","10"),o(t,"x1","12"),o(t,"y1","16"),o(t,"x2","12"),o(t,"y2","12"),o(n,"x1","12"),o(n,"y1","8"),o(n,"x2","12.01"),o(n,"y2","8")},m(i,s){C(i,e,s),C(i,t,s),C(i,n,s)},d(i){i&&(q(e),q(t),q(n))}}}function Jc(l){let e,t,n,i;return{c(){e=B("rect"),t=B("polyline"),n=B("line"),i=B("line"),o(e,"x","3"),o(e,"y","5"),o(e,"width","18"),o(e,"height","14"),o(e,"rx","2"),o(t,"points","3 10 21 10"),o(n,"x1","8"),o(n,"y1","5"),o(n,"x2","8"),o(n,"y2","19"),o(i,"x1","16"),o(i,"y1","5"),o(i,"x2","16"),o(i,"y2","19")},m(s,r){C(s,e,r),C(s,t,r),C(s,n,r),C(s,i,r)},d(s){s&&(q(e),q(t),q(n),q(i))}}}function Yc(l){let e,t;return{c(){e=B("path"),t=B("polyline"),o(e,"d","M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"),o(t,"points","13 2 13 9 20 9")},m(n,i){C(n,e,i),C(n,t,i)},d(n){n&&(q(e),q(t))}}}function Xc(l){let e,t;return{c(){e=B("path"),t=B("path"),o(e,"d","M12 20h9"),o(t,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z")},m(n,i){C(n,e,i),C(n,t,i)},d(n){n&&(q(e),q(t))}}}function Zc(l){let e,t,n,i,s;return{c(){e=B("path"),t=B("path"),n=B("line"),i=B("line"),s=B("line"),o(e,"d","M4 19.5A2.5 2.5 0 0 1 6.5 17H20"),o(t,"d","M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"),o(n,"x1","8"),o(n,"y1","7"),o(n,"x2","16"),o(n,"y2","7"),o(i,"x1","8"),o(i,"y1","11"),o(i,"x2","14"),o(i,"y2","11"),o(s,"x1","8"),o(s,"y1","15"),o(s,"x2","12"),o(s,"y2","15")},m(r,a){C(r,e,a),C(r,t,a),C(r,n,a),C(r,i,a),C(r,s,a)},d(r){r&&(q(e),q(t),q(n),q(i),q(s))}}}function Qc(l){let e,t,n,i;return{c(){e=B("path"),t=B("polyline"),n=B("line"),i=B("line"),o(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),o(t,"points","14 2 14 8 20 8"),o(n,"x1","16"),o(n,"y1","13"),o(n,"x2","8"),o(n,"y2","13"),o(i,"x1","16"),o(i,"y1","17"),o(i,"x2","8"),o(i,"y2","17")},m(s,r){C(s,e,r),C(s,t,r),C(s,n,r),C(s,i,r)},d(s){s&&(q(e),q(t),q(n),q(i))}}}function xc(l){let e,t;return{c(){e=B("path"),t=B("circle"),o(e,"d","M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"),o(t,"cx","12"),o(t,"cy","7"),o(t,"r","4")},m(n,i){C(n,e,i),C(n,t,i)},d(n){n&&(q(e),q(t))}}}function $c(l){let e,t,n,i;return{c(){e=B("rect"),t=B("rect"),n=B("rect"),i=B("rect"),o(e,"x","3"),o(e,"y","3"),o(e,"width","7"),o(e,"height","7"),o(e,"rx","1"),o(t,"x","14"),o(t,"y","3"),o(t,"width","7"),o(t,"height","4"),o(t,"rx","1"),o(n,"x","14"),o(n,"y","10"),o(n,"width","7"),o(n,"height","11"),o(n,"rx","1"),o(i,"x","3"),o(i,"y","14"),o(i,"width","7"),o(i,"height","7"),o(i,"rx","1")},m(s,r){C(s,e,r),C(s,t,r),C(s,n,r),C(s,i,r)},d(s){s&&(q(e),q(t),q(n),q(i))}}}function ea(l){let e;return{c(){e=B("path"),o(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){C(t,e,n)},d(t){t&&q(e)}}}function ta(l){let e;function t(s,r){return s[0]==="folder"?ea:s[0]==="project"?$c:s[0]==="client"?xc:s[0]==="document"?Qc:s[0]==="recipe"?Zc:s[0]==="note"?Xc:s[0]==="file"?Yc:s[0]==="case"?Jc:Gc}let n=t(l),i=n(l);return{c(){e=B("svg"),i.c(),o(e,"width",l[1]),o(e,"height",l[1]),o(e,"viewBox","0 0 24 24"),o(e,"fill","none"),o(e,"stroke","currentColor"),o(e,"stroke-width","1.5"),o(e,"stroke-linecap","round"),o(e,"stroke-linejoin","round"),o(e,"xmlns","http://www.w3.org/2000/svg")},m(s,r){C(s,e,r),i.m(e,null)},p(s,[r]){n!==(n=t(s))&&(i.d(1),i=n(s),i&&(i.c(),i.m(e,null))),r&2&&o(e,"width",s[1]),r&2&&o(e,"height",s[1])},i:oe,o:oe,d(s){s&&q(e),i.d()}}}function la(l,e,t){let{kind:n="generic"}=e,{size:i=18}=e;return l.$$set=s=>{"kind"in s&&t(0,n=s.kind),"size"in s&&t(1,i=s.size)},[n,i]}class Xt extends bt{constructor(e){super(),wt(this,e,la,ta,ht,{kind:0,size:1})}}function rn(l,e,t){const n=l.slice();return n[44]=e[t],n}function na(l){let e;return{c(){e=f("span"),o(e,"class","tree-toggle-placeholder svelte-zj71cl")},m(t,n){C(t,e,n)},p:oe,d(t){t&&q(e)}}}function oa(l){let e,t,n=l[1][l[44].id]?"▾":"▸",i,s,r;function a(){return l[25](l[44])}return{c(){e=f("button"),t=f("span"),i=I(n),o(t,"class","tree-arrow"),o(e,"class","tree-toggle svelte-zj71cl")},m(u,d){C(u,e,d),c(e,t),c(t,i),s||(r=E(e,"click",it(a)),s=!0)},p(u,d){l=u,d[0]&3&&n!==(n=l[1][l[44].id]?"▾":"▸")&&U(i,n)},d(u){u&&q(e),s=!1,r()}}}function cn(l){let e,t;return e=new mi({props:{nodes:l[44].children||[],expanded:l[1],selectedNodeId:l[2],level:l[3]+1,onSelect:l[4],onToggle:l[5],onContextMenu:l[6],onDrop:l[7]}}),{c(){st(e.$$.fragment)},m(n,i){nt(e,n,i),t=!0},p(n,i){const s={};i[0]&1&&(s.nodes=n[44].children||[]),i[0]&2&&(s.expanded=n[1]),i[0]&4&&(s.selectedNodeId=n[2]),i[0]&8&&(s.level=n[3]+1),i[0]&16&&(s.onSelect=n[4]),i[0]&32&&(s.onToggle=n[5]),i[0]&64&&(s.onContextMenu=n[6]),i[0]&128&&(s.onDrop=n[7]),e.$set(s)},i(n){t||(ce(e.$$.fragment,n),t=!0)},o(n){_e(e.$$.fragment,n),t=!1},d(n){ot(e,n)}}}function an(l,e){let t,n,i,s,r,a,u,d=e[44].title+"",h,_,v=e[1][e[44].id]&&pl(e[44]),g,b,k,y;function S(Y,X){return X[0]&1&&(n=null),n==null&&(n=!!zt(Y[44])),n?oa:na}let D=S(e,[-1,-1]),T=D(e);r=new Xt({props:{kind:un(e[44]),size:16}});function j(...Y){return e[26](e[44],...Y)}function F(...Y){return e[27](e[44],...Y)}function L(){return e[28](e[44])}function N(...Y){return e[29](e[44],...Y)}function M(...Y){return e[30](e[44],...Y)}function V(...Y){return e[31](e[44],...Y)}function P(...Y){return e[32](e[44],...Y)}function W(...Y){return e[33](e[44],...Y)}function H(...Y){return e[34](e[44],...Y)}function R(...Y){return e[35](e[44],...Y)}function K(...Y){return e[36](e[44],...Y)}function G(...Y){return e[37](e[44],...Y)}let Q=v&&cn(e);return{key:l,first:null,c(){t=f("div"),T.c(),i=w(),s=f("span"),st(r.$$.fragment),a=w(),u=f("span"),h=I(d),_=w(),Q&&Q.c(),g=ut(),o(s,"class","tree-icon svelte-zj71cl"),o(s,"role","button"),o(s,"tabindex","-1"),o(u,"class","tree-label svelte-zj71cl"),o(u,"role","button"),o(u,"tabindex","-1"),o(t,"class","tree-item svelte-zj71cl"),Ve(t,"padding-left",e[3]*16+4+"px"),o(t,"draggable","true"),o(t,"role","button"),o(t,"tabindex","0"),De(t,"selected",e[2]===e[44].id),De(t,"drop-valid",e[8]===e[44].id&&e[9][e[44].id]),De(t,"drop-invalid",e[8]===e[44].id&&!e[9][e[44].id]),this.first=t},m(Y,X){C(Y,t,X),T.m(t,null),c(t,i),c(t,s),nt(r,s,null),c(t,a),c(t,u),c(u,h),C(Y,_,X),Q&&Q.m(Y,X),C(Y,g,X),b=!0,k||(y=[E(s,"click",j),E(s,"keydown",F),E(s,"dblclick",it(e[24])),E(u,"click",it(L)),E(u,"keydown",N),E(t,"dragstart",M),E(t,"dragover",V),E(t,"dragleave",P),E(t,"drop",W),E(t,"click",H),E(t,"keydown",R),E(t,"dblclick",K),E(t,"contextmenu",ml(G))],k=!0)},p(Y,X){e=Y,D===(D=S(e,X))&&T?T.p(e,X):(T.d(1),T=D(e),T&&(T.c(),T.m(t,i)));const J={};X[0]&1&&(J.kind=un(e[44])),r.$set(J),(!b||X[0]&1)&&d!==(d=e[44].title+"")&&U(h,d),(!b||X[0]&8)&&Ve(t,"padding-left",e[3]*16+4+"px"),(!b||X[0]&5)&&De(t,"selected",e[2]===e[44].id),(!b||X[0]&769)&&De(t,"drop-valid",e[8]===e[44].id&&e[9][e[44].id]),(!b||X[0]&769)&&De(t,"drop-invalid",e[8]===e[44].id&&!e[9][e[44].id]),X[0]&3&&(v=e[1][e[44].id]&&pl(e[44])),v?Q?(Q.p(e,X),X[0]&3&&ce(Q,1)):(Q=cn(e),Q.c(),ce(Q,1),Q.m(g.parentNode,g)):Q&&(Qe(),_e(Q,1,1,()=>{Q=null}),xe())},i(Y){b||(ce(r.$$.fragment,Y),ce(Q),b=!0)},o(Y){_e(r.$$.fragment,Y),_e(Q),b=!1},d(Y){Y&&(q(t),q(_),q(g)),T.d(),ot(r),Q&&Q.d(Y),k=!1,he(y)}}}function ia(l){let e=[],t=new Map,n,i,s,r,a=ae(l[0]);const u=d=>d[44].id;for(let d=0;d0:l.has_children===!0}function fn(l){const e={};function t(n,i){for(const s of n)e[s.id]=i,s.children&&t(s.children,s.id)}return t(l,""),e}function dn(l){const e=[];function t(n){for(const i of n)e.push(i),i.children&&t(i.children)}return t(l),e}function sa(l){try{return l.dataTransfer.getData("text/plain")}catch{return""}}function ra(l,e,t){let n,i,s,{nodes:r=[]}=e,{expanded:a={}}=e,{selectedNodeId:u=""}=e,{level:d=0}=e,{onSelect:h=void 0}=e,{onToggle:_=void 0}=e,{onContextMenu:v=void 0}=e,{onDrop:g=void 0}=e,b={},k=null,y="",S="";const D=["folder","project","client","document","recipe","case"];vl(()=>{for(const z of Object.keys(b))clearTimeout(b[z]);k&&clearInterval(k)});function T(z){return D.includes(z.type)}function j(z,Z,de){if(!z||!Z||Z===z.id||!T(z))return!1;let ke=z.id;for(;ke;){if(ke===Z)return!1;ke=de[ke]||""}return!0}function F(z,Z){z.stopPropagation(),z.dataTransfer.effectAllowed="move",z.dataTransfer.setData("text/plain",Z.id),t(21,y=Z.id)}function L(z,Z){z.preventDefault(),z.stopPropagation(),z.dataTransfer.dropEffect="move",S!==Z.id&&t(8,S=Z.id),zt(Z)&&!a[Z.id]&&!b[Z.id]&&(b[Z.id]=setTimeout(()=>{_&&_(Z.id),delete b[Z.id]},600));const de=z.currentTarget.closest(".workspace-tree-area");if(de){const ke=de.getBoundingClientRect(),Te=30;z.clientY-ke.top{de.scrollTop-=10},50)):ke.bottom-z.clientY{de.scrollTop+=10},50)):k&&(clearInterval(k),k=null)}}function N(z,Z){const de=z.relatedTarget;de&&z.currentTarget.contains(de)||(S===Z.id&&t(8,S=""),b[Z.id]&&(clearTimeout(b[Z.id]),delete b[Z.id]),k&&(clearInterval(k),k=null))}function M(z,Z){z.preventDefault(),z.stopPropagation(),b[Z.id]&&(clearTimeout(b[Z.id]),delete b[Z.id]),k&&(clearInterval(k),k=null);const de=dn(r),ke=fn(de),Te=sa(z);if(!j(Z,Te,ke)){t(8,S=""),t(21,y="");return}g&&g(Te,Z.id),t(8,S=""),t(21,y="")}function V(){t(8,S=""),t(21,y="");for(const z of Object.keys(b))clearTimeout(b[z]),delete b[z];k&&(clearInterval(k),k=null)}function P(z,Z){z.target.closest(".tree-toggle")||z.target.closest(".tree-icon")||h&&h(Z)}function W(z,Z){zt(Z)&&_&&_(Z.id)}function H(z,Z){(z.key==="Enter"||z.key===" ")&&(z.preventDefault(),h&&h(Z))}function R(z,Z){z.stopPropagation(),zt(Z)&&_&&_(Z.id)}function K(z,Z){(z.key==="Enter"||z.key===" ")&&(z.preventDefault(),z.stopPropagation(),zt(Z)&&_&&_(Z.id))}function G(z,Z){(z.key==="Enter"||z.key===" ")&&(z.preventDefault(),h&&h(Z))}function Q(z,Z,de){const ke={};function Te(ze){for(const He of ze)ke[He.id]=j(He,Z,de),He.children&&Te(He.children)}return Te(z),ke}function Y(z){ni.call(this,l,z)}const X=z=>_&&_(z.id),J=(z,Z)=>R(Z,z),O=(z,Z)=>K(Z,z),ie=z=>h&&h(z),pe=(z,Z)=>G(Z,z),ee=(z,Z)=>F(Z,z),te=(z,Z)=>L(Z,z),le=(z,Z)=>N(Z,z),ve=(z,Z)=>M(Z,z),we=(z,Z)=>P(Z,z),Me=(z,Z)=>H(Z,z),Le=(z,Z)=>W(Z,z),Ie=(z,Z)=>v&&v(Z,z);return l.$$set=z=>{"nodes"in z&&t(0,r=z.nodes),"expanded"in z&&t(1,a=z.expanded),"selectedNodeId"in z&&t(2,u=z.selectedNodeId),"level"in z&&t(3,d=z.level),"onSelect"in z&&t(4,h=z.onSelect),"onToggle"in z&&t(5,_=z.onToggle),"onContextMenu"in z&&t(6,v=z.onContextMenu),"onDrop"in z&&t(7,g=z.onDrop)},l.$$.update=()=>{l.$$.dirty[0]&1&&t(23,n=dn(r)),l.$$.dirty[0]&8388608&&t(22,i=fn(n)),l.$$.dirty[0]&14680064&&t(9,s=Q(n,y,i))},[r,a,u,d,h,_,v,g,S,s,F,L,N,M,V,P,W,H,R,K,G,y,i,n,Y,X,J,O,ie,pe,ee,te,le,ve,we,Me,Le,Ie]}class mi extends bt{constructor(e){super(),wt(this,e,ra,ia,ht,{nodes:0,expanded:1,selectedNodeId:2,level:3,onSelect:4,onToggle:5,onContextMenu:6,onDrop:7},null,[-1,-1])}}function pn(l,e,t){const n=l.slice();return n[271]=e[t],n}function mn(l,e,t){const n=l.slice();return n[274]=e[t],n}function _n(l,e,t){const n=l.slice();return n[274]=e[t],n}function vn(l,e,t){const n=l.slice();return n[298]=e[t],n}function hn(l,e,t){const n=l.slice();return n[298]=e[t],n}function wn(l,e,t){const n=l.slice();return n[318]=e[t],n}function bn(l,e,t){const n=l.slice();return n[298]=e[t],n}function gn(l,e,t){const n=l.slice();return n[295]=e[t],n[323]=e,n[324]=t,n}function kn(l,e,t){const n=l.slice();return n[304]=e[t],n}function yn(l,e,t){const n=l.slice();return n[307]=e[t],n}function qn(l,e,t){const n=l.slice();return n[307]=e[t],n}function Cn(l,e,t){const n=l.slice();return n[295]=e[t],n[312]=e,n[313]=t,n}function Sn(l,e,t){const n=l.slice();return n[304]=e[t],n}function jn(l,e,t){const n=l.slice();return n[298]=e[t],n}function Tn(l,e,t){const n=l.slice();return n[279]=e[t],n}function Nn(l,e,t){const n=l.slice();return n[295]=e[t],n}function Dn(l,e,t){const n=l.slice();return n[290]=e[t],n}function Mn(l,e,t){const n=l.slice();return n[287]=e[t],n}function Fn(l,e,t){const n=l.slice();return n[282]=e[t],n}function In(l,e,t){const n=l.slice();return n[279]=e[t],n}function En(l,e,t){const n=l.slice();return n[282]=e[t],n}function An(l,e,t){const n=l.slice();return n[301]=e[t],n}function Ln(l,e,t){const n=l.slice();return n[327]=e[t],n}function Pn(l,e,t){const n=l.slice();return n[330]=e[t],n}function On(l){let e,t;return{c(){e=f("span"),t=I(l[30]),o(e,"class","nav-badge svelte-rw0qo2")},m(n,i){C(n,e,i),c(e,t)},p(n,i){i[0]&1073741824&&U(t,n[30])},d(n){n&&q(e)}}}function zn(l){let e,t=l[330].label+"",n,i,s,r,a,u,d=l[330].id==="journal"&&l[30]>0&&On(l);function h(){return l[154](l[330])}return{c(){e=f("button"),n=I(t),i=w(),d&&d.c(),s=w(),o(e,"class",r="nav-item "+(l[20]===l[330].id?"selected":"")+" svelte-rw0qo2")},m(_,v){C(_,e,v),c(e,n),c(e,i),d&&d.m(e,null),c(e,s),a||(u=E(e,"click",h),a=!0)},p(_,v){l=_,v[0]&1&&t!==(t=l[330].label+"")&&U(n,t),l[330].id==="journal"&&l[30]>0?d?d.p(l,v):(d=On(l),d.c(),d.m(e,s)):d&&(d.d(1),d=null),v[0]&1048577&&r!==(r="nav-item "+(l[20]===l[330].id?"selected":"")+" svelte-rw0qo2")&&o(e,"class",r)},d(_){_&&q(e),d&&d.d(),a=!1,u()}}}function ca(l){let e;return{c(){e=f("div"),e.textContent=`${m("nav.noNodes")}`,o(e,"class","nav-empty svelte-rw0qo2")},m(t,n){C(t,e,n)},p:oe,i:oe,o:oe,d(t){t&&q(e)}}}function aa(l){var r;let e,t,n,i,s;return t=new mi({props:{nodes:l[1],expanded:l[46],selectedNodeId:((r=l[21])==null?void 0:r.id)||"",onSelect:l[77],onToggle:l[107],onContextMenu:l[105],onDrop:l[108]}}),{c(){e=f("div"),st(t.$$.fragment),o(e,"class","workspace-tree-area svelte-rw0qo2"),o(e,"role","region"),o(e,"aria-label",m("nav.workspace")),De(e,"drop-valid",l[57])},m(a,u){C(a,e,u),nt(t,e,null),n=!0,i||(s=[E(e,"dragover",ml(l[110])),E(e,"dragleave",l[111]),E(e,"drop",l[109])],i=!0)},p(a,u){var h;const d={};u[0]&2&&(d.nodes=a[1]),u[1]&32768&&(d.expanded=a[46]),u[0]&2097152&&(d.selectedNodeId=((h=a[21])==null?void 0:h.id)||""),t.$set(d),(!n||u[1]&67108864)&&De(e,"drop-valid",a[57])},i(a){n||(ce(t.$$.fragment,a),n=!0)},o(a){_e(t.$$.fragment,a),n=!1},d(a){a&&q(e),ot(t),i=!1,he(s)}}}function ua(l){let e;return{c(){e=f("span"),e.textContent=`${m("nav.selectPrompt")}`,o(e,"class","crumb placeholder svelte-rw0qo2")},m(t,n){C(t,e,n)},p:oe,d(t){t&&q(e)}}}function fa(l){let e,t=ae(l[0]),n=[];for(let i=0;i0&&Vn(l);return{c(){e=f("button"),t=B("svg"),n=B("polyline"),i=B("polyline"),s=B("path"),r=w(),d&&d.c(),o(n,"points","23 4 23 10 17 10"),o(n,"class","svelte-rw0qo2"),o(i,"points","1 20 1 14 7 14"),o(i,"class","svelte-rw0qo2"),o(s,"d","M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"),o(s,"class","svelte-rw0qo2"),o(t,"width","16"),o(t,"height","16"),o(t,"viewBox","0 0 24 24"),o(t,"fill","none"),o(t,"stroke","currentColor"),o(t,"stroke-width","2"),o(t,"stroke-linecap","round"),o(t,"stroke-linejoin","round"),o(t,"class","svelte-rw0qo2"),o(e,"class","header-sync-btn svelte-rw0qo2"),e.disabled=l[68],o(e,"title",m("nav.syncNow"))},m(h,_){C(h,e,_),c(e,t),c(t,n),c(t,i),c(t,s),c(e,r),d&&d.m(e,null),a||(u=E(e,"click",l[152]),a=!0)},p(h,_){h[67].unpushedOps>0?d?d.p(h,_):(d=Vn(h),d.c(),d.m(e,null)):d&&(d.d(1),d=null),_[2]&64&&(e.disabled=h[68])},d(h){h&&q(e),d&&d.d(),a=!1,u()}}}function Vn(l){let e,t=l[67].unpushedOps+"",n;return{c(){e=f("span"),n=I(t),o(e,"class","sync-badge svelte-rw0qo2")},m(i,s){C(i,e,s),c(e,n)},p(i,s){s[2]&32&&t!==(t=i[67].unpushedOps+"")&&U(n,t)},d(i){i&&q(e)}}}function Hn(l){let e,t,n,i,s,r;return{c(){e=f("div"),t=I(l[19]),n=w(),i=f("button"),i.innerHTML='',o(i,"class","dismiss-btn svelte-rw0qo2"),o(i,"aria-label","Dismiss"),o(e,"class","error-banner svelte-rw0qo2"),o(e,"role","button"),o(e,"tabindex","0")},m(a,u){C(a,e,u),c(e,t),c(e,n),c(e,i),s||(r=[E(i,"click",it(l[155])),E(e,"click",l[156]),E(e,"keydown",function(){Ht(at(l[157]))&&at(l[157]).apply(this,arguments)})],s=!0)},p(a,u){l=a,u[0]&524288&&U(t,l[19])},d(a){a&&q(e),s=!1,he(r)}}}function pa(l){let e,t,n;function i(a,u){if(a[42])return ka;if(a[0].length>0)return ga;if(a[19])return ba}let s=i(l),r=s&&s(l);return{c(){e=f("div"),t=f("h2"),t.textContent=`${m("welcome.title")}`,n=w(),r&&r.c(),o(t,"class","svelte-rw0qo2"),o(e,"class","welcome svelte-rw0qo2")},m(a,u){C(a,e,u),c(e,t),c(e,n),r&&r.m(e,null)},p(a,u){s===(s=i(a))&&r?r.p(a,u):(r&&r.d(1),r=s&&s(a),r&&(r.c(),r.m(e,null)))},i:oe,o:oe,d(a){a&&q(e),r&&r.d()}}}function ma(l){let e,t,n,i;function s(u,d){return u[4].length===0?qa:ya}let r=s(l),a=r(l);return{c(){e=f("div"),t=f("div"),n=f("h2"),n.textContent=`${m("activity.title")}`,i=w(),a.c(),o(n,"class","svelte-rw0qo2"),o(t,"class","activity-feed-header svelte-rw0qo2"),o(e,"class","activity-feed svelte-rw0qo2")},m(u,d){C(u,e,d),c(e,t),c(t,n),c(e,i),a.m(e,null)},p(u,d){r===(r=s(u))&&a?a.p(u,d):(a.d(1),a=r(u),a&&(a.c(),a.m(e,null)))},i:oe,o:oe,d(u){u&&q(e),a.d()}}}function _a(l){let e,t,n,i,s,r=l[3].date+"",a,u,d,h,_=l[3].summary&&Kn(l),v=l[29].length>0&&Xn(l);function g(y,S){return y[3].groups&&y[3].groups.length>0?Sa:Ca}let b=g(l),k=b(l);return{c(){e=f("div"),t=f("div"),n=f("h2"),n.textContent=`${m("today.title")}`,i=w(),s=f("span"),a=I(r),u=w(),_&&_.c(),d=w(),v&&v.c(),h=w(),k.c(),o(n,"class","svelte-rw0qo2"),o(s,"class","today-date svelte-rw0qo2"),o(t,"class","today-header svelte-rw0qo2"),o(e,"class","today-dashboard svelte-rw0qo2")},m(y,S){C(y,e,S),c(e,t),c(t,n),c(t,i),c(t,s),c(s,a),c(e,u),_&&_.m(e,null),c(e,d),v&&v.m(e,null),c(e,h),k.m(e,null)},p(y,S){S[0]&8&&r!==(r=y[3].date+"")&&U(a,r),y[3].summary?_?_.p(y,S):(_=Kn(y),_.c(),_.m(e,d)):_&&(_.d(1),_=null),y[29].length>0?v?v.p(y,S):(v=Xn(y),v.c(),v.m(e,h)):v&&(v.d(1),v=null),b===(b=g(y))&&k?k.p(y,S):(k.d(1),k=b(y),k&&(k.c(),k.m(e,null)))},i:oe,o:oe,d(y){y&&q(e),_&&_.d(),v&&v.d(),k.d()}}}function va(l){let e,t,n,i,s,r,a,u,d,h,_,v,g,b,k,y,S,D,T,j,F,L,N,M,V,P,W,H,R,K,G,Q,Y,X,J,O,ie,pe,ee,te,le,ve,we,Me,Le,Ie,z,Z,de,ke,Te,ze,He,tt;function Ee(fe,me){return fe[13]?Da:Na}let ye=Ee(l),ue=ye(l),re=l[29].length>0&&io(l),se=l[6]&&ro(l);function Ne(fe,me){return fe[5].length===0?Fa:Ma}let Se=Ne(l),qe=Se(l);return{c(){e=f("div"),t=f("div"),n=f("h2"),n.textContent=`${m("journal.title")}`,i=w(),s=f("div"),r=f("label"),a=f("span"),a.textContent=`${m("journal.dateFrom")}`,u=w(),d=f("input"),h=w(),_=f("label"),v=f("span"),v.textContent=`${m("journal.dateTo")}`,g=w(),b=f("input"),k=w(),y=f("label"),S=f("span"),S.textContent=`${m("journal.node")}`,D=w(),T=f("div"),ue.c(),j=w(),F=f("label"),L=f("input"),M=w(),V=f("span"),V.textContent=`${m("journal.includeChildren")}`,P=w(),W=f("label"),H=f("span"),H.textContent=`${m("journal.billable")}`,R=w(),K=f("select"),G=f("option"),G.textContent=`${m("common.all")}`,Q=f("option"),Q.textContent=`${m("journal.billable")}`,Y=f("option"),Y.textContent=`${m("common.no")}`,X=w(),J=f("label"),O=f("span"),O.textContent=`${m("journal.approximate")}`,ie=w(),pe=f("select"),ee=f("option"),ee.textContent=`${m("common.all")}`,te=f("option"),te.textContent=`${m("journal.approximate")}`,le=f("option"),le.textContent=`${m("common.no")}`,ve=w(),we=f("button"),we.textContent=`${m("journal.filter")}`,Me=w(),Le=f("button"),Le.textContent=`${m("journal.exportCSV")}`,Ie=w(),z=f("button"),z.textContent=`${m("journal.exportMarkdown")}`,Z=w(),de=f("button"),de.textContent="PDF",ke=w(),re&&re.c(),Te=w(),se&&se.c(),ze=w(),qe.c(),o(n,"class","svelte-rw0qo2"),o(a,"class","label-text svelte-rw0qo2"),o(d,"type","date"),o(d,"class","svelte-rw0qo2"),o(r,"class","svelte-rw0qo2"),o(v,"class","label-text svelte-rw0qo2"),o(b,"type","date"),o(b,"class","svelte-rw0qo2"),o(_,"class","svelte-rw0qo2"),o(S,"class","label-text svelte-rw0qo2"),o(T,"class","journal-node-picker svelte-rw0qo2"),Ve(T,"position","relative"),o(y,"class","svelte-rw0qo2"),o(L,"type","checkbox"),L.disabled=N=!l[10],o(L,"class","svelte-rw0qo2"),o(V,"class","svelte-rw0qo2"),o(F,"class","checkbox-label svelte-rw0qo2"),o(H,"class","label-text svelte-rw0qo2"),G.__value="all",Ce(G,G.__value),o(G,"class","svelte-rw0qo2"),Q.__value="yes",Ce(Q,Q.__value),o(Q,"class","svelte-rw0qo2"),Y.__value="no",Ce(Y,Y.__value),o(Y,"class","svelte-rw0qo2"),o(K,"class","svelte-rw0qo2"),l[11]===void 0&&Ft(()=>l[196].call(K)),o(W,"class","svelte-rw0qo2"),o(O,"class","label-text svelte-rw0qo2"),ee.__value="all",Ce(ee,ee.__value),o(ee,"class","svelte-rw0qo2"),te.__value="yes",Ce(te,te.__value),o(te,"class","svelte-rw0qo2"),le.__value="no",Ce(le,le.__value),o(le,"class","svelte-rw0qo2"),o(pe,"class","svelte-rw0qo2"),l[12]===void 0&&Ft(()=>l[197].call(pe)),o(J,"class","svelte-rw0qo2"),o(we,"class","btn btn-sm svelte-rw0qo2"),o(Le,"class","btn btn-sm svelte-rw0qo2"),o(z,"class","btn btn-sm svelte-rw0qo2"),o(de,"class","btn btn-sm svelte-rw0qo2"),o(s,"class","journal-filters svelte-rw0qo2"),o(t,"class","journal-header svelte-rw0qo2"),o(e,"class","journal-screen svelte-rw0qo2")},m(fe,me){C(fe,e,me),c(e,t),c(t,n),c(t,i),c(t,s),c(s,r),c(r,a),c(r,u),c(r,d),Ce(d,l[7]),c(s,h),c(s,_),c(_,v),c(_,g),c(_,b),Ce(b,l[8]),c(s,k),c(s,y),c(y,S),c(y,D),c(y,T),ue.m(T,null),c(s,j),c(s,F),c(F,L),L.checked=l[9],c(F,M),c(F,V),c(s,P),c(s,W),c(W,H),c(W,R),c(W,K),c(K,G),c(K,Q),c(K,Y),Dt(K,l[11],!0),c(s,X),c(s,J),c(J,O),c(J,ie),c(J,pe),c(pe,ee),c(pe,te),c(pe,le),Dt(pe,l[12],!0),c(s,ve),c(s,we),c(s,Me),c(s,Le),c(s,Ie),c(s,z),c(s,Z),c(s,de),c(e,ke),re&&re.m(e,null),c(e,Te),se&&se.m(e,null),c(e,ze),qe.m(e,null),He||(tt=[E(d,"input",l[189]),E(b,"input",l[190]),E(L,"change",l[195]),E(K,"change",l[196]),E(pe,"change",l[197]),E(we,"click",l[126]),E(Le,"click",l[127]),E(z,"click",l[128]),E(de,"click",l[129])],He=!0)},p(fe,me){me[0]&128&&Ce(d,fe[7]),me[0]&256&&Ce(b,fe[8]),ye===(ye=Ee(fe))&&ue?ue.p(fe,me):(ue.d(1),ue=ye(fe),ue&&(ue.c(),ue.m(T,null))),me[0]&1024&&N!==(N=!fe[10])&&(L.disabled=N),me[0]&512&&(L.checked=fe[9]),me[0]&2048&&Dt(K,fe[11]),me[0]&4096&&Dt(pe,fe[12]),fe[29].length>0?re?re.p(fe,me):(re=io(fe),re.c(),re.m(e,Te)):re&&(re.d(1),re=null),fe[6]?se?se.p(fe,me):(se=ro(fe),se.c(),se.m(e,ze)):se&&(se.d(1),se=null),Se===(Se=Ne(fe))&&qe?qe.p(fe,me):(qe.d(1),qe=Se(fe),qe&&(qe.c(),qe.m(e,null)))},i:oe,o:oe,d(fe){fe&&q(e),ue.d(),re&&re.d(),se&&se.d(),qe.d(),He=!1,he(tt)}}}function ha(l){let e,t,n,i,s,r,a=ae(l[75]),u=[];for(let v=0;v{h[b]=null}),xe()),~i?(s=h[i],s?s.p(v,g):(s=h[i]=d[i](v),s.c()),ce(s,1),s.m(n,null)):s=null)},i(v){r||(ce(s),r=!0)},o(v){_e(s),r=!1},d(v){v&&(q(e),q(t),q(n)),Oe(u,v),~i&&h[i].d()}}}function wa(l){let e,t,n,i=l[24].title+"",s,r,a,u,d,h,_,v,g,b,k,y=l[24].dirty&&Eo();return{c(){e=f("div"),t=f("div"),n=f("span"),s=I(i),r=w(),y&&y.c(),a=w(),u=f("div"),d=f("button"),d.textContent=`${m("common.save")}`,h=w(),_=f("button"),_.textContent=`${m("common.close")}`,v=w(),g=f("textarea"),o(n,"class","note-title svelte-rw0qo2"),o(d,"class","btn btn-primary svelte-rw0qo2"),o(_,"class","btn svelte-rw0qo2"),o(u,"class","note-editor-actions svelte-rw0qo2"),o(t,"class","note-editor-header svelte-rw0qo2"),o(g,"class","note-textarea svelte-rw0qo2"),o(g,"placeholder",m("note.placeholder")),o(e,"class","note-editor svelte-rw0qo2")},m(S,D){C(S,e,D),c(e,t),c(t,n),c(n,s),c(t,r),y&&y.m(t,null),c(t,a),c(t,u),c(u,d),c(u,h),c(u,_),c(e,v),c(e,g),Ce(g,l[24].content),b||(k=[E(d,"click",l[122]),E(_,"click",l[120]),E(g,"input",l[158]),E(g,"input",l[121])],b=!0)},p(S,D){D[0]&16777216&&i!==(i=S[24].title+"")&&U(s,i),S[24].dirty?y||(y=Eo(),y.c(),y.m(t,a)):y&&(y.d(1),y=null),D[0]&16777216&&Ce(g,S[24].content)},i:oe,o:oe,d(S){S&&q(e),y&&y.d(),b=!1,he(k)}}}function ba(l){let e,t=m("common.error")+"",n,i,s;return{c(){e=f("p"),n=I(t),i=w(),s=I(l[19]),o(e,"class","error-text svelte-rw0qo2")},m(r,a){C(r,e,a),c(e,n),c(e,i),c(e,s)},p(r,a){a[0]&524288&&U(s,r[19])},d(r){r&&q(e)}}}function ga(l){let e,t,n;return{c(){e=f("p"),e.textContent=`${m("welcome.selectSection")}`,t=w(),n=f("p"),n.textContent=`${m("welcome.createCase")}`,o(e,"class","svelte-rw0qo2"),o(n,"class","hint svelte-rw0qo2")},m(i,s){C(i,e,s),C(i,t,s),C(i,n,s)},p:oe,d(i){i&&(q(e),q(t),q(n))}}}function ka(l){let e;return{c(){e=f("p"),e.textContent=`${m("common.loading")}`,o(e,"class","svelte-rw0qo2")},m(t,n){C(t,e,n)},p:oe,d(t){t&&q(e)}}}function ya(l){let e,t=ae(l[4]),n=[];for(let i=0;i0&&Gn(l),s=l[3].summary.notes>0&&Jn(l),r=l[3].summary.files>0&&Yn(l);return{c(){e=f("div"),i&&i.c(),t=w(),s&&s.c(),n=w(),r&&r.c(),o(e,"class","today-summary svelte-rw0qo2")},m(a,u){C(a,e,u),i&&i.m(e,null),c(e,t),s&&s.m(e,null),c(e,n),r&&r.m(e,null)},p(a,u){a[3].summary.changedCases>0?i?i.p(a,u):(i=Gn(a),i.c(),i.m(e,t)):i&&(i.d(1),i=null),a[3].summary.notes>0?s?s.p(a,u):(s=Jn(a),s.c(),s.m(e,n)):s&&(s.d(1),s=null),a[3].summary.files>0?r?r.p(a,u):(r=Yn(a),r.c(),r.m(e,null)):r&&(r.d(1),r=null)},d(a){a&&q(e),i&&i.d(),s&&s.d(),r&&r.d()}}}function Gn(l){let e,t=l[3].summary.changedCases+"",n,i,s=vt(l[3].summary.changedCases,m("today.plural.case_one"),m("today.plural.case_few"),m("today.plural.case_many"))+"",r;return{c(){e=f("span"),n=I(t),i=w(),r=I(s),o(e,"class","summary-chip svelte-rw0qo2")},m(a,u){C(a,e,u),c(e,n),c(e,i),c(e,r)},p(a,u){u[0]&8&&t!==(t=a[3].summary.changedCases+"")&&U(n,t),u[0]&8&&s!==(s=vt(a[3].summary.changedCases,m("today.plural.case_one"),m("today.plural.case_few"),m("today.plural.case_many"))+"")&&U(r,s)},d(a){a&&q(e)}}}function Jn(l){let e,t=l[3].summary.notes+"",n,i,s=vt(l[3].summary.notes,m("today.plural.note_one"),m("today.plural.note_few"),m("today.plural.note_many"))+"",r;return{c(){e=f("span"),n=I(t),i=w(),r=I(s),o(e,"class","summary-chip svelte-rw0qo2")},m(a,u){C(a,e,u),c(e,n),c(e,i),c(e,r)},p(a,u){u[0]&8&&t!==(t=a[3].summary.notes+"")&&U(n,t),u[0]&8&&s!==(s=vt(a[3].summary.notes,m("today.plural.note_one"),m("today.plural.note_few"),m("today.plural.note_many"))+"")&&U(r,s)},d(a){a&&q(e)}}}function Yn(l){let e,t=l[3].summary.files+"",n,i,s=vt(l[3].summary.files,m("today.plural.file_one"),m("today.plural.file_few"),m("today.plural.file_many"))+"",r;return{c(){e=f("span"),n=I(t),i=w(),r=I(s),o(e,"class","summary-chip svelte-rw0qo2")},m(a,u){C(a,e,u),c(e,n),c(e,i),c(e,r)},p(a,u){u[0]&8&&t!==(t=a[3].summary.files+"")&&U(n,t),u[0]&8&&s!==(s=vt(a[3].summary.files,m("today.plural.file_one"),m("today.plural.file_few"),m("today.plural.file_many"))+"")&&U(r,s)},d(a){a&&q(e)}}}function Xn(l){let e,t,n,i=ae(l[29]),s=[];for(let r=0;r0&&to(l);return{c(){for(let r=0;r0?s?s.p(r,a):(s=to(r),s.c(),s.m(t.parentNode,t)):s&&(s.d(1),s=null)},d(r){r&&(q(e),q(t)),Oe(i,r),s&&s.d(r)}}}function Qn(l){let e,t=l[318].events.length+"",n,i,s=vt(l[318].events.length,m("today.plural.event_one"),m("today.plural.event_few"),m("today.plural.event_many"))+"",r;return{c(){e=f("span"),n=I(t),i=w(),r=I(s),o(e,"class","today-case-count svelte-rw0qo2")},m(a,u){C(a,e,u),c(e,n),c(e,i),c(e,r)},p(a,u){u[0]&8&&t!==(t=a[318].events.length+"")&&U(n,t),u[0]&8&&s!==(s=vt(a[318].events.length,m("today.plural.event_one"),m("today.plural.event_few"),m("today.plural.event_many"))+"")&&U(r,s)},d(a){a&&q(e)}}}function ja(l){let e;return{c(){e=f("div"),e.textContent=`${m("today.changedCases")}`,o(e,"class","today-events-empty svelte-rw0qo2")},m(t,n){C(t,e,n)},p:oe,d(t){t&&q(e)}}}function Ta(l){let e,t=ae(l[318].events),n=[];for(let i=0;i0?Ta:ja}let L=F(l),N=L(l);return{c(){e=f("div"),t=f("div"),n=f("span"),s=I(i),r=w(),a=f("span"),d=I(u),h=w(),D&&D.c(),_=w(),v=f("span"),b=I(g),k=w(),N.c(),o(n,"class","today-case-title svelte-rw0qo2"),o(a,"class","today-case-type svelte-rw0qo2"),o(v,"class","today-case-time svelte-rw0qo2"),o(t,"class","today-case-header svelte-rw0qo2"),o(t,"role","button"),o(t,"tabindex","0"),o(e,"class","today-case svelte-rw0qo2")},m(M,V){C(M,e,V),c(e,t),c(t,n),c(n,s),c(t,r),c(t,a),c(a,d),c(t,h),D&&D.m(t,null),c(t,_),c(t,v),c(v,b),c(e,k),N.m(e,null),y||(S=[E(t,"click",T),E(t,"keydown",j)],y=!0)},p(M,V){l=M,V[0]&8&&i!==(i=l[318].nodeTitle+"")&&U(s,i),V[0]&8&&u!==(u=l[139](l[318].nodeKind)+"")&&U(d,u),l[318].events?D?D.p(l,V):(D=Qn(l),D.c(),D.m(t,_)):D&&(D.d(1),D=null),V[0]&8&&g!==(g=pt(l[318].lastActivityAt)+"")&&U(b,g),L===(L=F(l))&&N?N.p(l,V):(N.d(1),N=L(l),N&&(N.c(),N.m(e,null)))},d(M){M&&q(e),D&&D.d(),N.d(),y=!1,he(S)}}}function to(l){let e,t,n,i=ae(l[3].events),s=[];for(let r=0;r0&&co(l),F=l[6].byNode&&l[6].byNode.length>0&&uo(l);return{c(){e=f("div"),t=f("div"),i=I(n),s=I(": "),a=I(r),u=I("ч "),h=I(d),_=I("м ("),g=I(v),b=w(),y=I(k),S=I(")"),D=w(),j&&j.c(),T=w(),F&&F.c(),o(t,"class","summary-total svelte-rw0qo2"),o(e,"class","journal-summary svelte-rw0qo2")},m(L,N){C(L,e,N),c(e,t),c(t,i),c(t,s),c(t,a),c(t,u),c(t,h),c(t,_),c(t,g),c(t,b),c(t,y),c(t,S),c(e,D),j&&j.m(e,null),c(e,T),F&&F.m(e,null)},p(L,N){N[0]&64&&r!==(r=Math.floor(L[6].totalMinutes/60)+"")&&U(a,r),N[0]&64&&d!==(d=L[6].totalMinutes%60+"")&&U(h,d),N[0]&64&&v!==(v=L[6].totalEntries+"")&&U(g,v),L[6].byDay&&L[6].byDay.length>0?j?j.p(L,N):(j=co(L),j.c(),j.m(e,T)):j&&(j.d(1),j=null),L[6].byNode&&L[6].byNode.length>0?F?F.p(L,N):(F=uo(L),F.c(),F.m(e,null)):F&&(F.d(1),F=null)},d(L){L&&q(e),j&&j.d(),F&&F.d()}}}function co(l){let e,t,n,i=ae(l[6].byDay),s=[];for(let r=0;r0,g,b,k,y=v&&bo(l);function S(j,F){return j[26].length===0?Va:Ba}let D=S(l),T=D(l);return{c(){e=f("div"),t=f("div"),n=f("input"),i=w(),s=f("input"),r=w(),a=f("button"),d=I(u),_=w(),y&&y.c(),g=w(),T.c(),o(n,"type","text"),o(n,"placeholder",m("worklog.whatDone")),o(n,"class","svelte-rw0qo2"),o(s,"type","number"),o(s,"placeholder",m("worklog.minutes")),o(s,"min","1"),o(s,"class","svelte-rw0qo2"),o(a,"class","btn btn-primary svelte-rw0qo2"),a.disabled=h=!l[28].trim()||!l[27],o(t,"class","worklog-form svelte-rw0qo2"),o(e,"class","worklog-tab svelte-rw0qo2")},m(j,F){C(j,e,F),c(e,t),c(t,n),Ce(n,l[28]),c(t,i),c(t,s),Ce(s,l[27]),c(t,r),c(t,a),c(a,d),c(e,_),y&&y.m(e,null),c(e,g),T.m(e,null),b||(k=[E(n,"input",l[185]),E(s,"input",l[186]),E(a,"click",l[123])],b=!0)},p(j,F){F[0]&268435456&&n.value!==j[28]&&Ce(n,j[28]),F[0]&134217728&&Gt(s.value)!==j[27]&&Ce(s,j[27]),F[0]&402653184&&h!==(h=!j[28].trim()||!j[27])&&(a.disabled=h),F[0]&538968064&&(v=j[21]&&j[29].filter(j[153]).length>0),v?y?y.p(j,F):(y=bo(j),y.c(),y.m(e,g)):y&&(y.d(1),y=null),D===(D=S(j))&&T?T.p(j,F):(T.d(1),T=D(j),T&&(T.c(),T.m(e,null)))},i:oe,o:oe,d(j){j&&q(e),y&&y.d(),T.d(),b=!1,he(k)}}}function Aa(l){let e,t,n,i,s,r;function a(h,_){return h[25].length===0?Ua:Ha}let u=a(l),d=u(l);return{c(){e=f("div"),t=f("div"),n=f("button"),n.textContent=`${m("action.addAction")}`,i=w(),d.c(),o(n,"class","btn btn-primary svelte-rw0qo2"),o(t,"class","tab-toolbar svelte-rw0qo2"),o(e,"class","actions-tab svelte-rw0qo2")},m(h,_){C(h,e,_),c(e,t),c(t,n),c(e,i),d.m(e,null),s||(r=E(n,"click",l[140]),s=!0)},p(h,_){u===(u=a(h))&&d?d.p(h,_):(d.d(1),d=u(h),d&&(d.c(),d.m(e,null)))},i:oe,o:oe,d(h){h&&q(e),d.d(),s=!1,r()}}}function La(l){let e,t,n,i=m("file.addFile")+"",s,r,a,u=m("file.addFolder")+"",d,h,_,v,g,b,k,y,S,D,T,j,F,L=l[55].items.length>0&&qo(l);const N=[Ka,Wa],M=[];function V(H,R){return H[47]?0:1}b=V(l),k=M[b]=N[b](l);let P=l[43]&&!l[45]&&So(),W=l[51]&&jo(l);return{c(){e=f("div"),t=f("div"),n=f("button"),s=I(i),r=w(),a=f("button"),d=I(u),h=w(),_=f("button"),_.textContent=`${m("file.newFile")}`,v=w(),L&&L.c(),g=w(),k.c(),y=w(),P&&P.c(),S=w(),W&&W.c(),D=ut(),o(n,"class","btn btn-primary svelte-rw0qo2"),n.disabled=l[43],o(a,"class","btn svelte-rw0qo2"),a.disabled=l[43],o(_,"class","btn svelte-rw0qo2"),o(t,"class","tab-toolbar svelte-rw0qo2"),o(e,"class","files-tab svelte-rw0qo2")},m(H,R){C(H,e,R),c(e,t),c(t,n),c(n,s),c(t,r),c(t,a),c(a,d),c(t,h),c(t,_),c(t,v),L&&L.m(t,null),c(e,g),M[b].m(e,null),c(e,y),P&&P.m(e,null),C(H,S,R),W&&W.m(H,R),C(H,D,R),T=!0,j||(F=[E(n,"click",l[133]),E(a,"click",l[134]),E(_,"click",l[84])],j=!0)},p(H,R){(!T||R[1]&4096)&&(n.disabled=H[43]),(!T||R[1]&4096)&&(a.disabled=H[43]),H[55].items.length>0?L?L.p(H,R):(L=qo(H),L.c(),L.m(t,null)):L&&(L.d(1),L=null);let K=b;b=V(H),b===K?M[b].p(H,R):(Qe(),_e(M[K],1,1,()=>{M[K]=null}),xe(),k=M[b],k?k.p(H,R):(k=M[b]=N[b](H),k.c()),ce(k,1),k.m(e,y)),H[43]&&!H[45]?P||(P=So(),P.c(),P.m(e,null)):P&&(P.d(1),P=null),H[51]?W?(W.p(H,R),R[1]&1048576&&ce(W,1)):(W=jo(H),W.c(),ce(W,1),W.m(D.parentNode,D)):W&&(Qe(),_e(W,1,1,()=>{W=null}),xe())},i(H){T||(ce(k),ce(W),T=!0)},o(H){_e(k),_e(W),T=!1},d(H){H&&(q(e),q(S),q(D)),L&&L.d(),M[b].d(),P&&P.d(),W&&W.d(H),j=!1,he(F)}}}function Pa(l){let e,t,n,i,s,r,a,u=l[36]&&To(l);function d(v,g){return v[23].length===0&&!v[36]?Qa:Za}let h=d(l),_=h(l);return{c(){e=f("div"),t=f("div"),n=f("button"),n.textContent=`${m("note.add")}`,i=w(),u&&u.c(),s=w(),_.c(),o(n,"class","btn btn-primary svelte-rw0qo2"),o(t,"class","tab-toolbar svelte-rw0qo2"),o(e,"class","notes-tab svelte-rw0qo2")},m(v,g){C(v,e,g),c(e,t),c(t,n),c(e,i),u&&u.m(e,null),c(e,s),_.m(e,null),r||(a=E(n,"click",l[116]),r=!0)},p(v,g){v[36]?u?u.p(v,g):(u=To(v),u.c(),u.m(e,s)):u&&(u.d(1),u=null),h===(h=d(v))&&_?_.p(v,g):(_.d(1),_=h(v),_&&(_.c(),_.m(e,null)))},i:oe,o:oe,d(v){v&&q(e),u&&u.d(),_.d(),r=!1,a()}}}function Oa(l){let e,t,n=l[21].title+"",i,s,r,a,u,d,h=l[139](l[21].type)+"",_,v,g,b,k,y=(l[21].section||"—")+"",S,D,T,j,F,L=mt(l[21].createdAt)+"",N,M,V,P,W,H,R,K,G=m("overview.newNote")+"",Q,Y,X,J,O,ie,pe=m("overview.addFile")+"",ee,te,le,ve,we,Me,Le=m("overview.addAction")+"",Ie,z,Z,de,ke,Te,ze,He=m("overview.logTime")+"",tt,Ee,ye,ue,re,se=l[23].length>0&&Do(l),Ne=l[26].length>0&&Fo(l);return{c(){e=f("div"),t=f("h2"),i=I(n),s=w(),r=f("div"),a=f("div"),u=f("span"),u.textContent=`${m("overview.type")}`,d=f("span"),_=I(h),v=w(),g=f("div"),b=f("span"),b.textContent=`${m("overview.section")}`,k=f("span"),S=I(y),D=w(),T=f("div"),j=f("span"),j.textContent=`${m("overview.created")}`,F=f("span"),N=I(L),M=w(),V=f("div"),P=f("button"),W=B("svg"),H=B("path"),R=B("path"),K=w(),Q=I(G),Y=w(),X=f("button"),J=B("svg"),O=B("path"),ie=w(),ee=I(pe),te=w(),le=f("button"),ve=B("svg"),we=B("polygon"),Me=w(),Ie=I(Le),z=w(),Z=f("button"),de=B("svg"),ke=B("circle"),Te=B("polyline"),ze=w(),tt=I(He),Ee=w(),se&&se.c(),ye=w(),Ne&&Ne.c(),o(t,"class","svelte-rw0qo2"),o(u,"class","meta-label svelte-rw0qo2"),o(d,"class","svelte-rw0qo2"),o(a,"class","meta-item svelte-rw0qo2"),o(b,"class","meta-label svelte-rw0qo2"),o(k,"class","svelte-rw0qo2"),o(g,"class","meta-item svelte-rw0qo2"),o(j,"class","meta-label svelte-rw0qo2"),o(F,"class","svelte-rw0qo2"),o(T,"class","meta-item svelte-rw0qo2"),o(r,"class","meta-grid svelte-rw0qo2"),o(H,"d","M12 20h9"),o(H,"class","svelte-rw0qo2"),o(R,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"),o(R,"class","svelte-rw0qo2"),o(W,"width","16"),o(W,"height","16"),o(W,"viewBox","0 0 24 24"),o(W,"fill","none"),o(W,"stroke","currentColor"),o(W,"stroke-width","2"),o(W,"stroke-linecap","round"),o(W,"stroke-linejoin","round"),o(W,"class","svelte-rw0qo2"),o(P,"class","qa-btn svelte-rw0qo2"),o(O,"d","M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"),o(O,"class","svelte-rw0qo2"),o(J,"width","16"),o(J,"height","16"),o(J,"viewBox","0 0 24 24"),o(J,"fill","none"),o(J,"stroke","currentColor"),o(J,"stroke-width","2"),o(J,"stroke-linecap","round"),o(J,"stroke-linejoin","round"),o(J,"class","svelte-rw0qo2"),o(X,"class","qa-btn svelte-rw0qo2"),o(we,"points","13 2 3 14 12 14 11 22 21 10 12 10 13 2"),o(we,"class","svelte-rw0qo2"),o(ve,"width","16"),o(ve,"height","16"),o(ve,"viewBox","0 0 24 24"),o(ve,"fill","none"),o(ve,"stroke","currentColor"),o(ve,"stroke-width","2"),o(ve,"stroke-linecap","round"),o(ve,"stroke-linejoin","round"),o(ve,"class","svelte-rw0qo2"),o(le,"class","qa-btn svelte-rw0qo2"),o(ke,"cx","12"),o(ke,"cy","12"),o(ke,"r","10"),o(ke,"class","svelte-rw0qo2"),o(Te,"points","12 6 12 12 16 14"),o(Te,"class","svelte-rw0qo2"),o(de,"width","16"),o(de,"height","16"),o(de,"viewBox","0 0 24 24"),o(de,"fill","none"),o(de,"stroke","currentColor"),o(de,"stroke-width","2"),o(de,"stroke-linecap","round"),o(de,"stroke-linejoin","round"),o(de,"class","svelte-rw0qo2"),o(Z,"class","qa-btn svelte-rw0qo2"),o(V,"class","quick-actions svelte-rw0qo2"),o(e,"class","overview svelte-rw0qo2")},m(Se,qe){C(Se,e,qe),c(e,t),c(t,i),c(e,s),c(e,r),c(r,a),c(a,u),c(a,d),c(d,_),c(r,v),c(r,g),c(g,b),c(g,k),c(k,S),c(r,D),c(r,T),c(T,j),c(T,F),c(F,N),c(e,M),c(e,V),c(V,P),c(P,W),c(W,H),c(W,R),c(P,K),c(P,Q),c(V,Y),c(V,X),c(X,J),c(J,O),c(X,ie),c(X,ee),c(V,te),c(V,le),c(le,ve),c(ve,we),c(le,Me),c(le,Ie),c(V,z),c(V,Z),c(Z,de),c(de,ke),c(de,Te),c(Z,ze),c(Z,tt),c(e,Ee),se&&se.m(e,null),c(e,ye),Ne&&Ne.m(e,null),ue||(re=[E(P,"click",l[160]),E(X,"click",l[161]),E(le,"click",l[140]),E(Z,"click",l[162])],ue=!0)},p(Se,qe){qe[0]&2097152&&n!==(n=Se[21].title+"")&&U(i,n),qe[0]&2097152&&h!==(h=Se[139](Se[21].type)+"")&&U(_,h),qe[0]&2097152&&y!==(y=(Se[21].section||"—")+"")&&U(S,y),qe[0]&2097152&&L!==(L=mt(Se[21].createdAt)+"")&&U(N,L),Se[23].length>0?se?se.p(Se,qe):(se=Do(Se),se.c(),se.m(e,ye)):se&&(se.d(1),se=null),Se[26].length>0?Ne?Ne.p(Se,qe):(Ne=Fo(Se),Ne.c(),Ne.m(e,null)):Ne&&(Ne.d(1),Ne=null)},i:oe,o:oe,d(Se){Se&&q(e),se&&se.d(),Ne&&Ne.d(),ue=!1,he(re)}}}function za(l){let e,t=ae(l[17]),n=[];for(let i=0;i',T=w(),o(n,"class","action-title svelte-rw0qo2"),o(a,"class","action-type svelte-rw0qo2"),o(_,"class","action-data svelte-rw0qo2"),o(t,"class","action-info svelte-rw0qo2"),o(y,"class","btn btn-sm svelte-rw0qo2"),o(D,"class","btn btn-sm btn-danger svelte-rw0qo2"),o(k,"class","action-btns svelte-rw0qo2"),o(e,"class","action-card svelte-rw0qo2")},m(M,V){C(M,e,V),c(e,t),c(t,n),c(n,s),c(t,r),c(t,a),c(a,d),c(t,h),c(t,_),c(_,g),c(e,b),c(e,k),c(k,y),c(k,S),c(k,D),c(e,T),j||(F=[E(y,"click",L),E(D,"click",N)],j=!0)},p(M,V){l=M,V[0]&33554432&&i!==(i=l[290].title+"")&&U(s,i),V[0]&33554432&&u!==(u=l[144](l[290].type)+"")&&U(d,u),V[0]&33554432&&v!==(v=l[290].data+"")&&U(g,v)},d(M){M&&q(e),j=!1,he(F)}}}function qo(l){let e,t=m("common.paste")+"",n,i,s=l[55].items.length+"",r,a,u;return{c(){e=f("button"),n=I(t),i=w(),r=I(s),o(e,"class","btn svelte-rw0qo2")},m(d,h){C(d,e,h),c(e,n),c(e,i),c(e,r),a||(u=E(e,"click",l[89]),a=!0)},p(d,h){h[1]&16777216&&s!==(s=d[55].items.length+"")&&U(r,s)},d(d){d&&q(e),a=!1,u()}}}function Wa(l){let e,t,n,i,s,r,a;const u=[Ja,Ga],d=[];function h(b,k){return b[49].length>0?0:1}e=h(l),t=d[e]=u[e](l);const _=[Xa,Ya],v=[];function g(b,k){return b[50].length===0?0:1}return i=g(l),s=v[i]=_[i](l),{c(){t.c(),n=w(),s.c(),r=ut()},m(b,k){d[e].m(b,k),C(b,n,k),v[i].m(b,k),C(b,r,k),a=!0},p(b,k){let y=e;e=h(b),e===y?d[e].p(b,k):(Qe(),_e(d[y],1,1,()=>{d[y]=null}),xe(),t=d[e],t?t.p(b,k):(t=d[e]=u[e](b),t.c()),ce(t,1),t.m(n.parentNode,n));let S=i;i=g(b),i===S?v[i].p(b,k):(Qe(),_e(v[S],1,1,()=>{v[S]=null}),xe(),s=v[i],s?s.p(b,k):(s=v[i]=_[i](b),s.c()),ce(s,1),s.m(r.parentNode,r))},i(b){a||(ce(t),ce(s),a=!0)},o(b){_e(t),_e(s),a=!1},d(b){b&&(q(n),q(r)),d[e].d(b),v[i].d(b)}}}function Ka(l){let e,t;return{c(){e=f("div"),t=f("p"),t.textContent=`${m("common.loading")}`,o(t,"class","svelte-rw0qo2"),o(e,"class","empty-state svelte-rw0qo2")},m(n,i){C(n,e,i),c(e,t)},p:oe,i:oe,o:oe,d(n){n&&q(e)}}}function Ga(l){let e,t;return e=new pi({props:{crumbs:[{name:m("file.root")}]}}),{c(){st(e.$$.fragment)},m(n,i){nt(e,n,i),t=!0},p:oe,i(n){t||(ce(e.$$.fragment,n),t=!0)},o(n){_e(e.$$.fragment,n),t=!1},d(n){ot(e,n)}}}function Ja(l){let e,t,n,i,s,r,a,u=m("common.back")+"",d,h,_,v;return e=new pi({props:{crumbs:[{name:m("file.root")},...l[49]]}}),e.$on("navigate",l[169]),{c(){st(e.$$.fragment),t=w(),n=f("button"),i=B("svg"),s=B("line"),r=B("polyline"),a=w(),d=I(u),o(s,"x1","19"),o(s,"y1","12"),o(s,"x2","5"),o(s,"y2","12"),o(s,"class","svelte-rw0qo2"),o(r,"points","12 19 5 12 12 5"),o(r,"class","svelte-rw0qo2"),o(i,"width","14"),o(i,"height","14"),o(i,"viewBox","0 0 24 24"),o(i,"fill","none"),o(i,"stroke","currentColor"),o(i,"stroke-width","2"),o(i,"stroke-linecap","round"),o(i,"stroke-linejoin","round"),o(i,"class","svelte-rw0qo2"),o(n,"class","btn btn-sm back-btn svelte-rw0qo2")},m(g,b){nt(e,g,b),C(g,t,b),C(g,n,b),c(n,i),c(i,s),c(i,r),c(n,a),c(n,d),h=!0,_||(v=E(n,"click",l[80]),_=!0)},p(g,b){const k={};b[1]&262144&&(k.crumbs=[{name:m("file.root")},...g[49]]),e.$set(k)},i(g){h||(ce(e.$$.fragment,g),h=!0)},o(g){_e(e.$$.fragment,g),h=!1},d(g){g&&(q(t),q(n)),ot(e,g),_=!1,v()}}}function Ya(l){let e,t=[],n=new Map,i,s=ae(l[50]);const r=a=>a[287].id;for(let a=0;a0?m("file.noFiles"):m("file.noFilesCase"))+"",r,a,u,d,h,_,v,g,b,k;return{c(){e=f("div"),t=f("div"),t.innerHTML='',n=w(),i=f("p"),r=I(s),a=w(),u=f("p"),u.textContent=`${m("file.hint")}`,d=w(),h=f("div"),_=f("button"),_.textContent=`${m("file.addFileSimple")}`,v=w(),g=f("button"),g.textContent=`${m("file.addFolderSimple")}`,o(t,"class","empty-icon svelte-rw0qo2"),o(i,"class","svelte-rw0qo2"),o(u,"class","hint svelte-rw0qo2"),o(_,"class","btn btn-primary svelte-rw0qo2"),o(g,"class","btn svelte-rw0qo2"),o(h,"class","empty-actions svelte-rw0qo2"),o(e,"class","empty-state svelte-rw0qo2")},m(y,S){C(y,e,S),c(e,t),c(e,n),c(e,i),c(i,r),c(e,a),c(e,u),c(e,d),c(e,h),c(h,_),c(h,v),c(h,g),b||(k=[E(_,"click",l[133]),E(g,"click",l[134])],b=!0)},p(y,S){S[1]&262144&&s!==(s=(y[49].length>0?m("file.noFiles"):m("file.noFilesCase"))+"")&&U(r,s)},i:oe,o:oe,d(y){y&&q(e),b=!1,he(k)}}}function Co(l,e){let t,n,i;return n=new jc({props:{item:e[287],selected:e[56].includes(e[287].id),onDragStart:e[93],onDragOver:e[94],onDrop:e[95]}}),n.$on("navigate",e[170]),n.$on("preview",e[171]),n.$on("openExternal",e[172]),n.$on("showInFolder",e[173]),n.$on("delete",e[174]),n.$on("rename",e[175]),n.$on("duplicate",e[176]),n.$on("cut",e[177]),n.$on("copy",e[178]),n.$on("selectOne",e[179]),n.$on("toggleSelect",e[180]),n.$on("rangeSelect",e[181]),{key:l,first:null,c(){t=ut(),st(n.$$.fragment),this.first=t},m(s,r){C(s,t,r),nt(n,s,r),i=!0},p(s,r){e=s;const a={};r[1]&524288&&(a.item=e[287]),r[1]&34078720&&(a.selected=e[56].includes(e[287].id)),n.$set(a)},i(s){i||(ce(n.$$.fragment,s),i=!0)},o(s){_e(n.$$.fragment,s),i=!1},d(s){s&&q(t),ot(n,s)}}}function So(l){let e,t;return{c(){e=f("div"),t=f("p"),t.textContent=`${m("file.scanning")}`,o(t,"class","svelte-rw0qo2"),o(e,"class","empty-state svelte-rw0qo2")},m(n,i){C(n,e,i),c(e,t)},d(n){n&&q(e)}}}function jo(l){let e,t;return e=new Hc({props:{item:l[51],content:l[52],loading:l[53],error:l[54]}}),e.$on("close",l[83]),e.$on("openExternal",l[182]),{c(){st(e.$$.fragment)},m(n,i){nt(e,n,i),t=!0},p(n,i){const s={};i[1]&1048576&&(s.item=n[51]),i[1]&2097152&&(s.content=n[52]),i[1]&4194304&&(s.loading=n[53]),i[1]&8388608&&(s.error=n[54]),e.$set(s)},i(n){t||(ce(e.$$.fragment,n),t=!0)},o(n){_e(e.$$.fragment,n),t=!1},d(n){ot(e,n)}}}function To(l){let e,t,n,i,s,r,a,u,d;return{c(){e=f("div"),t=f("input"),n=w(),i=f("div"),s=f("button"),s.textContent=`${m("common.create")}`,r=w(),a=f("button"),a.textContent=`${m("common.cancel")}`,o(t,"type","text"),o(t,"placeholder",m("note.title")),o(t,"class","svelte-rw0qo2"),o(s,"class","btn btn-primary svelte-rw0qo2"),o(a,"class","btn svelte-rw0qo2"),o(i,"class","form-actions svelte-rw0qo2"),o(e,"class","create-form svelte-rw0qo2")},m(h,_){C(h,e,_),c(e,t),Ce(t,l[37]),c(e,n),c(e,i),c(i,s),c(i,r),c(i,a),u||(d=[E(t,"input",l[165]),E(t,"keydown",l[166]),E(s,"click",l[118]),E(a,"click",l[117])],u=!0)},p(h,_){_[1]&64&&t.value!==h[37]&&Ce(t,h[37])},d(h){h&&q(e),u=!1,he(d)}}}function Za(l){let e,t=ae(l[23]),n=[];for(let i=0;i_e(ie[ee],1,1,()=>{ie[ee]=null});return{c(){e=f("div"),t=f("div"),n=f("h3"),n.textContent=`${m("nav.createNode")}`,i=w(),J&&J.c(),s=w(),r=f("div"),a=f("span"),a.textContent=`${m("template.select")}`,u=w(),d=f("div"),h=f("button"),st(_.$$.fragment),v=w(),g=f("div"),b=f("span"),b.textContent=`${m("template.optionNone")}`,k=w(),y=f("span"),y.textContent=`${m("template.none.desc")}`,S=w();for(let ee=0;ee{b=null}),xe()),y[35].node&&y[35].node.parent_id?k?k.p(y,S):(k=Bo(y),k.c(),k.m(t,s)):k&&(k.d(1),k=null),(!_||S[1]&16)&&Ve(t,"left",y[35].x+"px"),(!_||S[1]&16)&&Ve(t,"top",y[35].y+"px")},i(y){_||(ce(b),_=!0)},o(y){_e(b),_=!1},d(y){y&&q(e),b&&b.d(),k&&k.d(),v=!1,he(g)}}}function zo(l){let e,t,n,i,s,r=ae(l[2].length>0?l[2]:[{id:"",title:"template.optionNone",icon:"folder"}]),a=[];for(let d=0;d_e(a[d],1,1,()=>{a[d]=null});return{c(){e=f("div"),e.textContent=`${m("common.create")}`,t=w();for(let d=0;d0?d[2]:[{id:"",title:"template.optionNone",icon:"folder"}]);let _;for(_=0;_l[224].call(k)),o(v,"class","svelte-rw0qo2"),o(_,"class","form-group svelte-rw0qo2"),o(T,"class","label-text svelte-rw0qo2"),o(N,"type","text"),o(N,"placeholder",M=l[40]==="open_url"?m("action.urlPlaceholder"):l[40]==="open_folder"||l[40]==="open_file"?m("action.pathPlaceholder"):m("action.commandPlaceholder")),o(N,"class","svelte-rw0qo2"),o(D,"class","svelte-rw0qo2"),o(S,"class","form-group svelte-rw0qo2"),o(W,"class","btn btn-primary svelte-rw0qo2"),o(R,"class","btn svelte-rw0qo2"),o(P,"class","modal-actions svelte-rw0qo2"),o(t,"class","modal svelte-rw0qo2"),o(e,"class","modal-overlay svelte-rw0qo2"),o(e,"role","button"),o(e,"tabindex","0")},m(X,J){C(X,e,J),c(e,t),c(t,n),c(t,i),c(t,s),c(s,r),c(r,a),c(r,u),c(r,d),Ce(d,l[39]),c(t,h),c(t,_),c(_,v),c(v,g),c(v,b),c(v,k);for(let O=0;O0?0:1}T=se(l),j=re[T]=ue[T](l);function Ne(x,ge){return x[21]?da:x[20]?fa:ua}let Se=Ne(l),qe=Se(l),fe=((Xe=l[67])==null?void 0:Xe.configured)&&Bn(l),me=l[19]&&Hn(l);const be=[wa,ha,va,_a,ma,pa],Re=[];function Ke(x,ge){return x[24]?0:x[21]?1:x[20]==="journal"?2:x[20]==="today"&&x[3]?3:x[20]==="activity"?4:5}we=Ke(l),Me=Re[we]=be[we](l);let Ae=l[31]&&Ao(l),Pe=l[35].visible&&Oo(l),Ue=l[38]&&Vo(l),Ge=l[45]&&l[44]&&Uo(l),We=l[63]&&Ko(l),Fe=l[58]&&Jo(l),Be=l[66]&&Yo(l);return{c(){var x;e=f("div"),t=f("aside"),n=f("div"),i=f("span"),i.textContent="⚒",s=w(),r=f("span"),r.textContent=`${m("nav.brand")}`,a=w(),u=f("nav"),d=f("div"),h=f("div"),h.textContent=`${m("nav.system")}`,_=w();for(let ge=0;ge{re[$e]=null}),xe(),j=re[T],j?j.p(x,ge):(j=re[T]=ue[T](x),j.c()),ce(j,1),j.m(g,null)),(!ze||ge[2]&32)&&De(R,"active",(rt=x[67])==null?void 0:rt.configured),(!ze||ge[0]&262144)&&U(X,x[18]),Se===(Se=Ne(x))&&qe?qe.p(x,ge):(qe.d(1),qe=Se(x),qe&&(qe.c(),qe.m(pe,null))),(lt=x[67])!=null&<.configured?fe?fe.p(x,ge):(fe=Bn(x),fe.c(),fe.m(te,null)):fe&&(fe.d(1),fe=null),x[19]?me?me.p(x,ge):(me=Hn(x),me.c(),me.m(O,ve)):me&&(me.d(1),me=null);let _t=we;we=Ke(x),we===_t?Re[we].p(x,ge):(Qe(),_e(Re[_t],1,1,()=>{Re[_t]=null}),xe(),Me=Re[we],Me?Me.p(x,ge):(Me=Re[we]=be[we](x),Me.c()),ce(Me,1),Me.m(O,Le)),x[31]?Ae?(Ae.p(x,ge),ge[1]&1&&ce(Ae,1)):(Ae=Ao(x),Ae.c(),ce(Ae,1),Ae.m(O,Ie)):Ae&&(Qe(),_e(Ae,1,1,()=>{Ae=null}),xe()),x[35].visible?Pe?(Pe.p(x,ge),ge[1]&16&&ce(Pe,1)):(Pe=Oo(x),Pe.c(),ce(Pe,1),Pe.m(O,z)):Pe&&(Qe(),_e(Pe,1,1,()=>{Pe=null}),xe()),x[38]?Ue?Ue.p(x,ge):(Ue=Vo(x),Ue.c(),Ue.m(O,Z)):Ue&&(Ue.d(1),Ue=null),x[45]&&x[44]?Ge?Ge.p(x,ge):(Ge=Uo(x),Ge.c(),Ge.m(O,de)):Ge&&(Ge.d(1),Ge=null),x[63]?We?We.p(x,ge):(We=Ko(x),We.c(),We.m(O,ke)):We&&(We.d(1),We=null),x[58]?Fe?(Fe.p(x,ge),ge[1]&134217728&&ce(Fe,1)):(Fe=Jo(x),Fe.c(),ce(Fe,1),Fe.m(O,Te)):Fe&&(Qe(),_e(Fe,1,1,()=>{Fe=null}),xe()),x[66]?Be?Be.p(x,ge):(Be=Yo(x),Be.c(),Be.m(O,null)):Be&&(Be.d(1),Be=null)},i(x){ze||(ce(j),ce(Me),ce(Ae),ce(Pe),ce(Fe),ze=!0)},o(x){_e(j),_e(Me),_e(Ae),_e(Pe),_e(Fe),ze=!1},d(x){x&&q(e),Oe(ye,x),re[T].d(),qe.d(),fe&&fe.d(),me&&me.d(),Re[we].d(),Ae&&Ae.d(),Pe&&Pe.d(),Ue&&Ue.d(),Ge&&Ge.d(),We&&We.d(),Fe&&Fe.d(),Be&&Be.d(),He=!1,he(tt)}}}function $(l,...e){try{if(window.go&&window.go.main&&window.go.main.App){const t=window.go.main.App[l];if(typeof t=="function")return t(...e)}}catch(t){console.error("Wails call error:",l,t)}return Promise.reject(new Error("Wails not connected: "+l))}function Rt(l,e,t){for(const n of l){if(n.id===e)return n.children=t,n.has_children=t.length>0,!0;if(n.children&&Rt(n.children,e,t))return!0}return!1}function _i(l,e,t){for(const n of l){if(n.id===e)return n.children=t,n.has_children=t.length>0,!0;if(n.children&&_i(n.children,e,t))return!0}return!1}function ul(l,e,t){const n=new Blob([e],{type:t}),i=URL.createObjectURL(n),s=document.createElement("a");s.href=i,s.download=l,document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(i)}function It(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 pt(l){if(!l)return"";try{return new Date(l).toLocaleTimeString("ru-RU",{hour:"2-digit",minute:"2-digit"})}catch{return""}}function mt(l){if(!l)return"";try{return new Date(l).toLocaleDateString("ru-RU",{day:"numeric",month:"short"})}catch{return l}}function vt(l,e,t,n){return l=Math.abs(l)%100,l>=5&&l<=20?n:(l%=10,l===1?e:l>=2&&l<=4?t:n)}function at(l){return e=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),l())}}function iu(l,e,t){let n=[],i=[],s=[],r=null,a=[],u=0,d=!0,h=[],_=null,v="",g="",b=!1,k="",y="all",S="all",D="",T="",j=[],F=!1,L=[],N="",M="",V="",P=null,W="overview",H=[],R=null,K=[],G=[],Q=[],Y="",X="",J=[],O=0,ie=!1,pe="",ee=null,te=null,le={visible:!1,x:0,y:0,node:null},ve=!1,we="",Me=!1,Le="",Ie="open_url",z="",Z=[{id:"open_url",label:m("action.openUrl")},{id:"open_file",label:m("action.openFile")},{id:"open_folder",label:m("action.openFolder")},{id:"run_command",label:m("action.runCommand")},{id:"run_script",label:m("action.runScript")},{id:"open_terminal",label:m("action.openTerminal")},{id:"launch_app",label:m("action.launchApp")}],de=!0,ke=!1,Te=null,ze=!1,He="",tt="",Ee={},ye=!1,ue=null,re=[],se=[],Ne=null,Se="",qe=!1,fe="",me={items:[],mode:"copy"},be=[],Re=[],Ke=!1,Ae=!1,Pe="",Ue="",Ge=!1,We=m("common.delete"),Fe=null,Be=null,Xe=!1,x="",ge="",$e="",_t=!1,rt=null,lt=!1,Je="",ft="",gt="",kt=0,Ye="";const vi=[{id:"overview",label:m("tab.overview")},{id:"notes",label:m("tab.notes")},{id:"files",label:m("tab.files")},{id:"actions",label:m("tab.actions")},{id:"worklog",label:m("tab.worklog")},{id:"activity",label:m("tab.activity")}];let Zt=null;li(async()=>{try{t(18,N=await $("VerstakVersion")||"verstak-gui/v2"),t(0,n=await $("ListSystemViews")||[]),t(1,i=await $("ListWorkspaceTree")||[]),t(2,s=await $("ListEnabledTemplates")||[])}catch(p){t(19,M=String(p)),t(0,n=[{id:"today",label:m("nav.today")},{id:"inbox",label:m("nav.inbox")},{id:"activity",label:m("nav.activity")}]),t(1,i=[]),t(2,s=[])}window.runtime&&window.runtime.EventsOn&&(window.runtime.EventsOn("files-dropped",xi),Zt=()=>window.runtime.EventsOff("files-dropped")),window.addEventListener("keydown",Dl),t(42,de=!1),Ot()}),vl(()=>{Zt&&Zt(),window.removeEventListener("keydown",Dl)});async function hl(p){t(20,V=p),t(21,P=null),t(22,W="overview"),t(23,H=[]),K=[],t(25,G=[]),t(26,Q=[]),t(29,J=[]),t(31,ie=!1),t(19,M=""),t(3,r=null),t(4,a=[]),u=0,d=!0,t(5,h=[]),t(6,_=null);try{p==="today"?(t(3,r=await $("ListTodayView")||{cases:[]}),t(29,J=await $("GetSuggestions")||[]),t(30,O=J.length)):p==="journal"?await Pt():p==="activity"&&(t(4,a=await $("ListActivityFeed",50,0)||[]),u=a.length,d=a.length===50)}catch(A){t(19,M=String(A)),t(3,r={cases:[]}),t(4,a=[])}}async function St(p){t(21,P=p),t(22,W="overview"),t(23,H=[]),K=[],t(25,G=[]),t(26,Q=[]),t(29,J=[]),t(50,se=[]),t(49,re=[]),t(48,ue=null),t(51,Ne=null),t(52,Se=""),t(56,be=[]),Re=[],t(24,R=null),t(31,ie=!1),t(36,ve=!1),t(19,M=""),t(17,L=[]),await wl(p.id)}async function wl(p){try{t(23,H=await $("ListNotes",p)||[])}catch{}try{K=await $("ListFiles",p)||[]}catch{}try{t(25,G=await $("ListActions",p)||[])}catch{}try{t(26,Q=await $("ListWorklog",p)||[])}catch{}try{t(29,J=await $("GetSuggestions")||[]),t(30,O=J.length)}catch{t(29,J=[]),t(30,O=0)}try{t(17,L=await $("ListActivityByNode",p,50,0)||[])}catch{}}async function et(p){t(47,ye=!0);try{let A=await $("ListItems",p)||[];A.sort((ne,je)=>ne.type!==je.type?ne.type==="folder"?-1:1:(ne.name||"").localeCompare(je.name||"")),t(50,se=A)}catch{t(50,se=[])}t(47,ye=!1)}async function Qt(p){if(!P)return;try{const ne=await $("GetNodeDetail",p);ne&&t(49,re=[...re,{id:p,name:ne.title}])}catch{t(49,re=[...re,{id:p,name:"..."}])}t(48,ue=p),t(46,Ee={...Ee,[p]:!0});const A=await $("ListWorkspaceChildren",p)||[];Rt(i,p,A),t(1,i=[...i]),await et(p)}function bl(){if(re.length<2)t(49,re=[]),t(48,ue=null),et(P.id);else{const p=re[re.length-2];t(49,re=re.slice(0,-1)),t(48,ue=p.id),et(p.id)}}function gl(p){const A=re[p];t(49,re=re.slice(0,p+1)),t(48,ue=A.id),et(A.id)}async function xt(p){t(51,Ne=p),t(52,Se=""),t(54,fe=""),t(53,qe=!0);try{wc(p)?t(52,Se=await $("GetFileBase64",p.fileId)||""):bc(p)&&t(52,Se=await $("ReadFileText",p.fileId)||"")}catch(A){t(54,fe=String(A))}t(53,qe=!1)}function $t(){t(51,Ne=null),t(52,Se=""),t(54,fe="")}async function hi(){const p=prompt(m("file.namePrompt"));if(!(!p||!p.trim()))try{const A=ue||P.id;await $("CreateEmptyFile",A,p.trim()),await et(A),await ll(A)}catch(A){t(19,M=String(A))}}async function kl(p){try{await $("DuplicateNode",p);const A=ue||P.id;await et(A),await ll(A)}catch(A){t(19,M=String(A))}}function yl(p){const A=se.find(ne=>ne.id===p);A&&tl(A.id,A.name)}function ql(p){t(55,me={items:[p],mode:"cut"})}function Cl(p){t(55,me={items:[p],mode:"copy"})}async function Sl(){if(me.items.length===0)return;const p=ue||P.id;try{if(me.mode==="copy")for(const A of me.items)await $("DuplicateNode",A);else for(const A of me.items)await $("MoveNode",A,p);t(55,me={items:[],mode:"copy"}),await et(p)}catch(A){t(19,M=String(A))}}function jl(p){be.includes(p)?t(56,be=be.filter(A=>A!==p)):t(56,be=[...be,p])}function Tl(p){t(56,be=[p])}function wi(){t(56,be=se.map(p=>p.id))}function Nl(p){if(se.length===0)return;const A=be.length>0?be[be.length-1]:se[0].id,ne=se.findIndex(yt=>yt.id===A),je=se.findIndex(yt=>yt.id===p);if(ne===-1||je===-1)return;const Ze=Math.min(ne,je),dt=Math.max(ne,je),zr=se.slice(Ze,dt+1).map(yt=>yt.id),Zl=new Set(be);zr.forEach(yt=>Zl.add(yt)),t(56,be=[...Zl])}function bi(){t(56,be=[])}function el(p){return p.length>0?p:se.map(A=>A.id)}async function gi(){const p=el(be),A=se.find(je=>je.id===p[0]);let ne;p.length===1&&(A==null?void 0:A.type)==="folder"?ne=m("delete.folder"):p.length===1?ne=m("delete.file"):ne=m("delete.files",{count:p.length}),Et({title:m("delete.confirmTitle"),message:m("delete.confirmMessage")+" "+ne+"?",confirmText:m("common.delete"),danger:!0,onConfirm:async()=>{for(const Ze of p)try{await $("DeleteFileOrFolder",Ze)}catch(dt){t(19,M=String(dt))}t(56,be=[]);const je=ue||P.id;await et(je)}})}function ki(){const p=el(be);t(55,me={items:p,mode:"cut"}),t(56,be=[])}function yi(){const p=el(be);t(55,me={items:p,mode:"copy"}),t(56,be=[])}function qi(p,A){const ne=be.includes(A)?be:[A];Re=ne,p.dataTransfer.effectAllowed="move",p.dataTransfer.setData("text/plain",ne.join(","))}function Ci(p,A){const ne=se.find(je=>je.id===A);ne&&ne.type==="folder"&&(p.preventDefault(),p.dataTransfer.dropEffect="move")}async function Si(p,A){if(p.preventDefault(),Re.length!==0){for(const ne of Re)try{await $("MoveNode",ne,A)}catch(je){t(19,M=String(je))}Re=[],t(56,be=[]),await et(ue||P.id)}}function Dl(p){if(W==="files"&&!(p.target.tagName==="INPUT"||p.target.tagName==="TEXTAREA"))if(p.ctrlKey||p.metaKey)p.key==="c"||p.key==="C"?(p.preventDefault(),yi()):p.key==="x"||p.key==="X"?(p.preventDefault(),ki()):p.key==="v"||p.key==="V"?(p.preventDefault(),Sl()):p.key==="a"||p.key==="A"?(p.preventDefault(),wi()):p.key==="o"||p.key==="O"?(p.preventDefault(),ji()):p.key==="Enter"&&(p.preventDefault(),Ml());else if(p.key==="Enter")p.preventDefault(),Ml();else if(p.key==="Delete"||p.key==="Backspace"){if(Ne){p.preventDefault(),$t();return}if(be.length>0){p.preventDefault(),gi();return}if(p.key==="Backspace"&&re.length>0){p.preventDefault(),bl();return}}else if(p.key==="Escape"){if(Ne){$t();return}if(be.length>0){bi();return}}else p.key==="F2"&&(p.preventDefault(),Ti())}function Ml(){if(be.length===1){const p=se.find(A=>A.id===be[0]);p&&(p.type==="folder"?Qt(p.id):xt(p))}}function ji(){if(be.length===1){const p=se.find(A=>A.id===be[0]);p&&p.fileId&&$("OpenFile",p.fileId)}}function tl(p,A){x=p,t(64,ge=A),t(65,$e=""),t(63,Xe=!0)}function Ti(){if(be.length===1){const p=se.find(A=>A.id===be[0]);p&&tl(p.id,p.name)}}async function Fl(){const p=ge.trim();if(!p){t(65,$e=m("rename.emptyError"));return}try{await $("ValidateName",p)}catch{t(65,$e=m("rename.invalidError"));return}t(63,Xe=!1);const A=x;x="";try{await $("RenameNode",A,p),P&&P.id===A&&t(21,P={...P,title:p}),await At(),ue&&await et(ue)}catch(ne){t(19,M=String(ne))}}function Ni(){t(63,Xe=!1),x="",t(64,ge=""),t(65,$e="")}function Di(p){p.key==="Enter"?Fl():t(65,$e="")}function Et(p){t(59,Pe=p.title||m("common.confirm")),t(60,Ue=p.message||""),t(61,Ge=p.danger!==void 0?p.danger:!0),t(62,We=p.confirmText||m("common.delete")),Fe=p.onConfirm||null,Be=p.onCancel||null,t(58,Ae=!0)}function Il(){t(58,Ae=!1),Fe=null,Be=null}function Mi(){Fe&&Fe(),Il()}function Fi(){Be&&Be(),Il()}function El(p){t(33,ee=le.node),t(34,te=p),t(32,pe=""),t(31,ie=!0),jt()}function Ii(){t(33,ee=null),t(34,te=void 0),t(32,pe=""),t(31,ie=!0)}function Ei(){t(31,ie=!1),t(32,pe=""),t(33,ee=null),t(34,te=void 0)}async function Al(){if(!(!pe.trim()||te===void 0))try{const p=ee?ee.id:"",A=te?te.id:"",ne=await $("CreateNodeFromTemplate",p,pe.trim(),A);t(31,ie=!1),t(32,pe="");const je=ne?ne.id:null;if(t(33,ee=null),t(34,te=void 0),p){t(46,Ee={...Ee,[p]:!0});const Ze=await $("ListWorkspaceChildren",p)||[];Rt(i,p,Ze),t(1,i=[...i])}else t(1,i=await $("ListWorkspaceTree")||i);if(je){const Ze=await $("GetNodeDetail",je);Ze&&(t(20,V=""),St(Ze))}}catch(p){t(19,M=String(p))}}function Ai(p,A){t(35,le={visible:!0,x:p.clientX,y:p.clientY,node:A})}function jt(){t(35,le={visible:!1,x:0,y:0,node:null})}async function Li(p){const A=!Ee[p];if(t(46,Ee={...Ee,[p]:A}),!A)return;const ne=await $("ListWorkspaceChildren",p)||[];Rt(i,p,ne),t(1,i=[...i])}async function Pi(p,A){if(!(!p||!A||p===A))try{const ne=await $("MoveNode",p,A);await At();const je=await $("GetNodeDetail",p);je&&(t(20,V=""),St(je))}catch(ne){t(19,M=String(ne))}}async function Oi(p){p.preventDefault();try{const A=p.dataTransfer.getData("text/plain");if(!A)return;const ne=await $("GetNodeDetail",A);if(!ne||!ne.parent_id)return;await $("MoveNode",A,""),await At();const je=await $("GetNodeDetail",A);je&&(t(20,V=""),St(je))}catch(A){t(19,M=String(A))}}function zi(p){p.preventDefault(),p.dataTransfer.dropEffect="move",t(57,Ke=!0)}function Ri(p){t(57,Ke=!1)}function Ll(p){tl(p.id,p.title),jt()}function Pl(p){jt(),Et({title:m("delete.confirmTitle"),message:m("delete.confirmMessage")+" "+p.title+"?",confirmText:m("common.delete"),danger:!0,onConfirm:async()=>{try{await $("DeleteNode",p.id),await At(),P&&P.id===p.id&&t(21,P=null)}catch(A){t(19,M=String(A))}}})}async function Ol(p){jt();try{await $("OpenFolder",p.id)}catch(A){t(19,M=String(A))}}async function zl(p){jt();try{await $("MoveNode",p.id,""),await At();const A=await $("GetNodeDetail",p.id);A&&(t(20,V=""),St(A))}catch(A){t(19,M=String(A))}}async function At(){const p=Object.keys(Ee).filter(ne=>Ee[ne]),A=await $("ListWorkspaceTree")||[];for(const ne of p){const Ze=(await $("ListWorkspaceChildren",ne)||[]).map(dt=>({...dt}));_i(A,ne,Ze)}t(1,i=A)}async function ll(p){const A=await $("ListWorkspaceChildren",p)||[];Rt(i,p,A),t(1,i=[...i])}function Rl(){t(36,ve=!0),t(37,we="")}function Bi(){t(36,ve=!1),t(37,we="")}async function Bl(){if(!(!we.trim()||!P))try{const p=await $("CreateNote",P.id,we.trim());t(23,H=[...H,p&&p.id?p:{id:Date.now().toString(),title:we.trim(),createdAt:new Date().toISOString()}]),t(36,ve=!1),t(37,we="")}catch{const A={id:Date.now().toString(),title:we.trim(),createdAt:new Date().toISOString()};t(23,H=[...H,A]),t(36,ve=!1),t(37,we="")}}async function Lt(p){if(R&&R.dirty){Et({title:m("note.unsavedTitle"),message:m("note.unsavedMessage"),confirmText:m("note.unsavedClose"),danger:!1,onConfirm:async()=>{await Vl(p)}});return}await Vl(p)}async function Vl(p){try{const A=await $("ReadNote",p.id);t(24,R={id:p.id,title:p.title,content:A||"",dirty:!1})}catch{t(24,R={id:p.id,title:p.title,content:"# "+p.title+` + +`,dirty:!1})}}function Vi(){if(R&&R.dirty){Et({title:m("note.unsavedTitle"),message:m("note.unsavedMessage"),confirmText:m("note.unsavedClose"),danger:!1,onConfirm:()=>{t(24,R=null)}});return}t(24,R=null)}function Hi(p){R&&(t(24,R.content=p.target.value,R),t(24,R.dirty=!0,R))}async function Ui(){if(R)try{await $("SaveNote",R.id,R.content),t(24,R.dirty=!1,R)}catch{t(24,R.dirty=!1,R)}}async function Wi(){const p=parseInt(Y,10);if(!(!X.trim()||isNaN(p)||p<=0||!P)){try{const A=await $("CreateWorklog",P.id,X.trim(),p);t(26,Q=[...Q,A&&A.id?A:{id:Date.now().toString(),nodeId:P.id,summary:X.trim(),minutes:p,createdAt:new Date().toISOString()}])}catch{t(26,Q=[...Q,{id:Date.now().toString(),nodeId:P.id,summary:X.trim(),minutes:p,createdAt:new Date().toISOString()}])}t(28,X=""),t(27,Y="")}}async function Hl(){t(29,J=await $("GetSuggestions")||[]),t(30,O=J.length),P&&t(26,Q=await $("ListWorklog",P.id)||[]),V==="journal"&&await Pt()}async function nl(p){try{await $("AcceptSuggestionWith",p,p.suggestedMin,""),await Hl()}catch(A){console.error(A)}}async function Ul(p){try{await $("AcceptSuggestionWith",p,p.suggestedMin,""),await Hl()}catch(A){console.error(A)}}async function Pt(){try{const[p,A,ne]=await Promise.all([$("ListWorklogReport",v,g,k,b,y,S),$("WorklogReportSummary",v,g,k,b,y,S),$("GetSuggestions")]);if(t(5,h=p||[]),t(6,_=A||null),t(29,J=ne||[]),t(30,O=J.length),k&&!D)if(p&&p.length>0&&p[0].nodePath)t(13,D=p[0].nodePath);else try{t(13,D=await $("GetNodeTitle",k))}catch{t(13,D="")}}catch{t(5,h=[]),t(6,_=null),t(29,J=[]),t(30,O=0)}}async function Ki(){try{const p=await $("ExportWorklogCSV",v,g,k,b,y,S);ul("worklog.csv",p,"text/csv")}catch(p){console.error(p)}}async function Gi(){try{const p=await $("ExportWorklogMarkdown",v,g,k,b,y,S);ul("worklog.md",p,"text/markdown")}catch(p){console.error(p)}}async function Ji(){try{const p=await $("ExportWorklogPDF",v,g,k,b,y,S);let A=p;if(typeof p=="string"){const Ze=atob(p);A=new Uint8Array(Ze.length);for(let dt=0;dt0)}catch{t(15,j=[]),t(16,F=!1)}}function Xi(){clearTimeout(Wl),Wl=setTimeout(Yi,200)}function Kl(p){t(10,k=p.id),t(13,D=p.path||p.title),t(9,b=!0),t(14,T=""),t(15,j=[]),t(16,F=!1),Pt()}function Gl(){t(10,k=""),t(9,b=!1),t(13,D=""),t(14,T=""),t(15,j=[]),t(16,F=!1),Pt()}async function Jl(){const p=await $("PickFile");if(!p)return;const A=ue||P.id;await ol(A,p)}async function Zi(){const p=await $("PickDirectory");if(!p)return;const A=ue||P.id;await ol(A,p)}async function ol(p,A){t(43,ke=!0);try{const ne=await $("PreviewImport",A);t(44,Te=ne),He=A,tt=p,t(45,ze=!0)}catch(ne){t(19,M=String(ne))}t(43,ke=!1)}async function il(p){try{const A=tt||P.id,ne=p==="copy"?await $("AddPathCopy",A,He):await $("AddPathLink",A,He);t(45,ze=!1),t(44,Te=null),t(49,re=[]),t(48,ue=null),await Promise.all([wl(A),et(A),ll(A)])}catch(A){t(19,M=String(A))}}function Qi(){t(45,ze=!1),t(44,Te=null)}async function Yl({id:p,type:A}){const ne=m(A==="folder"?"delete.folder":"delete.file");Et({title:m("delete.confirmTitle"),message:m("delete.confirmMessage")+" "+ne+"?",confirmText:m("common.delete"),danger:!0,onConfirm:async()=>{try{await $("DeleteFileOrFolder",p),K=K.filter(Ze=>Ze.nodeId!==p);const je=ue||P.id;await et(je)}catch(je){t(19,M=String(je))}}})}async function xi(p){if(!p||p.length===0)return;if(!P){t(19,M=m("error.selectCaseFirst"));return}const A=p[0];await ol(P.id,A)}function $i(p){return{note_created:m("event.noteCreated"),note_updated:m("event.noteUpdated"),file_added:m("event.fileAdded"),file_deleted:m("event.fileDeleted"),file_renamed:m("event.fileRenamed"),file_copied:m("event.fileCopied"),file_moved:m("event.fileMoved"),folder_added:m("event.folderAdded"),folder_deleted:m("event.folderDeleted"),folder_renamed:m("event.folderRenamed"),node_created:m("event.caseCreated"),node_updated:m("event.caseUpdated")}[p]||p}function es(p){return{project:m("kind.project"),client:m("kind.client"),document:m("kind.document"),recipe:m("kind.recipe"),folder:m("kind.folder"),note:m("kind.note"),file:m("kind.file"),archive:m("kind.archive"),case:m("kind.case")}[p]||p||m("kind.case")}function ts(){t(38,Me=!0),t(39,Le=""),t(40,Ie="open_url"),t(41,z="")}function ls(){t(38,Me=!1),t(39,Le=""),t(41,z="")}async function sl(){if(!(!Le.trim()||!z.trim()||!P))try{const p=await $("CreateAction",P.id,Ie,Le.trim(),z.trim());p&&p.id&&t(25,G=[...G,p]),t(38,Me=!1),t(39,Le=""),t(41,z="")}catch(p){t(19,M=String(p))}}async function Xl(p){try{await $("DeleteAction",p),t(25,G=G.filter(A=>A.id!==p))}catch(A){t(19,M=String(A))}}function ns(p){const A=Z.find(ne=>ne.id===p);return A?A.label:p}async function ct(p){try{const A=await $("GetNodeDetail",p);A&&St(A)}catch(A){t(19,M=String(A))}}async function Ot(){try{t(67,rt=await $("SyncStatus"))}catch{t(67,rt={configured:!1,serverUrl:"",deviceId:"",unpushedOps:0,lastSyncAt:"",syncInterval:0})}}function os(){t(66,_t=!0),t(69,Je=(rt==null?void 0:rt.serverUrl)||""),t(70,ft=""),t(71,gt=""),t(72,kt=(rt==null?void 0:rt.syncInterval)||0),t(73,Ye="")}function is(){t(66,_t=!1),t(73,Ye="")}async function ss(){t(68,lt=!0),t(73,Ye="");try{await $("SyncConfigure",Je,ft,gt),kt>0&&await $("SyncSetInterval",kt),t(71,gt=""),t(70,ft=""),await Ot(),t(66,_t=!1)}catch(p){t(73,Ye="err: "+String(p))}t(68,lt=!1)}async function rs(){t(68,lt=!0),t(73,Ye="");try{await $("SyncSetInterval",kt),t(73,Ye=m("sync.settingsSaved")),await Ot()}catch(p){t(73,Ye="err: "+String(p))}t(68,lt=!1)}async function cs(){t(68,lt=!0),t(73,Ye="");try{await $("SyncTestConnection",Je,ft,gt),t(73,Ye="connection ok")}catch(p){t(73,Ye="connection failed: "+String(p))}t(68,lt=!1)}async function as(){t(68,lt=!0),t(73,Ye="");try{await $("SyncDisconnect"),t(73,Ye="disconnected"),await Ot()}catch(p){t(73,Ye="err: "+String(p))}t(68,lt=!1)}async function us(){t(68,lt=!0),t(73,Ye="");try{const p=await $("SyncNow");t(73,Ye="pushed "+p.pushed+", pulled "+p.pulled+" (seq "+p.serverSequence+")"),await Ot()}catch(p){t(73,Ye="err: "+String(p))}t(68,lt=!1)}const fs=p=>p.nodeId===P.id,ds=p=>hl(p.id),ps=()=>t(19,M=""),ms=()=>t(19,M=""),_s=()=>t(19,M="");function vs(){R.content=this.value,t(24,R)}const hs=p=>{t(22,W=p.id),p.id==="files"&&P&&se.length===0&&!ue&&et(P.id)},ws=()=>{t(22,W="notes"),Rl()},bs=()=>{t(22,W="files"),Jl()},gs=()=>t(22,W="worklog"),ks=p=>Lt(p),ys=p=>Lt(p);function qs(){we=this.value,t(37,we)}const Cs=p=>p.key==="Enter"&&Bl(),Ss=p=>Lt(p),js=p=>Lt(p),Ts=p=>{const A=p.detail;A===0?(t(49,re=[]),t(48,ue=null),et(P.id)):gl(A-1)},Ns=p=>Qt(p.detail),Ds=p=>xt(p.detail),Ms=p=>$("OpenFile",p.detail),Fs=p=>$("OpenFolder",p.detail),Is=p=>Yl(p.detail),Es=p=>yl(p.detail.id),As=p=>kl(p.detail),Ls=p=>ql(p.detail),Ps=p=>Cl(p.detail),Os=p=>Tl(p.detail),zs=p=>jl(p.detail),Rs=p=>Nl(p.detail),Bs=p=>$("OpenFile",p.detail),Vs=p=>$("RunAction",p.id),Hs=p=>Xl(p.id);function Us(){X=this.value,t(28,X)}function Ws(){Y=Gt(this.value),t(27,Y)}const Ks=p=>p.nodeId===P.id,Gs=p=>nl(p);function Js(){v=this.value,t(7,v)}function Ys(){g=this.value,t(8,g)}const Xs=()=>{t(14,T=""),t(13,D=""),Gl()};function Zs(){T=this.value,t(14,T)}const Qs=()=>setTimeout(()=>t(16,F=!1),200),xs=p=>Kl(p);function $s(){b=this.checked,t(9,b)}function er(){y=cl(this),t(11,y)}function tr(){S=cl(this),t(12,S)}const lr=p=>ct(p.nodeId),nr=(p,A,ne,je)=>t(29,A[ne].suggestedMin=parseInt(je.target.value),J),or=p=>Ul(p),ir=p=>ct(p.nodeId),sr=p=>ct(p.nodeId),rr=(p,A,ne,je)=>t(29,A[ne].suggestedMin=parseInt(je.target.value),J),cr=p=>nl(p),ar=p=>ct(p.nodeId),ur=(p,A)=>A.key==="Enter"&&ct(p.nodeId),fr=p=>ct(p.nodeId),dr=(p,A)=>A.key==="Enter"&&ct(p.nodeId),pr=p=>ct(p.nodeId),mr=(p,A)=>A.key==="Enter"&&ct(p.nodeId),_r=p=>ct(p.nodeId),vr=(p,A)=>A.key==="Enter"&&ct(p.nodeId),hr=()=>t(34,te=null),wr=p=>t(34,te=p);function br(){pe=this.value,t(32,pe)}const gr=p=>p.key==="Enter"&&Al(),kr=p=>El(p),yr=()=>zl(le.node),qr=()=>Ll(le.node),Cr=()=>Pl(le.node),Sr=()=>Ol(le.node);function jr(){Le=this.value,t(39,Le)}const Tr=p=>p.key==="Enter"&&sl();function Nr(){Ie=cl(this),t(40,Ie),t(74,Z)}function Dr(){z=this.value,t(41,z)}const Mr=p=>p.key==="Enter"&&sl(),Fr=()=>il("copy"),Ir=()=>il("link");function Er(){ge=this.value,t(64,ge)}function Ar(){Je=this.value,t(69,Je)}function Lr(){ft=this.value,t(70,ft)}function Pr(){gt=this.value,t(71,gt)}function Or(){kt=Gt(this.value),t(72,kt)}return[n,i,s,r,a,h,_,v,g,b,k,y,S,D,T,j,F,L,N,M,V,P,W,H,R,G,Q,Y,X,J,O,ie,pe,ee,te,le,ve,we,Me,Le,Ie,z,de,ke,Te,ze,Ee,ye,ue,re,se,Ne,Se,qe,fe,me,be,Ke,Ae,Pe,Ue,Ge,We,Xe,ge,$e,_t,rt,lt,Je,ft,gt,kt,Ye,Z,vi,hl,St,et,Qt,bl,gl,xt,$t,hi,kl,yl,ql,Cl,Sl,jl,Tl,Nl,qi,Ci,Si,Fl,Ni,Di,Mi,Fi,El,Ii,Ei,Al,Ai,jt,Li,Pi,Oi,zi,Ri,Ll,Pl,Ol,zl,Rl,Bi,Bl,Lt,Vi,Hi,Ui,Wi,nl,Ul,Pt,Ki,Gi,Ji,Xi,Kl,Gl,Jl,Zi,il,Qi,Yl,$i,es,ts,ls,sl,Xl,ns,ct,os,is,ss,rs,cs,as,us,fs,ds,ps,ms,_s,vs,hs,ws,bs,gs,ks,ys,qs,Cs,Ss,js,Ts,Ns,Ds,Ms,Fs,Is,Es,As,Ls,Ps,Os,zs,Rs,Bs,Vs,Hs,Us,Ws,Ks,Gs,Js,Ys,Xs,Zs,Qs,xs,$s,er,tr,lr,nr,or,ir,sr,rr,cr,ar,ur,fr,dr,pr,mr,_r,vr,hr,wr,br,gr,kr,yr,qr,Cr,Sr,jr,Tr,Nr,Dr,Mr,Fr,Ir,Er,Ar,Lr,Pr,Or]}class su extends bt{constructor(e){super(),wt(this,e,iu,ou,ht,{},null,[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1])}}new su({target:document.getElementById("app")}); diff --git a/cmd/verstak-gui/frontend-dist/assets/main-C7UPiZtQ.css b/cmd/verstak-gui/frontend-dist/assets/main-C7UPiZtQ.css new file mode 100644 index 0000000..febf499 --- /dev/null +++ b/cmd/verstak-gui/frontend-dist/assets/main-C7UPiZtQ.css @@ -0,0 +1 @@ +.file-row.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;cursor:default;transition:background .12s;min-height:52px;-webkit-user-select:none;user-select:none;position:relative}.file-row.svelte-1skuef2.svelte-1skuef2:hover{background:#1e1e30}.file-row--selected.svelte-1skuef2.svelte-1skuef2{background:#1e1e3a;outline:1px solid #3a3a6c}.file-row--selected.svelte-1skuef2.svelte-1skuef2:hover{background:#252545}.file-row.svelte-1skuef2.svelte-1skuef2:focus-visible{outline:2px solid #5588ff;outline-offset:-2px}.file-row-icon.svelte-1skuef2.svelte-1skuef2{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:#888}.file-row-body.svelte-1skuef2.svelte-1skuef2{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.file-row-name.svelte-1skuef2.svelte-1skuef2{font-size:13px;color:#ddd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.file-row-meta.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;gap:4px;font-size:11px;color:#666}.meta-sep.svelte-1skuef2.svelte-1skuef2{color:#444}.file-row-actions.svelte-1skuef2.svelte-1skuef2{display:flex;gap:2px;align-items:center;opacity:0;transition:opacity .15s ease;flex-shrink:0}.file-row.svelte-1skuef2:hover .file-row-actions.svelte-1skuef2{opacity:1}.action-btn.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:4px;background:transparent;color:#666;cursor:pointer;transition:background .12s,color .12s}.action-btn.svelte-1skuef2.svelte-1skuef2:hover{background:#2a2a3c;color:#ccc}.action-btn-danger.svelte-1skuef2.svelte-1skuef2:hover{background:#3a2222;color:#ff6b6b}.action-btn.svelte-1skuef2.svelte-1skuef2:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.menu-backdrop.svelte-1skuef2.svelte-1skuef2{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.menu.svelte-1skuef2.svelte-1skuef2{position:fixed;background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:4px;z-index:100;min-width:220px;box-shadow:0 4px 16px #00000080}.menu-item.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;background:transparent;color:#ccc;font-size:12px;text-align:left;cursor:pointer;border-radius:4px;font-family:inherit}.menu-item.svelte-1skuef2.svelte-1skuef2:hover{background:#2a2a3c;color:#fff}.menu-item-danger.svelte-1skuef2.svelte-1skuef2{color:#ff6b6b}.menu-item-danger.svelte-1skuef2.svelte-1skuef2:hover{background:#3a2222}.menu-item.svelte-1skuef2.svelte-1skuef2:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.menu-sep.svelte-1skuef2.svelte-1skuef2{height:1px;background:#2a2a3c;margin:4px 8px}.breadcrumbs.svelte-csi2lb{display:flex;align-items:center;gap:4px;padding:8px 0;font-size:13px;color:#999}.sep.svelte-csi2lb{color:#444}.crumb.svelte-csi2lb{font-size:13px}.crumb--current.svelte-csi2lb{color:#ccc}.crumb--link.svelte-csi2lb{background:none;border:none;padding:2px 4px;color:#888;cursor:pointer;border-radius:3px;font-family:inherit;font-size:13px;transition:color .12s,background .12s}.crumb--link.svelte-csi2lb:hover{color:#ccc;background:#1e1e30}.crumb--link.svelte-csi2lb:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.overlay.svelte-1cw3u0m{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1000}.modal.svelte-1cw3u0m{background:#14141f;border:1px solid #2a2a3c;border-radius:10px;width:90vw;max-width:900px;height:85vh;max-height:700px;display:flex;flex-direction:column;overflow:hidden}.preview-header.svelte-1cw3u0m{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid #2a2a3c;flex-shrink:0}.preview-title.svelte-1cw3u0m{display:flex;align-items:center;gap:8px;color:#ddd;font-size:14px;min-width:0}.preview-name.svelte-1cw3u0m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-meta.svelte-1cw3u0m{font-size:11px;color:#666;margin-left:auto;white-space:nowrap}.preview-actions.svelte-1cw3u0m{display:flex;gap:4px;flex-shrink:0;margin-left:8px}.action-btn.svelte-1cw3u0m{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:4px;background:transparent;color:#666;cursor:pointer;transition:background .12s,color .12s}.action-btn.svelte-1cw3u0m:hover{background:#2a2a3c;color:#ccc}.action-btn.svelte-1cw3u0m:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.action-btn-close.svelte-1cw3u0m{color:#ff6b6b}.action-btn-close.svelte-1cw3u0m:hover{background:#3a2222;color:#f44}.preview-body.svelte-1cw3u0m{flex:1;overflow:auto;min-height:0}.preview-status.svelte-1cw3u0m{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;color:#888;font-size:14px}.preview-image-container.svelte-1cw3u0m{display:flex;align-items:center;justify-content:center;padding:16px;min-height:200px;background:#0e0e18}.preview-image.svelte-1cw3u0m{max-width:100%;max-height:calc(85vh - 100px);object-fit:contain;border-radius:4px}.preview-text.svelte-1cw3u0m{margin:0;padding:16px;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.5;color:#ccc;white-space:pre-wrap;word-wrap:break-word;overflow:auto}.preview-pdf-container.svelte-1cw3u0m{width:100%;height:100%}.preview-pdf.svelte-1cw3u0m{width:100%;height:100%;border:none}.btn-sm.svelte-1cw3u0m{padding:6px 14px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:12px;font-family:inherit;transition:background .12s}.btn-sm.svelte-1cw3u0m:hover{background:#223}.overlay.svelte-1fv6yyk{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200}.modal.svelte-1fv6yyk{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;padding:24px;width:360px;max-width:90vw}h3.svelte-1fv6yyk{font-size:18px;margin-bottom:12px;color:#e4e4ef}.message.svelte-1fv6yyk{font-size:14px;color:#aaa;margin-bottom:20px;line-height:1.4}.actions.svelte-1fv6yyk{display:flex;gap:8px;justify-content:flex-end}.btn.svelte-1fv6yyk{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit}.btn.svelte-1fv6yyk:hover{background:#223}.btn-primary.svelte-1fv6yyk{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-1fv6yyk:hover{background:#4f46e5}.btn-danger.svelte-1fv6yyk{background:#dc2626;border-color:#dc2626;color:#fff}.btn-danger.svelte-1fv6yyk:hover{background:#b91c1c}.btn.svelte-1fv6yyk:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.tree-item.svelte-zj71cl.svelte-zj71cl{display:flex;align-items:center;height:32px;padding-right:8px;cursor:default;font-size:13px;color:#ccc;-webkit-user-select:none;user-select:none}.tree-item.svelte-zj71cl.svelte-zj71cl:hover{background:#223}.tree-item.selected.svelte-zj71cl.svelte-zj71cl{background:#2a2a4a;color:#fff;font-weight:500}.tree-item.drop-valid.svelte-zj71cl.svelte-zj71cl{background:#1a3a1a;outline:1px solid #4ade80;outline-offset:-1px}.tree-item.drop-invalid.svelte-zj71cl.svelte-zj71cl{background:#3a1a1a;outline:1px solid #ff6b6b;outline-offset:-1px}.tree-toggle.svelte-zj71cl.svelte-zj71cl{background:none;border:none;color:#666;cursor:pointer;padding:0;width:20px;height:32px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:inherit;line-height:1;font-size:12px}.tree-toggle.svelte-zj71cl.svelte-zj71cl:hover{color:#a5b4fc}.tree-toggle-placeholder.svelte-zj71cl.svelte-zj71cl{display:inline-block;width:20px;flex-shrink:0}.tree-icon.svelte-zj71cl.svelte-zj71cl{display:inline-flex;align-items:center;justify-content:center;width:20px;height:32px;flex-shrink:0;color:#888;margin-right:4px;cursor:pointer}.tree-icon.svelte-zj71cl.svelte-zj71cl:hover,.tree-item.selected.svelte-zj71cl .tree-icon.svelte-zj71cl{color:#a5b4fc}.tree-label.svelte-zj71cl.svelte-zj71cl{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;line-height:32px}.svelte-rw0qo2.svelte-rw0qo2,.svelte-rw0qo2.svelte-rw0qo2:before,.svelte-rw0qo2.svelte-rw0qo2:after{box-sizing:border-box;margin:0;padding:0}.app.svelte-rw0qo2.svelte-rw0qo2{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-rw0qo2.svelte-rw0qo2{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-rw0qo2.svelte-rw0qo2{padding:16px 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #2a2a3c;flex-shrink:0}.logo.svelte-rw0qo2.svelte-rw0qo2{font-size:20px;line-height:1}.brand-name.svelte-rw0qo2.svelte-rw0qo2{font-size:16px;font-weight:600}.sidebar-nav.svelte-rw0qo2.svelte-rw0qo2{flex:1;overflow-y:auto;padding:12px 0}.nav-group.svelte-rw0qo2.svelte-rw0qo2{margin-bottom:16px}.nav-label.svelte-rw0qo2.svelte-rw0qo2{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666;padding:4px 20px;margin-bottom:4px}.nav-item.svelte-rw0qo2.svelte-rw0qo2{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-rw0qo2.svelte-rw0qo2:hover{background:#223}.nav-item.selected.svelte-rw0qo2.svelte-rw0qo2{background:#2a2a4a;color:#fff;font-weight:500}.workspace-tree-area.svelte-rw0qo2.svelte-rw0qo2{min-height:32px}.workspace-tree-area.drop-valid.svelte-rw0qo2.svelte-rw0qo2{outline:2px dashed #4ade80;outline-offset:-2px;background:#4ade800d}.nav-empty.svelte-rw0qo2.svelte-rw0qo2{padding:8px 20px;color:#555;font-size:12px}.nav-label-row.svelte-rw0qo2.svelte-rw0qo2{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666;padding:4px 20px;margin-bottom:4px;display:flex;align-items:center;justify-content:space-between}.nav-add-btn.svelte-rw0qo2.svelte-rw0qo2{background:none;border:none;color:#666;cursor:pointer;font-size:16px;padding:0 4px;font-family:inherit;line-height:1}.nav-add-btn.svelte-rw0qo2.svelte-rw0qo2:hover{color:#ccc}.context-menu-backdrop.svelte-rw0qo2.svelte-rw0qo2{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.context-menu.svelte-rw0qo2.svelte-rw0qo2{position:fixed;background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:4px;min-width:180px;box-shadow:0 8px 24px #0006}.context-menu-section.svelte-rw0qo2.svelte-rw0qo2{padding:6px 12px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666}.context-menu-item.svelte-rw0qo2.svelte-rw0qo2{display:flex;width:100%;padding:6px 12px;border:none;background:none;color:#ccc;font-size:13px;text-align:left;cursor:pointer;border-radius:4px;font-family:inherit;align-items:center;gap:6px}.context-menu-item.svelte-rw0qo2.svelte-rw0qo2:hover{background:#223;color:#fff}.context-menu-item.danger.svelte-rw0qo2.svelte-rw0qo2{color:#ff6b6b}.context-menu-item.danger.svelte-rw0qo2.svelte-rw0qo2:hover{background:#3a2222;color:#ff6b6b}.context-menu-divider.svelte-rw0qo2.svelte-rw0qo2{height:1px;background:#2a2a3c;margin:4px 0}.create-context.svelte-rw0qo2.svelte-rw0qo2{font-size:12px;color:#888;margin-bottom:12px}.sidebar-footer.svelte-rw0qo2.svelte-rw0qo2{padding:8px 12px;border-top:1px solid #2a2a3c;flex-shrink:0;display:flex;flex-direction:column;gap:4px}.version.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#555;text-align:center}.main.svelte-rw0qo2.svelte-rw0qo2{flex:1;display:flex;flex-direction:column;height:100vh;min-width:0;overflow:hidden;background:#13131f}.header.svelte-rw0qo2.svelte-rw0qo2{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;flex-shrink:0;min-height:48px}.header-left.svelte-rw0qo2.svelte-rw0qo2{display:flex;align-items:center;gap:8px;flex:1}.header-right.svelte-rw0qo2.svelte-rw0qo2{display:flex;align-items:center;gap:8px}.header-sync-btn.svelte-rw0qo2.svelte-rw0qo2{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-rw0qo2.svelte-rw0qo2:hover{background:#2a2a50;color:#e4e4ef;border-color:#818cf8}.header-sync-btn.svelte-rw0qo2.svelte-rw0qo2:disabled{opacity:.5;cursor:not-allowed}.sync-badge.svelte-rw0qo2.svelte-rw0qo2{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-rw0qo2.svelte-rw0qo2{font-size:14px;font-weight:500}.crumb.placeholder.svelte-rw0qo2.svelte-rw0qo2{color:#666}.crumb-type.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#555;background:#1e1e2e;padding:2px 8px;border-radius:10px;margin-left:8px}.error-banner.svelte-rw0qo2.svelte-rw0qo2{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-rw0qo2.svelte-rw0qo2{background:none;border:none;color:#f66;cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:2px}.dismiss-btn.svelte-rw0qo2.svelte-rw0qo2:hover{color:#f44}.tabs.svelte-rw0qo2.svelte-rw0qo2{display:flex;border-bottom:1px solid #2a2a3c;flex-shrink:0;padding:0 24px}.tab.svelte-rw0qo2.svelte-rw0qo2{padding:10px 16px;border:none;background:none;color:#888;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;font-family:inherit}.tab.svelte-rw0qo2.svelte-rw0qo2:hover{color:#a5b4fc}.tab.active.svelte-rw0qo2.svelte-rw0qo2{color:#e4e4ef;border-bottom-color:#818cf8;background:#6366f11f;font-weight:600}.tab-content.svelte-rw0qo2.svelte-rw0qo2{flex:1;overflow-y:auto}.note-editor.svelte-rw0qo2.svelte-rw0qo2{flex:1;display:flex;flex-direction:column;height:100%}.note-editor-header.svelte-rw0qo2.svelte-rw0qo2{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;gap:12px;flex-shrink:0}.note-title.svelte-rw0qo2.svelte-rw0qo2{font-size:16px;font-weight:500}.dirty-mark.svelte-rw0qo2.svelte-rw0qo2{color:#f59e0b;font-size:10px}.note-editor-actions.svelte-rw0qo2.svelte-rw0qo2{margin-left:auto;display:flex;gap:8px}.note-textarea.svelte-rw0qo2.svelte-rw0qo2{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-rw0qo2.svelte-rw0qo2{padding:24px}.overview.svelte-rw0qo2 h2.svelte-rw0qo2{font-size:24px;margin-bottom:16px}.meta-grid.svelte-rw0qo2.svelte-rw0qo2{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}.meta-item.svelte-rw0qo2.svelte-rw0qo2{background:#1a1a28;padding:12px 16px;border-radius:8px}.meta-label.svelte-rw0qo2.svelte-rw0qo2{display:block;font-size:11px;color:#666;margin-bottom:4px;text-transform:uppercase}.quick-actions.svelte-rw0qo2.svelte-rw0qo2{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.qa-btn.svelte-rw0qo2.svelte-rw0qo2{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-rw0qo2.svelte-rw0qo2:hover{background:#223}.qa-btn.svelte-rw0qo2.svelte-rw0qo2:disabled{opacity:.4;cursor:not-allowed}.recent-section.svelte-rw0qo2.svelte-rw0qo2{margin-bottom:24px}.recent-section.svelte-rw0qo2 h3.svelte-rw0qo2{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:8px}.recent-note.svelte-rw0qo2.svelte-rw0qo2{padding:8px 12px;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between}.recent-note.svelte-rw0qo2.svelte-rw0qo2:hover{background:#1a1a28}.recent-date.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#555}.recent-entry.svelte-rw0qo2.svelte-rw0qo2{padding:6px 0;font-size:13px;color:#888;border-bottom:1px solid #1a1a28}.notes-tab.svelte-rw0qo2.svelte-rw0qo2{padding:24px}.tab-toolbar.svelte-rw0qo2.svelte-rw0qo2{margin-bottom:16px}.create-form.svelte-rw0qo2.svelte-rw0qo2{background:#1a1a28;padding:16px;border-radius:8px;margin-bottom:16px}.create-form.svelte-rw0qo2 input.svelte-rw0qo2{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-rw0qo2 input.svelte-rw0qo2:focus{outline:none;border-color:#6366f1}.form-actions.svelte-rw0qo2.svelte-rw0qo2{display:flex;gap:8px}.notes-list.svelte-rw0qo2.svelte-rw0qo2{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.note-card.svelte-rw0qo2.svelte-rw0qo2{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:16px;cursor:pointer}.note-card.svelte-rw0qo2.svelte-rw0qo2:hover{border-color:#3a3a5c}.note-card-title.svelte-rw0qo2.svelte-rw0qo2{font-size:14px;font-weight:500;margin-bottom:4px}.note-card-date.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#555}.worklog-tab.svelte-rw0qo2.svelte-rw0qo2{padding:24px}.worklog-form.svelte-rw0qo2.svelte-rw0qo2{display:flex;gap:8px;margin-bottom:24px;align-items:center}.worklog-form.svelte-rw0qo2 input.svelte-rw0qo2{padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit}.worklog-form.svelte-rw0qo2 input.svelte-rw0qo2:focus{outline:none;border-color:#6366f1}.worklog-form.svelte-rw0qo2 input[type=text].svelte-rw0qo2{flex:1}.worklog-form.svelte-rw0qo2 input[type=number].svelte-rw0qo2{width:70px}.worklog-entry.svelte-rw0qo2.svelte-rw0qo2{padding:12px 0;border-bottom:1px solid #1a1a28}.suggestions-title.svelte-rw0qo2.svelte-rw0qo2{font-size:13px;font-weight:600;color:#a5b4fc;margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.suggestion-summary.svelte-rw0qo2.svelte-rw0qo2{font-size:14px;color:#e4e4ef}.suggestion-meta.svelte-rw0qo2.svelte-rw0qo2{font-size:12px;color:#8888a0;margin-top:2px}.suggestion-card.svelte-rw0qo2.svelte-rw0qo2{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#1e1e32;border-radius:6px;margin-bottom:8px;gap:12px}.suggestion-card.svelte-rw0qo2.svelte-rw0qo2:last-child{margin-bottom:0}.suggestion-info.svelte-rw0qo2.svelte-rw0qo2{flex:1;display:flex;flex-direction:column;gap:2px}.suggestion-node.svelte-rw0qo2.svelte-rw0qo2{color:#a5b4fc;font-weight:600;font-size:13px;text-decoration:none;cursor:pointer}.suggestion-node.svelte-rw0qo2.svelte-rw0qo2:hover{text-decoration:underline}.suggestion-actions.svelte-rw0qo2.svelte-rw0qo2{display:flex;align-items:center;gap:6px;flex-shrink:0}.suggestion-min-input.svelte-rw0qo2.svelte-rw0qo2{width:60px;padding:4px 8px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;text-align:center}.suggestion-min-label.svelte-rw0qo2.svelte-rw0qo2{font-size:12px;color:#8888a0}.suggestion-confidence.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;padding:2px 6px;border-radius:3px}.suggestion-confidence.low.svelte-rw0qo2.svelte-rw0qo2{color:#fbbf24}.suggestion-confidence.medium.svelte-rw0qo2.svelte-rw0qo2{color:#60a5fa}.suggestion-confidence.high.svelte-rw0qo2.svelte-rw0qo2{color:#34d399}.journal-screen.svelte-rw0qo2.svelte-rw0qo2{padding:24px;overflow-y:auto;flex:1}.journal-header.svelte-rw0qo2.svelte-rw0qo2{margin-bottom:24px}.journal-header.svelte-rw0qo2 h2.svelte-rw0qo2{margin:0 0 16px}.journal-filters.svelte-rw0qo2.svelte-rw0qo2{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.journal-filters.svelte-rw0qo2 label.svelte-rw0qo2{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#8888a0}.journal-filters.svelte-rw0qo2 input[type=date].svelte-rw0qo2{padding:6px 10px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:13px;font-family:inherit}.journal-filters.svelte-rw0qo2 .checkbox-label.svelte-rw0qo2{flex-direction:row;align-items:center;gap:6px;cursor:pointer}.journal-filters.svelte-rw0qo2 .checkbox-label input.svelte-rw0qo2{width:auto}.journal-summary.svelte-rw0qo2.svelte-rw0qo2{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:24px;padding:16px;background:#1a1a2e;border-radius:8px;border:1px solid #2a2a3c}.summary-total.svelte-rw0qo2.svelte-rw0qo2{font-size:18px;font-weight:700;color:#e4e4ef;width:100%;margin-bottom:4px}.summary-section.svelte-rw0qo2.svelte-rw0qo2{flex:1;min-width:200px}.summary-label.svelte-rw0qo2.svelte-rw0qo2{font-size:12px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.summary-row.svelte-rw0qo2.svelte-rw0qo2{display:flex;gap:8px;font-size:13px;padding:4px 0;border-bottom:1px solid #2a2a3c}.summary-row.svelte-rw0qo2 span.svelte-rw0qo2:first-child{flex:1;color:#e4e4ef}.summary-count.svelte-rw0qo2.svelte-rw0qo2{color:#8888a0}.journal-table-wrap.svelte-rw0qo2.svelte-rw0qo2{overflow-x:auto}.journal-table.svelte-rw0qo2.svelte-rw0qo2{width:100%;border-collapse:collapse;font-size:13px}.journal-table.svelte-rw0qo2 th.svelte-rw0qo2{text-align:left;padding:8px 12px;border-bottom:2px solid #2a2a3c;color:#8888a0;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.journal-table.svelte-rw0qo2 td.svelte-rw0qo2{padding:8px 12px;border-bottom:1px solid #1a1a28;color:#e4e4ef}.journal-table.svelte-rw0qo2 .link-btn.svelte-rw0qo2{color:#a5b4fc}.journal-path-cell.svelte-rw0qo2.svelte-rw0qo2{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8888a0;font-size:12px}.journal-min-cell.svelte-rw0qo2.svelte-rw0qo2{text-align:right;font-variant-numeric:tabular-nums}.journal-date-cell.svelte-rw0qo2.svelte-rw0qo2{color:#8888a0;white-space:nowrap}.journal-node-picker.svelte-rw0qo2 input[type=text].svelte-rw0qo2{padding:6px 10px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:13px;font-family:inherit;width:240px}.journal-search-dropdown.svelte-rw0qo2.svelte-rw0qo2{position:absolute;top:100%;left:0;right:0;z-index:50;background:#1a1a28;border:1px solid #2a2a3c;border-radius:6px;margin-top:4px;max-height:240px;overflow-y:auto;min-width:260px}.journal-search-item.svelte-rw0qo2.svelte-rw0qo2{display:block;width:100%;padding:8px 12px;border:none;background:transparent;color:#e4e4ef;cursor:pointer;font-family:inherit;font-size:13px;text-align:left}.journal-search-item.svelte-rw0qo2.svelte-rw0qo2:hover{background:#2a2a4a}.journal-search-title.svelte-rw0qo2.svelte-rw0qo2{display:block;font-weight:500}.journal-search-path.svelte-rw0qo2.svelte-rw0qo2{display:block;font-size:11px;color:#8888a0;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journal-selected-node.svelte-rw0qo2.svelte-rw0qo2{cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:#1e1e3a;border:1px solid #3a3a5c;border-radius:4px;font-size:13px;color:#a5b4fc;white-space:nowrap;font-family:inherit}.journal-selected-node.svelte-rw0qo2.svelte-rw0qo2:hover{background:#2a2a4a}.journal-node-clear.svelte-rw0qo2.svelte-rw0qo2{color:#8888a0;font-size:14px;margin-left:4px}.today-suggestions.svelte-rw0qo2.svelte-rw0qo2{margin-bottom:24px}.link-btn.svelte-rw0qo2.svelte-rw0qo2{background:none;border:none;padding:0;color:#a5b4fc;font:inherit;cursor:pointer;text-align:left}.link-btn.svelte-rw0qo2.svelte-rw0qo2:hover{text-decoration:underline}.nav-badge.svelte-rw0qo2.svelte-rw0qo2{background:#6366f1;color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:1px 6px;margin-left:6px;line-height:1.4}.wl-meta.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#555;margin-top:2px}.actions-tab.svelte-rw0qo2.svelte-rw0qo2{padding:24px}.action-card.svelte-rw0qo2.svelte-rw0qo2{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-rw0qo2.svelte-rw0qo2{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.action-title.svelte-rw0qo2.svelte-rw0qo2{font-weight:500}.action-type.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px;white-space:nowrap}.action-data.svelte-rw0qo2.svelte-rw0qo2{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-rw0qo2.svelte-rw0qo2{display:flex;gap:4px;flex-shrink:0}.action-btns.svelte-rw0qo2 .btn-danger.svelte-rw0qo2{color:#ff6b6b;border-color:#4a2222;padding:4px 8px}.action-btns.svelte-rw0qo2 .btn-danger.svelte-rw0qo2:hover{background:#3a2222}.empty-state.svelte-rw0qo2.svelte-rw0qo2{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-state.svelte-rw0qo2 p.svelte-rw0qo2{margin:0;font-size:14px;color:#666}.empty-state.svelte-rw0qo2 .empty-icon.svelte-rw0qo2{margin-bottom:12px;color:#444}.empty-state.svelte-rw0qo2 .hint.svelte-rw0qo2{font-size:12px;color:#555;margin-top:6px}.empty-state.svelte-rw0qo2 .empty-actions.svelte-rw0qo2{display:flex;gap:8px;justify-content:center;margin-top:16px}.welcome.svelte-rw0qo2.svelte-rw0qo2{padding:48px 24px;text-align:center}.welcome.svelte-rw0qo2 h2.svelte-rw0qo2{font-size:32px;font-weight:300;color:#8888a4;margin-bottom:16px}.welcome.svelte-rw0qo2 p.svelte-rw0qo2{color:#666;font-size:14px}.error-text.svelte-rw0qo2.svelte-rw0qo2{color:#f88}.modal-overlay.svelte-rw0qo2.svelte-rw0qo2{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-rw0qo2.svelte-rw0qo2{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;padding:24px;width:400px;max-width:90vw}.modal.svelte-rw0qo2 h3.svelte-rw0qo2{font-size:18px;margin-bottom:16px}.form-group.svelte-rw0qo2.svelte-rw0qo2{margin-bottom:12px}.form-group.svelte-rw0qo2 label.svelte-rw0qo2{display:block}.form-group.svelte-rw0qo2 .label-text.svelte-rw0qo2,.form-group.svelte-rw0qo2 .form-label.svelte-rw0qo2{display:block;font-size:12px;color:#666;margin-bottom:4px}.form-group.svelte-rw0qo2 input.svelte-rw0qo2,.form-group.svelte-rw0qo2 select.svelte-rw0qo2{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-rw0qo2 select.svelte-rw0qo2{-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-rw0qo2 input.svelte-rw0qo2:focus,.form-group.svelte-rw0qo2 select.svelte-rw0qo2:focus{outline:none;border-color:#6366f1}.modal-actions.svelte-rw0qo2.svelte-rw0qo2{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.btn.svelte-rw0qo2.svelte-rw0qo2{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit}.btn.svelte-rw0qo2.svelte-rw0qo2:hover{background:#223}.btn-primary.svelte-rw0qo2.svelte-rw0qo2{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-rw0qo2.svelte-rw0qo2:hover{background:#4f46e5}.btn.svelte-rw0qo2.svelte-rw0qo2:disabled{opacity:.4;cursor:not-allowed}.btn-sm.svelte-rw0qo2.svelte-rw0qo2{padding:4px 10px;font-size:12px}.btn-danger.svelte-rw0qo2.svelte-rw0qo2{color:#ff6b6b;border-color:#4a2222}.btn-danger.svelte-rw0qo2.svelte-rw0qo2:hover{background:#3a2222}.files-tab.svelte-rw0qo2.svelte-rw0qo2{padding:20px}.files-tab.svelte-rw0qo2 .tab-toolbar.svelte-rw0qo2{display:flex;gap:8px;align-items:center;margin-bottom:16px}.file-list.svelte-rw0qo2.svelte-rw0qo2{display:flex;flex-direction:column}.back-btn.svelte-rw0qo2.svelte-rw0qo2{margin-bottom:4px;display:inline-flex;align-items:center;gap:4px}.import-summary.svelte-rw0qo2.svelte-rw0qo2{margin-bottom:16px}.summary-row.svelte-rw0qo2.svelte-rw0qo2{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;border-bottom:1px solid #2a2a3c}.summary-warn.svelte-rw0qo2.svelte-rw0qo2{margin-top:8px;padding:8px 12px;background:#3a2a22;border-radius:6px;color:#fa6;font-size:13px}.rename-error.svelte-rw0qo2.svelte-rw0qo2{color:#ff6b6b;font-size:12px;margin-top:4px}.template-cards.svelte-rw0qo2.svelte-rw0qo2{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.template-card.svelte-rw0qo2.svelte-rw0qo2{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid #2a2a3c;background:#13131f;color:#ccc;border-radius:8px;cursor:pointer;font-size:13px;font-family:inherit;width:100%;text-align:left}.template-card.svelte-rw0qo2.svelte-rw0qo2:hover{background:#1e1e30;border-color:#3a3a5c}.template-card.selected.svelte-rw0qo2.svelte-rw0qo2{background:#2a2a50;border-color:#6366f1;color:#e4e4ef}.template-card-text.svelte-rw0qo2.svelte-rw0qo2{display:flex;flex-direction:column;gap:2px;min-width:0}.template-card-title.svelte-rw0qo2.svelte-rw0qo2{font-weight:500}.template-card-desc.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#888}.today-dashboard.svelte-rw0qo2.svelte-rw0qo2{padding:24px;overflow-y:auto;flex:1}.today-header.svelte-rw0qo2.svelte-rw0qo2{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.today-header.svelte-rw0qo2 h2.svelte-rw0qo2{font-size:24px}.today-date.svelte-rw0qo2.svelte-rw0qo2{font-size:13px;color:#666}.today-summary.svelte-rw0qo2.svelte-rw0qo2{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.summary-chip.svelte-rw0qo2.svelte-rw0qo2{font-size:12px;color:#b0b0c0;background:#1a1a28;border:1px solid #2a2a3c;padding:4px 12px;border-radius:16px}.today-case.svelte-rw0qo2.svelte-rw0qo2{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;margin-bottom:12px;overflow:hidden}.today-case-header.svelte-rw0qo2.svelte-rw0qo2{padding:12px 16px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #2a2a3c;cursor:pointer}.today-case-header.svelte-rw0qo2.svelte-rw0qo2:hover{background:#1e1e30}.today-case-title.svelte-rw0qo2.svelte-rw0qo2{font-weight:500}.today-case-type.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px}.today-case-count.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#6366f1;margin-left:4px}.today-case-time.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#555;margin-left:auto}.today-events.svelte-rw0qo2.svelte-rw0qo2{padding:8px 16px}.today-event.svelte-rw0qo2.svelte-rw0qo2{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:#b0b0c0;cursor:pointer}.today-event.svelte-rw0qo2.svelte-rw0qo2:hover{color:#e4e4ef}.today-event-icon.svelte-rw0qo2.svelte-rw0qo2{width:18px;text-align:center;color:#6366f1;font-size:13px}.today-event-title.svelte-rw0qo2.svelte-rw0qo2{flex:1}.today-event-type.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#666}.today-event-time.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#555;margin-left:auto}.today-events-empty.svelte-rw0qo2.svelte-rw0qo2{padding:8px 16px;font-size:13px;color:#666;font-style:italic}.today-empty.svelte-rw0qo2.svelte-rw0qo2{padding:48px 24px;text-align:center}.today-empty.svelte-rw0qo2 p.svelte-rw0qo2{color:#666;font-size:14px;margin:0}.today-empty.svelte-rw0qo2 .hint.svelte-rw0qo2{font-size:12px;color:#555;margin-top:8px}.today-timeline.svelte-rw0qo2.svelte-rw0qo2{margin-top:24px}.today-timeline.svelte-rw0qo2 h3.svelte-rw0qo2{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:12px}.timeline-event.svelte-rw0qo2.svelte-rw0qo2{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-rw0qo2.svelte-rw0qo2:hover{color:#e4e4ef}.timeline-dot.svelte-rw0qo2.svelte-rw0qo2{width:6px;height:6px;border-radius:50%;background:#6366f1;margin-left:-19px;flex-shrink:0}.timeline-title.svelte-rw0qo2.svelte-rw0qo2{flex:1}.timeline-type.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#666}.timeline-time.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#555}.activity-tab.svelte-rw0qo2.svelte-rw0qo2{padding:24px}.activity-events.svelte-rw0qo2.svelte-rw0qo2{display:flex;flex-direction:column;gap:2px}.activity-event.svelte-rw0qo2.svelte-rw0qo2{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;color:#b0b0c0;cursor:pointer}.activity-event.svelte-rw0qo2.svelte-rw0qo2:hover{background:#1a1a28;color:#e4e4ef}.activity-event-icon.svelte-rw0qo2.svelte-rw0qo2{width:18px;text-align:center;color:#6366f1;font-size:13px;flex-shrink:0}.activity-event-title.svelte-rw0qo2.svelte-rw0qo2{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-event-type.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#666;flex-shrink:0}.activity-event-target.svelte-rw0qo2.svelte-rw0qo2{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px;flex-shrink:0}.activity-event-time.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#555;margin-left:8px;flex-shrink:0}.activity-feed.svelte-rw0qo2.svelte-rw0qo2{padding:24px;overflow-y:auto;flex:1}.activity-feed-header.svelte-rw0qo2.svelte-rw0qo2{margin-bottom:20px}.activity-feed-header.svelte-rw0qo2 h2.svelte-rw0qo2{font-size:24px}.activity-feed-events.svelte-rw0qo2.svelte-rw0qo2{display:flex;flex-direction:column;gap:2px}.activity-feed-event.svelte-rw0qo2.svelte-rw0qo2{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer}.activity-feed-event.svelte-rw0qo2.svelte-rw0qo2:hover{background:#1a1a28;color:#e4e4ef}.activity-feed-icon.svelte-rw0qo2.svelte-rw0qo2{width:20px;text-align:center;color:#6366f1;font-size:14px;flex-shrink:0;margin-top:1px}.activity-feed-body.svelte-rw0qo2.svelte-rw0qo2{flex:1;min-width:0}.activity-feed-title.svelte-rw0qo2.svelte-rw0qo2{font-size:14px;color:#e4e4ef}.activity-feed-meta.svelte-rw0qo2.svelte-rw0qo2{display:flex;align-items:center;gap:8px;margin-top:2px}.activity-feed-type.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#666}.activity-feed-target.svelte-rw0qo2.svelte-rw0qo2{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px}.activity-feed-time.svelte-rw0qo2.svelte-rw0qo2{font-size:11px;color:#555}.sidebar-sync-btn.svelte-rw0qo2.svelte-rw0qo2{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-rw0qo2.svelte-rw0qo2:hover{background:#2a2a50;color:#e4e4ef;border-color:#818cf8}.sidebar-sync-label.svelte-rw0qo2.svelte-rw0qo2{flex:1;text-align:left}.sync-dot.svelte-rw0qo2.svelte-rw0qo2{width:8px;height:8px;border-radius:50%;background:#4a4a4a;flex-shrink:0}.sync-dot.active.svelte-rw0qo2.svelte-rw0qo2{background:#4ade80;box-shadow:0 0 6px #4ade8080}.modal-sync.svelte-rw0qo2.svelte-rw0qo2{width:460px}.sync-status.svelte-rw0qo2.svelte-rw0qo2{background:#13131f;border-radius:8px;padding:12px;margin-bottom:16px}.sync-row.svelte-rw0qo2.svelte-rw0qo2{display:flex;justify-content:space-between;padding:4px 0;font-size:13px}.sync-label.svelte-rw0qo2.svelte-rw0qo2{color:#666}.sync-value.svelte-rw0qo2.svelte-rw0qo2{color:#e4e4ef}.sync-value.mono.svelte-rw0qo2.svelte-rw0qo2{font-family:SF Mono,Fira Code,monospace;font-size:12px}.sync-result.svelte-rw0qo2.svelte-rw0qo2{font-size:12px;color:#6366f1;padding:4px 0}.sync-connected-actions.svelte-rw0qo2.svelte-rw0qo2{display:flex;gap:8px;margin-bottom:16px} diff --git a/cmd/verstak-gui/frontend-dist/assets/main-DGiHvQWG.js b/cmd/verstak-gui/frontend-dist/assets/main-DGiHvQWG.js new file mode 100644 index 0000000..8469595 --- /dev/null +++ b/cmd/verstak-gui/frontend-dist/assets/main-DGiHvQWG.js @@ -0,0 +1,3 @@ +var Nr=Object.defineProperty;var Dr=(l,e,t)=>e in l?Nr(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t;var il=(l,e,t)=>Dr(l,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const r of s.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function t(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(o){if(o.ep)return;o.ep=!0;const s=t(o);fetch(o.href,s)}})();function ie(){}function qi(l){return l()}function Gl(){return Object.create(null)}function he(l){l.forEach(qi)}function Rt(l){return typeof l=="function"}function vt(l,e){return l!=l?e==e:l!==e||l&&typeof l=="object"||typeof l=="function"}let Vt;function Ut(l,e){return l===e?!0:(Vt||(Vt=document.createElement("a")),Vt.href=e,l===Vt.href)}function Mr(l){return Object.keys(l).length===0}const Fr=typeof window<"u"?window:typeof globalThis<"u"?globalThis:global;function a(l,e){l.appendChild(e)}function C(l,e,t){l.insertBefore(e,t||null)}function z(l){l.parentNode&&l.parentNode.removeChild(l)}function Ve(l,e){for(let t=0;tl.removeEventListener(e,t,n)}function ul(l){return function(e){return e.preventDefault(),l.call(this,e)}}function it(l){return function(e){return e.stopPropagation(),l.call(this,e)}}function yt(l){return function(e){e.target===this&&l.call(this,e)}}function i(l,e,t){t==null?l.removeAttribute(e):l.getAttribute(e)!==t&&l.setAttribute(e,t)}function Wt(l){return l===""?null:+l}function Ir(l){return Array.from(l.childNodes)}function U(l,e){e=""+e,l.data!==e&&(l.data=e)}function ge(l,e){l.value=e??""}function qe(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 o=l.$$.callbacks[e];if(o){const s=Er(e,t,{cancelable:n});return o.slice().forEach(r=>{r.call(l,s)}),!s.defaultPrevented}return!0}}function Yi(l,e){const t=l.$$.callbacks[e.type];t&&t.slice().forEach(n=>n.call(this,e))}const St=[],ql=[];let jt=[];const Jl=[],Ar=Promise.resolve();let al=!1;function Lr(){al||(al=!0,Ar.then(Xi))}function Nt(l){jt.push(l)}const sl=new Set;let Ct=0;function Xi(){if(Ct!==0)return;const l=Bt;do{try{for(;Ctl.indexOf(n)===-1?e.push(n):t.push(n)),t.forEach(n=>n()),jt=e}const Ht=new Set;let kt;function $e(){kt={r:0,c:[],p:kt}}function et(){kt.r||he(kt.c),kt=kt.p}function re(l,e){l&&l.i&&(Ht.delete(l),l.i(e))}function pe(l,e,t,n){if(l&&l.o){if(Ht.has(l))return;Ht.add(l),kt.c.push(()=>{Ht.delete(l),n&&(t&&l.d(1),n())}),l.o(e)}else n&&n()}function fe(l){return(l==null?void 0:l.length)!==void 0?l:Array.from(l)}function Zi(l,e){pe(l,1,1,()=>{e.delete(l.key)})}function Qi(l,e,t,n,o,s,r,c,f,d,h,_){let v=l.length,y=s.length,g=v;const k={};for(;g--;)k[l[g].key]=g;const w=[],T=new Map,M=new Map,N=[];for(g=y;g--;){const S=_(o,s,g),A=t(S);let V=r.get(A);V?N.push(()=>V.p(S,e)):(V=d(A,S),V.c()),T.set(A,w[g]=V),A in k&&M.set(A,Math.abs(g-k[A]))}const j=new Set,D=new Set;function L(S){re(S,1),S.m(c,h),r.set(S.key,S),h=S.first,y--}for(;v&&y;){const S=w[y-1],A=l[v-1],V=S.key,P=A.key;S===A?(h=S.first,v--,y--):T.has(P)?!r.has(V)||j.has(V)?L(S):D.has(P)?v--:M.get(V)>M.get(P)?(D.add(V),L(S)):(j.add(P),v--):(f(A,r),v--)}for(;v--;){const S=l[v];T.has(S.key)||f(S,r)}for(;y;)L(w[y-1]);return he(N),w}function ot(l){l&&l.c()}function lt(l,e,t){const{fragment:n,after_update:o}=l.$$;n&&n.m(e,t),Nt(()=>{const s=l.$$.on_mount.map(qi).filter(Rt);l.$$.on_destroy?l.$$.on_destroy.push(...s):he(s),l.$$.on_mount=[]}),o.forEach(Nt)}function nt(l,e){const t=l.$$;t.fragment!==null&&(Or(t.after_update),he(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function Br(l,e){l.$$.dirty[0]===-1&&(St.push(l),Lr(),l.$$.dirty.fill(0)),l.$$.dirty[e/31|0]|=1<{const g=y.length?y[0]:v;return d.ctx&&o(d.ctx[_],d.ctx[_]=g)&&(!d.skip_bound&&d.bound[_]&&d.bound[_](g),h&&Br(l,_)),v}):[],d.update(),h=!0,he(d.before_update),d.fragment=n?n(d.ctx):!1,e.target){if(e.hydrate){const _=Ir(e.target);d.fragment&&d.fragment.l(_),_.forEach(z)}else d.fragment&&d.fragment.c();e.intro&&re(l.$$.fragment),lt(l,e.target,e.anchor),Xi()}Ot(f)}class bt{constructor(){il(this,"$$");il(this,"$$set")}$destroy(){nt(this,1),this.$destroy=ie}$on(e,t){if(!Rt(t))return ie;const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{const o=n.indexOf(t);o!==-1&&n.splice(o,1)}}$set(e){this.$$set&&!Mr(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const Rr="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Rr);function Vr(l){let e,t;return{c(){e=R("path"),t=R("polyline"),i(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),i(t,"points","14 2 14 8 20 8")},m(n,o){C(n,e,o),C(n,t,o)},d(n){n&&(z(e),z(t))}}}function Hr(l){let e,t,n,o,s;return{c(){e=R("path"),t=R("polyline"),n=R("line"),o=R("line"),s=R("polyline"),i(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),i(t,"points","14 2 14 8 20 8"),i(n,"x1","16"),i(n,"y1","13"),i(n,"x2","8"),i(n,"y2","13"),i(o,"x1","16"),i(o,"y1","17"),i(o,"x2","8"),i(o,"y2","17"),i(s,"points","10 9 9 9 8 9")},m(r,c){C(r,e,c),C(r,t,c),C(r,n,c),C(r,o,c),C(r,s,c)},d(r){r&&(z(e),z(t),z(n),z(o),z(s))}}}function Ur(l){let e,t;return{c(){e=R("polyline"),t=R("polyline"),i(e,"points","16 18 22 12 16 6"),i(t,"points","8 6 2 12 8 18")},m(n,o){C(n,e,o),C(n,t,o)},d(n){n&&(z(e),z(t))}}}function Wr(l){let e,t,n,o;return{c(){e=R("path"),t=R("polyline"),n=R("line"),o=R("rect"),i(e,"d","M21 8v13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8"),i(t,"points","7 3 12 8 17 3"),i(n,"x1","3"),i(n,"y1","8"),i(n,"x2","21"),i(n,"y2","8"),i(o,"x","10"),i(o,"y","12"),i(o,"width","4"),i(o,"height","4"),i(o,"rx","1")},m(s,r){C(s,e,r),C(s,t,r),C(s,n,r),C(s,o,r)},d(s){s&&(z(e),z(t),z(n),z(o))}}}function Kr(l){let e,t,n,o,s;return{c(){e=R("path"),t=R("polyline"),n=R("line"),o=R("line"),s=R("line"),i(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),i(t,"points","14 2 14 8 20 8"),i(n,"x1","9"),i(n,"y1","12"),i(n,"x2","15"),i(n,"y2","12"),i(o,"x1","9"),i(o,"y1","15"),i(o,"x2","13"),i(o,"y2","15"),i(s,"x1","12"),i(s,"y1","15"),i(s,"x2","12"),i(s,"y2","18")},m(r,c){C(r,e,c),C(r,t,c),C(r,n,c),C(r,o,c),C(r,s,c)},d(r){r&&(z(e),z(t),z(n),z(o),z(s))}}}function Gr(l){let e,t,n,o,s,r;return{c(){e=R("path"),t=R("polyline"),n=R("line"),o=R("line"),s=R("line"),r=R("line"),i(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),i(t,"points","14 2 14 8 20 8"),i(n,"x1","8"),i(n,"y1","12"),i(n,"x2","16"),i(n,"y2","12"),i(o,"x1","8"),i(o,"y1","16"),i(o,"x2","16"),i(o,"y2","16"),i(s,"x1","8"),i(s,"y1","14"),i(s,"x2","12"),i(s,"y2","14"),i(r,"x1","12"),i(r,"y1","12"),i(r,"x2","12"),i(r,"y2","18")},m(c,f){C(c,e,f),C(c,t,f),C(c,n,f),C(c,o,f),C(c,s,f),C(c,r,f)},d(c){c&&(z(e),z(t),z(n),z(o),z(s),z(r))}}}function qr(l){let e,t,n,o;return{c(){e=R("path"),t=R("polyline"),n=R("line"),o=R("line"),i(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),i(t,"points","14 2 14 8 20 8"),i(n,"x1","16"),i(n,"y1","13"),i(n,"x2","8"),i(n,"y2","13"),i(o,"x1","16"),i(o,"y1","17"),i(o,"x2","8"),i(o,"y2","17")},m(s,r){C(s,e,r),C(s,t,r),C(s,n,r),C(s,o,r)},d(s){s&&(z(e),z(t),z(n),z(o))}}}function Jr(l){let e,t,n,o,s;return{c(){e=R("path"),t=R("polyline"),n=R("line"),o=R("line"),s=R("line"),i(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),i(t,"points","14 2 14 8 20 8"),i(n,"x1","8"),i(n,"y1","12"),i(n,"x2","16"),i(n,"y2","12"),i(o,"x1","8"),i(o,"y1","16"),i(o,"x2","16"),i(o,"y2","16"),i(s,"x1","8"),i(s,"y1","14"),i(s,"x2","12"),i(s,"y2","14")},m(r,c){C(r,e,c),C(r,t,c),C(r,n,c),C(r,o,c),C(r,s,c)},d(r){r&&(z(e),z(t),z(n),z(o),z(s))}}}function Yr(l){let e,t,n;return{c(){e=R("path"),t=R("circle"),n=R("circle"),i(e,"d","M9 18V5l12-2v13"),i(t,"cx","6"),i(t,"cy","18"),i(t,"r","3"),i(n,"cx","18"),i(n,"cy","16"),i(n,"r","3")},m(o,s){C(o,e,s),C(o,t,s),C(o,n,s)},d(o){o&&(z(e),z(t),z(n))}}}function Xr(l){let e,t;return{c(){e=R("rect"),t=R("polyline"),i(e,"x","2"),i(e,"y","4"),i(e,"width","20"),i(e,"height","16"),i(e,"rx","2"),i(t,"points","10 9 16 12 10 15 10 9")},m(n,o){C(n,e,o),C(n,t,o)},d(n){n&&(z(e),z(t))}}}function Zr(l){let e,t,n;return{c(){e=R("rect"),t=R("circle"),n=R("polyline"),i(e,"x","3"),i(e,"y","3"),i(e,"width","18"),i(e,"height","18"),i(e,"rx","2"),i(e,"ry","2"),i(t,"cx","8.5"),i(t,"cy","8.5"),i(t,"r","1.5"),i(n,"points","21 15 16 10 5 21")},m(o,s){C(o,e,s),C(o,t,s),C(o,n,s)},d(o){o&&(z(e),z(t),z(n))}}}function Qr(l){let e;return{c(){e=R("path"),i(e,"d","M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z")},m(t,n){C(t,e,n)},d(t){t&&z(e)}}}function xr(l){let e;function t(s,r){return s[0]==="folder"?Qr:s[0]==="image"?Zr:s[0]==="video"?Xr:s[0]==="audio"?Yr:s[0]==="pdf"?Jr:s[0]==="document"?qr:s[0]==="spreadsheet"?Gr:s[0]==="presentation"?Kr:s[0]==="archive"?Wr:s[0]==="code"?Ur:s[0]==="text"?Hr:Vr}let n=t(l),o=n(l);return{c(){e=R("svg"),o.c(),i(e,"width",l[1]),i(e,"height",l[1]),i(e,"viewBox","0 0 24 24"),i(e,"fill","none"),i(e,"stroke","currentColor"),i(e,"stroke-width","1.5"),i(e,"stroke-linecap","round"),i(e,"stroke-linejoin","round"),i(e,"xmlns","http://www.w3.org/2000/svg")},m(s,r){C(s,e,r),o.m(e,null)},p(s,[r]){n!==(n=t(s))&&(o.d(1),o=n(s),o&&(o.c(),o.m(e,null))),r&2&&i(e,"width",s[1]),r&2&&i(e,"height",s[1])},i:ie,o:ie,d(s){s&&z(e),o.d()}}}function $r(l,e,t){let{kind:n="generic"}=e,{size:o=20}=e;return l.$$set=s=>{"kind"in s&&t(0,n=s.kind),"size"in s&&t(1,o=s.size)},[n,o]}class xi extends bt{constructor(e){super(),ht(this,e,$r,xr,vt,{kind:0,size:1})}}const ea={"nav.today":"Сегодня","nav.inbox":"Неразобранное","nav.activity":"Активность","nav.journal":"Журнал","nav.clients":"Клиенты","nav.projects":"Проекты","nav.recipes":"Рецепты","nav.documents":"Документы","nav.archive":"Архив","nav.sections":"Разделы","nav.cases":"Дела","nav.noCases":"Нет дел","nav.sync":"Синхронизация","nav.syncSettings":"Настройки синхронизации","nav.syncNow":"Синхронизировать","nav.selectPrompt":"Выберите раздел или дело","nav.brand":"Верстак","nav.system":"Системное","nav.workspace":"Рабочее пространство","nav.noNodes":"Нет узлов","nav.openFolder":"Открыть папку","nav.createInside":"Создать внутри","nav.createNode":"Создать элемент","nav.moveToRoot":"Переместить в корень","tab.overview":"Обзор","tab.notes":"Заметки","tab.files":"Файлы","tab.actions":"Действия","tab.worklog":"Журнал","tab.activity":"Активность","common.save":"Сохранить","common.cancel":"Отмена","common.delete":"Удалить","common.rename":"Переименовать","common.close":"Закрыть","common.create":"Создать","common.confirm":"Подтверждение","common.back":"← Назад","common.loading":"Загрузка...","common.error":"Ошибка:","common.yes":"Да","common.ok":"OK","common.copy":"Копировать","common.cut":"Вырезать","common.paste":"Вставить","common.duplicate":"Дублировать","common.run":"Запустить","common.test":"Test","common.all":"Все","common.no":"Нет","common.date":"Дата","common.search":"Найти","common.testAgain":"Проверить","common.connect":"Подключиться","common.disconnect":"Отключиться","common.settings":"Настройки","common.name":"Название","common.type":"Тип","common.section":"Раздел","common.created":"Создано","common.empty":"Нет","common.newName":"Новое имя","welcome.title":"Верстак","welcome.selectSection":"Выберите раздел в боковой панели.","welcome.createCase":"Или создайте новое дело кнопкой «+».","welcome.addCase":"Добавить дело","event.noteCreated":"Заметка создана","event.noteUpdated":"Заметка изменена","event.fileAdded":"Файл добавлен","event.fileDeleted":"Файл удалён","event.fileRenamed":"Файл переименован","event.fileCopied":"Файл скопирован","event.fileMoved":"Файл перемещён","event.folderAdded":"Папка добавлена","event.folderDeleted":"Папка удалена","event.folderRenamed":"Папка переименована","event.caseCreated":"Дело создано","event.caseUpdated":"Дело изменено","kind.project":"Проект","kind.client":"Клиент","kind.document":"Документ","kind.recipe":"Рецепт","kind.folder":"Папка","kind.note":"Заметка","kind.file":"Файл","kind.archive":"Архив","kind.case":"Дело","action.openUrl":"Открыть URL","action.openFile":"Открыть файл","action.openFolder":"Открыть папку","action.runCommand":"Запустить команду","action.runScript":"Запустить скрипт","action.openTerminal":"Открыть терминал","action.launchApp":"Запустить приложение","action.addAction":"+ Добавить действие","action.newAction":"Новое действие","action.noActions":"Действий пока нет","action.run":"Запустить","action.dataUrl":"URL","action.dataPath":"Путь","action.dataCommand":"Команда","action.urlPlaceholder":"https://example.com","action.pathPlaceholder":"/path/to/file","action.commandPlaceholder":"команда","action.namePlaceholder":"Например: Открыть сайт","note.add":"+ Добавить заметку","note.new":"Новая заметка","note.title":"Название заметки","note.noNotes":"Нет заметок","note.createFirst":"Создайте первую заметку для этого дела.","note.placeholder":"Начните писать...","note.unsavedTitle":"Несохранённые изменения","note.unsavedMessage":"Закрыть редактор? Все несохранённые изменения будут потеряны.","note.unsavedClose":"Закрыть","file.addFile":"+ Добавить файл","file.addFolder":"+ Добавить папку","file.newFile":"+ Новый файл","file.addFileSimple":"Добавить файл","file.addFolderSimple":"Добавить папку","file.noFiles":"В этой папке пока нет файлов","file.noFilesCase":"В этом проекте пока нет файлов","file.hint":"Добавьте файл или папку, чтобы сохранить материалы проекта.","file.root":"Файлы","file.preview":"Предпросмотр","file.openExternal":"Открыть во внешней программе","file.openFolder":"Открыть папку","file.showInExplorer":"Показать в проводнике","file.more":"Ещё","file.delete":"Удалить","file.ariaFolder":"Папка","file.ariaFile":"Файл","file.scanning":"Сканирование...","file.pickSingle":"Выберите файл","file.pickMultiple":"Выберите файлы","file.pickDirectory":"Выберите папку","file.importTitle":"Добавить в","file.importFiles":"Файлов:","file.importFolders":"Папок:","file.importSize":"Размер:","file.importCopy":"Скопировать","file.importLink":"Привязать","file.selectCaseFirst":"Сначала выберите дело для добавления файлов","worklog.title":"Журнал","worklog.whatDone":"Что сделано","worklog.minutes":"Мин","worklog.min":"мин","worklog.log":"Записать","worklog.empty":"Записей работы пока нет","worklog.suggestions":"Предложения на сегодня","worklog.apply":"Применить","sync.title":"Синхронизация","sync.settings":"Настройки синхронизации","sync.status":"Статус","sync.server":"Сервер","sync.device":"Устройство","sync.deviceId":"ID устройства","sync.unpushed":"Неотправлено","sync.lastSync":"Последняя синх.","sync.revoked":"Отозвано","sync.connected":"Подключено","sync.notConnected":"Не подключено","sync.disabled":"Отключена","sync.serverUrl":"URL сервера","sync.serverUrlPlaceholder":"https://example.com:47732","sync.username":"Логин","sync.usernamePlaceholder":"username","sync.password":"Пароль","sync.passwordPlaceholder":"password","sync.autoSync":"Автосинхронизация (мин, 0 = отключено)","sync.saveInterval":"Сохранить интервал","sync.syncNow":"Синхронизировать","sync.disconnect":"Отключиться","sync.connect":"Подключиться","sync.test":"Проверить","sync.settingsSaved":"интервал сохранён","today.title":"Сегодня","today.changedCases":"Изменён сегодня","today.timeline":"Лента за сегодня","today.empty":"Сегодня пока тихо","today.emptyHint":"Здесь появятся дела, заметки, файлы и действия, с которыми вы работали сегодня.","today.plural.case_one":"дело","today.plural.case_few":"дела","today.plural.case_many":"дел","today.plural.note_one":"заметка","today.plural.note_few":"заметки","today.plural.note_many":"заметок","today.plural.file_one":"файл","today.plural.file_few":"файла","today.plural.file_many":"файлов","today.plural.event_one":"событие","today.plural.event_few":"события","today.plural.event_many":"событий","journal.title":"Журнал работы","journal.empty":"Нет записей за выбранный период","journal.dateFrom":"От","journal.dateTo":"До","journal.filter":"Фильтр","journal.total":"Всего","journal.exportCSV":"CSV","journal.exportMarkdown":"Markdown","journal.billable":"Оплачиваемое","journal.approximate":"Примерно","journal.node":"Дело","journal.path":"Путь","journal.byDay":"По дням","journal.byNode":"По делам","journal.includeChildren":"С подзадачами","suggest.title":"Предложения на сегодня","suggest.apply":"Записать","suggest.dismiss":"Скрыть","suggest.open":"Открыть","suggest.confidence.low":"Низкая уверенность","suggest.confidence.medium":"Средняя уверенность","suggest.confidence.high":"Высокая уверенность","suggest.minutes":"мин","suggest.edit":"Изменить","suggest.noSuggestions":"Нет предложений для журнала","activity.title":"Активность","activity.empty":"Активность пока не зафиксирована","activity.perCaseEmpty":"Активность пока не зафиксирована","overview.type":"Тип","overview.section":"Раздел","overview.created":"Создано","overview.newNote":"Новая заметка","overview.addFile":"Добавить файл","overview.addAction":"Добавить действие","overview.logTime":"Записать время","overview.recentNotes":"Последние заметки","overview.recentEntries":"Последние записи","rename.title":"Переименовать","rename.emptyError":"Имя не может быть пустым","rename.invalidError":"Недопустимое имя","delete.confirmTitle":"Удаление","delete.confirmMessage":"Удалить","delete.folder":"папку","delete.file":"файл","template.optionNone":"Пустое дело","template.optional":"Шаблон (опционально)","template.none.desc":"Без шаблона, простой узел-контейнер","template.folder":"Папка","template.folder.desc":"Папка для группировки элементов внутри рабочего пространства","template.project":"Проект","template.project.desc":"Отдельный проект или задача с файлами, заметками и журналом","template.client":"Клиент","template.client.desc":"Организация или человек, для которых ведутся работы","template.document":"Документ","template.document.desc":"Документ с описанием, заметками и файлами","template.recipe":"Рецепт","template.recipe.desc":"Повторяемая процедура или инструкция","template.note":"Заметка","template.file":"Файл","template.select":"Выберите тип","mime.jpeg":"Изображение JPEG","mime.png":"Изображение PNG","mime.gif":"Изображение GIF","mime.webp":"Изображение WebP","mime.svg":"Изображение SVG","mime.bmp":"Изображение BMP","mime.tiff":"Изображение TIFF","mime.avif":"Изображение AVIF","mime.pdf":"PDF документ","mime.word":"Документ Word","mime.excel":"Таблица Excel","mime.ppt":"Презентация PowerPoint","mime.zip":"ZIP архив","mime.gzip":"GZIP архив","mime.tar":"TAR архив","mime.sevenz":"7z архив","mime.rar":"RAR архив","mime.text":"Текстовый файл","mime.html":"HTML файл","mime.css":"CSS файл","mime.js":"JavaScript файл","mime.json":"JSON файл","mime.xml":"XML файл","mime.yaml":"YAML файл","mime.binary":"Бинарный файл","mime.executable":"Исполняемый файл","mime.folder":"Папка","mime.unknown":"Неизвестно","mime.file":"Файл","error.nameEmpty":"Имя не может быть пустым","error.nameInvalid":"Недопустимое имя","error.selectCaseFirst":"Сначала выберите дело","common.open":"Открыть","delete.files":"файлов ({count})","file.namePrompt":"Введите имя файла:","file.pdfUnavailable":"Предпросмотр PDF недоступен.","file.previewUnavailable":"Предпросмотр недоступен для этого типа файлов.","case.new":"Новое дело","case.namePlaceholder":"Название дела","error.generic":"Произошла ошибка","error.invalidCredentials":"Неверный логин или пароль","error.accountBlocked":"Аккаунт заблокирован","error.emailNotConfirmed":"Email не подтверждён","error.tokenInvalid":"Неверный или просроченный токен","error.tokenExpired":"Срок действия токена истёк"},ta={"nav.today":"Today","nav.inbox":"Inbox","nav.activity":"Activity","nav.clients":"Clients","nav.projects":"Projects","nav.recipes":"Recipes","nav.documents":"Documents","nav.archive":"Archive","nav.sections":"Sections","nav.cases":"Cases","nav.noCases":"No cases","nav.system":"System","nav.workspace":"Workspace","nav.noNodes":"No nodes","nav.openFolder":"Open folder","nav.createInside":"Create inside","nav.createNode":"Create element","nav.moveToRoot":"Move to root","nav.selectPrompt":"Select a section or case","nav.brand":"Verstak","tab.overview":"Overview","tab.notes":"Notes","tab.files":"Files","tab.actions":"Actions","tab.worklog":"Work Log","tab.activity":"Activity","common.save":"Save","common.cancel":"Cancel","common.delete":"Delete","common.rename":"Rename","common.close":"Close","common.create":"Create","common.confirm":"Confirm","common.back":"← Back","common.loading":"Loading...","common.error":"Error:","common.yes":"Yes","common.ok":"OK","common.run":"Run","common.name":"Name","common.settings":"Settings","welcome.title":"Verstak","welcome.selectSection":"Select a section in the sidebar.","welcome.addCase":"Add case","event.noteCreated":"Note created","event.noteUpdated":"Note updated","event.fileAdded":"File added","event.fileDeleted":"File deleted","event.fileRenamed":"File renamed","event.fileCopied":"File copied","event.fileMoved":"File moved","event.caseCreated":"Case created","action.openUrl":"Open URL","action.openFile":"Open file","action.openFolder":"Open folder","action.runCommand":"Run command","action.runScript":"Run script","action.openTerminal":"Open terminal","action.launchApp":"Launch app","note.add":"+ Add note","note.noNotes":"No notes","note.title":"Note title","note.placeholder":"Start writing...","file.addFile":"+ Add file","file.addFolder":"+ Add folder","file.preview":"Preview","file.openExternal":"Open in external program","file.openFolder":"Open folder","file.showInExplorer":"Show in explorer","file.delete":"Delete","file.pickSingle":"Select file","file.pickDirectory":"Select folder","sync.title":"Sync","sync.settings":"Sync settings","sync.status":"Status","sync.server":"Server","sync.device":"Device","sync.connected":"Connected","sync.notConnected":"Not connected","sync.disabled":"Disabled","kind.project":"Project","kind.client":"Client","kind.document":"Document","kind.recipe":"Recipe","kind.folder":"Folder","kind.note":"Note","kind.file":"File","kind.archive":"Archive","kind.case":"Case","template.optionNone":"Empty case","template.optional":"Template (optional)","template.none.desc":"No template, simple container node","template.folder":"Folder","template.folder.desc":"A folder to group items inside a workspace","template.project":"Project","template.project.desc":"A distinct project or task with files, notes and work log","template.client":"Client","template.client.desc":"An organization or person for whom work is performed","template.document":"Document","template.document.desc":"A document with description, notes and files","template.recipe":"Recipe","template.recipe.desc":"A repeatable procedure or instruction","template.note":"Note","template.file":"File","template.select":"Select type","case.new":"New case","case.namePlaceholder":"Case name","error.generic":"An error occurred","error.invalidCredentials":"Invalid username or password","worklog.suggestions":"Suggestions for today","worklog.apply":"Apply","common.all":"All","common.no":"No","common.date":"Date","common.search":"Search","nav.journal":"Journal","journal.title":"Work Log","journal.empty":"No entries for the selected period","journal.dateFrom":"From","journal.dateTo":"To","journal.filter":"Filter","journal.total":"Total","journal.exportCSV":"CSV","journal.exportMarkdown":"Markdown","journal.billable":"Billable","journal.approximate":"Approx","journal.node":"Case","journal.path":"Path","journal.byDay":"By day","journal.byNode":"By case","journal.includeChildren":"Include subtasks","suggest.title":"Suggestions","suggest.apply":"Log","suggest.dismiss":"Dismiss","suggest.open":"Open","suggest.confidence.low":"Low confidence","suggest.confidence.medium":"Medium confidence","suggest.confidence.high":"High confidence","suggest.minutes":"min","suggest.edit":"Edit","suggest.noSuggestions":"No suggestions"},Yl={ru:ea,en:ta};let Xl="ru";function m(l,e){var o;const t=Yl[Xl];let n=t==null?void 0:t[l];if(n==null&&Xl!=="ru"&&(n=(o=Yl.ru)==null?void 0:o[l]),n==null&&(n=l),e!=null)for(const[s,r]of Object.entries(e))n=n.replace(`{${s}}`,String(r));return n}function 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 cl={"image/jpeg":m("mime.jpeg"),"image/png":m("mime.png"),"image/gif":m("mime.gif"),"image/webp":m("mime.webp"),"image/svg+xml":m("mime.svg"),"image/bmp":m("mime.bmp"),"image/tiff":m("mime.tiff"),"image/avif":m("mime.avif"),"application/pdf":m("mime.pdf"),"application/msword":m("mime.word"),"application/vnd.openxmlformats-officedocument.wordprocessingml.document":m("mime.word"),"application/vnd.ms-excel":m("mime.excel"),"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":m("mime.excel"),"application/vnd.ms-powerpoint":m("mime.ppt"),"application/vnd.openxmlformats-officedocument.presentationml.presentation":m("mime.ppt"),"application/zip":m("mime.zip"),"application/gzip":m("mime.gzip"),"application/x-tar":m("mime.tar"),"application/x-7z-compressed":m("mime.sevenz"),"application/x-rar-compressed":m("mime.rar"),"text/plain":m("mime.text"),"text/html":m("mime.html"),"text/css":m("mime.css"),"text/javascript":m("mime.js"),"application/json":m("mime.json"),"application/xml":m("mime.xml"),"application/x-yaml":m("mime.yaml"),"application/octet-stream":m("mime.binary"),"application/x-msdos-program":m("mime.executable"),"inode/directory":m("mime.folder")};function Zl(l){return l?cl[l]||l:m("mime.unknown")}function la(l){if(l.type==="folder")return m("mime.folder");const e=(l.mime||"").toLowerCase();if(cl[e])return cl[e];const n=(l.name||"").toLowerCase().split(".").pop();return n?n.toUpperCase():m("mime.file")}function $i(l){if(l.type==="folder")return"folder";const e=(l.mime||"").toLowerCase();if(e.startsWith("image/"))return"image";if(e.startsWith("video/"))return"video";if(e.startsWith("audio/"))return"audio";if(e.startsWith("text/"))return"text";if(e.includes("pdf"))return"pdf";if(e.includes("word")||e.includes("document"))return"document";if(e.includes("spreadsheet")||e.includes("excel"))return"spreadsheet";if(e.includes("presentation")||e.includes("powerpoint"))return"presentation";if(e.includes("zip")||e.includes("tar")||e.includes("gzip")||e.includes("rar")||e.includes("7z")||e.includes("compress"))return"archive";if(e.includes("json")||e.includes("xml")||e.includes("yaml")||e.includes("javascript")||e.includes("css")||e.includes("html"))return"code";const n=(l.name||"").toLowerCase().split(".").pop();return["js","ts","jsx","tsx","vue","svelte","py","rs","go","c","cpp","h","hpp","java","kt","swift","rb","php","pl","sh","bash","zsh","fish","yml","yaml","json","xml","toml","ini","cfg","conf","md","markdown","css","scss","less","sass","sql","graphql","proto","gradle","cmake","makefile","dockerfile","env","gitignore"].includes(n)?"code":"generic"}const na=["image/jpeg","image/png","image/gif","image/webp","image/bmp","image/tiff","image/avif","image/svg+xml"],ia=["text/plain","text/html","text/css","text/javascript","application/json","application/xml","application/x-yaml","text/x-shellscript"],oa=["txt","log","conf","ini","yaml","yml","json","xml","csv","sh","py","js","ts","css","html","md","markdown","cfg"],sa=["jpg","jpeg","png","gif","webp","bmp","tiff","tif","avif","svg"];function eo(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return na.includes(e)||sa.includes(n)}function to(l){const e=(l.mime||"").toLowerCase(),n=(l.name||"").toLowerCase().split(".").pop();return ia.includes(e)||oa.includes(n)&&n!=="md"&&n!=="markdown"}function lo(l){return(l.mime||"").toLowerCase().includes("pdf")}function no(l){const e=(l.name||"").toLowerCase();return e.endsWith(".md")||e.endsWith(".markdown")}function ra(l){return eo(l)||lo(l)}function aa(l){return to(l)||no(l)}const{window:ca}=Fr;function fa(l){let e,t,n,o=Kt(l[0].size)+"",s;return{c(){e=u("span"),e.textContent="·",t=b(),n=u("span"),s=F(o),i(e,"class","meta-sep svelte-1skuef2")},m(r,c){C(r,e,c),C(r,t,c),C(r,n,c),a(n,s)},p(r,c){c[0]&1&&o!==(o=Kt(r[0].size)+"")&&U(s,o)},d(r){r&&(z(e),z(t),z(n))}}}function ua(l){let e,t,n,o,s;return{c(){e=u("button"),e.innerHTML='',t=b(),n=u("button"),n.innerHTML='',i(e,"class","action-btn svelte-1skuef2"),i(e,"title",m("file.openFolder")),i(e,"aria-label",m("file.openFolder")),i(n,"class","action-btn svelte-1skuef2"),i(n,"title",m("file.showInExplorer")),i(n,"aria-label",m("file.showInExplorer"))},m(r,c){C(r,e,c),C(r,t,c),C(r,n,c),o||(s=[I(e,"click",it(l[30])),I(n,"click",it(l[11]))],o=!0)},p:ie,d(r){r&&(z(e),z(t),z(n)),o=!1,he(s)}}}function da(l){let e,t,n,o,s,r,c;return{c(){e=u("button"),e.innerHTML='',t=b(),n=u("button"),n.innerHTML='',o=b(),s=u("button"),s.innerHTML='',i(e,"class","action-btn svelte-1skuef2"),i(e,"title",m("file.preview")),i(e,"aria-label",m("file.preview")),i(n,"class","action-btn svelte-1skuef2"),i(n,"title",m("file.openExternal")),i(n,"aria-label",m("file.openExternal")),i(s,"class","action-btn svelte-1skuef2"),i(s,"title",m("file.showInExplorer")),i(s,"aria-label",m("file.showInExplorer"))},m(f,d){C(f,e,d),C(f,t,d),C(f,n,d),C(f,o,d),C(f,s,d),r||(c=[I(e,"click",it(l[29])),I(n,"click",it(l[10])),I(s,"click",it(l[11]))],r=!0)},p:ie,d(f){f&&(z(e),z(t),z(n),z(o),z(s)),r=!1,he(c)}}}function Ql(l){let e,t,n,o,s,r,c,f,d=m("common.open")+"",h,_,v,y,g,k,w,T,M=m("file.openExternal")+"",N,j,D,L,S,A,V=m("file.showInExplorer")+"",P,K,H,W,G,q,Z,Y,J,X=m("common.rename")+"",O,le,ke,ee,te,oe,ae,ze=m("common.duplicate")+"",ye,He,Re,B,Q,ue,be,je,Ee,Ue=m("common.cut")+"",De,Ce,ce,Me,Fe,_e,ve,de=m("common.copy")+"",se,Ae,Ne,we,Se,Ze,Pe,Oe,We,Ge=m("common.delete")+"",Ke,Le,Be;return{c(){e=u("div"),t=b(),n=u("div"),o=u("button"),s=R("svg"),r=R("path"),c=R("circle"),f=b(),h=F(d),_=b(),v=u("button"),y=R("svg"),g=R("path"),k=R("polyline"),w=R("line"),T=b(),N=F(M),j=b(),D=u("button"),L=R("svg"),S=R("path"),A=b(),P=F(V),K=b(),H=u("div"),W=b(),G=u("button"),q=R("svg"),Z=R("path"),Y=R("path"),J=b(),O=F(X),le=b(),ke=u("button"),ee=R("svg"),te=R("rect"),oe=R("path"),ae=b(),ye=F(ze),He=b(),Re=u("button"),B=R("svg"),Q=R("circle"),ue=R("circle"),be=R("line"),je=R("line"),Ee=b(),De=F(Ue),Ce=b(),ce=u("button"),Me=R("svg"),Fe=R("rect"),_e=R("path"),ve=b(),se=F(de),Ae=b(),Ne=u("div"),we=b(),Se=u("button"),Ze=R("svg"),Pe=R("polyline"),Oe=R("path"),We=b(),Ke=F(Ge),i(e,"class","menu-backdrop svelte-1skuef2"),i(e,"role","presentation"),i(r,"d","M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"),i(c,"cx","12"),i(c,"cy","12"),i(c,"r","3"),i(s,"width","14"),i(s,"height","14"),i(s,"viewBox","0 0 24 24"),i(s,"fill","none"),i(s,"stroke","currentColor"),i(s,"stroke-width","2"),i(s,"stroke-linecap","round"),i(s,"stroke-linejoin","round"),i(o,"class","menu-item svelte-1skuef2"),i(o,"role","menuitem"),i(g,"d","M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"),i(k,"points","15 3 21 3 21 9"),i(w,"x1","10"),i(w,"y1","14"),i(w,"x2","21"),i(w,"y2","3"),i(y,"width","14"),i(y,"height","14"),i(y,"viewBox","0 0 24 24"),i(y,"fill","none"),i(y,"stroke","currentColor"),i(y,"stroke-width","2"),i(y,"stroke-linecap","round"),i(y,"stroke-linejoin","round"),i(v,"class","menu-item svelte-1skuef2"),i(v,"role","menuitem"),i(S,"d","M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"),i(L,"width","14"),i(L,"height","14"),i(L,"viewBox","0 0 24 24"),i(L,"fill","none"),i(L,"stroke","currentColor"),i(L,"stroke-width","2"),i(L,"stroke-linecap","round"),i(L,"stroke-linejoin","round"),i(D,"class","menu-item svelte-1skuef2"),i(D,"role","menuitem"),i(H,"class","menu-sep svelte-1skuef2"),i(Z,"d","M12 20h9"),i(Y,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"),i(q,"width","14"),i(q,"height","14"),i(q,"viewBox","0 0 24 24"),i(q,"fill","none"),i(q,"stroke","currentColor"),i(q,"stroke-width","2"),i(q,"stroke-linecap","round"),i(q,"stroke-linejoin","round"),i(G,"class","menu-item svelte-1skuef2"),i(G,"role","menuitem"),i(te,"x","9"),i(te,"y","9"),i(te,"width","13"),i(te,"height","13"),i(te,"rx","2"),i(te,"ry","2"),i(oe,"d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"),i(ee,"width","14"),i(ee,"height","14"),i(ee,"viewBox","0 0 24 24"),i(ee,"fill","none"),i(ee,"stroke","currentColor"),i(ee,"stroke-width","2"),i(ee,"stroke-linecap","round"),i(ee,"stroke-linejoin","round"),i(ke,"class","menu-item svelte-1skuef2"),i(ke,"role","menuitem"),i(Q,"cx","6"),i(Q,"cy","6"),i(Q,"r","3"),i(ue,"cx","6"),i(ue,"cy","18"),i(ue,"r","3"),i(be,"x1","20"),i(be,"y1","4"),i(be,"x2","8.12"),i(be,"y2","15.88"),i(je,"x1","8.12"),i(je,"y1","8.12"),i(je,"x2","20"),i(je,"y2","20"),i(B,"width","14"),i(B,"height","14"),i(B,"viewBox","0 0 24 24"),i(B,"fill","none"),i(B,"stroke","currentColor"),i(B,"stroke-width","2"),i(B,"stroke-linecap","round"),i(B,"stroke-linejoin","round"),i(Re,"class","menu-item svelte-1skuef2"),i(Re,"role","menuitem"),i(Fe,"x","9"),i(Fe,"y","9"),i(Fe,"width","13"),i(Fe,"height","13"),i(Fe,"rx","2"),i(Fe,"ry","2"),i(_e,"d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"),i(Me,"width","14"),i(Me,"height","14"),i(Me,"viewBox","0 0 24 24"),i(Me,"fill","none"),i(Me,"stroke","currentColor"),i(Me,"stroke-width","2"),i(Me,"stroke-linecap","round"),i(Me,"stroke-linejoin","round"),i(ce,"class","menu-item svelte-1skuef2"),i(ce,"role","menuitem"),i(Ne,"class","menu-sep svelte-1skuef2"),i(Pe,"points","3 6 5 6 21 6"),i(Oe,"d","M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"),i(Ze,"width","14"),i(Ze,"height","14"),i(Ze,"viewBox","0 0 24 24"),i(Ze,"fill","none"),i(Ze,"stroke","currentColor"),i(Ze,"stroke-width","2"),i(Ze,"stroke-linecap","round"),i(Ze,"stroke-linejoin","round"),i(Se,"class","menu-item menu-item-danger svelte-1skuef2"),i(Se,"role","menuitem"),i(n,"class","menu svelte-1skuef2"),qe(n,"left",l[3]+"px"),qe(n,"top",l[4]+"px"),qe(n,"position","fixed"),i(n,"role","menu"),i(n,"tabindex","-1")},m(Qe,x){C(Qe,e,x),C(Qe,t,x),C(Qe,n,x),a(n,o),a(o,s),a(s,r),a(s,c),a(o,f),a(o,h),a(n,_),a(n,v),a(v,y),a(y,g),a(y,k),a(y,w),a(v,T),a(v,N),a(n,j),a(n,D),a(D,L),a(L,S),a(D,A),a(D,P),a(n,K),a(n,H),a(n,W),a(n,G),a(G,q),a(q,Z),a(q,Y),a(G,J),a(G,O),a(n,le),a(n,ke),a(ke,ee),a(ee,te),a(ee,oe),a(ke,ae),a(ke,ye),a(n,He),a(n,Re),a(Re,B),a(B,Q),a(B,ue),a(B,be),a(B,je),a(Re,Ee),a(Re,De),a(n,Ce),a(n,ce),a(ce,Me),a(Me,Fe),a(Me,_e),a(ce,ve),a(ce,se),a(n,Ae),a(n,Ne),a(n,we),a(n,Se),a(Se,Ze),a(Ze,Pe),a(Ze,Oe),a(Se,We),a(Se,Ke),Le||(Be=[I(e,"click",it(l[19])),I(o,"click",l[17]),I(v,"click",l[10]),I(D,"click",l[11]),I(G,"click",l[13]),I(ke,"click",l[14]),I(Re,"click",l[15]),I(ce,"click",l[16]),I(Se,"click",l[12]),I(n,"click",it(l[28])),I(n,"keydown",l[31])],Le=!0)},p(Qe,x){x[0]&8&&qe(n,"left",Qe[3]+"px"),x[0]&16&&qe(n,"top",Qe[4]+"px")},d(Qe){Qe&&(z(e),z(t),z(n)),Le=!1,he(Be)}}}function pa(l){let e,t,n,o,s,r,c=l[0].name+"",f,d,h,_,v,y,g,k,w,T,M,N,j,D,L,S,A,V,P,K,H,W;n=new xi({props:{kind:l[6],size:22}});let G=!l[7]&&fa(l);function q(X,O){return X[7]?ua:da}let Y=q(l)(l),J=l[2]&&Ql(l);return{c(){e=u("div"),t=u("div"),ot(n.$$.fragment),o=b(),s=u("div"),r=u("div"),f=F(c),h=b(),_=u("div"),v=u("span"),v.textContent=`${l[8]}`,y=b(),G&&G.c(),g=b(),k=u("div"),Y.c(),w=b(),T=u("button"),M=R("svg"),N=R("circle"),j=R("circle"),D=R("circle"),L=b(),S=u("button"),S.innerHTML='',V=b(),J&&J.c(),P=at(),i(t,"class","file-row-icon svelte-1skuef2"),i(r,"class","file-row-name svelte-1skuef2"),i(r,"title",d=l[0].name),i(_,"class","file-row-meta svelte-1skuef2"),i(s,"class","file-row-body svelte-1skuef2"),i(N,"cx","12"),i(N,"cy","5"),i(N,"r","2"),i(j,"cx","12"),i(j,"cy","12"),i(j,"r","2"),i(D,"cx","12"),i(D,"cy","19"),i(D,"r","2"),i(M,"width","16"),i(M,"height","16"),i(M,"viewBox","0 0 24 24"),i(M,"fill","currentColor"),i(T,"class","action-btn svelte-1skuef2"),i(T,"title",m("file.more")),i(T,"aria-label",m("file.more")),i(T,"aria-expanded",l[2]),i(S,"class","action-btn action-btn-danger svelte-1skuef2"),i(S,"title",m("common.delete")),i(S,"aria-label",m("common.delete")),i(k,"class","file-row-actions svelte-1skuef2"),i(e,"class","file-row svelte-1skuef2"),i(e,"role","button"),i(e,"tabindex","0"),i(e,"draggable","true"),i(e,"aria-label",A=l[7]?m("file.ariaFolder")+" "+l[0].name:m("file.ariaFile")+" "+l[0].name),Ie(e,"file-row--selected",l[1])},m(X,O){C(X,e,O),a(e,t),lt(n,t,null),a(e,o),a(e,s),a(s,r),a(r,f),a(s,h),a(s,_),a(_,v),a(_,y),G&&G.m(_,null),a(e,g),a(e,k),Y.m(k,null),a(k,w),a(k,T),a(T,M),a(M,N),a(M,j),a(M,D),a(k,L),a(k,S),C(X,V,O),J&&J.m(X,O),C(X,P,O),K=!0,H||(W=[I(ca,"click",l[19]),I(T,"click",it(l[18])),I(S,"click",it(l[12])),I(e,"click",l[9]),I(e,"keydown",l[24]),I(e,"contextmenu",l[23]),I(e,"dragstart",l[20]),I(e,"dragover",l[21]),I(e,"drop",l[22])],H=!0)},p(X,O){(!K||O[0]&1)&&c!==(c=X[0].name+"")&&U(f,c),(!K||O[0]&1&&d!==(d=X[0].name))&&i(r,"title",d),X[7]||G.p(X,O),Y.p(X,O),(!K||O[0]&4)&&i(T,"aria-expanded",X[2]),(!K||O[0]&1&&A!==(A=X[7]?m("file.ariaFolder")+" "+X[0].name:m("file.ariaFile")+" "+X[0].name))&&i(e,"aria-label",A),(!K||O[0]&2)&&Ie(e,"file-row--selected",X[1]),X[2]?J?J.p(X,O):(J=Ql(X),J.c(),J.m(P.parentNode,P)):J&&(J.d(1),J=null)},i(X){K||(re(n.$$.fragment,X),K=!0)},o(X){pe(n.$$.fragment,X),K=!1},d(X){X&&(z(e),z(V),z(P)),nt(n),G&&G.d(),Y.d(),J&&J.d(X),H=!1,he(W)}}}function ma(l,e,t){let{item:n}=e,{selected:o=!1}=e,{onDragStart:s}=e,{onDragOver:r}=e,{onDrop:c}=e;const f=Gt(),d=$i(n),h=n.type==="folder",_=la(n);let v=!1,y=0,g=0,k=null;function w(O){O.ctrlKey||O.metaKey?f("toggleSelect",n.id):O.shiftKey?f("rangeSelect",n.id):k?(clearTimeout(k),k=null,h?f("navigate",n.id):f("preview",n)):k=setTimeout(()=>{k=null,f("selectOne",n.id)},250)}function T(){f("openExternal",n.fileId)}function M(){t(2,v=!1),f("showInFolder",n.nodeId||n.id)}function N(){t(2,v=!1),f("delete",{id:n.id,type:n.type})}function j(){t(2,v=!1),f("rename",{id:n.id,name:n.name})}function D(){t(2,v=!1),f("duplicate",n.id)}function L(){t(2,v=!1),f("cut",n.id)}function S(){t(2,v=!1),f("copy",n.id)}function A(){t(2,v=!1),h?f("navigate",n.id):f("preview",n)}function V(){t(2,v=!v)}function P(){t(2,v=!1)}function K(O){s&&s(O,n.id)}function H(O){r&&h&&r(O,n.id)}function W(O){c&&h&&c(O,n.id)}function G(O){O.preventDefault(),t(3,y=Math.min(O.clientX,window.innerWidth-240)),t(4,g=Math.min(O.clientY,window.innerHeight-320)),t(2,v=!0)}function q(O){(O.key==="Enter"||O.key===" ")&&(O.preventDefault(),w(O))}function Z(O){Yi.call(this,l,O)}const Y=()=>f("preview",n),J=()=>f("navigate",n.id),X=O=>{O.key==="Escape"&&(O.stopPropagation(),P())};return l.$$set=O=>{"item"in O&&t(0,n=O.item),"selected"in O&&t(1,o=O.selected),"onDragStart"in O&&t(25,s=O.onDragStart),"onDragOver"in O&&t(26,r=O.onDragOver),"onDrop"in O&&t(27,c=O.onDrop)},[n,o,v,y,g,f,d,h,_,w,T,M,N,j,D,L,S,A,V,P,K,H,W,G,q,s,r,c,Z,Y,J,X]}class _a extends bt{constructor(e){super(),ht(this,e,ma,pa,vt,{item:0,selected:1,onDragStart:25,onDragOver:26,onDrop:27},null,[-1,-1])}}function xl(l,e,t){const n=l.slice();return n[4]=e[t],n[6]=t,n}function va(l){let e;return{c(){e=u("span"),e.textContent="/",i(e,"class","sep svelte-csi2lb")},m(t,n){C(t,e,n)},d(t){t&&z(e)}}}function ha(l){let e,t=l[4].name+"",n,o,s;function r(){return l[2](l[6])}return{c(){e=u("button"),n=F(t),i(e,"class","crumb crumb--link svelte-csi2lb")},m(c,f){C(c,e,f),a(e,n),o||(s=I(e,"click",r),o=!0)},p(c,f){l=c,f&1&&t!==(t=l[4].name+"")&&U(n,t)},d(c){c&&z(e),o=!1,s()}}}function ba(l){let e,t=l[4].name+"",n;return{c(){e=u("span"),n=F(t),i(e,"class","crumb crumb--current svelte-csi2lb")},m(o,s){C(o,e,s),a(e,n)},p(o,s){s&1&&t!==(t=o[4].name+"")&&U(n,t)},d(o){o&&z(e)}}}function $l(l){let e,t,n=l[6]>0&&va();function o(c,f){return c[6]===c[0].length-1?ba:ha}let s=o(l),r=s(l);return{c(){n&&n.c(),e=b(),r.c(),t=at()},m(c,f){n&&n.m(c,f),C(c,e,f),r.m(c,f),C(c,t,f)},p(c,f){s===(s=o(c))&&r?r.p(c,f):(r.d(1),r=s(c),r&&(r.c(),r.m(t.parentNode,t)))},d(c){c&&(z(e),z(t)),n&&n.d(c),r.d(c)}}}function ga(l){let e,t=fe(l[0]),n=[];for(let o=0;os(c);return l.$$set=c=>{"crumbs"in c&&t(0,n=c.crumbs)},[n,s,r]}class io extends bt{constructor(e){super(),ht(this,e,ka,ga,vt,{crumbs:0})}}function ya(l){let e,t,n,o,s,r;return{c(){e=u("div"),t=u("p"),t.textContent=`${m("file.previewUnavailable")}`,n=b(),o=u("button"),o.textContent=`${m("file.openExternal")}`,i(o,"class","btn btn-sm svelte-1cw3u0m"),i(e,"class","preview-status svelte-1cw3u0m")},m(c,f){C(c,e,f),a(e,t),a(e,n),a(e,o),s||(r=I(o,"click",l[9]),s=!0)},p:ie,d(c){c&&z(e),s=!1,r()}}}function wa(l){let e,t;function n(r,c){return c&2&&(e=null),e==null&&(e=!!(r[1]&&r[1].startsWith("data:"))),e?Na:ja}let o=n(l,-1),s=o(l);return{c(){s.c(),t=at()},m(r,c){s.m(r,c),C(r,t,c)},p(r,c){o===(o=n(r,c))&&s?s.p(r,c):(s.d(1),s=o(r),s&&(s.c(),s.m(t.parentNode,t)))},d(r){r&&z(t),s.d(r)}}}function za(l){let e,t,n;return{c(){e=u("pre"),t=u("code"),n=F(l[1]),i(e,"class","preview-text svelte-1cw3u0m")},m(o,s){C(o,e,s),a(e,t),a(t,n)},p(o,s){s&2&&U(n,o[1])},d(o){o&&z(e)}}}function Ca(l){let e,t,n,o;return{c(){e=u("div"),t=u("img"),Ut(t.src,n=l[1])||i(t,"src",n),i(t,"alt",o=l[0].name),i(t,"class","preview-image svelte-1cw3u0m"),i(e,"class","preview-image-container svelte-1cw3u0m")},m(s,r){C(s,e,r),a(e,t)},p(s,r){r&2&&!Ut(t.src,n=s[1])&&i(t,"src",n),r&1&&o!==(o=s[0].name)&&i(t,"alt",o)},d(s){s&&z(e)}}}function Sa(l){let e,t,n,o,s,r,c;return{c(){e=u("div"),t=u("p"),n=F(l[3]),o=b(),s=u("button"),s.textContent=`${m("file.openExternal")}`,i(s,"class","btn btn-sm svelte-1cw3u0m"),i(e,"class","preview-status svelte-1cw3u0m")},m(f,d){C(f,e,d),a(e,t),a(t,n),a(e,o),a(e,s),r||(c=I(s,"click",l[9]),r=!0)},p(f,d){d&8&&U(n,f[3])},d(f){f&&z(e),r=!1,c()}}}function Ta(l){let e,t;return{c(){e=u("div"),t=u("p"),t.textContent=`${m("common.loading")}`,i(e,"class","preview-status svelte-1cw3u0m")},m(n,o){C(n,e,o),a(e,t)},p:ie,d(n){n&&z(e)}}}function ja(l){let e,t,n,o,s,r;return{c(){e=u("div"),t=u("p"),t.textContent=`${m("file.pdfUnavailable")}`,n=b(),o=u("button"),o.textContent=`${m("file.openExternal")}`,i(o,"class","btn btn-sm svelte-1cw3u0m"),i(e,"class","preview-status svelte-1cw3u0m")},m(c,f){C(c,e,f),a(e,t),a(e,n),a(e,o),s||(r=I(o,"click",l[9]),s=!0)},p:ie,d(c){c&&z(e),s=!1,r()}}}function Na(l){let e,t,n;return{c(){e=u("div"),t=u("embed"),Ut(t.src,n=l[1])||i(t,"src",n),i(t,"type","application/pdf"),i(t,"class","preview-pdf svelte-1cw3u0m"),i(e,"class","preview-pdf-container svelte-1cw3u0m")},m(o,s){C(o,e,s),a(e,t)},p(o,s){s&2&&!Ut(t.src,n=o[1])&&i(t,"src",n)},d(o){o&&z(e)}}}function Da(l){let e,t,n,o,s,r,c,f=l[0].name+"",d,h,_,v,y=Kt(l[0].size)+"",g,k,w=Zl(l[0].mime)+"",T,M,N,j,D,L,S,A,V,P,K;s=new xi({props:{kind:l[8],size:18}});function H(q,Z){return q[2]?Ta:q[3]?Sa:q[6]&&q[1]?Ca:q[5]&&q[1]?za:q[4]?wa:ya}let W=H(l),G=W(l);return{c(){e=u("div"),t=u("div"),n=u("header"),o=u("div"),ot(s.$$.fragment),r=b(),c=u("span"),d=F(f),_=b(),v=u("div"),g=F(y),k=F(" · "),T=F(w),M=b(),N=u("div"),j=u("button"),j.innerHTML='',D=b(),L=u("button"),L.innerHTML='',S=b(),A=u("div"),G.c(),i(c,"class","preview-name svelte-1cw3u0m"),i(c,"title",h=l[0].name),i(o,"class","preview-title svelte-1cw3u0m"),i(v,"class","preview-meta svelte-1cw3u0m"),i(j,"class","action-btn svelte-1cw3u0m"),i(j,"title",m("file.openExternal")),i(j,"aria-label",m("file.openExternal")),i(L,"class","action-btn action-btn-close svelte-1cw3u0m"),i(L,"title","Close"),i(L,"aria-label","Close preview"),i(N,"class","preview-actions svelte-1cw3u0m"),i(n,"class","preview-header svelte-1cw3u0m"),i(A,"class","preview-body svelte-1cw3u0m"),i(t,"class","modal svelte-1cw3u0m"),i(e,"class","overlay svelte-1cw3u0m"),i(e,"role","presentation")},m(q,Z){C(q,e,Z),a(e,t),a(t,n),a(n,o),lt(s,o,null),a(o,r),a(o,c),a(c,d),a(n,_),a(n,v),a(v,g),a(v,k),a(v,T),a(n,M),a(n,N),a(N,j),a(N,D),a(N,L),a(t,S),a(t,A),G.m(A,null),V=!0,P||(K=[I(j,"click",l[9]),I(L,"click",l[10]),I(e,"click",yt(l[11])),I(e,"keydown",l[12])],P=!0)},p(q,[Z]){(!V||Z&1)&&f!==(f=q[0].name+"")&&U(d,f),(!V||Z&1&&h!==(h=q[0].name))&&i(c,"title",h),(!V||Z&1)&&y!==(y=Kt(q[0].size)+"")&&U(g,y),(!V||Z&1)&&w!==(w=Zl(q[0].mime)+"")&&U(T,w),W===(W=H(q))&&G?G.p(q,Z):(G.d(1),G=W(q),G&&(G.c(),G.m(A,null)))},i(q){V||(re(s.$$.fragment,q),V=!0)},o(q){pe(s.$$.fragment,q),V=!1},d(q){q&&z(e),nt(s),G.d(),P=!1,he(K)}}}function Ma(l,e,t){let n,o,s,{item:r}=e,{content:c=""}=e,{loading:f=!1}=e,{error:d=""}=e;const h=Gt(),_=$i(r);function v(T){T.key==="Escape"&&h("close")}function y(){h("openExternal",r.fileId)}Ji(()=>{window.addEventListener("keydown",v)}),pl(()=>{window.removeEventListener("keydown",v)});const g=()=>h("close"),k=()=>h("close"),w=T=>{T.key==="Escape"&&(T.preventDefault(),h("close"))};return l.$$set=T=>{"item"in T&&t(0,r=T.item),"content"in T&&t(1,c=T.content),"loading"in T&&t(2,f=T.loading),"error"in T&&t(3,d=T.error)},l.$$.update=()=>{l.$$.dirty&3&&t(6,n=eo(r)&&c&&c.startsWith("data:")),l.$$.dirty&1&&t(5,o=to(r)||no(r)),l.$$.dirty&1&&t(4,s=lo(r))},[r,c,f,d,s,o,n,h,_,y,g,k,w]}class Fa extends bt{constructor(e){super(),ht(this,e,Ma,Da,vt,{item:0,content:1,loading:2,error:3})}}function Ia(l){let e,t,n,o,s,r,c,f,d,h,_,v,y,g,k,w,T;return{c(){e=u("div"),t=u("div"),n=u("h3"),o=F(l[0]),s=b(),r=u("p"),c=F(l[1]),f=b(),d=u("div"),h=u("button"),_=F(l[2]),y=b(),g=u("button"),k=F(l[3]),i(n,"class","svelte-1fv6yyk"),i(r,"class","message svelte-1fv6yyk"),i(h,"class",v="btn "+(l[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk"),i(g,"class","btn svelte-1fv6yyk"),i(d,"class","actions svelte-1fv6yyk"),i(t,"class","modal svelte-1fv6yyk"),i(e,"class","overlay svelte-1fv6yyk"),i(e,"role","presentation")},m(M,N){C(M,e,N),a(e,t),a(t,n),a(n,o),a(t,s),a(t,r),a(r,c),a(t,f),a(t,d),a(d,h),a(h,_),a(d,y),a(d,g),a(g,k),w||(T=[I(h,"click",l[6]),I(g,"click",l[7]),I(e,"click",yt(l[8])),I(e,"keydown",l[9])],w=!0)},p(M,[N]){N&1&&U(o,M[0]),N&2&&U(c,M[1]),N&4&&U(_,M[2]),N&16&&v!==(v="btn "+(M[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk")&&i(h,"class",v),N&8&&U(k,M[3])},i:ie,o:ie,d(M){M&&z(e),w=!1,he(T)}}}function Ea(l,e,t){let{title:n=m("common.confirm")}=e,{message:o=""}=e,{confirmText:s=m("common.delete")}=e,{cancelText:r=m("common.cancel")}=e,{danger:c=!1}=e;const f=Gt(),d=()=>f("confirm"),h=()=>f("cancel"),_=()=>f("cancel"),v=y=>{y.key==="Escape"&&(y.preventDefault(),f("cancel"))};return l.$$set=y=>{"title"in y&&t(0,n=y.title),"message"in y&&t(1,o=y.message),"confirmText"in y&&t(2,s=y.confirmText),"cancelText"in y&&t(3,r=y.cancelText),"danger"in y&&t(4,c=y.danger)},[n,o,s,r,c,f,d,h,_,v]}class Aa extends bt{constructor(e){super(),ht(this,e,Ea,Ia,vt,{title:0,message:1,confirmText:2,cancelText:3,danger:4})}}function La(l){let e,t,n;return{c(){e=R("circle"),t=R("line"),n=R("line"),i(e,"cx","12"),i(e,"cy","12"),i(e,"r","10"),i(t,"x1","12"),i(t,"y1","16"),i(t,"x2","12"),i(t,"y2","12"),i(n,"x1","12"),i(n,"y1","8"),i(n,"x2","12.01"),i(n,"y2","8")},m(o,s){C(o,e,s),C(o,t,s),C(o,n,s)},d(o){o&&(z(e),z(t),z(n))}}}function Pa(l){let e,t,n,o;return{c(){e=R("rect"),t=R("polyline"),n=R("line"),o=R("line"),i(e,"x","3"),i(e,"y","5"),i(e,"width","18"),i(e,"height","14"),i(e,"rx","2"),i(t,"points","3 10 21 10"),i(n,"x1","8"),i(n,"y1","5"),i(n,"x2","8"),i(n,"y2","19"),i(o,"x1","16"),i(o,"y1","5"),i(o,"x2","16"),i(o,"y2","19")},m(s,r){C(s,e,r),C(s,t,r),C(s,n,r),C(s,o,r)},d(s){s&&(z(e),z(t),z(n),z(o))}}}function Oa(l){let e,t;return{c(){e=R("path"),t=R("polyline"),i(e,"d","M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"),i(t,"points","13 2 13 9 20 9")},m(n,o){C(n,e,o),C(n,t,o)},d(n){n&&(z(e),z(t))}}}function Ba(l){let e,t;return{c(){e=R("path"),t=R("path"),i(e,"d","M12 20h9"),i(t,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z")},m(n,o){C(n,e,o),C(n,t,o)},d(n){n&&(z(e),z(t))}}}function Ra(l){let e,t,n,o,s;return{c(){e=R("path"),t=R("path"),n=R("line"),o=R("line"),s=R("line"),i(e,"d","M4 19.5A2.5 2.5 0 0 1 6.5 17H20"),i(t,"d","M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"),i(n,"x1","8"),i(n,"y1","7"),i(n,"x2","16"),i(n,"y2","7"),i(o,"x1","8"),i(o,"y1","11"),i(o,"x2","14"),i(o,"y2","11"),i(s,"x1","8"),i(s,"y1","15"),i(s,"x2","12"),i(s,"y2","15")},m(r,c){C(r,e,c),C(r,t,c),C(r,n,c),C(r,o,c),C(r,s,c)},d(r){r&&(z(e),z(t),z(n),z(o),z(s))}}}function Va(l){let e,t,n,o;return{c(){e=R("path"),t=R("polyline"),n=R("line"),o=R("line"),i(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),i(t,"points","14 2 14 8 20 8"),i(n,"x1","16"),i(n,"y1","13"),i(n,"x2","8"),i(n,"y2","13"),i(o,"x1","16"),i(o,"y1","17"),i(o,"x2","8"),i(o,"y2","17")},m(s,r){C(s,e,r),C(s,t,r),C(s,n,r),C(s,o,r)},d(s){s&&(z(e),z(t),z(n),z(o))}}}function Ha(l){let e,t;return{c(){e=R("path"),t=R("circle"),i(e,"d","M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"),i(t,"cx","12"),i(t,"cy","7"),i(t,"r","4")},m(n,o){C(n,e,o),C(n,t,o)},d(n){n&&(z(e),z(t))}}}function Ua(l){let e,t,n,o;return{c(){e=R("rect"),t=R("rect"),n=R("rect"),o=R("rect"),i(e,"x","3"),i(e,"y","3"),i(e,"width","7"),i(e,"height","7"),i(e,"rx","1"),i(t,"x","14"),i(t,"y","3"),i(t,"width","7"),i(t,"height","4"),i(t,"rx","1"),i(n,"x","14"),i(n,"y","10"),i(n,"width","7"),i(n,"height","11"),i(n,"rx","1"),i(o,"x","3"),i(o,"y","14"),i(o,"width","7"),i(o,"height","7"),i(o,"rx","1")},m(s,r){C(s,e,r),C(s,t,r),C(s,n,r),C(s,o,r)},d(s){s&&(z(e),z(t),z(n),z(o))}}}function Wa(l){let e;return{c(){e=R("path"),i(e,"d","M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z")},m(t,n){C(t,e,n)},d(t){t&&z(e)}}}function Ka(l){let e;function t(s,r){return s[0]==="folder"?Wa:s[0]==="project"?Ua:s[0]==="client"?Ha:s[0]==="document"?Va:s[0]==="recipe"?Ra:s[0]==="note"?Ba:s[0]==="file"?Oa:s[0]==="case"?Pa:La}let n=t(l),o=n(l);return{c(){e=R("svg"),o.c(),i(e,"width",l[1]),i(e,"height",l[1]),i(e,"viewBox","0 0 24 24"),i(e,"fill","none"),i(e,"stroke","currentColor"),i(e,"stroke-width","1.5"),i(e,"stroke-linecap","round"),i(e,"stroke-linejoin","round"),i(e,"xmlns","http://www.w3.org/2000/svg")},m(s,r){C(s,e,r),o.m(e,null)},p(s,[r]){n!==(n=t(s))&&(o.d(1),o=n(s),o&&(o.c(),o.m(e,null))),r&2&&i(e,"width",s[1]),r&2&&i(e,"height",s[1])},i:ie,o:ie,d(s){s&&z(e),o.d()}}}function Ga(l,e,t){let{kind:n="generic"}=e,{size:o=18}=e;return l.$$set=s=>{"kind"in s&&t(0,n=s.kind),"size"in s&&t(1,o=s.size)},[n,o]}class qt extends bt{constructor(e){super(),ht(this,e,Ga,Ka,vt,{kind:0,size:1})}}function en(l,e,t){const n=l.slice();return n[44]=e[t],n}function qa(l){let e;return{c(){e=u("span"),i(e,"class","tree-toggle-placeholder svelte-zj71cl")},m(t,n){C(t,e,n)},p:ie,d(t){t&&z(e)}}}function Ja(l){let e,t,n=l[1][l[44].id]?"▾":"▸",o,s,r;function c(){return l[25](l[44])}return{c(){e=u("button"),t=u("span"),o=F(n),i(t,"class","tree-arrow"),i(e,"class","tree-toggle svelte-zj71cl")},m(f,d){C(f,e,d),a(e,t),a(t,o),s||(r=I(e,"click",it(c)),s=!0)},p(f,d){l=f,d[0]&3&&n!==(n=l[1][l[44].id]?"▾":"▸")&&U(o,n)},d(f){f&&z(e),s=!1,r()}}}function tn(l){let e,t;return e=new oo({props:{nodes:l[44].children||[],expanded:l[1],selectedNodeId:l[2],level:l[3]+1,onSelect:l[4],onToggle:l[5],onContextMenu:l[6],onDrop:l[7]}}),{c(){ot(e.$$.fragment)},m(n,o){lt(e,n,o),t=!0},p(n,o){const s={};o[0]&1&&(s.nodes=n[44].children||[]),o[0]&2&&(s.expanded=n[1]),o[0]&4&&(s.selectedNodeId=n[2]),o[0]&8&&(s.level=n[3]+1),o[0]&16&&(s.onSelect=n[4]),o[0]&32&&(s.onToggle=n[5]),o[0]&64&&(s.onContextMenu=n[6]),o[0]&128&&(s.onDrop=n[7]),e.$set(s)},i(n){t||(re(e.$$.fragment,n),t=!0)},o(n){pe(e.$$.fragment,n),t=!1},d(n){nt(e,n)}}}function ln(l,e){let t,n,o,s,r,c,f,d=e[44].title+"",h,_,v=e[1][e[44].id]&&fl(e[44]),y,g,k,w;function T(Y,J){return J[0]&1&&(n=null),n==null&&(n=!!Lt(Y[44])),n?Ja:qa}let M=T(e,[-1,-1]),N=M(e);r=new qt({props:{kind:nn(e[44]),size:16}});function j(...Y){return e[26](e[44],...Y)}function D(...Y){return e[27](e[44],...Y)}function L(){return e[28](e[44])}function S(...Y){return e[29](e[44],...Y)}function A(...Y){return e[30](e[44],...Y)}function V(...Y){return e[31](e[44],...Y)}function P(...Y){return e[32](e[44],...Y)}function K(...Y){return e[33](e[44],...Y)}function H(...Y){return e[34](e[44],...Y)}function W(...Y){return e[35](e[44],...Y)}function G(...Y){return e[36](e[44],...Y)}function q(...Y){return e[37](e[44],...Y)}let Z=v&&tn(e);return{key:l,first:null,c(){t=u("div"),N.c(),o=b(),s=u("span"),ot(r.$$.fragment),c=b(),f=u("span"),h=F(d),_=b(),Z&&Z.c(),y=at(),i(s,"class","tree-icon svelte-zj71cl"),i(s,"role","button"),i(s,"tabindex","-1"),i(f,"class","tree-label svelte-zj71cl"),i(f,"role","button"),i(f,"tabindex","-1"),i(t,"class","tree-item svelte-zj71cl"),qe(t,"padding-left",e[3]*16+4+"px"),i(t,"draggable","true"),i(t,"role","button"),i(t,"tabindex","0"),Ie(t,"selected",e[2]===e[44].id),Ie(t,"drop-valid",e[8]===e[44].id&&e[9][e[44].id]),Ie(t,"drop-invalid",e[8]===e[44].id&&!e[9][e[44].id]),this.first=t},m(Y,J){C(Y,t,J),N.m(t,null),a(t,o),a(t,s),lt(r,s,null),a(t,c),a(t,f),a(f,h),C(Y,_,J),Z&&Z.m(Y,J),C(Y,y,J),g=!0,k||(w=[I(s,"click",j),I(s,"keydown",D),I(s,"dblclick",it(e[24])),I(f,"click",it(L)),I(f,"keydown",S),I(t,"dragstart",A),I(t,"dragover",V),I(t,"dragleave",P),I(t,"drop",K),I(t,"click",H),I(t,"keydown",W),I(t,"dblclick",G),I(t,"contextmenu",ul(q))],k=!0)},p(Y,J){e=Y,M===(M=T(e,J))&&N?N.p(e,J):(N.d(1),N=M(e),N&&(N.c(),N.m(t,o)));const X={};J[0]&1&&(X.kind=nn(e[44])),r.$set(X),(!g||J[0]&1)&&d!==(d=e[44].title+"")&&U(h,d),(!g||J[0]&8)&&qe(t,"padding-left",e[3]*16+4+"px"),(!g||J[0]&5)&&Ie(t,"selected",e[2]===e[44].id),(!g||J[0]&769)&&Ie(t,"drop-valid",e[8]===e[44].id&&e[9][e[44].id]),(!g||J[0]&769)&&Ie(t,"drop-invalid",e[8]===e[44].id&&!e[9][e[44].id]),J[0]&3&&(v=e[1][e[44].id]&&fl(e[44])),v?Z?(Z.p(e,J),J[0]&3&&re(Z,1)):(Z=tn(e),Z.c(),re(Z,1),Z.m(y.parentNode,y)):Z&&($e(),pe(Z,1,1,()=>{Z=null}),et())},i(Y){g||(re(r.$$.fragment,Y),re(Z),g=!0)},o(Y){pe(r.$$.fragment,Y),pe(Z),g=!1},d(Y){Y&&(z(t),z(_),z(y)),N.d(),nt(r),Z&&Z.d(Y),k=!1,he(w)}}}function Ya(l){let e=[],t=new Map,n,o,s,r,c=fe(l[0]);const f=d=>d[44].id;for(let d=0;d0:l.has_children===!0}function on(l){const e={};function t(n,o){for(const s of n)e[s.id]=o,s.children&&t(s.children,s.id)}return t(l,""),e}function sn(l){const e=[];function t(n){for(const o of n)e.push(o),o.children&&t(o.children)}return t(l),e}function Xa(l){try{return l.dataTransfer.getData("text/plain")}catch{return""}}function Za(l,e,t){let n,o,s,{nodes:r=[]}=e,{expanded:c={}}=e,{selectedNodeId:f=""}=e,{level:d=0}=e,{onSelect:h=void 0}=e,{onToggle:_=void 0}=e,{onContextMenu:v=void 0}=e,{onDrop:y=void 0}=e,g={},k=null,w="",T="";const M=["folder","project","client","document","recipe","case"];pl(()=>{for(const B of Object.keys(g))clearTimeout(g[B]);k&&clearInterval(k)});function N(B){return M.includes(B.type)}function j(B,Q,ue){if(!B||!Q||Q===B.id||!N(B))return!1;let be=B.id;for(;be;){if(be===Q)return!1;be=ue[be]||""}return!0}function D(B,Q){B.stopPropagation(),B.dataTransfer.effectAllowed="move",B.dataTransfer.setData("text/plain",Q.id),t(21,w=Q.id)}function L(B,Q){B.preventDefault(),B.stopPropagation(),B.dataTransfer.dropEffect="move",T!==Q.id&&t(8,T=Q.id),Lt(Q)&&!c[Q.id]&&!g[Q.id]&&(g[Q.id]=setTimeout(()=>{_&&_(Q.id),delete g[Q.id]},600));const ue=B.currentTarget.closest(".workspace-tree-area");if(ue){const be=ue.getBoundingClientRect(),je=30;B.clientY-be.top{ue.scrollTop-=10},50)):be.bottom-B.clientY{ue.scrollTop+=10},50)):k&&(clearInterval(k),k=null)}}function S(B,Q){const ue=B.relatedTarget;ue&&B.currentTarget.contains(ue)||(T===Q.id&&t(8,T=""),g[Q.id]&&(clearTimeout(g[Q.id]),delete g[Q.id]),k&&(clearInterval(k),k=null))}function A(B,Q){B.preventDefault(),B.stopPropagation(),g[Q.id]&&(clearTimeout(g[Q.id]),delete g[Q.id]),k&&(clearInterval(k),k=null);const ue=sn(r),be=on(ue),je=Xa(B);if(!j(Q,je,be)){t(8,T=""),t(21,w="");return}y&&y(je,Q.id),t(8,T=""),t(21,w="")}function V(){t(8,T=""),t(21,w="");for(const B of Object.keys(g))clearTimeout(g[B]),delete g[B];k&&(clearInterval(k),k=null)}function P(B,Q){B.target.closest(".tree-toggle")||B.target.closest(".tree-icon")||h&&h(Q)}function K(B,Q){Lt(Q)&&_&&_(Q.id)}function H(B,Q){(B.key==="Enter"||B.key===" ")&&(B.preventDefault(),h&&h(Q))}function W(B,Q){B.stopPropagation(),Lt(Q)&&_&&_(Q.id)}function G(B,Q){(B.key==="Enter"||B.key===" ")&&(B.preventDefault(),B.stopPropagation(),Lt(Q)&&_&&_(Q.id))}function q(B,Q){(B.key==="Enter"||B.key===" ")&&(B.preventDefault(),h&&h(Q))}function Z(B,Q,ue){const be={};function je(Ee){for(const Ue of Ee)be[Ue.id]=j(Ue,Q,ue),Ue.children&&je(Ue.children)}return je(B),be}function Y(B){Yi.call(this,l,B)}const J=B=>_&&_(B.id),X=(B,Q)=>W(Q,B),O=(B,Q)=>G(Q,B),le=B=>h&&h(B),ke=(B,Q)=>q(Q,B),ee=(B,Q)=>D(Q,B),te=(B,Q)=>L(Q,B),oe=(B,Q)=>S(Q,B),ae=(B,Q)=>A(Q,B),ze=(B,Q)=>P(Q,B),ye=(B,Q)=>H(Q,B),He=(B,Q)=>K(Q,B),Re=(B,Q)=>v&&v(Q,B);return l.$$set=B=>{"nodes"in B&&t(0,r=B.nodes),"expanded"in B&&t(1,c=B.expanded),"selectedNodeId"in B&&t(2,f=B.selectedNodeId),"level"in B&&t(3,d=B.level),"onSelect"in B&&t(4,h=B.onSelect),"onToggle"in B&&t(5,_=B.onToggle),"onContextMenu"in B&&t(6,v=B.onContextMenu),"onDrop"in B&&t(7,y=B.onDrop)},l.$$.update=()=>{l.$$.dirty[0]&1&&t(23,n=sn(r)),l.$$.dirty[0]&8388608&&t(22,o=on(n)),l.$$.dirty[0]&14680064&&t(9,s=Z(n,w,o))},[r,c,f,d,h,_,v,y,T,s,D,L,S,A,V,P,K,H,W,G,q,w,o,n,Y,J,X,O,le,ke,ee,te,oe,ae,ze,ye,He,Re]}class oo extends bt{constructor(e){super(),ht(this,e,Za,Ya,vt,{nodes:0,expanded:1,selectedNodeId:2,level:3,onSelect:4,onToggle:5,onContextMenu:6,onDrop:7},null,[-1,-1])}}function rn(l,e,t){const n=l.slice();return n[262]=e[t],n}function an(l,e,t){const n=l.slice();return n[265]=e[t],n}function cn(l,e,t){const n=l.slice();return n[265]=e[t],n}function fn(l,e,t){const n=l.slice();return n[289]=e[t],n}function un(l,e,t){const n=l.slice();return n[289]=e[t],n}function dn(l,e,t){const n=l.slice();return n[307]=e[t],n}function pn(l,e,t){const n=l.slice();return n[289]=e[t],n}function mn(l,e,t){const n=l.slice();return n[286]=e[t],n[312]=e,n[313]=t,n}function _n(l,e,t){const n=l.slice();return n[295]=e[t],n}function vn(l,e,t){const n=l.slice();return n[298]=e[t],n}function hn(l,e,t){const n=l.slice();return n[298]=e[t],n}function bn(l,e,t){const n=l.slice();return n[286]=e[t],n[303]=e,n[304]=t,n}function gn(l,e,t){const n=l.slice();return n[289]=e[t],n}function kn(l,e,t){const n=l.slice();return n[270]=e[t],n}function yn(l,e,t){const n=l.slice();return n[286]=e[t],n}function wn(l,e,t){const n=l.slice();return n[281]=e[t],n}function zn(l,e,t){const n=l.slice();return n[278]=e[t],n}function Cn(l,e,t){const n=l.slice();return n[273]=e[t],n}function Sn(l,e,t){const n=l.slice();return n[270]=e[t],n}function Tn(l,e,t){const n=l.slice();return n[273]=e[t],n}function jn(l,e,t){const n=l.slice();return n[292]=e[t],n}function Nn(l,e,t){const n=l.slice();return n[316]=e[t],n}function Dn(l,e,t){const n=l.slice();return n[319]=e[t],n}function Mn(l){let e,t;return{c(){e=u("span"),t=F(l[26]),i(e,"class","nav-badge svelte-44iz1r")},m(n,o){C(n,e,o),a(e,t)},p(n,o){o[0]&67108864&&U(t,n[26])},d(n){n&&z(e)}}}function Fn(l){let e,t=l[319].label+"",n,o,s,r,c,f,d=l[319].id==="journal"&&l[26]>0&&Mn(l);function h(){return l[149](l[319])}return{c(){e=u("button"),n=F(t),o=b(),d&&d.c(),s=b(),i(e,"class",r="nav-item "+(l[16]===l[319].id?"selected":"")+" svelte-44iz1r")},m(_,v){C(_,e,v),a(e,n),a(e,o),d&&d.m(e,null),a(e,s),c||(f=I(e,"click",h),c=!0)},p(_,v){l=_,v[0]&1&&t!==(t=l[319].label+"")&&U(n,t),l[319].id==="journal"&&l[26]>0?d?d.p(l,v):(d=Mn(l),d.c(),d.m(e,s)):d&&(d.d(1),d=null),v[0]&65537&&r!==(r="nav-item "+(l[16]===l[319].id?"selected":"")+" svelte-44iz1r")&&i(e,"class",r)},d(_){_&&z(e),d&&d.d(),c=!1,f()}}}function Qa(l){let e;return{c(){e=u("div"),e.textContent=`${m("nav.noNodes")}`,i(e,"class","nav-empty svelte-44iz1r")},m(t,n){C(t,e,n)},p:ie,i:ie,o:ie,d(t){t&&z(e)}}}function xa(l){var r;let e,t,n,o,s;return t=new oo({props:{nodes:l[1],expanded:l[42],selectedNodeId:((r=l[17])==null?void 0:r.id)||"",onSelect:l[73],onToggle:l[103],onContextMenu:l[101],onDrop:l[104]}}),{c(){e=u("div"),ot(t.$$.fragment),i(e,"class","workspace-tree-area svelte-44iz1r"),i(e,"role","region"),i(e,"aria-label",m("nav.workspace")),Ie(e,"drop-valid",l[53])},m(c,f){C(c,e,f),lt(t,e,null),n=!0,o||(s=[I(e,"dragover",ul(l[106])),I(e,"dragleave",l[107]),I(e,"drop",l[105])],o=!0)},p(c,f){var h;const d={};f[0]&2&&(d.nodes=c[1]),f[1]&2048&&(d.expanded=c[42]),f[0]&131072&&(d.selectedNodeId=((h=c[17])==null?void 0:h.id)||""),t.$set(d),(!n||f[1]&4194304)&&Ie(e,"drop-valid",c[53])},i(c){n||(re(t.$$.fragment,c),n=!0)},o(c){pe(t.$$.fragment,c),n=!1},d(c){c&&z(e),nt(t),o=!1,he(s)}}}function $a(l){let e;return{c(){e=u("span"),e.textContent=`${m("nav.selectPrompt")}`,i(e,"class","crumb placeholder svelte-44iz1r")},m(t,n){C(t,e,n)},p:ie,d(t){t&&z(e)}}}function ec(l){let e,t=fe(l[0]),n=[];for(let o=0;o0&&An(l);return{c(){e=u("button"),t=R("svg"),n=R("polyline"),o=R("polyline"),s=R("path"),r=b(),d&&d.c(),i(n,"points","23 4 23 10 17 10"),i(n,"class","svelte-44iz1r"),i(o,"points","1 20 1 14 7 14"),i(o,"class","svelte-44iz1r"),i(s,"d","M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"),i(s,"class","svelte-44iz1r"),i(t,"width","16"),i(t,"height","16"),i(t,"viewBox","0 0 24 24"),i(t,"fill","none"),i(t,"stroke","currentColor"),i(t,"stroke-width","2"),i(t,"stroke-linecap","round"),i(t,"stroke-linejoin","round"),i(t,"class","svelte-44iz1r"),i(e,"class","header-sync-btn svelte-44iz1r"),e.disabled=l[64],i(e,"title",m("nav.syncNow"))},m(h,_){C(h,e,_),a(e,t),a(t,n),a(t,o),a(t,s),a(e,r),d&&d.m(e,null),c||(f=I(e,"click",l[147]),c=!0)},p(h,_){h[63].unpushedOps>0?d?d.p(h,_):(d=An(h),d.c(),d.m(e,null)):d&&(d.d(1),d=null),_[2]&4&&(e.disabled=h[64])},d(h){h&&z(e),d&&d.d(),c=!1,f()}}}function An(l){let e,t=l[63].unpushedOps+"",n;return{c(){e=u("span"),n=F(t),i(e,"class","sync-badge svelte-44iz1r")},m(o,s){C(o,e,s),a(e,n)},p(o,s){s[2]&2&&t!==(t=o[63].unpushedOps+"")&&U(n,t)},d(o){o&&z(e)}}}function Ln(l){let e,t,n,o,s,r;return{c(){e=u("div"),t=F(l[15]),n=b(),o=u("button"),o.innerHTML='',i(o,"class","dismiss-btn svelte-44iz1r"),i(o,"aria-label","Dismiss"),i(e,"class","error-banner svelte-44iz1r"),i(e,"role","button"),i(e,"tabindex","0")},m(c,f){C(c,e,f),a(e,t),a(e,n),a(e,o),s||(r=[I(o,"click",it(l[150])),I(e,"click",l[151]),I(e,"keydown",function(){Rt(rt(l[152]))&&rt(l[152]).apply(this,arguments)})],s=!0)},p(c,f){l=c,f[0]&32768&&U(t,l[15])},d(c){c&&z(e),s=!1,he(r)}}}function lc(l){let e,t,n;function o(c,f){if(c[38])return fc;if(c[0].length>0)return cc;if(c[15])return ac}let s=o(l),r=s&&s(l);return{c(){e=u("div"),t=u("h2"),t.textContent=`${m("welcome.title")}`,n=b(),r&&r.c(),i(t,"class","svelte-44iz1r"),i(e,"class","welcome svelte-44iz1r")},m(c,f){C(c,e,f),a(e,t),a(e,n),r&&r.m(e,null)},p(c,f){s===(s=o(c))&&r?r.p(c,f):(r&&r.d(1),r=s&&s(c),r&&(r.c(),r.m(e,null)))},i:ie,o:ie,d(c){c&&z(e),r&&r.d()}}}function nc(l){let e,t,n,o;function s(f,d){return f[4].length===0?dc:uc}let r=s(l),c=r(l);return{c(){e=u("div"),t=u("div"),n=u("h2"),n.textContent=`${m("activity.title")}`,o=b(),c.c(),i(n,"class","svelte-44iz1r"),i(t,"class","activity-feed-header svelte-44iz1r"),i(e,"class","activity-feed svelte-44iz1r")},m(f,d){C(f,e,d),a(e,t),a(t,n),a(e,o),c.m(e,null)},p(f,d){r===(r=s(f))&&c?c.p(f,d):(c.d(1),c=r(f),c&&(c.c(),c.m(e,null)))},i:ie,o:ie,d(f){f&&z(e),c.d()}}}function ic(l){let e,t,n,o,s,r=l[3].date+"",c,f,d,h,_=l[3].summary&&Bn(l),v=l[25].length>0&&Un(l);function y(w,T){return w[3].groups&&w[3].groups.length>0?mc:pc}let g=y(l),k=g(l);return{c(){e=u("div"),t=u("div"),n=u("h2"),n.textContent=`${m("today.title")}`,o=b(),s=u("span"),c=F(r),f=b(),_&&_.c(),d=b(),v&&v.c(),h=b(),k.c(),i(n,"class","svelte-44iz1r"),i(s,"class","today-date svelte-44iz1r"),i(t,"class","today-header svelte-44iz1r"),i(e,"class","today-dashboard svelte-44iz1r")},m(w,T){C(w,e,T),a(e,t),a(t,n),a(t,o),a(t,s),a(s,c),a(e,f),_&&_.m(e,null),a(e,d),v&&v.m(e,null),a(e,h),k.m(e,null)},p(w,T){T[0]&8&&r!==(r=w[3].date+"")&&U(c,r),w[3].summary?_?_.p(w,T):(_=Bn(w),_.c(),_.m(e,d)):_&&(_.d(1),_=null),w[25].length>0?v?v.p(w,T):(v=Un(w),v.c(),v.m(e,h)):v&&(v.d(1),v=null),g===(g=y(w))&&k?k.p(w,T):(k.d(1),k=g(w),k&&(k.c(),k.m(e,null)))},i:ie,o:ie,d(w){w&&z(e),_&&_.d(),v&&v.d(),k.d()}}}function oc(l){let e,t,n,o,s,r,c,f,d,h,_,v,y,g,k,w,T,M,N,j,D,L,S,A,V,P,K,H,W,G,q,Z,Y,J,X,O,le,ke,ee,te,oe,ae,ze,ye,He,Re,B,Q,ue,be,je,Ee,Ue,De,Ce,ce,Me,Fe,_e=l[10]&&Zn(l),ve=l[25].length>0&&Qn(l),de=l[6]&&$n(l);function se(we,Se){return we[5].length===0?bc:hc}let Ae=se(l),Ne=Ae(l);return{c(){e=u("div"),t=u("div"),n=u("h2"),n.textContent=`${m("journal.title")}`,o=b(),s=u("div"),r=u("label"),c=u("span"),c.textContent=`${m("journal.dateFrom")}`,f=b(),d=u("input"),h=b(),_=u("label"),v=u("span"),v.textContent=`${m("journal.dateTo")}`,y=b(),g=u("input"),k=b(),w=u("label"),T=u("span"),T.textContent=`${m("journal.node")}`,M=b(),N=u("div"),j=u("input"),D=b(),L=u("button"),L.textContent=`${m("common.search")}`,S=b(),_e&&_e.c(),A=b(),V=u("label"),P=u("input"),H=b(),W=u("span"),W.textContent=`${m("journal.includeChildren")}`,G=b(),q=u("label"),Z=u("span"),Z.textContent=`${m("journal.billable")}`,Y=b(),J=u("select"),X=u("option"),X.textContent=`${m("common.all")}`,O=u("option"),O.textContent=`${m("journal.billable")}`,le=u("option"),le.textContent=`${m("common.no")}`,ke=b(),ee=u("label"),te=u("span"),te.textContent=`${m("journal.approximate")}`,oe=b(),ae=u("select"),ze=u("option"),ze.textContent=`${m("common.all")}`,ye=u("option"),ye.textContent=`${m("journal.approximate")}`,He=u("option"),He.textContent=`${m("common.no")}`,Re=b(),B=u("button"),B.textContent=`${m("journal.filter")}`,Q=b(),ue=u("button"),ue.textContent=`${m("journal.exportCSV")}`,be=b(),je=u("button"),je.textContent=`${m("journal.exportMarkdown")}`,Ee=b(),Ue=u("button"),Ue.textContent="PDF",De=b(),ve&&ve.c(),Ce=b(),de&&de.c(),ce=b(),Ne.c(),i(n,"class","svelte-44iz1r"),i(c,"class","label-text svelte-44iz1r"),i(d,"type","date"),i(d,"class","svelte-44iz1r"),i(r,"class","svelte-44iz1r"),i(v,"class","label-text svelte-44iz1r"),i(g,"type","date"),i(g,"class","svelte-44iz1r"),i(_,"class","svelte-44iz1r"),i(T,"class","label-text svelte-44iz1r"),i(j,"type","text"),i(j,"placeholder","nodeId"),i(j,"class","svelte-44iz1r"),i(L,"class","btn btn-sm svelte-44iz1r"),i(N,"class","journal-node-picker svelte-44iz1r"),i(w,"class","svelte-44iz1r"),i(P,"type","checkbox"),P.disabled=K=!l[10],i(P,"class","svelte-44iz1r"),i(W,"class","svelte-44iz1r"),i(V,"class","checkbox-label svelte-44iz1r"),i(Z,"class","label-text svelte-44iz1r"),X.__value="all",ge(X,X.__value),i(X,"class","svelte-44iz1r"),O.__value="yes",ge(O,O.__value),i(O,"class","svelte-44iz1r"),le.__value="no",ge(le,le.__value),i(le,"class","svelte-44iz1r"),i(J,"class","svelte-44iz1r"),l[11]===void 0&&Nt(()=>l[188].call(J)),i(q,"class","svelte-44iz1r"),i(te,"class","label-text svelte-44iz1r"),ze.__value="all",ge(ze,ze.__value),i(ze,"class","svelte-44iz1r"),ye.__value="yes",ge(ye,ye.__value),i(ye,"class","svelte-44iz1r"),He.__value="no",ge(He,He.__value),i(He,"class","svelte-44iz1r"),i(ae,"class","svelte-44iz1r"),l[12]===void 0&&Nt(()=>l[189].call(ae)),i(ee,"class","svelte-44iz1r"),i(B,"class","btn btn-sm svelte-44iz1r"),i(ue,"class","btn btn-sm svelte-44iz1r"),i(je,"class","btn btn-sm svelte-44iz1r"),i(Ue,"class","btn btn-sm svelte-44iz1r"),i(s,"class","journal-filters svelte-44iz1r"),i(t,"class","journal-header svelte-44iz1r"),i(e,"class","journal-screen svelte-44iz1r")},m(we,Se){C(we,e,Se),a(e,t),a(t,n),a(t,o),a(t,s),a(s,r),a(r,c),a(r,f),a(r,d),ge(d,l[7]),a(s,h),a(s,_),a(_,v),a(_,y),a(_,g),ge(g,l[8]),a(s,k),a(s,w),a(w,T),a(w,M),a(w,N),a(N,j),ge(j,l[10]),a(N,D),a(N,L),a(N,S),_e&&_e.m(N,null),a(s,A),a(s,V),a(V,P),P.checked=l[9],a(V,H),a(V,W),a(s,G),a(s,q),a(q,Z),a(q,Y),a(q,J),a(J,X),a(J,O),a(J,le),Tt(J,l[11],!0),a(s,ke),a(s,ee),a(ee,te),a(ee,oe),a(ee,ae),a(ae,ze),a(ae,ye),a(ae,He),Tt(ae,l[12],!0),a(s,Re),a(s,B),a(s,Q),a(s,ue),a(s,be),a(s,je),a(s,Ee),a(s,Ue),a(e,De),ve&&ve.m(e,null),a(e,Ce),de&&de.m(e,null),a(e,ce),Ne.m(e,null),Me||(Fe=[I(d,"input",l[184]),I(g,"input",l[185]),I(j,"input",l[186]),I(L,"click",l[126]),I(P,"change",l[187]),I(J,"change",l[188]),I(ae,"change",l[189]),I(B,"click",l[122]),I(ue,"click",l[123]),I(je,"click",l[124]),I(Ue,"click",l[125])],Me=!0)},p(we,Se){Se[0]&128&&ge(d,we[7]),Se[0]&256&&ge(g,we[8]),Se[0]&1024&&j.value!==we[10]&&ge(j,we[10]),we[10]?_e?_e.p(we,Se):(_e=Zn(we),_e.c(),_e.m(N,null)):_e&&(_e.d(1),_e=null),Se[0]&1024&&K!==(K=!we[10])&&(P.disabled=K),Se[0]&512&&(P.checked=we[9]),Se[0]&2048&&Tt(J,we[11]),Se[0]&4096&&Tt(ae,we[12]),we[25].length>0?ve?ve.p(we,Se):(ve=Qn(we),ve.c(),ve.m(e,Ce)):ve&&(ve.d(1),ve=null),we[6]?de?de.p(we,Se):(de=$n(we),de.c(),de.m(e,ce)):de&&(de.d(1),de=null),Ae===(Ae=se(we))&&Ne?Ne.p(we,Se):(Ne.d(1),Ne=Ae(we),Ne&&(Ne.c(),Ne.m(e,null)))},i:ie,o:ie,d(we){we&&z(e),_e&&_e.d(),ve&&ve.d(),de&&de.d(),Ne.d(),Me=!1,he(Fe)}}}function sc(l){let e,t,n,o,s,r,c=fe(l[71]),f=[];for(let v=0;v{h[g]=null}),et()),~o?(s=h[o],s?s.p(v,y):(s=h[o]=d[o](v),s.c()),re(s,1),s.m(n,null)):s=null)},i(v){r||(re(s),r=!0)},o(v){pe(s),r=!1},d(v){v&&(z(e),z(t),z(n)),Ve(f,v),~o&&h[o].d()}}}function rc(l){let e,t,n,o=l[20].title+"",s,r,c,f,d,h,_,v,y,g,k,w=l[20].dirty&&Ci();return{c(){e=u("div"),t=u("div"),n=u("span"),s=F(o),r=b(),w&&w.c(),c=b(),f=u("div"),d=u("button"),d.textContent=`${m("common.save")}`,h=b(),_=u("button"),_.textContent=`${m("common.close")}`,v=b(),y=u("textarea"),i(n,"class","note-title svelte-44iz1r"),i(d,"class","btn btn-primary svelte-44iz1r"),i(_,"class","btn svelte-44iz1r"),i(f,"class","note-editor-actions svelte-44iz1r"),i(t,"class","note-editor-header svelte-44iz1r"),i(y,"class","note-textarea svelte-44iz1r"),i(y,"placeholder",m("note.placeholder")),i(e,"class","note-editor svelte-44iz1r")},m(T,M){C(T,e,M),a(e,t),a(t,n),a(n,s),a(t,r),w&&w.m(t,null),a(t,c),a(t,f),a(f,d),a(f,h),a(f,_),a(e,v),a(e,y),ge(y,l[20].content),g||(k=[I(d,"click",l[118]),I(_,"click",l[116]),I(y,"input",l[153]),I(y,"input",l[117])],g=!0)},p(T,M){M[0]&1048576&&o!==(o=T[20].title+"")&&U(s,o),T[20].dirty?w||(w=Ci(),w.c(),w.m(t,c)):w&&(w.d(1),w=null),M[0]&1048576&&ge(y,T[20].content)},i:ie,o:ie,d(T){T&&z(e),w&&w.d(),g=!1,he(k)}}}function ac(l){let e,t=m("common.error")+"",n,o,s;return{c(){e=u("p"),n=F(t),o=b(),s=F(l[15]),i(e,"class","error-text svelte-44iz1r")},m(r,c){C(r,e,c),a(e,n),a(e,o),a(e,s)},p(r,c){c[0]&32768&&U(s,r[15])},d(r){r&&z(e)}}}function cc(l){let e,t,n;return{c(){e=u("p"),e.textContent=`${m("welcome.selectSection")}`,t=b(),n=u("p"),n.textContent=`${m("welcome.createCase")}`,i(e,"class","svelte-44iz1r"),i(n,"class","hint svelte-44iz1r")},m(o,s){C(o,e,s),C(o,t,s),C(o,n,s)},p:ie,d(o){o&&(z(e),z(t),z(n))}}}function fc(l){let e;return{c(){e=u("p"),e.textContent=`${m("common.loading")}`,i(e,"class","svelte-44iz1r")},m(t,n){C(t,e,n)},p:ie,d(t){t&&z(e)}}}function uc(l){let e,t=fe(l[4]),n=[];for(let o=0;o0&&Rn(l),s=l[3].summary.notes>0&&Vn(l),r=l[3].summary.files>0&&Hn(l);return{c(){e=u("div"),o&&o.c(),t=b(),s&&s.c(),n=b(),r&&r.c(),i(e,"class","today-summary svelte-44iz1r")},m(c,f){C(c,e,f),o&&o.m(e,null),a(e,t),s&&s.m(e,null),a(e,n),r&&r.m(e,null)},p(c,f){c[3].summary.changedCases>0?o?o.p(c,f):(o=Rn(c),o.c(),o.m(e,t)):o&&(o.d(1),o=null),c[3].summary.notes>0?s?s.p(c,f):(s=Vn(c),s.c(),s.m(e,n)):s&&(s.d(1),s=null),c[3].summary.files>0?r?r.p(c,f):(r=Hn(c),r.c(),r.m(e,null)):r&&(r.d(1),r=null)},d(c){c&&z(e),o&&o.d(),s&&s.d(),r&&r.d()}}}function Rn(l){let e,t=l[3].summary.changedCases+"",n,o,s=_t(l[3].summary.changedCases,m("today.plural.case_one"),m("today.plural.case_few"),m("today.plural.case_many"))+"",r;return{c(){e=u("span"),n=F(t),o=b(),r=F(s),i(e,"class","summary-chip svelte-44iz1r")},m(c,f){C(c,e,f),a(e,n),a(e,o),a(e,r)},p(c,f){f[0]&8&&t!==(t=c[3].summary.changedCases+"")&&U(n,t),f[0]&8&&s!==(s=_t(c[3].summary.changedCases,m("today.plural.case_one"),m("today.plural.case_few"),m("today.plural.case_many"))+"")&&U(r,s)},d(c){c&&z(e)}}}function Vn(l){let e,t=l[3].summary.notes+"",n,o,s=_t(l[3].summary.notes,m("today.plural.note_one"),m("today.plural.note_few"),m("today.plural.note_many"))+"",r;return{c(){e=u("span"),n=F(t),o=b(),r=F(s),i(e,"class","summary-chip svelte-44iz1r")},m(c,f){C(c,e,f),a(e,n),a(e,o),a(e,r)},p(c,f){f[0]&8&&t!==(t=c[3].summary.notes+"")&&U(n,t),f[0]&8&&s!==(s=_t(c[3].summary.notes,m("today.plural.note_one"),m("today.plural.note_few"),m("today.plural.note_many"))+"")&&U(r,s)},d(c){c&&z(e)}}}function Hn(l){let e,t=l[3].summary.files+"",n,o,s=_t(l[3].summary.files,m("today.plural.file_one"),m("today.plural.file_few"),m("today.plural.file_many"))+"",r;return{c(){e=u("span"),n=F(t),o=b(),r=F(s),i(e,"class","summary-chip svelte-44iz1r")},m(c,f){C(c,e,f),a(e,n),a(e,o),a(e,r)},p(c,f){f[0]&8&&t!==(t=c[3].summary.files+"")&&U(n,t),f[0]&8&&s!==(s=_t(c[3].summary.files,m("today.plural.file_one"),m("today.plural.file_few"),m("today.plural.file_many"))+"")&&U(r,s)},d(c){c&&z(e)}}}function Un(l){let e,t,n,o=fe(l[25]),s=[];for(let r=0;r0&&Yn(l);return{c(){for(let r=0;r0?s?s.p(r,c):(s=Yn(r),s.c(),s.m(t.parentNode,t)):s&&(s.d(1),s=null)},d(r){r&&(z(e),z(t)),Ve(o,r),s&&s.d(r)}}}function Kn(l){let e,t=l[307].events.length+"",n,o,s=_t(l[307].events.length,m("today.plural.event_one"),m("today.plural.event_few"),m("today.plural.event_many"))+"",r;return{c(){e=u("span"),n=F(t),o=b(),r=F(s),i(e,"class","today-case-count svelte-44iz1r")},m(c,f){C(c,e,f),a(e,n),a(e,o),a(e,r)},p(c,f){f[0]&8&&t!==(t=c[307].events.length+"")&&U(n,t),f[0]&8&&s!==(s=_t(c[307].events.length,m("today.plural.event_one"),m("today.plural.event_few"),m("today.plural.event_many"))+"")&&U(r,s)},d(c){c&&z(e)}}}function _c(l){let e;return{c(){e=u("div"),e.textContent=`${m("today.changedCases")}`,i(e,"class","today-events-empty svelte-44iz1r")},m(t,n){C(t,e,n)},p:ie,d(t){t&&z(e)}}}function vc(l){let e,t=fe(l[307].events),n=[];for(let o=0;o0?vc:_c}let L=D(l),S=L(l);return{c(){e=u("div"),t=u("div"),n=u("span"),s=F(o),r=b(),c=u("span"),d=F(f),h=b(),M&&M.c(),_=b(),v=u("span"),g=F(y),k=b(),S.c(),i(n,"class","today-case-title svelte-44iz1r"),i(c,"class","today-case-type svelte-44iz1r"),i(v,"class","today-case-time svelte-44iz1r"),i(t,"class","today-case-header svelte-44iz1r"),i(t,"role","button"),i(t,"tabindex","0"),i(e,"class","today-case svelte-44iz1r")},m(A,V){C(A,e,V),a(e,t),a(t,n),a(n,s),a(t,r),a(t,c),a(c,d),a(t,h),M&&M.m(t,null),a(t,_),a(t,v),a(v,g),a(e,k),S.m(e,null),w||(T=[I(t,"click",N),I(t,"keydown",j)],w=!0)},p(A,V){l=A,V[0]&8&&o!==(o=l[307].nodeTitle+"")&&U(s,o),V[0]&8&&f!==(f=l[134](l[307].nodeKind)+"")&&U(d,f),l[307].events?M?M.p(l,V):(M=Kn(l),M.c(),M.m(t,_)):M&&(M.d(1),M=null),V[0]&8&&y!==(y=pt(l[307].lastActivityAt)+"")&&U(g,y),L===(L=D(l))&&S?S.p(l,V):(S.d(1),S=L(l),S&&(S.c(),S.m(e,null)))},d(A){A&&z(e),M&&M.d(),S.d(),w=!1,he(T)}}}function Yn(l){let e,t,n,o=fe(l[3].events),s=[];for(let r=0;r0&&ei(l),D=l[6].byNode&&l[6].byNode.length>0&&li(l);return{c(){e=u("div"),t=u("div"),o=F(n),s=F(": "),c=F(r),f=F("ч "),h=F(d),_=F("м ("),y=F(v),g=b(),w=F(k),T=F(")"),M=b(),j&&j.c(),N=b(),D&&D.c(),i(t,"class","summary-total svelte-44iz1r"),i(e,"class","journal-summary svelte-44iz1r")},m(L,S){C(L,e,S),a(e,t),a(t,o),a(t,s),a(t,c),a(t,f),a(t,h),a(t,_),a(t,y),a(t,g),a(t,w),a(t,T),a(e,M),j&&j.m(e,null),a(e,N),D&&D.m(e,null)},p(L,S){S[0]&64&&r!==(r=Math.floor(L[6].totalMinutes/60)+"")&&U(c,r),S[0]&64&&d!==(d=L[6].totalMinutes%60+"")&&U(h,d),S[0]&64&&v!==(v=L[6].totalEntries+"")&&U(y,v),L[6].byDay&&L[6].byDay.length>0?j?j.p(L,S):(j=ei(L),j.c(),j.m(e,N)):j&&(j.d(1),j=null),L[6].byNode&&L[6].byNode.length>0?D?D.p(L,S):(D=li(L),D.c(),D.m(e,null)):D&&(D.d(1),D=null)},d(L){L&&z(e),j&&j.d(),D&&D.d()}}}function ei(l){let e,t,n,o=fe(l[6].byDay),s=[];for(let r=0;r0,y,g,k,w=v&&fi(l);function T(j,D){return j[22].length===0?Nc:jc}let M=T(l),N=M(l);return{c(){e=u("div"),t=u("div"),n=u("input"),o=b(),s=u("input"),r=b(),c=u("button"),d=F(f),_=b(),w&&w.c(),y=b(),N.c(),i(n,"type","text"),i(n,"placeholder",m("worklog.whatDone")),i(n,"class","svelte-44iz1r"),i(s,"type","number"),i(s,"placeholder",m("worklog.minutes")),i(s,"min","1"),i(s,"class","svelte-44iz1r"),i(c,"class","btn btn-primary svelte-44iz1r"),c.disabled=h=!l[24].trim()||!l[23],i(t,"class","worklog-form svelte-44iz1r"),i(e,"class","worklog-tab svelte-44iz1r")},m(j,D){C(j,e,D),a(e,t),a(t,n),ge(n,l[24]),a(t,o),a(t,s),ge(s,l[23]),a(t,r),a(t,c),a(c,d),a(e,_),w&&w.m(e,null),a(e,y),N.m(e,null),g||(k=[I(n,"input",l[180]),I(s,"input",l[181]),I(c,"click",l[119])],g=!0)},p(j,D){D[0]&16777216&&n.value!==j[24]&&ge(n,j[24]),D[0]&8388608&&Wt(s.value)!==j[23]&&ge(s,j[23]),D[0]&25165824&&h!==(h=!j[24].trim()||!j[23])&&(c.disabled=h),D[0]&33685504&&(v=j[17]&&j[25].filter(j[148]).length>0),v?w?w.p(j,D):(w=fi(j),w.c(),w.m(e,y)):w&&(w.d(1),w=null),M===(M=T(j))&&N?N.p(j,D):(N.d(1),N=M(j),N&&(N.c(),N.m(e,null)))},i:ie,o:ie,d(j){j&&z(e),w&&w.d(),N.d(),g=!1,he(k)}}}function yc(l){let e,t,n,o,s,r;function c(h,_){return h[21].length===0?Mc:Dc}let f=c(l),d=f(l);return{c(){e=u("div"),t=u("div"),n=u("button"),n.textContent=`${m("action.addAction")}`,o=b(),d.c(),i(n,"class","btn btn-primary svelte-44iz1r"),i(t,"class","tab-toolbar svelte-44iz1r"),i(e,"class","actions-tab svelte-44iz1r")},m(h,_){C(h,e,_),a(e,t),a(t,n),a(e,o),d.m(e,null),s||(r=I(n,"click",l[135]),s=!0)},p(h,_){f===(f=c(h))&&d?d.p(h,_):(d.d(1),d=f(h),d&&(d.c(),d.m(e,null)))},i:ie,o:ie,d(h){h&&z(e),d.d(),s=!1,r()}}}function wc(l){let e,t,n,o=m("file.addFile")+"",s,r,c,f=m("file.addFolder")+"",d,h,_,v,y,g,k,w,T,M,N,j,D,L=l[51].items.length>0&&mi(l);const S=[Ic,Fc],A=[];function V(H,W){return H[43]?0:1}g=V(l),k=A[g]=S[g](l);let P=l[39]&&!l[41]&&vi(),K=l[47]&&hi(l);return{c(){e=u("div"),t=u("div"),n=u("button"),s=F(o),r=b(),c=u("button"),d=F(f),h=b(),_=u("button"),_.textContent=`${m("file.newFile")}`,v=b(),L&&L.c(),y=b(),k.c(),w=b(),P&&P.c(),T=b(),K&&K.c(),M=at(),i(n,"class","btn btn-primary svelte-44iz1r"),n.disabled=l[39],i(c,"class","btn svelte-44iz1r"),c.disabled=l[39],i(_,"class","btn svelte-44iz1r"),i(t,"class","tab-toolbar svelte-44iz1r"),i(e,"class","files-tab svelte-44iz1r")},m(H,W){C(H,e,W),a(e,t),a(t,n),a(n,s),a(t,r),a(t,c),a(c,d),a(t,h),a(t,_),a(t,v),L&&L.m(t,null),a(e,y),A[g].m(e,null),a(e,w),P&&P.m(e,null),C(H,T,W),K&&K.m(H,W),C(H,M,W),N=!0,j||(D=[I(n,"click",l[128]),I(c,"click",l[129]),I(_,"click",l[80])],j=!0)},p(H,W){(!N||W[1]&256)&&(n.disabled=H[39]),(!N||W[1]&256)&&(c.disabled=H[39]),H[51].items.length>0?L?L.p(H,W):(L=mi(H),L.c(),L.m(t,null)):L&&(L.d(1),L=null);let G=g;g=V(H),g===G?A[g].p(H,W):($e(),pe(A[G],1,1,()=>{A[G]=null}),et(),k=A[g],k?k.p(H,W):(k=A[g]=S[g](H),k.c()),re(k,1),k.m(e,w)),H[39]&&!H[41]?P||(P=vi(),P.c(),P.m(e,null)):P&&(P.d(1),P=null),H[47]?K?(K.p(H,W),W[1]&65536&&re(K,1)):(K=hi(H),K.c(),re(K,1),K.m(M.parentNode,M)):K&&($e(),pe(K,1,1,()=>{K=null}),et())},i(H){N||(re(k),re(K),N=!0)},o(H){pe(k),pe(K),N=!1},d(H){H&&(z(e),z(T),z(M)),L&&L.d(),A[g].d(),P&&P.d(),K&&K.d(H),j=!1,he(D)}}}function zc(l){let e,t,n,o,s,r,c,f=l[32]&&bi(l);function d(v,y){return v[19].length===0&&!v[32]?Bc:Oc}let h=d(l),_=h(l);return{c(){e=u("div"),t=u("div"),n=u("button"),n.textContent=`${m("note.add")}`,o=b(),f&&f.c(),s=b(),_.c(),i(n,"class","btn btn-primary svelte-44iz1r"),i(t,"class","tab-toolbar svelte-44iz1r"),i(e,"class","notes-tab svelte-44iz1r")},m(v,y){C(v,e,y),a(e,t),a(t,n),a(e,o),f&&f.m(e,null),a(e,s),_.m(e,null),r||(c=I(n,"click",l[112]),r=!0)},p(v,y){v[32]?f?f.p(v,y):(f=bi(v),f.c(),f.m(e,s)):f&&(f.d(1),f=null),h===(h=d(v))&&_?_.p(v,y):(_.d(1),_=h(v),_&&(_.c(),_.m(e,null)))},i:ie,o:ie,d(v){v&&z(e),f&&f.d(),_.d(),r=!1,c()}}}function Cc(l){let e,t,n=l[17].title+"",o,s,r,c,f,d,h=l[134](l[17].type)+"",_,v,y,g,k,w=(l[17].section||"—")+"",T,M,N,j,D,L=mt(l[17].createdAt)+"",S,A,V,P,K,H,W,G,q=m("overview.newNote")+"",Z,Y,J,X,O,le,ke=m("overview.addFile")+"",ee,te,oe,ae,ze,ye,He=m("overview.addAction")+"",Re,B,Q,ue,be,je,Ee,Ue=m("overview.logTime")+"",De,Ce,ce,Me,Fe,_e=l[19].length>0&&ki(l),ve=l[22].length>0&&wi(l);return{c(){e=u("div"),t=u("h2"),o=F(n),s=b(),r=u("div"),c=u("div"),f=u("span"),f.textContent=`${m("overview.type")}`,d=u("span"),_=F(h),v=b(),y=u("div"),g=u("span"),g.textContent=`${m("overview.section")}`,k=u("span"),T=F(w),M=b(),N=u("div"),j=u("span"),j.textContent=`${m("overview.created")}`,D=u("span"),S=F(L),A=b(),V=u("div"),P=u("button"),K=R("svg"),H=R("path"),W=R("path"),G=b(),Z=F(q),Y=b(),J=u("button"),X=R("svg"),O=R("path"),le=b(),ee=F(ke),te=b(),oe=u("button"),ae=R("svg"),ze=R("polygon"),ye=b(),Re=F(He),B=b(),Q=u("button"),ue=R("svg"),be=R("circle"),je=R("polyline"),Ee=b(),De=F(Ue),Ce=b(),_e&&_e.c(),ce=b(),ve&&ve.c(),i(t,"class","svelte-44iz1r"),i(f,"class","meta-label svelte-44iz1r"),i(d,"class","svelte-44iz1r"),i(c,"class","meta-item svelte-44iz1r"),i(g,"class","meta-label svelte-44iz1r"),i(k,"class","svelte-44iz1r"),i(y,"class","meta-item svelte-44iz1r"),i(j,"class","meta-label svelte-44iz1r"),i(D,"class","svelte-44iz1r"),i(N,"class","meta-item svelte-44iz1r"),i(r,"class","meta-grid svelte-44iz1r"),i(H,"d","M12 20h9"),i(H,"class","svelte-44iz1r"),i(W,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"),i(W,"class","svelte-44iz1r"),i(K,"width","16"),i(K,"height","16"),i(K,"viewBox","0 0 24 24"),i(K,"fill","none"),i(K,"stroke","currentColor"),i(K,"stroke-width","2"),i(K,"stroke-linecap","round"),i(K,"stroke-linejoin","round"),i(K,"class","svelte-44iz1r"),i(P,"class","qa-btn svelte-44iz1r"),i(O,"d","M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"),i(O,"class","svelte-44iz1r"),i(X,"width","16"),i(X,"height","16"),i(X,"viewBox","0 0 24 24"),i(X,"fill","none"),i(X,"stroke","currentColor"),i(X,"stroke-width","2"),i(X,"stroke-linecap","round"),i(X,"stroke-linejoin","round"),i(X,"class","svelte-44iz1r"),i(J,"class","qa-btn svelte-44iz1r"),i(ze,"points","13 2 3 14 12 14 11 22 21 10 12 10 13 2"),i(ze,"class","svelte-44iz1r"),i(ae,"width","16"),i(ae,"height","16"),i(ae,"viewBox","0 0 24 24"),i(ae,"fill","none"),i(ae,"stroke","currentColor"),i(ae,"stroke-width","2"),i(ae,"stroke-linecap","round"),i(ae,"stroke-linejoin","round"),i(ae,"class","svelte-44iz1r"),i(oe,"class","qa-btn svelte-44iz1r"),i(be,"cx","12"),i(be,"cy","12"),i(be,"r","10"),i(be,"class","svelte-44iz1r"),i(je,"points","12 6 12 12 16 14"),i(je,"class","svelte-44iz1r"),i(ue,"width","16"),i(ue,"height","16"),i(ue,"viewBox","0 0 24 24"),i(ue,"fill","none"),i(ue,"stroke","currentColor"),i(ue,"stroke-width","2"),i(ue,"stroke-linecap","round"),i(ue,"stroke-linejoin","round"),i(ue,"class","svelte-44iz1r"),i(Q,"class","qa-btn svelte-44iz1r"),i(V,"class","quick-actions svelte-44iz1r"),i(e,"class","overview svelte-44iz1r")},m(de,se){C(de,e,se),a(e,t),a(t,o),a(e,s),a(e,r),a(r,c),a(c,f),a(c,d),a(d,_),a(r,v),a(r,y),a(y,g),a(y,k),a(k,T),a(r,M),a(r,N),a(N,j),a(N,D),a(D,S),a(e,A),a(e,V),a(V,P),a(P,K),a(K,H),a(K,W),a(P,G),a(P,Z),a(V,Y),a(V,J),a(J,X),a(X,O),a(J,le),a(J,ee),a(V,te),a(V,oe),a(oe,ae),a(ae,ze),a(oe,ye),a(oe,Re),a(V,B),a(V,Q),a(Q,ue),a(ue,be),a(ue,je),a(Q,Ee),a(Q,De),a(e,Ce),_e&&_e.m(e,null),a(e,ce),ve&&ve.m(e,null),Me||(Fe=[I(P,"click",l[155]),I(J,"click",l[156]),I(oe,"click",l[135]),I(Q,"click",l[157])],Me=!0)},p(de,se){se[0]&131072&&n!==(n=de[17].title+"")&&U(o,n),se[0]&131072&&h!==(h=de[134](de[17].type)+"")&&U(_,h),se[0]&131072&&w!==(w=(de[17].section||"—")+"")&&U(T,w),se[0]&131072&&L!==(L=mt(de[17].createdAt)+"")&&U(S,L),de[19].length>0?_e?_e.p(de,se):(_e=ki(de),_e.c(),_e.m(e,ce)):_e&&(_e.d(1),_e=null),de[22].length>0?ve?ve.p(de,se):(ve=wi(de),ve.c(),ve.m(e,null)):ve&&(ve.d(1),ve=null)},i:ie,o:ie,d(de){de&&z(e),_e&&_e.d(),ve&&ve.d(),Me=!1,he(Fe)}}}function Sc(l){let e,t=fe(l[13]),n=[];for(let o=0;o',N=b(),i(n,"class","action-title svelte-44iz1r"),i(c,"class","action-type svelte-44iz1r"),i(_,"class","action-data svelte-44iz1r"),i(t,"class","action-info svelte-44iz1r"),i(w,"class","btn btn-sm svelte-44iz1r"),i(M,"class","btn btn-sm btn-danger svelte-44iz1r"),i(k,"class","action-btns svelte-44iz1r"),i(e,"class","action-card svelte-44iz1r")},m(A,V){C(A,e,V),a(e,t),a(t,n),a(n,s),a(t,r),a(t,c),a(c,d),a(t,h),a(t,_),a(_,y),a(e,g),a(e,k),a(k,w),a(k,T),a(k,M),a(e,N),j||(D=[I(w,"click",L),I(M,"click",S)],j=!0)},p(A,V){l=A,V[0]&2097152&&o!==(o=l[281].title+"")&&U(s,o),V[0]&2097152&&f!==(f=l[139](l[281].type)+"")&&U(d,f),V[0]&2097152&&v!==(v=l[281].data+"")&&U(y,v)},d(A){A&&z(e),j=!1,he(D)}}}function mi(l){let e,t=m("common.paste")+"",n,o,s=l[51].items.length+"",r,c,f;return{c(){e=u("button"),n=F(t),o=b(),r=F(s),i(e,"class","btn svelte-44iz1r")},m(d,h){C(d,e,h),a(e,n),a(e,o),a(e,r),c||(f=I(e,"click",l[85]),c=!0)},p(d,h){h[1]&1048576&&s!==(s=d[51].items.length+"")&&U(r,s)},d(d){d&&z(e),c=!1,f()}}}function Fc(l){let e,t,n,o,s,r,c;const f=[Ac,Ec],d=[];function h(g,k){return g[45].length>0?0:1}e=h(l),t=d[e]=f[e](l);const _=[Pc,Lc],v=[];function y(g,k){return g[46].length===0?0:1}return o=y(l),s=v[o]=_[o](l),{c(){t.c(),n=b(),s.c(),r=at()},m(g,k){d[e].m(g,k),C(g,n,k),v[o].m(g,k),C(g,r,k),c=!0},p(g,k){let w=e;e=h(g),e===w?d[e].p(g,k):($e(),pe(d[w],1,1,()=>{d[w]=null}),et(),t=d[e],t?t.p(g,k):(t=d[e]=f[e](g),t.c()),re(t,1),t.m(n.parentNode,n));let T=o;o=y(g),o===T?v[o].p(g,k):($e(),pe(v[T],1,1,()=>{v[T]=null}),et(),s=v[o],s?s.p(g,k):(s=v[o]=_[o](g),s.c()),re(s,1),s.m(r.parentNode,r))},i(g){c||(re(t),re(s),c=!0)},o(g){pe(t),pe(s),c=!1},d(g){g&&(z(n),z(r)),d[e].d(g),v[o].d(g)}}}function Ic(l){let e,t;return{c(){e=u("div"),t=u("p"),t.textContent=`${m("common.loading")}`,i(t,"class","svelte-44iz1r"),i(e,"class","empty-state svelte-44iz1r")},m(n,o){C(n,e,o),a(e,t)},p:ie,i:ie,o:ie,d(n){n&&z(e)}}}function Ec(l){let e,t;return e=new io({props:{crumbs:[{name:m("file.root")}]}}),{c(){ot(e.$$.fragment)},m(n,o){lt(e,n,o),t=!0},p:ie,i(n){t||(re(e.$$.fragment,n),t=!0)},o(n){pe(e.$$.fragment,n),t=!1},d(n){nt(e,n)}}}function Ac(l){let e,t,n,o,s,r,c,f=m("common.back")+"",d,h,_,v;return e=new io({props:{crumbs:[{name:m("file.root")},...l[45]]}}),e.$on("navigate",l[164]),{c(){ot(e.$$.fragment),t=b(),n=u("button"),o=R("svg"),s=R("line"),r=R("polyline"),c=b(),d=F(f),i(s,"x1","19"),i(s,"y1","12"),i(s,"x2","5"),i(s,"y2","12"),i(s,"class","svelte-44iz1r"),i(r,"points","12 19 5 12 12 5"),i(r,"class","svelte-44iz1r"),i(o,"width","14"),i(o,"height","14"),i(o,"viewBox","0 0 24 24"),i(o,"fill","none"),i(o,"stroke","currentColor"),i(o,"stroke-width","2"),i(o,"stroke-linecap","round"),i(o,"stroke-linejoin","round"),i(o,"class","svelte-44iz1r"),i(n,"class","btn btn-sm back-btn svelte-44iz1r")},m(y,g){lt(e,y,g),C(y,t,g),C(y,n,g),a(n,o),a(o,s),a(o,r),a(n,c),a(n,d),h=!0,_||(v=I(n,"click",l[76]),_=!0)},p(y,g){const k={};g[1]&16384&&(k.crumbs=[{name:m("file.root")},...y[45]]),e.$set(k)},i(y){h||(re(e.$$.fragment,y),h=!0)},o(y){pe(e.$$.fragment,y),h=!1},d(y){y&&(z(t),z(n)),nt(e,y),_=!1,v()}}}function Lc(l){let e,t=[],n=new Map,o,s=fe(l[46]);const r=c=>c[278].id;for(let c=0;c0?m("file.noFiles"):m("file.noFilesCase"))+"",r,c,f,d,h,_,v,y,g,k;return{c(){e=u("div"),t=u("div"),t.innerHTML='',n=b(),o=u("p"),r=F(s),c=b(),f=u("p"),f.textContent=`${m("file.hint")}`,d=b(),h=u("div"),_=u("button"),_.textContent=`${m("file.addFileSimple")}`,v=b(),y=u("button"),y.textContent=`${m("file.addFolderSimple")}`,i(t,"class","empty-icon svelte-44iz1r"),i(o,"class","svelte-44iz1r"),i(f,"class","hint svelte-44iz1r"),i(_,"class","btn btn-primary svelte-44iz1r"),i(y,"class","btn svelte-44iz1r"),i(h,"class","empty-actions svelte-44iz1r"),i(e,"class","empty-state svelte-44iz1r")},m(w,T){C(w,e,T),a(e,t),a(e,n),a(e,o),a(o,r),a(e,c),a(e,f),a(e,d),a(e,h),a(h,_),a(h,v),a(h,y),g||(k=[I(_,"click",l[128]),I(y,"click",l[129])],g=!0)},p(w,T){T[1]&16384&&s!==(s=(w[45].length>0?m("file.noFiles"):m("file.noFilesCase"))+"")&&U(r,s)},i:ie,o:ie,d(w){w&&z(e),g=!1,he(k)}}}function _i(l,e){let t,n,o;return n=new _a({props:{item:e[278],selected:e[52].includes(e[278].id),onDragStart:e[89],onDragOver:e[90],onDrop:e[91]}}),n.$on("navigate",e[165]),n.$on("preview",e[166]),n.$on("openExternal",e[167]),n.$on("showInFolder",e[168]),n.$on("delete",e[169]),n.$on("rename",e[170]),n.$on("duplicate",e[171]),n.$on("cut",e[172]),n.$on("copy",e[173]),n.$on("selectOne",e[174]),n.$on("toggleSelect",e[175]),n.$on("rangeSelect",e[176]),{key:l,first:null,c(){t=at(),ot(n.$$.fragment),this.first=t},m(s,r){C(s,t,r),lt(n,s,r),o=!0},p(s,r){e=s;const c={};r[1]&32768&&(c.item=e[278]),r[1]&2129920&&(c.selected=e[52].includes(e[278].id)),n.$set(c)},i(s){o||(re(n.$$.fragment,s),o=!0)},o(s){pe(n.$$.fragment,s),o=!1},d(s){s&&z(t),nt(n,s)}}}function vi(l){let e,t;return{c(){e=u("div"),t=u("p"),t.textContent=`${m("file.scanning")}`,i(t,"class","svelte-44iz1r"),i(e,"class","empty-state svelte-44iz1r")},m(n,o){C(n,e,o),a(e,t)},d(n){n&&z(e)}}}function hi(l){let e,t;return e=new Fa({props:{item:l[47],content:l[48],loading:l[49],error:l[50]}}),e.$on("close",l[79]),e.$on("openExternal",l[177]),{c(){ot(e.$$.fragment)},m(n,o){lt(e,n,o),t=!0},p(n,o){const s={};o[1]&65536&&(s.item=n[47]),o[1]&131072&&(s.content=n[48]),o[1]&262144&&(s.loading=n[49]),o[1]&524288&&(s.error=n[50]),e.$set(s)},i(n){t||(re(e.$$.fragment,n),t=!0)},o(n){pe(e.$$.fragment,n),t=!1},d(n){nt(e,n)}}}function bi(l){let e,t,n,o,s,r,c,f,d;return{c(){e=u("div"),t=u("input"),n=b(),o=u("div"),s=u("button"),s.textContent=`${m("common.create")}`,r=b(),c=u("button"),c.textContent=`${m("common.cancel")}`,i(t,"type","text"),i(t,"placeholder",m("note.title")),i(t,"class","svelte-44iz1r"),i(s,"class","btn btn-primary svelte-44iz1r"),i(c,"class","btn svelte-44iz1r"),i(o,"class","form-actions svelte-44iz1r"),i(e,"class","create-form svelte-44iz1r")},m(h,_){C(h,e,_),a(e,t),ge(t,l[33]),a(e,n),a(e,o),a(o,s),a(o,r),a(o,c),f||(d=[I(t,"input",l[160]),I(t,"keydown",l[161]),I(s,"click",l[114]),I(c,"click",l[113])],f=!0)},p(h,_){_[1]&4&&t.value!==h[33]&&ge(t,h[33])},d(h){h&&z(e),f=!1,he(d)}}}function Oc(l){let e,t=fe(l[19]),n=[];for(let o=0;ope(le[ee],1,1,()=>{le[ee]=null});return{c(){e=u("div"),t=u("div"),n=u("h3"),n.textContent=`${m("nav.createNode")}`,o=b(),X&&X.c(),s=b(),r=u("div"),c=u("span"),c.textContent=`${m("template.select")}`,f=b(),d=u("div"),h=u("button"),ot(_.$$.fragment),v=b(),y=u("div"),g=u("span"),g.textContent=`${m("template.optionNone")}`,k=b(),w=u("span"),w.textContent=`${m("template.none.desc")}`,T=b();for(let ee=0;ee{g=null}),et()),w[31].node&&w[31].node.parent_id?k?k.p(w,T):(k=Fi(w),k.c(),k.m(t,s)):k&&(k.d(1),k=null),(!_||T[1]&1)&&qe(t,"left",w[31].x+"px"),(!_||T[1]&1)&&qe(t,"top",w[31].y+"px")},i(w){_||(re(g),_=!0)},o(w){pe(g),_=!1},d(w){w&&z(e),g&&g.d(),k&&k.d(),v=!1,he(y)}}}function Di(l){let e,t,n,o,s,r=fe(l[2].length>0?l[2]:[{id:"",title:"template.optionNone",icon:"folder"}]),c=[];for(let d=0;dpe(c[d],1,1,()=>{c[d]=null});return{c(){e=u("div"),e.textContent=`${m("common.create")}`,t=b();for(let d=0;d0?d[2]:[{id:"",title:"template.optionNone",icon:"folder"}]);let _;for(_=0;_l[216].call(k)),i(v,"class","svelte-44iz1r"),i(_,"class","form-group svelte-44iz1r"),i(N,"class","label-text svelte-44iz1r"),i(S,"type","text"),i(S,"placeholder",A=l[36]==="open_url"?m("action.urlPlaceholder"):l[36]==="open_folder"||l[36]==="open_file"?m("action.pathPlaceholder"):m("action.commandPlaceholder")),i(S,"class","svelte-44iz1r"),i(M,"class","svelte-44iz1r"),i(T,"class","form-group svelte-44iz1r"),i(K,"class","btn btn-primary svelte-44iz1r"),i(W,"class","btn svelte-44iz1r"),i(P,"class","modal-actions svelte-44iz1r"),i(t,"class","modal svelte-44iz1r"),i(e,"class","modal-overlay svelte-44iz1r"),i(e,"role","button"),i(e,"tabindex","0")},m(J,X){C(J,e,X),a(e,t),a(t,n),a(t,o),a(t,s),a(s,r),a(r,c),a(r,f),a(r,d),ge(d,l[35]),a(t,h),a(t,_),a(_,v),a(v,y),a(v,g),a(v,k);for(let O=0;O0?0:1}N=_e(l),j=Fe[N]=Me[N](l);function ve(x,me){return x[17]?tc:x[16]?ec:$a}let de=ve(l),se=de(l),Ae=((Qe=l[63])==null?void 0:Qe.configured)&&En(l),Ne=l[15]&&Ln(l);const we=[rc,sc,oc,ic,nc,lc],Se=[];function Ze(x,me){return x[20]?0:x[17]?1:x[16]==="journal"?2:x[16]==="today"&&x[3]?3:x[16]==="activity"?4:5}ze=Ze(l),ye=Se[ze]=we[ze](l);let Pe=l[27]&&Si(l),Oe=l[31].visible&&Ni(l),We=l[34]&&Ii(l),Ge=l[41]&&l[40]&&Ai(l),Ke=l[59]&&Pi(l),Le=l[54]&&Bi(l),Be=l[62]&&Ri(l);return{c(){var x;e=u("div"),t=u("aside"),n=u("div"),o=u("span"),o.textContent="⚒",s=b(),r=u("span"),r.textContent=`${m("nav.brand")}`,c=b(),f=u("nav"),d=u("div"),h=u("div"),h.textContent=`${m("nav.system")}`,_=b();for(let me=0;me{Fe[Je]=null}),et(),j=Fe[N],j?j.p(x,me):(j=Fe[N]=Me[N](x),j.c()),re(j,1),j.m(y,null)),(!Ee||me[2]&2)&&Ie(W,"active",(ft=x[63])==null?void 0:ft.configured),(!Ee||me[0]&16384)&&U(J,x[14]),de===(de=ve(x))&&se?se.p(x,me):(se.d(1),se=de(x),se&&(se.c(),se.m(ke,null))),(ut=x[63])!=null&&ut.configured?Ae?Ae.p(x,me):(Ae=En(x),Ae.c(),Ae.m(te,null)):Ae&&(Ae.d(1),Ae=null),x[15]?Ne?Ne.p(x,me):(Ne=Ln(x),Ne.c(),Ne.m(O,ae)):Ne&&(Ne.d(1),Ne=null);let ct=ze;ze=Ze(x),ze===ct?Se[ze].p(x,me):($e(),pe(Se[ct],1,1,()=>{Se[ct]=null}),et(),ye=Se[ze],ye?ye.p(x,me):(ye=Se[ze]=we[ze](x),ye.c()),re(ye,1),ye.m(O,He)),x[27]?Pe?(Pe.p(x,me),me[0]&134217728&&re(Pe,1)):(Pe=Si(x),Pe.c(),re(Pe,1),Pe.m(O,Re)):Pe&&($e(),pe(Pe,1,1,()=>{Pe=null}),et()),x[31].visible?Oe?(Oe.p(x,me),me[1]&1&&re(Oe,1)):(Oe=Ni(x),Oe.c(),re(Oe,1),Oe.m(O,B)):Oe&&($e(),pe(Oe,1,1,()=>{Oe=null}),et()),x[34]?We?We.p(x,me):(We=Ii(x),We.c(),We.m(O,Q)):We&&(We.d(1),We=null),x[41]&&x[40]?Ge?Ge.p(x,me):(Ge=Ai(x),Ge.c(),Ge.m(O,ue)):Ge&&(Ge.d(1),Ge=null),x[59]?Ke?Ke.p(x,me):(Ke=Pi(x),Ke.c(),Ke.m(O,be)):Ke&&(Ke.d(1),Ke=null),x[54]?Le?(Le.p(x,me),me[1]&8388608&&re(Le,1)):(Le=Bi(x),Le.c(),re(Le,1),Le.m(O,je)):Le&&($e(),pe(Le,1,1,()=>{Le=null}),et()),x[62]?Be?Be.p(x,me):(Be=Ri(x),Be.c(),Be.m(O,null)):Be&&(Be.d(1),Be=null)},i(x){Ee||(re(j),re(ye),re(Pe),re(Oe),re(Le),Ee=!0)},o(x){pe(j),pe(ye),pe(Pe),pe(Oe),pe(Le),Ee=!1},d(x){x&&z(e),Ve(ce,x),Fe[N].d(),se.d(),Ae&&Ae.d(),Ne&&Ne.d(),Se[ze].d(),Pe&&Pe.d(),Oe&&Oe.d(),We&&We.d(),Ge&&Ge.d(),Ke&&Ke.d(),Le&&Le.d(),Be&&Be.d(),Ue=!1,he(De)}}}function $(l,...e){try{if(window.go&&window.go.main&&window.go.main.App){const t=window.go.main.App[l];if(typeof t=="function")return t(...e)}}catch(t){console.error("Wails call error:",l,t)}return Promise.reject(new Error("Wails not connected: "+l))}function Pt(l,e,t){for(const n of l){if(n.id===e)return n.children=t,n.has_children=t.length>0,!0;if(n.children&&Pt(n.children,e,t))return!0}return!1}function so(l,e,t){for(const n of l){if(n.id===e)return n.children=t,n.has_children=t.length>0,!0;if(n.children&&so(n.children,e,t))return!0}return!1}function rl(l,e,t){const n=new Blob([e],{type:t}),o=URL.createObjectURL(n),s=document.createElement("a");s.href=o,s.download=l,document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(o)}function Dt(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 pt(l){if(!l)return"";try{return new Date(l).toLocaleTimeString("ru-RU",{hour:"2-digit",minute:"2-digit"})}catch{return""}}function mt(l){if(!l)return"";try{return new Date(l).toLocaleDateString("ru-RU",{day:"numeric",month:"short"})}catch{return l}}function _t(l,e,t,n){return l=Math.abs(l)%100,l>=5&&l<=20?n:(l%=10,l===1?e:l>=2&&l<=4?t:n)}function rt(l){return e=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),l())}}function qc(l,e,t){let n=[],o=[],s=[],r=null,c=[],f=0,d=!0,h=[],_=null,v="",y="",g=!1,k="",w="all",T="all",M="",N=[],j="",D="",L="",S=null,A="overview",V=[],P=null,K=[],H=[],W=[],G="",q="",Z=[],Y=0,J=!1,X="",O=null,le=null,ke={visible:!1,x:0,y:0,node:null},ee=!1,te="",oe=!1,ae="",ze="open_url",ye="",He=[{id:"open_url",label:m("action.openUrl")},{id:"open_file",label:m("action.openFile")},{id:"open_folder",label:m("action.openFolder")},{id:"run_command",label:m("action.runCommand")},{id:"run_script",label:m("action.runScript")},{id:"open_terminal",label:m("action.openTerminal")},{id:"launch_app",label:m("action.launchApp")}],Re=!0,B=!1,Q=null,ue=!1,be="",je="",Ee={},Ue=!1,De=null,Ce=[],ce=[],Me=null,Fe="",_e=!1,ve="",de={items:[],mode:"copy"},se=[],Ae=[],Ne=!1,we=!1,Se="",Ze="",Pe=!1,Oe=m("common.delete"),We=null,Ge=null,Ke=!1,Le="",Be="",Qe="",x=!1,me=null,Je=!1,ct="",ft="",ut="",Ye=0,Xe="";const ro=[{id:"overview",label:m("tab.overview")},{id:"notes",label:m("tab.notes")},{id:"files",label:m("tab.files")},{id:"actions",label:m("tab.actions")},{id:"worklog",label:m("tab.worklog")},{id:"activity",label:m("tab.activity")}];let Jt=null;Ji(async()=>{try{t(14,j=await $("VerstakVersion")||"verstak-gui/v2"),t(0,n=await $("ListSystemViews")||[]),t(1,o=await $("ListWorkspaceTree")||[]),t(2,s=await $("ListEnabledTemplates")||[])}catch(p){t(15,D=String(p)),t(0,n=[{id:"today",label:m("nav.today")},{id:"inbox",label:m("nav.inbox")},{id:"activity",label:m("nav.activity")}]),t(1,o=[]),t(2,s=[])}window.runtime&&window.runtime.EventsOn&&(window.runtime.EventsOn("files-dropped",Ko),Jt=()=>window.runtime.EventsOff("files-dropped")),window.addEventListener("keydown",Tl),t(38,Re=!1),At()}),pl(()=>{Jt&&Jt(),window.removeEventListener("keydown",Tl)});async function ml(p){t(16,L=p),t(17,S=null),t(18,A="overview"),t(19,V=[]),K=[],t(21,H=[]),t(22,W=[]),t(25,Z=[]),t(27,J=!1),t(15,D=""),t(3,r=null),t(4,c=[]),f=0,d=!0,t(5,h=[]),t(6,_=null);try{p==="today"?(t(3,r=await $("ListTodayView")||{cases:[]}),t(25,Z=await $("GetSuggestions")||[]),t(26,Y=Z.length)):p==="journal"?await Et():p==="activity"&&(t(4,c=await $("ListActivityFeed",50,0)||[]),f=c.length,d=c.length===50)}catch(E){t(15,D=String(E)),t(3,r={cases:[]}),t(4,c=[])}}async function wt(p){t(17,S=p),t(18,A="overview"),t(19,V=[]),K=[],t(21,H=[]),t(22,W=[]),t(25,Z=[]),t(46,ce=[]),t(45,Ce=[]),t(44,De=null),t(47,Me=null),t(48,Fe=""),t(52,se=[]),Ae=[],t(20,P=null),t(27,J=!1),t(32,ee=!1),t(15,D=""),t(13,N=[]),await _l(p.id)}async function _l(p){try{t(19,V=await $("ListNotes",p)||[])}catch{}try{K=await $("ListFiles",p)||[]}catch{}try{t(21,H=await $("ListActions",p)||[])}catch{}try{t(22,W=await $("ListWorklog",p)||[])}catch{}try{t(25,Z=await $("GetSuggestions")||[]),t(26,Y=Z.length)}catch{t(25,Z=[]),t(26,Y=0)}try{t(13,N=await $("ListActivityByNode",p,50,0)||[])}catch{}}async function tt(p){t(43,Ue=!0);try{let E=await $("ListItems",p)||[];E.sort((ne,Te)=>ne.type!==Te.type?ne.type==="folder"?-1:1:(ne.name||"").localeCompare(Te.name||"")),t(46,ce=E)}catch{t(46,ce=[])}t(43,Ue=!1)}async function Yt(p){if(!S)return;try{const ne=await $("GetNodeDetail",p);ne&&t(45,Ce=[...Ce,{id:p,name:ne.title}])}catch{t(45,Ce=[...Ce,{id:p,name:"..."}])}t(44,De=p),t(42,Ee={...Ee,[p]:!0});const E=await $("ListWorkspaceChildren",p)||[];Pt(o,p,E),t(1,o=[...o]),await tt(p)}function vl(){if(Ce.length<2)t(45,Ce=[]),t(44,De=null),tt(S.id);else{const p=Ce[Ce.length-2];t(45,Ce=Ce.slice(0,-1)),t(44,De=p.id),tt(p.id)}}function hl(p){const E=Ce[p];t(45,Ce=Ce.slice(0,p+1)),t(44,De=E.id),tt(E.id)}async function Xt(p){t(47,Me=p),t(48,Fe=""),t(50,ve=""),t(49,_e=!0);try{ra(p)?t(48,Fe=await $("GetFileBase64",p.fileId)||""):aa(p)&&t(48,Fe=await $("ReadFileText",p.fileId)||"")}catch(E){t(50,ve=String(E))}t(49,_e=!1)}function Zt(){t(47,Me=null),t(48,Fe=""),t(50,ve="")}async function ao(){const p=prompt(m("file.namePrompt"));if(!(!p||!p.trim()))try{const E=De||S.id;await $("CreateEmptyFile",E,p.trim()),await tt(E),await $t(E)}catch(E){t(15,D=String(E))}}async function bl(p){try{await $("DuplicateNode",p);const E=De||S.id;await tt(E),await $t(E)}catch(E){t(15,D=String(E))}}function gl(p){const E=ce.find(ne=>ne.id===p);E&&xt(E.id,E.name)}function kl(p){t(51,de={items:[p],mode:"cut"})}function yl(p){t(51,de={items:[p],mode:"copy"})}async function wl(){if(de.items.length===0)return;const p=De||S.id;try{if(de.mode==="copy")for(const E of de.items)await $("DuplicateNode",E);else for(const E of de.items)await $("MoveNode",E,p);t(51,de={items:[],mode:"copy"}),await tt(p)}catch(E){t(15,D=String(E))}}function zl(p){se.includes(p)?t(52,se=se.filter(E=>E!==p)):t(52,se=[...se,p])}function Cl(p){t(52,se=[p])}function co(){t(52,se=ce.map(p=>p.id))}function Sl(p){if(ce.length===0)return;const E=se.length>0?se[se.length-1]:ce[0].id,ne=ce.findIndex(gt=>gt.id===E),Te=ce.findIndex(gt=>gt.id===p);if(ne===-1||Te===-1)return;const xe=Math.min(ne,Te),dt=Math.max(ne,Te),jr=ce.slice(xe,dt+1).map(gt=>gt.id),Kl=new Set(se);jr.forEach(gt=>Kl.add(gt)),t(52,se=[...Kl])}function fo(){t(52,se=[])}function Qt(p){return p.length>0?p:ce.map(E=>E.id)}async function uo(){const p=Qt(se),E=ce.find(Te=>Te.id===p[0]);let ne;p.length===1&&(E==null?void 0:E.type)==="folder"?ne=m("delete.folder"):p.length===1?ne=m("delete.file"):ne=m("delete.files",{count:p.length}),Mt({title:m("delete.confirmTitle"),message:m("delete.confirmMessage")+" "+ne+"?",confirmText:m("common.delete"),danger:!0,onConfirm:async()=>{for(const xe of p)try{await $("DeleteFileOrFolder",xe)}catch(dt){t(15,D=String(dt))}t(52,se=[]);const Te=De||S.id;await tt(Te)}})}function po(){const p=Qt(se);t(51,de={items:p,mode:"cut"}),t(52,se=[])}function mo(){const p=Qt(se);t(51,de={items:p,mode:"copy"}),t(52,se=[])}function _o(p,E){const ne=se.includes(E)?se:[E];Ae=ne,p.dataTransfer.effectAllowed="move",p.dataTransfer.setData("text/plain",ne.join(","))}function vo(p,E){const ne=ce.find(Te=>Te.id===E);ne&&ne.type==="folder"&&(p.preventDefault(),p.dataTransfer.dropEffect="move")}async function ho(p,E){if(p.preventDefault(),Ae.length!==0){for(const ne of Ae)try{await $("MoveNode",ne,E)}catch(Te){t(15,D=String(Te))}Ae=[],t(52,se=[]),await tt(De||S.id)}}function Tl(p){if(A==="files"&&!(p.target.tagName==="INPUT"||p.target.tagName==="TEXTAREA"))if(p.ctrlKey||p.metaKey)p.key==="c"||p.key==="C"?(p.preventDefault(),mo()):p.key==="x"||p.key==="X"?(p.preventDefault(),po()):p.key==="v"||p.key==="V"?(p.preventDefault(),wl()):p.key==="a"||p.key==="A"?(p.preventDefault(),co()):p.key==="o"||p.key==="O"?(p.preventDefault(),bo()):p.key==="Enter"&&(p.preventDefault(),jl());else if(p.key==="Enter")p.preventDefault(),jl();else if(p.key==="Delete"||p.key==="Backspace"){if(Me){p.preventDefault(),Zt();return}if(se.length>0){p.preventDefault(),uo();return}if(p.key==="Backspace"&&Ce.length>0){p.preventDefault(),vl();return}}else if(p.key==="Escape"){if(Me){Zt();return}if(se.length>0){fo();return}}else p.key==="F2"&&(p.preventDefault(),go())}function jl(){if(se.length===1){const p=ce.find(E=>E.id===se[0]);p&&(p.type==="folder"?Yt(p.id):Xt(p))}}function bo(){if(se.length===1){const p=ce.find(E=>E.id===se[0]);p&&p.fileId&&$("OpenFile",p.fileId)}}function xt(p,E){Le=p,t(60,Be=E),t(61,Qe=""),t(59,Ke=!0)}function go(){if(se.length===1){const p=ce.find(E=>E.id===se[0]);p&&xt(p.id,p.name)}}async function Nl(){const p=Be.trim();if(!p){t(61,Qe=m("rename.emptyError"));return}try{await $("ValidateName",p)}catch{t(61,Qe=m("rename.invalidError"));return}t(59,Ke=!1);const E=Le;Le="";try{await $("RenameNode",E,p),S&&S.id===E&&t(17,S={...S,title:p}),await Ft(),De&&await tt(De)}catch(ne){t(15,D=String(ne))}}function ko(){t(59,Ke=!1),Le="",t(60,Be=""),t(61,Qe="")}function yo(p){p.key==="Enter"?Nl():t(61,Qe="")}function Mt(p){t(55,Se=p.title||m("common.confirm")),t(56,Ze=p.message||""),t(57,Pe=p.danger!==void 0?p.danger:!0),t(58,Oe=p.confirmText||m("common.delete")),We=p.onConfirm||null,Ge=p.onCancel||null,t(54,we=!0)}function Dl(){t(54,we=!1),We=null,Ge=null}function wo(){We&&We(),Dl()}function zo(){Ge&&Ge(),Dl()}function Ml(p){t(29,O=ke.node),t(30,le=p),t(28,X=""),t(27,J=!0),zt()}function Co(){t(29,O=null),t(30,le=void 0),t(28,X=""),t(27,J=!0)}function So(){t(27,J=!1),t(28,X=""),t(29,O=null),t(30,le=void 0)}async function Fl(){if(!(!X.trim()||le===void 0))try{const p=O?O.id:"",E=le?le.id:"",ne=await $("CreateNodeFromTemplate",p,X.trim(),E);t(27,J=!1),t(28,X="");const Te=ne?ne.id:null;if(t(29,O=null),t(30,le=void 0),p){t(42,Ee={...Ee,[p]:!0});const xe=await $("ListWorkspaceChildren",p)||[];Pt(o,p,xe),t(1,o=[...o])}else t(1,o=await $("ListWorkspaceTree")||o);if(Te){const xe=await $("GetNodeDetail",Te);xe&&(t(16,L=""),wt(xe))}}catch(p){t(15,D=String(p))}}function To(p,E){t(31,ke={visible:!0,x:p.clientX,y:p.clientY,node:E})}function zt(){t(31,ke={visible:!1,x:0,y:0,node:null})}async function jo(p){const E=!Ee[p];if(t(42,Ee={...Ee,[p]:E}),!E)return;const ne=await $("ListWorkspaceChildren",p)||[];Pt(o,p,ne),t(1,o=[...o])}async function No(p,E){if(!(!p||!E||p===E))try{const ne=await $("MoveNode",p,E);await Ft();const Te=await $("GetNodeDetail",p);Te&&(t(16,L=""),wt(Te))}catch(ne){t(15,D=String(ne))}}async function Do(p){p.preventDefault();try{const E=p.dataTransfer.getData("text/plain");if(!E)return;const ne=await $("GetNodeDetail",E);if(!ne||!ne.parent_id)return;await $("MoveNode",E,""),await Ft();const Te=await $("GetNodeDetail",E);Te&&(t(16,L=""),wt(Te))}catch(E){t(15,D=String(E))}}function Mo(p){p.preventDefault(),p.dataTransfer.dropEffect="move",t(53,Ne=!0)}function Fo(p){t(53,Ne=!1)}function Il(p){xt(p.id,p.title),zt()}function El(p){zt(),Mt({title:m("delete.confirmTitle"),message:m("delete.confirmMessage")+" "+p.title+"?",confirmText:m("common.delete"),danger:!0,onConfirm:async()=>{try{await $("DeleteNode",p.id),await Ft(),S&&S.id===p.id&&t(17,S=null)}catch(E){t(15,D=String(E))}}})}async function Al(p){zt();try{await $("OpenFolder",p.id)}catch(E){t(15,D=String(E))}}async function Ll(p){zt();try{await $("MoveNode",p.id,""),await Ft();const E=await $("GetNodeDetail",p.id);E&&(t(16,L=""),wt(E))}catch(E){t(15,D=String(E))}}async function Ft(){const p=Object.keys(Ee).filter(ne=>Ee[ne]),E=await $("ListWorkspaceTree")||[];for(const ne of p){const xe=(await $("ListWorkspaceChildren",ne)||[]).map(dt=>({...dt}));so(E,ne,xe)}t(1,o=E)}async function $t(p){const E=await $("ListWorkspaceChildren",p)||[];Pt(o,p,E),t(1,o=[...o])}function Pl(){t(32,ee=!0),t(33,te="")}function Io(){t(32,ee=!1),t(33,te="")}async function Ol(){if(!(!te.trim()||!S))try{const p=await $("CreateNote",S.id,te.trim());t(19,V=[...V,p&&p.id?p:{id:Date.now().toString(),title:te.trim(),createdAt:new Date().toISOString()}]),t(32,ee=!1),t(33,te="")}catch{const E={id:Date.now().toString(),title:te.trim(),createdAt:new Date().toISOString()};t(19,V=[...V,E]),t(32,ee=!1),t(33,te="")}}async function It(p){if(P&&P.dirty){Mt({title:m("note.unsavedTitle"),message:m("note.unsavedMessage"),confirmText:m("note.unsavedClose"),danger:!1,onConfirm:async()=>{await Bl(p)}});return}await Bl(p)}async function Bl(p){try{const E=await $("ReadNote",p.id);t(20,P={id:p.id,title:p.title,content:E||"",dirty:!1})}catch{t(20,P={id:p.id,title:p.title,content:"# "+p.title+` + +`,dirty:!1})}}function Eo(){if(P&&P.dirty){Mt({title:m("note.unsavedTitle"),message:m("note.unsavedMessage"),confirmText:m("note.unsavedClose"),danger:!1,onConfirm:()=>{t(20,P=null)}});return}t(20,P=null)}function Ao(p){P&&(t(20,P.content=p.target.value,P),t(20,P.dirty=!0,P))}async function Lo(){if(P)try{await $("SaveNote",P.id,P.content),t(20,P.dirty=!1,P)}catch{t(20,P.dirty=!1,P)}}async function Po(){const p=parseInt(G,10);if(!(!q.trim()||isNaN(p)||p<=0||!S)){try{const E=await $("CreateWorklog",S.id,q.trim(),p);t(22,W=[...W,E&&E.id?E:{id:Date.now().toString(),nodeId:S.id,summary:q.trim(),minutes:p,createdAt:new Date().toISOString()}])}catch{t(22,W=[...W,{id:Date.now().toString(),nodeId:S.id,summary:q.trim(),minutes:p,createdAt:new Date().toISOString()}])}t(24,q=""),t(23,G="")}}async function Rl(){t(25,Z=await $("GetSuggestions")||[]),t(26,Y=Z.length),S&&t(22,W=await $("ListWorklog",S.id)||[]),L==="journal"&&await Et()}async function el(p){try{await $("AcceptSuggestionWith",p,p.suggestedMin,""),await Rl()}catch(E){console.error(E)}}async function Vl(p){try{await $("AcceptSuggestionWith",p,p.suggestedMin,""),await Rl()}catch(E){console.error(E)}}async function Et(){try{const[p,E,ne]=await Promise.all([$("ListWorklogReport",v,y,k,g,w,T),$("WorklogReportSummary",v,y,k,g,w,T),$("GetSuggestions")]);if(t(5,h=p||[]),t(6,_=E||null),t(25,Z=ne||[]),t(26,Y=Z.length),k&&p&&p.length>0)M=p[0].nodeTitle;else if(k)try{M=await $("GetNodeTitle",k)}catch{M=""}}catch{t(5,h=[]),t(6,_=null),t(25,Z=[]),t(26,Y=0)}}async function Oo(){try{const p=await $("ExportWorklogCSV",v,y,k,g,w,T);rl("worklog.csv",p,"text/csv")}catch(p){console.error(p)}}async function Bo(){try{const p=await $("ExportWorklogMarkdown",v,y,k,g,w,T);rl("worklog.md",p,"text/markdown")}catch(p){console.error(p)}}async function Ro(){try{const p=await $("ExportWorklogPDF",v,y,k,g,w,T);let E=p;if(typeof p=="string"){const xe=atob(p);E=new Uint8Array(xe.length);for(let dt=0;dt{try{await $("DeleteFileOrFolder",p),K=K.filter(xe=>xe.nodeId!==p);const Te=De||S.id;await tt(Te)}catch(Te){t(15,D=String(Te))}}})}async function Ko(p){if(!p||p.length===0)return;if(!S){t(15,D=m("error.selectCaseFirst"));return}const E=p[0];await tl(S.id,E)}function Go(p){return{note_created:m("event.noteCreated"),note_updated:m("event.noteUpdated"),file_added:m("event.fileAdded"),file_deleted:m("event.fileDeleted"),file_renamed:m("event.fileRenamed"),file_copied:m("event.fileCopied"),file_moved:m("event.fileMoved"),folder_added:m("event.folderAdded"),folder_deleted:m("event.folderDeleted"),folder_renamed:m("event.folderRenamed"),node_created:m("event.caseCreated"),node_updated:m("event.caseUpdated")}[p]||p}function qo(p){return{project:m("kind.project"),client:m("kind.client"),document:m("kind.document"),recipe:m("kind.recipe"),folder:m("kind.folder"),note:m("kind.note"),file:m("kind.file"),archive:m("kind.archive"),case:m("kind.case")}[p]||p||m("kind.case")}function Jo(){t(34,oe=!0),t(35,ae=""),t(36,ze="open_url"),t(37,ye="")}function Yo(){t(34,oe=!1),t(35,ae=""),t(37,ye="")}async function nl(){if(!(!ae.trim()||!ye.trim()||!S))try{const p=await $("CreateAction",S.id,ze,ae.trim(),ye.trim());p&&p.id&&t(21,H=[...H,p]),t(34,oe=!1),t(35,ae=""),t(37,ye="")}catch(p){t(15,D=String(p))}}async function Wl(p){try{await $("DeleteAction",p),t(21,H=H.filter(E=>E.id!==p))}catch(E){t(15,D=String(E))}}function Xo(p){const E=He.find(ne=>ne.id===p);return E?E.label:p}async function st(p){try{const E=await $("GetNodeDetail",p);E&&wt(E)}catch(E){t(15,D=String(E))}}async function At(){try{t(63,me=await $("SyncStatus"))}catch{t(63,me={configured:!1,serverUrl:"",deviceId:"",unpushedOps:0,lastSyncAt:"",syncInterval:0})}}function Zo(){t(62,x=!0),t(65,ct=(me==null?void 0:me.serverUrl)||""),t(66,ft=""),t(67,ut=""),t(68,Ye=(me==null?void 0:me.syncInterval)||0),t(69,Xe="")}function Qo(){t(62,x=!1),t(69,Xe="")}async function xo(){t(64,Je=!0),t(69,Xe="");try{await $("SyncConfigure",ct,ft,ut),Ye>0&&await $("SyncSetInterval",Ye),t(67,ut=""),t(66,ft=""),await At(),t(62,x=!1)}catch(p){t(69,Xe="err: "+String(p))}t(64,Je=!1)}async function $o(){t(64,Je=!0),t(69,Xe="");try{await $("SyncSetInterval",Ye),t(69,Xe=m("sync.settingsSaved")),await At()}catch(p){t(69,Xe="err: "+String(p))}t(64,Je=!1)}async function es(){t(64,Je=!0),t(69,Xe="");try{await $("SyncTestConnection",ct,ft,ut),t(69,Xe="connection ok")}catch(p){t(69,Xe="connection failed: "+String(p))}t(64,Je=!1)}async function ts(){t(64,Je=!0),t(69,Xe="");try{await $("SyncDisconnect"),t(69,Xe="disconnected"),await At()}catch(p){t(69,Xe="err: "+String(p))}t(64,Je=!1)}async function ls(){t(64,Je=!0),t(69,Xe="");try{const p=await $("SyncNow");t(69,Xe="pushed "+p.pushed+", pulled "+p.pulled+" (seq "+p.serverSequence+")"),await At()}catch(p){t(69,Xe="err: "+String(p))}t(64,Je=!1)}const ns=p=>p.nodeId===S.id,is=p=>ml(p.id),os=()=>t(15,D=""),ss=()=>t(15,D=""),rs=()=>t(15,D="");function as(){P.content=this.value,t(20,P)}const cs=p=>{t(18,A=p.id),p.id==="files"&&S&&ce.length===0&&!De&&tt(S.id)},fs=()=>{t(18,A="notes"),Pl()},us=()=>{t(18,A="files"),Hl()},ds=()=>t(18,A="worklog"),ps=p=>It(p),ms=p=>It(p);function _s(){te=this.value,t(33,te)}const vs=p=>p.key==="Enter"&&Ol(),hs=p=>It(p),bs=p=>It(p),gs=p=>{const E=p.detail;E===0?(t(45,Ce=[]),t(44,De=null),tt(S.id)):hl(E-1)},ks=p=>Yt(p.detail),ys=p=>Xt(p.detail),ws=p=>$("OpenFile",p.detail),zs=p=>$("OpenFolder",p.detail),Cs=p=>Ul(p.detail),Ss=p=>gl(p.detail.id),Ts=p=>bl(p.detail),js=p=>kl(p.detail),Ns=p=>yl(p.detail),Ds=p=>Cl(p.detail),Ms=p=>zl(p.detail),Fs=p=>Sl(p.detail),Is=p=>$("OpenFile",p.detail),Es=p=>$("RunAction",p.id),As=p=>Wl(p.id);function Ls(){q=this.value,t(24,q)}function Ps(){G=Wt(this.value),t(23,G)}const Os=p=>p.nodeId===S.id,Bs=p=>el(p);function Rs(){v=this.value,t(7,v)}function Vs(){y=this.value,t(8,y)}function Hs(){k=this.value,t(10,k)}function Us(){g=this.checked,t(9,g)}function Ws(){w=ol(this),t(11,w)}function Ks(){T=ol(this),t(12,T)}const Gs=p=>st(p.nodeId),qs=(p,E,ne,Te)=>t(25,E[ne].suggestedMin=parseInt(Te.target.value),Z),Js=p=>Vl(p),Ys=p=>st(p.nodeId),Xs=p=>st(p.nodeId),Zs=(p,E,ne,Te)=>t(25,E[ne].suggestedMin=parseInt(Te.target.value),Z),Qs=p=>el(p),xs=p=>st(p.nodeId),$s=(p,E)=>E.key==="Enter"&&st(p.nodeId),er=p=>st(p.nodeId),tr=(p,E)=>E.key==="Enter"&&st(p.nodeId),lr=p=>st(p.nodeId),nr=(p,E)=>E.key==="Enter"&&st(p.nodeId),ir=p=>st(p.nodeId),or=(p,E)=>E.key==="Enter"&&st(p.nodeId),sr=()=>t(30,le=null),rr=p=>t(30,le=p);function ar(){X=this.value,t(28,X)}const cr=p=>p.key==="Enter"&&Fl(),fr=p=>Ml(p),ur=()=>Ll(ke.node),dr=()=>Il(ke.node),pr=()=>El(ke.node),mr=()=>Al(ke.node);function _r(){ae=this.value,t(35,ae)}const vr=p=>p.key==="Enter"&&nl();function hr(){ze=ol(this),t(36,ze),t(70,He)}function br(){ye=this.value,t(37,ye)}const gr=p=>p.key==="Enter"&&nl(),kr=()=>ll("copy"),yr=()=>ll("link");function wr(){Be=this.value,t(60,Be)}function zr(){ct=this.value,t(65,ct)}function Cr(){ft=this.value,t(66,ft)}function Sr(){ut=this.value,t(67,ut)}function Tr(){Ye=Wt(this.value),t(68,Ye)}return[n,o,s,r,c,h,_,v,y,g,k,w,T,N,j,D,L,S,A,V,P,H,W,G,q,Z,Y,J,X,O,le,ke,ee,te,oe,ae,ze,ye,Re,B,Q,ue,Ee,Ue,De,Ce,ce,Me,Fe,_e,ve,de,se,Ne,we,Se,Ze,Pe,Oe,Ke,Be,Qe,x,me,Je,ct,ft,ut,Ye,Xe,He,ro,ml,wt,tt,Yt,vl,hl,Xt,Zt,ao,bl,gl,kl,yl,wl,zl,Cl,Sl,_o,vo,ho,Nl,ko,yo,wo,zo,Ml,Co,So,Fl,To,zt,jo,No,Do,Mo,Fo,Il,El,Al,Ll,Pl,Io,Ol,It,Eo,Ao,Lo,Po,el,Vl,Et,Oo,Bo,Ro,Vo,Ho,Hl,Uo,ll,Wo,Ul,Go,qo,Jo,Yo,nl,Wl,Xo,st,Zo,Qo,xo,$o,es,ts,ls,ns,is,os,ss,rs,as,cs,fs,us,ds,ps,ms,_s,vs,hs,bs,gs,ks,ys,ws,zs,Cs,Ss,Ts,js,Ns,Ds,Ms,Fs,Is,Es,As,Ls,Ps,Os,Bs,Rs,Vs,Hs,Us,Ws,Ks,Gs,qs,Js,Ys,Xs,Zs,Qs,xs,$s,er,tr,lr,nr,ir,or,sr,rr,ar,cr,fr,ur,dr,pr,mr,_r,vr,hr,br,gr,kr,yr,wr,zr,Cr,Sr,Tr]}class Jc extends bt{constructor(e){super(),ht(this,e,qc,Gc,vt,{},null,[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1])}}new Jc({target:document.getElementById("app")}); diff --git a/cmd/verstak-gui/frontend-dist/index.html b/cmd/verstak-gui/frontend-dist/index.html index 9aa99b8..fe283cf 100644 --- a/cmd/verstak-gui/frontend-dist/index.html +++ b/cmd/verstak-gui/frontend-dist/index.html @@ -16,8 +16,8 @@ background: #13131f; } - - + +
diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte index 921a312..afcde76 100644 --- a/frontend/src/App.svelte +++ b/frontend/src/App.svelte @@ -43,6 +43,9 @@ let journalBillableFilter = 'all' let journalApproxFilter = 'all' let journalFilteredNodeTitle = '' + let journalSearchQuery = '' + let journalSearchResults = [] + let journalShowResults = false let activityLoading = false let caseActivity = [] let version = '' @@ -969,11 +972,13 @@ journalSummary = summary || null suggestions = sugs || [] suggestionCount = suggestions.length - // Resolve node title if filtered by node. - if (journalNodeID && rows && rows.length > 0) { - journalFilteredNodeTitle = rows[0].nodeTitle - } else if (journalNodeID) { - try { const n = await wailsCall('GetNodeTitle', journalNodeID); journalFilteredNodeTitle = n } catch(e) { journalFilteredNodeTitle = '' } + // Resolve node title/path if filtered by node. + if (journalNodeID && !journalFilteredNodeTitle) { + if (rows && rows.length > 0 && rows[0].nodePath) { + journalFilteredNodeTitle = rows[0].nodePath + } else { + try { journalFilteredNodeTitle = await wailsCall('GetNodeTitle', journalNodeID) } catch(e) { journalFilteredNodeTitle = '' } + } } } catch (e) { journalRows = [] @@ -997,20 +1002,58 @@ } catch (e) { console.error(e) } } - async function pickJournalNode() { - // Simple prompt — in future make a proper tree picker. - const id = prompt('Введите ID дела (nodeId):') - if (id && id.trim()) { - journalNodeID = id.trim() - journalIncludeChildren = true - await loadJournal() + async function exportJournalPDF() { + try { + const data = await wailsCall('ExportWorklogPDF', journalDateFrom, journalDateTo, journalNodeID, journalIncludeChildren, journalBillableFilter, journalApproxFilter) + let pdfBytes = data + if (typeof data === 'string') { + const bin = atob(data) + pdfBytes = new Uint8Array(bin.length) + for (let i = 0; i < bin.length; i++) pdfBytes[i] = bin.charCodeAt(i) + } + const from = journalDateFrom || 'all' + const to = journalDateTo || 'all' + downloadFile(`verstak-worklog-${from}--${to}.pdf`, pdfBytes, 'application/pdf') + } catch (e) { console.error(e) } + } + + let journalSearchTimer + + async function searchJournalNodes() { + const q = journalSearchQuery.trim() + if (!q || q.length < 2) { + journalSearchResults = [] + journalShowResults = false + return } + try { + journalSearchResults = await wailsCall('SearchNodes', q) || [] + journalShowResults = journalSearchResults.length > 0 + } catch (e) { journalSearchResults = []; journalShowResults = false } + } + + function onJournalSearchInput() { + clearTimeout(journalSearchTimer) + journalSearchTimer = setTimeout(searchJournalNodes, 200) + } + + function selectJournalNode(result) { + journalNodeID = result.id + journalFilteredNodeTitle = result.path || result.title + journalIncludeChildren = true + journalSearchQuery = '' + journalSearchResults = [] + journalShowResults = false + loadJournal() } function clearJournalNode() { journalNodeID = '' journalIncludeChildren = false journalFilteredNodeTitle = '' + journalSearchQuery = '' + journalSearchResults = [] + journalShowResults = false loadJournal() } @@ -1687,11 +1730,24 @@