@pixerate/editor 0.23.0 → 0.24.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.
- package/README.md +96 -1
- package/THIRD_PARTY_NOTICES.md +51 -0
- package/dist/agent/index.cjs +9 -8
- package/dist/agent/index.cjs.map +1 -1
- package/dist/agent/index.d.cts +4 -3
- package/dist/agent/index.d.ts +4 -3
- package/dist/agent/index.js +3 -2
- package/dist/agent/index.js.map +1 -1
- package/dist/canvas/index.cjs +1210 -17
- package/dist/canvas/index.cjs.map +1 -1
- package/dist/canvas/index.d.cts +318 -1
- package/dist/canvas/index.d.ts +318 -1
- package/dist/canvas/index.js +1199 -6
- package/dist/canvas/index.js.map +1 -1
- package/dist/{chunk-QBJ22YZR.js → chunk-3CN2WD3X.js} +1354 -206
- package/dist/chunk-3CN2WD3X.js.map +1 -0
- package/dist/{chunk-JJDLPEWL.js → chunk-3LV6RRPH.js} +2 -2
- package/dist/{chunk-MJZBNWG7.js → chunk-5S3Z4PPF.js} +78 -557
- package/dist/chunk-5S3Z4PPF.js.map +1 -0
- package/dist/chunk-664LQYFJ.js +115 -0
- package/dist/chunk-664LQYFJ.js.map +1 -0
- package/dist/{chunk-AA4ZEVCC.cjs → chunk-D27YFC46.cjs} +101 -580
- package/dist/chunk-D27YFC46.cjs.map +1 -0
- package/dist/chunk-D6FH2YAX.cjs +131 -0
- package/dist/chunk-D6FH2YAX.cjs.map +1 -0
- package/dist/{chunk-4SUNJZWB.cjs → chunk-FD4LPFAE.cjs} +48 -200
- package/dist/chunk-FD4LPFAE.cjs.map +1 -0
- package/dist/chunk-FODNLX5N.js +749 -0
- package/dist/chunk-FODNLX5N.js.map +1 -0
- package/dist/{chunk-OYXSKQFR.js → chunk-FPENXAEJ.js} +35 -187
- package/dist/chunk-FPENXAEJ.js.map +1 -0
- package/dist/chunk-HLIMTC6N.js +1 -0
- package/dist/chunk-HLIMTC6N.js.map +1 -0
- package/dist/{chunk-QGHGJ56O.js → chunk-ITBSKI26.js} +1483 -19
- package/dist/chunk-ITBSKI26.js.map +1 -0
- package/dist/{chunk-XDMXXC4Z.cjs → chunk-MA2F5KHF.cjs} +350 -227
- package/dist/chunk-MA2F5KHF.cjs.map +1 -0
- package/dist/{chunk-RIKBJLS2.cjs → chunk-MCSJFWAO.cjs} +1356 -208
- package/dist/chunk-MCSJFWAO.cjs.map +1 -0
- package/dist/chunk-MKA3AHLV.cjs +256 -0
- package/dist/chunk-MKA3AHLV.cjs.map +1 -0
- package/dist/chunk-OLZJXL4R.cjs +749 -0
- package/dist/chunk-OLZJXL4R.cjs.map +1 -0
- package/dist/chunk-OXSV64JX.js +689 -0
- package/dist/chunk-OXSV64JX.js.map +1 -0
- package/dist/chunk-P3RQ5UJE.cjs +689 -0
- package/dist/chunk-P3RQ5UJE.cjs.map +1 -0
- package/dist/chunk-P6ODPZ4W.js +256 -0
- package/dist/chunk-P6ODPZ4W.js.map +1 -0
- package/dist/chunk-PGNZKFQS.js +685 -0
- package/dist/chunk-PGNZKFQS.js.map +1 -0
- package/dist/chunk-PL4JB3BF.cjs +1 -0
- package/dist/chunk-PL4JB3BF.cjs.map +1 -0
- package/dist/{chunk-GVSMRPHB.cjs → chunk-SBCZ6RN5.cjs} +1568 -104
- package/dist/chunk-SBCZ6RN5.cjs.map +1 -0
- package/dist/{chunk-CL37JGFW.cjs → chunk-SML64VJG.cjs} +4 -4
- package/dist/{chunk-CL37JGFW.cjs.map → chunk-SML64VJG.cjs.map} +1 -1
- package/dist/chunk-TNNJXF46.cjs +115 -0
- package/dist/chunk-TNNJXF46.cjs.map +1 -0
- package/dist/chunk-U5HZSFCS.js +131 -0
- package/dist/chunk-U5HZSFCS.js.map +1 -0
- package/dist/{chunk-K3R5NG2D.js → chunk-U5KWZU4X.js} +251 -128
- package/dist/chunk-U5KWZU4X.js.map +1 -0
- package/dist/chunk-XNORY7M6.cjs +685 -0
- package/dist/chunk-XNORY7M6.cjs.map +1 -0
- package/dist/commands/index.d.cts +5 -353
- package/dist/commands/index.d.ts +5 -353
- package/dist/comment-store-BEMgVlAA.d.cts +135 -0
- package/dist/comment-store-BEMgVlAA.d.ts +135 -0
- package/dist/compare/index.cjs +15 -0
- package/dist/compare/index.cjs.map +1 -0
- package/dist/compare/index.d.cts +58 -0
- package/dist/compare/index.d.ts +58 -0
- package/dist/compare/index.js +15 -0
- package/dist/compare/index.js.map +1 -0
- package/dist/{controller-pePCJLT1.d.cts → controller-BhLLAoi8.d.cts} +45 -4
- package/dist/{controller-pePCJLT1.d.ts → controller-BhLLAoi8.d.ts} +45 -4
- package/dist/documents-BQjzJNe2.d.ts +76 -0
- package/dist/documents-KRTPhvst.d.cts +76 -0
- package/dist/extensions/index.cjs +53 -5
- package/dist/extensions/index.cjs.map +1 -1
- package/dist/extensions/index.d.cts +7 -3
- package/dist/extensions/index.d.ts +7 -3
- package/dist/extensions/index.js +52 -4
- package/dist/generation/index.cjs +1373 -0
- package/dist/generation/index.cjs.map +1 -0
- package/dist/generation/index.d.cts +554 -0
- package/dist/generation/index.d.ts +554 -0
- package/dist/generation/index.js +1373 -0
- package/dist/generation/index.js.map +1 -0
- package/dist/grammar/index.cjs +48 -3
- package/dist/grammar/index.cjs.map +1 -1
- package/dist/grammar/index.d.cts +322 -100
- package/dist/grammar/index.d.ts +322 -100
- package/dist/grammar/index.js +54 -9
- package/dist/image-editor/index.cjs +1831 -30
- package/dist/image-editor/index.cjs.map +1 -1
- package/dist/image-editor/index.d.cts +590 -3
- package/dist/image-editor/index.d.ts +590 -3
- package/dist/image-editor/index.js +1807 -6
- package/dist/image-editor/index.js.map +1 -1
- package/dist/{index-CCr_z9kF.d.cts → index-BhJBSm2d.d.cts} +370 -4
- package/dist/{index-Ck6ajwXh.d.ts → index-fJrlkJCd.d.ts} +370 -4
- package/dist/index.cjs +162 -25
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +14 -8
- package/dist/index.d.ts +14 -8
- package/dist/index.js +174 -37
- package/dist/index.js.map +1 -1
- package/dist/migrate-iTlm3a8h.d.cts +112 -0
- package/dist/migrate-iTlm3a8h.d.ts +112 -0
- package/dist/persistence/index.cjs +676 -0
- package/dist/persistence/index.cjs.map +1 -0
- package/dist/persistence/index.d.cts +347 -0
- package/dist/persistence/index.d.ts +347 -0
- package/dist/persistence/index.js +676 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/{registry-D5-R90p0.d.cts → registry-BDe-vlv3.d.ts} +2 -40
- package/dist/registry-D32LpIc4.d.cts +354 -0
- package/dist/{registry-D5-R90p0.d.ts → registry-DnzpgY27.d.cts} +2 -40
- package/dist/registry-evKTP4ls.d.ts +354 -0
- package/dist/schema-DYDGdYL9.d.cts +41 -0
- package/dist/schema-DYDGdYL9.d.ts +41 -0
- package/dist/serializers/index.cjs +4 -3
- package/dist/serializers/index.cjs.map +1 -1
- package/dist/serializers/index.d.cts +2 -1
- package/dist/serializers/index.d.ts +2 -1
- package/dist/serializers/index.js +3 -2
- package/dist/sourcemap-C8AH3MBQ.d.cts +91 -0
- package/dist/sourcemap-DA1Evhrv.d.ts +91 -0
- package/dist/spreadsheet/index.cjs +37 -3
- package/dist/spreadsheet/index.cjs.map +1 -1
- package/dist/spreadsheet/index.d.cts +188 -17
- package/dist/spreadsheet/index.d.ts +188 -17
- package/dist/spreadsheet/index.js +43 -9
- package/dist/{tokens-CyLZmIei.d.cts → tokens-D7yXvUU6.d.cts} +15 -2
- package/dist/{tokens-CyLZmIei.d.ts → tokens-D7yXvUU6.d.ts} +15 -2
- package/dist/{track-changes-BSF58RK0.d.ts → track-changes-BK5sVf4_.d.cts} +18 -136
- package/dist/{track-changes-BSF58RK0.d.cts → track-changes-CDjCrwKe.d.ts} +18 -136
- package/package.json +16 -1
- package/dist/chunk-4SUNJZWB.cjs.map +0 -1
- package/dist/chunk-AA4ZEVCC.cjs.map +0 -1
- package/dist/chunk-AXV2ZW34.cjs +0 -118
- package/dist/chunk-AXV2ZW34.cjs.map +0 -1
- package/dist/chunk-B2ZRLN4S.js +0 -118
- package/dist/chunk-B2ZRLN4S.js.map +0 -1
- package/dist/chunk-GVSMRPHB.cjs.map +0 -1
- package/dist/chunk-K3R5NG2D.js.map +0 -1
- package/dist/chunk-MJZBNWG7.js.map +0 -1
- package/dist/chunk-OYXSKQFR.js.map +0 -1
- package/dist/chunk-QBJ22YZR.js.map +0 -1
- package/dist/chunk-QGHGJ56O.js.map +0 -1
- package/dist/chunk-RIKBJLS2.cjs.map +0 -1
- package/dist/chunk-XDMXXC4Z.cjs.map +0 -1
- /package/dist/{chunk-JJDLPEWL.js.map → chunk-3LV6RRPH.js.map} +0 -0
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/editor/editor/packages/core/dist/index.cjs","../src/controller.ts","../src/import/controller.ts","../src/import/pdf.ts","../src/import/zip-export.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACA;ACnSA,oCAA2D;AAC3D,yCAAsB;AA4Bf,IAAM,iBAAA,EAAN,MAAuB;AAAA,EACZ;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGT;AAAA,EAER,WAAA,CAAY,QAAA,EAAmC,CAAC,CAAA,EAAG;AACjD,IAAA,MAAM;AAAA,MACJ,OAAA;AAAA,MACA,OAAA;AAAA,MACA,cAAA,EAAgB,KAAA;AAAA,MAChB,aAAA,EAAe,KAAA;AAAA,MACf,WAAA,EAAa,CAAC,CAAA;AAAA,MACd,iBAAA;AAAA,MACA,gBAAA;AAAA,MACA,cAAA;AAAA,MACA,iBAAA;AAAA,MACA,GAAG;AAAA,IACL,EAAA,EAAI,OAAA;AAEJ,IAAA,IAAA,CAAK,cAAA,EAAgB,aAAA;AACrB,IAAA,IAAA,CAAK,aAAA,EAAe,YAAA;AACpB,IAAA,IAAA,CAAK,kBAAA,EAAoB,iBAAA;AACzB,IAAA,IAAA,CAAK,iBAAA,EAAmB,gBAAA;AACxB,IAAA,IAAA,CAAK,eAAA,EAAiB,cAAA;AACtB,IAAA,IAAA,CAAK,kBAAA,EAAoB,iBAAA;AAEzB,IAAA,MAAM,eAAA,EACJ,cAAA,GAAiB,OAAO,QAAA,IAAY,SAAA,EAChC,qDAAA,OAA6B,EAAA,EAC7B,aAAA,GAAgB,OAAO,QAAA,IAAY,SAAA,EACjC,oDAAA,OAA4B,EAAA,EAC5B,OAAA;AAER,IAAA,IAAA,CAAK,OAAA,EAAS,IAAI,iBAAA,CAAO;AAAA,MACvB,OAAA,EAAS,QAAA,GAAW,KAAA,CAAA;AAAA,MACpB,OAAA,EAAS,cAAA;AAAA,MACT,UAAA;AAAA,MACA,GAAG,aAAA;AAAA,MACH,QAAA,EAAU,CAAC,KAAA,EAAA,GAAU;AACnB,wBAAA,aAAA,mBAAc,QAAA,0BAAA,CAAW,KAAK,GAAA;AAC9B,QAAA,IAAA,CAAK,YAAA,CAAa,CAAA;AAAA,MACpB,CAAA;AAAA,MACA,iBAAA,EAAmB,CAAC,KAAA,EAAA,GAAU;AAC5B,wBAAA,aAAA,qBAAc,iBAAA,0BAAA,CAAoB,KAAK,GAAA;AACvC,QAAA,IAAA,CAAK,qBAAA,CAAsB,CAAA;AAAA,MAC7B;AAAA,IACF,CAAC,CAAA;AAED,IAAA,GAAA,CAAI,aAAA,EAAe;AACjB,MAAA,IAAA,CAAK,yBAAA,CAA0B,CAAA;AAAA,IACjC;AAEA,IAAA,IAAA,CAAK,gBAAA,EAAkB,IAAA,CAAK,uBAAA,CAAwB,CAAA;AAAA,EACtD;AAAA,EAEQ,yBAAA,CAAA,EAA4B;AAElC,IAAA,MAAM,cAAA,kBAAgB,IAAA,qBAAK,MAAA,qBAAO,OAAA,6BAAS,eAAA;AAC3C,IAAA,GAAA,CAAI,aAAA,EAAe,aAAA,CAAc,cAAA,EAAgB,IAAA;AACjD,IAAA,MAAM,WAAA,kBAAa,IAAA,qBAAK,MAAA,qBAAO,gBAAA,+BAAkB,UAAA,uBAAW,IAAA;AAAA,MAC1D,CAAC,GAAA,EAAA,GAAQ,GAAA,CAAI,KAAA,IAAS;AAAA,IACxB,GAAA;AACA,IAAA,GAAA,CAAI,UAAA,EAAY,UAAA,CAAW,OAAA,CAAQ,YAAA,EAAc,IAAA;AAEjD,IAAA,IAAA,CAAK,MAAA,CAAO,UAAA,CAAW;AAAA,MACrB,WAAA,EAAa;AAAA,QACX,GAAG,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQ,WAAA;AAAA,QACvB,mBAAA,EAAqB,CACnB,IAAA,EACA,OAAA,EACA,MAAA,EACA,IAAA,EAAA,GACG;AACH,UAAA,MAAM,OAAA,kBACJ,OAAA,+BAAS,GAAA,+BAAK,IAAA,+BAAM,SAAA,mBACpB,OAAA,+BAAS,SAAA,mBACT,IAAA,+BAAM,KAAA,+BAAO,SAAA,GACb,IAAA,CAAK,MAAA,CAAO,MAAA;AAEd,UAAA,GAAA,CAAI,CAAC,MAAA,EAAQ,OAAO,YAAA,CAAM,KAAA;AAE1B,UAAA,OAAO,gDAAA,IAAiB,EAAM,MAAM,CAAA;AAAA,QACtC;AAAA,MACF;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AAAA,EAEQ,YAAA,CAAA,EAAe;AACrB,IAAA,GAAA,CAAI,IAAA,CAAK,cAAA,GAAiB,IAAA,CAAK,kBAAA,GAAqB,IAAA,CAAK,cAAA,EAAgB;AACvE,MAAA,MAAM,KAAA,EAAO,IAAA,CAAK,YAAA,CAAa,CAAA;AAC/B,sBAAA,IAAA,uBAAK,iBAAA,4BAAA,CAAoB,IAAI,GAAA;AAE7B,MAAA,GAAA,CAAI,IAAA,CAAK,cAAA,EAAgB;AACvB,QAAA,MAAM,OAAA,EAAS,8CAAA,IAAmB,CAAA;AAClC,QAAA,IAAA,CAAK,cAAA,CAAe,MAAM,CAAA;AAAA,MAC5B;AAAA,IACF;AAEA,IAAA,GAAA,CAAI,IAAA,CAAK,aAAA,GAAgB,IAAA,CAAK,gBAAA,EAAkB;AAC9C,MAAA,MAAM,SAAA,EAAW,IAAA,CAAK,WAAA,CAAY,CAAA;AAClC,sBAAA,IAAA,uBAAK,gBAAA,4BAAA,CAAmB,QAAQ,GAAA;AAAA,IAClC;AAAA,EACF;AAAA,EAEQ,qBAAA,CAAA,EAAwB;AAC9B,IAAA,GAAA,CAAI,IAAA,CAAK,iBAAA,EAAmB;AAC1B,MAAA,MAAM,EAAE,IAAA,EAAM,GAAG,EAAA,EAAI,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,SAAA;AACvC,MAAA,IAAA,CAAK,iBAAA,CAAkB,EAAE,IAAA,EAAM,GAAG,CAAC,CAAA;AAAA,IACrC;AAAA,EACF;AAAA,EAEO,YAAA,CAAA,EAAuB;AAC5B,IAAA,OAAO,6CAAA,IAAc,CAAK,MAAM,CAAA;AAAA,EAClC;AAAA,EAEO,YAAA,CAAa,IAAA,EAAc,WAAA,EAAa,IAAA,EAAM;AACnD,IAAA,MAAM,KAAA,EAAO,qDAAA,IAA0B,CAAA;AACvC,IAAA,IAAA,CAAK,MAAA,CAAO,QAAA,CAAS,UAAA,CAAW,IAAA,EAAM,UAAU,CAAA;AAAA,EAClD;AAAA,EAEO,WAAA,CAAA,EAAsB;AAC3B,IAAA,OAAO,iDAAA,IAAkB,CAAK,MAAM,CAAA;AAAA,EACtC;AAAA,EAEO,WAAA,CAAY,QAAA,EAAkB,WAAA,EAAa,IAAA,EAAM;AACtD,IAAA,GAAA,iBAAI,IAAA,uBAAK,MAAA,uBAAO,OAAA,+BAAS,QAAA,+BAAU,QAAA,EAAQ;AACzC,MAAA,IAAA,CAAK,MAAA,CAAO,QAAA,CAAS,UAAA,CAAW,QAAA,EAAU,UAAU,CAAA;AAAA,IACtD,EAAA,KAAO;AACL,MAAA,MAAM,KAAA,EAAO,oDAAA,QAA6B,CAAA;AAC1C,MAAA,IAAA,CAAK,MAAA,CAAO,QAAA,CAAS,UAAA,CAAW,IAAA,EAAM,UAAU,CAAA;AAAA,IAClD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,eAAA,CAAgB,IAAA,EAAc,EAAA,EAAY,IAAA,EAAc;AAC9D,IAAA,MAAM,EAAE,KAAA,EAAO,KAAK,EAAA,EAAI,IAAA,CAAK,MAAA;AAC7B,IAAA,MAAM,GAAA,EAAK,IAAA,CAAK,QAAA,CAAS,IAAI,EAAA,GAAK,IAAA,CAAK,QAAA,CAAS,IAAI,EAAA,EAChD,KAAA,CAAM,EAAA,CAAG,OAAA,CAAQ,IAAA,EAAM,EAAA,EAAI,gDAAA,IAAiB,EAAM,KAAA,CAAM,MAAM,CAAC,EAAA,EAC/D,KAAA,EACE,KAAA,CAAM,EAAA,CAAG,UAAA,CAAW,IAAA,EAAM,IAAA,EAAM,EAAE,EAAA,EAClC,KAAA,CAAM,EAAA,CAAG,MAAA,CAAO,IAAA,EAAM,EAAE,CAAA;AAC9B,IAAA,IAAA,CAAK,QAAA,CAAS,EAAA,CAAG,cAAA,CAAe,CAAC,CAAA;AAAA,EACnC;AAAA;AAAA,EAGO,UAAA,CAAW,IAAA,EAAc;AAC9B,IAAA,MAAM,EAAE,IAAA,EAAM,GAAG,EAAA,EAAI,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,SAAA;AACvC,IAAA,IAAA,CAAK,eAAA,CAAgB,IAAA,EAAM,EAAA,EAAI,IAAI,CAAA;AAAA,EACrC;AAAA;AAAA,EAGO,YAAA,CAAa,GAAA,EAAa,IAAA,EAAc;AAC7C,IAAA,IAAA,CAAK,eAAA,CAAgB,GAAA,EAAK,GAAA,EAAK,IAAI,CAAA;AACnC,IAAA,IAAA,CAAK,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,CAAA;AAAA,EAC7B;AAAA;AAAA,EAGO,YAAA,CAAa,IAAA,EAAc,EAAA,EAAY,IAAA,EAAc;AAC1D,IAAA,IAAA,CAAK,eAAA,CAAgB,IAAA,EAAM,EAAA,EAAI,IAAI,CAAA;AACnC,IAAA,IAAA,CAAK,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,CAAA;AAAA,EAC7B;AAAA,EAEO,uBAAA,CAAA,EAAkC;AACvC,IAAA,GAAA,CAAI,IAAA,CAAK,aAAA,EAAe,OAAO,IAAA,CAAK,YAAA,CAAa,CAAA;AACjD,IAAA,GAAA,CAAI,IAAA,CAAK,YAAA,EAAc,OAAO,IAAA,CAAK,WAAA,CAAY,CAAA;AAC/C,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQ,CAAA;AAAA,EAC7B;AAAA,EAEO,OAAA,CAAA,EAAmB;AACxB,IAAA,OAAO,IAAA,CAAK,uBAAA,CAAwB,EAAA,IAAM,IAAA,CAAK,eAAA;AAAA,EACjD;AAAA,EAEO,aAAA,CAAc,OAAA,EAAwB;AAC3C,IAAA,IAAA,CAAK,gBAAA,EACH,QAAA,IAAY,KAAA,EAAA,EAAY,QAAA,EAAU,IAAA,CAAK,uBAAA,CAAwB,CAAA;AAAA,EACnE;AAAA,EAEO,UAAA,CAAA,EAAmB;AACxB,IAAA,IAAA,CAAK,aAAA,CAAc,CAAA;AAAA,EACrB;AAAA,EAEO,kBAAA,CAAA,EAA6B;AAClC,IAAA,OAAO,IAAA,CAAK,eAAA;AAAA,EACd;AAAA,EAEO,OAAA,CAAA,EAAU;AACf,IAAA,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQ,CAAA;AAAA,EACtB;AACF,CAAA;AAKO,SAAS,YAAA,CACd,QAAA,EAAmC,CAAC,CAAA,EAClB;AAClB,EAAA,OAAO,IAAI,gBAAA,CAAiB,OAAO,CAAA;AACrC;ADkNA;AACA;AElbO,SAAS,eAAA,CAAgB,QAAA,EAAmD,CAAC,CAAA,EAAoB;AACtG,EAAA,GAAA,CAAI,OAAO,SAAA,IAAa,WAAA,EAAa,OAAO,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAC,CAAA;AAC9D,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAA,GAAY;AAC9B,IAAA,MAAM,MAAA,EAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAC5C,IAAA,KAAA,CAAM,KAAA,EAAO,MAAA;AACb,IAAA,KAAA,CAAM,OAAA,mBAAS,OAAA,CAAQ,MAAA,UAAU,uCAAA,CAAsB,MAAA,CAAO,UAAU,GAAA;AACxE,IAAA,KAAA,CAAM,SAAA,mBAAW,OAAA,CAAQ,QAAA,UAAY,MAAA;AACrC,IAAA,KAAA,CAAM,KAAA,CAAM,QAAA,EAAU,MAAA;AACtB,IAAA,MAAM,OAAA,EAAS,CAAC,KAAA,EAAA,GAAkB;AAChC,MAAA,KAAA,CAAM,MAAA,CAAO,CAAA;AACb,MAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,IACf,CAAA;AACA,IAAA,KAAA,CAAM,gBAAA,CAAiB,QAAA,EAAU,CAAA,EAAA,GAAM,MAAA,CAAO,KAAA,CAAM,IAAA,kBAAK,KAAA,CAAM,KAAA,UAAS,CAAC,GAAC,CAAC,CAAA,EAAG,EAAE,IAAA,EAAM,KAAK,CAAC,CAAA;AAC5F,IAAA,KAAA,CAAM,gBAAA,CAAiB,QAAA,EAAU,CAAA,EAAA,GAAM,MAAA,CAAO,CAAC,CAAC,CAAA,EAAG,EAAE,IAAA,EAAM,KAAK,CAAC,CAAA;AACjE,IAAA,QAAA,CAAS,IAAA,CAAK,WAAA,CAAY,KAAK,CAAA;AAC/B,IAAA,KAAA,CAAM,KAAA,CAAM,CAAA;AAAA,EACd,CAAC,CAAA;AACH;AAqBO,IAAM,qBAAA,YAAN,MAA2B;AAAA,EAKhC,WAAA,CACmB,SAAA,EACT,QAAA,EAAuC,CAAC,CAAA,EAChD;AAFiB,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACT,IAAA,IAAA,CAAA,QAAA,EAAA,OAAA;AAAA,EACP;AAAA,EAFgB;AAAA,EACT;AAAA,iBANF,MAAA,EAAyB,EAAE,WAAA,EAAa,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,YAAA,EAAc,CAAC,EAAE,EAAA;AAAA,kBACpE,UAAA,kBAAY,IAAI,GAAA,CAAsC,EAAA;AAAA,kBAC/D,QAAA,EAAU,EAAA;AAAA,EAOlB,UAAA,CAAW,OAAA,EAA4C;AACrD,IAAA,IAAA,CAAK,QAAA,EAAU,OAAA;AAAA,EACjB;AAAA;AAAA,EAGA,IAAI,MAAA,CAAA,EAAiB;AACnB,IAAA,OAAA,kBAAQ,IAAA,CAAK,OAAA,CAAQ,QAAA,UAAY,yCAAA,CAAA,CAAuB,MAAA,CAAO,UAAU,CAAA;AAAA,EAC3E;AAAA,kBAEA,SAAA,EAAW,CAAA,EAAA,GAAuB,IAAA,CAAK,MAAA;AAAA,kBAEvC,UAAA,EAAY,CAAC,QAAA,EAAA,GAA6D;AACxE,IAAA,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,QAAQ,CAAA;AAC3B,IAAA,OAAO,CAAA,EAAA,GAAM;AACX,MAAA,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,QAAQ,CAAA;AAAA,IAChC,CAAA;AAAA,EACF,EAAA;AAAA,EAEQ,QAAA,CAAS,KAAA,EAAiC;AAChD,IAAA,IAAA,CAAK,MAAA,EAAQ,EAAE,GAAG,IAAA,CAAK,KAAA,EAAO,GAAG,MAAM,CAAA;AACvC,IAAA,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,CAAC,QAAA,EAAA,GAAa,QAAA,CAAS,IAAA,CAAK,KAAK,CAAC,CAAA;AAAA,EAC3D;AAAA;AAAA,kBAGA,YAAA,EAAc,MAAA,CACZ,KAAA,EACA,EAAA,EAAA,GAC6C;AAC7C,IAAA,MAAM,OAAA,EAAS,IAAA,CAAK,SAAA,CAAU,CAAA;AAC9B,IAAA,MAAM,KAAA,EAAO,KAAA,CAAM,IAAA,CAAK,KAA4B,CAAA;AACpD,IAAA,GAAA,CAAI,CAAC,OAAA,GAAU,IAAA,CAAK,OAAA,IAAW,CAAA,EAAG,OAAO,CAAC,CAAA;AAC1C,IAAA,IAAA,CAAK,OAAA,EAAA;AACL,IAAA,IAAA,CAAK,QAAA,CAAS,EAAE,WAAA,EAAa,IAAA,EAAM,KAAA,EAAO,KAAK,CAAC,CAAA;AAChD,IAAA,IAAI,MAAA,EAAsB,IAAA;AAC1B,IAAA,IAAI;AACF,MAAA,MAAM,SAAA,EAAW,MAAM,qDAAA,MAAsB,EAAQ,IAAA,EAAM;AAAA,QACzD,GAAG,IAAA,CAAK,OAAA;AAAA,QACR,EAAA;AAAA,QACA,OAAA,EAAS,CAAC,GAAA,EAAK,IAAA,EAAA,GAAS;AACtB,UAAA,MAAA,EAAQ,GAAA;AACR,0BAAA,IAAA,uBAAK,OAAA,uBAAQ,OAAA,4BAAA,CAAU,GAAA,EAAK,IAAI,GAAA;AAAA,QAClC;AAAA,MACF,CAAC,CAAA;AACD,MAAA,IAAA,CAAK,OAAA,EAAA;AACL,MAAA,IAAA,CAAK,QAAA,CAAS,EAAE,WAAA,EAAa,IAAA,CAAK,QAAA,EAAU,CAAA,EAAG,KAAA,EAAO,YAAA,EAAc,SAAS,CAAC,CAAA;AAC9E,MAAA,OAAO,QAAA;AAAA,IACT,EAAA,MAAA,CAAS,GAAA,EAAK;AACZ,MAAA,IAAA,CAAK,OAAA,EAAA;AACL,MAAA,IAAA,CAAK,QAAA,CAAS,EAAE,WAAA,EAAa,IAAA,CAAK,QAAA,EAAU,CAAA,EAAG,KAAA,EAAO,IAAA,WAAe,MAAA,EAAQ,IAAA,EAAM,IAAI,KAAA,CAAM,MAAA,CAAO,GAAG,CAAC,EAAE,CAAC,CAAA;AAC3G,MAAA,OAAO,CAAC,CAAA;AAAA,IACV;AAAA,EACF,EAAA;AAAA;AAAA,kBAGA,eAAA,EAAiB,MAAA,CAAA,EAAA,GAAsD;AACrE,IAAA,MAAM,MAAA,EAAQ,MAAM,eAAA,CAAgB,EAAE,MAAA,EAAQ,IAAA,CAAK,MAAA,EAAQ,QAAA,EAAU,IAAA,CAAK,OAAA,CAAQ,SAAS,CAAC,CAAA;AAC5F,IAAA,OAAO,IAAA,CAAK,WAAA,CAAY,KAAK,CAAA;AAAA,EAC/B,EAAA;AACF,UAAA;AAEO,SAAS,0BAAA,CACd,SAAA,EACA,OAAA,EACsB;AACtB,EAAA,OAAO,IAAI,oBAAA,CAAqB,SAAA,EAAW,OAAO,CAAA;AACpD;AFmZA;AACA;AGvcA,IAAM,WAAA,EAAa,CAAC,IAAA,EAAA,GAClB,OAAQ,IAAA,CAAuB,IAAA,IAAQ,QAAA;AAEzC,SAAS,MAAA,CAAO,MAAA,EAA0B;AACxC,EAAA,GAAA,CAAI,CAAC,MAAA,CAAO,MAAA,EAAQ,OAAO,CAAA;AAC3B,EAAA,MAAM,OAAA,EAAS,CAAC,GAAG,MAAM,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,EAAA,GAAM,EAAA,EAAI,CAAC,CAAA;AAC/C,EAAA,MAAM,IAAA,EAAM,MAAA,CAAO,OAAA,GAAU,CAAA;AAC7B,EAAA,OAAO,MAAA,CAAO,OAAA,EAAS,EAAA,EAAI,MAAA,CAAO,GAAG,EAAA,EAAA,CAAK,MAAA,CAAO,IAAA,EAAM,CAAC,EAAA,EAAI,MAAA,CAAO,GAAG,CAAA,EAAA,EAAK,CAAA;AAC7E;AAEA,SAAS,UAAA,CAAW,KAAA,EAAgE;AAClF,EAAA,MAAM,MAAA,EAAgB,CAAC,CAAA;AACvB,EAAA,IAAI,QAAA,EAA6C,IAAA;AACjD,EAAA,IAAI,UAAA,EAAY,KAAA;AAChB,EAAA,IAAA,CAAA,MAAW,KAAA,GAAQ,KAAA,EAAO;AACxB,IAAA,GAAA,CAAI,CAAC,UAAA,CAAW,IAAI,CAAA,EAAG,QAAA;AACvB,IAAA,MAAM,EAAA,mCAAI,IAAA,uBAAK,SAAA,8BAAA,CAAY,CAAC,GAAA,UAAK,GAAA;AACjC,IAAA,MAAM,EAAA,mCAAY,IAAA,uBAAK,SAAA,8BAAA,CAAY,CAAC,GAAA,UAAA,kCAAM,OAAA,+BAAS,GAAA,UAAK,GAAA,GAAA;AACxD,IAAA,MAAM,OAAA,EAAiB,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,GAAA,kCAAI,IAAA,uBAAK,SAAA,8BAAA,CAAY,CAAC,GAAA,UAAK,GAAC,EAAA,mBAAK,OAAA,+BAAS,SAAA,GAAU,EAAA;AAC/F,IAAA,MAAM,UAAA,EAAY,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,OAAA,EAAS,GAAG,CAAA;AAC1C,IAAA,GAAA,CAAI,CAAC,IAAA,CAAK,GAAA,EAAK;AAEb,MAAA,GAAA,CAAI,IAAA,CAAK,MAAA,EAAQ;AACf,QAAA,GAAA,CAAI,UAAA,GAAa,OAAA,EAAS,OAAA,CAAQ,WAAA,EAAa,IAAA;AAC/C,QAAA,UAAA,EAAY,IAAA;AAAA,MACd;AACA,MAAA,QAAA;AAAA,IACF;AACA,IAAA,GAAA,CAAI,CAAC,QAAA,GAAW,UAAA,GAAa,IAAA,CAAK,GAAA,CAAI,EAAA,EAAI,OAAA,CAAQ,CAAC,EAAA,EAAI,SAAA,EAAW;AAChE,MAAA,QAAA,EAAU,EAAE,IAAA,EAAM,EAAA,EAAI,CAAA,EAAG,MAAA,EAAQ,UAAA,EAAY,MAAM,CAAA;AACnD,MAAA,KAAA,CAAM,IAAA,CAAK,OAAO,CAAA;AAAA,IACpB,EAAA,KAAA,GAAA,CAAW,OAAA,CAAQ,KAAA,IAAS,KAAA,EAAA,GAAa,EAAA,EAAI,OAAA,CAAQ,KAAA,EAAO,OAAA,EAAS,IAAA,EAAM;AAEzE,MAAA,GAAA,CAAI,CAAC,KAAA,CAAM,IAAA,CAAK,OAAA,CAAQ,IAAI,EAAA,GAAK,CAAC,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,GAAG,CAAA,EAAG,OAAA,CAAQ,KAAA,GAAQ,GAAA;AAAA,IAC1E;AACA,IAAA,OAAA,CAAQ,KAAA,GAAQ,IAAA,CAAK,GAAA;AACrB,IAAA,OAAA,CAAQ,OAAA,EAAS,IAAA,CAAK,GAAA,CAAI,OAAA,CAAQ,MAAA,EAAQ,MAAM,CAAA;AAChD,IAAA,OAAA,CAAQ,KAAA,EAAO,IAAA,CAAK,MAAA,IAAU,KAAA,EAAA,EAAY,EAAA,EAAI,IAAA,CAAK,MAAA,EAAQ,KAAA,CAAA;AAC3D,IAAA,UAAA,EAAY,CAAC,CAAC,IAAA,CAAK,MAAA;AAAA,EACrB;AACA,EAAA,OAAO,KAAA;AACT;AAMO,SAAS,wBAAA,CACd,KAAA,EACA,QAAA,EAA0B,CAAC,CAAA,EACjB;AACV,EAAA,MAAM,MAAA,EAAQ,UAAA,CAAW,KAAK,CAAA,CAAE,MAAA,CAAO,CAAC,IAAA,EAAA,GAAS,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,EAAA,GAAK,IAAA,CAAK,UAAU,CAAA;AACpF,EAAA,MAAM,KAAA,EAAiB,CAAC,CAAA;AACxB,EAAA,IAAA,CAAA,IAAS,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,KAAA,CAAM,MAAA,EAAQ,CAAA,EAAA,EAAK;AACrC,IAAA,MAAM,IAAA,EAAM,KAAA,CAAM,EAAA,EAAI,CAAC,CAAA,CAAE,EAAA,EAAI,KAAA,CAAM,CAAC,CAAA,CAAE,CAAA;AACtC,IAAA,GAAA,CAAI,IAAA,EAAM,CAAA,EAAG,IAAA,CAAK,IAAA,CAAK,GAAG,CAAA;AAAA,EAC5B;AACA,EAAA,MAAM,QAAA,EAAU,MAAA,CAAO,IAAI,CAAA;AAC3B,EAAA,MAAM,OAAA,mBAAS,OAAA,CAAQ,YAAA,UAAgB,KAAA;AAEvC,EAAA,MAAM,WAAA,EAAuB,CAAC,CAAA;AAC9B,EAAA,IAAI,QAAA,EAAoB,CAAC,CAAA;AACzB,EAAA,MAAM,MAAA,EAAQ,CAAA,EAAA,GAAM;AAClB,IAAA,MAAM,KAAA,EAAO,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,CAAE,OAAA,CAAQ,MAAA,EAAQ,GAAG,CAAA,CAAE,IAAA,CAAK,CAAA;AACzD,IAAA,GAAA,CAAI,IAAA,EAAM,UAAA,CAAW,IAAA,CAAK,IAAI,CAAA;AAC9B,IAAA,QAAA,EAAU,CAAC,CAAA;AAAA,EACb,CAAA;AACA,EAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,EAAM,CAAA,EAAA,GAAM;AACzB,IAAA,GAAA,CAAI,EAAA,EAAI,CAAA,EAAG;AACT,MAAA,MAAM,KAAA,EAAO,KAAA,CAAM,EAAA,EAAI,CAAC,CAAA;AACxB,MAAA,MAAM,IAAA,EAAM,IAAA,CAAK,EAAA,EAAI,IAAA,CAAK,CAAA;AAC1B,MAAA,MAAM,OAAA,EAAS,QAAA,EAAU,EAAA,EAAI,IAAA,EAAM,QAAA,EAAU,OAAA,EAAS,IAAA,EAAM,IAAA,CAAK,OAAA,EAAS,GAAA;AAE1E,MAAA,GAAA,CAAI,IAAA,CAAK,WAAA,GAAc,OAAA,GAAU,IAAA,EAAM,CAAC,IAAA,CAAK,OAAA,EAAS,GAAA,EAAK,KAAA,CAAM,CAAA;AAAA,IACnE;AACA,IAAA,MAAM,KAAA,EAAO,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,CAAA;AAC5B,IAAA,GAAA,CAAI,CAAC,IAAA,EAAM,MAAA;AACX,IAAA,GAAA,CAAI,OAAA,CAAQ,OAAA,GAAU,MAAA,CAAO,IAAA,CAAK,OAAA,CAAQ,OAAA,CAAQ,OAAA,EAAS,CAAC,CAAC,EAAA,GAAK,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA,EAAG;AAErF,MAAA,OAAA,CAAQ,OAAA,CAAQ,OAAA,EAAS,CAAC,EAAA,EAAI,OAAA,CAAQ,OAAA,CAAQ,OAAA,EAAS,CAAC,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,CAAA,CAAE,EAAA,EAAI,IAAA;AAAA,IAC3E,EAAA,KAAO;AACL,MAAA,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AACD,EAAA,KAAA,CAAM,CAAA;AACN,EAAA,OAAO,UAAA;AACT;AAGO,SAAS,sBAAA,CAAuB,KAAA,EAAkB,QAAA,EAA4B,CAAC,CAAA,EAA0B;AAC9G,EAAA,OAAO;AAAA,IACL,EAAA,mBAAI,OAAA,CAAQ,EAAA,UAAM,OAAA;AAAA,IAClB,KAAA,EAAO,KAAA;AAAA,IACP,SAAA,EAAW,CAAC,iBAAiB,CAAA;AAAA,IAC7B,UAAA,EAAY,CAAC,MAAM,CAAA;AAAA,IACnB,MAAA,EAAQ,UAAA;AAAA,IACR,MAAM,MAAA,CAAO,MAAA,EAAQ,OAAA,EAAS;AAE5B,MAAA,MAAM,KAAA,EAAO,IAAI,UAAA,CAAA,CAAY,MAAM,OAAA,CAAQ,eAAA,CAAgB,CAAA,CAAA,CAAG,KAAA,CAAM,CAAC,CAAC,CAAA;AACtE,MAAA,MAAM,IAAA,EAAM,MAAM,KAAA,CAAM,WAAA,CAAY,EAAE,GAAG,OAAA,CAAQ,cAAA,EAAgB,KAAK,CAAC,CAAA,CAAE,OAAA;AACzE,MAAA,MAAM,WAAA,EAAuB,CAAC,CAAA;AAC9B,MAAA,IAAI;AACF,QAAA,MAAM,MAAA,EAAQ,IAAA,CAAK,GAAA,CAAI,GAAA,CAAI,QAAA,mBAAU,OAAA,CAAQ,QAAA,UAAY,UAAQ,CAAA;AACjE,QAAA,IAAA,CAAA,IAAS,EAAA,EAAI,CAAA,EAAG,EAAA,GAAK,KAAA,EAAO,CAAA,EAAA,EAAK;AAC/B,UAAA,MAAM,KAAA,EAAO,MAAM,GAAA,CAAI,OAAA,CAAQ,CAAC,CAAA;AAChC,UAAA,MAAM,QAAA,EAAU,MAAM,IAAA,CAAK,cAAA,CAAe,CAAA;AAC1C,UAAA,UAAA,CAAW,IAAA,CAAK,GAAG,wBAAA,CAAyB,OAAA,CAAQ,KAAA,EAAO,OAAO,CAAC,CAAA;AACnE,0BAAA,IAAA,uBAAK,OAAA,4BAAA,CAAU,GAAA;AAAA,QACjB;AAAA,MACF,EAAA,QAAE;AACA,QAAA,sBAAM,GAAA,uBAAI,OAAA,4BAAA,CAAU,GAAA;AAAA,MACtB;AACA,MAAA,MAAM,KAAA,EAAO,UAAA,CAAW,IAAA,CAAK,IAAI,CAAA;AACjC,MAAA,OAAO,EAAE,IAAA,EAAM,wDAAA,IAA6B,CAAA,EAAG,KAAK,CAAA;AAAA,IACtD;AAAA,EACF,CAAA;AACF;AHsbA;AACA;AI5kBA,IAAM,YAAA,EAAc,qCAAA;AAEpB,IAAM,SAAA,EAAW,CAAC,IAAA,EAAA,GAAiB,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,WAAA,CAAY,GAAG,EAAA,EAAI,CAAC,CAAA;AACvE,IAAM,KAAA,EAAO,CAAC,IAAA,EAAA,GAAiB,IAAA,CAAK,OAAA,CAAQ,WAAA,EAAa,EAAE,CAAA;AAGpD,SAAS,aAAA,CAAc,IAAA,EAAsB;AAClD,EAAA,MAAM,MAAA,EAAQ,IAAA,CAAK,QAAA,CAAS,IAAI,CAAC,CAAA,CAC9B,OAAA,CAAQ,mBAAA,EAAqB,EAAE,CAAA,CAC/B,OAAA,CAAQ,OAAA,EAAS,GAAG,CAAA,CACpB,IAAA,CAAK,CAAA;AACR,EAAA,OAAO,MAAA,GAAS,QAAA,CAAS,IAAI,CAAA;AAC/B;AAMO,SAAS,iBAAA,CAAkB,KAAA,EAAoC;AACpE,EAAA,MAAM,QAAA,EAAU,CAAC,IAAA,EAAA,GAAiB,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,QAAA,CAAS,IAAI,CAAC,CAAC,CAAA;AACvE,EAAA,MAAM,MAAA,EAAQ,CAAC,IAAA,EAAA,GAAiB,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,MAAA;AAChD,EAAA,OAAO,CAAC,GAAG,KAAK,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,EAAA,GAAM;AAC/B,IAAA,MAAM,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAA;AACpB,IAAA,MAAM,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAA;AACpB,IAAA,GAAA,CAAI,GAAA,IAAO,EAAA,EAAI,OAAO,GAAA,EAAK,CAAA,EAAA,EAAK,CAAA;AAChC,IAAA,GAAA,CAAI,GAAA,GAAM,GAAA,GAAM,KAAA,CAAM,CAAC,EAAA,IAAM,KAAA,CAAM,CAAC,CAAA,EAAG,OAAO,KAAA,CAAM,CAAC,EAAA,EAAI,KAAA,CAAM,CAAC,CAAA;AAChE,IAAA,OAAO,CAAA,CAAE,aAAA,CAAc,CAAA,EAAG,KAAA,CAAA,EAAW,EAAE,OAAA,EAAS,IAAA,EAAM,WAAA,EAAa,OAAO,CAAC,CAAA;AAAA,EAC7E,CAAC,CAAA;AACH;AAEA,IAAM,OAAA,EAAS,CAAC,IAAA,EAAA,GACd,IAAA,CAAK,UAAA,CAAW,WAAW,EAAA,GAAK,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAA,GAAY,OAAA,CAAQ,UAAA,CAAW,GAAG,CAAC,CAAA;AAGpF,SAAS,sBAAA,CAAuB,QAAA,EAA4B,CAAC,CAAA,EAA0B;AAC5F,EAAA,MAAM,GAAA,mBAAK,OAAA,CAAQ,EAAA,UAAM,OAAA;AACzB,EAAA,OAAO;AAAA,IACL,EAAA;AAAA,IACA,KAAA,EAAO,kBAAA;AAAA,IACP,SAAA,EAAW,CAAC,iBAAA,EAAmB,8BAA8B,CAAA;AAAA,IAC7D,UAAA,EAAY,CAAC,MAAM,CAAA;AAAA,IACnB,MAAA,EAAQ,UAAA;AAAA,IACR,MAAM,MAAA,CAAO,MAAA,EAAQ,OAAA,EAAqC;AACxD,MAAA,MAAM,SAAA,oCAAW,OAAA,CAAQ,QAAA,UAAY,OAAA,CAAQ,UAAA,UAAY,yCAAA;AACzD,MAAA,MAAM,IAAA,EAAM,MAAM,uCAAA,MAAc,OAAA,CAAQ,eAAA,CAAgB,CAAA,EAAG;AAAA,QACzD,YAAA,EAAc,IAAA,EAAM,KAAA,EAAO,IAAA;AAAA,QAC3B,UAAA,EAAY,GAAA;AAAA,QACZ,GAAG,OAAA,CAAQ;AAAA,MACb,CAAC,CAAA;AACD,MAAA,MAAM,SAAA,mBAAW,OAAA,CAAQ,QAAA,UAAY,KAAA;AACrC,MAAA,MAAM,MAAA,mBAAQ,OAAA,CAAQ,YAAA,UAAgB,GAAA;AACtC,MAAA,MAAM,MAAA,EAAoC,CAAC,CAAA;AAC3C,MAAA,MAAM,QAAA,EAAwC,CAAC,CAAA;AAC/C,MAAA,IAAI,KAAA,EAAO,EAAA;AACX,MAAA,IAAI,KAAA,EAAO,EAAA;AAEX,MAAA,MAAM,MAAA,EAAQ,GAAA,CAAI,OAAA,CAAQ,MAAA,CAAO,CAAC,KAAA,EAAA,GAAU,CAAC,KAAA,CAAM,WAAW,CAAA,CAAE,GAAA,CAAI,CAAC,KAAA,EAAA,GAAU,KAAA,CAAM,IAAI,CAAA;AACzF,MAAA,IAAA,CAAA,MAAW,KAAA,GAAQ,iBAAA,CAAkB,KAAK,CAAA,EAAG;AAC3C,QAAA,GAAA,CAAI,MAAA,CAAO,IAAI,CAAA,EAAG,QAAA;AAClB,QAAA,MAAM,QAAA,EAAU,QAAA,CAAS,IAAA,CAAK,EAAE,QAAA,EAAU,IAAA,EAAM,MAAA,EAAQ,WAAW,CAAC,CAAA;AACpE,QAAA,GAAA,CAAI,CAAC,OAAA,EAAS;AACZ,UAAA,OAAA,CAAQ,IAAA,CAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,mBAAmB,CAAC,CAAA;AACjD,UAAA,QAAA;AAAA,QACF;AACA,QAAA,GAAA,CAAI,OAAA,CAAQ,GAAA,IAAO,GAAA,GAAM,OAAA,CAAQ,UAAA,CAAW,IAAA,CAAK,CAAC,GAAA,EAAA,GAAQ,GAAA,CAAI,WAAA,CAAY,EAAA,IAAM,MAAM,CAAA,EAAG;AACvF,UAAA,OAAA,CAAQ,IAAA,CAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,iBAAiB,CAAC,CAAA;AAC/C,UAAA,QAAA;AAAA,QACF;AACA,QAAA,GAAA,CAAI,KAAA,CAAM,OAAA,GAAU,QAAA,EAAU;AAC5B,UAAA,OAAA,CAAQ,IAAA,CAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,qBAAqB,CAAC,CAAA;AACnD,UAAA,QAAA;AAAA,QACF;AACA,QAAA,IAAI;AACF,UAAA,MAAM,QAAA,EAAU,MAAM,QAAA,CAAS,UAAA,CAA2B,MAAM,GAAA,CAAI,IAAA,CAAK,IAAI,CAAA,EAAG;AAAA,YAC9E,QAAA,EAAU,IAAA;AAAA,YACV,SAAA,EAAW,OAAA,CAAQ;AAAA,UACrB,CAAC,CAAA;AACD,UAAA,MAAM,MAAA,EAAQ,aAAA,CAAc,IAAI,CAAA;AAChC,UAAA,GAAA,CAAI,OAAA,CAAQ,SAAA,IAAa,KAAA,EAAO;AAC9B,YAAA,KAAA,GAAQ,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA,EAAI,0CAAA,KAAgB,CAAC,CAAA,GAAA,EAAM,KAAK,CAAA,CAAA,CAAA;AAClD,YAAA,KAAA,GAAQ,CAAA,EAAA;AAA2B;AAC1B,UAAA;AACD,YAAA;AACV,UAAA;AACQ,UAAA;AACA,UAAA;AACG,UAAA;AACJ,QAAA;AAED,UAAA;AACF,UAAA;AACI,UAAA;AACV,QAAA;AACF,MAAA;AACW,MAAA;AACC,QAAA;AACE,UAAA;AACX,QAAA;AACH,MAAA;AACe,MAAA;AACjB,IAAA;AACF,EAAA;AACF;AAGa;AJ4jBQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/editor/editor/packages/core/dist/index.cjs","sourcesContent":[null,"import { Editor, EditorOptions, Content, Extensions } from \"@tiptap/core\";\nimport { Slice } from \"@tiptap/pm/model\";\nimport { Token, tokenizePrompt } from \"./grammar\";\nimport {\n plainTextToTipTapHtml,\n plainTextToSlice,\n getEditorText,\n markdownToTipTapHtml,\n getEditorMarkdown,\n} from \"./serializers\";\n\nexport interface EditorControllerOptions extends Partial<\n Omit<EditorOptions, \"element\" | \"content\">\n> {\n element?: Element | HTMLElement | null;\n content?: string | Content;\n plainTextMode?: boolean;\n markdownMode?: boolean;\n extensions?: Extensions;\n onPlainTextChange?: (text: string) => void;\n onMarkdownChange?: (markdown: string) => void;\n onTokensChange?: (tokens: Token[]) => void;\n onSelectionChange?: (range: { from: number; to: number } | null) => void;\n}\n\n/**\n * UI-agnostic controller managing the lifecycle, commands, and plain-text/token\n * synchronization of a rich text or prompt editor.\n */\nexport class EditorController {\n public readonly editor: Editor;\n private readonly plainTextMode: boolean;\n private readonly markdownMode: boolean;\n private readonly onPlainTextChange?: (text: string) => void;\n private readonly onMarkdownChange?: (markdown: string) => void;\n private readonly onTokensChange?: (tokens: Token[]) => void;\n private readonly onSelectionChange?: (\n range: { from: number; to: number } | null,\n ) => void;\n private baselineContent: string;\n\n constructor(options: EditorControllerOptions = {}) {\n const {\n element,\n content,\n plainTextMode = false,\n markdownMode = false,\n extensions = [],\n onPlainTextChange,\n onMarkdownChange,\n onTokensChange,\n onSelectionChange,\n ...editorOptions\n } = options;\n\n this.plainTextMode = plainTextMode;\n this.markdownMode = markdownMode;\n this.onPlainTextChange = onPlainTextChange;\n this.onMarkdownChange = onMarkdownChange;\n this.onTokensChange = onTokensChange;\n this.onSelectionChange = onSelectionChange;\n\n const initialContent =\n plainTextMode && typeof content === \"string\"\n ? plainTextToTipTapHtml(content)\n : markdownMode && typeof content === \"string\"\n ? markdownToTipTapHtml(content)\n : content;\n\n this.editor = new Editor({\n element: element || undefined,\n content: initialContent,\n extensions,\n ...editorOptions,\n onUpdate: (props) => {\n editorOptions.onUpdate?.(props);\n this.handleUpdate();\n },\n onSelectionUpdate: (props) => {\n editorOptions.onSelectionUpdate?.(props);\n this.handleSelectionUpdate();\n },\n });\n\n if (plainTextMode) {\n this.enforcePlainTextClipboard();\n }\n\n this.baselineContent = this.getCurrentContentString();\n }\n\n private enforcePlainTextClipboard() {\n // Opt-in rich clipboard / file import must not bypass the plain-text invariant.\n const richClipboard = this.editor.storage?.richClipboard;\n if (richClipboard) richClipboard.plainTextMode = true;\n const fileImport = this.editor.extensionManager?.extensions.find(\n (ext) => ext.name === \"fileImport\",\n );\n if (fileImport) fileImport.options.asPlainText = true;\n\n this.editor.setOptions({\n editorProps: {\n ...this.editor.options.editorProps,\n clipboardTextParser: (\n text: string,\n context: any,\n _plain: boolean,\n view?: any,\n ) => {\n const schema =\n context?.doc?.type?.schema ||\n context?.schema ||\n view?.state?.schema ||\n this.editor.schema;\n\n if (!schema) return Slice.empty;\n\n return plainTextToSlice(text, schema);\n },\n },\n });\n }\n\n private handleUpdate() {\n if (this.plainTextMode || this.onPlainTextChange || this.onTokensChange) {\n const text = this.getPlainText();\n this.onPlainTextChange?.(text);\n\n if (this.onTokensChange) {\n const tokens = tokenizePrompt(text);\n this.onTokensChange(tokens);\n }\n }\n\n if (this.markdownMode || this.onMarkdownChange) {\n const markdown = this.getMarkdown();\n this.onMarkdownChange?.(markdown);\n }\n }\n\n private handleSelectionUpdate() {\n if (this.onSelectionChange) {\n const { from, to } = this.editor.state.selection;\n this.onSelectionChange({ from, to });\n }\n }\n\n public getPlainText(): string {\n return getEditorText(this.editor);\n }\n\n public setPlainText(text: string, emitUpdate = true) {\n const html = plainTextToTipTapHtml(text);\n this.editor.commands.setContent(html, emitUpdate);\n }\n\n public getMarkdown(): string {\n return getEditorMarkdown(this.editor);\n }\n\n public setMarkdown(markdown: string, emitUpdate = true) {\n if (this.editor.storage?.markdown?.parser) {\n this.editor.commands.setContent(markdown, emitUpdate);\n } else {\n const html = markdownToTipTapHtml(markdown);\n this.editor.commands.setContent(html, emitUpdate);\n }\n }\n\n /**\n * Replaces `from`..`to` with literal text: HTML in `text` is not parsed, and\n * newlines split paragraphs.\n */\n private insertPlainText(from: number, to: number, text: string) {\n const { state, view } = this.editor;\n const tr = text.includes(\"\\n\") || text.includes(\"\\r\")\n ? state.tr.replace(from, to, plainTextToSlice(text, state.schema))\n : text\n ? state.tr.insertText(text, from, to)\n : state.tr.delete(from, to);\n view.dispatch(tr.scrollIntoView());\n }\n\n /** Inserts text literally at the selection; HTML in `text` is not parsed. */\n public insertText(text: string) {\n const { from, to } = this.editor.state.selection;\n this.insertPlainText(from, to, text);\n }\n\n /** Inserts text literally at `pos`; HTML in `text` is not parsed. */\n public insertTextAt(pos: number, text: string) {\n this.insertPlainText(pos, pos, text);\n this.editor.commands.focus();\n }\n\n /** Replaces a range with literal text; HTML in `text` is not parsed. */\n public replaceRange(from: number, to: number, text: string) {\n this.insertPlainText(from, to, text);\n this.editor.commands.focus();\n }\n\n public getCurrentContentString(): string {\n if (this.plainTextMode) return this.getPlainText();\n if (this.markdownMode) return this.getMarkdown();\n return this.editor.getHTML();\n }\n\n public isDirty(): boolean {\n return this.getCurrentContentString() !== this.baselineContent;\n }\n\n public setCheckpoint(content?: string): void {\n this.baselineContent =\n content !== undefined ? content : this.getCurrentContentString();\n }\n\n public resetDirty(): void {\n this.setCheckpoint();\n }\n\n public getBaselineContent(): string {\n return this.baselineContent;\n }\n\n public destroy() {\n this.editor.destroy();\n }\n}\n\n/**\n * Creates and initializes an EditorController instance.\n */\nexport function createEditor(\n options: EditorControllerOptions = {},\n): EditorController {\n return new EditorController(options);\n}\n","import { defaultImportRegistry, type DocumentImport } from \"./adapters\";\nimport {\n importFilesIntoEditor,\n type ImportEditorTarget,\n type ImportFilesIntoEditorOptions,\n} from \"./editor\";\nimport type { FileLike, ImportOutcome } from \"./registry\";\n\n/**\n * Opens the browser file picker and resolves with the chosen files (an empty\n * array when the dialog is cancelled). `accept` defaults to every extension\n * and MIME type the default registry can import as a document.\n */\nexport function pickImportFiles(options: { accept?: string; multiple?: boolean } = {}): Promise<File[]> {\n if (typeof document === \"undefined\") return Promise.resolve([]);\n return new Promise((resolve) => {\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = options.accept ?? defaultImportRegistry.accept(\"document\");\n input.multiple = options.multiple ?? true;\n input.style.display = \"none\";\n const finish = (files: File[]) => {\n input.remove();\n resolve(files);\n };\n input.addEventListener(\"change\", () => finish(Array.from(input.files ?? [])), { once: true });\n input.addEventListener(\"cancel\", () => finish([]), { once: true });\n document.body.appendChild(input);\n input.click();\n });\n}\n\nexport interface FileImportState {\n isImporting: boolean;\n /** Last import error (cleared when a new import starts). */\n error: Error | null;\n /** Outcomes of the most recent import. */\n lastOutcomes: ImportOutcome<DocumentImport>[];\n}\n\nexport interface FileImportControllerOptions extends Omit<ImportFilesIntoEditorOptions, \"at\"> {\n /** Allow choosing several files in the picker (default `true`). */\n multiple?: boolean;\n}\n\n/**\n * Framework-agnostic state for a file-import button: tracks `isImporting` /\n * `error`, opens the file picker and inserts the imported content into the\n * editor returned by `getTarget`. React's `useFileImport` and Svelte's\n * `createFileImport` wrap it.\n */\nexport class FileImportController {\n private state: FileImportState = { isImporting: false, error: null, lastOutcomes: [] };\n private readonly listeners = new Set<(state: FileImportState) => void>();\n private pending = 0;\n\n constructor(\n private readonly getTarget: () => ImportEditorTarget | null | undefined,\n private options: FileImportControllerOptions = {},\n ) {}\n\n setOptions(options: FileImportControllerOptions): void {\n this.options = options;\n }\n\n /** `accept` attribute value for document imports. */\n get accept(): string {\n return (this.options.registry ?? defaultImportRegistry).accept(\"document\");\n }\n\n getState = (): FileImportState => this.state;\n\n subscribe = (listener: (state: FileImportState) => void): (() => void) => {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n };\n\n private setState(patch: Partial<FileImportState>) {\n this.state = { ...this.state, ...patch };\n this.listeners.forEach((listener) => listener(this.state));\n }\n\n /** Imports files into the editor at `at` (default: the selection). */\n importFiles = async (\n files: Iterable<FileLike> | ArrayLike<FileLike>,\n at?: number,\n ): Promise<ImportOutcome<DocumentImport>[]> => {\n const target = this.getTarget();\n const list = Array.from(files as ArrayLike<FileLike>);\n if (!target || list.length === 0) return [];\n this.pending++;\n this.setState({ isImporting: true, error: null });\n let error: Error | null = null;\n try {\n const outcomes = await importFilesIntoEditor(target, list, {\n ...this.options,\n at,\n onError: (err, file) => {\n error = err;\n this.options.onError?.(err, file);\n },\n });\n this.pending--;\n this.setState({ isImporting: this.pending > 0, error, lastOutcomes: outcomes });\n return outcomes;\n } catch (err) {\n this.pending--;\n this.setState({ isImporting: this.pending > 0, error: err instanceof Error ? err : new Error(String(err)) });\n return [];\n }\n };\n\n /** Opens the file picker and imports the chosen files at the selection. */\n openFilePicker = async (): Promise<ImportOutcome<DocumentImport>[]> => {\n const files = await pickImportFiles({ accept: this.accept, multiple: this.options.multiple });\n return this.importFiles(files);\n };\n}\n\nexport function createFileImportController(\n getTarget: () => ImportEditorTarget | null | undefined,\n options?: FileImportControllerOptions,\n): FileImportController {\n return new FileImportController(getTarget, options);\n}\n","import { plainTextToParagraphHtml } from \"../serializers/html\";\nimport type { DocumentImportAdapter } from \"./adapters\";\n\n/**\n * PDF text import through an injected pdf.js-compatible library. The editor\n * ships no PDF parser; consumers that already bundle `pdfjs-dist` register\n * the adapter themselves:\n *\n * ```ts\n * import * as pdfjs from \"pdfjs-dist\";\n * registerImportAdapter(createPdfImportAdapter(pdfjs));\n * ```\n *\n * Text items are grouped into lines by baseline (`transform[5]`) and lines\n * into paragraphs by vertical gaps larger than the page's typical line\n * spacing (or blank `hasEOL` lines). Only text is imported: no images,\n * tables, links or styling.\n */\n\n/** A text item from `page.getTextContent()` (marked-content items have no `str`). */\nexport interface PdfJsTextItem {\n str: string;\n /** `[a, b, c, d, x, y]` transform; `x` / `y` are the baseline origin. */\n transform?: readonly number[];\n width?: number;\n height?: number;\n /** pdf.js sets this when a line break follows the item. */\n hasEOL?: boolean;\n}\n\nexport interface PdfJsTextContent {\n items: ReadonlyArray<PdfJsTextItem | { type: string }>;\n}\n\nexport interface PdfJsPage {\n getTextContent(): Promise<PdfJsTextContent>;\n cleanup?(): unknown;\n}\n\nexport interface PdfJsDocument {\n numPages: number;\n getPage(pageNumber: number): Promise<PdfJsPage>;\n destroy?(): unknown;\n}\n\n/** The subset of the pdf.js API the adapter uses (`pdfjs-dist` satisfies it). */\nexport interface PdfJsLike {\n getDocument(source: { data: Uint8Array; [option: string]: unknown }): { promise: Promise<PdfJsDocument> };\n}\n\nexport interface PdfTextOptions {\n /**\n * A line gap larger than this multiple of the page's typical line spacing\n * starts a new paragraph (default `1.4`).\n */\n paragraphGap?: number;\n}\n\nexport interface PdfImportOptions extends PdfTextOptions {\n /** Adapter id (default `\"pdf\"`). */\n id?: string;\n /** Import at most this many pages (default: all). */\n maxPages?: number;\n /** Extra `getDocument` parameters, e.g. `{ disableFontFace: true }`. */\n documentParams?: Record<string, unknown>;\n}\n\ninterface Line {\n text: string;\n y: number;\n height: number;\n /** A blank line (empty `hasEOL` item) follows this one. */\n blankAfter: boolean;\n}\n\nconst isTextItem = (item: PdfJsTextItem | { type: string }): item is PdfJsTextItem =>\n typeof (item as PdfJsTextItem).str === \"string\";\n\nfunction median(values: number[]): number {\n if (!values.length) return 0;\n const sorted = [...values].sort((a, b) => a - b);\n const mid = sorted.length >> 1;\n return sorted.length % 2 ? sorted[mid] : (sorted[mid - 1] + sorted[mid]) / 2;\n}\n\nfunction groupLines(items: ReadonlyArray<PdfJsTextItem | { type: string }>): Line[] {\n const lines: Line[] = [];\n let current: (Line & { endX?: number }) | null = null;\n let breakNext = false;\n for (const item of items) {\n if (!isTextItem(item)) continue;\n const x = item.transform?.[4] ?? 0;\n const y: number = item.transform?.[5] ?? (current?.y ?? 0);\n const height: number = item.height || Math.abs(item.transform?.[3] ?? 0) || current?.height || 10;\n const tolerance = Math.max(1, height * 0.5);\n if (!item.str) {\n // Empty items mark line ends; two in a row mean a blank line.\n if (item.hasEOL) {\n if (breakNext && current) current.blankAfter = true;\n breakNext = true;\n }\n continue;\n }\n if (!current || breakNext || Math.abs(y - current.y) > tolerance) {\n current = { text: \"\", y, height, blankAfter: false };\n lines.push(current);\n } else if (current.endX !== undefined && x - current.endX > height * 0.15) {\n // A horizontal gap without an explicit space item.\n if (!/\\s$/.test(current.text) && !/^\\s/.test(item.str)) current.text += \" \";\n }\n current.text += item.str;\n current.height = Math.max(current.height, height);\n current.endX = item.width !== undefined ? x + item.width : undefined;\n breakNext = !!item.hasEOL;\n }\n return lines;\n}\n\n/**\n * Groups one page's pdf.js text items into paragraphs. Exposed for custom\n * adapters and tests.\n */\nexport function pdfTextItemsToParagraphs(\n items: ReadonlyArray<PdfJsTextItem | { type: string }>,\n options: PdfTextOptions = {},\n): string[] {\n const lines = groupLines(items).filter((line) => line.text.trim() || line.blankAfter);\n const gaps: number[] = [];\n for (let i = 1; i < lines.length; i++) {\n const gap = lines[i - 1].y - lines[i].y;\n if (gap > 0) gaps.push(gap);\n }\n const typical = median(gaps);\n const factor = options.paragraphGap ?? 1.4;\n\n const paragraphs: string[] = [];\n let current: string[] = [];\n const flush = () => {\n const text = current.join(\" \").replace(/\\s+/g, \" \").trim();\n if (text) paragraphs.push(text);\n current = [];\n };\n lines.forEach((line, i) => {\n if (i > 0) {\n const prev = lines[i - 1];\n const gap = prev.y - line.y;\n const bigGap = typical > 0 ? gap > typical * factor : gap > prev.height * 1.8;\n // A line above the previous one (gap < 0) starts a new column or block.\n if (prev.blankAfter || bigGap || gap < -prev.height * 0.5) flush();\n }\n const text = line.text.trim();\n if (!text) return;\n if (current.length && /\\w-$/.test(current[current.length - 1]) && /^[a-z]/.test(text)) {\n // Re-join words hyphenated across lines.\n current[current.length - 1] = current[current.length - 1].slice(0, -1) + text;\n } else {\n current.push(text);\n }\n });\n flush();\n return paragraphs;\n}\n\n/** Creates a PDF `document` adapter backed by an injected pdf.js-compatible library. */\nexport function createPdfImportAdapter(pdfjs: PdfJsLike, options: PdfImportOptions = {}): DocumentImportAdapter {\n return {\n id: options.id ?? \"pdf\",\n label: \"PDF\",\n mimeTypes: [\"application/pdf\"],\n extensions: [\".pdf\"],\n target: \"document\",\n async import(_input, context) {\n // pdf.js may transfer (detach) the buffer it receives, so pass a copy.\n const data = new Uint8Array((await context.readArrayBuffer()).slice(0));\n const doc = await pdfjs.getDocument({ ...options.documentParams, data }).promise;\n const paragraphs: string[] = [];\n try {\n const pages = Math.min(doc.numPages, options.maxPages ?? Infinity);\n for (let n = 1; n <= pages; n++) {\n const page = await doc.getPage(n);\n const content = await page.getTextContent();\n paragraphs.push(...pdfTextItemsToParagraphs(content.items, options));\n page.cleanup?.();\n }\n } finally {\n await doc.destroy?.();\n }\n const text = paragraphs.join(\"\\n\");\n return { html: plainTextToParagraphHtml(text), text };\n },\n };\n}\n","import { escapeHtml } from \"../serializers/plain-text\";\nimport { defaultImportRegistry, type DocumentImport, type DocumentImportAdapter } from \"./adapters\";\nimport { ImportError, type ImportAdapterRegistry } from \"./registry\";\nimport { readZip, type ZipReadOptions } from \"./zip\";\n\n/**\n * Zipped document exports (Notion, Confluence, Obsidian, static-site dumps):\n * a `.zip` of markdown / HTML / text / DOCX files. Each entry is imported\n * with the registry's other `document` adapters and the results are\n * concatenated, with a heading per file.\n *\n * Not registered by default: `.zip` is a generic container, and claiming\n * every dropped archive as a document would steal drops from other handlers\n * (e.g. attachment uploads). Opt in with\n * `registerImportAdapter(zipImportAdapter)`.\n */\n\nexport interface ZipDocumentImport extends DocumentImport {\n /** Imported entries in document order, with the adapter that handled each. */\n files: { name: string; adapterId: string }[];\n /** Entries that were left out, with the reason. */\n skipped: { name: string; reason: string }[];\n}\n\nexport interface ZipImportOptions {\n /** Adapter id (default `\"zip\"`). */\n id?: string;\n /**\n * Registry used for the entries. Defaults to the registry running the\n * import (`context.registry`), then the default registry.\n */\n registry?: ImportAdapterRegistry;\n /** Add a heading with each file's title before its content (default `true`). */\n headings?: boolean;\n /** Heading level for file titles (default `2`). */\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n /** Import at most this many files (default 500); the rest are reported as skipped. */\n maxFiles?: number;\n /** Archive limits (default: 100 MiB extracted, 5 000 entries). */\n zip?: ZipReadOptions;\n}\n\nconst INDEX_NAMES = /^(index|readme|home|_index|start)$/i;\n\nconst baseName = (path: string) => path.slice(path.lastIndexOf(\"/\") + 1);\nconst stem = (name: string) => name.replace(/\\.[^./]+$/, \"\");\n\n/** File title: the name without extension, path or a trailing Notion-style id. */\nexport function zipEntryTitle(path: string): string {\n const title = stem(baseName(path))\n .replace(/\\s+[0-9a-f]{32}$/i, \"\")\n .replace(/[_]+/g, \" \")\n .trim();\n return title || baseName(path);\n}\n\n/**\n * Orders entries for import: index / README files first (shallowest first),\n * then by path with natural number ordering (`2` before `10`).\n */\nexport function sortZipEntryNames(names: readonly string[]): string[] {\n const isIndex = (name: string) => INDEX_NAMES.test(stem(baseName(name)));\n const depth = (name: string) => name.split(\"/\").length;\n return [...names].sort((a, b) => {\n const ai = isIndex(a);\n const bi = isIndex(b);\n if (ai !== bi) return ai ? -1 : 1;\n if (ai && bi && depth(a) !== depth(b)) return depth(a) - depth(b);\n return a.localeCompare(b, undefined, { numeric: true, sensitivity: \"base\" });\n });\n}\n\nconst isJunk = (name: string) =>\n name.startsWith(\"__MACOSX/\") || name.split(\"/\").some((segment) => segment.startsWith(\".\"));\n\n/** Creates a `document` adapter for zipped exports. */\nexport function createZipImportAdapter(options: ZipImportOptions = {}): DocumentImportAdapter {\n const id = options.id ?? \"zip\";\n return {\n id,\n label: \"Zipped documents\",\n mimeTypes: [\"application/zip\", \"application/x-zip-compressed\"],\n extensions: [\".zip\"],\n target: \"document\",\n async import(_input, context): Promise<ZipDocumentImport> {\n const registry = options.registry ?? context.registry ?? defaultImportRegistry;\n const zip = await readZip(await context.readArrayBuffer(), {\n maxTotalSize: 100 * 1024 * 1024,\n maxEntries: 5_000,\n ...options.zip,\n });\n const maxFiles = options.maxFiles ?? 500;\n const level = options.headingLevel ?? 2;\n const files: ZipDocumentImport[\"files\"] = [];\n const skipped: ZipDocumentImport[\"skipped\"] = [];\n let html = \"\";\n let text = \"\";\n\n const names = zip.entries.filter((entry) => !entry.isDirectory).map((entry) => entry.name);\n for (const name of sortZipEntryNames(names)) {\n if (isJunk(name)) continue;\n const adapter = registry.find({ fileName: name, target: \"document\" });\n if (!adapter) {\n skipped.push({ name, reason: \"unsupported type\" });\n continue;\n }\n if (adapter.id === id || adapter.extensions.some((ext) => ext.toLowerCase() === \".zip\")) {\n skipped.push({ name, reason: \"nested archive\" });\n continue;\n }\n if (files.length >= maxFiles) {\n skipped.push({ name, reason: \"file limit reached\" });\n continue;\n }\n try {\n const outcome = await registry.importFile<DocumentImport>(await zip.read(name), {\n fileName: name,\n adapterId: adapter.id,\n });\n const title = zipEntryTitle(name);\n if (options.headings !== false) {\n html += `<h${level}>${escapeHtml(title)}</h${level}>`;\n text += `${text ? \"\\n\" : \"\"}${title}\\n`;\n } else if (text) {\n text += \"\\n\";\n }\n html += outcome.result.html.trim();\n text += outcome.result.text;\n files.push({ name, adapterId: adapter.id });\n } catch (error) {\n // Archive-wide limits stop the whole import; other failures skip the entry.\n const code = (error as { code?: string })?.code;\n if (code === \"too_large\") throw error;\n skipped.push({ name, reason: error instanceof Error ? error.message : String(error) });\n }\n }\n if (!files.length) {\n throw new ImportError(\"invalid_file\", \"The archive contains no importable documents.\", {\n fileName: context.fileName,\n });\n }\n return { html, text, files, skipped };\n },\n };\n}\n\n/** Zipped-export adapter with default options. Opt in with `registerImportAdapter(zipImportAdapter)`. */\nexport const zipImportAdapter: DocumentImportAdapter = createZipImportAdapter();\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/editor/editor/packages/core/dist/index.cjs","../src/controller.ts","../src/import/controller.ts","../src/import/pdf.ts","../src/import/zip-export.ts"],"names":[],"mappings":"AAAA,6tBAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACA;AC5WA,oCAA2D;AAC3D,yCAAsB;AA4Bf,IAAM,iBAAA,EAAN,MAAuB;AAAA,EACZ;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGT;AAAA,EAER,WAAA,CAAY,QAAA,EAAmC,CAAC,CAAA,EAAG;AACjD,IAAA,MAAM;AAAA,MACJ,OAAA;AAAA,MACA,OAAA;AAAA,MACA,cAAA,EAAgB,KAAA;AAAA,MAChB,aAAA,EAAe,KAAA;AAAA,MACf,WAAA,EAAa,CAAC,CAAA;AAAA,MACd,iBAAA;AAAA,MACA,gBAAA;AAAA,MACA,cAAA;AAAA,MACA,iBAAA;AAAA,MACA,GAAG;AAAA,IACL,EAAA,EAAI,OAAA;AAEJ,IAAA,IAAA,CAAK,cAAA,EAAgB,aAAA;AACrB,IAAA,IAAA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/editor/editor/packages/core/dist/index.cjs","sourcesContent":[null,"import { Editor, EditorOptions, Content, Extensions } from \"@tiptap/core\";\nimport { Slice } from \"@tiptap/pm/model\";\nimport { Token, tokenizePrompt } from \"./grammar\";\nimport {\n plainTextToTipTapHtml,\n plainTextToSlice,\n getEditorText,\n markdownToTipTapHtml,\n getEditorMarkdown,\n} from \"./serializers\";\n\nexport interface EditorControllerOptions extends Partial<\n Omit<EditorOptions, \"element\" | \"content\">\n> {\n element?: Element | HTMLElement | null;\n content?: string | Content;\n plainTextMode?: boolean;\n markdownMode?: boolean;\n extensions?: Extensions;\n onPlainTextChange?: (text: string) => void;\n onMarkdownChange?: (markdown: string) => void;\n onTokensChange?: (tokens: Token[]) => void;\n onSelectionChange?: (range: { from: number; to: number } | null) => void;\n}\n\n/**\n * UI-agnostic controller managing the lifecycle, commands, and plain-text/token\n * synchronization of a rich text or prompt editor.\n */\nexport class EditorController {\n public readonly editor: Editor;\n private readonly plainTextMode: boolean;\n private readonly markdownMode: boolean;\n private readonly onPlainTextChange?: (text: string) => void;\n private readonly onMarkdownChange?: (markdown: string) => void;\n private readonly onTokensChange?: (tokens: Token[]) => void;\n private readonly onSelectionChange?: (\n range: { from: number; to: number } | null,\n ) => void;\n private baselineContent: string;\n\n constructor(options: EditorControllerOptions = {}) {\n const {\n element,\n content,\n plainTextMode = false,\n markdownMode = false,\n extensions = [],\n onPlainTextChange,\n onMarkdownChange,\n onTokensChange,\n onSelectionChange,\n ...editorOptions\n } = options;\n\n this.plainTextMode = plainTextMode;\n this.markdownMode = markdownMode;\n this.onPlainTextChange = onPlainTextChange;\n this.onMarkdownChange = onMarkdownChange;\n this.onTokensChange = onTokensChange;\n this.onSelectionChange = onSelectionChange;\n\n const initialContent =\n plainTextMode && typeof content === \"string\"\n ? plainTextToTipTapHtml(content)\n : markdownMode && typeof content === \"string\"\n ? markdownToTipTapHtml(content)\n : content;\n\n this.editor = new Editor({\n element: element || undefined,\n content: initialContent,\n extensions,\n ...editorOptions,\n onUpdate: (props) => {\n editorOptions.onUpdate?.(props);\n this.handleUpdate();\n },\n onSelectionUpdate: (props) => {\n editorOptions.onSelectionUpdate?.(props);\n this.handleSelectionUpdate();\n },\n });\n\n if (plainTextMode) {\n this.enforcePlainTextClipboard();\n }\n\n this.baselineContent = this.getCurrentContentString();\n }\n\n private enforcePlainTextClipboard() {\n // Opt-in rich clipboard / file import must not bypass the plain-text invariant.\n const richClipboard = this.editor.storage?.richClipboard;\n if (richClipboard) richClipboard.plainTextMode = true;\n const fileImport = this.editor.extensionManager?.extensions.find(\n (ext) => ext.name === \"fileImport\",\n );\n if (fileImport) fileImport.options.asPlainText = true;\n\n this.editor.setOptions({\n editorProps: {\n ...this.editor.options.editorProps,\n clipboardTextParser: (\n text: string,\n context: any,\n _plain: boolean,\n view?: any,\n ) => {\n const schema =\n context?.doc?.type?.schema ||\n context?.schema ||\n view?.state?.schema ||\n this.editor.schema;\n\n if (!schema) return Slice.empty;\n\n return plainTextToSlice(text, schema);\n },\n },\n });\n }\n\n private handleUpdate() {\n if (this.plainTextMode || this.onPlainTextChange || this.onTokensChange) {\n const text = this.getPlainText();\n this.onPlainTextChange?.(text);\n\n if (this.onTokensChange) {\n const tokens = tokenizePrompt(text);\n this.onTokensChange(tokens);\n }\n }\n\n if (this.markdownMode || this.onMarkdownChange) {\n const markdown = this.getMarkdown();\n this.onMarkdownChange?.(markdown);\n }\n }\n\n private handleSelectionUpdate() {\n if (this.onSelectionChange) {\n const { from, to } = this.editor.state.selection;\n this.onSelectionChange({ from, to });\n }\n }\n\n public getPlainText(): string {\n return getEditorText(this.editor);\n }\n\n public setPlainText(text: string, emitUpdate = true) {\n const html = plainTextToTipTapHtml(text);\n this.editor.commands.setContent(html, emitUpdate);\n }\n\n public getMarkdown(): string {\n return getEditorMarkdown(this.editor);\n }\n\n public setMarkdown(markdown: string, emitUpdate = true) {\n if (this.editor.storage?.markdown?.parser) {\n this.editor.commands.setContent(markdown, emitUpdate);\n } else {\n const html = markdownToTipTapHtml(markdown);\n this.editor.commands.setContent(html, emitUpdate);\n }\n }\n\n /**\n * Replaces `from`..`to` with literal text: HTML in `text` is not parsed, and\n * newlines split paragraphs.\n */\n private insertPlainText(from: number, to: number, text: string) {\n const { state, view } = this.editor;\n const tr = text.includes(\"\\n\") || text.includes(\"\\r\")\n ? state.tr.replace(from, to, plainTextToSlice(text, state.schema))\n : text\n ? state.tr.insertText(text, from, to)\n : state.tr.delete(from, to);\n view.dispatch(tr.scrollIntoView());\n }\n\n /** Inserts text literally at the selection; HTML in `text` is not parsed. */\n public insertText(text: string) {\n const { from, to } = this.editor.state.selection;\n this.insertPlainText(from, to, text);\n }\n\n /** Inserts text literally at `pos`; HTML in `text` is not parsed. */\n public insertTextAt(pos: number, text: string) {\n this.insertPlainText(pos, pos, text);\n this.editor.commands.focus();\n }\n\n /** Replaces a range with literal text; HTML in `text` is not parsed. */\n public replaceRange(from: number, to: number, text: string) {\n this.insertPlainText(from, to, text);\n this.editor.commands.focus();\n }\n\n public getCurrentContentString(): string {\n if (this.plainTextMode) return this.getPlainText();\n if (this.markdownMode) return this.getMarkdown();\n return this.editor.getHTML();\n }\n\n public isDirty(): boolean {\n return this.getCurrentContentString() !== this.baselineContent;\n }\n\n public setCheckpoint(content?: string): void {\n this.baselineContent =\n content !== undefined ? content : this.getCurrentContentString();\n }\n\n public resetDirty(): void {\n this.setCheckpoint();\n }\n\n public getBaselineContent(): string {\n return this.baselineContent;\n }\n\n public destroy() {\n this.editor.destroy();\n }\n}\n\n/**\n * Creates and initializes an EditorController instance.\n */\nexport function createEditor(\n options: EditorControllerOptions = {},\n): EditorController {\n return new EditorController(options);\n}\n","import { defaultImportRegistry, type DocumentImport } from \"./adapters\";\nimport {\n importFilesIntoEditor,\n type ImportEditorTarget,\n type ImportFilesIntoEditorOptions,\n} from \"./editor\";\nimport type { FileLike, ImportOutcome } from \"./registry\";\n\n/**\n * Opens the browser file picker and resolves with the chosen files (an empty\n * array when the dialog is cancelled). `accept` defaults to every extension\n * and MIME type the default registry can import as a document.\n */\nexport function pickImportFiles(options: { accept?: string; multiple?: boolean } = {}): Promise<File[]> {\n if (typeof document === \"undefined\") return Promise.resolve([]);\n return new Promise((resolve) => {\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = options.accept ?? defaultImportRegistry.accept(\"document\");\n input.multiple = options.multiple ?? true;\n input.style.display = \"none\";\n const finish = (files: File[]) => {\n input.remove();\n resolve(files);\n };\n input.addEventListener(\"change\", () => finish(Array.from(input.files ?? [])), { once: true });\n input.addEventListener(\"cancel\", () => finish([]), { once: true });\n document.body.appendChild(input);\n input.click();\n });\n}\n\nexport interface FileImportState {\n isImporting: boolean;\n /** Last import error (cleared when a new import starts). */\n error: Error | null;\n /** Outcomes of the most recent import. */\n lastOutcomes: ImportOutcome<DocumentImport>[];\n}\n\nexport interface FileImportControllerOptions extends Omit<ImportFilesIntoEditorOptions, \"at\"> {\n /** Allow choosing several files in the picker (default `true`). */\n multiple?: boolean;\n}\n\n/**\n * Framework-agnostic state for a file-import button: tracks `isImporting` /\n * `error`, opens the file picker and inserts the imported content into the\n * editor returned by `getTarget`. React's `useFileImport` and Svelte's\n * `createFileImport` wrap it.\n */\nexport class FileImportController {\n private state: FileImportState = { isImporting: false, error: null, lastOutcomes: [] };\n private readonly listeners = new Set<(state: FileImportState) => void>();\n private pending = 0;\n\n constructor(\n private readonly getTarget: () => ImportEditorTarget | null | undefined,\n private options: FileImportControllerOptions = {},\n ) {}\n\n setOptions(options: FileImportControllerOptions): void {\n this.options = options;\n }\n\n /** `accept` attribute value for document imports. */\n get accept(): string {\n return (this.options.registry ?? defaultImportRegistry).accept(\"document\");\n }\n\n getState = (): FileImportState => this.state;\n\n subscribe = (listener: (state: FileImportState) => void): (() => void) => {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n };\n\n private setState(patch: Partial<FileImportState>) {\n this.state = { ...this.state, ...patch };\n this.listeners.forEach((listener) => listener(this.state));\n }\n\n /** Imports files into the editor at `at` (default: the selection). */\n importFiles = async (\n files: Iterable<FileLike> | ArrayLike<FileLike>,\n at?: number,\n ): Promise<ImportOutcome<DocumentImport>[]> => {\n const target = this.getTarget();\n const list = Array.from(files as ArrayLike<FileLike>);\n if (!target || list.length === 0) return [];\n this.pending++;\n this.setState({ isImporting: true, error: null });\n let error: Error | null = null;\n try {\n const outcomes = await importFilesIntoEditor(target, list, {\n ...this.options,\n at,\n onError: (err, file) => {\n error = err;\n this.options.onError?.(err, file);\n },\n });\n this.pending--;\n this.setState({ isImporting: this.pending > 0, error, lastOutcomes: outcomes });\n return outcomes;\n } catch (err) {\n this.pending--;\n this.setState({ isImporting: this.pending > 0, error: err instanceof Error ? err : new Error(String(err)) });\n return [];\n }\n };\n\n /** Opens the file picker and imports the chosen files at the selection. */\n openFilePicker = async (): Promise<ImportOutcome<DocumentImport>[]> => {\n const files = await pickImportFiles({ accept: this.accept, multiple: this.options.multiple });\n return this.importFiles(files);\n };\n}\n\nexport function createFileImportController(\n getTarget: () => ImportEditorTarget | null | undefined,\n options?: FileImportControllerOptions,\n): FileImportController {\n return new FileImportController(getTarget, options);\n}\n","import { plainTextToParagraphHtml } from \"../serializers/html\";\nimport type { DocumentImportAdapter } from \"./adapters\";\n\n/**\n * PDF text import through an injected pdf.js-compatible library. The editor\n * ships no PDF parser; consumers that already bundle `pdfjs-dist` register\n * the adapter themselves:\n *\n * ```ts\n * import * as pdfjs from \"pdfjs-dist\";\n * registerImportAdapter(createPdfImportAdapter(pdfjs));\n * ```\n *\n * Text items are grouped into lines by baseline (`transform[5]`) and lines\n * into paragraphs by vertical gaps larger than the page's typical line\n * spacing (or blank `hasEOL` lines). Only text is imported: no images,\n * tables, links or styling.\n */\n\n/** A text item from `page.getTextContent()` (marked-content items have no `str`). */\nexport interface PdfJsTextItem {\n str: string;\n /** `[a, b, c, d, x, y]` transform; `x` / `y` are the baseline origin. */\n transform?: readonly number[];\n width?: number;\n height?: number;\n /** pdf.js sets this when a line break follows the item. */\n hasEOL?: boolean;\n}\n\nexport interface PdfJsTextContent {\n items: ReadonlyArray<PdfJsTextItem | { type: string }>;\n}\n\nexport interface PdfJsPage {\n getTextContent(): Promise<PdfJsTextContent>;\n cleanup?(): unknown;\n}\n\nexport interface PdfJsDocument {\n numPages: number;\n getPage(pageNumber: number): Promise<PdfJsPage>;\n destroy?(): unknown;\n}\n\n/** The subset of the pdf.js API the adapter uses (`pdfjs-dist` satisfies it). */\nexport interface PdfJsLike {\n getDocument(source: { data: Uint8Array; [option: string]: unknown }): { promise: Promise<PdfJsDocument> };\n}\n\nexport interface PdfTextOptions {\n /**\n * A line gap larger than this multiple of the page's typical line spacing\n * starts a new paragraph (default `1.4`).\n */\n paragraphGap?: number;\n}\n\nexport interface PdfImportOptions extends PdfTextOptions {\n /** Adapter id (default `\"pdf\"`). */\n id?: string;\n /** Import at most this many pages (default: all). */\n maxPages?: number;\n /** Extra `getDocument` parameters, e.g. `{ disableFontFace: true }`. */\n documentParams?: Record<string, unknown>;\n}\n\ninterface Line {\n text: string;\n y: number;\n height: number;\n /** A blank line (empty `hasEOL` item) follows this one. */\n blankAfter: boolean;\n}\n\nconst isTextItem = (item: PdfJsTextItem | { type: string }): item is PdfJsTextItem =>\n typeof (item as PdfJsTextItem).str === \"string\";\n\nfunction median(values: number[]): number {\n if (!values.length) return 0;\n const sorted = [...values].sort((a, b) => a - b);\n const mid = sorted.length >> 1;\n return sorted.length % 2 ? sorted[mid] : (sorted[mid - 1] + sorted[mid]) / 2;\n}\n\nfunction groupLines(items: ReadonlyArray<PdfJsTextItem | { type: string }>): Line[] {\n const lines: Line[] = [];\n let current: (Line & { endX?: number }) | null = null;\n let breakNext = false;\n for (const item of items) {\n if (!isTextItem(item)) continue;\n const x = item.transform?.[4] ?? 0;\n const y: number = item.transform?.[5] ?? (current?.y ?? 0);\n const height: number = item.height || Math.abs(item.transform?.[3] ?? 0) || current?.height || 10;\n const tolerance = Math.max(1, height * 0.5);\n if (!item.str) {\n // Empty items mark line ends; two in a row mean a blank line.\n if (item.hasEOL) {\n if (breakNext && current) current.blankAfter = true;\n breakNext = true;\n }\n continue;\n }\n if (!current || breakNext || Math.abs(y - current.y) > tolerance) {\n current = { text: \"\", y, height, blankAfter: false };\n lines.push(current);\n } else if (current.endX !== undefined && x - current.endX > height * 0.15) {\n // A horizontal gap without an explicit space item.\n if (!/\\s$/.test(current.text) && !/^\\s/.test(item.str)) current.text += \" \";\n }\n current.text += item.str;\n current.height = Math.max(current.height, height);\n current.endX = item.width !== undefined ? x + item.width : undefined;\n breakNext = !!item.hasEOL;\n }\n return lines;\n}\n\n/**\n * Groups one page's pdf.js text items into paragraphs. Exposed for custom\n * adapters and tests.\n */\nexport function pdfTextItemsToParagraphs(\n items: ReadonlyArray<PdfJsTextItem | { type: string }>,\n options: PdfTextOptions = {},\n): string[] {\n const lines = groupLines(items).filter((line) => line.text.trim() || line.blankAfter);\n const gaps: number[] = [];\n for (let i = 1; i < lines.length; i++) {\n const gap = lines[i - 1].y - lines[i].y;\n if (gap > 0) gaps.push(gap);\n }\n const typical = median(gaps);\n const factor = options.paragraphGap ?? 1.4;\n\n const paragraphs: string[] = [];\n let current: string[] = [];\n const flush = () => {\n const text = current.join(\" \").replace(/\\s+/g, \" \").trim();\n if (text) paragraphs.push(text);\n current = [];\n };\n lines.forEach((line, i) => {\n if (i > 0) {\n const prev = lines[i - 1];\n const gap = prev.y - line.y;\n const bigGap = typical > 0 ? gap > typical * factor : gap > prev.height * 1.8;\n // A line above the previous one (gap < 0) starts a new column or block.\n if (prev.blankAfter || bigGap || gap < -prev.height * 0.5) flush();\n }\n const text = line.text.trim();\n if (!text) return;\n if (current.length && /\\w-$/.test(current[current.length - 1]) && /^[a-z]/.test(text)) {\n // Re-join words hyphenated across lines.\n current[current.length - 1] = current[current.length - 1].slice(0, -1) + text;\n } else {\n current.push(text);\n }\n });\n flush();\n return paragraphs;\n}\n\n/** Creates a PDF `document` adapter backed by an injected pdf.js-compatible library. */\nexport function createPdfImportAdapter(pdfjs: PdfJsLike, options: PdfImportOptions = {}): DocumentImportAdapter {\n return {\n id: options.id ?? \"pdf\",\n label: \"PDF\",\n mimeTypes: [\"application/pdf\"],\n extensions: [\".pdf\"],\n target: \"document\",\n async import(_input, context) {\n // pdf.js may transfer (detach) the buffer it receives, so pass a copy.\n const data = new Uint8Array((await context.readArrayBuffer()).slice(0));\n const doc = await pdfjs.getDocument({ ...options.documentParams, data }).promise;\n const paragraphs: string[] = [];\n try {\n const pages = Math.min(doc.numPages, options.maxPages ?? Infinity);\n for (let n = 1; n <= pages; n++) {\n const page = await doc.getPage(n);\n const content = await page.getTextContent();\n paragraphs.push(...pdfTextItemsToParagraphs(content.items, options));\n page.cleanup?.();\n }\n } finally {\n await doc.destroy?.();\n }\n const text = paragraphs.join(\"\\n\");\n return { html: plainTextToParagraphHtml(text), text };\n },\n };\n}\n","import { escapeHtml } from \"../serializers/plain-text\";\nimport { defaultImportRegistry, type DocumentImport, type DocumentImportAdapter } from \"./adapters\";\nimport { ImportError, type ImportAdapterRegistry } from \"./registry\";\nimport { readZip, type ZipReadOptions } from \"./zip\";\n\n/**\n * Zipped document exports (Notion, Confluence, Obsidian, static-site dumps):\n * a `.zip` of markdown / HTML / text / DOCX files. Each entry is imported\n * with the registry's other `document` adapters and the results are\n * concatenated, with a heading per file.\n *\n * Not registered by default: `.zip` is a generic container, and claiming\n * every dropped archive as a document would steal drops from other handlers\n * (e.g. attachment uploads). Opt in with\n * `registerImportAdapter(zipImportAdapter)`.\n */\n\nexport interface ZipDocumentImport extends DocumentImport {\n /** Imported entries in document order, with the adapter that handled each. */\n files: { name: string; adapterId: string }[];\n /** Entries that were left out, with the reason. */\n skipped: { name: string; reason: string }[];\n}\n\nexport interface ZipImportOptions {\n /** Adapter id (default `\"zip\"`). */\n id?: string;\n /**\n * Registry used for the entries. Defaults to the registry running the\n * import (`context.registry`), then the default registry.\n */\n registry?: ImportAdapterRegistry;\n /** Add a heading with each file's title before its content (default `true`). */\n headings?: boolean;\n /** Heading level for file titles (default `2`). */\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n /** Import at most this many files (default 500); the rest are reported as skipped. */\n maxFiles?: number;\n /** Archive limits (default: 100 MiB extracted, 5 000 entries). */\n zip?: ZipReadOptions;\n}\n\nconst INDEX_NAMES = /^(index|readme|home|_index|start)$/i;\n\nconst baseName = (path: string) => path.slice(path.lastIndexOf(\"/\") + 1);\nconst stem = (name: string) => name.replace(/\\.[^./]+$/, \"\");\n\n/** File title: the name without extension, path or a trailing Notion-style id. */\nexport function zipEntryTitle(path: string): string {\n const title = stem(baseName(path))\n .replace(/\\s+[0-9a-f]{32}$/i, \"\")\n .replace(/[_]+/g, \" \")\n .trim();\n return title || baseName(path);\n}\n\n/**\n * Orders entries for import: index / README files first (shallowest first),\n * then by path with natural number ordering (`2` before `10`).\n */\nexport function sortZipEntryNames(names: readonly string[]): string[] {\n const isIndex = (name: string) => INDEX_NAMES.test(stem(baseName(name)));\n const depth = (name: string) => name.split(\"/\").length;\n return [...names].sort((a, b) => {\n const ai = isIndex(a);\n const bi = isIndex(b);\n if (ai !== bi) return ai ? -1 : 1;\n if (ai && bi && depth(a) !== depth(b)) return depth(a) - depth(b);\n return a.localeCompare(b, undefined, { numeric: true, sensitivity: \"base\" });\n });\n}\n\nconst isJunk = (name: string) =>\n name.startsWith(\"__MACOSX/\") || name.split(\"/\").some((segment) => segment.startsWith(\".\"));\n\n/** Creates a `document` adapter for zipped exports. */\nexport function createZipImportAdapter(options: ZipImportOptions = {}): DocumentImportAdapter {\n const id = options.id ?? \"zip\";\n return {\n id,\n label: \"Zipped documents\",\n mimeTypes: [\"application/zip\", \"application/x-zip-compressed\"],\n extensions: [\".zip\"],\n target: \"document\",\n async import(_input, context): Promise<ZipDocumentImport> {\n const registry = options.registry ?? context.registry ?? defaultImportRegistry;\n const zip = await readZip(await context.readArrayBuffer(), {\n maxTotalSize: 100 * 1024 * 1024,\n maxEntries: 5_000,\n ...options.zip,\n });\n const maxFiles = options.maxFiles ?? 500;\n const level = options.headingLevel ?? 2;\n const files: ZipDocumentImport[\"files\"] = [];\n const skipped: ZipDocumentImport[\"skipped\"] = [];\n let html = \"\";\n let text = \"\";\n\n const names = zip.entries.filter((entry) => !entry.isDirectory).map((entry) => entry.name);\n for (const name of sortZipEntryNames(names)) {\n if (isJunk(name)) continue;\n const adapter = registry.find({ fileName: name, target: \"document\" });\n if (!adapter) {\n skipped.push({ name, reason: \"unsupported type\" });\n continue;\n }\n if (adapter.id === id || adapter.extensions.some((ext) => ext.toLowerCase() === \".zip\")) {\n skipped.push({ name, reason: \"nested archive\" });\n continue;\n }\n if (files.length >= maxFiles) {\n skipped.push({ name, reason: \"file limit reached\" });\n continue;\n }\n try {\n const outcome = await registry.importFile<DocumentImport>(await zip.read(name), {\n fileName: name,\n adapterId: adapter.id,\n });\n const title = zipEntryTitle(name);\n if (options.headings !== false) {\n html += `<h${level}>${escapeHtml(title)}</h${level}>`;\n text += `${text ? \"\\n\" : \"\"}${title}\\n`;\n } else if (text) {\n text += \"\\n\";\n }\n html += outcome.result.html.trim();\n text += outcome.result.text;\n files.push({ name, adapterId: adapter.id });\n } catch (error) {\n // Archive-wide limits stop the whole import; other failures skip the entry.\n const code = (error as { code?: string })?.code;\n if (code === \"too_large\") throw error;\n skipped.push({ name, reason: error instanceof Error ? error.message : String(error) });\n }\n }\n if (!files.length) {\n throw new ImportError(\"invalid_file\", \"The archive contains no importable documents.\", {\n fileName: context.fileName,\n });\n }\n return { html, text, files, skipped };\n },\n };\n}\n\n/** Zipped-export adapter with default options. Opt in with `registerImportAdapter(zipImportAdapter)`. */\nexport const zipImportAdapter: DocumentImportAdapter = createZipImportAdapter();\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,23 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { C as ColorGradient,
|
|
3
|
-
export { ConditionalTagLike, ConditionalTagMatch, EvaluatedToken, ExtractVariablesOptions,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export { B as
|
|
1
|
+
import { b as Token } from './tokens-D7yXvUU6.cjs';
|
|
2
|
+
export { C as ColorGradient, c as ComparisonOperator, d as ConditionComparison, e as ConditionalKind, I as INSTRUCTION_REGEX, a as PromptDiagnostic, f as PromptDiagnosticCode, g as PromptValue, P as PromptValues, h as TEMPLATE_REGEX, T as Template, i as TemplateVersion, j as TokenType, V as VARIABLE_REGEX, k as instructionRegex, t as templateRegex, v as variableRegex } from './tokens-D7yXvUU6.cjs';
|
|
3
|
+
export { ConditionExpression, ConditionalTagLike, ConditionalTagMatch, DataSourceInput, DataSourceWarning, DataSourceWarningCode, EvaluatedToken, ExtractVariablesOptions, FIELD_ALIASES, FieldMapping, FieldMatch, FieldMatchKind, MAX_DATA_SOURCE_FIELDS, MAX_DATA_SOURCE_RECORDS, MAX_MERGE_LENGTH, MAX_MERGE_OUTPUTS, MatchFieldsOptions, MergeDataSource, MergeDiagnostic, MergeDiagnosticCode, MergeOutput, MergeRecord, MergeRecordsOptions, MergeRecordsResult, MergeSkip, ParseDataSourceOptions, ParsedComparison, ParsedVariableBody, RecordToValuesOptions, ResolvePromptOptions, ResolvePromptResult, TEMPLATE_DEPTH_ERROR, TEMPLATE_LOOP_ERROR, TokenizeResult, VariableDescriptor, VariableFormField, compactVariableValues, compareConditionValues, conditionSubject, describeConditionalTag, detectDelimiter, escapeVariableText, evaluateCondition, evaluateConditionExpression, evaluatePromptTokens, extractVariables, formatComparisonOperand, formatConditionalTag, getLatestVersion, getPromptDiagnostics, getSuppliedValue, getTemplateBody, getVariableFormFields, isPromptValueSet, matchConditionalTags, matchFields, mergeRecords, normalizeFieldKey, normalizeFieldNames, parseComparison, parseConditionExpression, parseDataSource, parseVariableBody, recordToValues, resolvePrompt, serializeMergeOutputs, tokenizePrompt, tokenizePromptWithDiagnostics, unescapeVariableText } from './grammar/index.cjs';
|
|
4
|
+
export { R as ResolveTemplatesOptions, S as SourceMapSegment, e as extractInstructionNames, a as extractTemplateNames, b as extractVariableNames, m as mapRawOffsetToResolved, c as mapResolvedOffsetToRaw, r as resolveTemplates, d as resolveTemplatesWithMapping, f as resolveVariables } from './sourcemap-C8AH3MBQ.cjs';
|
|
5
|
+
import { D as DocumentImport, a as DocumentImportAdapter } from './index-BhJBSm2d.cjs';
|
|
6
|
+
export { A as AddCommentOptions, b as Autocorrect, c as AutocorrectContext, d as AutocorrectCorrection, e as AutocorrectOptions, f as AutocorrectRule, g as AutocorrectStorage, B as BUILT_IN_IMPORT_ADAPTERS, h as Bookmark, i as BookmarkInfo, j as BookmarkOptions, C as COMMENT_MARK_NAME, k as ColorHighlighter, l as CommentRange, m as Comments, n as CommentsOptions, o as CommentsStorage, p as CompileFindPatternResult, q as CompiledFindPattern, r as CreateImportAdapterRegistryOptions, s as CrossReference, t as CrossReferenceOptions, u as CrossReferenceTarget, v as CrossReferenceTargetType, w as DEFAULT_AUTOCORRECT_EXCEPTIONS, x as DocumentCompare, y as DocumentCompareOptions, z as DocumentCompareStorage, E as DocumentSearchOptions, F as DocumentSearchResult, G as DocumentStructureCommandArgs, H as DocumentStructureCommandItem, I as EMPTY_FIND_REPLACE_SNAPSHOT, J as EditorCompareOptions, K as FIND_OPTION_TOGGLES, L as FIND_PARAGRAPH_MARK, M as FileImport, N as FileImportOptions, O as FindAllOptions, P as FindAllResult, Q as FindMatch, R as FindOptionToggle, S as FindOptions, T as FindPatternError, U as FindPatternErrorCode, V as FindReplace, W as FindReplaceCommandOptions, X as FindReplaceMode, Y as FindReplaceOptions, Z as FindReplaceSnapshot, _ as FindReplaceStorage, $ as FindReplaceStore, a0 as FocusHeadingOptions, a1 as FontSize, a2 as Footnote, a3 as FootnoteInfo, a4 as FootnoteReference, a5 as Footnotes, a6 as FootnotesOptions, a7 as GradientText, a8 as GradientTextOptions, a9 as Image, aa as ImageOptions, ab as InsertFootnoteOptions, ac as InsertTableOfContentsOptions, ad as LoadingNode, ae as MAX_FIND_PATTERN_LENGTH, af as Markdown, ag as OpenFindReplaceParams, ah as Outline, ai as OutlineHeading, aj as OutlineOptions, ak as OutlineSnapshot, al as OutlineStorage, am as OutlineStore, an as OutlineTreeItem, ao as PatternMatch, ap as ReplacePiece, aq as RichClipboard, ar as RichClipboardOptions, as as RichClipboardStorage, at as RichTextPresetOptions, au as SMILIE_REPLACEMENTS, av as SearchBudget, aw as SearchBudgetOptions, ax as SetBookmarkOptions, ay as SetSearchParams, az as SlashCommandMatchData, aA as SlashCommands, aB as SlashCommandsOptions, aC as SmilieReplacer, aD as TableOfContents, aE as TableOfContentsEntry, aF as TableOfContentsOptions, aG as TemplateSuggestions, aH as TemplateSuggestionsOptions, aI as applyDocumentComparison, aJ as applyReplacements, aK as autocorrectPluginKey, aL as buildOutlineTree, aM as capitalizeSentenceRules, aN as commentsPluginKey, aO as compareInEditor, aP as compileFindPattern, aQ as computeOutline, aR as createFindReplaceCommands, aS as createImportAdapterRegistry, aT as createOutlineStore, aU as createRichTextPreset, aV as createSearchBudget, aW as crossReferencePluginKey, aX as defaultAutocorrectRules, aY as defaultImportRegistry, aZ as documentStructureCommandItems, a_ as expandReplacement, a$ as fileImportPluginKey, b0 as findAllMatches, b1 as findAutocorrection, b2 as findCommentRanges, b3 as findHexColors, b4 as findImportAdapter, b5 as findReplacePluginKey, b6 as foldCodePoint, b7 as footnotesMarkdownIt, b8 as footnotesPluginKey, b9 as formatFindStatus, ba as fractionRules, bb as getActiveHeading, bc as getBookmarks, bd as getCommentAnchors, be as getCommentAuthor, bf as getCommentIdsAt, bg as getCommentStore, bh as getCrossReferenceTargets, bi as getDocumentStructureCommandItems, bj as getFindReplaceState, bk as getFindReplaceStore, bl as getFootnotes, bm as getImportAccept, bn as getOutline, bo as getTableOfContentsEntries, bp as handleImageInsertion, bq as htmlImportAdapter, br as imagePastePluginKey, bs as importFile, bt as insertImageNode, bu as isInsidePromptToken, bv as markdownImportAdapter, bw as navigateToHeading, bx as outlinePluginKey, by as parseReplacement, bz as plainTextImportAdapter, bA as registerImportAdapter, bB as removeImageNode, bC as richClipboardPluginKey, bD as rtfImportAdapter, bE as searchDocument, bF as smartQuoteRules, bG as smilieAutocorrectRules, bH as symbolRules, bI as syncFootnotes, bJ as tableOfContentsMarkdownIt, bK as tableOfContentsPluginKey, bL as twoInitialCapitalsRules, bM as unregisterImportAdapter, bN as updateImageSrc, bO as validateFindPattern, bP as writeRichClipboard } from './index-BhJBSm2d.cjs';
|
|
7
|
+
export { B as BLOCK_CHANGE_ATTRIBUTE, D as DELETION_MARK_NAME, F as FORMAT_CHANGE_MARK_NAME, I as INSERTION_MARK_NAME, M as Mention, a as MentionEntity, b as MentionOptions, T as TRACK_CHANGES_SKIP_META, c as TrackChanges, d as TrackChangesOptions, e as TrackChangesSnapshot, f as TrackChangesStorage, g as TrackChangesStore, h as TrackedBlockChangeAttributes, i as TrackedBlockOperation, j as TrackedBlockSnapshot, k as TrackedChange, l as TrackedChangeAttributes, m as TrackedChangeType, n as TrackedChangesView, o as TrackedDeletion, p as TrackedFormatChange, q as TrackedFormatChangeAttributes, r as TrackedFormatSummary, s as TrackedInsertion, t as TrackedMark, u as createMentionExtension, v as describeBlockChange, w as describeFormatChange, x as getTrackChangesStore, y as getTrackedChangeAt, z as getTrackedChanges, A as isTrackChangesEnabled, C as resolveTrackedChanges, E as trackChangesPluginKey } from './track-changes-BK5sVf4_.cjs';
|
|
8
|
+
export { C as CommentAnchor, a as CommentReply, b as CommentStore, c as CommentStoreListener, d as CommentStoreOptions, e as CommentStoreSnapshot, f as CommentThread, g as CreateThreadInput, R as ReviewAuthor, S as SerializedComments, h as createCommentStore, i as createReviewId, j as formatReviewTime } from './comment-store-BEMgVlAA.cjs';
|
|
7
9
|
export { ClipboardDataLike, ExtractedMention, MARKDOWN_MENTION_SPLIT_REGEX, MENTION_REGEX, MarkdownToHtmlOptions, MentionSegment, PIXERATE_DOCUMENT_MIME, PlainTextOptions, PreprocessMarkdownMentionsOptions, RichClipboardPayload, SanitizeHtmlOptions, escapeHtml, extractMentions, extractMentionsFromDoc, getClipboardData, getEditorMarkdown, getEditorText, getSchemaSignature, htmlToPlainText, markdownToTipTapHtml, parseMentionSegments, parseRichClipboardPayload, plainTextToParagraphHtml, plainTextToSlice, plainTextToTipTapHtml, preprocessMarkdownFileLinks, preprocessMarkdownMentions, readRichClipboard, rtfToPlainText, sanitizeHtml, sanitizeImportedHtml, serializeRichClipboardPayload, stripMarkdownCode } from './serializers/index.cjs';
|
|
8
10
|
import { Editor, EditorOptions, Content, Extensions } from '@tiptap/core';
|
|
9
11
|
export { Content, Editor, EditorOptions, Extensions } from '@tiptap/core';
|
|
10
|
-
export { A as ASTNode, B as BinaryOpNode, C as CellCoordinate, a as CellData, b as CellDep, c as CellFormat, d as CellPosition, e as CellRange, f as CellRefNode, g as CellValueReader, h as ColumnBinding, i as ColumnType, j as CsvExportOptions, k as CsvImportOptions, D as DEFAULT_COLUMN_WIDTH, l as DEFAULT_ROW_HEIGHT, m as DataSourceBinder, n as DependencyGraph, E as EvaluationContext, F as FORMULA_ERRORS, o as FilterOperator, p as FilterRule, q as FormulaDiagnostic, r as FormulaErrorCode, s as FormulaEvaluationResult, t as FormulaEvaluator, u as FormulaParser, v as FormulaRange, w as FormulaToken, x as FormulaTokenType, y as FunctionCallNode, G as GroupAggregate, z as GroupSummary, L as LiteralNode, M as MAX_FORMULA_ARRAY_SIZE, N as NameNode, H as NewFilterRule, P as ParsedSpreadsheetClipboard, I as PropertyRefNode, R as RangeNode, J as RowType, K as SPREADSHEET_CLIPBOARD_MIME, O as SortDirection, Q as SortKey, T as SpillRefNode, U as SpreadsheetCellSpan, V as SpreadsheetClipboardCell, W as SpreadsheetClipboardData, X as SpreadsheetClipboardPayload, Y as SpreadsheetClipboardSource, Z as SpreadsheetColumn, S as SpreadsheetController, _ as SpreadsheetControllerOptions, $ as SpreadsheetDataSource, a0 as SpreadsheetDataSourceField, a1 as SpreadsheetDocument, a2 as SpreadsheetFilterState, a3 as SpreadsheetGrouping, a4 as SpreadsheetRow, a5 as SpreadsheetRowGroup, a6 as SpreadsheetRowSection, a7 as SpreadsheetSpill, a8 as SpreadsheetTableSettings, a9 as SpreadsheetViewColumn, aa as SpreadsheetViewModel, ab as SpreadsheetViewRow, ac as StructuralChange, ad as UnaryOpNode, ae as WHOLE_COLUMN_END_ROW, af as buildSpreadsheetView, ag as colNameToIndex, ah as columnDependencyKey, ai as compareNumbers, aj as compareValues, ak as computeRowGroups, al as createSpreadsheetClipboardData, am as describeFormulaError, an as extractCellDependencies, ao as getRowSection, ap as getTableSections, aq as indexToColName, ar as isFormulaError, as as mapFormulaReferences, at as numberToText, au as offsetFormulaReferences, av as parseCellReference, aw as parseFormula, ax as parseHtmlTable, ay as parseRange, az as readSpreadsheetClipboard, aA as rebaseClipboardRows, aB as remapFormulaReferences, aC as rowPassesFilters, aD as serializeHtmlTable, aE as shiftFormulaReferences, aF as sortCompareValues, aG as tokenizeFormula } from './controller-
|
|
11
|
-
export { CellInputFormatKind, CsvParseOptions, CsvSerializeOptions, FillDirection, FormulaActiveCall, FormulaArgument, FormulaArgumentSpec, FormulaArgumentType, FormulaCaretContext, FormulaCriteriaPredicate, FormulaFunctionCategory, FormulaFunctionContext, FormulaFunctionDefinition, FormulaFunctionSuggestion, FormulaHints, FormulaSignaturePart, ImportFileIntoSpreadsheetOptions, ParsedCellInput, SPREADSHEET_IMPORT_ADAPTERS, SPREADSHEET_TABLE_ACTIONS, SpreadsheetImport, SpreadsheetImportAdapter, SpreadsheetMenuItem, SpreadsheetTableActionName, SpreadsheetTableActions, aggregateValues, applyFormulaSuggestion, bindSpreadsheetTableActions, checkFormulaArgumentCount, clampMenuPosition, compareCellValues, computeFillTarget, csvImportAdapter, escapeCsvField, fillSeries, formatCellDisplay, formatValueWithCode, getFillDirection, getFormulaArgumentSpecIndex, getFormulaCaretContext, getFormulaFunction, getFormulaHints, getFormulaSignature, getFormulaSignatureParts, getSpreadsheetMenuItems, importFileIntoSpreadsheet, isBlankValue, isSingleCellRange, listFormulaFunctions, matchesFilterRule, normalizeRange, parseCellInput, parseCriteria, parseCsv, parseNumberText, parseTsv, rangeContains, rangeContainsRange, rangesIntersect, registerFormulaFunction, registerSpreadsheetImportAdapters, roundFloat, searchFormulaFunctions, serialFromYmd, serializeCsv, serializeTsv, toNumber, tsvImportAdapter, unregisterFormulaFunction, wildcardToRegExp } from './spreadsheet/index.cjs';
|
|
12
|
+
export { A as ASTNode, B as BinaryOpNode, C as CellCoordinate, a as CellData, b as CellDep, c as CellFormat, d as CellPosition, e as CellRange, f as CellRefNode, g as CellValueReader, h as ColumnBinding, i as ColumnType, j as CsvExportOptions, k as CsvImportOptions, D as DEFAULT_COLUMN_WIDTH, l as DEFAULT_ROW_HEIGHT, m as DataSourceBinder, n as DependencyGraph, E as EvaluationContext, F as FORMULA_ERRORS, o as FilterOperator, p as FilterRule, q as FormulaDiagnostic, r as FormulaErrorCode, s as FormulaEvaluationResult, t as FormulaEvaluator, u as FormulaParser, v as FormulaRange, w as FormulaToken, x as FormulaTokenType, y as FunctionCallNode, G as GroupAggregate, z as GroupSummary, L as LiteralNode, M as MAX_FORMULA_ARRAY_SIZE, N as NameNode, H as NewFilterRule, P as ParsedSpreadsheetClipboard, I as PropertyRefNode, R as RangeNode, J as RowType, K as SPREADSHEET_CLIPBOARD_MIME, O as SortDirection, Q as SortKey, T as SpillRefNode, U as SpreadsheetCellSpan, V as SpreadsheetClipboardCell, W as SpreadsheetClipboardData, X as SpreadsheetClipboardPayload, Y as SpreadsheetClipboardSource, Z as SpreadsheetColumn, S as SpreadsheetController, _ as SpreadsheetControllerOptions, $ as SpreadsheetDataSource, a0 as SpreadsheetDataSourceField, a1 as SpreadsheetDocument, a2 as SpreadsheetFilterState, a3 as SpreadsheetGrouping, a4 as SpreadsheetRow, a5 as SpreadsheetRowGroup, a6 as SpreadsheetRowSection, a7 as SpreadsheetSpill, a8 as SpreadsheetTableSettings, a9 as SpreadsheetViewColumn, aa as SpreadsheetViewModel, ab as SpreadsheetViewRow, ac as StructuralChange, ad as UnaryOpNode, ae as WHOLE_COLUMN_END_ROW, af as buildSpreadsheetView, ag as colNameToIndex, ah as columnDependencyKey, ai as compareNumbers, aj as compareValues, ak as computeRowGroups, al as createSpreadsheetClipboardData, am as describeFormulaError, an as extractCellDependencies, ao as getRowSection, ap as getTableSections, aq as indexToColName, ar as isFormulaError, as as mapFormulaReferences, at as numberToText, au as offsetFormulaReferences, av as parseCellReference, aw as parseFormula, ax as parseHtmlTable, ay as parseRange, az as readSpreadsheetClipboard, aA as rebaseClipboardRows, aB as remapFormulaReferences, aC as rowPassesFilters, aD as serializeHtmlTable, aE as shiftFormulaReferences, aF as sortCompareValues, aG as tokenizeFormula } from './controller-BhLLAoi8.cjs';
|
|
13
|
+
export { CellInputFormatKind, CsvParseOptions, CsvSerializeOptions, FillDirection, FormattedNumberValue, FormulaActiveCall, FormulaArgument, FormulaArgumentSpec, FormulaArgumentType, FormulaCaretContext, FormulaCriteriaPredicate, FormulaFunctionCategory, FormulaFunctionContext, FormulaFunctionDefinition, FormulaFunctionSuggestion, FormulaHints, FormulaSignaturePart, ImportFileIntoSpreadsheetOptions, MAX_NUMBER_FORMAT_CODE_CHARS, NUMBER_FORMAT_PRESETS, NumberFormat, NumberFormatColor, NumberFormatKind, NumberFormatPreset, ParsedCellInput, SPREADSHEET_IMPORT_ADAPTERS, SPREADSHEET_TABLE_ACTIONS, SpreadsheetImport, SpreadsheetImportAdapter, SpreadsheetMenuItem, SpreadsheetTableActionName, SpreadsheetTableActions, aggregateValues, applyFormulaSuggestion, bindSpreadsheetTableActions, builtinNumberFormat, builtinNumberFormatId, cellFormatForNumberFormat, checkFormulaArgumentCount, clampMenuPosition, clearNumberFormatCache, compareCellValues, computeFillTarget, csvImportAdapter, dateValueToSerial, escapeCsvField, fillSeries, formatCellDisplay, formatCellForDisplay, formatGeneralFit, formatNumberFormatValue, formatTextFunction, formatValueWithCode, getFillDirection, getFormulaArgumentSpecIndex, getFormulaCaretContext, getFormulaFunction, getFormulaHints, getFormulaSignature, getFormulaSignatureParts, getSpreadsheetMenuItems, importFileIntoSpreadsheet, isBlankValue, isGeneralNumberFormat, isSingleCellRange, listFormulaFunctions, matchesFilterRule, normalizeRange, numberFormatColorToCss, numberFormatForCellFormat, parseCellInput, parseCriteria, parseCsv, parseNumberText, parseTsv, rangeContains, rangeContainsRange, rangesIntersect, registerFormulaFunction, registerSpreadsheetImportAdapters, roundFloat, runSpreadsheetMenuItem, searchFormulaFunctions, serialFromYmd, serializeCsv, serializeTsv, toNumber, tsvImportAdapter, unregisterFormulaFunction, wildcardToRegExp } from './spreadsheet/index.cjs';
|
|
12
14
|
export { BindDirtyToHistoryOptions, DirtyHistorySource, DirtyTracker, DirtyTrackerOptions, HistoryDirtyBinding, HistoryManager, bindDirtyToHistory, createDirtyTracker, createHistoryManager, defaultIsEqual, withoutDirty } from './history/index.cjs';
|
|
13
15
|
export { C as Command, a as HistoryEntry, b as HistoryManagerOptions, c as HistoryMark, H as HistoryState, M as MergedExecutionOptions, S as SnapshotCommandOptions } from './types-GT5a5YAX.cjs';
|
|
14
16
|
import { I as ImportAdapterRegistry, a as ImportOutcome, F as FileLike } from './registry-GJI4gToU.cjs';
|
|
15
17
|
export { b as FindImportAdapterQuery, c as ImportAdapter, d as ImportContext, e as ImportError, f as ImportErrorCode, g as ImportFileOptions, h as ImportInput, i as ImportTarget, R as RegisterImportAdapterOptions, j as createImportContext } from './registry-GJI4gToU.cjs';
|
|
16
18
|
import { Schema, Slice } from '@tiptap/pm/model';
|
|
17
19
|
import { EditorView } from '@tiptap/pm/view';
|
|
20
|
+
export { DiffChange, DiffOpType, DiffRun, DiffSequencesOptions, diffChanges, diffSequences } from './compare/index.cjs';
|
|
21
|
+
export { C as CompareDocumentsOptions, a as CompareDocumentsResult, b as CompareSource, c as CompareSummary, d as compareDocuments, e as compareHtml } from './documents-KRTPhvst.cjs';
|
|
18
22
|
export { MarkdownOptions } from 'tiptap-markdown';
|
|
19
23
|
import '@tiptap/pm/state';
|
|
20
24
|
import '@tiptap/extension-image';
|
|
25
|
+
import './registry-D32LpIc4.cjs';
|
|
26
|
+
import './schema-DYDGdYL9.cjs';
|
|
21
27
|
import '@tiptap/extension-mention';
|
|
22
28
|
import '@tiptap/suggestion';
|
|
23
29
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,23 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { C as ColorGradient,
|
|
3
|
-
export { ConditionalTagLike, ConditionalTagMatch, EvaluatedToken, ExtractVariablesOptions,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export { B as
|
|
1
|
+
import { b as Token } from './tokens-D7yXvUU6.js';
|
|
2
|
+
export { C as ColorGradient, c as ComparisonOperator, d as ConditionComparison, e as ConditionalKind, I as INSTRUCTION_REGEX, a as PromptDiagnostic, f as PromptDiagnosticCode, g as PromptValue, P as PromptValues, h as TEMPLATE_REGEX, T as Template, i as TemplateVersion, j as TokenType, V as VARIABLE_REGEX, k as instructionRegex, t as templateRegex, v as variableRegex } from './tokens-D7yXvUU6.js';
|
|
3
|
+
export { ConditionExpression, ConditionalTagLike, ConditionalTagMatch, DataSourceInput, DataSourceWarning, DataSourceWarningCode, EvaluatedToken, ExtractVariablesOptions, FIELD_ALIASES, FieldMapping, FieldMatch, FieldMatchKind, MAX_DATA_SOURCE_FIELDS, MAX_DATA_SOURCE_RECORDS, MAX_MERGE_LENGTH, MAX_MERGE_OUTPUTS, MatchFieldsOptions, MergeDataSource, MergeDiagnostic, MergeDiagnosticCode, MergeOutput, MergeRecord, MergeRecordsOptions, MergeRecordsResult, MergeSkip, ParseDataSourceOptions, ParsedComparison, ParsedVariableBody, RecordToValuesOptions, ResolvePromptOptions, ResolvePromptResult, TEMPLATE_DEPTH_ERROR, TEMPLATE_LOOP_ERROR, TokenizeResult, VariableDescriptor, VariableFormField, compactVariableValues, compareConditionValues, conditionSubject, describeConditionalTag, detectDelimiter, escapeVariableText, evaluateCondition, evaluateConditionExpression, evaluatePromptTokens, extractVariables, formatComparisonOperand, formatConditionalTag, getLatestVersion, getPromptDiagnostics, getSuppliedValue, getTemplateBody, getVariableFormFields, isPromptValueSet, matchConditionalTags, matchFields, mergeRecords, normalizeFieldKey, normalizeFieldNames, parseComparison, parseConditionExpression, parseDataSource, parseVariableBody, recordToValues, resolvePrompt, serializeMergeOutputs, tokenizePrompt, tokenizePromptWithDiagnostics, unescapeVariableText } from './grammar/index.js';
|
|
4
|
+
export { R as ResolveTemplatesOptions, S as SourceMapSegment, e as extractInstructionNames, a as extractTemplateNames, b as extractVariableNames, m as mapRawOffsetToResolved, c as mapResolvedOffsetToRaw, r as resolveTemplates, d as resolveTemplatesWithMapping, f as resolveVariables } from './sourcemap-DA1Evhrv.js';
|
|
5
|
+
import { D as DocumentImport, a as DocumentImportAdapter } from './index-fJrlkJCd.js';
|
|
6
|
+
export { A as AddCommentOptions, b as Autocorrect, c as AutocorrectContext, d as AutocorrectCorrection, e as AutocorrectOptions, f as AutocorrectRule, g as AutocorrectStorage, B as BUILT_IN_IMPORT_ADAPTERS, h as Bookmark, i as BookmarkInfo, j as BookmarkOptions, C as COMMENT_MARK_NAME, k as ColorHighlighter, l as CommentRange, m as Comments, n as CommentsOptions, o as CommentsStorage, p as CompileFindPatternResult, q as CompiledFindPattern, r as CreateImportAdapterRegistryOptions, s as CrossReference, t as CrossReferenceOptions, u as CrossReferenceTarget, v as CrossReferenceTargetType, w as DEFAULT_AUTOCORRECT_EXCEPTIONS, x as DocumentCompare, y as DocumentCompareOptions, z as DocumentCompareStorage, E as DocumentSearchOptions, F as DocumentSearchResult, G as DocumentStructureCommandArgs, H as DocumentStructureCommandItem, I as EMPTY_FIND_REPLACE_SNAPSHOT, J as EditorCompareOptions, K as FIND_OPTION_TOGGLES, L as FIND_PARAGRAPH_MARK, M as FileImport, N as FileImportOptions, O as FindAllOptions, P as FindAllResult, Q as FindMatch, R as FindOptionToggle, S as FindOptions, T as FindPatternError, U as FindPatternErrorCode, V as FindReplace, W as FindReplaceCommandOptions, X as FindReplaceMode, Y as FindReplaceOptions, Z as FindReplaceSnapshot, _ as FindReplaceStorage, $ as FindReplaceStore, a0 as FocusHeadingOptions, a1 as FontSize, a2 as Footnote, a3 as FootnoteInfo, a4 as FootnoteReference, a5 as Footnotes, a6 as FootnotesOptions, a7 as GradientText, a8 as GradientTextOptions, a9 as Image, aa as ImageOptions, ab as InsertFootnoteOptions, ac as InsertTableOfContentsOptions, ad as LoadingNode, ae as MAX_FIND_PATTERN_LENGTH, af as Markdown, ag as OpenFindReplaceParams, ah as Outline, ai as OutlineHeading, aj as OutlineOptions, ak as OutlineSnapshot, al as OutlineStorage, am as OutlineStore, an as OutlineTreeItem, ao as PatternMatch, ap as ReplacePiece, aq as RichClipboard, ar as RichClipboardOptions, as as RichClipboardStorage, at as RichTextPresetOptions, au as SMILIE_REPLACEMENTS, av as SearchBudget, aw as SearchBudgetOptions, ax as SetBookmarkOptions, ay as SetSearchParams, az as SlashCommandMatchData, aA as SlashCommands, aB as SlashCommandsOptions, aC as SmilieReplacer, aD as TableOfContents, aE as TableOfContentsEntry, aF as TableOfContentsOptions, aG as TemplateSuggestions, aH as TemplateSuggestionsOptions, aI as applyDocumentComparison, aJ as applyReplacements, aK as autocorrectPluginKey, aL as buildOutlineTree, aM as capitalizeSentenceRules, aN as commentsPluginKey, aO as compareInEditor, aP as compileFindPattern, aQ as computeOutline, aR as createFindReplaceCommands, aS as createImportAdapterRegistry, aT as createOutlineStore, aU as createRichTextPreset, aV as createSearchBudget, aW as crossReferencePluginKey, aX as defaultAutocorrectRules, aY as defaultImportRegistry, aZ as documentStructureCommandItems, a_ as expandReplacement, a$ as fileImportPluginKey, b0 as findAllMatches, b1 as findAutocorrection, b2 as findCommentRanges, b3 as findHexColors, b4 as findImportAdapter, b5 as findReplacePluginKey, b6 as foldCodePoint, b7 as footnotesMarkdownIt, b8 as footnotesPluginKey, b9 as formatFindStatus, ba as fractionRules, bb as getActiveHeading, bc as getBookmarks, bd as getCommentAnchors, be as getCommentAuthor, bf as getCommentIdsAt, bg as getCommentStore, bh as getCrossReferenceTargets, bi as getDocumentStructureCommandItems, bj as getFindReplaceState, bk as getFindReplaceStore, bl as getFootnotes, bm as getImportAccept, bn as getOutline, bo as getTableOfContentsEntries, bp as handleImageInsertion, bq as htmlImportAdapter, br as imagePastePluginKey, bs as importFile, bt as insertImageNode, bu as isInsidePromptToken, bv as markdownImportAdapter, bw as navigateToHeading, bx as outlinePluginKey, by as parseReplacement, bz as plainTextImportAdapter, bA as registerImportAdapter, bB as removeImageNode, bC as richClipboardPluginKey, bD as rtfImportAdapter, bE as searchDocument, bF as smartQuoteRules, bG as smilieAutocorrectRules, bH as symbolRules, bI as syncFootnotes, bJ as tableOfContentsMarkdownIt, bK as tableOfContentsPluginKey, bL as twoInitialCapitalsRules, bM as unregisterImportAdapter, bN as updateImageSrc, bO as validateFindPattern, bP as writeRichClipboard } from './index-fJrlkJCd.js';
|
|
7
|
+
export { B as BLOCK_CHANGE_ATTRIBUTE, D as DELETION_MARK_NAME, F as FORMAT_CHANGE_MARK_NAME, I as INSERTION_MARK_NAME, M as Mention, a as MentionEntity, b as MentionOptions, T as TRACK_CHANGES_SKIP_META, c as TrackChanges, d as TrackChangesOptions, e as TrackChangesSnapshot, f as TrackChangesStorage, g as TrackChangesStore, h as TrackedBlockChangeAttributes, i as TrackedBlockOperation, j as TrackedBlockSnapshot, k as TrackedChange, l as TrackedChangeAttributes, m as TrackedChangeType, n as TrackedChangesView, o as TrackedDeletion, p as TrackedFormatChange, q as TrackedFormatChangeAttributes, r as TrackedFormatSummary, s as TrackedInsertion, t as TrackedMark, u as createMentionExtension, v as describeBlockChange, w as describeFormatChange, x as getTrackChangesStore, y as getTrackedChangeAt, z as getTrackedChanges, A as isTrackChangesEnabled, C as resolveTrackedChanges, E as trackChangesPluginKey } from './track-changes-CDjCrwKe.js';
|
|
8
|
+
export { C as CommentAnchor, a as CommentReply, b as CommentStore, c as CommentStoreListener, d as CommentStoreOptions, e as CommentStoreSnapshot, f as CommentThread, g as CreateThreadInput, R as ReviewAuthor, S as SerializedComments, h as createCommentStore, i as createReviewId, j as formatReviewTime } from './comment-store-BEMgVlAA.js';
|
|
7
9
|
export { ClipboardDataLike, ExtractedMention, MARKDOWN_MENTION_SPLIT_REGEX, MENTION_REGEX, MarkdownToHtmlOptions, MentionSegment, PIXERATE_DOCUMENT_MIME, PlainTextOptions, PreprocessMarkdownMentionsOptions, RichClipboardPayload, SanitizeHtmlOptions, escapeHtml, extractMentions, extractMentionsFromDoc, getClipboardData, getEditorMarkdown, getEditorText, getSchemaSignature, htmlToPlainText, markdownToTipTapHtml, parseMentionSegments, parseRichClipboardPayload, plainTextToParagraphHtml, plainTextToSlice, plainTextToTipTapHtml, preprocessMarkdownFileLinks, preprocessMarkdownMentions, readRichClipboard, rtfToPlainText, sanitizeHtml, sanitizeImportedHtml, serializeRichClipboardPayload, stripMarkdownCode } from './serializers/index.js';
|
|
8
10
|
import { Editor, EditorOptions, Content, Extensions } from '@tiptap/core';
|
|
9
11
|
export { Content, Editor, EditorOptions, Extensions } from '@tiptap/core';
|
|
10
|
-
export { A as ASTNode, B as BinaryOpNode, C as CellCoordinate, a as CellData, b as CellDep, c as CellFormat, d as CellPosition, e as CellRange, f as CellRefNode, g as CellValueReader, h as ColumnBinding, i as ColumnType, j as CsvExportOptions, k as CsvImportOptions, D as DEFAULT_COLUMN_WIDTH, l as DEFAULT_ROW_HEIGHT, m as DataSourceBinder, n as DependencyGraph, E as EvaluationContext, F as FORMULA_ERRORS, o as FilterOperator, p as FilterRule, q as FormulaDiagnostic, r as FormulaErrorCode, s as FormulaEvaluationResult, t as FormulaEvaluator, u as FormulaParser, v as FormulaRange, w as FormulaToken, x as FormulaTokenType, y as FunctionCallNode, G as GroupAggregate, z as GroupSummary, L as LiteralNode, M as MAX_FORMULA_ARRAY_SIZE, N as NameNode, H as NewFilterRule, P as ParsedSpreadsheetClipboard, I as PropertyRefNode, R as RangeNode, J as RowType, K as SPREADSHEET_CLIPBOARD_MIME, O as SortDirection, Q as SortKey, T as SpillRefNode, U as SpreadsheetCellSpan, V as SpreadsheetClipboardCell, W as SpreadsheetClipboardData, X as SpreadsheetClipboardPayload, Y as SpreadsheetClipboardSource, Z as SpreadsheetColumn, S as SpreadsheetController, _ as SpreadsheetControllerOptions, $ as SpreadsheetDataSource, a0 as SpreadsheetDataSourceField, a1 as SpreadsheetDocument, a2 as SpreadsheetFilterState, a3 as SpreadsheetGrouping, a4 as SpreadsheetRow, a5 as SpreadsheetRowGroup, a6 as SpreadsheetRowSection, a7 as SpreadsheetSpill, a8 as SpreadsheetTableSettings, a9 as SpreadsheetViewColumn, aa as SpreadsheetViewModel, ab as SpreadsheetViewRow, ac as StructuralChange, ad as UnaryOpNode, ae as WHOLE_COLUMN_END_ROW, af as buildSpreadsheetView, ag as colNameToIndex, ah as columnDependencyKey, ai as compareNumbers, aj as compareValues, ak as computeRowGroups, al as createSpreadsheetClipboardData, am as describeFormulaError, an as extractCellDependencies, ao as getRowSection, ap as getTableSections, aq as indexToColName, ar as isFormulaError, as as mapFormulaReferences, at as numberToText, au as offsetFormulaReferences, av as parseCellReference, aw as parseFormula, ax as parseHtmlTable, ay as parseRange, az as readSpreadsheetClipboard, aA as rebaseClipboardRows, aB as remapFormulaReferences, aC as rowPassesFilters, aD as serializeHtmlTable, aE as shiftFormulaReferences, aF as sortCompareValues, aG as tokenizeFormula } from './controller-
|
|
11
|
-
export { CellInputFormatKind, CsvParseOptions, CsvSerializeOptions, FillDirection, FormulaActiveCall, FormulaArgument, FormulaArgumentSpec, FormulaArgumentType, FormulaCaretContext, FormulaCriteriaPredicate, FormulaFunctionCategory, FormulaFunctionContext, FormulaFunctionDefinition, FormulaFunctionSuggestion, FormulaHints, FormulaSignaturePart, ImportFileIntoSpreadsheetOptions, ParsedCellInput, SPREADSHEET_IMPORT_ADAPTERS, SPREADSHEET_TABLE_ACTIONS, SpreadsheetImport, SpreadsheetImportAdapter, SpreadsheetMenuItem, SpreadsheetTableActionName, SpreadsheetTableActions, aggregateValues, applyFormulaSuggestion, bindSpreadsheetTableActions, checkFormulaArgumentCount, clampMenuPosition, compareCellValues, computeFillTarget, csvImportAdapter, escapeCsvField, fillSeries, formatCellDisplay, formatValueWithCode, getFillDirection, getFormulaArgumentSpecIndex, getFormulaCaretContext, getFormulaFunction, getFormulaHints, getFormulaSignature, getFormulaSignatureParts, getSpreadsheetMenuItems, importFileIntoSpreadsheet, isBlankValue, isSingleCellRange, listFormulaFunctions, matchesFilterRule, normalizeRange, parseCellInput, parseCriteria, parseCsv, parseNumberText, parseTsv, rangeContains, rangeContainsRange, rangesIntersect, registerFormulaFunction, registerSpreadsheetImportAdapters, roundFloat, searchFormulaFunctions, serialFromYmd, serializeCsv, serializeTsv, toNumber, tsvImportAdapter, unregisterFormulaFunction, wildcardToRegExp } from './spreadsheet/index.js';
|
|
12
|
+
export { A as ASTNode, B as BinaryOpNode, C as CellCoordinate, a as CellData, b as CellDep, c as CellFormat, d as CellPosition, e as CellRange, f as CellRefNode, g as CellValueReader, h as ColumnBinding, i as ColumnType, j as CsvExportOptions, k as CsvImportOptions, D as DEFAULT_COLUMN_WIDTH, l as DEFAULT_ROW_HEIGHT, m as DataSourceBinder, n as DependencyGraph, E as EvaluationContext, F as FORMULA_ERRORS, o as FilterOperator, p as FilterRule, q as FormulaDiagnostic, r as FormulaErrorCode, s as FormulaEvaluationResult, t as FormulaEvaluator, u as FormulaParser, v as FormulaRange, w as FormulaToken, x as FormulaTokenType, y as FunctionCallNode, G as GroupAggregate, z as GroupSummary, L as LiteralNode, M as MAX_FORMULA_ARRAY_SIZE, N as NameNode, H as NewFilterRule, P as ParsedSpreadsheetClipboard, I as PropertyRefNode, R as RangeNode, J as RowType, K as SPREADSHEET_CLIPBOARD_MIME, O as SortDirection, Q as SortKey, T as SpillRefNode, U as SpreadsheetCellSpan, V as SpreadsheetClipboardCell, W as SpreadsheetClipboardData, X as SpreadsheetClipboardPayload, Y as SpreadsheetClipboardSource, Z as SpreadsheetColumn, S as SpreadsheetController, _ as SpreadsheetControllerOptions, $ as SpreadsheetDataSource, a0 as SpreadsheetDataSourceField, a1 as SpreadsheetDocument, a2 as SpreadsheetFilterState, a3 as SpreadsheetGrouping, a4 as SpreadsheetRow, a5 as SpreadsheetRowGroup, a6 as SpreadsheetRowSection, a7 as SpreadsheetSpill, a8 as SpreadsheetTableSettings, a9 as SpreadsheetViewColumn, aa as SpreadsheetViewModel, ab as SpreadsheetViewRow, ac as StructuralChange, ad as UnaryOpNode, ae as WHOLE_COLUMN_END_ROW, af as buildSpreadsheetView, ag as colNameToIndex, ah as columnDependencyKey, ai as compareNumbers, aj as compareValues, ak as computeRowGroups, al as createSpreadsheetClipboardData, am as describeFormulaError, an as extractCellDependencies, ao as getRowSection, ap as getTableSections, aq as indexToColName, ar as isFormulaError, as as mapFormulaReferences, at as numberToText, au as offsetFormulaReferences, av as parseCellReference, aw as parseFormula, ax as parseHtmlTable, ay as parseRange, az as readSpreadsheetClipboard, aA as rebaseClipboardRows, aB as remapFormulaReferences, aC as rowPassesFilters, aD as serializeHtmlTable, aE as shiftFormulaReferences, aF as sortCompareValues, aG as tokenizeFormula } from './controller-BhLLAoi8.js';
|
|
13
|
+
export { CellInputFormatKind, CsvParseOptions, CsvSerializeOptions, FillDirection, FormattedNumberValue, FormulaActiveCall, FormulaArgument, FormulaArgumentSpec, FormulaArgumentType, FormulaCaretContext, FormulaCriteriaPredicate, FormulaFunctionCategory, FormulaFunctionContext, FormulaFunctionDefinition, FormulaFunctionSuggestion, FormulaHints, FormulaSignaturePart, ImportFileIntoSpreadsheetOptions, MAX_NUMBER_FORMAT_CODE_CHARS, NUMBER_FORMAT_PRESETS, NumberFormat, NumberFormatColor, NumberFormatKind, NumberFormatPreset, ParsedCellInput, SPREADSHEET_IMPORT_ADAPTERS, SPREADSHEET_TABLE_ACTIONS, SpreadsheetImport, SpreadsheetImportAdapter, SpreadsheetMenuItem, SpreadsheetTableActionName, SpreadsheetTableActions, aggregateValues, applyFormulaSuggestion, bindSpreadsheetTableActions, builtinNumberFormat, builtinNumberFormatId, cellFormatForNumberFormat, checkFormulaArgumentCount, clampMenuPosition, clearNumberFormatCache, compareCellValues, computeFillTarget, csvImportAdapter, dateValueToSerial, escapeCsvField, fillSeries, formatCellDisplay, formatCellForDisplay, formatGeneralFit, formatNumberFormatValue, formatTextFunction, formatValueWithCode, getFillDirection, getFormulaArgumentSpecIndex, getFormulaCaretContext, getFormulaFunction, getFormulaHints, getFormulaSignature, getFormulaSignatureParts, getSpreadsheetMenuItems, importFileIntoSpreadsheet, isBlankValue, isGeneralNumberFormat, isSingleCellRange, listFormulaFunctions, matchesFilterRule, normalizeRange, numberFormatColorToCss, numberFormatForCellFormat, parseCellInput, parseCriteria, parseCsv, parseNumberText, parseTsv, rangeContains, rangeContainsRange, rangesIntersect, registerFormulaFunction, registerSpreadsheetImportAdapters, roundFloat, runSpreadsheetMenuItem, searchFormulaFunctions, serialFromYmd, serializeCsv, serializeTsv, toNumber, tsvImportAdapter, unregisterFormulaFunction, wildcardToRegExp } from './spreadsheet/index.js';
|
|
12
14
|
export { BindDirtyToHistoryOptions, DirtyHistorySource, DirtyTracker, DirtyTrackerOptions, HistoryDirtyBinding, HistoryManager, bindDirtyToHistory, createDirtyTracker, createHistoryManager, defaultIsEqual, withoutDirty } from './history/index.js';
|
|
13
15
|
export { C as Command, a as HistoryEntry, b as HistoryManagerOptions, c as HistoryMark, H as HistoryState, M as MergedExecutionOptions, S as SnapshotCommandOptions } from './types-GT5a5YAX.js';
|
|
14
16
|
import { I as ImportAdapterRegistry, a as ImportOutcome, F as FileLike } from './registry-GJI4gToU.js';
|
|
15
17
|
export { b as FindImportAdapterQuery, c as ImportAdapter, d as ImportContext, e as ImportError, f as ImportErrorCode, g as ImportFileOptions, h as ImportInput, i as ImportTarget, R as RegisterImportAdapterOptions, j as createImportContext } from './registry-GJI4gToU.js';
|
|
16
18
|
import { Schema, Slice } from '@tiptap/pm/model';
|
|
17
19
|
import { EditorView } from '@tiptap/pm/view';
|
|
20
|
+
export { DiffChange, DiffOpType, DiffRun, DiffSequencesOptions, diffChanges, diffSequences } from './compare/index.js';
|
|
21
|
+
export { C as CompareDocumentsOptions, a as CompareDocumentsResult, b as CompareSource, c as CompareSummary, d as compareDocuments, e as compareHtml } from './documents-BQjzJNe2.js';
|
|
18
22
|
export { MarkdownOptions } from 'tiptap-markdown';
|
|
19
23
|
import '@tiptap/pm/state';
|
|
20
24
|
import '@tiptap/extension-image';
|
|
25
|
+
import './registry-evKTP4ls.js';
|
|
26
|
+
import './schema-DYDGdYL9.js';
|
|
21
27
|
import '@tiptap/extension-mention';
|
|
22
28
|
import '@tiptap/suggestion';
|
|
23
29
|
|