@portabletext/editor 4.2.4 → 4.3.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.
@@ -62,4 +62,5 @@ declare const EditorRefPlugin: React.ForwardRefExoticComponent<React.RefAttribut
62
62
  declare function EventListenerPlugin(props: {
63
63
  on: (event: EditorEmittedEvent) => void;
64
64
  }): null;
65
- export { BehaviorPlugin, EditorRefPlugin, EventListenerPlugin };
65
+ export { BehaviorPlugin, EditorRefPlugin, EventListenerPlugin };
66
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/plugins/plugin.behavior.tsx","../../src/plugins/plugin.editor-ref.tsx","../../src/plugins/plugin.event-listener.tsx"],"sourcesContent":[],"mappings":";;;;AAOA;iBAAgB,cAAA;ECAH,SAAA,EDAqC,KCArC,CDA2C,QCQtD,CAAA;CAR0B,CAAA,EAAA,IAAA;;ADA5B;;ACAa,cAAA,eAQX,EAR0B,KAAA,CAAA,yBAQ1B,CAR0B,KAAA,CAAA,aAQ1B,CAR0B,MAQ1B,GAAA,IAAA,CAAA,CAAA;;;ADRF;;ACAA;;;;;;AC8CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAgB,mBAAA;cACF"}
@@ -334,4 +334,5 @@ declare const isSelectionCollapsed: EditorSelector<boolean>;
334
334
  * @public
335
335
  */
336
336
  declare const isSelectionExpanded: EditorSelector<boolean>;
