@portabletext/editor 7.8.2 → 7.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/lib/_chunks-dts/behavior.types.action.d.ts +110 -274
  2. package/lib/_chunks-dts/behavior.types.action.d.ts.map +1 -1
  3. package/lib/_chunks-dts/block-offset.d.ts +10 -0
  4. package/lib/_chunks-dts/block-offset.d.ts.map +1 -0
  5. package/lib/_chunks-dts/editor-selector.d.ts +33 -0
  6. package/lib/_chunks-dts/editor-selector.d.ts.map +1 -0
  7. package/lib/_chunks-dts/editor.d.ts +99 -0
  8. package/lib/_chunks-dts/editor.d.ts.map +1 -0
  9. package/lib/_chunks-es/{get-first-child.js → get-container.js} +10 -1
  10. package/lib/_chunks-es/get-container.js.map +1 -0
  11. package/lib/_chunks-es/get-parent.js +18 -6
  12. package/lib/_chunks-es/get-parent.js.map +1 -1
  13. package/lib/_chunks-es/get-path-sub-schema.js +38 -6
  14. package/lib/_chunks-es/get-path-sub-schema.js.map +1 -1
  15. package/lib/_chunks-es/selector.is-at-the-start-of-block.js +3 -0
  16. package/lib/_chunks-es/selector.is-at-the-start-of-block.js.map +1 -1
  17. package/lib/_chunks-es/{util.is-empty-text-block.js → util.is-equal-selections.js} +7 -2
  18. package/lib/_chunks-es/util.is-equal-selections.js.map +1 -0
  19. package/lib/_chunks-es/util.slice-blocks.js +1 -8
  20. package/lib/_chunks-es/util.slice-blocks.js.map +1 -1
  21. package/lib/behaviors/index.d.ts +1 -1
  22. package/lib/index.d.ts +67 -2
  23. package/lib/index.d.ts.map +1 -0
  24. package/lib/index.js +282 -106
  25. package/lib/index.js.map +1 -1
  26. package/lib/plugins/index.d.ts +2 -1
  27. package/lib/plugins/index.d.ts.map +1 -1
  28. package/lib/selectors/index.d.ts +3 -1
  29. package/lib/selectors/index.d.ts.map +1 -1
  30. package/lib/selectors/index.js +4 -2
  31. package/lib/selectors/index.js.map +1 -1
  32. package/lib/traversal/index.d.ts +41 -7
  33. package/lib/traversal/index.d.ts.map +1 -1
  34. package/lib/traversal/index.js +24 -2
  35. package/lib/traversal/index.js.map +1 -1
  36. package/lib/utils/index.d.ts +3 -3
  37. package/lib/utils/index.d.ts.map +1 -1
  38. package/lib/utils/index.js +3 -6
  39. package/lib/utils/index.js.map +1 -1
  40. package/package.json +20 -20
  41. package/lib/_chunks-es/get-first-child.js.map +0 -1
  42. package/lib/_chunks-es/util.is-empty-text-block.js.map +0 -1
@@ -1,4 +1,5 @@
1
- import { W as Editor, X as Behavior, Zt as RegistrableNode, q as EditorEmittedEvent } from "../_chunks-dts/behavior.types.action.js";
1
+ import { bt as RegistrableNode, g as EditorEmittedEvent, y as Behavior } from "../_chunks-dts/behavior.types.action.js";
2
+ import { t as Editor } from "../_chunks-dts/editor.js";
2
3
  import React from "react";
