texlite 0.8.4 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/DESIGN.md +75 -8
  2. package/OPERATIONS.md +19 -2
  3. package/dist/client/assets/{AdminUsers-CqOmV9rq.js → AdminUsers-3CHb5012.js} +1 -1
  4. package/dist/client/assets/{CitationLibraryDialog-BmWFXTW2.js → CitationLibraryDialog-zPpsUhWJ.js} +1 -1
  5. package/dist/client/assets/Dashboard-CWfSLzD3.js +2 -0
  6. package/dist/client/assets/{GitDialog-BCfSHuMB.js → GitDialog-BUU2U_LV.js} +2 -2
  7. package/dist/client/assets/HistoryDialog-B6aopsrw.js +7 -0
  8. package/dist/client/assets/{LatexEditor-DSopAHbC.js → LatexEditor-CM445Tk0.js} +1 -1
  9. package/dist/client/assets/{PdfPreview-BDkU20jP.js → PdfPreview-BFVNczSk.js} +1 -1
  10. package/dist/client/assets/{ProjectIconPickerDialog-GAd8HGOx.js → ProjectIconPickerDialog-Cf0zBf8u.js} +1 -1
  11. package/dist/client/assets/{ProjectNavigationDialogs-BTLcRY7i.js → ProjectNavigationDialogs-TPbe11iR.js} +1 -1
  12. package/dist/client/assets/{ProjectSettings-BJWTkoZq.js → ProjectSettings-CDQvIlQ4.js} +1 -1
  13. package/dist/client/assets/ProjectWorkspace-C6GrvKN6.js +27 -0
  14. package/dist/client/assets/SelectionHistoryDialog-CyE0_YDs.js +3 -0
  15. package/dist/client/assets/{SystemMetricsDialog-C9P4TSQl.js → SystemMetricsDialog-CuqHPUnn.js} +1 -1
  16. package/dist/client/assets/{TagManagementDialog-LYbib36_.js → TagManagementDialog-gRLM3lLx.js} +1 -1
  17. package/dist/client/assets/{WordCountDialog-BFg0GeJy.js → WordCountDialog-B4PI0vEk.js} +1 -1
  18. package/dist/client/assets/check-BXvzrdoz.js +1 -0
  19. package/dist/client/assets/chevron-left-BB5MYb7g.js +1 -0
  20. package/dist/client/assets/hard-drive-6uYFyezl.js +1 -0
  21. package/dist/client/assets/index-BRT5O-Hg.js +5 -0
  22. package/dist/client/assets/index-C0t11tlT.js +14 -0
  23. package/dist/client/assets/index-DXWp2bzM.css +1 -0
  24. package/dist/client/assets/{key-round-BaIj7Jch.js → key-round-DOAxDSfz.js} +1 -1
  25. package/dist/client/assets/minimize-2-BWtbag2I.js +1 -0
  26. package/dist/client/assets/{minus-Beso_n-6.js → minus-9eVJnugf.js} +1 -1
  27. package/dist/client/assets/{plus-BfEC7mzf.js → plus-BGXipRoG.js} +1 -1
  28. package/dist/client/assets/{refresh-cw-FZs9MtoA.js → refresh-cw-Dvp3O90f.js} +1 -1
  29. package/dist/client/assets/{search-DL2UGvdj.js → search-b1ORp1k8.js} +1 -1
  30. package/dist/client/assets/{sigma-CSRwPPkk.js → sigma-Bk0_MzWi.js} +1 -1
  31. package/dist/client/assets/{spellCheck-L9gD2d1M.js → spellCheck-BJjWgnef.js} +1 -1
  32. package/dist/client/assets/{tags-CjkWzXqX.js → tags-JAkbmWns.js} +1 -1
  33. package/dist/client/assets/{type-D1mmDdLM.js → type-CE2DYkPH.js} +1 -1
  34. package/dist/client/assets/{user-plus-YJ3ftuL5.js → user-plus-CKalKSsw.js} +1 -1
  35. package/dist/client/assets/x-Bq29njHL.js +1 -0
  36. package/dist/client/index.html +2 -2
  37. package/dist/server/app.js +45 -4
  38. package/dist/server/cli.js +4 -0
  39. package/dist/server/collaboration.js +219 -7
  40. package/dist/server/commentMentions.js +139 -0
  41. package/dist/server/config.js +9 -2
  42. package/dist/server/db.js +59 -0
  43. package/dist/server/editHistory.js +411 -0
  44. package/dist/server/editHistoryRetry.js +90 -0
  45. package/dist/server/history.js +136 -20
  46. package/dist/server/historyRetention.js +37 -0
  47. package/dist/server/i18n.js +4 -0
  48. package/dist/server/index.js +6 -0
  49. package/dist/server/logRotation.js +82 -0
  50. package/dist/server/pm2.js +7 -0
  51. package/dist/server/routes/comments.js +107 -16
  52. package/dist/server/routes/projectHistory.js +93 -7
  53. package/dist/server/routes/projectShared.js +2 -1
  54. package/dist/server/routes/projects.js +3 -1
  55. package/package.json +1 -1
  56. package/texlite.config.example.json +4 -1
  57. package/dist/client/assets/Dashboard-BfN2bCgZ.js +0 -2
  58. package/dist/client/assets/HistoryDialog-BtQhyTr9.js +0 -5
  59. package/dist/client/assets/ProjectWorkspace-WLYA7BSv.js +0 -27
  60. package/dist/client/assets/check-bnimQPun.js +0 -1
  61. package/dist/client/assets/chevron-left-DNM7mhNi.js +0 -1
  62. package/dist/client/assets/hard-drive-CF3WDfkG.js +0 -1
  63. package/dist/client/assets/index-CzVDvC5h.js +0 -14
  64. package/dist/client/assets/index-RjUuWk8F.css +0 -1
  65. package/dist/client/assets/x-BDSEosRE.js +0 -1