337
- export { type MarkState, getActiveAnnotations, getActiveListItem, getActiveStyle, getAnchorBlock, getAnchorChild, getAnchorSpan, getAnchorTextBlock, getBlockOffsets, getBlockTextAfter, getBlockTextBefore, getCaretWordSelection, getFirstBlock, getFocusBlock, getFocusBlockObject, getFocusChild, getFocusInlineObject, getFocusListBlock, getFocusSpan, getFocusTextBlock, getLastBlock, getMarkState, getNextBlock, getNextInlineObject, getNextInlineObjects, getNextSpan, getPreviousBlock, getPreviousInlineObject, getPreviousInlineObjects, getPreviousSpan, getSelectedBlocks, getSelectedSpans, getSelectedTextBlocks, getSelectedValue, getSelection, getSelectionEndBlock, getSelectionEndChild, getSelectionEndPoint, getSelectionStartBlock, getSelectionStartChild, getSelectionStartPoint, getSelectionText, getValue, isActiveAnnotation, isActiveDecorator, isActiveListItem, isActiveStyle, isAtTheEndOfBlock, isAtTheStartOfBlock, isOverlappingSelection, isPointAfterSelection, isPointBeforeSelection, isSelectingEntireBlocks, isSelectionCollapsed, isSelectionExpanded };
337
+ export { type MarkState, getActiveAnnotations, getActiveListItem, getActiveStyle, getAnchorBlock, getAnchorChild, getAnchorSpan, getAnchorTextBlock, getBlockOffsets, getBlockTextAfter, getBlockTextBefore, getCaretWordSelection, getFirstBlock, getFocusBlock, getFocusBlockObject, getFocusChild, getFocusInlineObject, getFocusListBlock, getFocusSpan, getFocusTextBlock, getLastBlock, getMarkState, getNextBlock, getNextInlineObject, getNextInlineObjects, getNextSpan, getPreviousBlock, getPreviousInlineObject, getPreviousInlineObjects, getPreviousSpan, getSelectedBlocks, getSelectedSpans, getSelectedTextBlocks, getSelectedValue, getSelection, getSelectionEndBlock, getSelectionEndChild, getSelectionEndPoint, getSelectionStartBlock, getSelectionStartChild, getSelectionStartPoint, getSelectionText, getValue, isActiveAnnotation, isActiveDecorator, isActiveListItem, isActiveStyle, isAtTheEndOfBlock, isAtTheStartOfBlock, isOverlappingSelection, isPointAfterSelection, isPointBeforeSelection, isSelectingEntireBlocks, isSelectionCollapsed, isSelectionExpanded };
338
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/selectors/selector.get-active-annotations.ts","../../src/selectors/selector.get-active-list-item.ts","../../src/selectors/selector.get-active-style.ts","../../src/selectors/selector.get-anchor-block.ts","../../src/selectors/selector.get-anchor-child.ts","../../src/selectors/selector.get-anchor-span.ts","../../src/selectors/selector.get-anchor-text-block.ts","../../src/selectors/selector.get-block-offsets.ts","../../src/selectors/selector.get-caret-word-selection.ts","../../src/selectors/selector.get-first-block.ts","../../src/selectors/selector.get-focus-block.ts","../../src/selectors/selector.get-focus-block-object.ts","../../src/selectors/selector.get-focus-child.ts","../../src/selectors/selector.get-focus-inline-object.ts","../../src/selectors/selector.get-focus-list-block.ts","../../src/selectors/selector.get-focus-span.ts","../../src/selectors/selector.get-focus-text-block.ts","../../src/selectors/selector.get-last-block.ts","../../src/selectors/selector.get-mark-state.ts","../../src/selectors/selector.get-next-block.ts","../../src/selectors/selector.get-next-inline-object.ts","../../src/selectors/selector.get-next-inline-objects.ts","../../src/selectors/selector.get-next-span.ts","../../src/selectors/selector.get-previous-block.ts","../../src/selectors/selector.get-previous-inline-object.ts","../../src/selectors/selector.get-previous-inline-objects.ts","../../src/selectors/selector.get-previous-span.ts","../../src/selectors/selector.get-selected-blocks.ts","../../src/selectors/selector.get-selected-spans.ts","../../src/selectors/selector.get-selected-text-blocks.ts","../../src/selectors/selector.get-selected-value.ts","../../src/selectors/selector.get-selection.ts","../../src/selectors/selector.get-selection-end-block.ts","../../src/selectors/selector.get-selection-end-child.ts","../../src/selectors/selector.get-selection-end-point.ts","../../src/selectors/selector.get-selection-start-block.ts","../../src/selectors/selector.get-selection-start-child.ts","../../src/selectors/selector.get-selection-start-point.ts","../../src/selectors/selector.get-selection-text.ts","../../src/selectors/selector.get-text-after.ts","../../src/selectors/selector.get-text-before.ts","../../src/selectors/selector.get-value.ts","../../src/selectors/selector.is-active-annotation.ts","../../src/selectors/selector.is-active-decorator.ts","../../src/selectors/selector.is-active-list-item.ts","../../src/selectors/selector.is-active-style.ts","../../src/selectors/selector.is-at-the-end-of-block.ts","../../src/selectors/selector.is-at-the-start-of-block.ts","../../src/selectors/selector.is-overlapping-selection.ts","../../src/selectors/selector.is-point-after-selection.ts","../../src/selectors/selector.is-point-before-selection.ts","../../src/selectors/selector.is-selecting-entire-blocks.ts","../../src/selectors/selector.is-selection-collapsed.ts","../../src/selectors/selector.is-selection-expanded.ts"],"sourcesContent":[],"mappings":";;;AAQA;;AAAkD,cAArC,oBAAqC,EAAf,cAAe,CAAA,KAAA,CAAM,kBAAN,CAAA,CAAA;;AAAlD;;AAAkD,cCDrC,iBDCqC,ECDlB,cDCkB,CCAhD,qBDAgD,CAAA,UAAA,CAAA,GAAA,SAAA,CAAA;;AAAlD;;AAAkD,cEDrC,cFCqC,EEDrB,cFCqB,CEDN,qBFCM,CAAA,OAAA,CAAA,CAAA;AAAlD;;;AAAmC,cGAtB,cHAsB,EGAN,cHAM,CAAA;EAAc,IAAA,EGCxC,iBHDwC;QGCf;AFFlC,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,cICtB,cJDsB,EICN,cJDM,CAAA;EAAc,IAAA,EIGrC,kBJHqC,GIGhB,gBJHgB;QIIrC;AHLZ,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,cKAtB,aLAsB,EKAP,cLAO,CAAA;EAAc,IAAA,EKCxC,gBLDwC;QKChB;AJFjC,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,cMAtB,kBNAsB,EMAF,cNAE,CAAA;EAAc,IAAA,EMCxC,qBNDwC;QMCX;ALFtC,CAAA,GAAa,SAAA,CAAA;;ADCb;;AAAkD,cOCrC,ePDqC,EOCpB,cPDoB,CAAA;EAAf,KAAA,EOEzB,WPFyB;EAAc,GAAA,EOErB,WPFqB;;;AAAjD;;;;AAAiD,cQcpC,qBRdoC,EQcb,cRda,CQcE,eRdF,CAAA;AAAjD;;;AAAmC,cSDtB,aTCsB,ESDP,cTCO,CAAA;EAAc,IAAA,ESAxC,iBTAwC;QSAf;ARDlC,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,cUAtB,aVAsB,EUAP,cVAO,CAAA;EAAc,IAAA,EUCxC,iBVDwC;QUCf;ATFlC,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,cWAtB,mBXAsB,EWAD,cXAC,CAAA;EAAc,IAAA,EWCxC,kBXDwC;QWCd;AVFnC,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,cYCtB,aZDsB,EYCP,cZDO,CAAA;EAAc,IAAA,EYGrC,kBZHqC,GYGhB,gBZHgB;QYIrC;AXLZ,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,caAtB,oBbAsB,EaAA,cbAA,CAAA;EAAc,IAAA,EaCxC,kBbDwC;QaCd;AZFnC,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,ccCtB,iBdDsB,EcCH,cdDG,CAAA;EAAc,IAAA,EcExC,qBdFwC;QcEX;AbHtC,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,ceAtB,YfAsB,EeAR,cfAQ,CAAA;EAAc,IAAA,EeCxC,gBfDwC;QeChB;AdFjC,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,cgBAtB,iBhBAsB,EgBAH,chBAG,CAAA;EAAc,IAAA,EgBCxC,qBhBDwC;QgBCX;AfFtC,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,ciBDtB,YjBCsB,EiBDR,cjBCQ,CAAA;EAAc,IAAA,EiBAxC,iBjBAwC;QiBAf;AhBDlC,CAAA,GAAa,SAAA,CAAA;;;ADCb;AAAwD,KkBK5C,SAAA,GlBL4C;EAAN,KAAA,EAAA,WAAA;EAAf,KAAA,EkBQtB,KlBRsB,CAAA,MAAA,CAAA;CAAc,GAAA;;ECDpC,KAAA,EiBaA,KjBbA,CAAA,MAAA,CA6BZ;iBiBfoB;AhBdrB,CAAA;;ACCA;;;;AAA2C,ceqB9B,YfrB8B,EeqBhB,cfrBgB,CeqBD,SfrBC,GAAA,SAAA,CAAA;AHA3C;;;AAAmC,cmBAtB,YnBAsB,EmBAR,cnBAQ,CAAA;EAAc,IAAA,EmBCxC,iBnBDwC;QmBCf;AlBFlC,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,coBEtB,mBpBFsB,EoBED,cpBFC,CAAA;EAAc,IAAA,EoBIrC,kBpBJqC;QoBKrC;AnBNZ,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,cqBEtB,oBrBFsB,EqBEA,crBFA,CqBGjC,KrBHiC,CAAA;EAAc,IAAA,EqBIvC,kBrBJuC;QqBKvC;ApBNV,CAAA,CAAA,CAAA;ADCA;;;AAAmC,csBEtB,WtBFsB,EsBET,ctBFS,CAAA;EAAc,IAAA,EsBIrC,gBtBJqC;SsBKpC,0BAA0B;ArBNvC,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,cuBAtB,gBvBAsB,EuBAJ,cvBAI,CAAA;EAAc,IAAA,EuBCxC,iBvBDwC;QuBCf;AtBFlC,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,cwBEtB,uBxBFsB,EwBEG,cxBFH,CAAA;EAAc,IAAA,EwBIrC,kBxBJqC;QwBKrC;AvBNZ,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,cyBEtB,wBzBFsB,EyBEI,czBFJ,CyBGjC,KzBHiC,CAAA;EAAc,IAAA,EyBIvC,kBzBJuC;QyBKvC;AxBNV,CAAA,CAAA,CAAA;ADCA;;;AAAmC,c0BEtB,e1BFsB,E0BEL,c1BFK,CAAA;EAAc,IAAA,E0BIrC,gB1BJqC;S0BKpC,0BAA0B;AzBNvC,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,c2BEtB,iB3BFsB,E2BEH,c3BFG,C2BGjC,K3BHiC,CAAA;EAAc,IAAA,E2BGlC,iB3BHkC;Q2BGT;A1BJxC,CAAA,CAAA,CAAA;ADCA;;;AAAmC,c4BAtB,gB5BAsB,E4BAJ,c5BAI,C4BCjC,K5BDiC,CAAA;EAAc,IAAA,E4BEvC,gB5BFuC;Q4BGvC;A3BJV,CAAA,CAAA,CAAA;ADCA;;;AAAmC,c6BEtB,qB7BFsB,E6BEC,c7BFD,C6BGjC,K7BHiC,CAAA;EAAc,IAAA,E6BGlC,qB7BHkC;Q6BGL;A5BJ5C,CAAA,CAAA,CAAA;;ADCA;;AAAkD,c8BErC,gB9BFqC,E8BEnB,c9BFmB,C8BEJ,K9BFI,C8BEE,iB9BFF,CAAA,CAAA;;AAAlD;;AAAkD,c+BFrC,Y/BEqC,E+BFvB,c/BEuB,C+BFR,e/BEQ,CAAA;AAAlD;;;AAAmC,cgCCtB,oBhCDsB,EgCCA,chCDA,CAAA;EAAc,IAAA,EgCGrC,iBhCHqC;QgCIrC;A/BLZ,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,ciCCtB,oBjCDsB,EiCCA,cjCDA,CAAA;EAAc,IAAA,EiCGrC,gBjCHqC,GiCGlB,kBjCHkB;QiCIrC;AhCLZ,CAAA,GAAa,SAAA,CAAA;;ADCb;;AAAkD,ckCFrC,oBlCEqC,EkCFf,clCEe,CkCDhD,oBlCCgD,GAAA,SAAA,CAAA;AAAlD;;;AAAmC,cmCCtB,sBnCDsB,EmCCE,cnCDF,CAAA;EAAc,IAAA,EmCGrC,iBnCHqC;QmCIrC;AlCLZ,CAAA,GAAa,SAAA,CAAA;ADCb;;;AAAmC,coCCtB,sBpCDsB,EoCCE,cpCDF,CAAA;EAAc,IAAA,EoCGrC,gBpCHqC,GoCGlB,kBpCHkB;QoCIrC;AnCLZ,CAAA,GAAa,SAAA,CAAA;;ADCb;;AAAkD,cqCFrC,sBrCEqC,EqCFb,crCEa,CqCDhD,oBrCCgD,GAAA,SAAA,CAAA;;;AAAlD;AAAwD,csCD3C,gBtCC2C,EsCDzB,ctCCyB,CAAA,MAAA,CAAA;;;AAAxD;AAAwD,cuCC3C,iBvCD2C,EuCCxB,cvCDwB,CAAA,MAAA,CAAA;;;AAAxD;AAAwD,cwCC3C,kBxCD2C,EwCCvB,cxCDuB,CAAA,MAAA,CAAA;;AAAxD;;AAAkD,cyCFrC,QzCEqC,EyCF3B,czCE2B,CyCFZ,KzCEY,CyCFN,iBzCEM,CAAA,CAAA;;;AAAlD;;;AAAmC,iB0CGnB,kBAAA,C1CHmB,UAAA,EAAA,MAAA,EAAA,OGC1B,CHD0B,EAAA;EAAc;;ACDjD;;ACAA;;ECCa,IAAA,CAAA,EAAA,SAAA,GAaZ,MAAA;CAZQ,CAAA,EuCaN,cvCbM,CAAA,OAAA,CAAA;;;AHDT;AAAwD,iB2CAxC,iBAAA,C3CAwC,SAAA,EAAA,MAAA,CAAA,E2CAF,c3CAE,CAAA,OAAA,CAAA;;;AAAxD;AAAwD,iB4CFxC,gBAAA,C5CEwC,QAAA,EAAA,MAAA,CAAA,E4CFJ,c5CEI,CAAA,OAAA,CAAA;;;AAAxD;AAAwD,iB6CFxC,aAAA,C7CEwC,KAAA,EAAA,MAAA,CAAA,E6CFV,c7CEU,CAAA,OAAA,CAAA;AAAxD;;;AAAmC,iB8CEnB,iBAAA,C9CFmB,KAAA,EAAA;EAAc,IAAA,E8CGzC,iB9CHyC;Q8CIzC;A7CLR,CAAA,CAAA,E6CMI,c7CNS,CAAA,OA6BZ,CAAA;AD5BD;;;AAAmC,iB+CEnB,mBAAA,C/CFmB,KAAA,EAAA;EAAc,IAAA,E+CGzC,iB/CHyC;Q+CIzC;A9CLR,CAAA,CAAA,E8CMI,c9CNS,CAAA,OA6BZ,CAAA;;AD5BD;;AAAkD,iBgDMlC,sBAAA,ChDNkC,SAAA,EgDOrC,ehDPqC,CAAA,EgDQ/C,chDR+C,CAAA,OAAA,CAAA;;AAAlD;;AAAkD,iBiDAlC,qBAAA,CjDAkC,KAAA,EiDCzC,oBjDDyC,CAAA,EiDE/C,cjDF+C,CAAA,OAAA,CAAA;;AAAlD;;AAAkD,iBkDAlC,sBAAA,ClDAkC,KAAA,EkDCzC,oBlDDyC,CAAA,EkDE/C,clDF+C,CAAA,OAAA,CAAA;;;AAAlD;AAAwD,cmDE3C,uBnDF2C,EmDElB,cnDFkB,CAAA,OAAA,CAAA;;;AAAxD;AAAwD,coDF3C,oBpDE2C,EoDFrB,cpDEqB,CAAA,OAAA,CAAA;;;AAAxD;AAAwD,cqDF3C,mBrDE2C,EqDFtB,crDEsB,CAAA,OAAA,CAAA"}
@@ -1,4 +1,4 @@
1
- import { F as BlockOffset, X as EditorContext, dt as EditorSelection, en as BlockPath, ft as EditorSelectionPoint, nn as KeyedSegment, tn as ChildPath } from "../_chunks-dts/behavior.types.action.js";
1
+ import { F as BlockOffset, X as EditorContext, dt as EditorSelection, en as BlockPath, ft as EditorSelectionPoint, nn as KeyedSegment, rn as Path, tn as ChildPath } from "../_chunks-dts/behavior.types.action.js";
2
2
  import * as _portabletext_schema9 from "@portabletext/schema";