3
4
  /**
4
5
  * @beta
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/plugins/plugin.behavior.tsx","../../src/plugins/plugin.node.tsx","../../src/plugins/plugin.editor-ref.tsx","../../src/plugins/plugin.event-listener.tsx"],"sourcesContent":[],"mappings":";;;;AAcA;;ACEA;;ACTA;;;;AAA4B,iBFOZ,cAAA,CEPY,KAAA,EAAA;aFOsB,MAAM;AGuCxD,CAAA,CAAA,EAAgB,IAAA;;;AHvChB;;ACEA;;ACTA;;;;;;AC8CgB,iBFrCA,UAAA,CEqCmB,KACrB,EAAA;SFtC4B,MAAM;;;ADFhD;;ACEgB,cCTH,eDSmC,ECTpB,KAAA,CAAA,yBDSmB,CCTnB,KAAA,CAAA,aDSmB,CCTnB,MDSmB,GAAA,IAAA,CAAA,CAAA;;;ADF/C;;ACEA;;ACTA;;;;;;AC8CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAgB,mBAAA;cACF"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/plugins/plugin.behavior.tsx","../../src/plugins/plugin.node.tsx","../../src/plugins/plugin.editor-ref.tsx","../../src/plugins/plugin.event-listener.tsx"],"mappings":";;;;;;AAcA;;;;;;;iBAAgB,cAAA,CAAe,KAAA;EAAQ,SAAA,EAAW,KAAK,CAAC,QAAA;AAAA;;;;AAAxD;;;;;;;;;iBCEgB,UAAA,CAAW,KAAA;EAAQ,KAAA,EAAO,KAAK,CAAC,eAAA;AAAA;;;ADFhD;cEPa,eAAA,EAAe,KAAA,CAAA,yBAAA,CAAA,KAAA,CAAA,aAAA,CAAA,MAAA;;;;AFO5B;;;;;;;;;AAAkE;;ACElE;;;;;;;;;AAAiE;;ACTjE;;;;;;;;;;;;;;AAA4B;;AC8C5B;;;;;;;;iBAAgB,mBAAA,CAAoB,KAAA;EAClC,EAAA,GAAK,KAAA,EAAO,kBAAkB;AAAA"}
@@ -1,4 +1,6 @@
1
- import { B as EditorSelector, F as BlockOffset, dn as ChildPath, lt as EditorSelection, pn as Path, un as BlockPath, ut as EditorSelectionPoint } from "../_chunks-dts/behavior.types.action.js";
1
+ import { It as Path, M as EditorSelection, N as EditorSelectionPoint, Nt as BlockPath, Pt as ChildPath } from "../_chunks-dts/behavior.types.action.js";
2
+ import { t as EditorSelector } from "../_chunks-dts/editor-selector.js";
3
+ import { t as BlockOffset } from "../_chunks-dts/block-offset.js";
2
4
  import { PortableTextBlock, PortableTextListBlock, PortableTextObject, PortableTextSpan, PortableTextTextBlock } from "@portabletext/schema";
3
5
  /**
4
6
  * The set of schema member names applicable at the current selection,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/selectors/selector.get-applicable-schema.ts","../../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-fragment.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":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/selectors/selector.get-applicable-schema.ts","../../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-fragment.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"],"mappings":"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"}
@@ -2,8 +2,8 @@ import { getInline, getSelectionStartPoint, getSelectionEndPoint, getFocusTextBl
2
2
  import { compareApplicableSchema, getActiveAnnotations, getActiveListItem, getActiveStyle, getApplicableSchema, getCaretWordSelection, getFirstBlock, getFocusBlock, getFocusBlockObject, getFocusChild, getFocusInlineObject, getFocusListBlock, getFocusSpan, getFragment, getLastBlock, getMarkState, getNextBlock, getNextInlineObject, getNextSpan, getPreviousBlock, getPreviousInlineObject, getPreviousSpan, getSelectedBlocks, getSelectedSpans, getSelectedTextBlocks, getSelectedValue, getSelectionEndBlock, getSelectionEndChild, getSelectionStartBlock, getSelectionStartChild, isActiveAnnotation, isActiveDecorator, isActiveListItem, isActiveStyle, isAtTheEndOfBlock, isAtTheStartOfBlock, isOverlappingSelection, isSelectingEntireBlocks, isSelectionCollapsed, isSelectionExpanded } from "../_chunks-es/selector.is-at-the-start-of-block.js";
3
3
  import { getEnclosingBlock, isObject, comparePoints } from "../_chunks-es/get-path-sub-schema.js";
4
4
  import { isSpan, isTextBlock } from "@portabletext/schema";
5
- import { spanSelectionPointToBlockOffset, getBlockEndPoint, getSelectionEndPoint as getSelectionEndPoint$1, getBlockStartPoint, getSelectionStartPoint as getSelectionStartPoint$1 } from "../_chunks-es/util.slice-blocks.js";
6
- import { getChildren, parentPath, isKeyedSegment } from "../_chunks-es/get-parent.js";
5
+ import { spanSelectionPointToBlockOffset, getSelectionEndPoint as getSelectionEndPoint$1, getBlockEndPoint, getSelectionStartPoint as getSelectionStartPoint$1, getBlockStartPoint } from "../_chunks-es/util.slice-blocks.js";
6
+ import { isKeyedSegment, getChildren, parentPath } from "../_chunks-es/get-parent.js";
7
7
  const getAnchorBlock = (snapshot) => {
8
8
  const selection = snapshot.context.selection;
9
9
  if (selection)
@@ -100,6 +100,7 @@ const getAnchorBlock = (snapshot) => {
100
100
  block
101
101
  });
102
102
  return getSelectionText({
103
+ ...snapshot,
103
104
  context: {
104
105
  ...snapshot.context,
105
106
  selection: {
@@ -128,6 +129,7 @@ const getAnchorBlock = (snapshot) => {
128
129
  block
129
130
  });
130
131
  return getSelectionText({
132
+ ...snapshot,
131
133
  context: {
132
134
  ...snapshot.context,
133
135
  selection: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../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-next-inline-objects.ts","../../src/selectors/selector.get-previous-inline-objects.ts","../../src/selectors/selector.get-selection.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-point-after-selection.ts","../../src/selectors/selector.is-point-before-selection.ts"],"sourcesContent":["import type {PortableTextBlock} from '@portabletext/schema'\nimport type {EditorSelector} from '../editor/editor-selector'\nimport {getEnclosingBlock} from '../traversal/get-enclosing-block'\nimport type {BlockPath} from '../types/paths'\n\n/**\n * Returns the block containing the anchor selection, resolved at any depth.\n *\n * @public\n */\nexport const getAnchorBlock: EditorSelector<\n {node: PortableTextBlock; path: BlockPath} | undefined\n> = (snapshot) => {\n const selection = snapshot.context.selection\n\n if (!selection) {\n return undefined\n }\n\n return getEnclosingBlock(snapshot, selection.anchor.path)\n}\n","import type {PortableTextObject, PortableTextSpan} from '@portabletext/schema'\nimport type {EditorSelector} from '../editor/editor-selector'\nimport {getInline} from '../traversal/get-inline'\nimport type {ChildPath} from '../types/paths'\n\n/**\n * Returns the child (span or inline object) containing the anchor selection,\n * resolved at any depth.\n *\n * @public\n */\nexport const getAnchorChild: EditorSelector<\n | {\n node: PortableTextObject | PortableTextSpan\n path: ChildPath\n }\n | undefined\n> = (snapshot) => {\n const selection = snapshot.context.selection\n\n if (!selection) {\n return undefined\n }\n\n return getInline(snapshot, selection.anchor.path)\n}\n","import {isSpan, type PortableTextSpan} from '@portabletext/schema'\nimport type {EditorSelector} from '../editor/editor-selector'\nimport type {ChildPath} from '../types/paths'\nimport {getAnchorChild} from './selector.get-anchor-child'\n\n/**\n * Returns the span containing the anchor selection, resolved at any depth.\n *\n * @public\n */\nexport const getAnchorSpan: EditorSelector<\n {node: PortableTextSpan; path: ChildPath} | undefined\n> = (snapshot) => {\n const anchorChild = getAnchorChild(snapshot)\n\n return anchorChild && isSpan(snapshot.context, anchorChild.node)\n ? {node: anchorChild.node, path: anchorChild.path}\n : undefined\n}\n","import {isTextBlock, type PortableTextTextBlock} from '@portabletext/schema'\nimport type {EditorSelector} from '../editor/editor-selector'\nimport type {BlockPath} from '../types/paths'\nimport {getAnchorBlock} from './selector.get-anchor-block'\n\n/**\n * Returns the text block containing the anchor selection, resolved at any\n * depth.\n *\n * @public\n */\nexport const getAnchorTextBlock: EditorSelector<\n {node: PortableTextTextBlock; path: BlockPath} | undefined\n> = (snapshot) => {\n const anchorBlock = getAnchorBlock(snapshot)\n\n return anchorBlock && isTextBlock(snapshot.context, anchorBlock.node)\n ? {node: anchorBlock.node, path: anchorBlock.path}\n : undefined\n}\n","import type {EditorSelector} from '../editor/editor-selector'\nimport type {BlockOffset} from '../types/block-offset'\nimport {spanSelectionPointToBlockOffset} from '../utils/util.block-offset'\nimport {getSelectionEndPoint} from './selector.get-selection-end-point'\nimport {getSelectionStartPoint} from './selector.get-selection-start-point'\n\n/**\n * @public\n */\nexport const getBlockOffsets: EditorSelector<\n {start: BlockOffset; end: BlockOffset} | undefined\n> = (snapshot) => {\n if (!snapshot.context.selection) {\n return undefined\n }\n\n const selectionStartPoint = getSelectionStartPoint(snapshot)\n const selectionEndPoint = getSelectionEndPoint(snapshot)\n\n if (!selectionStartPoint || !selectionEndPoint) {\n return undefined\n }\n\n const start = spanSelectionPointToBlockOffset({\n snapshot,\n selectionPoint: selectionStartPoint,\n })\n const end = spanSelectionPointToBlockOffset({\n snapshot,\n selectionPoint: selectionEndPoint,\n })\n\n return start && end ? {start, end} : undefined\n}\n","import type {PortableTextObject} from '@portabletext/schema'\nimport type {EditorSelector} from '../editor/editor-selector'\nimport {parentPath} from '../engine/path/parent-path'\nimport {getChildren} from '../traversal/get-children'\nimport {isObject} from '../traversal/is-object'\nimport type {ChildPath} from '../types/paths'\nimport {isKeyedSegment} from '../utils/util.is-keyed-segment'\nimport {getSelectionEndPoint} from './selector.get-selection-end-point'\n\n/**\n * Returns all inline objects after the selection end within the same text\n * block, resolved at any depth.\n *\n * @public\n */\nexport const getNextInlineObjects: EditorSelector<\n Array<{node: PortableTextObject; path: ChildPath}>\n> = (snapshot) => {\n const point = getSelectionEndPoint(snapshot)\n\n if (!point) {\n return []\n }\n\n const endSegment = point.path.at(-1)\n const endKey = isKeyedSegment(endSegment) ? endSegment._key : undefined\n\n if (!endKey) {\n return []\n }\n\n const children = getChildren(snapshot, parentPath(point.path))\n const inlineObjects: Array<{node: PortableTextObject; path: ChildPath}> = []\n let endFound = false\n\n for (const child of children) {\n const segment = child.path.at(-1)\n const childKey = isKeyedSegment(segment) ? segment._key : undefined\n\n if (childKey === endKey) {\n endFound = true\n continue\n }\n\n if (endFound && isObject(snapshot, child.node)) {\n inlineObjects.push({\n node: child.node,\n path: child.path,\n })\n }\n }\n\n return inlineObjects\n}\n","import type {PortableTextObject} from '@portabletext/schema'\nimport type {EditorSelector} from '../editor/editor-selector'\nimport {parentPath} from '../engine/path/parent-path'\nimport {getChildren} from '../traversal/get-children'\nimport {isObject} from '../traversal/is-object'\nimport type {ChildPath} from '../types/paths'\nimport {isKeyedSegment} from '../utils/util.is-keyed-segment'\nimport {getSelectionStartPoint} from './selector.get-selection-start-point'\n\n/**\n * Returns all inline objects before the selection start within the same text\n * block, resolved at any depth.\n *\n * @public\n */\nexport const getPreviousInlineObjects: EditorSelector<\n Array<{node: PortableTextObject; path: ChildPath}>\n> = (snapshot) => {\n const point = getSelectionStartPoint(snapshot)\n\n if (!point) {\n return []\n }\n\n const startSegment = point.path.at(-1)\n const startKey = isKeyedSegment(startSegment) ? startSegment._key : undefined\n\n if (!startKey) {\n return []\n }\n\n const children = getChildren(snapshot, parentPath(point.path))\n const inlineObjects: Array<{node: PortableTextObject; path: ChildPath}> = []\n\n for (const child of children) {\n const segment = child.path.at(-1)\n const childKey = isKeyedSegment(segment) ? segment._key : undefined\n\n if (childKey === startKey) {\n break\n }\n\n if (isObject(snapshot, child.node)) {\n inlineObjects.push({\n node: child.node,\n path: child.path,\n })\n }\n }\n\n return inlineObjects\n}\n","import type {EditorSelector} from '../editor/editor-selector'\nimport type {EditorSelection} from '../types/editor'\n\n/**\n * @public\n */\nexport const getSelection: EditorSelector<EditorSelection> = (snapshot) => {\n return snapshot.context.selection\n}\n","import type {EditorSelector} from '../editor/editor-selector'\nimport {getBlockEndPoint} from '../utils/util.get-block-end-point'\nimport {getSelectionEndPoint} from '../utils/util.get-selection-end-point'\nimport {getFocusTextBlock} from './selector.get-focus-text-block'\nimport {getSelectionText} from './selector.get-selection-text'\n\n/**\n * @public\n */\nexport const getBlockTextAfter: EditorSelector<string> = (snapshot) => {\n if (!snapshot.context.selection) {\n return ''\n }\n\n const endPoint = getSelectionEndPoint(snapshot.context.selection)\n const block = getFocusTextBlock({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: {\n anchor: endPoint,\n focus: endPoint,\n },\n },\n })\n\n if (!block) {\n return ''\n }\n\n const endOfBlock = getBlockEndPoint({\n context: snapshot.context,\n block,\n })\n\n return getSelectionText({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: {\n anchor: endPoint,\n focus: endOfBlock,\n },\n },\n })\n}\n","import type {EditorSelector} from '../editor/editor-selector'\nimport {getBlockStartPoint} from '../utils/util.get-block-start-point'\nimport {getSelectionStartPoint} from '../utils/util.get-selection-start-point'\nimport {getFocusTextBlock} from './selector.get-focus-text-block'\nimport {getSelectionText} from './selector.get-selection-text'\n\n/**\n * @public\n */\nexport const getBlockTextBefore: EditorSelector<string> = (snapshot) => {\n if (!snapshot.context.selection) {\n return ''\n }\n\n const startPoint = getSelectionStartPoint(snapshot.context.selection)\n const block = getFocusTextBlock({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: {\n anchor: startPoint,\n focus: startPoint,\n },\n },\n })\n\n if (!block) {\n return ''\n }\n\n const startOfBlock = getBlockStartPoint({\n context: snapshot.context,\n block,\n })\n\n return getSelectionText({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: {\n anchor: startOfBlock,\n focus: startPoint,\n },\n },\n })\n}\n","import type {PortableTextBlock} from '@portabletext/schema'\nimport type {EditorSelector} from '../editor/editor-selector'\n\n/**\n * @public\n */\nexport const getValue: EditorSelector<Array<PortableTextBlock>> = (\n snapshot,\n) => {\n return snapshot.context.value\n}\n","import type {EditorSelector} from '../editor/editor-selector'\nimport {comparePoints} from '../traversal/compare-points'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport {getSelectionEndPoint} from '../utils/util.get-selection-end-point'\n\n/**\n * @public\n */\nexport function isPointAfterSelection(\n point: EditorSelectionPoint,\n): EditorSelector<boolean> {\n return (snapshot) => {\n if (!snapshot.context.selection) {\n return false\n }\n\n const endPoint = getSelectionEndPoint(snapshot.context.selection)\n\n return comparePoints(snapshot, point, endPoint) === 1\n }\n}\n","import type {EditorSelector} from '../editor/editor-selector'\nimport {comparePoints} from '../traversal/compare-points'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport {getSelectionStartPoint} from '../utils/util.get-selection-start-point'\n\n/**\n * @public\n */\nexport function isPointBeforeSelection(\n point: EditorSelectionPoint,\n): EditorSelector<boolean> {\n return (snapshot) => {\n if (!snapshot.context.selection) {\n return false\n }\n\n const startPoint = getSelectionStartPoint(snapshot.context.selection)\n\n return comparePoints(snapshot, point, startPoint) === -1\n }\n}\n"],"names":["getAnchorBlock","snapshot","selection","context","getEnclosingBlock","anchor","path","getAnchorChild","getInline","getAnchorSpan","anchorChild","isSpan","node","undefined","getAnchorTextBlock","anchorBlock","isTextBlock","getBlockOffsets","selectionStartPoint","getSelectionStartPoint","selectionEndPoint","getSelectionEndPoint","start","spanSelectionPointToBlockOffset","selectionPoint","end","getNextInlineObjects","point","endSegment","at","endKey","isKeyedSegment","_key","children","getChildren","parentPath","inlineObjects","endFound","child","segment","isObject","push","getPreviousInlineObjects","startSegment","startKey","getSelection","getBlockTextAfter","endPoint","block","getFocusTextBlock","focus","endOfBlock","getBlockEndPoint","getSelectionText","getBlockTextBefore","startPoint","startOfBlock","getBlockStartPoint","getValue","value","isPointAfterSelection","comparePoints","isPointBeforeSelection"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../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-next-inline-objects.ts","../../src/selectors/selector.get-previous-inline-objects.ts","../../src/selectors/selector.get-selection.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-point-after-selection.ts","../../src/selectors/selector.is-point-before-selection.ts"],"sourcesContent":["import type {PortableTextBlock} from '@portabletext/schema'\nimport type {EditorSelector} from '../editor/editor-selector'\nimport {getEnclosingBlock} from '../traversal/get-enclosing-block'\nimport type {BlockPath} from '../types/paths'\n\n/**\n * Returns the block containing the anchor selection, resolved at any depth.\n *\n * @public\n */\nexport const getAnchorBlock: EditorSelector<\n {node: PortableTextBlock; path: BlockPath} | undefined\n> = (snapshot) => {\n const selection = snapshot.context.selection\n\n if (!selection) {\n return undefined\n }\n\n return getEnclosingBlock(snapshot, selection.anchor.path)\n}\n","import type {PortableTextObject, PortableTextSpan} from '@portabletext/schema'\nimport type {EditorSelector} from '../editor/editor-selector'\nimport {getInline} from '../traversal/get-inline'\nimport type {ChildPath} from '../types/paths'\n\n/**\n * Returns the child (span or inline object) containing the anchor selection,\n * resolved at any depth.\n *\n * @public\n */\nexport const getAnchorChild: EditorSelector<\n | {\n node: PortableTextObject | PortableTextSpan\n path: ChildPath\n }\n | undefined\n> = (snapshot) => {\n const selection = snapshot.context.selection\n\n if (!selection) {\n return undefined\n }\n\n return getInline(snapshot, selection.anchor.path)\n}\n","import {isSpan, type PortableTextSpan} from '@portabletext/schema'\nimport type {EditorSelector} from '../editor/editor-selector'\nimport type {ChildPath} from '../types/paths'\nimport {getAnchorChild} from './selector.get-anchor-child'\n\n/**\n * Returns the span containing the anchor selection, resolved at any depth.\n *\n * @public\n */\nexport const getAnchorSpan: EditorSelector<\n {node: PortableTextSpan; path: ChildPath} | undefined\n> = (snapshot) => {\n const anchorChild = getAnchorChild(snapshot)\n\n return anchorChild && isSpan(snapshot.context, anchorChild.node)\n ? {node: anchorChild.node, path: anchorChild.path}\n : undefined\n}\n","import {isTextBlock, type PortableTextTextBlock} from '@portabletext/schema'\nimport type {EditorSelector} from '../editor/editor-selector'\nimport type {BlockPath} from '../types/paths'\nimport {getAnchorBlock} from './selector.get-anchor-block'\n\n/**\n * Returns the text block containing the anchor selection, resolved at any\n * depth.\n *\n * @public\n */\nexport const getAnchorTextBlock: EditorSelector<\n {node: PortableTextTextBlock; path: BlockPath} | undefined\n> = (snapshot) => {\n const anchorBlock = getAnchorBlock(snapshot)\n\n return anchorBlock && isTextBlock(snapshot.context, anchorBlock.node)\n ? {node: anchorBlock.node, path: anchorBlock.path}\n : undefined\n}\n","import type {EditorSelector} from '../editor/editor-selector'\nimport type {BlockOffset} from '../types/block-offset'\nimport {spanSelectionPointToBlockOffset} from '../utils/util.block-offset'\nimport {getSelectionEndPoint} from './selector.get-selection-end-point'\nimport {getSelectionStartPoint} from './selector.get-selection-start-point'\n\n/**\n * @public\n */\nexport const getBlockOffsets: EditorSelector<\n {start: BlockOffset; end: BlockOffset} | undefined\n> = (snapshot) => {\n if (!snapshot.context.selection) {\n return undefined\n }\n\n const selectionStartPoint = getSelectionStartPoint(snapshot)\n const selectionEndPoint = getSelectionEndPoint(snapshot)\n\n if (!selectionStartPoint || !selectionEndPoint) {\n return undefined\n }\n\n const start = spanSelectionPointToBlockOffset({\n snapshot,\n selectionPoint: selectionStartPoint,\n })\n const end = spanSelectionPointToBlockOffset({\n snapshot,\n selectionPoint: selectionEndPoint,\n })\n\n return start && end ? {start, end} : undefined\n}\n","import type {PortableTextObject} from '@portabletext/schema'\nimport type {EditorSelector} from '../editor/editor-selector'\nimport {parentPath} from '../engine/path/parent-path'\nimport {getChildren} from '../traversal/get-children'\nimport {isObject} from '../traversal/is-object'\nimport type {ChildPath} from '../types/paths'\nimport {isKeyedSegment} from '../utils/util.is-keyed-segment'\nimport {getSelectionEndPoint} from './selector.get-selection-end-point'\n\n/**\n * Returns all inline objects after the selection end within the same text\n * block, resolved at any depth.\n *\n * @public\n */\nexport const getNextInlineObjects: EditorSelector<\n Array<{node: PortableTextObject; path: ChildPath}>\n> = (snapshot) => {\n const point = getSelectionEndPoint(snapshot)\n\n if (!point) {\n return []\n }\n\n const endSegment = point.path.at(-1)\n const endKey = isKeyedSegment(endSegment) ? endSegment._key : undefined\n\n if (!endKey) {\n return []\n }\n\n const children = getChildren(snapshot, parentPath(point.path))\n const inlineObjects: Array<{node: PortableTextObject; path: ChildPath}> = []\n let endFound = false\n\n for (const child of children) {\n const segment = child.path.at(-1)\n const childKey = isKeyedSegment(segment) ? segment._key : undefined\n\n if (childKey === endKey) {\n endFound = true\n continue\n }\n\n if (endFound && isObject(snapshot, child.node)) {\n inlineObjects.push({\n node: child.node,\n path: child.path,\n })\n }\n }\n\n return inlineObjects\n}\n","import type {PortableTextObject} from '@portabletext/schema'\nimport type {EditorSelector} from '../editor/editor-selector'\nimport {parentPath} from '../engine/path/parent-path'\nimport {getChildren} from '../traversal/get-children'\nimport {isObject} from '../traversal/is-object'\nimport type {ChildPath} from '../types/paths'\nimport {isKeyedSegment} from '../utils/util.is-keyed-segment'\nimport {getSelectionStartPoint} from './selector.get-selection-start-point'\n\n/**\n * Returns all inline objects before the selection start within the same text\n * block, resolved at any depth.\n *\n * @public\n */\nexport const getPreviousInlineObjects: EditorSelector<\n Array<{node: PortableTextObject; path: ChildPath}>\n> = (snapshot) => {\n const point = getSelectionStartPoint(snapshot)\n\n if (!point) {\n return []\n }\n\n const startSegment = point.path.at(-1)\n const startKey = isKeyedSegment(startSegment) ? startSegment._key : undefined\n\n if (!startKey) {\n return []\n }\n\n const children = getChildren(snapshot, parentPath(point.path))\n const inlineObjects: Array<{node: PortableTextObject; path: ChildPath}> = []\n\n for (const child of children) {\n const segment = child.path.at(-1)\n const childKey = isKeyedSegment(segment) ? segment._key : undefined\n\n if (childKey === startKey) {\n break\n }\n\n if (isObject(snapshot, child.node)) {\n inlineObjects.push({\n node: child.node,\n path: child.path,\n })\n }\n }\n\n return inlineObjects\n}\n","import type {EditorSelector} from '../editor/editor-selector'\nimport type {EditorSelection} from '../types/editor'\n\n/**\n * @public\n */\nexport const getSelection: EditorSelector<EditorSelection> = (snapshot) => {\n return snapshot.context.selection\n}\n","import type {EditorSelector} from '../editor/editor-selector'\nimport {getBlockEndPoint} from '../utils/util.get-block-end-point'\nimport {getSelectionEndPoint} from '../utils/util.get-selection-end-point'\nimport {getFocusTextBlock} from './selector.get-focus-text-block'\nimport {getSelectionText} from './selector.get-selection-text'\n\n/**\n * @public\n */\nexport const getBlockTextAfter: EditorSelector<string> = (snapshot) => {\n if (!snapshot.context.selection) {\n return ''\n }\n\n const endPoint = getSelectionEndPoint(snapshot.context.selection)\n const block = getFocusTextBlock({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: {\n anchor: endPoint,\n focus: endPoint,\n },\n },\n })\n\n if (!block) {\n return ''\n }\n\n const endOfBlock = getBlockEndPoint({\n context: snapshot.context,\n block,\n })\n\n return getSelectionText({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: {\n anchor: endPoint,\n focus: endOfBlock,\n },\n },\n })\n}\n","import type {EditorSelector} from '../editor/editor-selector'\nimport {getBlockStartPoint} from '../utils/util.get-block-start-point'\nimport {getSelectionStartPoint} from '../utils/util.get-selection-start-point'\nimport {getFocusTextBlock} from './selector.get-focus-text-block'\nimport {getSelectionText} from './selector.get-selection-text'\n\n/**\n * @public\n */\nexport const getBlockTextBefore: EditorSelector<string> = (snapshot) => {\n if (!snapshot.context.selection) {\n return ''\n }\n\n const startPoint = getSelectionStartPoint(snapshot.context.selection)\n const block = getFocusTextBlock({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: {\n anchor: startPoint,\n focus: startPoint,\n },\n },\n })\n\n if (!block) {\n return ''\n }\n\n const startOfBlock = getBlockStartPoint({\n context: snapshot.context,\n block,\n })\n\n return getSelectionText({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: {\n anchor: startOfBlock,\n focus: startPoint,\n },\n },\n })\n}\n","import type {PortableTextBlock} from '@portabletext/schema'\nimport type {EditorSelector} from '../editor/editor-selector'\n\n/**\n * @public\n */\nexport const getValue: EditorSelector<Array<PortableTextBlock>> = (\n snapshot,\n) => {\n return snapshot.context.value\n}\n","import type {EditorSelector} from '../editor/editor-selector'\nimport {comparePoints} from '../traversal/compare-points'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport {getSelectionEndPoint} from '../utils/util.get-selection-end-point'\n\n/**\n * @public\n */\nexport function isPointAfterSelection(\n point: EditorSelectionPoint,\n): EditorSelector<boolean> {\n return (snapshot) => {\n if (!snapshot.context.selection) {\n return false\n }\n\n const endPoint = getSelectionEndPoint(snapshot.context.selection)\n\n return comparePoints(snapshot, point, endPoint) === 1\n }\n}\n","import type {EditorSelector} from '../editor/editor-selector'\nimport {comparePoints} from '../traversal/compare-points'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport {getSelectionStartPoint} from '../utils/util.get-selection-start-point'\n\n/**\n * @public\n */\nexport function isPointBeforeSelection(\n point: EditorSelectionPoint,\n): EditorSelector<boolean> {\n return (snapshot) => {\n if (!snapshot.context.selection) {\n return false\n }\n\n const startPoint = getSelectionStartPoint(snapshot.context.selection)\n\n return comparePoints(snapshot, point, startPoint) === -1\n }\n}\n"],"names":["getAnchorBlock","snapshot","selection","context","getEnclosingBlock","anchor","path","getAnchorChild","getInline","getAnchorSpan","anchorChild","isSpan","node","undefined","getAnchorTextBlock","anchorBlock","isTextBlock","getBlockOffsets","selectionStartPoint","getSelectionStartPoint","selectionEndPoint","getSelectionEndPoint","start","spanSelectionPointToBlockOffset","selectionPoint","end","getNextInlineObjects","point","endSegment","at","endKey","isKeyedSegment","_key","children","getChildren","parentPath","inlineObjects","endFound","child","segment","isObject","push","getPreviousInlineObjects","startSegment","startKey","getSelection","getBlockTextAfter","endPoint","block","getFocusTextBlock","focus","endOfBlock","getBlockEndPoint","getSelectionText","getBlockTextBefore","startPoint","startOfBlock","getBlockStartPoint","getValue","value","isPointAfterSelection","comparePoints","isPointBeforeSelection"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { It as Containers, Nt as TraversalSnapshot, Pt as Node, Rt as RegisteredContainer, lt as EditorSelection, pn as Path, ut as EditorSelectionPoint } from "../_chunks-dts/behavior.types.action.js";
1
+ import { It as Path, M as EditorSelection, N as EditorSelectionPoint, at as Containers, nt as TraversalSnapshot, rt as Node, st as RegisteredContainer } from "../_chunks-dts/behavior.types.action.js";
2
2
  import { PortableTextBlock, PortableTextObject, PortableTextSpan, PortableTextTextBlock, Schema } from "@portabletext/schema";
3
3
  /**
4
4
  * Find an ancestor of the node at a given path that matches a predicate.
@@ -48,6 +48,21 @@ declare function getAncestors(snapshot: TraversalSnapshot, path: Path): Array<{
48
48
  node: PortableTextBlock;
49
49
  path: Path;
50
50
  }>;
51
+ /**
52
+ * Get the annotation at a given path.
53
+ *
54
+ * Annotations live in `markDefs` on a text block, alongside `children`
55
+ * rather than inside it, so they aren't reachable through `getNode`.
56
+ * `getAnnotation` resolves a path of the shape
57
+ * `[..., {_key: block}, 'markDefs', {_key: annotation}, ...]` to the
58
+ * annotation node on the enclosing text block.
59
+ *
60
+ * @beta
61
+ */
62
+ declare function getAnnotation(snapshot: TraversalSnapshot, path: Path): {
63
+ node: PortableTextObject;
64
+ path: Path;
65
+ } | undefined;
51
66
  /**
52
67
  * Determine if a node at the given path is a block.
53
68
  *
@@ -80,6 +95,15 @@ declare function getChildren(snapshot: TraversalSnapshot, path: Path): Array<{
80
95
  node: Node;
81
96
  path: Path;
82
97
  }>;
98
+ /**
99
+ * Get the registered editable container at a given path.
100
+ *
101
+ * @beta
102
+ */
103
+ declare function getContainer(snapshot: TraversalSnapshot, path: Path): {
104
+ node: Node;
105
+ path: Path;
106
+ } | undefined;
83
107
  /**
84
108
  * Resolve a container node's editable child array.
85
109
  *
@@ -172,11 +196,21 @@ declare function getLeaf(snapshot: TraversalSnapshot, path: Path, options: {
172
196
  *
173
197
  * The path can be either keyed (KeyedSegment + field name strings) or
174
198
  * indexed (numbers). Keyed segments are resolved by matching `_key`,
175
- * field name strings are skipped (they're structural), and numbers
176
- * are resolved by index.
177
- *
178
- * The returned path is always fully keyed, even if the input path
179
- * contained numeric indices.
199
+ * field name strings name a structural descent into the previous
200
+ * node's children, and numbers are resolved by index.
201
+ *
202
+ * The returned `path` always identifies the returned node: it's fully
203
+ * keyed (numeric indices are converted to `KeyedSegment`s) and any
204
+ * trailing segments in the input that point outside the value tree —
205
+ * e.g. an object node's primitive field, or an annotation reached via
206
+ * `'markDefs'` on a text block — are stripped so that
207
+ * `getNode(snapshot, entry.path).node === entry.node`.
208
+ *
209
+ * The walk stops when a string segment names a field that isn't the
210
+ * current node's structural child array. Annotations live in
211
+ * `markDefs` on a text block, alongside `children` rather than inside
212
+ * it, so `getNode` resolves an annotation path to the enclosing text
213
+ * block. Use `getAnnotation` to resolve the annotation itself.
180
214
  *
181
215
  * @beta
182
216
  */
@@ -367,5 +401,5 @@ declare function isLeafObject(snapshot: TraversalSnapshot, node: unknown, path:
367
401
  * @beta
368
402
  */
369
403
  declare function isObject(snapshot: TraversalSnapshot, node: unknown): node is PortableTextObject;
370
- export { comparePoints, getAncestor, getAncestors, getBlock, getChildren, getContainerChildren, getEnclosingBlock, getFirstChild, getLastChild, getLeaf, getNode, getParent, getPathSubSchema, getSibling, getSpan, getText, getTextBlock, getUnionSchema, hasNode, isBlock, isInline, isLeafObject, isObject, pathContains, rangeIntersects };
404
+ export { comparePoints, getAncestor, getAncestors, getAnnotation, getBlock, getChildren, getContainer, getContainerChildren, getEnclosingBlock, getFirstChild, getLastChild, getLeaf, getNode, getParent, getPathSubSchema, getSibling, getSpan, getText, getTextBlock, getUnionSchema, hasNode, isBlock, isInline, isLeafObject, isObject, pathContains, rangeIntersects };
371
405
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/traversal/get-ancestor.ts","../../src/traversal/get-ancestors.ts","../../src/traversal/is-block.ts","../../src/traversal/get-children.ts","../../src/traversal/get-container-children.ts","../../src/traversal/get-enclosing-block.ts","../../src/traversal/get-first-child.ts","../../src/traversal/get-last-child.ts","../../src/traversal/get-leaf.ts","../../src/traversal/get-node.ts","../../src/traversal/get-parent.ts","../../src/traversal/get-path-sub-schema.ts","../../src/traversal/get-sibling.ts","../../src/traversal/compare-points.ts","../../src/traversal/path-contains.ts","../../src/traversal/range-intersects.ts","../../src/traversal/get-span.ts","../../src/traversal/get-text.ts","../../src/traversal/get-text-block.ts","../../src/traversal/get-union-schema.ts","../../src/traversal/has-node.ts","../../src/traversal/is-inline.ts","../../src/traversal/is-leaf-object.ts","../../src/traversal/is-object.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/traversal/get-ancestor.ts","../../src/traversal/get-ancestors.ts","../../src/traversal/get-annotation.ts","../../src/traversal/is-block.ts","../../src/traversal/get-children.ts","../../src/traversal/get-container.ts","../../src/traversal/get-container-children.ts","../../src/traversal/get-enclosing-block.ts","../../src/traversal/get-first-child.ts","../../src/traversal/get-last-child.ts","../../src/traversal/get-leaf.ts","../../src/traversal/get-node.ts","../../src/traversal/get-parent.ts","../../src/traversal/get-path-sub-schema.ts","../../src/traversal/get-sibling.ts","../../src/traversal/compare-points.ts","../../src/traversal/path-contains.ts","../../src/traversal/range-intersects.ts","../../src/traversal/get-span.ts","../../src/traversal/get-text.ts","../../src/traversal/get-text-block.ts","../../src/traversal/get-union-schema.ts","../../src/traversal/has-node.ts","../../src/traversal/is-inline.ts","../../src/traversal/is-leaf-object.ts","../../src/traversal/is-object.ts"],"mappings":"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"}
@@ -1,7 +1,27 @@
1
- import { getAncestor, getFirstChild, getLeaf, getSpan, getText, getTextBlock, getUnionSchema, isLeafObject, pathContains, rangeIntersects } from "../_chunks-es/get-first-child.js";
1
+ import { getTextBlock } from "../_chunks-es/get-container.js";
2
+ import { getAncestor, getContainer, getFirstChild, getLeaf, getSpan, getText, getUnionSchema, isLeafObject, pathContains, rangeIntersects } from "../_chunks-es/get-container.js";
2
3
  import { comparePoints, getAncestors, getBlock, getEnclosingBlock, getPathSubSchema, getSibling, hasNode, isBlock, isInline, isObject } from "../_chunks-es/get-path-sub-schema.js";
3
- import { getChildren } from "../_chunks-es/get-parent.js";
4
+ import { isKeyedSegment, getChildren } from "../_chunks-es/get-parent.js";
4
5
  import { getContainerChildren, getNode, getParent } from "../_chunks-es/get-parent.js";
6
+ function getAnnotation(snapshot, path) {
7
+ for (let i = 0; i < path.length - 1; i++) {
8
+ if (path[i] !== "markDefs")
9
+ continue;
10
+ const annotationSegment = path[i + 1];
11
+ if (!isKeyedSegment(annotationSegment))
12
+ continue;
13
+ const block = getTextBlock(snapshot, path.slice(0, i));
14
+ if (!block)
15
+ continue;
16
+ const annotation = block.node.markDefs?.find((markDef) => markDef._key === annotationSegment._key);
17
+ return annotation ? {
18
+ node: annotation,
19
+ path: [...block.path, "markDefs", {
20
+ _key: annotation._key
21
+ }]
22
+ } : void 0;
23
+ }
24
+ }
5
25
  function getLastChild(snapshot, path) {
6
26
  return getChildren(snapshot, path).at(-1);
7
27
  }
@@ -9,8 +29,10 @@ export {
9
29
  comparePoints,
10
30
  getAncestor,
11
31
  getAncestors,
32
+ getAnnotation,
12
33
  getBlock,
13
34
  getChildren,
35
+ getContainer,
14
36
  getContainerChildren,
15
37
  getEnclosingBlock,
16
38
  getFirstChild,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/traversal/get-last-child.ts"],"sourcesContent":["import type {Node} from '../engine/interfaces/node'\nimport type {Path} from '../engine/interfaces/path'\nimport {getChildren} from './get-children'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get the last child of a node at a given path.\n *\n * @beta\n */\nexport function getLastChild(\n snapshot: TraversalSnapshot,\n path: Path,\n): {node: Node; path: Path} | undefined {\n const children = getChildren(snapshot, path)\n\n return children.at(-1)\n}\n"],"names":["getLastChild","snapshot","path","getChildren","at"],"mappings":";;;;AAUO,SAASA,aACdC,UACAC,MACsC;AAGtC,SAFiBC,YAAYF,UAAUC,IAAI,EAE3BE,GAAG,EAAE;AACvB;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/traversal/get-annotation.ts","../../src/traversal/get-last-child.ts"],"sourcesContent":["import type {PortableTextObject} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {isKeyedSegment} from '../utils/util.is-keyed-segment'\nimport {getTextBlock} from './get-text-block'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get the annotation at a given path.\n *\n * Annotations live in `markDefs` on a text block, alongside `children`\n * rather than inside it, so they aren't reachable through `getNode`.\n * `getAnnotation` resolves a path of the shape\n * `[..., {_key: block}, 'markDefs', {_key: annotation}, ...]` to the\n * annotation node on the enclosing text block.\n *\n * @beta\n */\nexport function getAnnotation(\n snapshot: TraversalSnapshot,\n path: Path,\n): {node: PortableTextObject; path: Path} | undefined {\n // A path may cross multiple `'markDefs'` segments if a consumer\n // registers a container whose array field is named `markDefs`. Try\n // each position and pick the one whose prefix resolves to a text\n // block.\n for (let i = 0; i < path.length - 1; i++) {\n if (path[i] !== 'markDefs') {\n continue\n }\n\n const annotationSegment = path[i + 1]\n\n if (!isKeyedSegment(annotationSegment)) {\n continue\n }\n\n const block = getTextBlock(snapshot, path.slice(0, i))\n\n if (!block) {\n continue\n }\n\n const annotation = block.node.markDefs?.find(\n (markDef) => markDef._key === annotationSegment._key,\n )\n\n if (!annotation) {\n return undefined\n }\n\n return {\n node: annotation,\n path: [...block.path, 'markDefs', {_key: annotation._key}],\n }\n }\n\n return undefined\n}\n","import type {Node} from '../engine/interfaces/node'\nimport type {Path} from '../engine/interfaces/path'\nimport {getChildren} from './get-children'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get the last child of a node at a given path.\n *\n * @beta\n */\nexport function getLastChild(\n snapshot: TraversalSnapshot,\n path: Path,\n): {node: Node; path: Path} | undefined {\n const children = getChildren(snapshot, path)\n\n return children.at(-1)\n}\n"],"names":["getAnnotation","snapshot","path","i","length","annotationSegment","isKeyedSegment","block","getTextBlock","slice","annotation","node","markDefs","find","markDef","_key","getLastChild","getChildren","at"],"mappings":";;;;;AAiBO,SAASA,cACdC,UACAC,MACoD;AAKpD,WAASC,IAAI,GAAGA,IAAID,KAAKE,SAAS,GAAGD,KAAK;AACxC,QAAID,KAAKC,CAAC,MAAM;AACd;AAGF,UAAME,oBAAoBH,KAAKC,IAAI,CAAC;AAEpC,QAAI,CAACG,eAAeD,iBAAiB;AACnC;AAGF,UAAME,QAAQC,aAAaP,UAAUC,KAAKO,MAAM,GAAGN,CAAC,CAAC;AAErD,QAAI,CAACI;AACH;AAGF,UAAMG,aAAaH,MAAMI,KAAKC,UAAUC,KACrCC,CAAAA,YAAYA,QAAQC,SAASV,kBAAkBU,IAClD;AAEA,WAAKL,aAIE;AAAA,MACLC,MAAMD;AAAAA,MACNR,MAAM,CAAC,GAAGK,MAAML,MAAM,YAAY;AAAA,QAACa,MAAML,WAAWK;AAAAA,MAAAA,CAAK;AAAA,IAAA,IALzD;AAAA,EAOJ;AAGF;AC/CO,SAASC,aACdf,UACAC,MACsC;AAGtC,SAFiBe,YAAYhB,UAAUC,IAAI,EAE3BgB,GAAG,EAAE;AACvB;"}
@@ -1,5 +1,5 @@
1
- import { $ as EditorContext, F as BlockOffset, Nt as TraversalSnapshot, dn as ChildPath, fn as KeyedSegment, lt as EditorSelection, pn as Path, un as BlockPath, ut as EditorSelectionPoint } from "../_chunks-dts/behavior.types.action.js";
2
- import * as _portabletext_schema9 from "@portabletext/schema";
1
+ import { Ft as KeyedSegment, It as Path, M as EditorSelection, N as EditorSelectionPoint, Nt as BlockPath, Pt as ChildPath, S as EditorContext, nt as TraversalSnapshot } from "../_chunks-dts/behavior.types.action.js";
2
+ import { t as BlockOffset } from "../_chunks-dts/block-offset.js";
3
3
  import { PortableTextBlock, PortableTextTextBlock, isSpan, isTextBlock } from "@portabletext/schema";
4
4
  /**
5
5
  * @public
@@ -124,7 +124,7 @@ declare function mergeTextBlocks({
124
124
  context: Pick<EditorContext, 'keyGenerator' | 'schema'>;
125
125
  targetBlock: PortableTextTextBlock;
126
126
  incomingBlock: PortableTextTextBlock;
127
- }): PortableTextTextBlock<_portabletext_schema9.PortableTextObject | _portabletext_schema9.PortableTextSpan>;
127
+ }): PortableTextTextBlock<import("@portabletext/schema").PortableTextObject | import("@portabletext/schema").PortableTextSpan>;
128
128
  /**
129
129
  * @public
130
130
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/utils/util.block-offset.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.slice-blocks.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/utils/util.block-offset.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.slice-blocks.ts"],"mappings":";;;AAYA;;;AAAA,iBAAgB,+BAAA;EACd,QAAA;EACA,WAAA;EACA;AAAA;EAEA,QAAA,EAAU,iBAAA;EACV,WAAA,EAAa,WAAA;EACb,SAAA;AAAA;QAY2B,SAAA;;;;;;iBA4Db,+BAAA;EACd,QAAA;EACA;AAAA;EAEA,QAAA,EAAU,iBAAA;EACV,cAAA,EAAgB,oBAAA;AAAA,IACd,WAAA;;AArFJ;;iBCJgB,uBAAA;EACd,QAAA;EACA,OAAA;EACA;AAAA;EAEA,QAAA,EAAU,iBAAA;EACV,OAAA;IAAU,MAAA,EAAQ,WAAA;IAAa,KAAA,EAAO,WAAA;EAAA;EACtC,QAAA;AAAA,IACE,eAAA;;ADJJ;;iBEFgB,gCAAA;EACd,QAAA;EACA;AAAA;EAEA,QAAA,EAAU,iBAAA;EACV,cAAA,EAAgB,oBAAA;AAAA,IACd,WAAA;AFJJ;;;AAAA,iBGJgB,gBAAA;EACd,OAAA;EACA;AAAA;EAEA,OAAA,EAAS,IAAA,CAAK,aAAA;EACd,KAAA;IACE,IAAA,EAAM,iBAAA;IACN,IAAA,EAAM,SAAA;EAAA;AAAA,IAEN,oBAAA;AHLJ;;;AAAA,iBIJgB,kBAAA;EACd,OAAA;EACA;AAAA;EAEA,OAAA,EAAS,IAAA,CAAK,aAAA;EACd,KAAA;IACE,IAAA,EAAM,iBAAA;IACN,IAAA,EAAM,SAAA;EAAA;AAAA,IAEN,oBAAA;;;;iBCZY,oBAAA,0BACW,WAAA,CAAY,eAAA,wCACP,oBAAA,WAC5B,gBAAA,SAAyB,WAAA,CAAY,eAAA,IACjC,oBAAA,UAEN,SAAA,EAAW,gBAAA,GAAmB,qBAAA;;;;iBCNhB,sBAAA,0BACW,WAAA,CAAY,eAAA,wCACP,oBAAA,WAC5B,gBAAA,SAAyB,WAAA,CAAY,eAAA,IACjC,oBAAA,UAEN,SAAA,EAAW,gBAAA,GAAmB,qBAAA;;;;iBCNhB,gBAAA,CAAiB,KAA4B,EAArB,qBAAqB;;;APO7D;iBQLgB,gBAAA,CACd,OAAA,EAAS,IAAA,CAAK,aAAA,aACd,KAAA,EAAO,iBAAA;;;;iBCHO,YAAA,CAAa,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,IAAI;;;;iBCA7B,sBAAA,CACd,CAAA,EAAG,oBAAA,EACH,CAAA,EAAG,oBAAoB;;;;iBCFT,iBAAA,CAAkB,CAAA,EAAG,eAAA,EAAiB,CAAA,EAAG,eAAe;;;;iBCDxD,cAAA,CAAe,OAAA,YAAmB,OAAA,IAAW,YAAY;;;;iBCCzD,oBAAA,CAAqB,SAA0B,EAAf,eAAe;;;AbM/D;iBcLgB,eAAA;EACd,OAAA;EACA,WAAA;EACA;AAAA;EAEA,OAAA,EAAS,IAAA,CAAK,aAAA;EACd,WAAA,EAAa,qBAAA;EACb,aAAA,EAAe,qBAAA;AAAA,IAChB,qBAAA,gCAAA,kBAAA,kCAAA,gBAAA;;;;iBCVe,gBAAA,0BACW,WAAA,CAAY,eAAA,UACrC,SAAA,EAAW,gBAAA,GAAmB,gBAAA;;;AfKhC;iBgBEgB,WAAA;EACd,OAAA;EACA;AAAA;EAEA,OAAA,EAAS,IAAA,CAAK,aAAA;IACZ,YAAA;EAAA;EAEF,MAAA,EAAQ,KAAA,CAAM,iBAAA;AAAA,IACZ,KAAA,CAAM,iBAAA"}
@@ -1,9 +1,9 @@
1
- import { blockOffsetToSpanSelectionPoint, isEqualSelectionPoints, parseBlock } from "../_chunks-es/util.slice-blocks.js";
2
- import { getBlockEndPoint, getBlockStartPoint, getSelectionEndPoint, getSelectionStartPoint, isEqualPaths, isSelectionCollapsed, sliceBlocks, spanSelectionPointToBlockOffset } from "../_chunks-es/util.slice-blocks.js";
1
+ import { blockOffsetToSpanSelectionPoint, parseBlock } from "../_chunks-es/util.slice-blocks.js";
2
+ import { getBlockEndPoint, getBlockStartPoint, getSelectionEndPoint, getSelectionStartPoint, isEqualPaths, isEqualSelectionPoints, isSelectionCollapsed, sliceBlocks, spanSelectionPointToBlockOffset } from "../_chunks-es/util.slice-blocks.js";
3
3
  import { getNode, isKeyedSegment, getParent } from "../_chunks-es/get-parent.js";
4
4
  import { isSpan, isTextBlock } from "@portabletext/schema";
5
5
  import { isSpan as isSpan2, isTextBlock as isTextBlock2 } from "@portabletext/schema";
6
- import { getTextBlockText, isEmptyTextBlock } from "../_chunks-es/util.is-empty-text-block.js";
6
+ import { getTextBlockText, isEmptyTextBlock, isEqualSelections } from "../_chunks-es/util.is-equal-selections.js";
7
7
  function blockOffsetToBlockSelectionPoint({
8
8
  snapshot,
9
9
  blockOffset
@@ -73,9 +73,6 @@ function childSelectionPointToBlockOffset({
73
73
  isSpan(snapshot.context, child) && (offset += child.text.length);
74
74
  }
75
75
  }
76
- function isEqualSelections(a, b) {
77
- return !a && !b ? !0 : !a || !b ? !1 : isEqualSelectionPoints(a.anchor, b.anchor) && isEqualSelectionPoints(a.focus, b.focus);
78
- }
79
76
  function mergeTextBlocks({
80
77
  context,
81
78
  targetBlock,
@@ -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"],"sourcesContent":["import {getNode} from '../traversal/get-node'\nimport type {TraversalSnapshot} from '../traversal/traversal-snapshot'\nimport type {BlockOffset} from '../types/block-offset'\nimport type {EditorSelectionPoint} from '../types/editor'\n\nexport function blockOffsetToBlockSelectionPoint({\n snapshot,\n blockOffset,\n}: {\n snapshot: TraversalSnapshot\n blockOffset: BlockOffset\n}): EditorSelectionPoint | undefined {\n const blockEntry = getNode(snapshot, blockOffset.path)\n\n if (!blockEntry) {\n return undefined\n }\n\n return {\n path: blockEntry.path,\n offset: blockOffset.offset,\n }\n}\n","import type {TraversalSnapshot} from '../traversal/traversal-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\nexport function blockOffsetToSelectionPoint({\n snapshot,\n blockOffset,\n direction,\n}: {\n snapshot: TraversalSnapshot\n blockOffset: BlockOffset\n direction: 'forward' | 'backward'\n}): EditorSelectionPoint | undefined {\n const spanSelectionPoint = blockOffsetToSpanSelectionPoint({\n snapshot,\n blockOffset,\n direction,\n })\n\n if (!spanSelectionPoint) {\n return blockOffsetToBlockSelectionPoint({\n snapshot,\n blockOffset,\n })\n }\n\n return spanSelectionPoint\n}\n","import type {TraversalSnapshot} from '../traversal/traversal-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 snapshot,\n offsets,\n backward,\n}: {\n snapshot: TraversalSnapshot\n offsets: {anchor: BlockOffset; focus: BlockOffset}\n backward?: boolean\n}): EditorSelection {\n const anchor = blockOffsetToSelectionPoint({\n snapshot,\n blockOffset: offsets.anchor,\n direction: backward ? 'backward' : 'forward',\n })\n const focus = blockOffsetToSelectionPoint({\n snapshot,\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 {getParent} from '../traversal/get-parent'\nimport type {TraversalSnapshot} from '../traversal/traversal-snapshot'\nimport type {BlockOffset} from '../types/block-offset'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport {isKeyedSegment} from './util.is-keyed-segment'\n\n/**\n * @public\n */\nexport function childSelectionPointToBlockOffset({\n snapshot,\n selectionPoint,\n}: {\n snapshot: TraversalSnapshot\n selectionPoint: EditorSelectionPoint\n}): BlockOffset | undefined {\n const childSegment = selectionPoint.path.at(-1)\n\n if (!isKeyedSegment(childSegment)) {\n return undefined\n }\n\n const textBlock = getParent(snapshot, selectionPoint.path, {\n match: (node) => isTextBlock({schema: snapshot.context.schema}, node),\n })\n\n if (!textBlock) {\n return undefined\n }\n\n let offset = 0\n\n for (const child of textBlock.node.children) {\n if (child._key === childSegment._key) {\n return {\n path: textBlock.path,\n offset: offset + selectionPoint.offset,\n }\n }\n\n if (isSpan(snapshot.context, child)) {\n offset += child.text.length\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 keyGenerator: context.keyGenerator,\n block: incomingBlock,\n options: {\n normalize: false,\n removeUnusedMarkDefs: true,\n validateFields: false,\n },\n schema: context.schema,\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"],"names":["blockOffsetToBlockSelectionPoint","snapshot","blockOffset","blockEntry","getNode","path","offset","blockOffsetToSelectionPoint","direction","blockOffsetToSpanSelectionPoint","blockOffsetsToSelection","offsets","backward","anchor","focus","childSelectionPointToBlockOffset","selectionPoint","childSegment","at","isKeyedSegment","textBlock","getParent","match","node","isTextBlock","schema","context","child","children","_key","isSpan","text","length","isEqualSelections","a","b","isEqualSelectionPoints","mergeTextBlocks","targetBlock","incomingBlock","parsedIncomingBlock","parseBlock","keyGenerator","block","options","normalize","removeUnusedMarkDefs","validateFields","markDefs","reverseSelection","selection"],"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.merge-text-blocks.ts","../../src/utils/util.reverse-selection.ts"],"sourcesContent":["import {getNode} from '../traversal/get-node'\nimport type {TraversalSnapshot} from '../traversal/traversal-snapshot'\nimport type {BlockOffset} from '../types/block-offset'\nimport type {EditorSelectionPoint} from '../types/editor'\n\nexport function blockOffsetToBlockSelectionPoint({\n snapshot,\n blockOffset,\n}: {\n snapshot: TraversalSnapshot\n blockOffset: BlockOffset\n}): EditorSelectionPoint | undefined {\n const blockEntry = getNode(snapshot, blockOffset.path)\n\n if (!blockEntry) {\n return undefined\n }\n\n return {\n path: blockEntry.path,\n offset: blockOffset.offset,\n }\n}\n","import type {TraversalSnapshot} from '../traversal/traversal-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\nexport function blockOffsetToSelectionPoint({\n snapshot,\n blockOffset,\n direction,\n}: {\n snapshot: TraversalSnapshot\n blockOffset: BlockOffset\n direction: 'forward' | 'backward'\n}): EditorSelectionPoint | undefined {\n const spanSelectionPoint = blockOffsetToSpanSelectionPoint({\n snapshot,\n blockOffset,\n direction,\n })\n\n if (!spanSelectionPoint) {\n return blockOffsetToBlockSelectionPoint({\n snapshot,\n blockOffset,\n })\n }\n\n return spanSelectionPoint\n}\n","import type {TraversalSnapshot} from '../traversal/traversal-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 snapshot,\n offsets,\n backward,\n}: {\n snapshot: TraversalSnapshot\n offsets: {anchor: BlockOffset; focus: BlockOffset}\n backward?: boolean\n}): EditorSelection {\n const anchor = blockOffsetToSelectionPoint({\n snapshot,\n blockOffset: offsets.anchor,\n direction: backward ? 'backward' : 'forward',\n })\n const focus = blockOffsetToSelectionPoint({\n snapshot,\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 {getParent} from '../traversal/get-parent'\nimport type {TraversalSnapshot} from '../traversal/traversal-snapshot'\nimport type {BlockOffset} from '../types/block-offset'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport {isKeyedSegment} from './util.is-keyed-segment'\n\n/**\n * @public\n */\nexport function childSelectionPointToBlockOffset({\n snapshot,\n selectionPoint,\n}: {\n snapshot: TraversalSnapshot\n selectionPoint: EditorSelectionPoint\n}): BlockOffset | undefined {\n const childSegment = selectionPoint.path.at(-1)\n\n if (!isKeyedSegment(childSegment)) {\n return undefined\n }\n\n const textBlock = getParent(snapshot, selectionPoint.path, {\n match: (node) => isTextBlock({schema: snapshot.context.schema}, node),\n })\n\n if (!textBlock) {\n return undefined\n }\n\n let offset = 0\n\n for (const child of textBlock.node.children) {\n if (child._key === childSegment._key) {\n return {\n path: textBlock.path,\n offset: offset + selectionPoint.offset,\n }\n }\n\n if (isSpan(snapshot.context, child)) {\n offset += child.text.length\n }\n }\n\n return undefined\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 keyGenerator: context.keyGenerator,\n block: incomingBlock,\n options: {\n normalize: false,\n removeUnusedMarkDefs: true,\n validateFields: false,\n },\n schema: context.schema,\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"],"names":["blockOffsetToBlockSelectionPoint","snapshot","blockOffset","blockEntry","getNode","path","offset","blockOffsetToSelectionPoint","direction","blockOffsetToSpanSelectionPoint","blockOffsetsToSelection","offsets","backward","anchor","focus","childSelectionPointToBlockOffset","selectionPoint","childSegment","at","isKeyedSegment","textBlock","getParent","match","node","isTextBlock","schema","context","child","children","_key","isSpan","text","length","mergeTextBlocks","targetBlock","incomingBlock","parsedIncomingBlock","parseBlock","keyGenerator","block","options","normalize","removeUnusedMarkDefs","validateFields","markDefs","reverseSelection","selection"],"mappings":";;;;;;AAKO,SAASA,iCAAiC;AAAA,EAC/CC;AAAAA,EACAC;AAIF,GAAqC;AACnC,QAAMC,aAAaC,QAAQH,UAAUC,YAAYG,IAAI;AAErD,MAAKF;AAIL,WAAO;AAAA,MACLE,MAAMF,WAAWE;AAAAA,MACjBC,QAAQJ,YAAYI;AAAAA,IAAAA;AAExB;AChBO,SAASC,4BAA4B;AAAA,EAC1CN;AAAAA,EACAC;AAAAA,EACAM;AAKF,GAAqC;AAOnC,SAN2BC,gCAAgC;AAAA,IACzDR;AAAAA,IACAC;AAAAA,IACAM;AAAAA,EAAAA,CACD,KAGQR,iCAAiC;AAAA,IACtCC;AAAAA,IACAC;AAAAA,EAAAA,CACD;AAIL;ACrBO,SAASQ,wBAAwB;AAAA,EACtCT;AAAAA,EACAU;AAAAA,EACAC;AAKF,GAAoB;AAClB,QAAMC,SAASN,4BAA4B;AAAA,IACzCN;AAAAA,IACAC,aAAaS,QAAQE;AAAAA,IACrBL,WAAWI,WAAW,aAAa;AAAA,EAAA,CACpC,GACKE,QAAQP,4BAA4B;AAAA,IACxCN;AAAAA,IACAC,aAAaS,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;AC3BO,SAASG,iCAAiC;AAAA,EAC/Cd;AAAAA,EACAe;AAIF,GAA4B;AAC1B,QAAMC,eAAeD,eAAeX,KAAKa,GAAG,EAAE;AAE9C,MAAI,CAACC,eAAeF,YAAY;AAC9B;AAGF,QAAMG,YAAYC,UAAUpB,UAAUe,eAAeX,MAAM;AAAA,IACzDiB,OAAQC,UAASC,YAAY;AAAA,MAACC,QAAQxB,SAASyB,QAAQD;AAAAA,IAAAA,GAASF,IAAI;AAAA,EAAA,CACrE;AAED,MAAI,CAACH;AACH;AAGF,MAAId,SAAS;AAEb,aAAWqB,SAASP,UAAUG,KAAKK,UAAU;AAC3C,QAAID,MAAME,SAASZ,aAAaY;AAC9B,aAAO;AAAA,QACLxB,MAAMe,UAAUf;AAAAA,QAChBC,QAAQA,SAASU,eAAeV;AAAAA,MAAAA;AAIhCwB,WAAO7B,SAASyB,SAASC,KAAK,MAChCrB,UAAUqB,MAAMI,KAAKC;AAAAA,EAEzB;AAGF;ACxCO,SAASC,gBAAgB;AAAA,EAC9BP;AAAAA,EACAQ;AAAAA,EACAC;AAKF,GAAG;AACD,QAAMC,sBAAsBC,WAAW;AAAA,IACrCC,cAAcZ,QAAQY;AAAAA,IACtBC,OAAOJ;AAAAA,IACPK,SAAS;AAAA,MACPC,WAAW;AAAA,MACXC,sBAAsB;AAAA,MACtBC,gBAAgB;AAAA,IAAA;AAAA,IAElBlB,QAAQC,QAAQD;AAAAA,EAAAA,CACjB;AAED,SAAI,CAACW,uBAAuB,CAACZ,YAAYE,SAASU,mBAAmB,IAC5DF,cAGF;AAAA,IACL,GAAGA;AAAAA,IACHN,UAAU,CAAC,GAAGM,YAAYN,UAAU,GAAGQ,oBAAoBR,QAAQ;AAAA,IACnEgB,UAAU,CACR,GAAIV,YAAYU,YAAY,CAAA,GAC5B,GAAIR,oBAAoBQ,YAAY,CAAA,CAAG;AAAA,EAAA;AAG7C;AClCO,SAASC,iBAEdC,WAA+C;AAC/C,SAAKA,cAIDA,UAAUlC,WACL;AAAA,IACLC,QAAQiC,UAAUhC;AAAAA,IAClBA,OAAOgC,UAAUjC;AAAAA,IACjBD,UAAU;AAAA,EAAA,IAIP;AAAA,IACLC,QAAQiC,UAAUhC;AAAAA,IAClBA,OAAOgC,UAAUjC;AAAAA,IACjBD,UAAU;AAAA,EAAA;AAEd;"}