texlite 0.9.1 → 0.9.2

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 (84) hide show
  1. package/DESIGN.md +7 -0
  2. package/OPERATIONS.md +70 -3
  3. package/README.md +5 -0
  4. package/README.zh-CN.md +5 -0
  5. package/THIRD_PARTY_NOTICES.md +29 -0
  6. package/dist/client/assets/{AdminUsers-Dazar9cj.js → AdminUsers-Buf5ZclR.js} +1 -1
  7. package/dist/client/assets/{CitationLibraryDialog-VSUiSPgG.js → CitationLibraryDialog-DrKbIlD-.js} +1 -1
  8. package/dist/client/assets/Dashboard-DLk2j3oq.js +2 -0
  9. package/dist/client/assets/{GitDialog-C9Loz4Al.js → GitDialog-CTWAU8q6.js} +1 -1
  10. package/dist/client/assets/{HistoryDialog-3UNN_jhU.js → HistoryDialog-Mo4p8HEg.js} +1 -1
  11. package/dist/client/assets/LatexEditor-CwvakYva.js +135 -0
  12. package/dist/client/assets/{PdfPreview-BKhcS-2c.js → PdfPreview-BUpELZd-.js} +1 -1
  13. package/dist/client/assets/{ProjectIconPickerDialog-BoWMjQVm.js → ProjectIconPickerDialog-BiWSwDdt.js} +1 -1
  14. package/dist/client/assets/{ProjectNavigationDialogs-CZKTnxrl.js → ProjectNavigationDialogs-CpjkXZTz.js} +1 -1
  15. package/dist/client/assets/{ProjectSettings-DiOQVJ40.js → ProjectSettings-DoxitHbX.js} +1 -1
  16. package/dist/client/assets/ProjectWorkspace-iNqXZlsj.js +29 -0
  17. package/dist/client/assets/{SelectionHistoryDialog-D3dO83lg.js → SelectionHistoryDialog-9FWlc3Rb.js} +1 -1
  18. package/dist/client/assets/{SystemMetricsDialog-0zCwLtH_.js → SystemMetricsDialog-24kifZO6.js} +1 -1
  19. package/dist/client/assets/TagManagementDialog-BHIA0vEA.js +1 -0
  20. package/dist/client/assets/{WordCountDialog-TwpyAP3m.js → WordCountDialog-DFIWvLrP.js} +1 -1
  21. package/dist/client/assets/check-C3GZh6a1.js +1 -0
  22. package/dist/client/assets/chevron-left-l1oupvGO.js +1 -0
  23. package/dist/client/assets/editor-3rgn4IYh.js +14 -0
  24. package/dist/client/assets/{hard-drive-XHSiS_A7.js → hard-drive-B-NSDVVA.js} +1 -1
  25. package/dist/client/assets/{index-Cd6-F29b.js → index-CNTGCh7t.js} +1 -1
  26. package/dist/client/assets/index-CrlfruX_.css +1 -0
  27. package/dist/client/assets/index-DIM_KiG2.js +12 -0
  28. package/dist/client/assets/katex-D9PXdmFF.css +1 -0
  29. package/dist/client/assets/{key-round-C-CXCWnz.js → key-round-BjL9H8-H.js} +1 -1
  30. package/dist/client/assets/{latexFormatterWorker-DYkYtcFy.js → latexFormatterWorker-BRmsns8a.js} +2 -2
  31. package/dist/client/assets/{minimize-2-BMDPVaF-.js → minimize-2-DDCq8c49.js} +1 -1
  32. package/dist/client/assets/{minus-BIa7-KuM.js → minus-DgKZCT9F.js} +1 -1
  33. package/dist/client/assets/{pdf-BB1XvBIF.js → pdf-DUYcbPMK.js} +1 -1
  34. package/dist/client/assets/{plus-BKDWy4Ui.js → plus-CezUzSIZ.js} +1 -1
  35. package/dist/client/assets/{refresh-cw-Bo7-a7-I.js → refresh-cw-CDFNL-qu.js} +1 -1
  36. package/dist/client/assets/{search-Bz9Ob5mT.js → search-CrDJjHoj.js} +1 -1
  37. package/dist/client/assets/{sigma-DxlHf9gv.js → sigma-DOcJr7VG.js} +1 -1
  38. package/dist/client/assets/spellCheck-BgWyesvf.js +1 -0
  39. package/dist/client/assets/{tags-IMZehjzE.js → tags-BedQ75lh.js} +1 -1
  40. package/dist/client/assets/{type-DTWpFQNQ.js → type-glZNdzZR.js} +1 -1
  41. package/dist/client/assets/{user-plus--aVpd8K6.js → user-plus-gQ6q5Nom.js} +1 -1
  42. package/dist/client/assets/{x-Tbo3aA0J.js → x-CSzFikn2.js} +1 -1
  43. package/dist/client/index.html +6 -4
  44. package/dist/server/app.js +130 -83
  45. package/dist/server/cli.js +4 -2
  46. package/dist/server/compileArtifacts.js +3 -2
  47. package/dist/server/config.js +27 -0
  48. package/dist/server/index.js +4 -2
  49. package/dist/server/instanceLock.js +4 -2
  50. package/dist/server/latexCompletion.js +126 -63
  51. package/dist/server/latexDocumentGraph.js +106 -0
  52. package/dist/server/latexSpellMask.js +3 -4
  53. package/dist/server/pm2.js +3 -2
  54. package/dist/server/projectReferences.js +109 -0
  55. package/dist/server/routes/auth.js +5 -2
  56. package/dist/server/routes/compile.js +2 -2
  57. package/dist/server/routes/projectFiles.js +12 -3
  58. package/dist/server/routes/projectReferences.js +36 -0
  59. package/dist/server/routes/projects.js +5 -0
  60. package/dist/server/routes/system.js +1 -0
  61. package/dist/server/zip.js +2 -16
  62. package/dist/shared/basePath.js +44 -0
  63. package/dist/shared/bibtexReferences.js +135 -0
  64. package/dist/shared/latexCommandSnippets.js +91 -0
  65. package/dist/shared/latexDependencies.js +71 -0
  66. package/dist/shared/latexLiterals.js +215 -0
  67. package/dist/shared/latexReferenceCommands.js +75 -0
  68. package/dist/shared/latexReferences.js +193 -0
  69. package/dist/shared/latexRoot.js +21 -0
  70. package/dist/shared/latexScanner.js +183 -0
  71. package/dist/shared/writingChecks.js +4 -0
  72. package/package.json +11 -4
  73. package/texlite.config.example.json +2 -4
  74. package/dist/client/assets/Dashboard-CoE5ESfb.js +0 -2
  75. package/dist/client/assets/LatexEditor-Bq76v8sO.js +0 -65
  76. package/dist/client/assets/ProjectWorkspace-DqLwkGpT.js +0 -27
  77. package/dist/client/assets/TagManagementDialog-C6KDwtvd.js +0 -1
  78. package/dist/client/assets/check-sZxOOKtS.js +0 -1
  79. package/dist/client/assets/chevron-left-32SrOwa5.js +0 -1
  80. package/dist/client/assets/editor-CiK7TK0p.js +0 -14
  81. package/dist/client/assets/index-BRr3Kuxh.css +0 -1
  82. package/dist/client/assets/index-BjzELSQ-.js +0 -12
  83. package/dist/client/assets/katex-CEK31ho9.css +0 -1
  84. package/dist/client/assets/spellCheck-BfZEnpwY.js +0 -1
@@ -1 +0,0 @@
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-BjzELSQ-.js";import{P as _}from"./plus-BKDWy4Ui.js";import{P as ee,T as ae,X as te}from"./x-Tbo3aA0J.js";import{C as ne}from"./check-sZxOOKtS.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 +0,0 @@
1
- import{c}from"./index-BjzELSQ-.js";const o=c("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);export{o as C};
@@ -1 +0,0 @@
1
- import{c as e}from"./index-BjzELSQ-.js";const t=e("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);export{t as C};