@@ -0,0 +1,3 @@
1
+ import{u as ce,r as h,j as i}from"./react-BVUjbTTn.js";import{c as ae,f as W,M as le,C as de,b as fe}from"./index-C0t11tlT.js";import{B as V,j as ue}from"./ProjectWorkspace-C6GrvKN6.js";import{d as he,C as xe}from"./index-BRT5O-Hg.js";import"./check-BXvzrdoz.js";import"./x-Bq29njHL.js";import"./search-b1ORp1k8.js";import"./user-plus-CKalKSsw.js";import"./refresh-cw-Dvp3O90f.js";const me=ae("UserRound",[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]]),g=(e,t)=>e>>>t|e<<32-t,be=e=>g(e,2)^g(e,13)^g(e,22),ge=e=>g(e,6)^g(e,11)^g(e,25),ye=e=>g(e,7)^g(e,18)^e>>>3,pe=e=>g(e,17)^g(e,19)^e>>>10,je=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),He=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);class ve{constructor(){const t=new ArrayBuffer(320);this._H=new Uint32Array(t,0,8),this._H.set(He),this._W=new Uint32Array(t,64,64)}_updateHash(){const t=this._H,n=this._W;for(let a=16;a<64;a++)n[a]=pe(n[a-2])+n[a-7]+ye(n[a-15])+n[a-16];let o=t[0],c=t[1],f=t[2],s=t[3],l=t[4],x=t[5],d=t[6],b=t[7];for(let a=0,m,p;a<64;a++)m=b+ge(l)+(l&x^~l&d)+je[a]+n[a]>>>0,p=be(o)+(o&c^o&f^c&f)>>>0,b=d,d=x,x=l,l=s+m>>>0,s=f,f=c,c=o,o=m+p>>>0;t[0]+=o,t[1]+=c,t[2]+=f,t[3]+=s,t[4]+=l,t[5]+=x,t[6]+=d,t[7]+=b}digest(t){let n=0;for(;n+56<=t.length;){let s=0;for(;s<16&&n+3<t.length;s++)this._W[s]=t[n++]<<24|t[n++]<<16|t[n++]<<8|t[n++];if(n%64!==0){for(this._W.fill(0,s,16);n<t.length;)this._W[s]|=t[n]<<(3-n%4)*8,n++;this._W[s]|=V<<(3-n%4)*8}this._updateHash()}const o=n%64!==0;this._W.fill(0,0,16);let c=0;for(;n<t.length;c++)for(let s=3;s>=0&&n<t.length;s--)this._W[c]|=t[n++]<<s*8;o||(this._W[c-(n%4===0?0:1)]|=V<<(3-n%4)*8),this._W[14]=t.byteLength/ue,this._W[15]=t.byteLength*8,this._updateHash();const f=new Uint8Array(32);for(let s=0;s<this._H.length;s++)for(let l=0;l<4;l++)f[s*4+l]=this._H[s]>>>(3-l)*8;return f}}const Ce=e=>new ve().digest(e),M=96,U=48;function Se(e,t){const n=e.replace(/\r\n/g,`
2
+ `),o=t.replace(/\r\n/g,`
3
+ `);if(n===o)return{previous:[],current:[],additions:0,deletions:0,hasChanges:!1};const c=new he,f=c.diff_main(n,o,!1);c.diff_cleanupSemantic(f);const s=[],l=[];let x=0,d=0;for(let b=0;b<f.length;b+=1){const[a,m]=f[b];if(m)if(a===0){const p=Ne(m,b,f.length);T(s,p),T(l,p)}else a<0?(d+=m.length,T(s,{kind:"deletion",text:m})):(x+=m.length,T(l,{kind:"addition",text:m}))}return{previous:s,current:l,additions:x,deletions:d,hasChanges:x>0||d>0}}function Ne(e,t,n){const o=t===0,c=t===n-1;return(o||c)&&e.length<=M?{kind:"equal",text:e}:!o&&!c&&e.length<=U*2?{kind:"equal",text:e}:o?{kind:"omitted",text:`…${X(e,M)}`}:c?{kind:"omitted",text:`${q(e,M)}…`}:{kind:"omitted",text:`${q(e,U)}…${X(e,U)}`}}function q(e,t){if(e.length<=t)return e;const n=_e(e,t);return e.slice(0,n)}function X(e,t){if(e.length<=t)return e;const n=Te(e,e.length-t);return e.slice(n)}function _e(e,t){const n=Math.min(e.length,t+24);for(let o=t;o<n;o+=1)if(J(e[o]))return o+1;return t}function Te(e,t){const n=Math.max(0,t-24);for(let o=t;o>n;o-=1)if(J(e[o-1]))return o;return t}function J(e){return/\s|[.,;:!?)}\]]/.test(e)}function T(e,t){const n=e.at(-1);n?.kind===t.kind?n.text+=t.text:e.push({...t})}function Re({open:e,project:t,filePath:n,selection:o,currentSource:c,onOpenChange:f}){const{t:s,i18n:l}=ce(),[{filePath:x,selection:d,source:b}]=h.useState(()=>({filePath:n,selection:o,source:c})),[a,m]=h.useState([]),[p,w]=h.useState(null),[Q,E]=h.useState(!1),[Y,k]=h.useState(!0),[R,$]=h.useState(!1),[A,C]=h.useState(""),[H,P]=h.useState(null),[Z,L]=h.useState(!1),[S,I]=h.useState(!1),[ee,D]=h.useState(""),[te,se]=h.useState(0);h.useEffect(()=>{if(P(null),!e||t.permission!=="owner")return;const r=new AbortController;return W(`/api/projects/${t.id}/edit-history/stats`,{signal:r.signal}).then(y=>{r.signal.aborted||P(y)}).catch(y=>{!r.signal.aborted&&!K(y)&&C(O(y))}),()=>r.abort()},[e,t.id,t.permission,te]);const ne=async()=>{if(!S){I(!0),D("");try{await W(`/api/projects/${t.id}/edit-history`,{method:"DELETE"}),m([]),w(null),E(!1),k(!0),se(r=>r+1),L(!1)}catch(r){D(O(r))}finally{I(!1)}}},[ie,B]=h.useState({}),N=Math.max(0,d.endOffset-d.startOffset);h.useEffect(()=>{if(!e||!x||N<=0)return;const r=new AbortController;if($(!0),C(""),m([]),k(!0),B({}),w(null),E(!1),b.slice(d.startOffset,d.endOffset)!==d.selectedText){C(s("selectionHistory.sourceChanged")),$(!1);return}const y=new URLSearchParams({path:x,start:String(d.startOffset),end:String(d.endOffset),sourceHash:Array.from(Ce(new TextEncoder().encode(b)),u=>u.toString(16).padStart(2,"0")).join("")});return W(`/api/projects/${t.id}/edit-history?${y}`,{signal:r.signal}).then(u=>{m(u.entries),k(u.chainComplete),w(u.baseline),E(u.hasMore)}).catch(u=>{K(u)||C(O(u))}).finally(()=>{r.signal.aborted||$(!1)}),()=>r.abort()},[e,t.id,x,d,N,b,s]);const oe=h.useMemo(()=>s("selectionHistory.description",{path:x,count:N}),[s,x,N]);return i.jsx(le,{open:e,wide:!0,draggable:!0,className:"selection-history-modal",title:s("selectionHistory.title"),description:oe,onOpenChange:f,footer:i.jsx("button",{onClick:()=>f(!1),children:s("common.close")}),children:i.jsxs("div",{className:"selection-history-dialog",children:[t.permission==="owner"&&H&&i.jsxs("div",{className:"history-stats",children:[i.jsx("strong",{children:s("selectionHistory.storageUsage",{used:(H.payloadBytes/1048576).toFixed(2),limit:(H.maxStorageBytes/1048576).toFixed(0),count:H.segmentCount})}),i.jsx("small",{children:s("selectionHistory.storageDescription")}),i.jsx("button",{type:"button",className:"danger-text",disabled:R||S||H.segmentCount===0,onClick:()=>{D(""),L(!0)},children:s("selectionHistory.clearAll")})]}),i.jsx(de,{open:Z,title:s("selectionHistory.clearAll"),description:s("selectionHistory.clearDescription"),confirmLabel:s("common.delete"),danger:!0,busy:S,error:ee,onConfirm:()=>{ne()},onCancel:()=>{S||L(!1)}}),A&&i.jsx("p",{className:"error selection-history-message",children:A}),R?i.jsxs("div",{className:"selection-history-loading",children:[i.jsx(fe,{className:"spin",size:22}),s("common.loading")]}):i.jsxs(i.Fragment,{children:[!Y&&i.jsx("p",{className:"selection-history-boundary",children:s("selectionHistory.boundary")}),Q&&i.jsx("p",{className:"selection-history-boundary",children:s("selectionHistory.limited",{count:a.length})}),a.length===0&&!A?i.jsxs("div",{className:"selection-history-empty",children:[i.jsx(xe,{size:28}),i.jsx("strong",{children:s("selectionHistory.emptyTitle")}),i.jsx("span",{children:s("selectionHistory.emptyDescription")})]}):i.jsx("ol",{className:"selection-history-list",children:a.map((r,y)=>{const u=ie[r.id]||"content",v=a[y+1]||p,z=!!(v&&r.content!==null&&v.content!==null&&!r.contentTruncated&&!v.contentTruncated),_=u==="diff"&&z?Se(v.content,r.content):null,F=v?z?_&&!_.hasChanges?s("selectionHistory.noDiff"):null:s("selectionHistory.diffUnavailable"):s("selectionHistory.noPrevious");return i.jsx("li",{children:i.jsxs("article",{className:"selection-history-entry",children:[i.jsxs("header",{children:[i.jsx("time",{title:new Date(r.updatedAt).toLocaleString(l.resolvedLanguage),children:ke(r.updatedAt,l.resolvedLanguage)}),i.jsxs("span",{className:"selection-history-authors",children:[i.jsx(me,{size:14}),i.jsx("span",{children:s("selectionHistory.changedBy")}),i.jsx("span",{className:"selection-history-author-list",children:r.authors.map((j,re)=>i.jsx("span",{children:we(j,s("editor.deletedUser"))},j.id||`deleted-${re}`))})]})]}),i.jsxs("div",{className:"selection-history-tabs",role:"tablist","aria-label":s("selectionHistory.view"),children:[i.jsx("button",{type:"button",className:u==="content"?"active":"",role:"tab","aria-selected":u==="content","aria-controls":`selection-history-content-${r.id}`,onClick:()=>B(j=>({...j,[r.id]:"content"})),children:s("selectionHistory.contentTab")}),i.jsx("button",{type:"button",className:u==="diff"?"active":"",role:"tab","aria-selected":u==="diff","aria-controls":`selection-history-diff-${r.id}`,onClick:()=>B(j=>({...j,[r.id]:"diff"})),children:s("selectionHistory.diffTab")})]}),u==="content"?i.jsxs("div",{className:"selection-history-content",id:`selection-history-content-${r.id}`,role:"tabpanel",children:[r.content===null?i.jsx("p",{className:"selection-history-content-unavailable",children:s("selectionHistory.contentUnavailable")}):i.jsx("pre",{children:r.content||"∅"}),r.contentTruncated&&i.jsx("small",{children:s("selectionHistory.contentTruncated")})]}):i.jsx("div",{className:"selection-history-content",id:`selection-history-diff-${r.id}`,role:"tabpanel",children:F?i.jsx("p",{className:"selection-history-content-unavailable",children:F}):_&&i.jsx(Ee,{diff:_,previousLabel:s("selectionHistory.previousVersion"),currentLabel:s("selectionHistory.currentVersion")})})]})},r.id)})})]})]})})}function we(e,t){return!e.name&&!e.username?t:e.name&&e.username?`${e.name} (@${e.username})`:e.name||`@${e.username}`}function Ee({diff:e,previousLabel:t,currentLabel:n}){return i.jsxs("div",{className:"selection-history-semantic-diff",children:[i.jsx(G,{label:t,pieces:e.previous,variant:"previous"}),i.jsx(G,{label:n,pieces:e.current,variant:"current"})]})}function G({label:e,pieces:t,variant:n}){return i.jsxs("section",{className:`selection-history-diff-side ${n}`,children:[i.jsx("header",{children:e}),i.jsx("pre",{children:t.length?t.map((o,c)=>i.jsx("span",{className:o.kind,children:o.text},`${c}-${o.kind}`)):"∅"})]})}function ke(e,t){const n=new Date(e);return Number.isNaN(n.getTime())?e:n.toLocaleString(t,{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"})}function K(e){return e instanceof Error&&e.name==="AbortError"}function O(e){return e instanceof Error?e.message:String(e)}export{Re as SelectionHistoryDialog};
@@ -1 +1 @@
1
- import{u as f,r as n,j as e}from"./react-BVUjbTTn.js";import{f as y,M as b}from"./index-CzVDvC5h.js";import{A as M}from"./Dashboard-BfN2bCgZ.js";import{R as $}from"./refresh-cw-FZs9MtoA.js";import"./hard-drive-CF3WDfkG.js";import"./x-BDSEosRE.js";import"./sigma-CSRwPPkk.js";import"./tags-CjkWzXqX.js";import"./chevron-left-DNM7mhNi.js";function R({open:t,onOpenChange:c}){const{t:s}=f(),[r,p]=n.useState(null),[u,x]=n.useState(!1),[d,j]=n.useState(""),a=n.useCallback(async()=>{x(!0);try{p(await y("/api/health/metrics")),j("")}catch(i){j(i instanceof Error?i.message:s("errors.generic"))}finally{x(!1)}},[s]);return n.useEffect(()=>{if(!t)return;a();const i=window.setInterval(()=>{a()},5e3);return()=>window.clearInterval(i)},[t,a]),e.jsxs(b,{open:t,onOpenChange:c,wide:!0,title:s("metrics.title"),description:s("metrics.description"),footer:e.jsxs("button",{onClick:()=>{a()},disabled:u,children:[e.jsx($,{size:14,className:u?"spin":""}),s("metrics.refresh")]}),children:[d&&e.jsx("p",{className:"error",children:d}),!r&&!d&&e.jsx("p",{className:"muted",children:s("common.loading")}),r&&e.jsxs("div",{className:"system-metrics",children:[e.jsxs("div",{className:"metric-summary-grid",children:[e.jsx(l,{label:s("metrics.uptime"),value:v(r.uptimeSeconds)}),e.jsx(l,{label:s("metrics.memory"),value:`${h(r.memory.rssBytes)} RSS`,detail:`${h(r.memory.heapUsedBytes)} / ${h(r.memory.heapTotalBytes)} ${s("metrics.heap")}`}),e.jsx(l,{label:s("metrics.compileQueue"),value:`${r.compileQueue.running} / ${r.compileQueue.concurrency}`,detail:s("metrics.pending",{count:r.compileQueue.pending})}),e.jsx(l,{label:s("metrics.collaboration"),value:s("metrics.sessions",{count:r.collaboration.sessions}),detail:s("metrics.roomsAndDirty",{rooms:r.collaboration.rooms,dirty:r.collaboration.dirtyFiles})})]}),e.jsxs("section",{className:"metric-section",children:[e.jsxs("h3",{children:[e.jsx(M,{size:15}),s("metrics.eventLoop")]}),e.jsx("p",{children:s("metrics.latencySummary",r.eventLoopDelay)})]}),e.jsxs("section",{className:"metric-section",children:[e.jsx("h3",{children:s("metrics.operationDurations")}),Object.keys(r.durationsMs).length===0?e.jsx("p",{className:"muted",children:s("metrics.noSamples")}):e.jsx("div",{className:"metric-table-wrap",children:e.jsxs("table",{className:"metric-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:s("metrics.operation")}),e.jsx("th",{children:s("metrics.samples")}),e.jsx("th",{children:s("metrics.last")}),e.jsx("th",{children:"P50"}),e.jsx("th",{children:"P95"}),e.jsx("th",{children:s("metrics.max")})]})}),e.jsx("tbody",{children:Object.entries(r.durationsMs).sort(([i],[o])=>i.localeCompare(o)).map(([i,o])=>e.jsxs("tr",{children:[e.jsx("td",{children:g(i,s)}),e.jsx("td",{children:o.count}),e.jsx("td",{children:m(o.last)}),e.jsx("td",{children:m(o.p50)}),e.jsx("td",{children:m(o.p95)}),e.jsx("td",{children:m(o.max)})]},i))})]})})]})]})]})}function l({label:t,value:c,detail:s}){return e.jsxs("article",{className:"metric-card",children:[e.jsx("span",{children:t}),e.jsx("strong",{children:c}),s&&e.jsx("small",{children:s})]})}function h(t){return`${Math.round(t/1024/1024*10)/10} MB`}function v(t){const c=Math.floor(t/86400),s=Math.floor(t%86400/3600),r=Math.floor(t%3600/60);return c?`${c}d ${s}h`:s?`${s}h ${r}m`:`${r}m`}function m(t){return t>=1e3?`${Math.round(t/100)/10}s`:`${Math.round(t*10)/10}ms`}function g(t,c){return c(`metrics.operations.${t}`,{defaultValue:t})}export{R as SystemMetricsDialog};
1
+ import{u as f,r as n,j as e}from"./react-BVUjbTTn.js";import{f as y,M as b}from"./index-C0t11tlT.js";import{A as M}from"./Dashboard-CWfSLzD3.js";import{R as $}from"./refresh-cw-Dvp3O90f.js";import"./hard-drive-6uYFyezl.js";import"./x-Bq29njHL.js";import"./sigma-Bk0_MzWi.js";import"./tags-JAkbmWns.js";import"./chevron-left-BB5MYb7g.js";function R({open:t,onOpenChange:c}){const{t:s}=f(),[r,p]=n.useState(null),[u,x]=n.useState(!1),[d,j]=n.useState(""),a=n.useCallback(async()=>{x(!0);try{p(await y("/api/health/metrics")),j("")}catch(i){j(i instanceof Error?i.message:s("errors.generic"))}finally{x(!1)}},[s]);return n.useEffect(()=>{if(!t)return;a();const i=window.setInterval(()=>{a()},5e3);return()=>window.clearInterval(i)},[t,a]),e.jsxs(b,{open:t,onOpenChange:c,wide:!0,title:s("metrics.title"),description:s("metrics.description"),footer:e.jsxs("button",{onClick:()=>{a()},disabled:u,children:[e.jsx($,{size:14,className:u?"spin":""}),s("metrics.refresh")]}),children:[d&&e.jsx("p",{className:"error",children:d}),!r&&!d&&e.jsx("p",{className:"muted",children:s("common.loading")}),r&&e.jsxs("div",{className:"system-metrics",children:[e.jsxs("div",{className:"metric-summary-grid",children:[e.jsx(l,{label:s("metrics.uptime"),value:v(r.uptimeSeconds)}),e.jsx(l,{label:s("metrics.memory"),value:`${h(r.memory.rssBytes)} RSS`,detail:`${h(r.memory.heapUsedBytes)} / ${h(r.memory.heapTotalBytes)} ${s("metrics.heap")}`}),e.jsx(l,{label:s("metrics.compileQueue"),value:`${r.compileQueue.running} / ${r.compileQueue.concurrency}`,detail:s("metrics.pending",{count:r.compileQueue.pending})}),e.jsx(l,{label:s("metrics.collaboration"),value:s("metrics.sessions",{count:r.collaboration.sessions}),detail:s("metrics.roomsAndDirty",{rooms:r.collaboration.rooms,dirty:r.collaboration.dirtyFiles})})]}),e.jsxs("section",{className:"metric-section",children:[e.jsxs("h3",{children:[e.jsx(M,{size:15}),s("metrics.eventLoop")]}),e.jsx("p",{children:s("metrics.latencySummary",r.eventLoopDelay)})]}),e.jsxs("section",{className:"metric-section",children:[e.jsx("h3",{children:s("metrics.operationDurations")}),Object.keys(r.durationsMs).length===0?e.jsx("p",{className:"muted",children:s("metrics.noSamples")}):e.jsx("div",{className:"metric-table-wrap",children:e.jsxs("table",{className:"metric-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:s("metrics.operation")}),e.jsx("th",{children:s("metrics.samples")}),e.jsx("th",{children:s("metrics.last")}),e.jsx("th",{children:"P50"}),e.jsx("th",{children:"P95"}),e.jsx("th",{children:s("metrics.max")})]})}),e.jsx("tbody",{children:Object.entries(r.durationsMs).sort(([i],[o])=>i.localeCompare(o)).map(([i,o])=>e.jsxs("tr",{children:[e.jsx("td",{children:g(i,s)}),e.jsx("td",{children:o.count}),e.jsx("td",{children:m(o.last)}),e.jsx("td",{children:m(o.p50)}),e.jsx("td",{children:m(o.p95)}),e.jsx("td",{children:m(o.max)})]},i))})]})})]})]})]})}function l({label:t,value:c,detail:s}){return e.jsxs("article",{className:"metric-card",children:[e.jsx("span",{children:t}),e.jsx("strong",{children:c}),s&&e.jsx("small",{children:s})]})}function h(t){return`${Math.round(t/1024/1024*10)/10} MB`}function v(t){const c=Math.floor(t/86400),s=Math.floor(t%86400/3600),r=Math.floor(t%3600/60);return c?`${c}d ${s}h`:s?`${s}h ${r}m`:`${r}m`}function m(t){return t>=1e3?`${Math.round(t/100)/10}s`:`${Math.round(t*10)/10}ms`}function g(t,c){return c(`metrics.operations.${t}`,{defaultValue:t})}export{R as SystemMetricsDialog};
@@ -1 +1 @@
1
- import{u as W,r as s,j as a}from"./react-BVUjbTTn.js";import{f,g as b,M as Y,b as E,C as Z}from"./index-CzVDvC5h.js";import{P as _}from"./plus-BfEC7mzf.js";import{P as ee,T as ae,X as te}from"./x-BDSEosRE.js";import{C as ne}from"./check-bnimQPun.js";const H=["red","orange","yellow","green","blue","purple","gray"];function S(l){return[...l].sort((C,y)=>C.name.localeCompare(y.name))}function se(l){return l instanceof Error&&l.name==="AbortError"}function de({open:l,onOpenChange:C,onTagCreated:y,onTagUpdated:R,onTagDeleted:X}){const{t}=W(),[T,h]=s.useState([]),[G,w]=s.useState(!1),[D,i]=s.useState(""),[p,k]=s.useState(""),[z,L]=s.useState("blue"),[d,P]=s.useState(!1),[$,m]=s.useState(null),[j,I]=s.useState(""),[M,A]=s.useState("blue"),[N,O]=s.useState(null),[o,v]=s.useState(null),[Q,g]=s.useState(""),[u,q]=s.useState(!1);s.useEffect(()=>{if(!l)return;const e=new AbortController;return w(!0),i(""),f("/api/tags/management",{signal:e.signal}).then(n=>h(S(n.tags))).catch(n=>{se(n)||i(b(n))}).finally(()=>{e.signal.aborted||w(!1)}),()=>e.abort()},[l]);const F=async()=>{if(!(!p.trim()||d)){P(!0),i("");try{const e=await f("/api/tags",{method:"POST",body:JSON.stringify({name:p,color:z})});h(n=>S([...n,{...e.tag,projectCount:0}])),y(e.tag),k(""),L("blue")}catch(e){i(b(e))}finally{P(!1)}}},U=e=>{m(e.id),I(e.name),A(e.color),i("")},J=async e=>{if(!(!j.trim()||N)){O(e.id),i("");try{const n=await f(`/api/tags/${e.id}`,{method:"PATCH",body:JSON.stringify({name:j,color:M})}),c={...n.tag,projectCount:e.projectCount};h(r=>S(r.map(B=>B.id===e.id?c:B))),R(n.tag),m(null)}catch(n){i(b(n))}finally{O(null)}}},V=async()=>{if(!(!o||u)){q(!0),g("");try{await f(`/api/tags/${o.id}`,{method:"DELETE"}),h(e=>e.filter(n=>n.id!==o.id)),X(o.id),v(null),$===o.id&&m(null)}catch(e){g(b(e))}finally{q(!1)}}},x=d||N!==null||u,K=e=>{!e&&x||(e||(i(""),g(""),m(null)),C(e))};return a.jsxs(a.Fragment,{children:[a.jsx(Y,{open:l,title:t("tags.manage"),description:t("tags.manageDescription"),wide:!0,className:"tag-management-modal",onOpenChange:K,footer:a.jsx("button",{onClick:()=>K(!1),disabled:x,children:t("common.close")}),children:a.jsxs("div",{className:"tag-management",children:[D&&a.jsx("p",{className:"error dialog-error",role:"alert",children:D}),a.jsxs("div",{className:"tag-management-create",children:[a.jsxs("label",{className:"tag-management-field",children:[a.jsx("span",{children:t("tags.name")}),a.jsx("input",{autoFocus:!0,value:p,maxLength:32,placeholder:t("tags.name"),onChange:e=>{k(e.target.value),i("")},onKeyDown:e=>{e.key==="Enter"&&(e.preventDefault(),F())}})]}),a.jsxs("label",{className:"tag-management-field tag-management-color",children:[a.jsx("span",{children:t("tags.color")}),a.jsx("select",{value:z,onChange:e=>L(e.target.value),children:H.map(e=>a.jsx("option",{value:e,children:t(`tags.${e}`)},e))})]}),a.jsxs("button",{type:"button",className:"primary",disabled:!p.trim()||d,"aria-busy":d,onClick:()=>{F()},children:[d?a.jsx(E,{className:"spin",size:14}):a.jsx(_,{"aria-hidden":!0,size:14}),t("tags.createInManager")]})]}),G?a.jsxs("div",{className:"tag-management-loading",children:[a.jsx(E,{className:"spin",size:16}),t("common.loading")]}):T.length===0?a.jsx("p",{className:"tag-management-empty",children:t("tags.noTags")}):a.jsx("div",{className:"tag-management-list",children:T.map(e=>{const n=$===e.id,c=N===e.id;return a.jsxs("article",{className:`tag-management-item${n?" editing":""}`,children:[a.jsxs("div",{className:"tag-management-item-main",children:[a.jsx("span",{className:`tag-dot tag-${e.color}`,"aria-hidden":"true"}),a.jsxs("div",{children:[a.jsx("strong",{title:e.name,children:e.name}),a.jsx("small",{children:t("tags.projectCount",{count:e.projectCount})})]})]}),a.jsxs("div",{className:"tag-management-item-actions",children:[a.jsx("button",{type:"button",title:t("tags.edit"),"aria-label":t("tags.edit"),disabled:x&&!n,onClick:()=>U(e),children:a.jsx(ee,{"aria-hidden":!0,size:14})}),a.jsx("button",{type:"button",className:"danger-text",title:t("common.delete"),"aria-label":t("common.delete"),disabled:x,onClick:()=>{v(e),g("")},children:a.jsx(ae,{"aria-hidden":!0,size:14})})]}),n&&a.jsxs("div",{className:"tag-management-edit",children:[a.jsxs("label",{className:"tag-management-field",children:[a.jsx("span",{children:t("tags.rename")}),a.jsx("input",{value:j,maxLength:32,onChange:r=>{I(r.target.value),i("")},onKeyDown:r=>{r.key==="Enter"&&(r.preventDefault(),J(e))}})]}),a.jsxs("label",{className:"tag-management-field tag-management-color",children:[a.jsx("span",{children:t("tags.color")}),a.jsx("select",{value:M,onChange:r=>{A(r.target.value),i("")},children:H.map(r=>a.jsx("option",{value:r,children:t(`tags.${r}`)},r))})]}),a.jsxs("div",{className:"tag-management-edit-actions",children:[a.jsxs("button",{type:"button",disabled:c,onClick:()=>{m(null),i("")},children:[a.jsx(te,{"aria-hidden":!0,size:14}),t("common.cancel")]}),a.jsxs("button",{type:"button",className:"primary",disabled:!j.trim()||c,"aria-busy":c,onClick:()=>{J(e)},children:[c?a.jsx(E,{className:"spin",size:14}):a.jsx(ne,{"aria-hidden":!0,size:14}),t("common.save")]})]})]})]},e.id)})})]})}),a.jsx(Z,{open:!!o,title:t("tags.deleteTitle"),description:t("tags.deleteDescription",{tag:o?.name??"",count:o?.projectCount??0}),confirmLabel:t(u?"common.loading":"common.delete"),danger:!0,busy:u,error:Q,onCancel:()=>{u||(v(null),g(""))},onConfirm:()=>{V()}})]})}export{de as TagManagementDialog};
1
+ import{u as W,r as s,j as a}from"./react-BVUjbTTn.js";import{f,g as b,M as Y,b as E,C as Z}from"./index-C0t11tlT.js";import{P as _}from"./plus-BGXipRoG.js";import{P as ee,T as ae,X as te}from"./x-Bq29njHL.js";import{C as ne}from"./check-BXvzrdoz.js";const H=["red","orange","yellow","green","blue","purple","gray"];function S(l){return[...l].sort((C,y)=>C.name.localeCompare(y.name))}function se(l){return l instanceof Error&&l.name==="AbortError"}function de({open:l,onOpenChange:C,onTagCreated:y,onTagUpdated:R,onTagDeleted:X}){const{t}=W(),[T,h]=s.useState([]),[G,w]=s.useState(!1),[D,i]=s.useState(""),[p,k]=s.useState(""),[z,L]=s.useState("blue"),[d,P]=s.useState(!1),[$,m]=s.useState(null),[j,I]=s.useState(""),[M,A]=s.useState("blue"),[N,O]=s.useState(null),[o,v]=s.useState(null),[Q,g]=s.useState(""),[u,q]=s.useState(!1);s.useEffect(()=>{if(!l)return;const e=new AbortController;return w(!0),i(""),f("/api/tags/management",{signal:e.signal}).then(n=>h(S(n.tags))).catch(n=>{se(n)||i(b(n))}).finally(()=>{e.signal.aborted||w(!1)}),()=>e.abort()},[l]);const F=async()=>{if(!(!p.trim()||d)){P(!0),i("");try{const e=await f("/api/tags",{method:"POST",body:JSON.stringify({name:p,color:z})});h(n=>S([...n,{...e.tag,projectCount:0}])),y(e.tag),k(""),L("blue")}catch(e){i(b(e))}finally{P(!1)}}},U=e=>{m(e.id),I(e.name),A(e.color),i("")},J=async e=>{if(!(!j.trim()||N)){O(e.id),i("");try{const n=await f(`/api/tags/${e.id}`,{method:"PATCH",body:JSON.stringify({name:j,color:M})}),c={...n.tag,projectCount:e.projectCount};h(r=>S(r.map(B=>B.id===e.id?c:B))),R(n.tag),m(null)}catch(n){i(b(n))}finally{O(null)}}},V=async()=>{if(!(!o||u)){q(!0),g("");try{await f(`/api/tags/${o.id}`,{method:"DELETE"}),h(e=>e.filter(n=>n.id!==o.id)),X(o.id),v(null),$===o.id&&m(null)}catch(e){g(b(e))}finally{q(!1)}}},x=d||N!==null||u,K=e=>{!e&&x||(e||(i(""),g(""),m(null)),C(e))};return a.jsxs(a.Fragment,{children:[a.jsx(Y,{open:l,title:t("tags.manage"),description:t("tags.manageDescription"),wide:!0,className:"tag-management-modal",onOpenChange:K,footer:a.jsx("button",{onClick:()=>K(!1),disabled:x,children:t("common.close")}),children:a.jsxs("div",{className:"tag-management",children:[D&&a.jsx("p",{className:"error dialog-error",role:"alert",children:D}),a.jsxs("div",{className:"tag-management-create",children:[a.jsxs("label",{className:"tag-management-field",children:[a.jsx("span",{children:t("tags.name")}),a.jsx("input",{autoFocus:!0,value:p,maxLength:32,placeholder:t("tags.name"),onChange:e=>{k(e.target.value),i("")},onKeyDown:e=>{e.key==="Enter"&&(e.preventDefault(),F())}})]}),a.jsxs("label",{className:"tag-management-field tag-management-color",children:[a.jsx("span",{children:t("tags.color")}),a.jsx("select",{value:z,onChange:e=>L(e.target.value),children:H.map(e=>a.jsx("option",{value:e,children:t(`tags.${e}`)},e))})]}),a.jsxs("button",{type:"button",className:"primary",disabled:!p.trim()||d,"aria-busy":d,onClick:()=>{F()},children:[d?a.jsx(E,{className:"spin",size:14}):a.jsx(_,{"aria-hidden":!0,size:14}),t("tags.createInManager")]})]}),G?a.jsxs("div",{className:"tag-management-loading",children:[a.jsx(E,{className:"spin",size:16}),t("common.loading")]}):T.length===0?a.jsx("p",{className:"tag-management-empty",children:t("tags.noTags")}):a.jsx("div",{className:"tag-management-list",children:T.map(e=>{const n=$===e.id,c=N===e.id;return a.jsxs("article",{className:`tag-management-item${n?" editing":""}`,children:[a.jsxs("div",{className:"tag-management-item-main",children:[a.jsx("span",{className:`tag-dot tag-${e.color}`,"aria-hidden":"true"}),a.jsxs("div",{children:[a.jsx("strong",{title:e.name,children:e.name}),a.jsx("small",{children:t("tags.projectCount",{count:e.projectCount})})]})]}),a.jsxs("div",{className:"tag-management-item-actions",children:[a.jsx("button",{type:"button",title:t("tags.edit"),"aria-label":t("tags.edit"),disabled:x&&!n,onClick:()=>U(e),children:a.jsx(ee,{"aria-hidden":!0,size:14})}),a.jsx("button",{type:"button",className:"danger-text",title:t("common.delete"),"aria-label":t("common.delete"),disabled:x,onClick:()=>{v(e),g("")},children:a.jsx(ae,{"aria-hidden":!0,size:14})})]}),n&&a.jsxs("div",{className:"tag-management-edit",children:[a.jsxs("label",{className:"tag-management-field",children:[a.jsx("span",{children:t("tags.rename")}),a.jsx("input",{value:j,maxLength:32,onChange:r=>{I(r.target.value),i("")},onKeyDown:r=>{r.key==="Enter"&&(r.preventDefault(),J(e))}})]}),a.jsxs("label",{className:"tag-management-field tag-management-color",children:[a.jsx("span",{children:t("tags.color")}),a.jsx("select",{value:M,onChange:r=>{A(r.target.value),i("")},children:H.map(r=>a.jsx("option",{value:r,children:t(`tags.${r}`)},r))})]}),a.jsxs("div",{className:"tag-management-edit-actions",children:[a.jsxs("button",{type:"button",disabled:c,onClick:()=>{m(null),i("")},children:[a.jsx(te,{"aria-hidden":!0,size:14}),t("common.cancel")]}),a.jsxs("button",{type:"button",className:"primary",disabled:!j.trim()||c,"aria-busy":c,onClick:()=>{J(e)},children:[c?a.jsx(E,{className:"spin",size:14}):a.jsx(ne,{"aria-hidden":!0,size:14}),t("common.save")]})]})]})]},e.id)})})]})}),a.jsx(Z,{open:!!o,title:t("tags.deleteTitle"),description:t("tags.deleteDescription",{tag:o?.name??"",count:o?.projectCount??0}),confirmLabel:t(u?"common.loading":"common.delete"),danger:!0,busy:u,error:Q,onCancel:()=>{u||(v(null),g(""))},onConfirm:()=>{V()}})]})}export{de as TagManagementDialog};
@@ -1 +1 @@
1
- import{u as c,j as o}from"./react-BVUjbTTn.js";import{M as x,b as h}from"./index-CzVDvC5h.js";import{H as j}from"./ProjectWorkspace-WLYA7BSv.js";import{T as u}from"./type-D1mmDdLM.js";import{h as m}from"./x-BDSEosRE.js";import"./check-bnimQPun.js";import"./search-DL2UGvdj.js";import"./user-plus-YJ3ftuL5.js";import"./refresh-cw-FZs9MtoA.js";function T({open:l,mode:d,path:s,busy:i,error:e,result:t,onOpenChange:n}){const{t:r}=c(),a=r(d==="full"?"editor.wordCountFullHint":"editor.wordCountSelectionHint");return o.jsxs(x,{open:l,title:r("editor.wordCountTitle"),description:a,onOpenChange:n,footer:o.jsx("button",{type:"button",onClick:()=>n(!1),children:r("common.close")}),children:[s&&o.jsxs("p",{className:"word-count-source",children:[r(d==="full"?"editor.wordCountFull":"editor.wordCountSelection")," · ",o.jsx("code",{children:s}),o.jsx("a",{href:"https://app.uio.no/ifi/texcount/",target:"_blank",rel:"noreferrer",children:r("editor.wordCountHelp")})]}),o.jsx("p",{className:"word-count-template-note",children:r("editor.wordCountTemplateNote")}),i&&o.jsxs("div",{className:"word-count-loading",role:"status","aria-live":"polite",children:[o.jsx(h,{className:"spin",size:22}),o.jsx("span",{children:r("editor.wordCountLoading")})]}),e&&o.jsx("p",{className:"error dialog-error",children:e}),t&&!i&&o.jsxs("div",{className:"word-count-result","aria-live":"polite",children:[o.jsxs("div",{className:"word-count-totals",children:[o.jsxs("div",{className:"word-count-total",children:[o.jsx(j,{size:20}),o.jsx("strong",{children:t.totalWords.toLocaleString()}),o.jsx("span",{children:r("editor.wordCountTotal")})]}),o.jsxs("div",{className:"word-count-total word-count-characters",children:[o.jsx(u,{size:20}),o.jsx("strong",{children:t.totalCharacters.toLocaleString()}),o.jsxs("span",{children:[r("editor.wordCountCharacters"),o.jsx("small",{children:r("editor.wordCountCharactersHint")})]})]})]}),o.jsxs("dl",{className:"word-count-breakdown",children:[o.jsxs("div",{children:[o.jsx("dt",{children:r("editor.wordCountText")}),o.jsxs("dd",{children:[t.textWords.toLocaleString(),o.jsx("small",{children:r("editor.wordCountWordsUnit")})]})]}),o.jsxs("div",{children:[o.jsx("dt",{children:r("editor.wordCountHeaders")}),o.jsxs("dd",{children:[t.headerWords.toLocaleString(),o.jsx("small",{children:r("editor.wordCountWordsUnit")})]})]}),o.jsxs("div",{children:[o.jsx("dt",{children:r("editor.wordCountCaptions")}),o.jsxs("dd",{children:[t.captionWords.toLocaleString(),o.jsx("small",{children:r("editor.wordCountWordsUnit")})]})]}),o.jsxs("div",{children:[o.jsx("dt",{children:r("editor.wordCountFloats")}),o.jsxs("dd",{children:[t.floats.toLocaleString(),o.jsx("small",{children:r("editor.wordCountItemsUnit")})]})]}),o.jsxs("div",{children:[o.jsx("dt",{children:r("editor.wordCountInlineMath")}),o.jsxs("dd",{children:[t.inlineMath.toLocaleString(),o.jsx("small",{children:r("editor.wordCountExpressionsUnit")})]})]}),o.jsxs("div",{children:[o.jsx("dt",{children:r("editor.wordCountDisplayMath")}),o.jsxs("dd",{children:[t.displayMath.toLocaleString(),o.jsx("small",{children:r("editor.wordCountExpressionsUnit")})]})]}),t.files!==null&&o.jsxs("div",{children:[o.jsx("dt",{children:r("editor.wordCountFiles")}),o.jsxs("dd",{children:[t.files.toLocaleString(),o.jsx("small",{children:r("editor.wordCountItemsUnit")})]})]})]}),t.parserErrors>0&&o.jsxs("p",{className:"warning word-count-warning",children:[o.jsx(m,{size:14}),r("editor.wordCountParserErrors",{count:t.parserErrors})]})]})]})}export{T as WordCountDialog};
1
+ import{u as c,j as o}from"./react-BVUjbTTn.js";import{M as x,b as h}from"./index-C0t11tlT.js";import{H as j}from"./ProjectWorkspace-C6GrvKN6.js";import{T as u}from"./type-CE2DYkPH.js";import{i as m}from"./x-Bq29njHL.js";import"./check-BXvzrdoz.js";import"./search-b1ORp1k8.js";import"./user-plus-CKalKSsw.js";import"./refresh-cw-Dvp3O90f.js";function T({open:l,mode:d,path:s,busy:i,error:e,result:t,onOpenChange:n}){const{t:r}=c(),a=r(d==="full"?"editor.wordCountFullHint":"editor.wordCountSelectionHint");return o.jsxs(x,{open:l,title:r("editor.wordCountTitle"),description:a,onOpenChange:n,footer:o.jsx("button",{type:"button",onClick:()=>n(!1),children:r("common.close")}),children:[s&&o.jsxs("p",{className:"word-count-source",children:[r(d==="full"?"editor.wordCountFull":"editor.wordCountSelection")," · ",o.jsx("code",{children:s}),o.jsx("a",{href:"https://app.uio.no/ifi/texcount/",target:"_blank",rel:"noreferrer",children:r("editor.wordCountHelp")})]}),o.jsx("p",{className:"word-count-template-note",children:r("editor.wordCountTemplateNote")}),i&&o.jsxs("div",{className:"word-count-loading",role:"status","aria-live":"polite",children:[o.jsx(h,{className:"spin",size:22}),o.jsx("span",{children:r("editor.wordCountLoading")})]}),e&&o.jsx("p",{className:"error dialog-error",children:e}),t&&!i&&o.jsxs("div",{className:"word-count-result","aria-live":"polite",children:[o.jsxs("div",{className:"word-count-totals",children:[o.jsxs("div",{className:"word-count-total",children:[o.jsx(j,{size:20}),o.jsx("strong",{children:t.totalWords.toLocaleString()}),o.jsx("span",{children:r("editor.wordCountTotal")})]}),o.jsxs("div",{className:"word-count-total word-count-characters",children:[o.jsx(u,{size:20}),o.jsx("strong",{children:t.totalCharacters.toLocaleString()}),o.jsxs("span",{children:[r("editor.wordCountCharacters"),o.jsx("small",{children:r("editor.wordCountCharactersHint")})]})]})]}),o.jsxs("dl",{className:"word-count-breakdown",children:[o.jsxs("div",{children:[o.jsx("dt",{children:r("editor.wordCountText")}),o.jsxs("dd",{children:[t.textWords.toLocaleString(),o.jsx("small",{children:r("editor.wordCountWordsUnit")})]})]}),o.jsxs("div",{children:[o.jsx("dt",{children:r("editor.wordCountHeaders")}),o.jsxs("dd",{children:[t.headerWords.toLocaleString(),o.jsx("small",{children:r("editor.wordCountWordsUnit")})]})]}),o.jsxs("div",{children:[o.jsx("dt",{children:r("editor.wordCountCaptions")}),o.jsxs("dd",{children:[t.captionWords.toLocaleString(),o.jsx("small",{children:r("editor.wordCountWordsUnit")})]})]}),o.jsxs("div",{children:[o.jsx("dt",{children:r("editor.wordCountFloats")}),o.jsxs("dd",{children:[t.floats.toLocaleString(),o.jsx("small",{children:r("editor.wordCountItemsUnit")})]})]}),o.jsxs("div",{children:[o.jsx("dt",{children:r("editor.wordCountInlineMath")}),o.jsxs("dd",{children:[t.inlineMath.toLocaleString(),o.jsx("small",{children:r("editor.wordCountExpressionsUnit")})]})]}),o.jsxs("div",{children:[o.jsx("dt",{children:r("editor.wordCountDisplayMath")}),o.jsxs("dd",{children:[t.displayMath.toLocaleString(),o.jsx("small",{children:r("editor.wordCountExpressionsUnit")})]})]}),t.files!==null&&o.jsxs("div",{children:[o.jsx("dt",{children:r("editor.wordCountFiles")}),o.jsxs("dd",{children:[t.files.toLocaleString(),o.jsx("small",{children:r("editor.wordCountItemsUnit")})]})]})]}),t.parserErrors>0&&o.jsxs("p",{className:"warning word-count-warning",children:[o.jsx(m,{size:14}),r("editor.wordCountParserErrors",{count:t.parserErrors})]})]})]})}export{T as WordCountDialog};
@@ -0,0 +1 @@
1
+ import{c}from"./index-C0t11tlT.js";const o=c("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);export{o as C};
@@ -0,0 +1 @@
1
+ import{c as e}from"./index-C0t11tlT.js";const t=e("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);export{t as C};
@@ -0,0 +1 @@
1
+ import{c as e}from"./index-C0t11tlT.js";const y=e("FileCode2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m5 12-3 3 3 3",key:"oke12k"}],["path",{d:"m9 18 3-3-3-3",key:"112psh"}]]);const o=e("HardDrive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);export{y as F,o as H};
@@ -0,0 +1,5 @@
1
+ import{c as F}from"./index-C0t11tlT.js";import{g as B}from"./react-BVUjbTTn.js";const z=F("Clock3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16.5 12",key:"1aq6pp"}]]);var R={exports:{}},C;function L(){return C||(C=1,(function(T){var f=function(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=.5,this.Match_Distance=1e3,this.Patch_DeleteThreshold=.5,this.Patch_Margin=4,this.Match_MaxBits=32},p=-1,M=1,_=0;f.Diff=function(r,n){return[r,n]},f.prototype.diff_main=function(r,n,e,t){typeof t>"u"&&(this.Diff_Timeout<=0?t=Number.MAX_VALUE:t=new Date().getTime()+this.Diff_Timeout*1e3);var a=t;if(r==null||n==null)throw new Error("Null input. (diff_main)");if(r==n)return r?[new f.Diff(_,r)]:[];typeof e>"u"&&(e=!0);var i=e,s=this.diff_commonPrefix(r,n),h=r.substring(0,s);r=r.substring(s),n=n.substring(s),s=this.diff_commonSuffix(r,n);var l=r.substring(r.length-s);r=r.substring(0,r.length-s),n=n.substring(0,n.length-s);var g=this.diff_compute_(r,n,i,a);return h&&g.unshift(new f.Diff(_,h)),l&&g.push(new f.Diff(_,l)),this.diff_cleanupMerge(g),g},f.prototype.diff_compute_=function(r,n,e,t){var a;if(!r)return[new f.Diff(M,n)];if(!n)return[new f.Diff(p,r)];var i=r.length>n.length?r:n,s=r.length>n.length?n:r,h=i.indexOf(s);if(h!=-1)return a=[new f.Diff(M,i.substring(0,h)),new f.Diff(_,s),new f.Diff(M,i.substring(h+s.length))],r.length>n.length&&(a[0][0]=a[2][0]=p),a;if(s.length==1)return[new f.Diff(p,r),new f.Diff(M,n)];var l=this.diff_halfMatch_(r,n);if(l){var g=l[0],v=l[1],u=l[2],o=l[3],c=l[4],b=this.diff_main(g,u,e,t),w=this.diff_main(v,o,e,t);return b.concat([new f.Diff(_,c)],w)}return e&&r.length>100&&n.length>100?this.diff_lineMode_(r,n,t):this.diff_bisect_(r,n,t)},f.prototype.diff_lineMode_=function(r,n,e){var t=this.diff_linesToChars_(r,n);r=t.chars1,n=t.chars2;var a=t.lineArray,i=this.diff_main(r,n,!1,e);this.diff_charsToLines_(i,a),this.diff_cleanupSemantic(i),i.push(new f.Diff(_,""));for(var s=0,h=0,l=0,g="",v="";s<i.length;){switch(i[s][0]){case M:l++,v+=i[s][1];break;case p:h++,g+=i[s][1];break;case _:if(h>=1&&l>=1){i.splice(s-h-l,h+l),s=s-h-l;for(var u=this.diff_main(g,v,!1,e),o=u.length-1;o>=0;o--)i.splice(s,0,u[o]);s=s+u.length}l=0,h=0,g="",v="";break}s++}return i.pop(),i},f.prototype.diff_bisect_=function(r,n,e){for(var t=r.length,a=n.length,i=Math.ceil((t+a)/2),s=i,h=2*i,l=new Array(h),g=new Array(h),v=0;v<h;v++)l[v]=-1,g[v]=-1;l[s+1]=0,g[s+1]=0;for(var u=t-a,o=u%2!=0,c=0,b=0,w=0,I=0,m=0;m<i&&!(new Date().getTime()>e);m++){for(var D=-m+c;D<=m-b;D+=2){var A=s+D,k;D==-m||D!=m&&l[A-1]<l[A+1]?k=l[A+1]:k=l[A-1]+1;for(var y=k-D;k<t&&y<a&&r.charAt(k)==n.charAt(y);)k++,y++;if(l[A]=k,k>t)b+=2;else if(y>a)c+=2;else if(o){var E=s+u-D;if(E>=0&&E<h&&g[E]!=-1){var P=t-g[E];if(k>=P)return this.diff_bisectSplit_(r,n,k,y,e)}}}for(var d=-m+w;d<=m-I;d+=2){var E=s+d,P;d==-m||d!=m&&g[E-1]<g[E+1]?P=g[E+1]:P=g[E-1]+1;for(var S=P-d;P<t&&S<a&&r.charAt(t-P-1)==n.charAt(a-S-1);)P++,S++;if(g[E]=P,P>t)I+=2;else if(S>a)w+=2;else if(!o){var A=s+u-d;if(A>=0&&A<h&&l[A]!=-1){var k=l[A],y=s+k-A;if(P=t-P,k>=P)return this.diff_bisectSplit_(r,n,k,y,e)}}}}return[new f.Diff(p,r),new f.Diff(M,n)]},f.prototype.diff_bisectSplit_=function(r,n,e,t,a){var i=r.substring(0,e),s=n.substring(0,t),h=r.substring(e),l=n.substring(t),g=this.diff_main(i,s,!1,a),v=this.diff_main(h,l,!1,a);return g.concat(v)},f.prototype.diff_linesToChars_=function(r,n){var e=[],t={};e[0]="";function a(l){for(var g="",v=0,u=-1,o=e.length;u<l.length-1;){u=l.indexOf(`
2
+ `,v),u==-1&&(u=l.length-1);var c=l.substring(v,u+1);(t.hasOwnProperty?t.hasOwnProperty(c):t[c]!==void 0)?g+=String.fromCharCode(t[c]):(o==i&&(c=l.substring(v),u=l.length),g+=String.fromCharCode(o),t[c]=o,e[o++]=c),v=u+1}return g}var i=4e4,s=a(r);i=65535;var h=a(n);return{chars1:s,chars2:h,lineArray:e}},f.prototype.diff_charsToLines_=function(r,n){for(var e=0;e<r.length;e++){for(var t=r[e][1],a=[],i=0;i<t.length;i++)a[i]=n[t.charCodeAt(i)];r[e][1]=a.join("")}},f.prototype.diff_commonPrefix=function(r,n){if(!r||!n||r.charAt(0)!=n.charAt(0))return 0;for(var e=0,t=Math.min(r.length,n.length),a=t,i=0;e<a;)r.substring(i,a)==n.substring(i,a)?(e=a,i=e):t=a,a=Math.floor((t-e)/2+e);return a},f.prototype.diff_commonSuffix=function(r,n){if(!r||!n||r.charAt(r.length-1)!=n.charAt(n.length-1))return 0;for(var e=0,t=Math.min(r.length,n.length),a=t,i=0;e<a;)r.substring(r.length-a,r.length-i)==n.substring(n.length-a,n.length-i)?(e=a,i=e):t=a,a=Math.floor((t-e)/2+e);return a},f.prototype.diff_commonOverlap_=function(r,n){var e=r.length,t=n.length;if(e==0||t==0)return 0;e>t?r=r.substring(e-t):e<t&&(n=n.substring(0,e));var a=Math.min(e,t);if(r==n)return a;for(var i=0,s=1;;){var h=r.substring(a-s),l=n.indexOf(h);if(l==-1)return i;s+=l,(l==0||r.substring(a-s)==n.substring(0,s))&&(i=s,s++)}},f.prototype.diff_halfMatch_=function(r,n){if(this.Diff_Timeout<=0)return null;var e=r.length>n.length?r:n,t=r.length>n.length?n:r;if(e.length<4||t.length*2<e.length)return null;var a=this;function i(b,w,I){for(var m=b.substring(I,I+Math.floor(b.length/4)),D=-1,A="",k,y,E,P;(D=w.indexOf(m,D+1))!=-1;){var d=a.diff_commonPrefix(b.substring(I),w.substring(D)),S=a.diff_commonSuffix(b.substring(0,I),w.substring(0,D));A.length<S+d&&(A=w.substring(D-S,D)+w.substring(D,D+d),k=b.substring(0,I-S),y=b.substring(I+d),E=w.substring(0,D-S),P=w.substring(D+d))}return A.length*2>=b.length?[k,y,E,P,A]:null}var s=i(e,t,Math.ceil(e.length/4)),h=i(e,t,Math.ceil(e.length/2)),l;if(!s&&!h)return null;h?s?l=s[4].length>h[4].length?s:h:l=h:l=s;var g,v,u,o;r.length>n.length?(g=l[0],v=l[1],u=l[2],o=l[3]):(u=l[0],o=l[1],g=l[2],v=l[3]);var c=l[4];return[g,v,u,o,c]},f.prototype.diff_cleanupSemantic=function(r){for(var n=!1,e=[],t=0,a=null,i=0,s=0,h=0,l=0,g=0;i<r.length;)r[i][0]==_?(e[t++]=i,s=l,h=g,l=0,g=0,a=r[i][1]):(r[i][0]==M?l+=r[i][1].length:g+=r[i][1].length,a&&a.length<=Math.max(s,h)&&a.length<=Math.max(l,g)&&(r.splice(e[t-1],0,new f.Diff(p,a)),r[e[t-1]+1][0]=M,t--,t--,i=t>0?e[t-1]:-1,s=0,h=0,l=0,g=0,a=null,n=!0)),i++;for(n&&this.diff_cleanupMerge(r),this.diff_cleanupSemanticLossless(r),i=1;i<r.length;){if(r[i-1][0]==p&&r[i][0]==M){var v=r[i-1][1],u=r[i][1],o=this.diff_commonOverlap_(v,u),c=this.diff_commonOverlap_(u,v);o>=c?(o>=v.length/2||o>=u.length/2)&&(r.splice(i,0,new f.Diff(_,u.substring(0,o))),r[i-1][1]=v.substring(0,v.length-o),r[i+1][1]=u.substring(o),i++):(c>=v.length/2||c>=u.length/2)&&(r.splice(i,0,new f.Diff(_,v.substring(0,c))),r[i-1][0]=M,r[i-1][1]=u.substring(0,u.length-c),r[i+1][0]=p,r[i+1][1]=v.substring(c),i++),i++}i++}},f.prototype.diff_cleanupSemanticLossless=function(r){function n(c,b){if(!c||!b)return 6;var w=c.charAt(c.length-1),I=b.charAt(0),m=w.match(f.nonAlphaNumericRegex_),D=I.match(f.nonAlphaNumericRegex_),A=m&&w.match(f.whitespaceRegex_),k=D&&I.match(f.whitespaceRegex_),y=A&&w.match(f.linebreakRegex_),E=k&&I.match(f.linebreakRegex_),P=y&&c.match(f.blanklineEndRegex_),d=E&&b.match(f.blanklineStartRegex_);return P||d?5:y||E?4:m&&!A&&k?3:A||k?2:m||D?1:0}for(var e=1;e<r.length-1;){if(r[e-1][0]==_&&r[e+1][0]==_){var t=r[e-1][1],a=r[e][1],i=r[e+1][1],s=this.diff_commonSuffix(t,a);if(s){var h=a.substring(a.length-s);t=t.substring(0,t.length-s),a=h+a.substring(0,a.length-s),i=h+i}for(var l=t,g=a,v=i,u=n(t,a)+n(a,i);a.charAt(0)===i.charAt(0);){t+=a.charAt(0),a=a.substring(1)+i.charAt(0),i=i.substring(1);var o=n(t,a)+n(a,i);o>=u&&(u=o,l=t,g=a,v=i)}r[e-1][1]!=l&&(l?r[e-1][1]=l:(r.splice(e-1,1),e--),r[e][1]=g,v?r[e+1][1]=v:(r.splice(e+1,1),e--))}e++}},f.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,f.whitespaceRegex_=/\s/,f.linebreakRegex_=/[\r\n]/,f.blanklineEndRegex_=/\n\r?\n$/,f.blanklineStartRegex_=/^\r?\n\r?\n/,f.prototype.diff_cleanupEfficiency=function(r){for(var n=!1,e=[],t=0,a=null,i=0,s=!1,h=!1,l=!1,g=!1;i<r.length;)r[i][0]==_?(r[i][1].length<this.Diff_EditCost&&(l||g)?(e[t++]=i,s=l,h=g,a=r[i][1]):(t=0,a=null),l=g=!1):(r[i][0]==p?g=!0:l=!0,a&&(s&&h&&l&&g||a.length<this.Diff_EditCost/2&&s+h+l+g==3)&&(r.splice(e[t-1],0,new f.Diff(p,a)),r[e[t-1]+1][0]=M,t--,a=null,s&&h?(l=g=!0,t=0):(t--,i=t>0?e[t-1]:-1,l=g=!1),n=!0)),i++;n&&this.diff_cleanupMerge(r)},f.prototype.diff_cleanupMerge=function(r){r.push(new f.Diff(_,""));for(var n=0,e=0,t=0,a="",i="",s;n<r.length;)switch(r[n][0]){case M:t++,i+=r[n][1],n++;break;case p:e++,a+=r[n][1],n++;break;case _:e+t>1?(e!==0&&t!==0&&(s=this.diff_commonPrefix(i,a),s!==0&&(n-e-t>0&&r[n-e-t-1][0]==_?r[n-e-t-1][1]+=i.substring(0,s):(r.splice(0,0,new f.Diff(_,i.substring(0,s))),n++),i=i.substring(s),a=a.substring(s)),s=this.diff_commonSuffix(i,a),s!==0&&(r[n][1]=i.substring(i.length-s)+r[n][1],i=i.substring(0,i.length-s),a=a.substring(0,a.length-s))),n-=e+t,r.splice(n,e+t),a.length&&(r.splice(n,0,new f.Diff(p,a)),n++),i.length&&(r.splice(n,0,new f.Diff(M,i)),n++),n++):n!==0&&r[n-1][0]==_?(r[n-1][1]+=r[n][1],r.splice(n,1)):n++,t=0,e=0,a="",i="";break}r[r.length-1][1]===""&&r.pop();var h=!1;for(n=1;n<r.length-1;)r[n-1][0]==_&&r[n+1][0]==_&&(r[n][1].substring(r[n][1].length-r[n-1][1].length)==r[n-1][1]?(r[n][1]=r[n-1][1]+r[n][1].substring(0,r[n][1].length-r[n-1][1].length),r[n+1][1]=r[n-1][1]+r[n+1][1],r.splice(n-1,1),h=!0):r[n][1].substring(0,r[n+1][1].length)==r[n+1][1]&&(r[n-1][1]+=r[n+1][1],r[n][1]=r[n][1].substring(r[n+1][1].length)+r[n+1][1],r.splice(n+1,1),h=!0)),n++;h&&this.diff_cleanupMerge(r)},f.prototype.diff_xIndex=function(r,n){var e=0,t=0,a=0,i=0,s;for(s=0;s<r.length&&(r[s][0]!==M&&(e+=r[s][1].length),r[s][0]!==p&&(t+=r[s][1].length),!(e>n));s++)a=e,i=t;return r.length!=s&&r[s][0]===p?i:i+(n-a)},f.prototype.diff_prettyHtml=function(r){for(var n=[],e=/&/g,t=/</g,a=/>/g,i=/\n/g,s=0;s<r.length;s++){var h=r[s][0],l=r[s][1],g=l.replace(e,"&amp;").replace(t,"&lt;").replace(a,"&gt;").replace(i,"&para;<br>");switch(h){case M:n[s]='<ins style="background:#e6ffe6;">'+g+"</ins>";break;case p:n[s]='<del style="background:#ffe6e6;">'+g+"</del>";break;case _:n[s]="<span>"+g+"</span>";break}}return n.join("")},f.prototype.diff_text1=function(r){for(var n=[],e=0;e<r.length;e++)r[e][0]!==M&&(n[e]=r[e][1]);return n.join("")},f.prototype.diff_text2=function(r){for(var n=[],e=0;e<r.length;e++)r[e][0]!==p&&(n[e]=r[e][1]);return n.join("")},f.prototype.diff_levenshtein=function(r){for(var n=0,e=0,t=0,a=0;a<r.length;a++){var i=r[a][0],s=r[a][1];switch(i){case M:e+=s.length;break;case p:t+=s.length;break;case _:n+=Math.max(e,t),e=0,t=0;break}}return n+=Math.max(e,t),n},f.prototype.diff_toDelta=function(r){for(var n=[],e=0;e<r.length;e++)switch(r[e][0]){case M:n[e]="+"+encodeURI(r[e][1]);break;case p:n[e]="-"+r[e][1].length;break;case _:n[e]="="+r[e][1].length;break}return n.join(" ").replace(/%20/g," ")},f.prototype.diff_fromDelta=function(r,n){for(var e=[],t=0,a=0,i=n.split(/\t/g),s=0;s<i.length;s++){var h=i[s].substring(1);switch(i[s].charAt(0)){case"+":try{e[t++]=new f.Diff(M,decodeURI(h))}catch{throw new Error("Illegal escape in diff_fromDelta: "+h)}break;case"-":case"=":var l=parseInt(h,10);if(isNaN(l)||l<0)throw new Error("Invalid number in diff_fromDelta: "+h);var g=r.substring(a,a+=l);i[s].charAt(0)=="="?e[t++]=new f.Diff(_,g):e[t++]=new f.Diff(p,g);break;default:if(i[s])throw new Error("Invalid diff operation in diff_fromDelta: "+i[s])}}if(a!=r.length)throw new Error("Delta length ("+a+") does not equal source text length ("+r.length+").");return e},f.prototype.match_main=function(r,n,e){if(r==null||n==null||e==null)throw new Error("Null input. (match_main)");return e=Math.max(0,Math.min(e,r.length)),r==n?0:r.length?r.substring(e,e+n.length)==n?e:this.match_bitap_(r,n,e):-1},f.prototype.match_bitap_=function(r,n,e){if(n.length>this.Match_MaxBits)throw new Error("Pattern too long for this browser.");var t=this.match_alphabet_(n),a=this;function i(k,y){var E=k/n.length,P=Math.abs(e-y);return a.Match_Distance?E+P/a.Match_Distance:P?1:E}var s=this.Match_Threshold,h=r.indexOf(n,e);h!=-1&&(s=Math.min(i(0,h),s),h=r.lastIndexOf(n,e+n.length),h!=-1&&(s=Math.min(i(0,h),s)));var l=1<<n.length-1;h=-1;for(var g,v,u=n.length+r.length,o,c=0;c<n.length;c++){for(g=0,v=u;g<v;)i(c,e+v)<=s?g=v:u=v,v=Math.floor((u-g)/2+g);u=v;var b=Math.max(1,e-v+1),w=Math.min(e+v,r.length)+n.length,I=Array(w+2);I[w+1]=(1<<c)-1;for(var m=w;m>=b;m--){var D=t[r.charAt(m-1)];if(c===0?I[m]=(I[m+1]<<1|1)&D:I[m]=(I[m+1]<<1|1)&D|((o[m+1]|o[m])<<1|1)|o[m+1],I[m]&l){var A=i(c,m-1);if(A<=s)if(s=A,h=m-1,h>e)b=Math.max(1,2*e-h);else break}}if(i(c+1,e)>s)break;o=I}return h},f.prototype.match_alphabet_=function(r){for(var n={},e=0;e<r.length;e++)n[r.charAt(e)]=0;for(var e=0;e<r.length;e++)n[r.charAt(e)]|=1<<r.length-e-1;return n},f.prototype.patch_addContext_=function(r,n){if(n.length!=0){if(r.start2===null)throw Error("patch not initialized");for(var e=n.substring(r.start2,r.start2+r.length1),t=0;n.indexOf(e)!=n.lastIndexOf(e)&&e.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)t+=this.Patch_Margin,e=n.substring(r.start2-t,r.start2+r.length1+t);t+=this.Patch_Margin;var a=n.substring(r.start2-t,r.start2);a&&r.diffs.unshift(new f.Diff(_,a));var i=n.substring(r.start2+r.length1,r.start2+r.length1+t);i&&r.diffs.push(new f.Diff(_,i)),r.start1-=a.length,r.start2-=a.length,r.length1+=a.length+i.length,r.length2+=a.length+i.length}},f.prototype.patch_make=function(r,n,e){var t,a;if(typeof r=="string"&&typeof n=="string"&&typeof e>"u")t=r,a=this.diff_main(t,n,!0),a.length>2&&(this.diff_cleanupSemantic(a),this.diff_cleanupEfficiency(a));else if(r&&typeof r=="object"&&typeof n>"u"&&typeof e>"u")a=r,t=this.diff_text1(a);else if(typeof r=="string"&&n&&typeof n=="object"&&typeof e>"u")t=r,a=n;else if(typeof r=="string"&&typeof n=="string"&&e&&typeof e=="object")t=r,a=e;else throw new Error("Unknown call format to patch_make.");if(a.length===0)return[];for(var i=[],s=new f.patch_obj,h=0,l=0,g=0,v=t,u=t,o=0;o<a.length;o++){var c=a[o][0],b=a[o][1];switch(!h&&c!==_&&(s.start1=l,s.start2=g),c){case M:s.diffs[h++]=a[o],s.length2+=b.length,u=u.substring(0,g)+b+u.substring(g);break;case p:s.length1+=b.length,s.diffs[h++]=a[o],u=u.substring(0,g)+u.substring(g+b.length);break;case _:b.length<=2*this.Patch_Margin&&h&&a.length!=o+1?(s.diffs[h++]=a[o],s.length1+=b.length,s.length2+=b.length):b.length>=2*this.Patch_Margin&&h&&(this.patch_addContext_(s,v),i.push(s),s=new f.patch_obj,h=0,v=u,l=g);break}c!==M&&(l+=b.length),c!==p&&(g+=b.length)}return h&&(this.patch_addContext_(s,v),i.push(s)),i},f.prototype.patch_deepCopy=function(r){for(var n=[],e=0;e<r.length;e++){var t=r[e],a=new f.patch_obj;a.diffs=[];for(var i=0;i<t.diffs.length;i++)a.diffs[i]=new f.Diff(t.diffs[i][0],t.diffs[i][1]);a.start1=t.start1,a.start2=t.start2,a.length1=t.length1,a.length2=t.length2,n[e]=a}return n},f.prototype.patch_apply=function(r,n){if(r.length==0)return[n,[]];r=this.patch_deepCopy(r);var e=this.patch_addPadding(r);n=e+n+e,this.patch_splitMax(r);for(var t=0,a=[],i=0;i<r.length;i++){var s=r[i].start2+t,h=this.diff_text1(r[i].diffs),l,g=-1;if(h.length>this.Match_MaxBits?(l=this.match_main(n,h.substring(0,this.Match_MaxBits),s),l!=-1&&(g=this.match_main(n,h.substring(h.length-this.Match_MaxBits),s+h.length-this.Match_MaxBits),(g==-1||l>=g)&&(l=-1))):l=this.match_main(n,h,s),l==-1)a[i]=!1,t-=r[i].length2-r[i].length1;else{a[i]=!0,t=l-s;var v;if(g==-1?v=n.substring(l,l+h.length):v=n.substring(l,g+this.Match_MaxBits),h==v)n=n.substring(0,l)+this.diff_text2(r[i].diffs)+n.substring(l+h.length);else{var u=this.diff_main(h,v,!1);if(h.length>this.Match_MaxBits&&this.diff_levenshtein(u)/h.length>this.Patch_DeleteThreshold)a[i]=!1;else{this.diff_cleanupSemanticLossless(u);for(var o=0,c,b=0;b<r[i].diffs.length;b++){var w=r[i].diffs[b];w[0]!==_&&(c=this.diff_xIndex(u,o)),w[0]===M?n=n.substring(0,l+c)+w[1]+n.substring(l+c):w[0]===p&&(n=n.substring(0,l+c)+n.substring(l+this.diff_xIndex(u,o+w[1].length))),w[0]!==p&&(o+=w[1].length)}}}}}return n=n.substring(e.length,n.length-e.length),[n,a]},f.prototype.patch_addPadding=function(r){for(var n=this.Patch_Margin,e="",t=1;t<=n;t++)e+=String.fromCharCode(t);for(var t=0;t<r.length;t++)r[t].start1+=n,r[t].start2+=n;var a=r[0],i=a.diffs;if(i.length==0||i[0][0]!=_)i.unshift(new f.Diff(_,e)),a.start1-=n,a.start2-=n,a.length1+=n,a.length2+=n;else if(n>i[0][1].length){var s=n-i[0][1].length;i[0][1]=e.substring(i[0][1].length)+i[0][1],a.start1-=s,a.start2-=s,a.length1+=s,a.length2+=s}if(a=r[r.length-1],i=a.diffs,i.length==0||i[i.length-1][0]!=_)i.push(new f.Diff(_,e)),a.length1+=n,a.length2+=n;else if(n>i[i.length-1][1].length){var s=n-i[i.length-1][1].length;i[i.length-1][1]+=e.substring(0,s),a.length1+=s,a.length2+=s}return e},f.prototype.patch_splitMax=function(r){for(var n=this.Match_MaxBits,e=0;e<r.length;e++)if(!(r[e].length1<=n)){var t=r[e];r.splice(e--,1);for(var a=t.start1,i=t.start2,s="";t.diffs.length!==0;){var h=new f.patch_obj,l=!0;for(h.start1=a-s.length,h.start2=i-s.length,s!==""&&(h.length1=h.length2=s.length,h.diffs.push(new f.Diff(_,s)));t.diffs.length!==0&&h.length1<n-this.Patch_Margin;){var g=t.diffs[0][0],v=t.diffs[0][1];g===M?(h.length2+=v.length,i+=v.length,h.diffs.push(t.diffs.shift()),l=!1):g===p&&h.diffs.length==1&&h.diffs[0][0]==_&&v.length>2*n?(h.length1+=v.length,a+=v.length,l=!1,h.diffs.push(new f.Diff(g,v)),t.diffs.shift()):(v=v.substring(0,n-h.length1-this.Patch_Margin),h.length1+=v.length,a+=v.length,g===_?(h.length2+=v.length,i+=v.length):l=!1,h.diffs.push(new f.Diff(g,v)),v==t.diffs[0][1]?t.diffs.shift():t.diffs[0][1]=t.diffs[0][1].substring(v.length))}s=this.diff_text2(h.diffs),s=s.substring(s.length-this.Patch_Margin);var u=this.diff_text1(t.diffs).substring(0,this.Patch_Margin);u!==""&&(h.length1+=u.length,h.length2+=u.length,h.diffs.length!==0&&h.diffs[h.diffs.length-1][0]===_?h.diffs[h.diffs.length-1][1]+=u:h.diffs.push(new f.Diff(_,u))),l||r.splice(++e,0,h)}}},f.prototype.patch_toText=function(r){for(var n=[],e=0;e<r.length;e++)n[e]=r[e];return n.join("")},f.prototype.patch_fromText=function(r){var n=[];if(!r)return n;for(var e=r.split(`
3
+ `),t=0,a=/^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/;t<e.length;){var i=e[t].match(a);if(!i)throw new Error("Invalid patch string: "+e[t]);var s=new f.patch_obj;for(n.push(s),s.start1=parseInt(i[1],10),i[2]===""?(s.start1--,s.length1=1):i[2]=="0"?s.length1=0:(s.start1--,s.length1=parseInt(i[2],10)),s.start2=parseInt(i[3],10),i[4]===""?(s.start2--,s.length2=1):i[4]=="0"?s.length2=0:(s.start2--,s.length2=parseInt(i[4],10)),t++;t<e.length;){var h=e[t].charAt(0);try{var l=decodeURI(e[t].substring(1))}catch{throw new Error("Illegal escape in patch_fromText: "+l)}if(h=="-")s.diffs.push(new f.Diff(p,l));else if(h=="+")s.diffs.push(new f.Diff(M,l));else if(h==" ")s.diffs.push(new f.Diff(_,l));else{if(h=="@")break;if(h!=="")throw new Error('Invalid patch mode "'+h+'" in: '+l)}t++}}return n},f.patch_obj=function(){this.diffs=[],this.start1=null,this.start2=null,this.length1=0,this.length2=0},f.patch_obj.prototype.toString=function(){var r,n;this.length1===0?r=this.start1+",0":this.length1==1?r=this.start1+1:r=this.start1+1+","+this.length1,this.length2===0?n=this.start2+",0":this.length2==1?n=this.start2+1:n=this.start2+1+","+this.length2;for(var e=["@@ -"+r+" +"+n+` @@
4
+ `],t,a=0;a<this.diffs.length;a++){switch(this.diffs[a][0]){case M:t="+";break;case p:t="-";break;case _:t=" ";break}e[a+1]=t+encodeURI(this.diffs[a][1])+`
5
+ `}return e.join("").replace(/%20/g," ")},T.exports=f,T.exports.diff_match_patch=f,T.exports.DIFF_DELETE=p,T.exports.DIFF_INSERT=M,T.exports.DIFF_EQUAL=_})(R)),R.exports}var N=L();const H=B(N);export{z as C,H as d};