3
3
  import { PortableTextBlock, PortableTextTextBlock, isSpan, isTextBlock } from "@portabletext/schema";
4
4
  /**
@@ -115,6 +115,10 @@ declare function getTextBlockText(block: PortableTextTextBlock): string;
115
115
  * @public
116
116
  */
117
117
  declare function isEmptyTextBlock(context: Pick<EditorContext, 'schema'>, block: PortableTextBlock | unknown): boolean;
118
+ /**
119
+ * @public
120
+ */
121
+ declare function isEqualPaths(a: Path, b: Path): boolean;
118
122
  /**
119
123
  * @public
120
124
  */
@@ -184,4 +188,5 @@ declare function splitTextBlock({
184
188
  before: PortableTextTextBlock;
185
189
  after: PortableTextTextBlock;
186
190
  } | undefined;
187
- export { blockOffsetToBlockSelectionPoint, blockOffsetToSelectionPoint, blockOffsetToSpanSelectionPoint, blockOffsetsToSelection, childSelectionPointToBlockOffset, getBlockEndPoint, getBlockStartPoint, getSelectionEndPoint, getSelectionStartPoint, getTextBlockText, isEmptyTextBlock, isEqualSelectionPoints, isEqualSelections, isKeyedSegment, isSelectionCollapsed, isSpan, isTextBlock, mergeTextBlocks, reverseSelection, selectionPointToBlockOffset, sliceBlocks, spanSelectionPointToBlockOffset, splitTextBlock };
191
+ export { blockOffsetToBlockSelectionPoint, blockOffsetToSelectionPoint, blockOffsetToSpanSelectionPoint, blockOffsetsToSelection, childSelectionPointToBlockOffset, getBlockEndPoint, getBlockStartPoint, getSelectionEndPoint, getSelectionStartPoint, getTextBlockText, isEmptyTextBlock, isEqualPaths, isEqualSelectionPoints, isEqualSelections, isKeyedSegment, isSelectionCollapsed, isSpan, isTextBlock, mergeTextBlocks, reverseSelection, selectionPointToBlockOffset, sliceBlocks, spanSelectionPointToBlockOffset, splitTextBlock };
192
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/utils/util.block-offset.ts","../../src/utils/util.block-offset-to-block-selection-point.ts","../../src/utils/util.block-offset-to-selection-point.ts","../../src/utils/util.block-offsets-to-selection.ts","../../src/utils/util.child-selection-point-to-block-offset.ts","../../src/utils/util.get-block-end-point.ts","../../src/utils/util.get-block-start-point.ts","../../src/utils/util.get-selection-end-point.ts","../../src/utils/util.get-selection-start-point.ts","../../src/utils/util.get-text-block-text.ts","../../src/utils/util.is-empty-text-block.ts","../../src/utils/util.is-equal-paths.ts","../../src/utils/util.is-equal-selection-points.ts","../../src/utils/util.is-equal-selections.ts","../../src/utils/util.is-keyed-segment.ts","../../src/utils/util.is-selection-collapsed.ts","../../src/utils/util.merge-text-blocks.ts","../../src/utils/util.reverse-selection.ts","../../src/utils/util.selection-point-to-block-offset.ts","../../src/utils/util.slice-blocks.ts","../../src/utils/util.split-text-block.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { blockOffsetToSpanSelectionPoint, getBlockKeyFromSelectionPoint, getChildKeyFromSelectionPoint, isEqualSelectionPoints, parseBlock } from "../_chunks-es/util.slice-blocks.js";
2
- import { getBlockEndPoint, getBlockStartPoint, getSelectionEndPoint, getSelectionStartPoint, isKeyedSegment, isSelectionCollapsed, sliceBlocks, spanSelectionPointToBlockOffset } from "../_chunks-es/util.slice-blocks.js";
2
+ import { getBlockEndPoint, getBlockStartPoint, getSelectionEndPoint, getSelectionStartPoint, isEqualPaths, isKeyedSegment, isSelectionCollapsed, sliceBlocks, spanSelectionPointToBlockOffset } from "../_chunks-es/util.slice-blocks.js";
3
3
  import { isTextBlock, isSpan } from "@portabletext/schema";
4
4
  import { isSpan as isSpan2, isTextBlock as isTextBlock2 } from "@portabletext/schema";
5
5
  import { sliceTextBlock } from "../_chunks-es/util.slice-text-block.js";
@@ -183,6 +183,7 @@ export {
183
183
  getSelectionStartPoint,
184
184
  getTextBlockText,
185
185
  isEmptyTextBlock,
186
+ isEqualPaths,
186
187
  isEqualSelectionPoints,
187
188
  isEqualSelections,
188
189
  isKeyedSegment,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/utils/util.block-offset-to-block-selection-point.ts","../../src/utils/util.block-offset-to-selection-point.ts","../../src/utils/util.block-offsets-to-selection.ts","../../src/utils/util.child-selection-point-to-block-offset.ts","../../src/utils/util.is-equal-selections.ts","../../src/utils/util.merge-text-blocks.ts","../../src/utils/util.reverse-selection.ts","../../src/utils/util.selection-point-to-block-offset.ts","../../src/utils/util.split-text-block.ts"],"sourcesContent":["import type {EditorContext} from '../editor/editor-snapshot'\nimport type {BlockOffset} from '../types/block-offset'\nimport type {EditorSelectionPoint} from '../types/editor'\n\n/**\n * @public\n */\nexport function blockOffsetToBlockSelectionPoint({\n context,\n blockOffset,\n}: {\n context: Pick<EditorContext, 'value'>\n blockOffset: BlockOffset\n}): EditorSelectionPoint | undefined {\n let selectionPoint: EditorSelectionPoint | undefined\n\n for (const block of context.value) {\n if (block._key === blockOffset.path[0]._key) {\n selectionPoint = {\n path: [{_key: block._key}],\n offset: blockOffset.offset,\n }\n break\n }\n }\n\n return selectionPoint\n}\n","import type {EditorContext} from '../editor/editor-snapshot'\nimport type {BlockOffset} from '../types/block-offset'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport {blockOffsetToSpanSelectionPoint} from './util.block-offset'\nimport {blockOffsetToBlockSelectionPoint} from './util.block-offset-to-block-selection-point'\n\n/**\n * @public\n */\nexport function blockOffsetToSelectionPoint({\n context,\n blockOffset,\n direction,\n}: {\n context: Pick<EditorContext, 'schema' | 'value'>\n blockOffset: BlockOffset\n direction: 'forward' | 'backward'\n}): EditorSelectionPoint | undefined {\n const spanSelectionPoint = blockOffsetToSpanSelectionPoint({\n context,\n blockOffset,\n direction,\n })\n\n if (!spanSelectionPoint) {\n return blockOffsetToBlockSelectionPoint({\n context,\n blockOffset,\n })\n }\n\n return spanSelectionPoint\n}\n","import type {EditorContext} from '../editor/editor-snapshot'\nimport type {BlockOffset} from '../types/block-offset'\nimport type {EditorSelection} from '../types/editor'\nimport {blockOffsetToSelectionPoint} from './util.block-offset-to-selection-point'\n\n/**\n * @public\n */\nexport function blockOffsetsToSelection({\n context,\n offsets,\n backward,\n}: {\n context: Pick<EditorContext, 'schema' | 'value'>\n offsets: {anchor: BlockOffset; focus: BlockOffset}\n backward?: boolean\n}): EditorSelection {\n const anchor = blockOffsetToSelectionPoint({\n context,\n blockOffset: offsets.anchor,\n direction: backward ? 'backward' : 'forward',\n })\n const focus = blockOffsetToSelectionPoint({\n context,\n blockOffset: offsets.focus,\n direction: backward ? 'forward' : 'backward',\n })\n\n if (!anchor || !focus) {\n return null\n }\n\n return {\n anchor,\n focus,\n backward,\n }\n}\n","import {isSpan, isTextBlock} from '@portabletext/schema'\nimport type {EditorContext} from '../editor/editor-snapshot'\nimport type {BlockOffset} from '../types/block-offset'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport {\n getBlockKeyFromSelectionPoint,\n getChildKeyFromSelectionPoint,\n} from './util.selection-point'\n\n/**\n * @public\n */\nexport function childSelectionPointToBlockOffset({\n context,\n selectionPoint,\n}: {\n context: Pick<EditorContext, 'schema' | 'value'>\n selectionPoint: EditorSelectionPoint\n}): BlockOffset | undefined {\n let offset = 0\n\n const blockKey = getBlockKeyFromSelectionPoint(selectionPoint)\n const childKey = getChildKeyFromSelectionPoint(selectionPoint)\n\n if (!blockKey || !childKey) {\n return undefined\n }\n\n for (const block of context.value) {\n if (block._key !== blockKey) {\n continue\n }\n\n if (!isTextBlock(context, block)) {\n continue\n }\n\n for (const child of block.children) {\n if (child._key === childKey) {\n return {\n path: [{_key: block._key}],\n offset: offset + selectionPoint.offset,\n }\n }\n\n if (isSpan(context, child)) {\n offset += child.text.length\n }\n }\n }\n}\n","import type {EditorSelection} from '../types/editor'\nimport {isEqualSelectionPoints} from './util.is-equal-selection-points'\n\n/**\n * @public\n */\nexport function isEqualSelections(a: EditorSelection, b: EditorSelection) {\n if (!a && !b) {\n return true\n }\n\n if (!a || !b) {\n return false\n }\n\n return (\n isEqualSelectionPoints(a.anchor, b.anchor) &&\n isEqualSelectionPoints(a.focus, b.focus)\n )\n}\n","import {isTextBlock, type PortableTextTextBlock} from '@portabletext/schema'\nimport type {EditorContext} from '../editor/editor-snapshot'\nimport {parseBlock} from './parse-blocks'\n\n/**\n * @beta\n */\nexport function mergeTextBlocks({\n context,\n targetBlock,\n incomingBlock,\n}: {\n context: Pick<EditorContext, 'keyGenerator' | 'schema'>\n targetBlock: PortableTextTextBlock\n incomingBlock: PortableTextTextBlock\n}) {\n const parsedIncomingBlock = parseBlock({\n context,\n block: incomingBlock,\n options: {\n normalize: false,\n removeUnusedMarkDefs: true,\n validateFields: false,\n },\n })\n\n if (!parsedIncomingBlock || !isTextBlock(context, parsedIncomingBlock)) {\n return targetBlock\n }\n\n return {\n ...targetBlock,\n children: [...targetBlock.children, ...parsedIncomingBlock.children],\n markDefs: [\n ...(targetBlock.markDefs ?? []),\n ...(parsedIncomingBlock.markDefs ?? []),\n ],\n }\n}\n","import type {EditorSelection} from '../types/editor'\n\n/**\n * @public\n */\nexport function reverseSelection<\n TEditorSelection extends NonNullable<EditorSelection> | null,\n>(selection: TEditorSelection): TEditorSelection {\n if (!selection) {\n return selection\n }\n\n if (selection.backward) {\n return {\n anchor: selection.focus,\n focus: selection.anchor,\n backward: false,\n } as TEditorSelection\n }\n\n return {\n anchor: selection.focus,\n focus: selection.anchor,\n backward: true,\n } as TEditorSelection\n}\n","import type {EditorContext} from '../editor/editor-snapshot'\nimport type {BlockOffset} from '../types/block-offset'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport {childSelectionPointToBlockOffset} from './util.child-selection-point-to-block-offset'\nimport {getBlockKeyFromSelectionPoint} from './util.selection-point'\n\n/**\n * @public\n */\nexport function selectionPointToBlockOffset({\n context,\n selectionPoint,\n}: {\n context: Pick<EditorContext, 'schema' | 'value'>\n selectionPoint: EditorSelectionPoint\n}): BlockOffset | undefined {\n const blockKey = getBlockKeyFromSelectionPoint(selectionPoint)\n\n if (selectionPoint.path.length === 1 && blockKey !== undefined) {\n return {\n path: [{_key: blockKey}],\n offset: selectionPoint.offset,\n }\n }\n\n return childSelectionPointToBlockOffset({\n context,\n selectionPoint,\n })\n}\n","import {isSpan, type PortableTextTextBlock} from '@portabletext/schema'\nimport type {EditorContext} from '../editor/editor-snapshot'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport {sliceTextBlock} from './util.slice-text-block'\n\n/**\n * @beta\n */\nexport function splitTextBlock({\n context,\n block,\n point,\n}: {\n context: Pick<EditorContext, 'schema'>\n block: PortableTextTextBlock\n point: EditorSelectionPoint\n}): {before: PortableTextTextBlock; after: PortableTextTextBlock} | undefined {\n const firstChild = block.children.at(0)\n const lastChild = block.children.at(block.children.length - 1)\n\n if (!firstChild || !lastChild) {\n return undefined\n }\n\n const before = sliceTextBlock({\n context: {\n schema: context.schema,\n selection: {\n anchor: {\n path: [{_key: block._key}, 'children', {_key: firstChild._key}],\n offset: 0,\n },\n focus: point,\n },\n },\n block,\n })\n const after = sliceTextBlock({\n context: {\n schema: context.schema,\n selection: {\n anchor: point,\n focus: {\n path: [{_key: block._key}, 'children', {_key: lastChild._key}],\n offset: isSpan(context, lastChild) ? lastChild.text.length : 0,\n },\n },\n },\n block,\n })\n\n return {before, after}\n}\n"],"names":["blockOffsetToBlockSelectionPoint","context","blockOffset","selectionPoint","block","value","_key","path","offset","blockOffsetToSelectionPoint","direction","blockOffsetToSpanSelectionPoint","blockOffsetsToSelection","offsets","backward","anchor","focus","childSelectionPointToBlockOffset","blockKey","getBlockKeyFromSelectionPoint","childKey","getChildKeyFromSelectionPoint","isTextBlock","child","children","isSpan","text","length","isEqualSelections","a","b","isEqualSelectionPoints","mergeTextBlocks","targetBlock","incomingBlock","parsedIncomingBlock","parseBlock","options","normalize","removeUnusedMarkDefs","validateFields","markDefs","reverseSelection","selection","selectionPointToBlockOffset","undefined","splitTextBlock","point","firstChild","at","lastChild","before","sliceTextBlock","schema","after"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/utils/util.block-offset-to-block-selection-point.ts","../../src/utils/util.block-offset-to-selection-point.ts","../../src/utils/util.block-offsets-to-selection.ts","../../src/utils/util.child-selection-point-to-block-offset.ts","../../src/utils/util.is-equal-selections.ts","../../src/utils/util.merge-text-blocks.ts","../../src/utils/util.reverse-selection.ts","../../src/utils/util.selection-point-to-block-offset.ts","../../src/utils/util.split-text-block.ts"],"sourcesContent":["import type {EditorContext} from '../editor/editor-snapshot'\nimport type {BlockOffset} from '../types/block-offset'\nimport type {EditorSelectionPoint} from '../types/editor'\n\n/**\n * @public\n */\nexport function blockOffsetToBlockSelectionPoint({\n context,\n blockOffset,\n}: {\n context: Pick<EditorContext, 'value'>\n blockOffset: BlockOffset\n}): EditorSelectionPoint | undefined {\n let selectionPoint: EditorSelectionPoint | undefined\n\n for (const block of context.value) {\n if (block._key === blockOffset.path[0]._key) {\n selectionPoint = {\n path: [{_key: block._key}],\n offset: blockOffset.offset,\n }\n break\n }\n }\n\n return selectionPoint\n}\n","import type {EditorContext} from '../editor/editor-snapshot'\nimport type {BlockOffset} from '../types/block-offset'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport {blockOffsetToSpanSelectionPoint} from './util.block-offset'\nimport {blockOffsetToBlockSelectionPoint} from './util.block-offset-to-block-selection-point'\n\n/**\n * @public\n */\nexport function blockOffsetToSelectionPoint({\n context,\n blockOffset,\n direction,\n}: {\n context: Pick<EditorContext, 'schema' | 'value'>\n blockOffset: BlockOffset\n direction: 'forward' | 'backward'\n}): EditorSelectionPoint | undefined {\n const spanSelectionPoint = blockOffsetToSpanSelectionPoint({\n context,\n blockOffset,\n direction,\n })\n\n if (!spanSelectionPoint) {\n return blockOffsetToBlockSelectionPoint({\n context,\n blockOffset,\n })\n }\n\n return spanSelectionPoint\n}\n","import type {EditorContext} from '../editor/editor-snapshot'\nimport type {BlockOffset} from '../types/block-offset'\nimport type {EditorSelection} from '../types/editor'\nimport {blockOffsetToSelectionPoint} from './util.block-offset-to-selection-point'\n\n/**\n * @public\n */\nexport function blockOffsetsToSelection({\n context,\n offsets,\n backward,\n}: {\n context: Pick<EditorContext, 'schema' | 'value'>\n offsets: {anchor: BlockOffset; focus: BlockOffset}\n backward?: boolean\n}): EditorSelection {\n const anchor = blockOffsetToSelectionPoint({\n context,\n blockOffset: offsets.anchor,\n direction: backward ? 'backward' : 'forward',\n })\n const focus = blockOffsetToSelectionPoint({\n context,\n blockOffset: offsets.focus,\n direction: backward ? 'forward' : 'backward',\n })\n\n if (!anchor || !focus) {\n return null\n }\n\n return {\n anchor,\n focus,\n backward,\n }\n}\n","import {isSpan, isTextBlock} from '@portabletext/schema'\nimport type {EditorContext} from '../editor/editor-snapshot'\nimport type {BlockOffset} from '../types/block-offset'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport {\n getBlockKeyFromSelectionPoint,\n getChildKeyFromSelectionPoint,\n} from './util.selection-point'\n\n/**\n * @public\n */\nexport function childSelectionPointToBlockOffset({\n context,\n selectionPoint,\n}: {\n context: Pick<EditorContext, 'schema' | 'value'>\n selectionPoint: EditorSelectionPoint\n}): BlockOffset | undefined {\n let offset = 0\n\n const blockKey = getBlockKeyFromSelectionPoint(selectionPoint)\n const childKey = getChildKeyFromSelectionPoint(selectionPoint)\n\n if (!blockKey || !childKey) {\n return undefined\n }\n\n for (const block of context.value) {\n if (block._key !== blockKey) {\n continue\n }\n\n if (!isTextBlock(context, block)) {\n continue\n }\n\n for (const child of block.children) {\n if (child._key === childKey) {\n return {\n path: [{_key: block._key}],\n offset: offset + selectionPoint.offset,\n }\n }\n\n if (isSpan(context, child)) {\n offset += child.text.length\n }\n }\n }\n\n return undefined\n}\n","import type {EditorSelection} from '../types/editor'\nimport {isEqualSelectionPoints} from './util.is-equal-selection-points'\n\n/**\n * @public\n */\nexport function isEqualSelections(a: EditorSelection, b: EditorSelection) {\n if (!a && !b) {\n return true\n }\n\n if (!a || !b) {\n return false\n }\n\n return (\n isEqualSelectionPoints(a.anchor, b.anchor) &&\n isEqualSelectionPoints(a.focus, b.focus)\n )\n}\n","import {isTextBlock, type PortableTextTextBlock} from '@portabletext/schema'\nimport type {EditorContext} from '../editor/editor-snapshot'\nimport {parseBlock} from './parse-blocks'\n\n/**\n * @beta\n */\nexport function mergeTextBlocks({\n context,\n targetBlock,\n incomingBlock,\n}: {\n context: Pick<EditorContext, 'keyGenerator' | 'schema'>\n targetBlock: PortableTextTextBlock\n incomingBlock: PortableTextTextBlock\n}) {\n const parsedIncomingBlock = parseBlock({\n context,\n block: incomingBlock,\n options: {\n normalize: false,\n removeUnusedMarkDefs: true,\n validateFields: false,\n },\n })\n\n if (!parsedIncomingBlock || !isTextBlock(context, parsedIncomingBlock)) {\n return targetBlock\n }\n\n return {\n ...targetBlock,\n children: [...targetBlock.children, ...parsedIncomingBlock.children],\n markDefs: [\n ...(targetBlock.markDefs ?? []),\n ...(parsedIncomingBlock.markDefs ?? []),\n ],\n }\n}\n","import type {EditorSelection} from '../types/editor'\n\n/**\n * @public\n */\nexport function reverseSelection<\n TEditorSelection extends NonNullable<EditorSelection> | null,\n>(selection: TEditorSelection): TEditorSelection {\n if (!selection) {\n return selection\n }\n\n if (selection.backward) {\n return {\n anchor: selection.focus,\n focus: selection.anchor,\n backward: false,\n } as TEditorSelection\n }\n\n return {\n anchor: selection.focus,\n focus: selection.anchor,\n backward: true,\n } as TEditorSelection\n}\n","import type {EditorContext} from '../editor/editor-snapshot'\nimport type {BlockOffset} from '../types/block-offset'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport {childSelectionPointToBlockOffset} from './util.child-selection-point-to-block-offset'\nimport {getBlockKeyFromSelectionPoint} from './util.selection-point'\n\n/**\n * @public\n */\nexport function selectionPointToBlockOffset({\n context,\n selectionPoint,\n}: {\n context: Pick<EditorContext, 'schema' | 'value'>\n selectionPoint: EditorSelectionPoint\n}): BlockOffset | undefined {\n const blockKey = getBlockKeyFromSelectionPoint(selectionPoint)\n\n if (selectionPoint.path.length === 1 && blockKey !== undefined) {\n return {\n path: [{_key: blockKey}],\n offset: selectionPoint.offset,\n }\n }\n\n return childSelectionPointToBlockOffset({\n context,\n selectionPoint,\n })\n}\n","import {isSpan, type PortableTextTextBlock} from '@portabletext/schema'\nimport type {EditorContext} from '../editor/editor-snapshot'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport {sliceTextBlock} from './util.slice-text-block'\n\n/**\n * @beta\n */\nexport function splitTextBlock({\n context,\n block,\n point,\n}: {\n context: Pick<EditorContext, 'schema'>\n block: PortableTextTextBlock\n point: EditorSelectionPoint\n}): {before: PortableTextTextBlock; after: PortableTextTextBlock} | undefined {\n const firstChild = block.children.at(0)\n const lastChild = block.children.at(block.children.length - 1)\n\n if (!firstChild || !lastChild) {\n return undefined\n }\n\n const before = sliceTextBlock({\n context: {\n schema: context.schema,\n selection: {\n anchor: {\n path: [{_key: block._key}, 'children', {_key: firstChild._key}],\n offset: 0,\n },\n focus: point,\n },\n },\n block,\n })\n const after = sliceTextBlock({\n context: {\n schema: context.schema,\n selection: {\n anchor: point,\n focus: {\n path: [{_key: block._key}, 'children', {_key: lastChild._key}],\n offset: isSpan(context, lastChild) ? lastChild.text.length : 0,\n },\n },\n },\n block,\n })\n\n return {before, after}\n}\n"],"names":["blockOffsetToBlockSelectionPoint","context","blockOffset","selectionPoint","block","value","_key","path","offset","blockOffsetToSelectionPoint","direction","blockOffsetToSpanSelectionPoint","blockOffsetsToSelection","offsets","backward","anchor","focus","childSelectionPointToBlockOffset","blockKey","getBlockKeyFromSelectionPoint","childKey","getChildKeyFromSelectionPoint","isTextBlock","child","children","isSpan","text","length","isEqualSelections","a","b","isEqualSelectionPoints","mergeTextBlocks","targetBlock","incomingBlock","parsedIncomingBlock","parseBlock","options","normalize","removeUnusedMarkDefs","validateFields","markDefs","reverseSelection","selection","selectionPointToBlockOffset","undefined","splitTextBlock","point","firstChild","at","lastChild","before","sliceTextBlock","schema","after"],"mappings":";;;;;;AAOO,SAASA,iCAAiC;AAAA,EAC/CC;AAAAA,EACAC;AAIF,GAAqC;AACnC,MAAIC;AAEJ,aAAWC,SAASH,QAAQI;AAC1B,QAAID,MAAME,SAASJ,YAAYK,KAAK,CAAC,EAAED,MAAM;AAC3CH,uBAAiB;AAAA,QACfI,MAAM,CAAC;AAAA,UAACD,MAAMF,MAAME;AAAAA,QAAAA,CAAK;AAAA,QACzBE,QAAQN,YAAYM;AAAAA,MAAAA;AAEtB;AAAA,IACF;AAGF,SAAOL;AACT;AClBO,SAASM,4BAA4B;AAAA,EAC1CR;AAAAA,EACAC;AAAAA,EACAQ;AAKF,GAAqC;AAOnC,SAN2BC,gCAAgC;AAAA,IACzDV;AAAAA,IACAC;AAAAA,IACAQ;AAAAA,EAAAA,CACD,KAGQV,iCAAiC;AAAA,IACtCC;AAAAA,IACAC;AAAAA,EAAAA,CACD;AAIL;ACxBO,SAASU,wBAAwB;AAAA,EACtCX;AAAAA,EACAY;AAAAA,EACAC;AAKF,GAAoB;AAClB,QAAMC,SAASN,4BAA4B;AAAA,IACzCR;AAAAA,IACAC,aAAaW,QAAQE;AAAAA,IACrBL,WAAWI,WAAW,aAAa;AAAA,EAAA,CACpC,GACKE,QAAQP,4BAA4B;AAAA,IACxCR;AAAAA,IACAC,aAAaW,QAAQG;AAAAA,IACrBN,WAAWI,WAAW,YAAY;AAAA,EAAA,CACnC;AAED,SAAI,CAACC,UAAU,CAACC,QACP,OAGF;AAAA,IACLD;AAAAA,IACAC;AAAAA,IACAF;AAAAA,EAAAA;AAEJ;ACzBO,SAASG,iCAAiC;AAAA,EAC/ChB;AAAAA,EACAE;AAIF,GAA4B;AAC1B,MAAIK,SAAS;AAEb,QAAMU,WAAWC,8BAA8BhB,cAAc,GACvDiB,WAAWC,8BAA8BlB,cAAc;AAE7D,MAAI,EAAA,CAACe,YAAY,CAACE;AAIlB,eAAWhB,SAASH,QAAQI;AAC1B,UAAID,MAAME,SAASY,YAIdI,YAAYrB,SAASG,KAAK;AAI/B,mBAAWmB,SAASnB,MAAMoB,UAAU;AAClC,cAAID,MAAMjB,SAASc;AACjB,mBAAO;AAAA,cACLb,MAAM,CAAC;AAAA,gBAACD,MAAMF,MAAME;AAAAA,cAAAA,CAAK;AAAA,cACzBE,QAAQA,SAASL,eAAeK;AAAAA,YAAAA;AAIhCiB,iBAAOxB,SAASsB,KAAK,MACvBf,UAAUe,MAAMG,KAAKC;AAAAA,QAEzB;AAAA;AAIJ;AC9CO,SAASC,kBAAkBC,GAAoBC,GAAoB;AACxE,SAAI,CAACD,KAAK,CAACC,IACF,KAGL,CAACD,KAAK,CAACC,IACF,KAIPC,uBAAuBF,EAAEd,QAAQe,EAAEf,MAAM,KACzCgB,uBAAuBF,EAAEb,OAAOc,EAAEd,KAAK;AAE3C;ACZO,SAASgB,gBAAgB;AAAA,EAC9B/B;AAAAA,EACAgC;AAAAA,EACAC;AAKF,GAAG;AACD,QAAMC,sBAAsBC,WAAW;AAAA,IACrCnC;AAAAA,IACAG,OAAO8B;AAAAA,IACPG,SAAS;AAAA,MACPC,WAAW;AAAA,MACXC,sBAAsB;AAAA,MACtBC,gBAAgB;AAAA,IAAA;AAAA,EAClB,CACD;AAED,SAAI,CAACL,uBAAuB,CAACb,YAAYrB,SAASkC,mBAAmB,IAC5DF,cAGF;AAAA,IACL,GAAGA;AAAAA,IACHT,UAAU,CAAC,GAAGS,YAAYT,UAAU,GAAGW,oBAAoBX,QAAQ;AAAA,IACnEiB,UAAU,CACR,GAAIR,YAAYQ,YAAY,CAAA,GAC5B,GAAIN,oBAAoBM,YAAY,CAAA,CAAG;AAAA,EAAA;AAG7C;ACjCO,SAASC,iBAEdC,WAA+C;AAC/C,SAAKA,cAIDA,UAAU7B,WACL;AAAA,IACLC,QAAQ4B,UAAU3B;AAAAA,IAClBA,OAAO2B,UAAU5B;AAAAA,IACjBD,UAAU;AAAA,EAAA,IAIP;AAAA,IACLC,QAAQ4B,UAAU3B;AAAAA,IAClBA,OAAO2B,UAAU5B;AAAAA,IACjBD,UAAU;AAAA,EAAA;AAEd;AChBO,SAAS8B,4BAA4B;AAAA,EAC1C3C;AAAAA,EACAE;AAIF,GAA4B;AAC1B,QAAMe,WAAWC,8BAA8BhB,cAAc;AAE7D,SAAIA,eAAeI,KAAKoB,WAAW,KAAKT,aAAa2B,SAC5C;AAAA,IACLtC,MAAM,CAAC;AAAA,MAACD,MAAMY;AAAAA,IAAAA,CAAS;AAAA,IACvBV,QAAQL,eAAeK;AAAAA,EAAAA,IAIpBS,iCAAiC;AAAA,IACtChB;AAAAA,IACAE;AAAAA,EAAAA,CACD;AACH;ACrBO,SAAS2C,eAAe;AAAA,EAC7B7C;AAAAA,EACAG;AAAAA,EACA2C;AAKF,GAA8E;AAC5E,QAAMC,aAAa5C,MAAMoB,SAASyB,GAAG,CAAC,GAChCC,YAAY9C,MAAMoB,SAASyB,GAAG7C,MAAMoB,SAASG,SAAS,CAAC;AAE7D,MAAI,CAACqB,cAAc,CAACE;AAClB;AAGF,QAAMC,SAASC,eAAe;AAAA,IAC5BnD,SAAS;AAAA,MACPoD,QAAQpD,QAAQoD;AAAAA,MAChBV,WAAW;AAAA,QACT5B,QAAQ;AAAA,UACNR,MAAM,CAAC;AAAA,YAACD,MAAMF,MAAME;AAAAA,UAAAA,GAAO,YAAY;AAAA,YAACA,MAAM0C,WAAW1C;AAAAA,UAAAA,CAAK;AAAA,UAC9DE,QAAQ;AAAA,QAAA;AAAA,QAEVQ,OAAO+B;AAAAA,MAAAA;AAAAA,IACT;AAAA,IAEF3C;AAAAA,EAAAA,CACD,GACKkD,QAAQF,eAAe;AAAA,IAC3BnD,SAAS;AAAA,MACPoD,QAAQpD,QAAQoD;AAAAA,MAChBV,WAAW;AAAA,QACT5B,QAAQgC;AAAAA,QACR/B,OAAO;AAAA,UACLT,MAAM,CAAC;AAAA,YAACD,MAAMF,MAAME;AAAAA,UAAAA,GAAO,YAAY;AAAA,YAACA,MAAM4C,UAAU5C;AAAAA,UAAAA,CAAK;AAAA,UAC7DE,QAAQiB,OAAOxB,SAASiD,SAAS,IAAIA,UAAUxB,KAAKC,SAAS;AAAA,QAAA;AAAA,MAC/D;AAAA,IACF;AAAA,IAEFvB;AAAAA,EAAAA,CACD;AAED,SAAO;AAAA,IAAC+C;AAAAA,IAAQG;AAAAA,EAAAA;AAClB;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@portabletext/editor",
3
- "version": "4.2.4",
3
+ "version": "4.3.0",
4
4
  "description": "Portable Text Editor made in React",
5
5
  "keywords": [
6
6
  "sanity",
@@ -43,8 +43,8 @@
43
43
  ],
44
44
  "dependencies": {
45
45
  "@portabletext/to-html": "^5.0.1",
46
- "@sanity/schema": "^5.2.0",
47
- "@sanity/types": "^5.2.0",
46
+ "@sanity/schema": "^5.3.1",
47
+ "@sanity/types": "^5.3.1",
48
48
  "@xstate/react": "^6.0.0",
49
49
  "debug": "^4.4.3",
50
50
  "slate": "^0.120.0",
@@ -60,6 +60,7 @@
60
60
  "devDependencies": {
61
61
  "@sanity/diff-match-patch": "^3.2.0",
62
62
  "@sanity/pkg-utils": "^10.2.1",
63
+ "@sanity/tsconfig": "^2.1.0",
63
64
  "@types/debug": "^4.1.12",
64
65
  "@types/node": "^20",
65
66
  "@types/react": "^19.2.7",