Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@portabletext/editor

Package Overview
Dependencies
Maintainers
11
Versions
502
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@portabletext/editor - npm Package Compare versions

Comparing version
7.1.1
to
7.2.0
+1
-1
lib/_chunks-dts/behavior.types.action.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"behavior.types.action.d.ts","names":[],"sources":["../../src/internal-utils/mime-type.ts","../../src/type-utils.ts","../../src/converters/converter.types.ts","../../src/editor/PortableTextEditor.tsx","../../src/types/options.ts","../../src/editor/Editable.tsx","../../src/types/editor.ts","../../src/engine/types/types.ts","../../src/engine/interfaces/point.ts","../../src/engine/interfaces/range.ts","../../src/engine/interfaces/operation.ts","../../src/editor/range-decorations-machine.ts","../../src/engine/interfaces/location.ts","../../src/engine/interfaces/path-ref.ts","../../src/engine/interfaces/point-ref.ts","../../src/engine/interfaces/range-ref.ts","../../src/engine/interfaces/editor.ts","../../src/engine/dom/utils/diff-text.ts","../../src/engine/dom/utils/dom.ts","../../src/engine/dom/plugin/dom-editor.ts","../../src/types/editor-engine.ts","../../src/editor/editor-snapshot.ts","../../src/behaviors/behavior.types.guard.ts","../../src/behaviors/behavior.types.behavior.ts","../../src/editor/relay-machine.ts","../../src/editor.ts","../../src/editor/editor-provider.tsx","../../src/editor/editor-selector.ts","../../src/editor/usePortableTextEditor.ts","../../src/editor/usePortableTextEditorSelection.tsx","../../src/utils/key-generator.ts","../../src/editor/use-editor.ts","../../src/types/block-offset.ts","../../src/priority/priority.types.ts","../../src/behaviors/behavior.config.ts","../../src/editor/editor-machine.ts","../../src/internal-utils/event-position.ts","../../src/types/block-with-optional-key.ts","../../src/behaviors/behavior.types.event.ts","../../src/editor/editor-dom.ts","../../src/behaviors/behavior.types.action.ts"],"sourcesContent":[],"mappings":"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"}
{"version":3,"file":"behavior.types.action.d.ts","names":[],"sources":["../../src/internal-utils/mime-type.ts","../../src/type-utils.ts","../../src/converters/converter.types.ts","../../src/types/paths.ts","../../src/engine/interfaces/path.ts","../../src/renderers/renderer.types.ts","../../src/schema/container-types.ts","../../src/editor/editor-schema.ts","../../src/engine/interfaces/node.ts","../../src/traversal/traversal-snapshot.ts","../../src/schema/resolve-container-at.ts","../../src/editor/PortableTextEditor.tsx","../../src/types/options.ts","../../src/editor/Editable.tsx","../../src/types/editor.ts","../../src/engine/types/types.ts","../../src/engine/interfaces/point.ts","../../src/engine/interfaces/range.ts","../../src/engine/interfaces/operation.ts","../../src/editor/range-decorations-machine.ts","../../src/engine/interfaces/location.ts","../../src/engine/interfaces/path-ref.ts","../../src/engine/interfaces/point-ref.ts","../../src/engine/interfaces/range-ref.ts","../../src/engine/interfaces/editor.ts","../../src/engine/dom/utils/diff-text.ts","../../src/engine/dom/utils/dom.ts","../../src/engine/dom/plugin/dom-editor.ts","../../src/types/editor-engine.ts","../../src/editor/editor-snapshot.ts","../../src/behaviors/behavior.types.guard.ts","../../src/behaviors/behavior.types.behavior.ts","../../src/editor/relay-machine.ts","../../src/editor.ts","../../src/editor/editor-provider.tsx","../../src/editor/editor-selector.ts","../../src/editor/usePortableTextEditor.ts","../../src/editor/usePortableTextEditorSelection.tsx","../../src/utils/key-generator.ts","../../src/editor/use-editor.ts","../../src/types/block-offset.ts","../../src/priority/priority.types.ts","../../src/behaviors/behavior.config.ts","../../src/editor/editor-machine.ts","../../src/internal-utils/event-position.ts","../../src/types/block-with-optional-key.ts","../../src/behaviors/behavior.types.event.ts","../../src/editor/editor-dom.ts","../../src/behaviors/behavior.types.action.ts"],"sourcesContent":[],"mappings":"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"}

@@ -1,3 +0,3 @@

import { getAncestors, isObject, isEditableContainer, getNodes } from "./get-path-sub-schema.js";
import { getChildren, getNode } from "./get-parent.js";
import { getAncestors, isObject as isObject$1, isEditableContainer, getNodes, comparePoints$1 as comparePoints, rangeEdges, isAfterPoint, comparePoints as comparePoints$1, comparePaths } from "./get-path-sub-schema.js";
import { getChildren, getNode, isKeyedSegment } from "./get-parent.js";
import { isSpan, isTextBlock, getSubSchema } from "@portabletext/schema";

@@ -20,3 +20,3 @@ function getAncestor(snapshot, path, options) {

function isLeafObject(snapshot, node, path) {
return isObject(snapshot, node) && !isEditableContainer(snapshot, node, path);
return isObject$1(snapshot, node) && !isEditableContainer(snapshot, node, path);
}

@@ -50,2 +50,12 @@ function getLeaf(snapshot, path, options) {

}
function isPath(value) {
return Array.isArray(value) && (value.length === 0 || typeof value[0] == "number" || typeof value[0] == "string" || isKeyedSegment(value[0]));
}
const isObject = (value) => typeof value == "object" && value !== null;
function isPoint(value) {
return isObject(value) && typeof value.offset == "number" && isPath(value.path);
}
function isRange(value) {
return isObject(value) && isPoint(value.anchor) && isPoint(value.focus);
}
function getText(snapshot, path) {

@@ -78,2 +88,34 @@ const entry = getNode(snapshot, path);

}
function pathContains(ancestor, descendant) {
if (ancestor.length > descendant.length)
return !1;
for (let i = 0; i < ancestor.length; i++) {
const segment = ancestor[i], otherSegment = descendant[i];
if (isKeyedSegment(segment) && isKeyedSegment(otherSegment)) {
if (segment._key !== otherSegment._key)
return !1;
} else if (segment !== otherSegment)
return !1;
}
return !0;
}
function isBeforePoint(point, another, root) {
return comparePoints(point, another, root) === -1;
}
function rangeIntersects(snapshot, range, target) {
if (!range || target === null)
return !1;
const root = {
value: snapshot.context.value
};
if (isRange(target)) {
if (rangeIntersects(snapshot, range, target.anchor) || rangeIntersects(snapshot, range, target.focus))
return !0;
const [rs, re] = rangeEdges(range, root), [ts, te] = rangeEdges(target, root);
return isBeforePoint(rs, ts, root) && isAfterPoint(re, te, root);
}
const [start, end] = rangeEdges(range, root);
let isAfterStart = !1, isBeforeEnd = !1;
return isPoint(target) ? (isAfterStart = comparePoints$1(snapshot, target, start) >= 0, isBeforeEnd = comparePoints$1(snapshot, target, end) <= 0) : (isAfterStart = comparePaths(target, start.path, root) >= 0, isBeforeEnd = comparePaths(target, end.path, root) <= 0), isAfterStart && isBeforeEnd;
}
function getTextBlock(snapshot, path) {

@@ -126,4 +168,11 @@ const entry = getNode(snapshot, path);

getUnionSchema,
isLeafObject
isBeforePoint,
isLeafObject,
isObject,
isPath,
isPoint,
isRange,
pathContains,
rangeIntersects
};
//# sourceMappingURL=get-first-child.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"get-first-child.js","sources":["../../src/traversal/get-ancestor.ts","../../src/traversal/is-leaf-object.ts","../../src/traversal/get-leaf.ts","../../src/traversal/get-text.ts","../../src/traversal/get-span.ts","../../src/traversal/get-text-block.ts","../../src/traversal/get-union-schema.ts","../../src/traversal/get-first-child.ts"],"sourcesContent":["import type {PortableTextBlock} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {getAncestors} from './get-ancestors'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Find an ancestor of the node at a given path that matches a predicate.\n * Does not check the node at the path itself, only its ancestors.\n *\n * `mode: 'lowest'` (default) returns the nearest matching ancestor.\n * `mode: 'highest'` returns the outermost matching ancestor.\n *\n * When `match` is a type predicate, the returned `node` narrows to that type.\n *\n * @beta\n */\nexport function getAncestor<TMatch extends PortableTextBlock>(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n match: (node: PortableTextBlock, path: Path) => node is TMatch\n mode?: 'lowest' | 'highest'\n },\n): {node: TMatch; path: Path} | undefined\n/**\n * @beta\n */\nexport function getAncestor(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n match: (node: PortableTextBlock, path: Path) => boolean\n mode?: 'lowest' | 'highest'\n },\n): {node: PortableTextBlock; path: Path} | undefined\nexport function getAncestor(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n match: (node: PortableTextBlock, path: Path) => boolean\n mode?: 'lowest' | 'highest'\n },\n): {node: PortableTextBlock; path: Path} | undefined {\n const {match, mode = 'lowest'} = options\n const ancestors = getAncestors(snapshot, path)\n\n if (mode === 'highest') {\n for (const ancestor of [...ancestors].reverse()) {\n if (match(ancestor.node, ancestor.path)) {\n return ancestor\n }\n }\n return undefined\n }\n\n for (const ancestor of ancestors) {\n if (match(ancestor.node, ancestor.path)) {\n return ancestor\n }\n }\n\n return undefined\n}\n","import type {PortableTextObject} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {isEditableContainer} from '../schema/is-editable-container'\nimport {isObject} from './is-object'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Check if a node is a leaf object: an object node that has no editable\n * children (not a container).\n * Returns true for block objects and inline objects that don't have\n * registered editable content (containers).\n *\n * @beta\n */\nexport function isLeafObject(\n snapshot: TraversalSnapshot,\n node: unknown,\n path: Path,\n): node is PortableTextObject {\n return isObject(snapshot, node) && !isEditableContainer(snapshot, node, path)\n}\n","import type {Node} from '../engine/interfaces/node'\nimport type {Path} from '../engine/interfaces/path'\nimport {getChildren} from './get-children'\nimport {getNode} from './get-node'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get the deepest leaf node starting from a path, walking toward either the\n * start or end edge. A leaf is any node that has no children according to the\n * traversal context.\n *\n * @beta\n */\nexport function getLeaf(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {edge: 'start' | 'end'},\n): {node: Node; path: Path} | undefined {\n const {edge} = options\n\n let currentPath = path\n\n // If starting from root (empty path), descend into first/last child\n if (currentPath.length === 0) {\n const children = getChildren(snapshot, [])\n if (children.length === 0) {\n return undefined\n }\n const firstOrLast = edge === 'end' ? children.at(-1)! : children.at(0)!\n const nodeChildren = getChildren(snapshot, firstOrLast.path)\n if (nodeChildren.length === 0) {\n return firstOrLast\n }\n currentPath = firstOrLast.path\n } else {\n // Check if the node at path is already a leaf\n const entry = getNode(snapshot, currentPath)\n if (!entry) {\n return undefined\n }\n const children = getChildren(snapshot, currentPath)\n if (children.length === 0) {\n return entry\n }\n }\n\n // Descend to deepest leaf\n while (true) {\n const children = getChildren(snapshot, currentPath)\n if (children.length === 0) {\n const entry = getNode(snapshot, currentPath)\n return entry ?? undefined\n }\n const child = edge === 'end' ? children.at(-1)! : children.at(0)!\n currentPath = child.path\n }\n}\n","import {isSpan} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {getNode} from './get-node'\nimport {getNodes} from './get-nodes'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get the concatenated text content of the node at a given path.\n *\n * @beta\n */\nexport function getText(\n snapshot: TraversalSnapshot,\n path: Path,\n): string | undefined {\n const entry = getNode(snapshot, path)\n\n if (!entry) {\n return undefined\n }\n\n if (isSpan({schema: snapshot.context.schema}, entry.node)) {\n return entry.node.text\n }\n\n let text = ''\n\n for (const descendant of getNodes(snapshot, {at: path})) {\n if (isSpan({schema: snapshot.context.schema}, descendant.node)) {\n text += descendant.node.text\n }\n }\n\n return text\n}\n","import {isSpan, type PortableTextSpan} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {getNode} from './get-node'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get the span node at a given path.\n *\n * @beta\n */\nexport function getSpan(\n snapshot: TraversalSnapshot,\n path: Path,\n): {node: PortableTextSpan; path: Path} | undefined {\n const entry = getNode(snapshot, path)\n\n if (!entry) {\n return undefined\n }\n\n if (!isSpan({schema: snapshot.context.schema}, entry.node)) {\n return undefined\n }\n\n return {node: entry.node, path: entry.path}\n}\n","import {isTextBlock, type PortableTextTextBlock} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {getNode} from './get-node'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get the text block node at a given path.\n *\n * @beta\n */\nexport function getTextBlock(\n snapshot: TraversalSnapshot,\n path: Path,\n): {node: PortableTextTextBlock; path: Path} | undefined {\n const entry = getNode(snapshot, path)\n\n if (!entry) {\n return undefined\n }\n\n if (!isTextBlock({schema: snapshot.context.schema}, entry.node)) {\n return undefined\n }\n\n return {node: entry.node, path: entry.path}\n}\n","import {getSubSchema, type Schema} from '@portabletext/schema'\nimport type {Containers} from '../schema/resolve-containers'\n\n/**\n * Return a `Schema` that contains every named member declared anywhere\n * in the editor's schema graph that is reachable from a position where text\n * is edited - the root schema merged with the sub-schema of every registered\n * container whose field accepts text blocks, deduped by name. Useful for\n * rendering a static toolbar whose buttons stay stable across selection\n * moves while still reflecting everything that could plausibly be edited or\n * inserted somewhere.\n *\n * Containers whose field does NOT accept text blocks (e.g. a `table`\n * container whose `rows` field only accepts `row` objects, or a `row`\n * container whose `cells` field only accepts `cell` objects) are\n * **structural**: their immediate `of` types are organizational, not\n * insertable user content. Those structural types are excluded from the\n * union. Their nested text-block-accepting descendants (e.g. a `cell`\n * that contains a `content` field of `{type: 'block'}`) are reached via\n * those descendants' own container registration.\n *\n * Pair with `getPathSubSchema` (or a path-based intersection across a\n * range) to determine which of the union's members are applicable at the\n * current selection.\n *\n * @beta\n */\nexport function getUnionSchema(schema: Schema, containers: Containers): Schema {\n const decorators = mergeByName(schema.decorators, [])\n const annotations = mergeByName(schema.annotations, [])\n const lists = mergeByName(schema.lists, [])\n const styles = mergeByName(schema.styles, [])\n const inlineObjects = mergeByName(schema.inlineObjects, [])\n const blockObjects = mergeByName(schema.blockObjects, [])\n\n for (const container of containers.values()) {\n if (!acceptsTextBlock(container.field.of, schema.block.name)) {\n continue\n }\n const sub = getSubSchema(schema, container.field.of)\n mergeByName(sub.decorators, decorators)\n mergeByName(sub.annotations, annotations)\n mergeByName(sub.lists, lists)\n mergeByName(sub.styles, styles)\n mergeByName(sub.inlineObjects, inlineObjects)\n mergeByName(sub.blockObjects, blockObjects)\n }\n\n return {\n ...schema,\n decorators,\n annotations,\n lists,\n styles,\n inlineObjects,\n blockObjects,\n }\n}\n\nfunction acceptsTextBlock(\n of: ReadonlyArray<{type: string}>,\n blockName: string,\n): boolean {\n return of.some(\n (member) => member.type === 'block' || member.type === blockName,\n )\n}\n\nfunction mergeByName<T extends {name: string}>(\n source: ReadonlyArray<T>,\n target: Array<T>,\n): Array<T> {\n for (const entry of source) {\n if (target.some((existing) => existing.name === entry.name)) {\n continue\n }\n target.push(entry)\n }\n return target\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 first child of a node at a given path.\n *\n * @beta\n */\nexport function getFirstChild(\n snapshot: TraversalSnapshot,\n path: Path,\n): {node: Node; path: Path} | undefined {\n return getChildren(snapshot, path).at(0)\n}\n"],"names":["getAncestor","snapshot","path","options","match","mode","ancestors","getAncestors","ancestor","reverse","node","isLeafObject","isObject","isEditableContainer","getLeaf","edge","currentPath","length","children","getChildren","firstOrLast","at","entry","getNode","undefined","getText","isSpan","schema","context","text","descendant","getNodes","getSpan","getTextBlock","isTextBlock","getUnionSchema","containers","decorators","mergeByName","annotations","lists","styles","inlineObjects","blockObjects","container","values","acceptsTextBlock","field","of","block","name","sub","getSubSchema","blockName","some","member","type","source","target","existing","push","getFirstChild"],"mappings":"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"}
{"version":3,"file":"get-first-child.js","sources":["../../src/traversal/get-ancestor.ts","../../src/traversal/is-leaf-object.ts","../../src/traversal/get-leaf.ts","../../src/engine/path/is-path.ts","../../src/engine/utils/is-object.ts","../../src/engine/point/is-point.ts","../../src/engine/range/is-range.ts","../../src/traversal/get-text.ts","../../src/traversal/get-span.ts","../../src/traversal/path-contains.ts","../../src/engine/point/is-before-point.ts","../../src/traversal/range-intersects.ts","../../src/traversal/get-text-block.ts","../../src/traversal/get-union-schema.ts","../../src/traversal/get-first-child.ts"],"sourcesContent":["import type {PortableTextBlock} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {getAncestors} from './get-ancestors'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Find an ancestor of the node at a given path that matches a predicate.\n * Does not check the node at the path itself, only its ancestors.\n *\n * `mode: 'lowest'` (default) returns the nearest matching ancestor.\n * `mode: 'highest'` returns the outermost matching ancestor.\n *\n * When `match` is a type predicate, the returned `node` narrows to that type.\n *\n * @beta\n */\nexport function getAncestor<TMatch extends PortableTextBlock>(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n match: (node: PortableTextBlock, path: Path) => node is TMatch\n mode?: 'lowest' | 'highest'\n },\n): {node: TMatch; path: Path} | undefined\n/**\n * @beta\n */\nexport function getAncestor(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n match: (node: PortableTextBlock, path: Path) => boolean\n mode?: 'lowest' | 'highest'\n },\n): {node: PortableTextBlock; path: Path} | undefined\nexport function getAncestor(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n match: (node: PortableTextBlock, path: Path) => boolean\n mode?: 'lowest' | 'highest'\n },\n): {node: PortableTextBlock; path: Path} | undefined {\n const {match, mode = 'lowest'} = options\n const ancestors = getAncestors(snapshot, path)\n\n if (mode === 'highest') {\n for (const ancestor of [...ancestors].reverse()) {\n if (match(ancestor.node, ancestor.path)) {\n return ancestor\n }\n }\n return undefined\n }\n\n for (const ancestor of ancestors) {\n if (match(ancestor.node, ancestor.path)) {\n return ancestor\n }\n }\n\n return undefined\n}\n","import type {PortableTextObject} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {isEditableContainer} from '../schema/is-editable-container'\nimport {isObject} from './is-object'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Check if a node is a leaf object: an object node that has no editable\n * children (not a container).\n * Returns true for block objects and inline objects that don't have\n * registered editable content (containers).\n *\n * @beta\n */\nexport function isLeafObject(\n snapshot: TraversalSnapshot,\n node: unknown,\n path: Path,\n): node is PortableTextObject {\n return isObject(snapshot, node) && !isEditableContainer(snapshot, node, path)\n}\n","import type {Node} from '../engine/interfaces/node'\nimport type {Path} from '../engine/interfaces/path'\nimport {getChildren} from './get-children'\nimport {getNode} from './get-node'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get the deepest leaf node starting from a path, walking toward either the\n * start or end edge. A leaf is any node that has no children according to the\n * traversal context.\n *\n * @beta\n */\nexport function getLeaf(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {edge: 'start' | 'end'},\n): {node: Node; path: Path} | undefined {\n const {edge} = options\n\n let currentPath = path\n\n // If starting from root (empty path), descend into first/last child\n if (currentPath.length === 0) {\n const children = getChildren(snapshot, [])\n if (children.length === 0) {\n return undefined\n }\n const firstOrLast = edge === 'end' ? children.at(-1)! : children.at(0)!\n const nodeChildren = getChildren(snapshot, firstOrLast.path)\n if (nodeChildren.length === 0) {\n return firstOrLast\n }\n currentPath = firstOrLast.path\n } else {\n // Check if the node at path is already a leaf\n const entry = getNode(snapshot, currentPath)\n if (!entry) {\n return undefined\n }\n const children = getChildren(snapshot, currentPath)\n if (children.length === 0) {\n return entry\n }\n }\n\n // Descend to deepest leaf\n while (true) {\n const children = getChildren(snapshot, currentPath)\n if (children.length === 0) {\n const entry = getNode(snapshot, currentPath)\n return entry ?? undefined\n }\n const child = edge === 'end' ? children.at(-1)! : children.at(0)!\n currentPath = child.path\n }\n}\n","import {isKeyedSegment} from '../../utils/util.is-keyed-segment'\nimport type {Path} from '../interfaces/path'\n\nexport function isPath(value: any): value is Path {\n return (\n Array.isArray(value) &&\n (value.length === 0 ||\n typeof value[0] === 'number' ||\n typeof value[0] === 'string' ||\n isKeyedSegment(value[0]))\n )\n}\n","export const isObject = (value: any) =>\n typeof value === 'object' && value !== null\n","import type {Point} from '../interfaces/point'\nimport {isPath} from '../path/is-path'\nimport {isObject} from '../utils/is-object'\n\nexport function isPoint(value: any): value is Point {\n return (\n isObject(value) && typeof value.offset === 'number' && isPath(value.path)\n )\n}\n","import type {Range} from '../interfaces/range'\nimport {isPoint} from '../point/is-point'\nimport {isObject} from '../utils/is-object'\n\nexport function isRange(value: any): value is Range {\n return isObject(value) && isPoint(value.anchor) && isPoint(value.focus)\n}\n","import {isSpan} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {getNode} from './get-node'\nimport {getNodes} from './get-nodes'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get the concatenated text content of the node at a given path.\n *\n * @beta\n */\nexport function getText(\n snapshot: TraversalSnapshot,\n path: Path,\n): string | undefined {\n const entry = getNode(snapshot, path)\n\n if (!entry) {\n return undefined\n }\n\n if (isSpan({schema: snapshot.context.schema}, entry.node)) {\n return entry.node.text\n }\n\n let text = ''\n\n for (const descendant of getNodes(snapshot, {at: path})) {\n if (isSpan({schema: snapshot.context.schema}, descendant.node)) {\n text += descendant.node.text\n }\n }\n\n return text\n}\n","import {isSpan, type PortableTextSpan} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {getNode} from './get-node'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get the span node at a given path.\n *\n * @beta\n */\nexport function getSpan(\n snapshot: TraversalSnapshot,\n path: Path,\n): {node: PortableTextSpan; path: Path} | undefined {\n const entry = getNode(snapshot, path)\n\n if (!entry) {\n return undefined\n }\n\n if (!isSpan({schema: snapshot.context.schema}, entry.node)) {\n return undefined\n }\n\n return {node: entry.node, path: entry.path}\n}\n","import type {Path} from '../types/paths'\nimport {isKeyedSegment} from '../utils/util.is-keyed-segment'\n\n/**\n * Returns true if `ancestor` is equal to `descendant`, or if `descendant`\n * lives anywhere inside `ancestor`'s subtree.\n *\n * @beta\n */\nexport function pathContains(ancestor: Path, descendant: Path): boolean {\n if (ancestor.length > descendant.length) {\n return false\n }\n\n for (let i = 0; i < ancestor.length; i++) {\n const segment = ancestor[i]\n const otherSegment = descendant[i]\n\n if (isKeyedSegment(segment) && isKeyedSegment(otherSegment)) {\n if (segment._key !== otherSegment._key) {\n return false\n }\n } else if (segment !== otherSegment) {\n return false\n }\n }\n\n return true\n}\n","import type {Node} from '../interfaces/node'\nimport type {Point} from '../interfaces/point'\nimport {comparePoints} from './compare-points'\n\nexport function isBeforePoint(\n point: Point,\n another: Point,\n root: {value: Array<Node>},\n): boolean {\n return comparePoints(point, another, root) === -1\n}\n","import {comparePaths} from '../engine/path/compare-paths'\nimport {isAfterPoint} from '../engine/point/is-after-point'\nimport {isBeforePoint} from '../engine/point/is-before-point'\nimport {isPoint} from '../engine/point/is-point'\nimport {isRange} from '../engine/range/is-range'\nimport {rangeEdges} from '../engine/range/range-edges'\nimport type {EditorSelection, EditorSelectionPoint} from '../types/editor'\nimport type {Path} from '../types/paths'\nimport {comparePoints} from './compare-points'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Returns true if `range` and the supplied `target` intersect. The target\n * may be a `Path`, an `EditorSelectionPoint`, or another\n * `EditorSelection`.\n *\n * For a `Path` or `EditorSelectionPoint` target, \"intersect\" means the\n * target lies at or between `range`'s start and end edges (inclusive).\n *\n * For an `EditorSelection` target, \"intersect\" means either endpoint of\n * `target` lies inside `range`, or `range` strictly encloses `target`.\n *\n * Pass `snapshot.context.selection` as `range` to ask the question against\n * the editor's current selection.\n *\n * Returns `false` when either `range` or `target` is `null`.\n *\n * @beta\n */\nexport function rangeIntersects(\n snapshot: TraversalSnapshot,\n range: EditorSelection,\n target: Path | EditorSelectionPoint | EditorSelection,\n): boolean {\n if (!range || target === null) {\n return false\n }\n\n const root = {value: snapshot.context.value}\n\n if (isRange(target)) {\n if (\n rangeIntersects(snapshot, range, target.anchor) ||\n rangeIntersects(snapshot, range, target.focus)\n ) {\n return true\n }\n const [rs, re] = rangeEdges(range, root)\n const [ts, te] = rangeEdges(target, root)\n return isBeforePoint(rs, ts, root) && isAfterPoint(re, te, root)\n }\n\n const [start, end] = rangeEdges(range, root)\n let isAfterStart = false\n let isBeforeEnd = false\n\n if (isPoint(target)) {\n isAfterStart = comparePoints(snapshot, target, start) >= 0\n isBeforeEnd = comparePoints(snapshot, target, end) <= 0\n } else {\n isAfterStart = comparePaths(target, start.path, root) >= 0\n isBeforeEnd = comparePaths(target, end.path, root) <= 0\n }\n\n return isAfterStart && isBeforeEnd\n}\n","import {isTextBlock, type PortableTextTextBlock} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {getNode} from './get-node'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get the text block node at a given path.\n *\n * @beta\n */\nexport function getTextBlock(\n snapshot: TraversalSnapshot,\n path: Path,\n): {node: PortableTextTextBlock; path: Path} | undefined {\n const entry = getNode(snapshot, path)\n\n if (!entry) {\n return undefined\n }\n\n if (!isTextBlock({schema: snapshot.context.schema}, entry.node)) {\n return undefined\n }\n\n return {node: entry.node, path: entry.path}\n}\n","import {getSubSchema, type Schema} from '@portabletext/schema'\nimport type {Containers} from '../schema/resolve-containers'\n\n/**\n * Return a `Schema` that contains every named member declared anywhere\n * in the editor's schema graph that is reachable from a position where text\n * is edited - the root schema merged with the sub-schema of every registered\n * container whose field accepts text blocks, deduped by name. Useful for\n * rendering a static toolbar whose buttons stay stable across selection\n * moves while still reflecting everything that could plausibly be edited or\n * inserted somewhere.\n *\n * Containers whose field does NOT accept text blocks (e.g. a `table`\n * container whose `rows` field only accepts `row` objects, or a `row`\n * container whose `cells` field only accepts `cell` objects) are\n * **structural**: their immediate `of` types are organizational, not\n * insertable user content. Those structural types are excluded from the\n * union. Their nested text-block-accepting descendants (e.g. a `cell`\n * that contains a `content` field of `{type: 'block'}`) are reached via\n * those descendants' own container registration.\n *\n * Pair with `getPathSubSchema` (or a path-based intersection across a\n * range) to determine which of the union's members are applicable at the\n * current selection.\n *\n * @beta\n */\nexport function getUnionSchema(schema: Schema, containers: Containers): Schema {\n const decorators = mergeByName(schema.decorators, [])\n const annotations = mergeByName(schema.annotations, [])\n const lists = mergeByName(schema.lists, [])\n const styles = mergeByName(schema.styles, [])\n const inlineObjects = mergeByName(schema.inlineObjects, [])\n const blockObjects = mergeByName(schema.blockObjects, [])\n\n for (const container of containers.values()) {\n if (!acceptsTextBlock(container.field.of, schema.block.name)) {\n continue\n }\n const sub = getSubSchema(schema, container.field.of)\n mergeByName(sub.decorators, decorators)\n mergeByName(sub.annotations, annotations)\n mergeByName(sub.lists, lists)\n mergeByName(sub.styles, styles)\n mergeByName(sub.inlineObjects, inlineObjects)\n mergeByName(sub.blockObjects, blockObjects)\n }\n\n return {\n ...schema,\n decorators,\n annotations,\n lists,\n styles,\n inlineObjects,\n blockObjects,\n }\n}\n\nfunction acceptsTextBlock(\n of: ReadonlyArray<{type: string}>,\n blockName: string,\n): boolean {\n return of.some(\n (member) => member.type === 'block' || member.type === blockName,\n )\n}\n\nfunction mergeByName<T extends {name: string}>(\n source: ReadonlyArray<T>,\n target: Array<T>,\n): Array<T> {\n for (const entry of source) {\n if (target.some((existing) => existing.name === entry.name)) {\n continue\n }\n target.push(entry)\n }\n return target\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 first child of a node at a given path.\n *\n * @beta\n */\nexport function getFirstChild(\n snapshot: TraversalSnapshot,\n path: Path,\n): {node: Node; path: Path} | undefined {\n return getChildren(snapshot, path).at(0)\n}\n"],"names":["getAncestor","snapshot","path","options","match","mode","ancestors","getAncestors","ancestor","reverse","node","isLeafObject","isObject","isEditableContainer","getLeaf","edge","currentPath","length","children","getChildren","firstOrLast","at","entry","getNode","undefined","isPath","value","Array","isArray","isKeyedSegment","isPoint","offset","isRange","anchor","focus","getText","isSpan","schema","context","text","descendant","getNodes","getSpan","pathContains","i","segment","otherSegment","_key","isBeforePoint","point","another","root","comparePoints","rangeIntersects","range","target","rs","re","rangeEdges","ts","te","isAfterPoint","start","end","isAfterStart","isBeforeEnd","comparePaths","getTextBlock","isTextBlock","getUnionSchema","containers","decorators","mergeByName","annotations","lists","styles","inlineObjects","blockObjects","container","values","acceptsTextBlock","field","of","block","name","sub","getSubSchema","blockName","some","member","type","source","existing","push","getFirstChild"],"mappings":"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"}

@@ -104,2 +104,69 @@ import { isKeyedSegment, getNodeChildren, getNode, isTypedObject, getChildren, parentPath, getParent } from "./get-parent.js";

}
function comparePaths(path, another, root) {
const min = Math.min(path.length, another.length);
let currentChildren = root?.value, currentNode;
for (let i = 0; i < min; i++) {
const segment = path[i], otherSegment = another[i];
if (isKeyedSegment(segment) && isKeyedSegment(otherSegment)) {
if (segment._key === otherSegment._key) {
currentChildren && (currentNode = currentChildren.find((c) => c._key === segment._key), currentChildren = void 0);
continue;
}
if (currentChildren) {
const segmentIndex = currentChildren.findIndex((c) => c._key === segment._key), otherSegmentIndex = currentChildren.findIndex((c) => c._key === otherSegment._key);
if (segmentIndex !== -1 && otherSegmentIndex !== -1)
return segmentIndex < otherSegmentIndex ? -1 : 1;
}
if (segment._key < otherSegment._key)
return -1;
if (segment._key > otherSegment._key)
return 1;
continue;
}
if (typeof segment == "string" && typeof otherSegment == "string") {
if (segment === otherSegment) {
if (currentNode) {
const fieldValue = currentNode[segment];
currentChildren = Array.isArray(fieldValue) ? fieldValue : void 0, currentNode = void 0;
}
continue;
}
if (segment < otherSegment)
return -1;
if (segment > otherSegment)
return 1;
continue;
}
if (typeof segment == "number" && typeof otherSegment == "number") {
if (segment < otherSegment)
return -1;
if (segment > otherSegment)
return 1;
continue;
}
break;
}
return 0;
}
function comparePoints$1(point, another, root) {
const result = comparePaths(point.path, another.path, root);
return result === 0 ? point.offset < another.offset ? -1 : point.offset > another.offset ? 1 : 0 : result;
}
function isAfterPoint(point, another, root) {
return comparePoints$1(point, another, root) === 1;
}
function isBackwardRange(range, root) {
const {
anchor,
focus
} = range;
return isAfterPoint(anchor, focus, root);
}
function rangeEdges(range, root) {
const {
anchor,
focus
} = range;
return isBackwardRange(range, root) ? [focus, anchor] : [anchor, focus];
}
function isTextBlockNode(context, node) {

@@ -269,2 +336,8 @@ return isTypedObject(node) && node._type === context.schema.block.name;

}
function comparePoints(snapshot, pointA, pointB) {
const pathComparison = comparePaths(pointA.path, pointB.path, {
value: snapshot.context.value
});
return pathComparison !== 0 ? pathComparison : pointA.offset < pointB.offset ? -1 : pointA.offset > pointB.offset ? 1 : 0;
}
function descendToParent(snapshot, path) {

@@ -295,2 +368,5 @@ const ancestors = getAncestors(snapshot, path);

export {
comparePaths,
comparePoints,
comparePoints$1,
getAncestors,

@@ -304,3 +380,5 @@ getBlock,

hasNode,
isAfterPoint,
isAncestorPath,
isBackwardRange,
isBlock,

@@ -312,4 +390,5 @@ isEditableContainer,

isTextBlockNode,
rangeEdges,
resolveContainerAt
};
//# sourceMappingURL=get-path-sub-schema.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"get-path-sub-schema.js","sources":["../../src/traversal/get-ancestors.ts","../../src/traversal/has-node.ts","../../src/schema/resolve-container-at.ts","../../src/schema/is-editable-container.ts","../../src/traversal/is-object.ts","../../src/engine/node/is-text-block-node.ts","../../src/engine/path/is-ancestor-path.ts","../../src/traversal/get-nodes.ts","../../src/traversal/get-sibling.ts","../../src/engine/node/is-span-node.ts","../../src/traversal/is-block.ts","../../src/traversal/is-inline.ts","../../src/traversal/get-enclosing-block.ts","../../src/schema/descend-to-parent.ts","../../src/schema/get-enclosing-container.ts","../../src/traversal/get-path-sub-schema.ts"],"sourcesContent":["import type {PortableTextBlock} from '@portabletext/schema'\nimport type {Node} from '../engine/interfaces/node'\nimport type {Path} from '../engine/interfaces/path'\nimport {isKeyedSegment} from '../utils/util.is-keyed-segment'\nimport {getNodeChildren} from './get-children'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get all ancestors of the node at a given path, from nearest to furthest.\n *\n * For a path like [{_key:'t1'}, 'rows', {_key:'r1'}, 'cells', {_key:'c1'}],\n * the ancestors are (nearest first):\n * [{_key:'t1'}, 'rows', {_key:'r1'}]\n * [{_key:'t1'}]\n *\n * Walks from root to the target in a single pass collecting each ancestor\n * as it goes.\n *\n * Every ancestor is a `PortableTextBlock` — only text blocks and object\n * nodes can contain children.\n *\n * @beta\n */\nexport function getAncestors(\n snapshot: TraversalSnapshot,\n path: Path,\n): Array<{node: PortableTextBlock; path: Path}> {\n // Collect keyed-segment indices to know where each ancestor's path ends.\n const keyedIndices: Array<number> = []\n for (let i = 0; i < path.length; i++) {\n if (isKeyedSegment(path[i])) {\n keyedIndices.push(i)\n }\n }\n\n // Need at least 2 keyed segments to have an ancestor (the last is self).\n if (keyedIndices.length <= 1) {\n return []\n }\n\n const {context, blockIndexMap} = snapshot\n let currentChildren: Array<Node> = context.value\n let isRootLevel = true\n let currentParent:\n | import('../schema/resolve-containers').RegisteredContainer\n | undefined\n\n const ancestorsByDepth: Array<{node: PortableTextBlock; path: Path}> = []\n const resolvedPath: Path = []\n\n // Descend once. We walk only as far as the second-to-last keyed segment;\n // the last keyed segment is the target itself, which is not an ancestor.\n const targetKeyedIndex = keyedIndices[keyedIndices.length - 1]!\n\n let segmentIndex = 0\n while (segmentIndex < targetKeyedIndex) {\n const segment = path[segmentIndex]!\n\n if (typeof segment === 'string') {\n resolvedPath.push(segment)\n segmentIndex++\n continue\n }\n\n let node: Node | undefined\n if (isKeyedSegment(segment)) {\n // Production snapshots maintain `blockIndexMap` in lockstep with\n // `context.value` so this fast path always fires. Some test\n // fixtures still pass empty or stale maps, which is the debt this\n // size check is working around - see /specs/snapshot-invariants.md.\n // When the fixtures are aligned, drop the guard and use the map\n // directly.\n if (isRootLevel && blockIndexMap.size === currentChildren.length) {\n const index = blockIndexMap.get(segment._key)\n node =\n index !== undefined\n ? currentChildren[index]\n : currentChildren.find((child) => child._key === segment._key)\n } else {\n node = currentChildren.find((child) => child._key === segment._key)\n }\n resolvedPath.push(segment)\n isRootLevel = false\n } else if (typeof segment === 'number') {\n node = currentChildren.at(segment)\n if (node) {\n resolvedPath.push({_key: node._key})\n }\n } else {\n return []\n }\n\n if (!node) {\n return []\n }\n\n // Descend with positional awareness. `getNodeChildren` checks the\n // current parent's `of` for a positional override before falling\n // back to the top-level `containers` map - so same-`_type`\n // registered under different parents with different `field`\n // resolves to the right entry at this position.\n const next = getNodeChildren(context, node, currentParent)\n if (!next) {\n return []\n }\n\n // An ancestor has children, so it is never a span. The narrowing\n // from `Node` to `PortableTextBlock` (text block | object) is safe.\n ancestorsByDepth.push({\n node: node as PortableTextBlock,\n path: resolvedPath.slice(),\n })\n\n currentChildren = next.children\n currentParent = next.parent\n segmentIndex++\n }\n\n // Return nearest-first (reverse of document order at the call site).\n return ancestorsByDepth.reverse()\n}\n","import type {Path} from '../engine/interfaces/path'\nimport {getNode} from './get-node'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Check if a node exists at a given path.\n *\n * @beta\n */\nexport function hasNode(snapshot: TraversalSnapshot, path: Path): boolean {\n return getNode(snapshot, path) !== undefined\n}\n","import type {Node} from '../engine/interfaces/node'\nimport type {Path} from '../engine/interfaces/path'\nimport {isKeyedSegment} from '../utils/util.is-keyed-segment'\nimport type {\n Containers,\n RegisteredContainer,\n RegisteredPositional,\n} from './container-types'\n\n/**\n * Walk the editor value following `path` and return the\n * {@link RegisteredContainer} or {@link RegisteredPositional} that applies\n * at `path`'s target position.\n *\n * Resolution rules at each step:\n *\n * 1. **Positional override.** If the current parent declares the\n * child's `_type` in its `of`, the positional entry wins.\n * Used to resolve same-`_type` registered under different\n * parents with different `field` values.\n *\n * 2. **Global fallback.** If the parent has no positional override,\n * fall back to the top-level entry for `_type` in\n * `containers`.\n *\n * 3. **Chain validity.** If any ancestor along the path has no\n * resolved container entry (unregistered or not reachable as a\n * container at its position), return `undefined`.\n *\n * Returns `undefined` when the target's `_type` is not registered\n * at this position. Returns a {@link RegisteredPositional} when the target\n * resolves to a leaf in a positional `of` (terminal node with no\n * editable children).\n *\n * @alpha\n */\nexport function resolveContainerAt(\n containers: Containers,\n value: ReadonlyArray<Node>,\n path: Path,\n): RegisteredContainer | RegisteredPositional | undefined {\n const keyedIndices: Array<number> = []\n for (let index = 0; index < path.length; index++) {\n if (isKeyedSegment(path[index])) {\n keyedIndices.push(index)\n }\n }\n if (keyedIndices.length === 0) {\n return undefined\n }\n\n let currentChildren: ReadonlyArray<Node> = value\n let parent: RegisteredContainer | undefined\n let resolved: RegisteredContainer | RegisteredPositional | undefined\n const targetKeyedIndex = keyedIndices[keyedIndices.length - 1]!\n\n let segmentIndex = 0\n while (segmentIndex <= targetKeyedIndex) {\n const segment = path[segmentIndex]!\n if (typeof segment === 'string') {\n segmentIndex++\n continue\n }\n\n let node: Node | undefined\n if (isKeyedSegment(segment)) {\n node = currentChildren.find((child) => child._key === segment._key)\n } else if (typeof segment === 'number') {\n node = currentChildren.at(segment)\n } else {\n return undefined\n }\n if (!node) {\n return undefined\n }\n\n resolved = resolveNodeEntry(containers, parent, node)\n if (!resolved) {\n return undefined\n }\n\n if (segmentIndex < targetKeyedIndex) {\n // Walk one more level. The resolved entry must be a container\n // (have children) for descent to continue.\n if (!('field' in resolved)) {\n return undefined\n }\n const fieldValue = (node as Record<string, unknown>)[resolved.field.name]\n if (!Array.isArray(fieldValue)) {\n return undefined\n }\n parent = resolved\n currentChildren = fieldValue as Array<Node>\n }\n segmentIndex++\n }\n\n return resolved\n}\n\nfunction resolveNodeEntry(\n containers: Containers,\n parent: RegisteredContainer | undefined,\n node: Node,\n): RegisteredContainer | RegisteredPositional | undefined {\n if (parent?.of) {\n for (const entry of parent.of) {\n if (entry.type === node._type) {\n return entry\n }\n }\n }\n return containers.get(node._type)\n}\n","import type {Node} from '../engine/interfaces/node'\nimport type {Path} from '../engine/interfaces/path'\nimport type {TraversalSnapshot} from '../traversal/traversal-snapshot'\nimport {resolveContainerAt} from './resolve-container-at'\n\n/**\n * Check if a node at the given path is a registered editable container.\n *\n * Position-aware: {@link resolveContainerAt} descends from the editor\n * root threading the resolved parent at each step, so positionally-\n * registered containers (e.g. `cell` registered only inside\n * `table.of`) are recognized when reached through their declared\n * parent.\n */\nexport function isEditableContainer(\n snapshot: TraversalSnapshot,\n _node: Node,\n path: Path,\n): boolean {\n if (snapshot.context.containers.size === 0) {\n return false\n }\n\n // `resolveContainerAt` aborts on the first unregistered object-node\n // ancestor (chain validity falls out of the single descent), so the\n // single call below answers both \"is the node here a container?\" and\n // \"is the ancestor chain valid?\" in one walk.\n const resolved = resolveContainerAt(\n snapshot.context.containers,\n snapshot.context.value,\n path,\n )\n return !!(resolved && 'field' in resolved)\n}\n","import type {PortableTextObject} from '@portabletext/schema'\nimport {isTypedObject} from '../utils/asserters'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Check if a node is an object node (not a text block or span).\n *\n * @beta\n */\nexport function isObject(\n snapshot: TraversalSnapshot,\n node: unknown,\n): node is PortableTextObject {\n return (\n isTypedObject(node) &&\n node._type !== snapshot.context.schema.block.name &&\n node._type !== snapshot.context.schema.span.name\n )\n}\n","import type {PortableTextObject, PortableTextSpan} from '@portabletext/schema'\nimport type {EditorSchema} from '../../editor/editor-schema'\nimport {isTypedObject} from '../../utils/asserters'\n\ntype TextBlockNode = {\n _type: string\n _key: string\n children?: Array<PortableTextSpan | PortableTextObject>\n markDefs?: Array<PortableTextObject>\n style?: string\n listItem?: string\n level?: number\n}\n\n/**\n * Checks if a node is a text block based on `_type` alone, without requiring\n * `children` to be present. This is needed to identify text blocks before\n * normalization has had a chance to add the missing `children` property.\n */\nexport function isTextBlockNode(\n context: {schema: EditorSchema},\n node: unknown,\n): node is TextBlockNode {\n return isTypedObject(node) && node._type === context.schema.block.name\n}\n","import {isKeyedSegment} from '../../utils/util.is-keyed-segment'\nimport type {Path} from '../interfaces/path'\n\nexport function isAncestorPath(path: Path, another: Path): boolean {\n if (path.length >= another.length) {\n return false\n }\n\n for (let i = 0; i < path.length; i++) {\n const segment = path[i]\n const otherSegment = another[i]\n\n if (isKeyedSegment(segment) && isKeyedSegment(otherSegment)) {\n if (segment._key !== otherSegment._key) {\n return false\n }\n } else if (segment !== otherSegment) {\n return false\n }\n }\n\n return true\n}\n","import type {EditorSchema} from '../editor/editor-schema'\nimport type {Node} from '../engine/interfaces/node'\nimport type {Path} from '../engine/interfaces/path'\nimport {isAncestorPath} from '../engine/path/is-ancestor-path'\nimport type {\n Containers,\n RegisteredContainer,\n} from '../schema/resolve-containers'\nimport {isKeyedSegment} from '../utils/util.is-keyed-segment'\nimport {getChildren, getNodeChildren} from './get-children'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get the descendant nodes of the node at a given path.\n *\n * When `from` and `to` are provided, performs a range-bounded DFS traversal,\n * yielding only nodes between `from` and `to` (inclusive). Both paths are\n * always in document order: `from` is the earlier path, `to` is the later\n * path. The `reverse` flag controls iteration direction within that range.\n *\n * When `match` is provided, only yields nodes where the predicate returns true.\n * The traversal still visits all nodes in range - `match` is a filter, not a\n * traversal control.\n *\n * When `at` is provided, traverses descendants of the node at that path\n * instead of the root.\n */\nexport function* getNodes(\n snapshot: TraversalSnapshot,\n options: {\n at?: Path\n from?: Path\n to?: Path\n match?: (node: Node, path: Path) => boolean\n reverse?: boolean\n } = {},\n): Generator<{node: Node; path: Path}, void, undefined> {\n const {at = [], from, to, match, reverse = false} = options\n\n if (from === undefined && to === undefined) {\n yield* getNodesSimple(snapshot, at, {match, reverse})\n return\n }\n\n yield* getNodesInRange(snapshot, at, {from, to, match, reverse})\n}\n\n/**\n * Get descendant nodes of a standalone node (not in the editor tree).\n * Used for cases like getDirtyPaths where the node hasn't been inserted yet.\n */\nexport function* getNodeDescendants(\n context: {\n schema: EditorSchema\n containers: Containers\n },\n node: Node | {value: Array<Node>},\n): Generator<{node: Node; path: Path}, void, undefined> {\n // The editor root wrapper ({value: [...]}) is not a real node, so its field\n // name is not part of paths. For standalone nodes (a real {_key, _type, ...}\n // passed in by callers like getDirtyPaths), the field name IS part of the\n // path.\n const isRoot = !('_key' in node) && !('_type' in node)\n yield* walkStandalone(context, node, [], isRoot)\n}\n\nfunction* walkStandalone(\n context: {\n schema: EditorSchema\n containers: Containers\n },\n node: Node | {value: Array<Node>},\n path: Path,\n isRoot: boolean,\n parent?: RegisteredContainer,\n): Generator<{node: Node; path: Path}, void, undefined> {\n const next = getNodeChildren(context, node, parent)\n if (!next) {\n return\n }\n\n for (const child of next.children) {\n const childPath: Path = isRoot\n ? [{_key: child._key}]\n : [...path, next.fieldName, {_key: child._key}]\n yield {node: child, path: childPath}\n yield* walkStandalone(context, child, childPath, false, next.parent)\n }\n}\n\n/**\n * Simple recursive DFS - the original behavior.\n * Yields all descendants of the node at `path`.\n */\nfunction* getNodesSimple(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n match?: (node: Node, path: Path) => boolean\n reverse?: boolean\n },\n): Generator<{node: Node; path: Path}, void, undefined> {\n const {match, reverse = false} = options\n\n const children = getChildren(snapshot, path)\n\n const entries = reverse ? [...children].reverse() : children\n\n for (const entry of entries) {\n if (!match || match(entry.node, entry.path)) {\n yield entry\n }\n\n yield* getNodesSimple(snapshot, entry.path, options)\n }\n}\n\n/**\n * Compare two keyed paths in document order. Returns -1, 0, or 1.\n *\n * Descends both paths from the root in a single pass, advancing\n * `currentNode` and `currentChildren` together so each level costs\n * one keyed-segment scan instead of an O(depth) walk from root.\n *\n * Uses `blockIndexMap` for O(1) lookup at the root level. Deeper\n * levels fall back to a linear scan of the current sibling array.\n */\nfunction comparePathsInTree(\n snapshot: TraversalSnapshot,\n pathA: Path,\n pathB: Path,\n): -1 | 0 | 1 {\n const keysA = pathA.filter(isKeyedSegment)\n const keysB = pathB.filter(isKeyedSegment)\n\n const {context} = snapshot\n let currentChildren: Array<Node> = context.value\n let currentParent: RegisteredContainer | undefined\n let isRootLevel = true\n\n const minDepth = Math.min(keysA.length, keysB.length)\n\n for (let depth = 0; depth < minDepth; depth++) {\n const keyA = keysA[depth]!\n const keyB = keysB[depth]!\n\n if (keyA._key === keyB._key) {\n // Same node at this depth: descend into its children for the next\n // iteration. The root level can short-circuit via blockIndexMap;\n // deeper levels scan the current sibling array.\n let matchedNode: Node | undefined\n if (isRootLevel && snapshot.blockIndexMap.has(keyA._key)) {\n const index = snapshot.blockIndexMap.get(keyA._key)\n if (index !== undefined) {\n matchedNode = currentChildren[index]\n }\n } else {\n matchedNode = currentChildren.find((c) => c._key === keyA._key)\n }\n if (!matchedNode) {\n return 0\n }\n const next = getNodeChildren(context, matchedNode, currentParent)\n if (!next) {\n return 0\n }\n currentChildren = next.children\n currentParent = next.parent\n\n isRootLevel = false\n continue\n }\n\n if (isRootLevel) {\n const indexA = snapshot.blockIndexMap.get(keyA._key) ?? -1\n const indexB = snapshot.blockIndexMap.get(keyB._key) ?? -1\n if (indexA !== -1 && indexB !== -1) {\n if (indexA < indexB) {\n return -1\n }\n if (indexA > indexB) {\n return 1\n }\n return 0\n }\n }\n\n let indexA = -1\n let indexB = -1\n for (let i = 0; i < currentChildren.length; i++) {\n const sibling = currentChildren[i]!\n if (sibling._key === keyA._key) {\n indexA = i\n }\n if (sibling._key === keyB._key) {\n indexB = i\n }\n if (indexA !== -1 && indexB !== -1) {\n break\n }\n }\n\n if (indexA < indexB) {\n return -1\n }\n if (indexA > indexB) {\n return 1\n }\n\n return 0\n }\n\n // One path is a prefix of the other (ancestor relationship)\n // In DFS order, shorter path (ancestor) comes first\n if (keysA.length < keysB.length) {\n return -1\n }\n if (keysA.length > keysB.length) {\n return 1\n }\n\n return 0\n}\n\n/**\n * Range-bounded recursive DFS traversal.\n *\n * `from` and `to` are always in document order (from is earlier, to is\n * later), regardless of traversal direction.\n */\nfunction* getNodesInRange(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n from?: Path\n to?: Path\n match?: (node: Node, path: Path) => boolean\n reverse?: boolean\n },\n): Generator<{node: Node; path: Path}, void, undefined> {\n const {from, to, match, reverse = false} = options\n\n const children = getChildren(snapshot, path)\n const entries = reverse ? [...children].reverse() : children\n\n for (const entry of entries) {\n if (canStopTraversal(snapshot, entry.path, from, to, reverse)) {\n return\n }\n\n if (!couldContainInRangeNodes(snapshot, entry.path, from, to)) {\n continue\n }\n\n if (isInRange(snapshot, entry.path, from, to)) {\n if (!match || match(entry.node, entry.path)) {\n yield entry\n }\n }\n\n yield* getNodesInRange(snapshot, entry.path, options)\n }\n}\n\n/**\n * Check if a node is within the [from, to] range in document order.\n * Both bounds are inclusive. Ancestor nodes of from or to are also\n * considered in range since they contain the range boundary.\n */\nfunction isInRange(\n snapshot: TraversalSnapshot,\n nodePath: Path,\n from: Path | undefined,\n to: Path | undefined,\n): boolean {\n if (\n from !== undefined &&\n comparePathsInTree(snapshot, nodePath, from) === -1\n ) {\n if (!isAncestorPath(nodePath, from)) {\n return false\n }\n }\n\n if (to !== undefined && comparePathsInTree(snapshot, nodePath, to) === 1) {\n if (!isAncestorPath(nodePath, to)) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Check if a subtree rooted at `nodePath` could contain any nodes in the\n * [from, to] range.\n */\nfunction couldContainInRangeNodes(\n snapshot: TraversalSnapshot,\n nodePath: Path,\n from: Path | undefined,\n to: Path | undefined,\n): boolean {\n if (isInRange(snapshot, nodePath, from, to)) {\n return true\n }\n\n if (from !== undefined && isAncestorPath(nodePath, from)) {\n return true\n }\n\n if (to !== undefined && isAncestorPath(nodePath, to)) {\n return true\n }\n\n return false\n}\n\n/**\n * Check if all remaining nodes in iteration order will be outside the range.\n */\nfunction canStopTraversal(\n snapshot: TraversalSnapshot,\n nodePath: Path,\n from: Path | undefined,\n to: Path | undefined,\n reverse: boolean,\n): boolean {\n if (reverse) {\n if (from === undefined) {\n return false\n }\n\n return (\n comparePathsInTree(snapshot, nodePath, from) === -1 &&\n !isAncestorPath(nodePath, from)\n )\n }\n\n if (to === undefined) {\n return false\n }\n\n return comparePathsInTree(snapshot, nodePath, to) === 1\n}\n","import type {Node} from '../engine/interfaces/node'\nimport type {Path} from '../engine/interfaces/path'\nimport {parentPath} from '../engine/path/parent-path'\nimport {isKeyedSegment} from '../utils/util.is-keyed-segment'\nimport {getChildren} from './get-children'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get a sibling of the node at a given path.\n *\n * Without `match`, returns the immediate next or previous sibling.\n * With `match`, returns the first sibling in `direction` that satisfies\n * the predicate.\n *\n * When `match` is a type predicate, the returned `node` narrows to that type.\n *\n * @beta\n */\nexport function getSibling<TMatch extends Node>(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n direction: 'next' | 'previous'\n match: (node: Node, path: Path) => node is TMatch\n },\n): {node: TMatch; path: Path} | undefined\n/**\n * @beta\n */\nexport function getSibling(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n direction: 'next' | 'previous'\n match?: (node: Node, path: Path) => boolean\n },\n): {node: Node; path: Path} | undefined\nexport function getSibling(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n direction: 'next' | 'previous'\n match?: (node: Node, path: Path) => boolean\n },\n): {node: Node; path: Path} | undefined {\n const {direction, match} = options\n\n if (path.length === 0) {\n return undefined\n }\n\n const lastSegment = path.at(-1)\n\n if (!isKeyedSegment(lastSegment)) {\n return undefined\n }\n\n const parent = parentPath(path)\n const children = getChildren(snapshot, parent)\n\n const currentIndex = children.findIndex(\n (child) => child.node._key === lastSegment._key,\n )\n\n if (currentIndex === -1) {\n return undefined\n }\n\n if (!match) {\n const siblingIndex =\n direction === 'next' ? currentIndex + 1 : currentIndex - 1\n\n if (siblingIndex < 0 || siblingIndex >= children.length) {\n return undefined\n }\n\n return children[siblingIndex]\n }\n\n const candidates =\n direction === 'next'\n ? children.slice(currentIndex + 1)\n : children.slice(0, currentIndex).reverse()\n\n return candidates.find((child) => match(child.node, child.path))\n}\n","import type {EditorSchema} from '../../editor/editor-schema'\nimport {isTypedObject} from '../../utils/asserters'\n\nexport type SpanNode = {\n _type: string\n _key: string\n text?: string\n marks?: Array<string>\n}\n\n/**\n * Checks if a node is a span based on `_type` alone, without requiring `text`\n * to be present. This is needed to identify spans before normalization has had\n * a chance to add the missing `text` property.\n */\nexport function isSpanNode(\n context: {schema: EditorSchema},\n node: unknown,\n): node is SpanNode {\n return isTypedObject(node) && node._type === context.schema.span.name\n}\n","import type {PortableTextBlock} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {isSpanNode} from '../engine/node/is-span-node'\nimport {isTextBlockNode} from '../engine/node/is-text-block-node'\nimport {getNode} from './get-node'\nimport {getParent} from './get-parent'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Determine if a node at the given path is a block.\n *\n * A node is a block if its parent is not a text block. Top-level nodes\n * (direct children of the editor) are always blocks. Children of text blocks\n * (spans and inline objects) are not blocks. Children of containers are\n * blocks within that container.\n *\n * @beta\n */\nexport function isBlock(snapshot: TraversalSnapshot, path: Path): boolean {\n const parent = getParent(snapshot, path)\n\n if (!parent) {\n return true\n }\n\n return !isTextBlockNode({schema: snapshot.context.schema}, parent.node)\n}\n\n/**\n * Get the node at the given path if it is a block.\n *\n * Returns the node narrowed to PortableTextBlock, or undefined if the node\n * doesn't exist or is not a block.\n *\n * @beta\n */\nexport function getBlock(\n snapshot: TraversalSnapshot,\n path: Path,\n): {node: PortableTextBlock; path: Path} | undefined {\n const entry = getNode(snapshot, path)\n\n if (!entry) {\n return undefined\n }\n\n if (!isBlock(snapshot, path)) {\n return undefined\n }\n\n if (isSpanNode({schema: snapshot.context.schema}, entry.node)) {\n return undefined\n }\n\n return {node: entry.node, path: entry.path}\n}\n","import type {Path} from '../engine/interfaces/path'\nimport {isBlock} from './is-block'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Determine if a node at the given path is inline.\n *\n * A node is inline if its parent is a text block. This is the inverse of\n * `isBlock`. Top-level nodes are never inline.\n *\n * @beta\n */\nexport function isInline(snapshot: TraversalSnapshot, path: Path): boolean {\n return !isBlock(snapshot, path)\n}\n","import type {PortableTextBlock} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {getAncestors} from './get-ancestors'\nimport {getBlock} from './is-block'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Walk up from a path to find the nearest enclosing block.\n *\n * Returns the node at the path if it is a block, otherwise the first ancestor\n * that is a block. Works at any depth — inside a container this returns the\n * container-internal block, not the outer container.\n *\n * With `match`, returns the first enclosing block that also satisfies the\n * predicate. When `match` is a type predicate, the returned `node` narrows\n * to that type.\n *\n * `mode: 'lowest'` (default) returns the innermost enclosing block; the node\n * at the path itself counts. `mode: 'highest'` returns the outermost\n * ancestor that matches, falling back to the node at the path only if no\n * ancestor does.\n *\n * @beta\n */\nexport function getEnclosingBlock<TMatch extends PortableTextBlock>(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n match: (node: PortableTextBlock, path: Path) => node is TMatch\n mode?: 'lowest' | 'highest'\n },\n): {node: TMatch; path: Path} | undefined\n/**\n * @beta\n */\nexport function getEnclosingBlock(\n snapshot: TraversalSnapshot,\n path: Path,\n options?: {\n match?: (node: PortableTextBlock, path: Path) => boolean\n mode?: 'lowest' | 'highest'\n },\n): {node: PortableTextBlock; path: Path} | undefined\nexport function getEnclosingBlock(\n snapshot: TraversalSnapshot,\n path: Path,\n options?: {\n match?: (node: PortableTextBlock, path: Path) => boolean\n mode?: 'lowest' | 'highest'\n },\n): {node: PortableTextBlock; path: Path} | undefined {\n const match = options?.match\n const mode = options?.mode ?? 'lowest'\n\n if (mode === 'highest') {\n const ancestors = getAncestors(snapshot, path)\n\n for (const ancestor of [...ancestors].reverse()) {\n if (!match || match(ancestor.node, ancestor.path)) {\n return ancestor\n }\n }\n\n const direct = getBlock(snapshot, path)\n\n if (direct && (!match || match(direct.node, direct.path))) {\n return direct\n }\n\n return undefined\n }\n\n const direct = getBlock(snapshot, path)\n\n if (direct && (!match || match(direct.node, direct.path))) {\n return direct\n }\n\n for (const ancestor of getAncestors(snapshot, path)) {\n if (!match || match(ancestor.node, ancestor.path)) {\n return ancestor\n }\n }\n\n return undefined\n}\n","import type {Path} from '../engine/interfaces/path'\nimport {getAncestors} from '../traversal/get-ancestors'\nimport {isObject} from '../traversal/is-object'\nimport type {TraversalSnapshot} from '../traversal/traversal-snapshot'\nimport type {RegisteredContainer} from './container-types'\nimport {resolveContainerAt} from './resolve-container-at'\n\n/**\n * Descent primitive: return the immediate parent\n * {@link RegisteredContainer} of the node at `path` (and that parent's\n * path), or `undefined` when the target's immediate parent is the\n * editor root, when no object-node ancestor is a registered container,\n * or when descent hits an ancestor whose `_type` is not registered.\n *\n * Walks ancestors and resolves each object-node ancestor positionally\n * via {@link resolveContainerAt}. Text-block and span ancestors are\n * skipped - \"container\" here means the enclosing object container,\n * not the text-block holding spans.\n */\nexport function descendToParent(\n snapshot: TraversalSnapshot,\n path: Path,\n): {parent: RegisteredContainer; parentPath: Path} | undefined {\n const ancestors = getAncestors(snapshot, path)\n for (const ancestor of ancestors) {\n if (!isObject(snapshot, ancestor.node)) {\n continue\n }\n const resolved = resolveContainerAt(\n snapshot.context.containers,\n snapshot.context.value,\n ancestor.path,\n )\n if (!resolved || !('field' in resolved)) {\n return undefined\n }\n return {parent: resolved, parentPath: ancestor.path}\n }\n return undefined\n}\n","import type {OfDefinition} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport type {TraversalSnapshot} from '../traversal/traversal-snapshot'\nimport {descendToParent} from './descend-to-parent'\n\n/**\n * Return the immediate registered-container ancestor of `path` along\n * with its `of` array (the schema definitions accepted at this position).\n *\n * Position-aware: nested-only registrations (e.g. `cell` registered\n * only inside `table.row.of`) are recognized via the same descent\n * primitive used by all parent-aware traversal.\n *\n * Returns `undefined` when `path` has no registered-container ancestor\n * (i.e. is at the document root) or when descent hits a leaf-resolved\n * ancestor.\n */\nexport function getEnclosingContainer(\n snapshot: TraversalSnapshot,\n path: Path,\n):\n | {\n of: ReadonlyArray<OfDefinition>\n path: Path\n }\n | undefined {\n const descent = descendToParent(snapshot, path)\n if (!descent) {\n return undefined\n }\n return {\n of: descent.parent.field.of,\n path: descent.parentPath,\n }\n}\n","import {getSubSchema, type Schema} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {getEnclosingContainer} from '../schema/get-enclosing-container'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Return the `Schema` view that applies at a given path.\n *\n * For paths at the root of the document, or for paths where no ancestor is\n * a registered container, returns the top-level schema. For paths inside a\n * container, walks ancestors to find the nearest container and returns the\n * sub-schema derived from its `of` declaration.\n *\n * @beta\n */\nexport function getPathSubSchema(\n snapshot: TraversalSnapshot,\n path: Path,\n): Schema {\n const enclosing = getEnclosingContainer(snapshot, path)\n\n if (!enclosing) {\n return snapshot.context.schema\n }\n\n return getSubSchema(snapshot.context.schema, enclosing.of)\n}\n"],"names":["getAncestors","snapshot","path","keyedIndices","i","length","isKeyedSegment","push","context","blockIndexMap","currentChildren","value","isRootLevel","currentParent","ancestorsByDepth","resolvedPath","targetKeyedIndex","segmentIndex","segment","node","size","index","get","_key","undefined","find","child","at","next","getNodeChildren","slice","children","parent","reverse","hasNode","getNode","resolveContainerAt","containers","resolved","resolveNodeEntry","fieldValue","field","name","Array","isArray","of","entry","type","_type","isEditableContainer","_node","isObject","isTypedObject","schema","block","span","isTextBlockNode","isAncestorPath","another","otherSegment","getNodes","options","from","to","match","getNodesSimple","getNodesInRange","getChildren","entries","comparePathsInTree","pathA","pathB","keysA","filter","keysB","minDepth","Math","min","depth","keyA","keyB","matchedNode","has","c","indexA","indexB","sibling","canStopTraversal","couldContainInRangeNodes","isInRange","nodePath","getSibling","direction","lastSegment","parentPath","currentIndex","findIndex","siblingIndex","isSpanNode","isBlock","getParent","getBlock","isInline","getEnclosingBlock","mode","ancestors","ancestor","direct","descendToParent","getEnclosingContainer","descent","getPathSubSchema","enclosing","getSubSchema"],"mappings":"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"}
{"version":3,"file":"get-path-sub-schema.js","sources":["../../src/traversal/get-ancestors.ts","../../src/traversal/has-node.ts","../../src/schema/resolve-container-at.ts","../../src/schema/is-editable-container.ts","../../src/traversal/is-object.ts","../../src/engine/path/compare-paths.ts","../../src/engine/point/compare-points.ts","../../src/engine/point/is-after-point.ts","../../src/engine/range/is-backward-range.ts","../../src/engine/range/range-edges.ts","../../src/engine/node/is-text-block-node.ts","../../src/engine/path/is-ancestor-path.ts","../../src/traversal/get-nodes.ts","../../src/traversal/get-sibling.ts","../../src/engine/node/is-span-node.ts","../../src/traversal/is-block.ts","../../src/traversal/is-inline.ts","../../src/traversal/get-enclosing-block.ts","../../src/traversal/compare-points.ts","../../src/schema/descend-to-parent.ts","../../src/schema/get-enclosing-container.ts","../../src/traversal/get-path-sub-schema.ts"],"sourcesContent":["import type {PortableTextBlock} from '@portabletext/schema'\nimport type {Node} from '../engine/interfaces/node'\nimport type {Path} from '../engine/interfaces/path'\nimport {isKeyedSegment} from '../utils/util.is-keyed-segment'\nimport {getNodeChildren} from './get-children'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get all ancestors of the node at a given path, from nearest to furthest.\n *\n * For a path like [{_key:'t1'}, 'rows', {_key:'r1'}, 'cells', {_key:'c1'}],\n * the ancestors are (nearest first):\n * [{_key:'t1'}, 'rows', {_key:'r1'}]\n * [{_key:'t1'}]\n *\n * Walks from root to the target in a single pass collecting each ancestor\n * as it goes.\n *\n * Every ancestor is a `PortableTextBlock` — only text blocks and object\n * nodes can contain children.\n *\n * @beta\n */\nexport function getAncestors(\n snapshot: TraversalSnapshot,\n path: Path,\n): Array<{node: PortableTextBlock; path: Path}> {\n // Collect keyed-segment indices to know where each ancestor's path ends.\n const keyedIndices: Array<number> = []\n for (let i = 0; i < path.length; i++) {\n if (isKeyedSegment(path[i])) {\n keyedIndices.push(i)\n }\n }\n\n // Need at least 2 keyed segments to have an ancestor (the last is self).\n if (keyedIndices.length <= 1) {\n return []\n }\n\n const {context, blockIndexMap} = snapshot\n let currentChildren: Array<Node> = context.value\n let isRootLevel = true\n let currentParent:\n | import('../schema/resolve-containers').RegisteredContainer\n | undefined\n\n const ancestorsByDepth: Array<{node: PortableTextBlock; path: Path}> = []\n const resolvedPath: Path = []\n\n // Descend once. We walk only as far as the second-to-last keyed segment;\n // the last keyed segment is the target itself, which is not an ancestor.\n const targetKeyedIndex = keyedIndices[keyedIndices.length - 1]!\n\n let segmentIndex = 0\n while (segmentIndex < targetKeyedIndex) {\n const segment = path[segmentIndex]!\n\n if (typeof segment === 'string') {\n resolvedPath.push(segment)\n segmentIndex++\n continue\n }\n\n let node: Node | undefined\n if (isKeyedSegment(segment)) {\n // Production snapshots maintain `blockIndexMap` in lockstep with\n // `context.value` so this fast path always fires. Some test\n // fixtures still pass empty or stale maps, which is the debt this\n // size check is working around - see /specs/snapshot-invariants.md.\n // When the fixtures are aligned, drop the guard and use the map\n // directly.\n if (isRootLevel && blockIndexMap.size === currentChildren.length) {\n const index = blockIndexMap.get(segment._key)\n node =\n index !== undefined\n ? currentChildren[index]\n : currentChildren.find((child) => child._key === segment._key)\n } else {\n node = currentChildren.find((child) => child._key === segment._key)\n }\n resolvedPath.push(segment)\n isRootLevel = false\n } else if (typeof segment === 'number') {\n node = currentChildren.at(segment)\n if (node) {\n resolvedPath.push({_key: node._key})\n }\n } else {\n return []\n }\n\n if (!node) {\n return []\n }\n\n // Descend with positional awareness. `getNodeChildren` checks the\n // current parent's `of` for a positional override before falling\n // back to the top-level `containers` map - so same-`_type`\n // registered under different parents with different `field`\n // resolves to the right entry at this position.\n const next = getNodeChildren(context, node, currentParent)\n if (!next) {\n return []\n }\n\n // An ancestor has children, so it is never a span. The narrowing\n // from `Node` to `PortableTextBlock` (text block | object) is safe.\n ancestorsByDepth.push({\n node: node as PortableTextBlock,\n path: resolvedPath.slice(),\n })\n\n currentChildren = next.children\n currentParent = next.parent\n segmentIndex++\n }\n\n // Return nearest-first (reverse of document order at the call site).\n return ancestorsByDepth.reverse()\n}\n","import type {Path} from '../engine/interfaces/path'\nimport {getNode} from './get-node'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Check if a node exists at a given path.\n *\n * @beta\n */\nexport function hasNode(snapshot: TraversalSnapshot, path: Path): boolean {\n return getNode(snapshot, path) !== undefined\n}\n","import type {Node} from '../engine/interfaces/node'\nimport type {Path} from '../engine/interfaces/path'\nimport {isKeyedSegment} from '../utils/util.is-keyed-segment'\nimport type {\n Containers,\n RegisteredContainer,\n RegisteredPositional,\n} from './container-types'\n\n/**\n * Walk the editor value following `path` and return the\n * {@link RegisteredContainer} or {@link RegisteredPositional} that applies\n * at `path`'s target position.\n *\n * Resolution rules at each step:\n *\n * 1. **Positional override.** If the current parent declares the\n * child's `_type` in its `of`, the positional entry wins.\n * Used to resolve same-`_type` registered under different\n * parents with different `field` values.\n *\n * 2. **Global fallback.** If the parent has no positional override,\n * fall back to the top-level entry for `_type` in\n * `containers`.\n *\n * 3. **Chain validity.** If any ancestor along the path has no\n * resolved container entry (unregistered or not reachable as a\n * container at its position), return `undefined`.\n *\n * Returns `undefined` when the target's `_type` is not registered\n * at this position. Returns a {@link RegisteredPositional} when the target\n * resolves to a leaf in a positional `of` (terminal node with no\n * editable children).\n *\n * @alpha\n */\nexport function resolveContainerAt(\n containers: Containers,\n value: ReadonlyArray<Node>,\n path: Path,\n): RegisteredContainer | RegisteredPositional | undefined {\n const keyedIndices: Array<number> = []\n for (let index = 0; index < path.length; index++) {\n if (isKeyedSegment(path[index])) {\n keyedIndices.push(index)\n }\n }\n if (keyedIndices.length === 0) {\n return undefined\n }\n\n let currentChildren: ReadonlyArray<Node> = value\n let parent: RegisteredContainer | undefined\n let resolved: RegisteredContainer | RegisteredPositional | undefined\n const targetKeyedIndex = keyedIndices[keyedIndices.length - 1]!\n\n let segmentIndex = 0\n while (segmentIndex <= targetKeyedIndex) {\n const segment = path[segmentIndex]!\n if (typeof segment === 'string') {\n segmentIndex++\n continue\n }\n\n let node: Node | undefined\n if (isKeyedSegment(segment)) {\n node = currentChildren.find((child) => child._key === segment._key)\n } else if (typeof segment === 'number') {\n node = currentChildren.at(segment)\n } else {\n return undefined\n }\n if (!node) {\n return undefined\n }\n\n resolved = resolveNodeEntry(containers, parent, node)\n if (!resolved) {\n return undefined\n }\n\n if (segmentIndex < targetKeyedIndex) {\n // Walk one more level. The resolved entry must be a container\n // (have children) for descent to continue.\n if (!('field' in resolved)) {\n return undefined\n }\n const fieldValue = (node as Record<string, unknown>)[resolved.field.name]\n if (!Array.isArray(fieldValue)) {\n return undefined\n }\n parent = resolved\n currentChildren = fieldValue as Array<Node>\n }\n segmentIndex++\n }\n\n return resolved\n}\n\nfunction resolveNodeEntry(\n containers: Containers,\n parent: RegisteredContainer | undefined,\n node: Node,\n): RegisteredContainer | RegisteredPositional | undefined {\n if (parent?.of) {\n for (const entry of parent.of) {\n if (entry.type === node._type) {\n return entry\n }\n }\n }\n return containers.get(node._type)\n}\n","import type {Node} from '../engine/interfaces/node'\nimport type {Path} from '../engine/interfaces/path'\nimport type {TraversalSnapshot} from '../traversal/traversal-snapshot'\nimport {resolveContainerAt} from './resolve-container-at'\n\n/**\n * Check if a node at the given path is a registered editable container.\n *\n * Position-aware: {@link resolveContainerAt} descends from the editor\n * root threading the resolved parent at each step, so positionally-\n * registered containers (e.g. `cell` registered only inside\n * `table.of`) are recognized when reached through their declared\n * parent.\n */\nexport function isEditableContainer(\n snapshot: TraversalSnapshot,\n _node: Node,\n path: Path,\n): boolean {\n if (snapshot.context.containers.size === 0) {\n return false\n }\n\n // `resolveContainerAt` aborts on the first unregistered object-node\n // ancestor (chain validity falls out of the single descent), so the\n // single call below answers both \"is the node here a container?\" and\n // \"is the ancestor chain valid?\" in one walk.\n const resolved = resolveContainerAt(\n snapshot.context.containers,\n snapshot.context.value,\n path,\n )\n return !!(resolved && 'field' in resolved)\n}\n","import type {PortableTextObject} from '@portabletext/schema'\nimport {isTypedObject} from '../utils/asserters'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Check if a node is an object node (not a text block or span).\n *\n * @beta\n */\nexport function isObject(\n snapshot: TraversalSnapshot,\n node: unknown,\n): node is PortableTextObject {\n return (\n isTypedObject(node) &&\n node._type !== snapshot.context.schema.block.name &&\n node._type !== snapshot.context.schema.span.name\n )\n}\n","import {isKeyedSegment} from '../../utils/util.is-keyed-segment'\nimport type {Node} from '../interfaces/node'\nimport type {Path} from '../interfaces/path'\n\n/**\n * Compare two paths in document order.\n *\n * When paths contain keyed segments, the root node tree is needed to\n * resolve document order. Without a root, keyed segments are compared\n * by _key string (consistent but not necessarily document order).\n */\nexport function comparePaths(\n path: Path,\n another: Path,\n root: {value: Array<Node>},\n): -1 | 0 | 1 {\n const min = Math.min(path.length, another.length)\n let currentChildren: Array<Node> | undefined = root?.value\n let currentNode: Node | undefined\n\n for (let i = 0; i < min; i++) {\n const segment = path[i]!\n const otherSegment = another[i]!\n\n if (isKeyedSegment(segment) && isKeyedSegment(otherSegment)) {\n if (segment._key === otherSegment._key) {\n if (currentChildren) {\n currentNode = currentChildren.find((c) => c._key === segment._key)\n currentChildren = undefined\n }\n continue\n }\n\n if (currentChildren) {\n const segmentIndex = currentChildren.findIndex(\n (c) => c._key === segment._key,\n )\n const otherSegmentIndex = currentChildren.findIndex(\n (c) => c._key === otherSegment._key,\n )\n if (segmentIndex !== -1 && otherSegmentIndex !== -1) {\n return segmentIndex < otherSegmentIndex ? -1 : 1\n }\n }\n\n // Fallback: compare by _key string\n if (segment._key < otherSegment._key) {\n return -1\n }\n if (segment._key > otherSegment._key) {\n return 1\n }\n continue\n }\n\n if (typeof segment === 'string' && typeof otherSegment === 'string') {\n if (segment === otherSegment) {\n if (currentNode) {\n const fieldValue = (currentNode as Record<string, unknown>)[segment]\n currentChildren = Array.isArray(fieldValue)\n ? (fieldValue as Array<Node>)\n : undefined\n currentNode = undefined\n }\n continue\n }\n if (segment < otherSegment) {\n return -1\n }\n if (segment > otherSegment) {\n return 1\n }\n continue\n }\n\n if (typeof segment === 'number' && typeof otherSegment === 'number') {\n if (segment < otherSegment) {\n return -1\n }\n if (segment > otherSegment) {\n return 1\n }\n continue\n }\n\n break\n }\n\n return 0\n}\n","import type {Node} from '../interfaces/node'\nimport type {Point} from '../interfaces/point'\nimport {comparePaths} from '../path/compare-paths'\n\nexport function comparePoints(\n point: Point,\n another: Point,\n root: {value: Array<Node>},\n): -1 | 0 | 1 {\n const result = comparePaths(point.path, another.path, root)\n if (result === 0) {\n if (point.offset < another.offset) {\n return -1\n }\n if (point.offset > another.offset) {\n return 1\n }\n return 0\n }\n return result\n}\n","import type {Node} from '../interfaces/node'\nimport type {Point} from '../interfaces/point'\nimport {comparePoints} from './compare-points'\n\nexport function isAfterPoint(\n point: Point,\n another: Point,\n root: {value: Array<Node>},\n): boolean {\n return comparePoints(point, another, root) === 1\n}\n","import type {Node} from '../interfaces/node'\nimport type {Range} from '../interfaces/range'\nimport {isAfterPoint} from '../point/is-after-point'\n\nexport function isBackwardRange(\n range: Range,\n root: {value: Array<Node>},\n): boolean {\n const {anchor, focus} = range\n return isAfterPoint(anchor, focus, root)\n}\n","import type {Node} from '../interfaces/node'\nimport type {Point} from '../interfaces/point'\nimport type {Range} from '../interfaces/range'\nimport {isBackwardRange} from './is-backward-range'\n\nexport function rangeEdges(\n range: Range,\n root: {value: Array<Node>},\n): [Point, Point] {\n const {anchor, focus} = range\n return isBackwardRange(range, root) ? [focus, anchor] : [anchor, focus]\n}\n","import type {PortableTextObject, PortableTextSpan} from '@portabletext/schema'\nimport type {EditorSchema} from '../../editor/editor-schema'\nimport {isTypedObject} from '../../utils/asserters'\n\ntype TextBlockNode = {\n _type: string\n _key: string\n children?: Array<PortableTextSpan | PortableTextObject>\n markDefs?: Array<PortableTextObject>\n style?: string\n listItem?: string\n level?: number\n}\n\n/**\n * Checks if a node is a text block based on `_type` alone, without requiring\n * `children` to be present. This is needed to identify text blocks before\n * normalization has had a chance to add the missing `children` property.\n */\nexport function isTextBlockNode(\n context: {schema: EditorSchema},\n node: unknown,\n): node is TextBlockNode {\n return isTypedObject(node) && node._type === context.schema.block.name\n}\n","import {isKeyedSegment} from '../../utils/util.is-keyed-segment'\nimport type {Path} from '../interfaces/path'\n\nexport function isAncestorPath(path: Path, another: Path): boolean {\n if (path.length >= another.length) {\n return false\n }\n\n for (let i = 0; i < path.length; i++) {\n const segment = path[i]\n const otherSegment = another[i]\n\n if (isKeyedSegment(segment) && isKeyedSegment(otherSegment)) {\n if (segment._key !== otherSegment._key) {\n return false\n }\n } else if (segment !== otherSegment) {\n return false\n }\n }\n\n return true\n}\n","import type {EditorSchema} from '../editor/editor-schema'\nimport type {Node} from '../engine/interfaces/node'\nimport type {Path} from '../engine/interfaces/path'\nimport {isAncestorPath} from '../engine/path/is-ancestor-path'\nimport type {\n Containers,\n RegisteredContainer,\n} from '../schema/resolve-containers'\nimport {isKeyedSegment} from '../utils/util.is-keyed-segment'\nimport {getChildren, getNodeChildren} from './get-children'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get the descendant nodes of the node at a given path.\n *\n * When `from` and `to` are provided, performs a range-bounded DFS traversal,\n * yielding only nodes between `from` and `to` (inclusive). Both paths are\n * always in document order: `from` is the earlier path, `to` is the later\n * path. The `reverse` flag controls iteration direction within that range.\n *\n * When `match` is provided, only yields nodes where the predicate returns true.\n * The traversal still visits all nodes in range - `match` is a filter, not a\n * traversal control.\n *\n * When `at` is provided, traverses descendants of the node at that path\n * instead of the root.\n */\nexport function* getNodes(\n snapshot: TraversalSnapshot,\n options: {\n at?: Path\n from?: Path\n to?: Path\n match?: (node: Node, path: Path) => boolean\n reverse?: boolean\n } = {},\n): Generator<{node: Node; path: Path}, void, undefined> {\n const {at = [], from, to, match, reverse = false} = options\n\n if (from === undefined && to === undefined) {\n yield* getNodesSimple(snapshot, at, {match, reverse})\n return\n }\n\n yield* getNodesInRange(snapshot, at, {from, to, match, reverse})\n}\n\n/**\n * Get descendant nodes of a standalone node (not in the editor tree).\n * Used for cases like getDirtyPaths where the node hasn't been inserted yet.\n */\nexport function* getNodeDescendants(\n context: {\n schema: EditorSchema\n containers: Containers\n },\n node: Node | {value: Array<Node>},\n): Generator<{node: Node; path: Path}, void, undefined> {\n // The editor root wrapper ({value: [...]}) is not a real node, so its field\n // name is not part of paths. For standalone nodes (a real {_key, _type, ...}\n // passed in by callers like getDirtyPaths), the field name IS part of the\n // path.\n const isRoot = !('_key' in node) && !('_type' in node)\n yield* walkStandalone(context, node, [], isRoot)\n}\n\nfunction* walkStandalone(\n context: {\n schema: EditorSchema\n containers: Containers\n },\n node: Node | {value: Array<Node>},\n path: Path,\n isRoot: boolean,\n parent?: RegisteredContainer,\n): Generator<{node: Node; path: Path}, void, undefined> {\n const next = getNodeChildren(context, node, parent)\n if (!next) {\n return\n }\n\n for (const child of next.children) {\n const childPath: Path = isRoot\n ? [{_key: child._key}]\n : [...path, next.fieldName, {_key: child._key}]\n yield {node: child, path: childPath}\n yield* walkStandalone(context, child, childPath, false, next.parent)\n }\n}\n\n/**\n * Simple recursive DFS - the original behavior.\n * Yields all descendants of the node at `path`.\n */\nfunction* getNodesSimple(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n match?: (node: Node, path: Path) => boolean\n reverse?: boolean\n },\n): Generator<{node: Node; path: Path}, void, undefined> {\n const {match, reverse = false} = options\n\n const children = getChildren(snapshot, path)\n\n const entries = reverse ? [...children].reverse() : children\n\n for (const entry of entries) {\n if (!match || match(entry.node, entry.path)) {\n yield entry\n }\n\n yield* getNodesSimple(snapshot, entry.path, options)\n }\n}\n\n/**\n * Compare two keyed paths in document order. Returns -1, 0, or 1.\n *\n * Descends both paths from the root in a single pass, advancing\n * `currentNode` and `currentChildren` together so each level costs\n * one keyed-segment scan instead of an O(depth) walk from root.\n *\n * Uses `blockIndexMap` for O(1) lookup at the root level. Deeper\n * levels fall back to a linear scan of the current sibling array.\n */\nfunction comparePathsInTree(\n snapshot: TraversalSnapshot,\n pathA: Path,\n pathB: Path,\n): -1 | 0 | 1 {\n const keysA = pathA.filter(isKeyedSegment)\n const keysB = pathB.filter(isKeyedSegment)\n\n const {context} = snapshot\n let currentChildren: Array<Node> = context.value\n let currentParent: RegisteredContainer | undefined\n let isRootLevel = true\n\n const minDepth = Math.min(keysA.length, keysB.length)\n\n for (let depth = 0; depth < minDepth; depth++) {\n const keyA = keysA[depth]!\n const keyB = keysB[depth]!\n\n if (keyA._key === keyB._key) {\n // Same node at this depth: descend into its children for the next\n // iteration. The root level can short-circuit via blockIndexMap;\n // deeper levels scan the current sibling array.\n let matchedNode: Node | undefined\n if (isRootLevel && snapshot.blockIndexMap.has(keyA._key)) {\n const index = snapshot.blockIndexMap.get(keyA._key)\n if (index !== undefined) {\n matchedNode = currentChildren[index]\n }\n } else {\n matchedNode = currentChildren.find((c) => c._key === keyA._key)\n }\n if (!matchedNode) {\n return 0\n }\n const next = getNodeChildren(context, matchedNode, currentParent)\n if (!next) {\n return 0\n }\n currentChildren = next.children\n currentParent = next.parent\n\n isRootLevel = false\n continue\n }\n\n if (isRootLevel) {\n const indexA = snapshot.blockIndexMap.get(keyA._key) ?? -1\n const indexB = snapshot.blockIndexMap.get(keyB._key) ?? -1\n if (indexA !== -1 && indexB !== -1) {\n if (indexA < indexB) {\n return -1\n }\n if (indexA > indexB) {\n return 1\n }\n return 0\n }\n }\n\n let indexA = -1\n let indexB = -1\n for (let i = 0; i < currentChildren.length; i++) {\n const sibling = currentChildren[i]!\n if (sibling._key === keyA._key) {\n indexA = i\n }\n if (sibling._key === keyB._key) {\n indexB = i\n }\n if (indexA !== -1 && indexB !== -1) {\n break\n }\n }\n\n if (indexA < indexB) {\n return -1\n }\n if (indexA > indexB) {\n return 1\n }\n\n return 0\n }\n\n // One path is a prefix of the other (ancestor relationship)\n // In DFS order, shorter path (ancestor) comes first\n if (keysA.length < keysB.length) {\n return -1\n }\n if (keysA.length > keysB.length) {\n return 1\n }\n\n return 0\n}\n\n/**\n * Range-bounded recursive DFS traversal.\n *\n * `from` and `to` are always in document order (from is earlier, to is\n * later), regardless of traversal direction.\n */\nfunction* getNodesInRange(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n from?: Path\n to?: Path\n match?: (node: Node, path: Path) => boolean\n reverse?: boolean\n },\n): Generator<{node: Node; path: Path}, void, undefined> {\n const {from, to, match, reverse = false} = options\n\n const children = getChildren(snapshot, path)\n const entries = reverse ? [...children].reverse() : children\n\n for (const entry of entries) {\n if (canStopTraversal(snapshot, entry.path, from, to, reverse)) {\n return\n }\n\n if (!couldContainInRangeNodes(snapshot, entry.path, from, to)) {\n continue\n }\n\n if (isInRange(snapshot, entry.path, from, to)) {\n if (!match || match(entry.node, entry.path)) {\n yield entry\n }\n }\n\n yield* getNodesInRange(snapshot, entry.path, options)\n }\n}\n\n/**\n * Check if a node is within the [from, to] range in document order.\n * Both bounds are inclusive. Ancestor nodes of from or to are also\n * considered in range since they contain the range boundary.\n */\nfunction isInRange(\n snapshot: TraversalSnapshot,\n nodePath: Path,\n from: Path | undefined,\n to: Path | undefined,\n): boolean {\n if (\n from !== undefined &&\n comparePathsInTree(snapshot, nodePath, from) === -1\n ) {\n if (!isAncestorPath(nodePath, from)) {\n return false\n }\n }\n\n if (to !== undefined && comparePathsInTree(snapshot, nodePath, to) === 1) {\n if (!isAncestorPath(nodePath, to)) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Check if a subtree rooted at `nodePath` could contain any nodes in the\n * [from, to] range.\n */\nfunction couldContainInRangeNodes(\n snapshot: TraversalSnapshot,\n nodePath: Path,\n from: Path | undefined,\n to: Path | undefined,\n): boolean {\n if (isInRange(snapshot, nodePath, from, to)) {\n return true\n }\n\n if (from !== undefined && isAncestorPath(nodePath, from)) {\n return true\n }\n\n if (to !== undefined && isAncestorPath(nodePath, to)) {\n return true\n }\n\n return false\n}\n\n/**\n * Check if all remaining nodes in iteration order will be outside the range.\n */\nfunction canStopTraversal(\n snapshot: TraversalSnapshot,\n nodePath: Path,\n from: Path | undefined,\n to: Path | undefined,\n reverse: boolean,\n): boolean {\n if (reverse) {\n if (from === undefined) {\n return false\n }\n\n return (\n comparePathsInTree(snapshot, nodePath, from) === -1 &&\n !isAncestorPath(nodePath, from)\n )\n }\n\n if (to === undefined) {\n return false\n }\n\n return comparePathsInTree(snapshot, nodePath, to) === 1\n}\n","import type {Node} from '../engine/interfaces/node'\nimport type {Path} from '../engine/interfaces/path'\nimport {parentPath} from '../engine/path/parent-path'\nimport {isKeyedSegment} from '../utils/util.is-keyed-segment'\nimport {getChildren} from './get-children'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Get a sibling of the node at a given path.\n *\n * Without `match`, returns the immediate next or previous sibling.\n * With `match`, returns the first sibling in `direction` that satisfies\n * the predicate.\n *\n * When `match` is a type predicate, the returned `node` narrows to that type.\n *\n * @beta\n */\nexport function getSibling<TMatch extends Node>(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n direction: 'next' | 'previous'\n match: (node: Node, path: Path) => node is TMatch\n },\n): {node: TMatch; path: Path} | undefined\n/**\n * @beta\n */\nexport function getSibling(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n direction: 'next' | 'previous'\n match?: (node: Node, path: Path) => boolean\n },\n): {node: Node; path: Path} | undefined\nexport function getSibling(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n direction: 'next' | 'previous'\n match?: (node: Node, path: Path) => boolean\n },\n): {node: Node; path: Path} | undefined {\n const {direction, match} = options\n\n if (path.length === 0) {\n return undefined\n }\n\n const lastSegment = path.at(-1)\n\n if (!isKeyedSegment(lastSegment)) {\n return undefined\n }\n\n const parent = parentPath(path)\n const children = getChildren(snapshot, parent)\n\n const currentIndex = children.findIndex(\n (child) => child.node._key === lastSegment._key,\n )\n\n if (currentIndex === -1) {\n return undefined\n }\n\n if (!match) {\n const siblingIndex =\n direction === 'next' ? currentIndex + 1 : currentIndex - 1\n\n if (siblingIndex < 0 || siblingIndex >= children.length) {\n return undefined\n }\n\n return children[siblingIndex]\n }\n\n const candidates =\n direction === 'next'\n ? children.slice(currentIndex + 1)\n : children.slice(0, currentIndex).reverse()\n\n return candidates.find((child) => match(child.node, child.path))\n}\n","import type {EditorSchema} from '../../editor/editor-schema'\nimport {isTypedObject} from '../../utils/asserters'\n\nexport type SpanNode = {\n _type: string\n _key: string\n text?: string\n marks?: Array<string>\n}\n\n/**\n * Checks if a node is a span based on `_type` alone, without requiring `text`\n * to be present. This is needed to identify spans before normalization has had\n * a chance to add the missing `text` property.\n */\nexport function isSpanNode(\n context: {schema: EditorSchema},\n node: unknown,\n): node is SpanNode {\n return isTypedObject(node) && node._type === context.schema.span.name\n}\n","import type {PortableTextBlock} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {isSpanNode} from '../engine/node/is-span-node'\nimport {isTextBlockNode} from '../engine/node/is-text-block-node'\nimport {getNode} from './get-node'\nimport {getParent} from './get-parent'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Determine if a node at the given path is a block.\n *\n * A node is a block if its parent is not a text block. Top-level nodes\n * (direct children of the editor) are always blocks. Children of text blocks\n * (spans and inline objects) are not blocks. Children of containers are\n * blocks within that container.\n *\n * @beta\n */\nexport function isBlock(snapshot: TraversalSnapshot, path: Path): boolean {\n const parent = getParent(snapshot, path)\n\n if (!parent) {\n return true\n }\n\n return !isTextBlockNode({schema: snapshot.context.schema}, parent.node)\n}\n\n/**\n * Get the node at the given path if it is a block.\n *\n * Returns the node narrowed to PortableTextBlock, or undefined if the node\n * doesn't exist or is not a block.\n *\n * @beta\n */\nexport function getBlock(\n snapshot: TraversalSnapshot,\n path: Path,\n): {node: PortableTextBlock; path: Path} | undefined {\n const entry = getNode(snapshot, path)\n\n if (!entry) {\n return undefined\n }\n\n if (!isBlock(snapshot, path)) {\n return undefined\n }\n\n if (isSpanNode({schema: snapshot.context.schema}, entry.node)) {\n return undefined\n }\n\n return {node: entry.node, path: entry.path}\n}\n","import type {Path} from '../engine/interfaces/path'\nimport {isBlock} from './is-block'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Determine if a node at the given path is inline.\n *\n * A node is inline if its parent is a text block. This is the inverse of\n * `isBlock`. Top-level nodes are never inline.\n *\n * @beta\n */\nexport function isInline(snapshot: TraversalSnapshot, path: Path): boolean {\n return !isBlock(snapshot, path)\n}\n","import type {PortableTextBlock} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {getAncestors} from './get-ancestors'\nimport {getBlock} from './is-block'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Walk up from a path to find the nearest enclosing block.\n *\n * Returns the node at the path if it is a block, otherwise the first ancestor\n * that is a block. Works at any depth — inside a container this returns the\n * container-internal block, not the outer container.\n *\n * With `match`, returns the first enclosing block that also satisfies the\n * predicate. When `match` is a type predicate, the returned `node` narrows\n * to that type.\n *\n * `mode: 'lowest'` (default) returns the innermost enclosing block; the node\n * at the path itself counts. `mode: 'highest'` returns the outermost\n * ancestor that matches, falling back to the node at the path only if no\n * ancestor does.\n *\n * @beta\n */\nexport function getEnclosingBlock<TMatch extends PortableTextBlock>(\n snapshot: TraversalSnapshot,\n path: Path,\n options: {\n match: (node: PortableTextBlock, path: Path) => node is TMatch\n mode?: 'lowest' | 'highest'\n },\n): {node: TMatch; path: Path} | undefined\n/**\n * @beta\n */\nexport function getEnclosingBlock(\n snapshot: TraversalSnapshot,\n path: Path,\n options?: {\n match?: (node: PortableTextBlock, path: Path) => boolean\n mode?: 'lowest' | 'highest'\n },\n): {node: PortableTextBlock; path: Path} | undefined\nexport function getEnclosingBlock(\n snapshot: TraversalSnapshot,\n path: Path,\n options?: {\n match?: (node: PortableTextBlock, path: Path) => boolean\n mode?: 'lowest' | 'highest'\n },\n): {node: PortableTextBlock; path: Path} | undefined {\n const match = options?.match\n const mode = options?.mode ?? 'lowest'\n\n if (mode === 'highest') {\n const ancestors = getAncestors(snapshot, path)\n\n for (const ancestor of [...ancestors].reverse()) {\n if (!match || match(ancestor.node, ancestor.path)) {\n return ancestor\n }\n }\n\n const direct = getBlock(snapshot, path)\n\n if (direct && (!match || match(direct.node, direct.path))) {\n return direct\n }\n\n return undefined\n }\n\n const direct = getBlock(snapshot, path)\n\n if (direct && (!match || match(direct.node, direct.path))) {\n return direct\n }\n\n for (const ancestor of getAncestors(snapshot, path)) {\n if (!match || match(ancestor.node, ancestor.path)) {\n return ancestor\n }\n }\n\n return undefined\n}\n","import {comparePaths} from '../engine/path/compare-paths'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Returns:\n *\n * - `-1` if `pointA` is before `pointB`\n * - `0` if `pointA` and `pointB` are equal\n * - `1` if `pointA` is after `pointB`.\n *\n * Compares the two points by document order, resolved at any depth. When\n * the paths are equal, compares offsets.\n *\n * @beta\n */\nexport function comparePoints(\n snapshot: TraversalSnapshot,\n pointA: EditorSelectionPoint,\n pointB: EditorSelectionPoint,\n): -1 | 0 | 1 {\n const pathComparison = comparePaths(pointA.path, pointB.path, {\n value: snapshot.context.value,\n })\n\n if (pathComparison !== 0) {\n return pathComparison\n }\n\n if (pointA.offset < pointB.offset) {\n return -1\n }\n\n if (pointA.offset > pointB.offset) {\n return 1\n }\n\n return 0\n}\n","import type {Path} from '../engine/interfaces/path'\nimport {getAncestors} from '../traversal/get-ancestors'\nimport {isObject} from '../traversal/is-object'\nimport type {TraversalSnapshot} from '../traversal/traversal-snapshot'\nimport type {RegisteredContainer} from './container-types'\nimport {resolveContainerAt} from './resolve-container-at'\n\n/**\n * Descent primitive: return the immediate parent\n * {@link RegisteredContainer} of the node at `path` (and that parent's\n * path), or `undefined` when the target's immediate parent is the\n * editor root, when no object-node ancestor is a registered container,\n * or when descent hits an ancestor whose `_type` is not registered.\n *\n * Walks ancestors and resolves each object-node ancestor positionally\n * via {@link resolveContainerAt}. Text-block and span ancestors are\n * skipped - \"container\" here means the enclosing object container,\n * not the text-block holding spans.\n */\nexport function descendToParent(\n snapshot: TraversalSnapshot,\n path: Path,\n): {parent: RegisteredContainer; parentPath: Path} | undefined {\n const ancestors = getAncestors(snapshot, path)\n for (const ancestor of ancestors) {\n if (!isObject(snapshot, ancestor.node)) {\n continue\n }\n const resolved = resolveContainerAt(\n snapshot.context.containers,\n snapshot.context.value,\n ancestor.path,\n )\n if (!resolved || !('field' in resolved)) {\n return undefined\n }\n return {parent: resolved, parentPath: ancestor.path}\n }\n return undefined\n}\n","import type {OfDefinition} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport type {TraversalSnapshot} from '../traversal/traversal-snapshot'\nimport {descendToParent} from './descend-to-parent'\n\n/**\n * Return the immediate registered-container ancestor of `path` along\n * with its `of` array (the schema definitions accepted at this position).\n *\n * Position-aware: nested-only registrations (e.g. `cell` registered\n * only inside `table.row.of`) are recognized via the same descent\n * primitive used by all parent-aware traversal.\n *\n * Returns `undefined` when `path` has no registered-container ancestor\n * (i.e. is at the document root) or when descent hits a leaf-resolved\n * ancestor.\n */\nexport function getEnclosingContainer(\n snapshot: TraversalSnapshot,\n path: Path,\n):\n | {\n of: ReadonlyArray<OfDefinition>\n path: Path\n }\n | undefined {\n const descent = descendToParent(snapshot, path)\n if (!descent) {\n return undefined\n }\n return {\n of: descent.parent.field.of,\n path: descent.parentPath,\n }\n}\n","import {getSubSchema, type Schema} from '@portabletext/schema'\nimport type {Path} from '../engine/interfaces/path'\nimport {getEnclosingContainer} from '../schema/get-enclosing-container'\nimport type {TraversalSnapshot} from './traversal-snapshot'\n\n/**\n * Return the `Schema` view that applies at a given path.\n *\n * For paths at the root of the document, or for paths where no ancestor is\n * a registered container, returns the top-level schema. For paths inside a\n * container, walks ancestors to find the nearest container and returns the\n * sub-schema derived from its `of` declaration.\n *\n * @beta\n */\nexport function getPathSubSchema(\n snapshot: TraversalSnapshot,\n path: Path,\n): Schema {\n const enclosing = getEnclosingContainer(snapshot, path)\n\n if (!enclosing) {\n return snapshot.context.schema\n }\n\n return getSubSchema(snapshot.context.schema, enclosing.of)\n}\n"],"names":["getAncestors","snapshot","path","keyedIndices","i","length","isKeyedSegment","push","context","blockIndexMap","currentChildren","value","isRootLevel","currentParent","ancestorsByDepth","resolvedPath","targetKeyedIndex","segmentIndex","segment","node","size","index","get","_key","undefined","find","child","at","next","getNodeChildren","slice","children","parent","reverse","hasNode","getNode","resolveContainerAt","containers","resolved","resolveNodeEntry","fieldValue","field","name","Array","isArray","of","entry","type","_type","isEditableContainer","_node","isObject","isTypedObject","schema","block","span","comparePaths","another","root","min","Math","currentNode","otherSegment","c","findIndex","otherSegmentIndex","comparePoints","point","result","offset","isAfterPoint","isBackwardRange","range","anchor","focus","rangeEdges","isTextBlockNode","isAncestorPath","getNodes","options","from","to","match","getNodesSimple","getNodesInRange","getChildren","entries","comparePathsInTree","pathA","pathB","keysA","filter","keysB","minDepth","depth","keyA","keyB","matchedNode","has","indexA","indexB","sibling","canStopTraversal","couldContainInRangeNodes","isInRange","nodePath","getSibling","direction","lastSegment","parentPath","currentIndex","siblingIndex","isSpanNode","isBlock","getParent","getBlock","isInline","getEnclosingBlock","mode","ancestors","ancestor","direct","pointA","pointB","pathComparison","descendToParent","getEnclosingContainer","descent","getPathSubSchema","enclosing","getSubSchema"],"mappings":"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"}

@@ -1,72 +0,5 @@

import { isInline, isSpanNode, isObject, getEnclosingBlock, resolveContainerAt, hasNode, getBlock, getNodes, getSibling, getPathSubSchema, isTextBlockNode, isEditableContainer } from "./get-path-sub-schema.js";
import { isKeyedSegment, getNode, getNodeChildren, getParent, getChildren, parentPath } from "./get-parent.js";
import { isEqualPaths, getSelectionStartPoint as getSelectionStartPoint$1, getSelectionEndPoint as getSelectionEndPoint$1, sliceBlocks, getBlockStartPoint, getBlockEndPoint, isEqualSelectionPoints, isSelectionCollapsed as isSelectionCollapsed$1, blockOffsetToSpanSelectionPoint, spanSelectionPointToBlockOffset, isListBlock } from "./util.slice-blocks.js";
import { rangeEdges, comparePoints$1 as comparePoints, isInline, isSpanNode, isObject, getEnclosingBlock, resolveContainerAt, hasNode, getBlock, getNodes, getSibling, getPathSubSchema, isTextBlockNode, isEditableContainer } from "./get-path-sub-schema.js";
import { isSelectionCollapsed as isSelectionCollapsed$1, getSelectionStartPoint as getSelectionStartPoint$1, getSelectionEndPoint as getSelectionEndPoint$1, sliceBlocks, getBlockStartPoint, getBlockEndPoint, isEqualSelectionPoints, blockOffsetToSpanSelectionPoint, spanSelectionPointToBlockOffset, isListBlock } from "./util.slice-blocks.js";
import { getNode, getNodeChildren, isKeyedSegment, getParent, getChildren, parentPath } from "./get-parent.js";
import { isSpan, isTextBlock } from "@portabletext/schema";
function comparePaths(path, another, root) {
const min = Math.min(path.length, another.length);
let currentChildren = root?.children, currentNode;
for (let i = 0; i < min; i++) {
const segment = path[i], otherSegment = another[i];
if (isKeyedSegment(segment) && isKeyedSegment(otherSegment)) {
if (segment._key === otherSegment._key) {
currentChildren && (currentNode = currentChildren.find((c) => c._key === segment._key), currentChildren = void 0);
continue;
}
if (currentChildren) {
const segmentIndex = currentChildren.findIndex((c) => c._key === segment._key), otherSegmentIndex = currentChildren.findIndex((c) => c._key === otherSegment._key);
if (segmentIndex !== -1 && otherSegmentIndex !== -1)
return segmentIndex < otherSegmentIndex ? -1 : 1;
}
if (segment._key < otherSegment._key)
return -1;
if (segment._key > otherSegment._key)
return 1;
continue;
}
if (typeof segment == "string" && typeof otherSegment == "string") {
if (segment === otherSegment) {
if (currentNode) {
const fieldValue = currentNode[segment];
currentChildren = Array.isArray(fieldValue) ? fieldValue : void 0, currentNode = void 0;
}
continue;
}
if (segment < otherSegment)
return -1;
if (segment > otherSegment)
return 1;
continue;
}
if (typeof segment == "number" && typeof otherSegment == "number") {
if (segment < otherSegment)
return -1;
if (segment > otherSegment)
return 1;
continue;
}
break;
}
return 0;
}
function comparePoints(point, another, root) {
const result = comparePaths(point.path, another.path, root);
return result === 0 ? point.offset < another.offset ? -1 : point.offset > another.offset ? 1 : 0 : result;
}
function isAfterPoint(point, another, root) {
return comparePoints(point, another, root) === 1;
}
function isBackwardRange(range, root) {
const {
anchor,
focus
} = range;
return isAfterPoint(anchor, focus, root);
}
function rangeEdges(range, root) {
const {
anchor,
focus
} = range;
return isBackwardRange(range, root) ? [focus, anchor] : [anchor, focus];
}
function rangesOverlap(rangeA, rangeB, root) {

@@ -76,3 +9,3 @@ const [startA, endA] = rangeEdges(rangeA, root), [startB, endB] = rangeEdges(rangeB, root);

}
const isSelectionCollapsed = (snapshot) => snapshot.context.selection ? isEqualPaths(snapshot.context.selection.anchor.path, snapshot.context.selection.focus.path) && snapshot.context.selection.anchor.offset === snapshot.context.selection.focus.offset : !1;
const isSelectionCollapsed = (snapshot) => isSelectionCollapsed$1(snapshot.context.selection);
function getInline(snapshot, path) {

@@ -319,3 +252,3 @@ const entry = getNode(snapshot, path);

return !selection || !editorSelection || !hasNode(snapshot, selection.anchor.path) || !hasNode(snapshot, selection.focus.path) || !hasNode(snapshot, editorSelection.anchor.path) || !hasNode(snapshot, editorSelection.focus.path) ? !1 : rangesOverlap(selection, editorSelection, {
children: snapshot.context.value
value: snapshot.context.value
});

@@ -370,9 +303,2 @@ };

};
function isBlockPath(path) {
const firstSegment = path.at(0);
return path.length === 1 && firstSegment !== void 0 && isRecord(firstSegment) && "_key" in firstSegment && typeof firstSegment._key == "string";
}
function isRecord(value) {
return !!value && (typeof value == "object" || typeof value == "function");
}
function isSelectionExpanded(selection) {

@@ -441,3 +367,3 @@ return selection ? !isSelectionCollapsed$1(selection) : !1;

let selection = snapshot.context.selection;
if (isBlockPath(selection.anchor.path)) {
if (getBlock(snapshot, selection.anchor.path)) {
const spanSelectionPoint = blockOffsetToSpanSelectionPoint({

@@ -456,3 +382,3 @@ snapshot,

}
if (isBlockPath(selection.focus.path)) {
if (getBlock(snapshot, selection.focus.path)) {
const spanSelectionPoint = blockOffsetToSpanSelectionPoint({

@@ -970,4 +896,2 @@ snapshot,

compareApplicableSchema,
comparePaths,
comparePoints,
getActiveAnnotations,

@@ -1014,6 +938,4 @@ getActiveAnnotationsMarks,

isActiveStyle,
isAfterPoint,
isAtTheEndOfBlock,
isAtTheStartOfBlock,
isBackwardRange,
isOverlappingSelection,

@@ -1023,5 +945,4 @@ isSelectingEntireBlocks,

isSelectionExpanded$1 as isSelectionExpanded,
rangeEdges,
rangesOverlap
};
//# sourceMappingURL=selector.is-at-the-start-of-block.js.map

@@ -692,3 +692,2 @@ import { isTextBlock, isSpan, getSubSchema } from "@portabletext/schema";

getSelectionStartPoint,
isEqualPathSegments,
isEqualPaths,

@@ -695,0 +694,0 @@ isEqualSelectionPoints,

import { X as defineBehavior, Y as Behavior, Z as BehaviorGuard, a as forward, c as CustomBehaviorEvent, d as SyntheticBehaviorEvent, i as execute, l as InsertPlacement, n as BehaviorActionSet, o as raise, r as effect, s as BehaviorEvent, t as BehaviorAction, u as NativeBehaviorEvent } from "../_chunks-dts/behavior.types.action.js";
import "../_chunks-dts/resolve-containers.js";
export { type Behavior, type BehaviorAction, type BehaviorActionSet, type BehaviorEvent, type BehaviorGuard, type CustomBehaviorEvent, type InsertPlacement, type NativeBehaviorEvent, type SyntheticBehaviorEvent, defineBehavior, effect, execute, forward, raise };

@@ -1,3 +0,2 @@

import { $ as EditorSnapshot, A as PortableTextTextBlock, At as PortableTextEditor, B as EditorSelector, C as ListDefinition, Ct as RenderListItemFunction, D as PortableTextChild, Dt as PortableTextEditable, E as PortableTextBlock, Et as ScrollSelectionIntoViewFunction, F as BlockOffset, G as EditorConfig, H as EditorProvider, I as useEditor, J as MutationEvent, K as EditorEvent, L as defaultKeyGenerator, M as StyleDefinition, N as StyleSchemaType, O as PortableTextObject, Ot as PortableTextEditableProps, P as defineSchema, Q as EditorContext, R as usePortableTextEditorSelection, S as InlineObjectSchemaType, St as RenderEditableFunction, T as Patch, Tt as RenderStyleFunction, U as EditorProviderProps, V as useEditorSelector, W as Editor, _ as BlockObjectSchemaType, _t as RangeDecorationOnMovedDetails, at as BlockRenderProps, b as FieldDefinition, bt as RenderChildFunction, ct as EditorSelection, dt as OnCopyFn, et as AddedAnnotationPaths, f as PatchesEvent, ft as OnPasteFn, g as BlockObjectDefinition, gt as RangeDecoration, h as BaseDefinition, ht as PasteData, it as BlockListItemRenderProps, j as SchemaDefinition, k as PortableTextSpan, kt as HotkeyOptions, lt as EditorSelectionPoint, m as AnnotationSchemaType, mt as OnPasteResultOrPromise, nt as BlockChildRenderProps, ot as BlockStyleRenderProps, p as AnnotationDefinition, pt as OnPasteResult, q as EditorEmittedEvent, rt as BlockDecoratorRenderProps, st as EditableAPIDeleteOptions, tt as BlockAnnotationRenderProps, ut as InvalidValueResolution, v as DecoratorDefinition, vt as RenderAnnotationFunction, w as ListSchemaType, wt as RenderPlaceholderFunction, x as InlineObjectDefinition, xt as RenderDecoratorFunction, y as DecoratorSchemaType, yt as RenderBlockFunction, z as usePortableTextEditor } from "./_chunks-dts/behavior.types.action.js";
import { A as ChildPath, C as defineContainer, E as defineTextBlock, M as Path, O as AnnotationPath, S as defineBlockObject, T as defineSpan, _ as RegistrableNode, a as Containers, b as TextBlock, c as RegisteredInlineObject, f as BlockObject, h as InlineObject, i as EditorSchema, k as BlockPath, l as RegisteredPositional, m as Container, o as RegisteredBlockObject, s as RegisteredContainer, t as resolveContainerAt, u as RegisteredSpan, v as Span, w as defineInlineObject } from "./_chunks-dts/resolve-containers.js";
import { $ as EditorSnapshot, $t as AnnotationPath, A as PortableTextTextBlock, At as PortableTextEditor, B as EditorSelector, Bt as RegisteredSpan, C as ListDefinition, Ct as RenderListItemFunction, D as PortableTextChild, Dt as PortableTextEditable, E as PortableTextBlock, Et as ScrollSelectionIntoViewFunction, F as BlockOffset, Ft as Containers, G as EditorConfig, Gt as Span, H as EditorProvider, Ht as Container, I as useEditor, It as RegisteredBlockObject, J as MutationEvent, Jt as defineContainer, K as EditorEvent, Kt as TextBlock, L as defaultKeyGenerator, Lt as RegisteredContainer, M as StyleDefinition, N as StyleSchemaType, O as PortableTextObject, Ot as PortableTextEditableProps, P as defineSchema, Pt as EditorSchema, Q as EditorContext, R as usePortableTextEditorSelection, Rt as RegisteredInlineObject, S as InlineObjectSchemaType, St as RenderEditableFunction, T as Patch, Tt as RenderStyleFunction, U as EditorProviderProps, Ut as InlineObject, V as useEditorSelector, Vt as BlockObject, W as Editor, Wt as RegistrableNode, Xt as defineSpan, Yt as defineInlineObject, Zt as defineTextBlock, _ as BlockObjectSchemaType, _t as RangeDecorationOnMovedDetails, at as BlockRenderProps, b as FieldDefinition, bt as RenderChildFunction, ct as EditorSelection, dt as OnCopyFn, en as BlockPath, et as AddedAnnotationPaths, f as PatchesEvent, ft as OnPasteFn, g as BlockObjectDefinition, gt as RangeDecoration, h as BaseDefinition, ht as PasteData, it as BlockListItemRenderProps, j as SchemaDefinition, jt as resolveContainerAt, k as PortableTextSpan, kt as HotkeyOptions, lt as EditorSelectionPoint, m as AnnotationSchemaType, mt as OnPasteResultOrPromise, nt as BlockChildRenderProps, ot as BlockStyleRenderProps, p as AnnotationDefinition, pt as OnPasteResult, q as EditorEmittedEvent, qt as defineBlockObject, rn as Path, rt as BlockDecoratorRenderProps, st as EditableAPIDeleteOptions, tn as ChildPath, tt as BlockAnnotationRenderProps, ut as InvalidValueResolution, v as DecoratorDefinition, vt as RenderAnnotationFunction, w as ListSchemaType, wt as RenderPlaceholderFunction, x as InlineObjectDefinition, xt as RenderDecoratorFunction, y as DecoratorSchemaType, yt as RenderBlockFunction, z as usePortableTextEditor, zt as RegisteredPositional } from "./_chunks-dts/behavior.types.action.js";
export { AddedAnnotationPaths, AnnotationDefinition, AnnotationPath, AnnotationSchemaType, BaseDefinition, BlockAnnotationRenderProps, BlockChildRenderProps, BlockDecoratorRenderProps, BlockListItemRenderProps, BlockObject, BlockObjectDefinition, BlockObjectSchemaType, BlockOffset, BlockPath, BlockRenderProps, BlockStyleRenderProps, ChildPath, Container, Containers, DecoratorDefinition, DecoratorSchemaType, EditableAPIDeleteOptions, Editor, EditorConfig, EditorContext, EditorEmittedEvent, EditorEvent, EditorProvider, EditorProviderProps, EditorSchema, EditorSelection, EditorSelectionPoint, EditorSelector, EditorSnapshot, FieldDefinition, HotkeyOptions, InlineObject, InlineObjectDefinition, InlineObjectSchemaType, InvalidValueResolution, ListDefinition, ListSchemaType, MutationEvent, OnCopyFn, OnPasteFn, OnPasteResult, OnPasteResultOrPromise, PasteData, Patch, PatchesEvent, Path, PortableTextBlock, PortableTextChild, PortableTextEditable, PortableTextEditableProps, PortableTextEditor, PortableTextObject, PortableTextSpan, PortableTextTextBlock, RangeDecoration, RangeDecorationOnMovedDetails, RegisteredBlockObject, RegisteredContainer, RegisteredInlineObject, RegisteredPositional, RegisteredSpan, RegistrableNode, RenderAnnotationFunction, RenderBlockFunction, RenderChildFunction, RenderDecoratorFunction, RenderEditableFunction, RenderListItemFunction, RenderPlaceholderFunction, RenderStyleFunction, SchemaDefinition, ScrollSelectionIntoViewFunction, Span, StyleDefinition, StyleSchemaType, TextBlock, defineBlockObject, defineContainer, defineInlineObject, defineSchema, defineSpan, defineTextBlock, defaultKeyGenerator as keyGenerator, resolveContainerAt, useEditor, useEditorSelector, usePortableTextEditor, usePortableTextEditorSelection };

@@ -1,6 +0,12 @@

import { W as Editor, Y as Behavior, q as EditorEmittedEvent } from "../_chunks-dts/behavior.types.action.js";
import { _ as RegistrableNode } from "../_chunks-dts/resolve-containers.js";
import { W as Editor, Wt as RegistrableNode, Y as Behavior, q as EditorEmittedEvent } from "../_chunks-dts/behavior.types.action.js";
import React from "react";
/**
* @beta
*
* Plugin component that registers a list of `Behavior`s with the editor.
*
* Stabilize the `behaviors` array (a module-level constant or `useMemo`)
* to avoid a full unregister/re-register cycle on every parent render: a
* new array reference per render triggers the registration effect to
* re-run.
*/

@@ -7,0 +13,0 @@ declare function BehaviorPlugin(props: {

@@ -1,1 +0,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":";;;;;;AAOgB,iBAAA,cAAA,CAAwC,KAAN,EAAA;aAAA,MAAM;ACSxD,CAAA,CAAA,EAAgB,IAAA;;;;ADThB;;ACSA;;ACTA;;;;;iBDSgB,UAAA;EEqCA,KAAA,EFrC0B,KEqC1B,CFrCgC,eEqCb,CAAA;;;;AH9CnC;cEAa,iBAAe,KAAA,CAAA,0BAAA,KAAA,CAAA,cAAA;;;;AFA5B;;ACSA;;ACTA;;;;;;AC8CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAgB,mBAAA;cACF"}
{"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,1 +0,1 @@

{"version":3,"file":"index.js","sources":["../../src/plugins/plugin.behavior.tsx","../../src/plugins/plugin.node.tsx","../../src/plugins/plugin.editor-ref.tsx","../../src/plugins/plugin.event-listener.tsx"],"sourcesContent":["import {useEffect} from 'react'\nimport type {Behavior} from '../behaviors/behavior.types.behavior'\nimport {useEditor} from '../editor/use-editor'\n\n/**\n * @beta\n */\nexport function BehaviorPlugin(props: {behaviors: Array<Behavior>}) {\n const editor = useEditor()\n\n useEffect(() => {\n const unregisterBehaviors = props.behaviors.map((behavior) =>\n editor.registerBehavior({behavior}),\n )\n\n return () => {\n unregisterBehaviors.forEach((unregister) => {\n unregister()\n })\n }\n }, [editor, props.behaviors])\n\n return null\n}\n","import {useEffect} from 'react'\nimport {useEditor} from '../editor/use-editor'\nimport type {RegistrableNode} from '../renderers/renderer.types'\n\n/**\n * @alpha\n *\n * Plugin component that registers a list of nodes (containers, text\n * blocks, spans, block objects, inline objects) with the editor. Each\n * node is the result of a `defineX` factory.\n *\n * Stabilize the `nodes` array (a module-level constant or `useMemo`)\n * to avoid a full unregister/re-register cycle on every parent\n * render: a new array reference per render triggers the registration\n * effect to re-run.\n */\nexport function NodePlugin(props: {nodes: Array<RegistrableNode>}) {\n const editor = useEditor()\n\n useEffect(() => {\n const unregisterNodes = props.nodes.map((node) =>\n editor.registerNode({node}),\n )\n\n return () => {\n unregisterNodes.forEach((unregister) => {\n unregister()\n })\n }\n }, [editor, props.nodes])\n\n return null\n}\n","import React from 'react'\nimport type {Editor} from '../editor'\nimport {useEditor} from '../editor/use-editor'\n\n/**\n * @beta\n */\nexport const EditorRefPlugin = React.forwardRef<Editor | null>((_, ref) => {\n const editor = useEditor()\n\n const portableTextEditorRef = React.useRef(editor)\n\n React.useImperativeHandle(ref, () => portableTextEditorRef.current, [])\n\n return null\n})\nEditorRefPlugin.displayName = 'EditorRefPlugin'\n","import {useEffect} from 'react'\nimport type {EditorEmittedEvent} from '../editor/relay-machine'\nimport {useEditor} from '../editor/use-editor'\n\n/**\n * @public\n * Listen for events emitted by the editor. Must be used inside `EditorProvider`. Events available include:\n * - 'blurred'\n * - 'done loading'\n * - 'editable'\n * - 'error'\n * - 'focused'\n * - 'invalid value'\n * - 'loading'\n * - 'mutation'\n * - 'patch'\n * - 'read only'\n * - 'ready'\n * - 'selection'\n * - 'value changed'\n *\n * @example\n * Listen and log events.\n * ```tsx\n * import {EditorProvider} from '@portabletext/editor'\n * import {EventListenerPlugin} from '@portabletext/editor/plugins'\n *\n * function MyComponent() {\n * return (\n * <EditorProvider>\n * <EventListenerPlugin\n * on={(event) => {\n * console.log(event)\n * }\n * } />\n * { ... }\n * </EditorProvider>\n * )\n * }\n * ```\n * @example\n * Handle events when there is a mutation.\n * ```tsx\n * <EventListenerPlugin\n * on={(event) => {\n * if (event.type === 'mutation') {\n * console.log('Value changed:', event.snapshot)\n * }\n * }}\n * />\n * ```\n * @group Components\n */\nexport function EventListenerPlugin(props: {\n on: (event: EditorEmittedEvent) => void\n}) {\n const editor = useEditor()\n\n useEffect(() => {\n const subscription = editor.on('*', props.on)\n\n return () => {\n subscription.unsubscribe()\n }\n }, [editor, props.on])\n\n return null\n}\n"],"names":["BehaviorPlugin","props","$","_c","editor","useEditor","t0","t1","behaviors","unregisterBehaviors","map","behavior","registerBehavior","forEach","_temp","useEffect","unregister","NodePlugin","nodes","unregisterNodes","node","registerNode","EditorRefPlugin","React","forwardRef","_","ref","portableTextEditorRef","useRef","Symbol","for","current","useImperativeHandle","displayName","EventListenerPlugin","on","subscription","unsubscribe"],"mappings":";;;AAOO,SAAAA,eAAAC,OAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GACLC,SAAeC,UAAAA;AAAW,MAAAC,IAAAC;AAAA,SAAAL,SAAAE,UAAAF,EAAA,CAAA,MAAAD,MAAAO,aAEhBF,KAAAA,MAAA;AACR,UAAAG,sBAA4BR,MAAKO,UAAUE,IAAKC,CAAAA,aAC9CP,OAAMQ,iBAAkB;AAAA,MAAAD;AAAAA,IAAAA,CAAU,CACpC;AAAC,WAEM,MAAA;AACLF,0BAAmBI,QAASC,OAE3B;AAAA,IAAC;AAAA,EACH,GACAP,MAACH,QAAQH,MAAKO,SAAU,GAACN,OAAAE,QAAAF,EAAA,CAAA,IAAAD,MAAAO,WAAAN,OAAAI,IAAAJ,OAAAK,OAAAD,KAAAJ,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,IAV5Ba,UAAUT,IAUPC,EAAyB,GAErB;AAAI;AAfN,SAAAO,QAAAE,YAAA;AAUCA,aAAAA;AAAY;ACDb,SAAAC,WAAAhB,OAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GACLC,SAAeC,UAAAA;AAAW,MAAAC,IAAAC;AAAA,SAAAL,SAAAE,UAAAF,EAAA,CAAA,MAAAD,MAAAiB,SAEhBZ,KAAAA,MAAA;AACR,UAAAa,kBAAwBlB,MAAKiB,MAAMR,IAAKU,CAAAA,SACtChB,OAAMiB,aAAc;AAAA,MAAAD;AAAAA,IAAAA,CAAM,CAC5B;AAAC,WAEM,MAAA;AACLD,sBAAeN,QAASC,KAEvB;AAAA,IAAC;AAAA,EACH,GACAP,MAACH,QAAQH,MAAKiB,KAAM,GAAChB,OAAAE,QAAAF,EAAA,CAAA,IAAAD,MAAAiB,OAAAhB,OAAAI,IAAAJ,OAAAK,OAAAD,KAAAJ,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,IAVxBa,UAAUT,IAUPC,EAAqB,GAEjB;AAAI;AAfN,SAAAO,MAAAE,YAAA;AAUCA,aAAAA;AAAY;ACnBb,MAAMM,kBAAkBC,MAAMC,WAA0B,CAAAC,GAAAC,QAAA;AAAA,QAAAxB,IAAAC,EAAA,CAAA,GAC7DC,SAAeC,aAEfsB,wBAA8BJ,MAAKK,OAAQxB,MAAM;AAAC,MAAAE,IAAAC;AAAA,SAAAL,EAAA,CAAA,MAAA2B,uBAAAC,IAAA,2BAAA,KAEnBxB,KAAAA,MAAMqB,sBAAqBI,SAAUxB,KAAA,CAAA,GAAEL,OAAAI,IAAAJ,OAAAK,OAAAD,KAAAJ,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,IAAtEqB,MAAKS,oBAAqBN,KAAKpB,IAAqCC,EAAE,GAE/D;AAAI,CACZ;AACDe,gBAAgBW,cAAc;ACqCvB,SAAAC,oBAAAjC,OAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GAGLC,SAAeC,UAAAA;AAAW,MAAAC,IAAAC;AAAA,SAAAL,SAAAE,UAAAF,EAAA,CAAA,MAAAD,MAAAkC,MAEhB7B,KAAAA,MAAA;AACR,UAAA8B,eAAqBhC,OAAM+B,GAAI,KAAKlC,MAAKkC,EAAG;AAAC,WAEtC,MAAA;AACLC,mBAAYC,YAAAA;AAAAA,IAAc;AAAA,EAC3B,GACA9B,MAACH,QAAQH,MAAKkC,EAAG,GAACjC,OAAAE,QAAAF,EAAA,CAAA,IAAAD,MAAAkC,IAAAjC,OAAAI,IAAAJ,OAAAK,OAAAD,KAAAJ,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,IANrBa,UAAUT,IAMPC,EAAkB,GAEd;AAAI;"}
{"version":3,"file":"index.js","sources":["../../src/plugins/plugin.behavior.tsx","../../src/plugins/plugin.node.tsx","../../src/plugins/plugin.editor-ref.tsx","../../src/plugins/plugin.event-listener.tsx"],"sourcesContent":["import {useEffect} from 'react'\nimport type {Behavior} from '../behaviors/behavior.types.behavior'\nimport {useEditor} from '../editor/use-editor'\n\n/**\n * @beta\n *\n * Plugin component that registers a list of `Behavior`s with the editor.\n *\n * Stabilize the `behaviors` array (a module-level constant or `useMemo`)\n * to avoid a full unregister/re-register cycle on every parent render: a\n * new array reference per render triggers the registration effect to\n * re-run.\n */\nexport function BehaviorPlugin(props: {behaviors: Array<Behavior>}) {\n const editor = useEditor()\n\n useEffect(() => {\n const unregisterBehaviors = props.behaviors.map((behavior) =>\n editor.registerBehavior({behavior}),\n )\n\n return () => {\n unregisterBehaviors.forEach((unregister) => {\n unregister()\n })\n }\n }, [editor, props.behaviors])\n\n return null\n}\n","import {useEffect} from 'react'\nimport {useEditor} from '../editor/use-editor'\nimport type {RegistrableNode} from '../renderers/renderer.types'\n\n/**\n * @alpha\n *\n * Plugin component that registers a list of nodes (containers, text\n * blocks, spans, block objects, inline objects) with the editor. Each\n * node is the result of a `defineX` factory.\n *\n * Stabilize the `nodes` array (a module-level constant or `useMemo`)\n * to avoid a full unregister/re-register cycle on every parent\n * render: a new array reference per render triggers the registration\n * effect to re-run.\n */\nexport function NodePlugin(props: {nodes: Array<RegistrableNode>}) {\n const editor = useEditor()\n\n useEffect(() => {\n const unregisterNodes = props.nodes.map((node) =>\n editor.registerNode({node}),\n )\n\n return () => {\n unregisterNodes.forEach((unregister) => {\n unregister()\n })\n }\n }, [editor, props.nodes])\n\n return null\n}\n","import React from 'react'\nimport type {Editor} from '../editor'\nimport {useEditor} from '../editor/use-editor'\n\n/**\n * @beta\n */\nexport const EditorRefPlugin = React.forwardRef<Editor | null>((_, ref) => {\n const editor = useEditor()\n\n const portableTextEditorRef = React.useRef(editor)\n\n React.useImperativeHandle(ref, () => portableTextEditorRef.current, [])\n\n return null\n})\nEditorRefPlugin.displayName = 'EditorRefPlugin'\n","import {useEffect} from 'react'\nimport type {EditorEmittedEvent} from '../editor/relay-machine'\nimport {useEditor} from '../editor/use-editor'\n\n/**\n * @public\n * Listen for events emitted by the editor. Must be used inside `EditorProvider`. Events available include:\n * - 'blurred'\n * - 'done loading'\n * - 'editable'\n * - 'error'\n * - 'focused'\n * - 'invalid value'\n * - 'loading'\n * - 'mutation'\n * - 'patch'\n * - 'read only'\n * - 'ready'\n * - 'selection'\n * - 'value changed'\n *\n * @example\n * Listen and log events.\n * ```tsx\n * import {EditorProvider} from '@portabletext/editor'\n * import {EventListenerPlugin} from '@portabletext/editor/plugins'\n *\n * function MyComponent() {\n * return (\n * <EditorProvider>\n * <EventListenerPlugin\n * on={(event) => {\n * console.log(event)\n * }\n * } />\n * { ... }\n * </EditorProvider>\n * )\n * }\n * ```\n * @example\n * Handle events when there is a mutation.\n * ```tsx\n * <EventListenerPlugin\n * on={(event) => {\n * if (event.type === 'mutation') {\n * console.log('Value changed:', event.snapshot)\n * }\n * }}\n * />\n * ```\n * @group Components\n */\nexport function EventListenerPlugin(props: {\n on: (event: EditorEmittedEvent) => void\n}) {\n const editor = useEditor()\n\n useEffect(() => {\n const subscription = editor.on('*', props.on)\n\n return () => {\n subscription.unsubscribe()\n }\n }, [editor, props.on])\n\n return null\n}\n"],"names":["BehaviorPlugin","props","$","_c","editor","useEditor","t0","t1","behaviors","unregisterBehaviors","map","behavior","registerBehavior","forEach","_temp","useEffect","unregister","NodePlugin","nodes","unregisterNodes","node","registerNode","EditorRefPlugin","React","forwardRef","_","ref","portableTextEditorRef","useRef","Symbol","for","current","useImperativeHandle","displayName","EventListenerPlugin","on","subscription","unsubscribe"],"mappings":";;;AAcO,SAAAA,eAAAC,OAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GACLC,SAAeC,UAAAA;AAAW,MAAAC,IAAAC;AAAA,SAAAL,SAAAE,UAAAF,EAAA,CAAA,MAAAD,MAAAO,aAEhBF,KAAAA,MAAA;AACR,UAAAG,sBAA4BR,MAAKO,UAAUE,IAAKC,CAAAA,aAC9CP,OAAMQ,iBAAkB;AAAA,MAAAD;AAAAA,IAAAA,CAAU,CACpC;AAAC,WAEM,MAAA;AACLF,0BAAmBI,QAASC,OAE3B;AAAA,IAAC;AAAA,EACH,GACAP,MAACH,QAAQH,MAAKO,SAAU,GAACN,OAAAE,QAAAF,EAAA,CAAA,IAAAD,MAAAO,WAAAN,OAAAI,IAAAJ,OAAAK,OAAAD,KAAAJ,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,IAV5Ba,UAAUT,IAUPC,EAAyB,GAErB;AAAI;AAfN,SAAAO,QAAAE,YAAA;AAUCA,aAAAA;AAAY;ACRb,SAAAC,WAAAhB,OAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GACLC,SAAeC,UAAAA;AAAW,MAAAC,IAAAC;AAAA,SAAAL,SAAAE,UAAAF,EAAA,CAAA,MAAAD,MAAAiB,SAEhBZ,KAAAA,MAAA;AACR,UAAAa,kBAAwBlB,MAAKiB,MAAMR,IAAKU,CAAAA,SACtChB,OAAMiB,aAAc;AAAA,MAAAD;AAAAA,IAAAA,CAAM,CAC5B;AAAC,WAEM,MAAA;AACLD,sBAAeN,QAASC,KAEvB;AAAA,IAAC;AAAA,EACH,GACAP,MAACH,QAAQH,MAAKiB,KAAM,GAAChB,OAAAE,QAAAF,EAAA,CAAA,IAAAD,MAAAiB,OAAAhB,OAAAI,IAAAJ,OAAAK,OAAAD,KAAAJ,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,IAVxBa,UAAUT,IAUPC,EAAqB,GAEjB;AAAI;AAfN,SAAAO,MAAAE,YAAA;AAUCA,aAAAA;AAAY;ACnBb,MAAMM,kBAAkBC,MAAMC,WAA0B,CAAAC,GAAAC,QAAA;AAAA,QAAAxB,IAAAC,EAAA,CAAA,GAC7DC,SAAeC,aAEfsB,wBAA8BJ,MAAKK,OAAQxB,MAAM;AAAC,MAAAE,IAAAC;AAAA,SAAAL,EAAA,CAAA,MAAA2B,uBAAAC,IAAA,2BAAA,KAEnBxB,KAAAA,MAAMqB,sBAAqBI,SAAUxB,KAAA,CAAA,GAAEL,OAAAI,IAAAJ,OAAAK,OAAAD,KAAAJ,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,IAAtEqB,MAAKS,oBAAqBN,KAAKpB,IAAqCC,EAAE,GAE/D;AAAI,CACZ;AACDe,gBAAgBW,cAAc;ACqCvB,SAAAC,oBAAAjC,OAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GAGLC,SAAeC,UAAAA;AAAW,MAAAC,IAAAC;AAAA,SAAAL,SAAAE,UAAAF,EAAA,CAAA,MAAAD,MAAAkC,MAEhB7B,KAAAA,MAAA;AACR,UAAA8B,eAAqBhC,OAAM+B,GAAI,KAAKlC,MAAKkC,EAAG;AAAC,WAEtC,MAAA;AACLC,mBAAYC,YAAAA;AAAAA,IAAc;AAAA,EAC3B,GACA9B,MAACH,QAAQH,MAAKkC,EAAG,GAACjC,OAAAE,QAAAF,EAAA,CAAA,IAAAD,MAAAkC,IAAAjC,OAAAI,IAAAJ,OAAAK,OAAAD,KAAAJ,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,IANrBa,UAAUT,IAMPC,EAAkB,GAEd;AAAI;"}

@@ -1,3 +0,2 @@

import { B as EditorSelector, F as BlockOffset, ct as EditorSelection, lt as EditorSelectionPoint } from "../_chunks-dts/behavior.types.action.js";
import { A as ChildPath, D as Path, k as BlockPath } from "../_chunks-dts/resolve-containers.js";
import { B as EditorSelector, F as BlockOffset, Qt as Path, ct as EditorSelection, en as BlockPath, lt as EditorSelectionPoint, tn as ChildPath } from "../_chunks-dts/behavior.types.action.js";
import { PortableTextBlock, PortableTextListBlock, PortableTextObject, PortableTextSpan, PortableTextTextBlock } from "@portabletext/schema";

@@ -4,0 +3,0 @@ /**

@@ -1,1 +0,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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AA;EACC,IAAA,E4BJR,gB5BIQ;EAAW,IAAA,E4BJK,I5BIL;AAsC5B,CAAA,GAAa,SAAA,CAAA;;AA5Cb;;;;;;;;AA4CA;AAuDA;;ACrGA;AAAwD,c4Ba3C,iB5Bb2C,E4BaxB,c5BbwB,C4BctD,K5BdsD,CAAA;EAAN,IAAA,E4BcnC,iB5BdmC;EAAf,IAAA,E4BcK,S5BdL;CAAc,CAAA,CAAA;;ADEjD;;;;AAIU,c8BLG,gB9BKH,E8BLqB,c9BKrB,C8BJR,K9BIQ,CAAA;EACM,IAAA,E8BJN,gB9BIM;EACC,IAAA,E8BJP,S9BIO;CAAW,CAAA,CAAA;;AAN5B;;;;;;;;AA4Ca,c+BtCA,qB/BsCoC,E+BtCb,c/BsCF,C+BrChC,K/BqCgC,CAAA;EAuDlB,IAAA,E+B5FD,qB/B4FwB;Q+B5FK;A9BT5C,CAAA,CAAA,CAAA;;;ADEA;;;;;;;;AA4CA;AAuDA;;ACrGA;AAAwD,c+B6B3C,gB/B7B2C,E+B6BzB,c/B7ByB,C+B6BV,K/B7BU,C+B6BJ,iB/B7BI,CAAA,CAAA;;;ADExD;AACc,ciCND,YjCMC,EiCNa,cjCMb,CiCN4B,ejCM5B,CAAA;;AADd;;;;;AAKgB,ckCJH,oBlCIG,EkCJmB,clCInB,CAAA;EACC,IAAA,EkCHL,iBlCGK;EAAW,IAAA,EkCFhB,SlCEgB;AAsC5B,CAAA,GAAa,SAAA,CAAA;;AA5Cb;;;;;AAKgB,cmCJH,oBnCIG,EmCJmB,cnCInB,CAAA;EACC,IAAA,EmCHL,gBnCGK,GmCHc,kBnCGd;EAAW,IAAA,EmCFhB,SnCEgB;AAsC5B,CAAA,GAAa,SAAA,CAAA;;;AA5Cb;AACc,coCND,oBpCMC,EoCNqB,cpCMrB,CoCLZ,oBpCKY,GAAA,SAAA,CAAA;;AADd;;;;;AAKgB,cqCJH,sBrCIG,EqCJqB,crCIrB,CAAA;EACC,IAAA,EqCHL,iBrCGK;EAAW,IAAA,EqCFhB,SrCEgB;AAsC5B,CAAA,GAAa,SAAA,CAAA;;AA5Cb;;;;;AAKgB,csCJH,sBtCIG,EsCJqB,ctCIrB,CAAA;EACC,IAAA,EsCHL,gBtCGK,GsCHc,kBtCGd;EAAW,IAAA,EsCFhB,StCEgB;AAsC5B,CAAA,GAAa,SAAA,CAAA;;;AA5Cb;AACc,cuCND,sBvCMC,EuCNuB,cvCMvB,CuCLZ,oBvCKY,GAAA,SAAA,CAAA;;;;AADF,cwCAC,gBxCAe,EwCAG,cxCAH,CAAA,MAAA,CAAA;;;;AAAhB,cyCFC,iBzCEe,EyCFI,czCEJ,CAAA,MAAA,CAAA;;;;AAAhB,c0CFC,kB1CEe,E0CFK,c1CEL,CAAA,MAAA,CAAA;;;AAA5B;AACc,c2CND,Q3CMC,E2CNS,c3CMT,C2CNwB,K3CMxB,C2CN8B,iB3CM9B,CAAA,CAAA;;;;AADd;;AAEe,iB4CFC,kBAAA,C5CED,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA;EACN;;;;;AAyCT;EAuDgB,IAAA,CAAA,EAAA,SAAA,GAAA,MAAA;I4CxFb;;;;A5CXS,iB6CFI,iBAAA,C7CEY,SAAA,EAAA,MAAA,CAAA,E6CF0B,c7CE1B,CAAA,OAAA,CAAA;;;;AAAhB,iB8CLI,gBAAA,C9CKY,QAAA,EAAA,MAAA,CAAA,E8CLwB,c9CKxB,CAAA,OAAA,CAAA;;;;AAAhB,iB+CLI,aAAA,C/CKY,KAAA,EAAA,MAAA,CAAA,E+CLkB,c/CKlB,CAAA,OAAA,CAAA;;AAA5B;;AAEe,iBgDHC,iBAAA,ChDGD,KAAA,EAAA;EACN,IAAA,EgDHD,iBhDGC;EACC,IAAA,EgDHF,ShDGE;CACM,CAAA,EgDHZ,chDGY,CAAA,OAAA,CAAA;;AALhB;;AAEe,iBiDHC,mBAAA,CjDGD,KAAA,EAAA;EACN,IAAA,EiDHD,iBjDGC;EACC,IAAA,EiDHF,SjDGE;CACM,CAAA,EiDHZ,cjDGY,CAAA,OAAA,CAAA;;;AALhB;;;;;;;AAM4B,iBkDHZ,sBAAA,ClDGY,SAAA,EkDFf,elDEe,CAAA,EkDDzB,clDCyB,CAAA,OAAA,CAAA;;;AAN5B;AACc,iBmDJE,qBAAA,CnDIF,KAAA,EmDHL,oBnDGK,CAAA,EmDFX,cnDEW,CAAA,OAAA,CAAA;;;AADd;AACc,iBoDJE,sBAAA,CpDIF,KAAA,EoDHL,oBpDGK,CAAA,EoDFX,cpDEW,CAAA,OAAA,CAAA;;;;AADF,cqDDC,uBrDCe,EqDDU,crDCV,CAAA,OAAA,CAAA;;;;AAAhB,csDLC,oBtDKe,EsDLO,ctDKP,CAAA,OAAA,CAAA;;;;AAAhB,cuDLC,mBvDKe,EuDLM,cvDKN,CAAA,OAAA,CAAA"}
{"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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AuDb,CAAA,CAAA,CAAA;AAnGA;;;;;;AAMiB,c4BLJ,e5BKI,E4BLa,c5BKb,CAAA;EAAW,IAAA,E4BJnB,gB5BImB;EAsCf,IAAA,E4B1CoB,I5B0CpB;AAuDb,CAAA,GAAgB,SAAA,CAAA;AAnGhB;;;;;;;;AA4CA;AAuDA;;ACrGA;;AAAkD,c4BarC,iB5BbqC,E4BalB,c5BbkB,C4BchD,K5BdgD,CAAA;EAAf,IAAA,E4BcpB,iB5BdoB;EAAc,IAAA,E4BcT,S5BdS;;ADEjD;;;;;AAKgB,c8BNH,gB9BMG,E8BNe,c9BMf,C8BLd,K9BKc,CAAA;EACC,IAAA,E8BLP,gB9BKO;EAAW,IAAA,E8BJlB,S9BIkB;AAsC5B,CAAA,CAAA,CAAA;AA5CA;;;;;;;;AA4CA;AAuDgB,c+B7FH,qB/B6F0B,E+B7FH,c/B8F/B,C+B7FH,K/B8FG,CAAA;Q+B9FU;E9BTF,IAAA,E8BS+B,I9BT/B;CAA2C,CAAA,CAAA;;ADExD;;;;;;;;AA4CA;AAuDA;;ACrGA;;AAAkD,c+B6BrC,gB/B7BqC,E+B6BnB,c/B7BmB,C+B6BJ,K/B7BI,C+B6BE,iB/B7BF,CAAA,CAAA;;ADElD;;AAEe,ciCPF,YjCOE,EiCPY,cjCOZ,CiCP2B,ejCO3B,CAAA;AAFf;;;;;;AAMiB,ckCLJ,oBlCKI,EkCLkB,clCKlB,CAAA;EAAW,IAAA,EkCHhB,iBlCGgB;EAsCf,IAAA,EkCxCD,SlCwCC;AAuDb,CAAA,GAAgB,SAAA,CAAA;AAnGhB;;;;;;AAMiB,cmCLJ,oBnCKI,EmCLkB,cnCKlB,CAAA;EAAW,IAAA,EmCHhB,gBnCGgB,GmCHG,kBnCGH;EAsCf,IAAA,EmCxCD,SnCwCC;AAuDb,CAAA,GAAgB,SAAA,CAAA;;AAnGhB;;AAEe,coCPF,oBpCOE,EoCPoB,cpCOpB,CoCNb,oBpCMa,GAAA,SAAA,CAAA;AAFf;;;;;;AAMiB,cqCLJ,sBrCKI,EqCLoB,crCKpB,CAAA;EAAW,IAAA,EqCHhB,iBrCGgB;EAsCf,IAAA,EqCxCD,SrCwCC;AAuDb,CAAA,GAAgB,SAAA,CAAA;AAnGhB;;;;;;AAMiB,csCLJ,sBtCKI,EsCLoB,ctCKpB,CAAA;EAAW,IAAA,EsCHhB,gBtCGgB,GsCHG,kBtCGH;EAsCf,IAAA,EsCxCD,StCwCC;AAuDb,CAAA,GAAgB,SAAA,CAAA;;AAnGhB;;AAEe,cuCPF,sBvCOE,EuCPsB,cvCOtB,CuCNb,oBvCMa,GAAA,SAAA,CAAA;;;AAFf;AACc,cwCDD,gBxCCC,EwCDiB,cxCCjB,CAAA,MAAA,CAAA;;;AADd;AACc,cyCHD,iBzCGC,EyCHkB,czCGlB,CAAA,MAAA,CAAA;;;AADd;AACc,c0CHD,kB1CGC,E0CHmB,c1CGnB,CAAA,MAAA,CAAA;;AADd;;AAEe,c2CPF,Q3COE,E2CPQ,c3COR,C2CPuB,K3COvB,C2CP6B,iB3CO7B,CAAA,CAAA;;;AAFf;;;AAGS,iB4CHO,kBAAA,C5CGP,UAAA,EAAA,MAAA,EAAA,OCLT,CDKS,EAAA;EACC;;;;AAwCV;AAuDA;;ACrGA,CAAA,CAAA,E2CaG,c3CbU,CAAA,OAAA,CAmCZ;;;ADjCD;AACc,iB6CHE,iBAAA,C7CGF,SAAA,EAAA,MAAA,CAAA,E6CHwC,c7CGxC,CAAA,OAAA,CAAA;;;AADd;AACc,iB8CNE,gBAAA,C9CMF,QAAA,EAAA,MAAA,CAAA,E8CNsC,c9CMtC,CAAA,OAAA,CAAA;;;AADd;AACc,iB+CNE,aAAA,C/CMF,KAAA,EAAA,MAAA,CAAA,E+CNgC,c/CMhC,CAAA,OAAA,CAAA;AADd;;;AAGS,iBgDJO,iBAAA,ChDIP,KAAA,EAAA;EACC,IAAA,EgDJF,iBhDIE;EACM,IAAA,EgDJR,ShDIQ;CACC,CAAA,EgDJb,chDIa,CAAA,OAAA,CAAA;AANjB;;;AAGS,iBiDJO,mBAAA,CjDIP,KAAA,EAAA;EACC,IAAA,EiDJF,iBjDIE;EACM,IAAA,EiDJR,SjDIQ;CACC,CAAA,EiDJb,cjDIa,CAAA,OAAA,CAAA;;AANjB;;;;;;;;AA4Ca,iBkDzCG,sBAAA,ClDyCiC,SAAA,EkDxCpC,elDwCmC,CAAA,EkDvC7C,clDuC6C,CAAA,OAAA,CAAA;;AA5ChD;;AAEe,iBmDLC,qBAAA,CnDKD,KAAA,EmDJN,oBnDIM,CAAA,EmDHZ,cnDGY,CAAA,OAAA,CAAA;;AAFf;;AAEe,iBoDLC,sBAAA,CpDKD,KAAA,EoDJN,oBpDIM,CAAA,EoDHZ,cpDGY,CAAA,OAAA,CAAA;;;AAFf;AACc,cqDFD,uBrDEC,EqDFwB,crDExB,CAAA,OAAA,CAAA;;;AADd;AACc,csDND,oBtDMC,EsDNqB,ctDMrB,CAAA,OAAA,CAAA;;;AADd;AACc,cuDND,mBvDMC,EuDNoB,cvDMpB,CAAA,OAAA,CAAA"}

@@ -1,4 +0,4 @@

import { getInline, getSelectionStartPoint, getSelectionEndPoint, getFocusTextBlock, getSelectionText, comparePaths } from "../_chunks-es/selector.is-at-the-start-of-block.js";
import { getInline, getSelectionStartPoint, getSelectionEndPoint, getFocusTextBlock, getSelectionText } from "../_chunks-es/selector.is-at-the-start-of-block.js";
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";
import { getEnclosingBlock, isObject } from "../_chunks-es/get-path-sub-schema.js";
import { getEnclosingBlock, isObject, comparePoints } from "../_chunks-es/get-path-sub-schema.js";
import { isSpan, isTextBlock } from "@portabletext/schema";

@@ -140,8 +140,2 @@ import { spanSelectionPointToBlockOffset, getBlockEndPoint, getSelectionEndPoint as getSelectionEndPoint$1, getBlockStartPoint, getSelectionStartPoint as getSelectionStartPoint$1 } from "../_chunks-es/util.slice-blocks.js";

}, getValue = (snapshot) => snapshot.context.value;
function comparePoints(snapshot, pointA, pointB) {
const pathComparison = comparePaths(pointA.path, pointB.path, {
children: snapshot.context.value
});
return pathComparison !== 0 ? pathComparison : pointA.offset < pointB.offset ? -1 : pointA.offset > pointB.offset ? 1 : 0;
}
function isPointAfterSelection(point) {

@@ -148,0 +142,0 @@ return (snapshot) => {

@@ -1,1 +0,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/utils/util.compare-points.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 {EditorSnapshot} from '../editor/editor-snapshot'\nimport {comparePaths} from '../engine/path/compare-paths'\nimport type {EditorSelectionPoint} from '../types/editor'\n\n/**\n * Returns:\n *\n * - `-1` if `pointA` is before `pointB`\n * - `0` if `pointA` and `pointB` are equal\n * - `1` if `pointA` is after `pointB`.\n *\n * Compares the two points by document order, resolved at any depth. When\n * the paths are equal, compares offsets.\n */\nexport function comparePoints(\n snapshot: EditorSnapshot,\n pointA: EditorSelectionPoint,\n pointB: EditorSelectionPoint,\n): -1 | 0 | 1 {\n const pathComparison = comparePaths(pointA.path, pointB.path, {\n children: snapshot.context.value,\n })\n\n if (pathComparison !== 0) {\n return pathComparison\n }\n\n if (pointA.offset < pointB.offset) {\n return -1\n }\n\n if (pointA.offset > pointB.offset) {\n return 1\n }\n\n return 0\n}\n","import type {EditorSelector} from '../editor/editor-selector'\nimport type {EditorSelectionPoint} from '../types/editor'\nimport {comparePoints} from '../utils/util.compare-points'\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 type {EditorSelectionPoint} from '../types/editor'\nimport {comparePoints} from '../utils/util.compare-points'\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","comparePoints","pointA","pointB","pathComparison","comparePaths","offset","isPointAfterSelection","isPointBeforeSelection"],"mappings":"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"}
{"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,2 +0,2 @@

import { D as Path, a as Containers, n as TraversalSnapshot, r as Node } from "../_chunks-dts/resolve-containers.js";
import { Ft as Containers, Mt as TraversalSnapshot, Nt as Node, Qt as Path, ct as EditorSelection, lt as EditorSelectionPoint, rn as Path$1 } from "../_chunks-dts/behavior.types.action.js";
import { PortableTextBlock, PortableTextObject, PortableTextSpan, PortableTextTextBlock, Schema } from "@portabletext/schema";

@@ -232,2 +232,41 @@ /**

/**
* Returns:
*
* - `-1` if `pointA` is before `pointB`
* - `0` if `pointA` and `pointB` are equal
* - `1` if `pointA` is after `pointB`.
*
* Compares the two points by document order, resolved at any depth. When
* the paths are equal, compares offsets.
*
* @beta
*/
declare function comparePoints(snapshot: TraversalSnapshot, pointA: EditorSelectionPoint, pointB: EditorSelectionPoint): -1 | 0 | 1;
/**
* Returns true if `ancestor` is equal to `descendant`, or if `descendant`
* lives anywhere inside `ancestor`'s subtree.
*
* @beta
*/
declare function pathContains(ancestor: Path$1, descendant: Path$1): boolean;
/**
* Returns true if `range` and the supplied `target` intersect. The target
* may be a `Path`, an `EditorSelectionPoint`, or another
* `EditorSelection`.
*
* For a `Path` or `EditorSelectionPoint` target, "intersect" means the
* target lies at or between `range`'s start and end edges (inclusive).
*
* For an `EditorSelection` target, "intersect" means either endpoint of
* `target` lies inside `range`, or `range` strictly encloses `target`.
*
* Pass `snapshot.context.selection` as `range` to ask the question against
* the editor's current selection.
*
* Returns `false` when either `range` or `target` is `null`.
*
* @beta
*/
declare function rangeIntersects(snapshot: TraversalSnapshot, range: EditorSelection, target: Path$1 | EditorSelectionPoint | EditorSelection): boolean;
/**
* Get the span node at a given path.

@@ -311,3 +350,3 @@ *

declare function isObject(snapshot: TraversalSnapshot, node: unknown): node is PortableTextObject;
export { getAncestor, getAncestors, getBlock, getChildren, getEnclosingBlock, getFirstChild, getLastChild, getLeaf, getNode, getParent, getPathSubSchema, getSibling, getSpan, getText, getTextBlock, getUnionSchema, hasNode, isBlock, isInline, isLeafObject, isObject };
export { comparePoints, getAncestor, getAncestors, getBlock, getChildren, getEnclosingBlock, getFirstChild, getLastChild, getLeaf, getNode, getParent, getPathSubSchema, getSibling, getSpan, getText, getTextBlock, getUnionSchema, hasNode, isBlock, isInline, isLeafObject, isObject, pathContains, rangeIntersects };
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,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-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/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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"}
{"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-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,3 +0,3 @@

import { getAncestor, getFirstChild, getLeaf, getSpan, getText, getTextBlock, getUnionSchema, isLeafObject } from "../_chunks-es/get-first-child.js";
import { getAncestors, getBlock, getEnclosingBlock, getPathSubSchema, getSibling, hasNode, isBlock, isInline, isObject } from "../_chunks-es/get-path-sub-schema.js";
import { getAncestor, getFirstChild, getLeaf, getSpan, getText, getTextBlock, getUnionSchema, isLeafObject, pathContains, rangeIntersects } from "../_chunks-es/get-first-child.js";
import { comparePoints, getAncestors, getBlock, getEnclosingBlock, getPathSubSchema, getSibling, hasNode, isBlock, isInline, isObject } from "../_chunks-es/get-path-sub-schema.js";
import { getChildren } from "../_chunks-es/get-parent.js";

@@ -9,2 +9,3 @@ import { getNode, getParent } from "../_chunks-es/get-parent.js";

export {
comparePoints,
getAncestor,

@@ -30,4 +31,6 @@ getAncestors,

isLeafObject,
isObject
isObject,
pathContains,
rangeIntersects
};
//# sourceMappingURL=index.js.map

@@ -1,3 +0,2 @@

import { F as BlockOffset, Q as EditorContext, ct as EditorSelection, lt as EditorSelectionPoint } from "../_chunks-dts/behavior.types.action.js";
import { A as ChildPath, M as Path, j as KeyedSegment, k as BlockPath, n as TraversalSnapshot } from "../_chunks-dts/resolve-containers.js";
import { F as BlockOffset, Mt as TraversalSnapshot, Q as EditorContext, ct as EditorSelection, en as BlockPath, lt as EditorSelectionPoint, nn as KeyedSegment, rn as Path, tn as ChildPath } from "../_chunks-dts/behavior.types.action.js";
import * as _portabletext_schema9 from "@portabletext/schema";

@@ -4,0 +3,0 @@ import { PortableTextBlock, PortableTextTextBlock, isSpan, isTextBlock } from "@portabletext/schema";

@@ -1,1 +0,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":";;;;;AAYA;;AAEE,iBAFc,+BAAA,CAEd;EAAA,QAAA;EAAA,WAAA;EAAA;CAAA,EAAA;EACA,QAAA,EAEU,iBAFV;EAEU,WAAA,EACG,WADH;EACG,SAAA,EAAA,SAAA,GAAA,UAAA;CAac,CAAA,EAAA;EAAS,IAAA,EAAT,SAAS;EA8DtB,MAAA,EAAA,MAAA;CACd,GAAA,SAAA;;;;AAKE,iBANY,+BAAA,CAMZ;EAAA,QAAA;EAAA;AC3FJ,CD2FI,EAAA;EAAW,QAAA,EAFH,iBAEG;kBADG;AC1FlB,CAAA,CAAA,ED2FI,WC3FY,GAAA,SAAA;;;ADIhB;AACE,iBCLc,uBAAA,CDKd;EAAA,QAAA;EAAA,OAAA;EAAA;AAgFF,CAhFE,EAAA;EACA,QAAA,ECDU,iBDCV;EACA,OAAA,EAAA;IAEU,MAAA,ECHQ,WDGR;IACG,KAAA,ECJyB,WDIzB;EAac,CAAA;EAAS,QAAA,CAAA,EAAA,OAAA;AA8DtC,CAAA,CAAA,EC7EI,eD6EY;;;AAjFhB;AACE,iBEHc,gCAAA,CFGd;EAAA,QAAA;EAAA;CAAA,EAAA;EACA,QAAA,EEAU,iBFAV;EACA,cAAA,EEAgB,oBFAhB;CAEU,CAAA,EEDR,WFCQ,GAAA,SAAA;;AALZ;;AAEE,iBGNc,gBAAA,CHMd;EAAA,OAAA;EAAA;AA+EF,CA/EE,EAAA;EACA,OAAA,EGHS,IHGT,CGHc,aHGd,EAAA,QAAA,CAAA;EAEU,KAAA,EAAA;IACG,IAAA,EGJL,iBHIK;IAac,IAAA,EGhBnB,SHgBmB;EAAS,CAAA;AA8DtC,CAAA,CAAA,EG5EI,oBH4EY;;AAjFhB;;AAEE,iBINc,kBAAA,CJMd;EAAA,OAAA;EAAA;AA+EF,CA/EE,EAAA;EACA,OAAA,EIHS,IJGT,CIHc,aJGd,EAAA,QAAA,CAAA;EAEU,KAAA,EAAA;IACG,IAAA,EIJL,iBJIK;IAac,IAAA,EIhBnB,SJgBmB;EAAS,CAAA;AA8DtC,CAAA,CAAA,EI5EI,oBJ4EY;;;;iBKxFA,8CACW,YAAY,uDACP,+BAC5B,yBAAyB,YAAY,mBACjC,yCAEK,mBAAmB;;;;iBCNhB,gDACW,YAAY,uDACP,+BAC5B,yBAAyB,YAAY,mBACjC,yCAEK,mBAAmB;;;;iBCNhB,gBAAA,QAAwB;;;;APOxB,iBQLA,gBAAA,CRK+B,OAAA,EQJpC,IRIoC,CQJ/B,aRI+B,EAAA,QAAA,CAAA,EAAA,KAAA,EQHtC,iBRGsC,GAAA,OAAA,CAAA,EAAA,OAAA;;;;iBSN/B,YAAA,IAAgB,SAAS;;;;iBCAzB,sBAAA,IACX,yBACA;;;;iBCFW,iBAAA,IAAqB,oBAAoB;;;;iBCDzC,cAAA,+BAA6C;;;;iBCC7C,oBAAA,YAAgC;;;;AbMhC,iBcLA,eAAA,CdK+B;EAAA,OAAA;EAAA,WAAA;EAAA;CAAA,EAAA;EAC7C,OAAA,EcDS,IdCT,CcDc,adCd,EAAA,cAAA,GAAA,QAAA,CAAA;EACA,WAAA,EcDa,qBdCb;EACA,aAAA,EcDe,qBdCf;CAEU,CAAA,EcFX,qBdEW,CcH0B,qBAAA,CACrC,kBAAA,GAAA,qBAAA,CAAA,gBdEW,CAAA;;;;iBeZI,0CACW,YAAY,oCAC1B,mBAAmB;;;;AfKhB,iBgBEA,WAAA,ChBFA;EAA+B,OAAA;EAAA;CAAA,EAAA;EAC7C,OAAA,EgBKS,IhBLT,CgBKc,ahBLd,EAAA,QAAA,GAAA,WAAA,CAAA,GAAA;IACA,YAAA,CAAA,EAAA,GAAA,GAAA,MAAA;EACA,CAAA;EAEU,MAAA,EgBIF,KhBJE,CgBII,iBhBJJ,CAAA;CACG,CAAA,EgBIX,KhBJW,CgBIL,iBhBJK,CAAA"}
{"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":";;;AAYA;;;AAGE,iBAHc,+BAAA,CAGd;EAAA,QAAA;EAAA,WAAA;EAAA;CAAA,EAAA;EAEU,QAAA,EAAA,iBAAA;EACG,WAAA,EAAA,WAAA;EAac,SAAA,EAAA,SAAA,GAAA,UAAA;CAAS,CAAA,EAAA;EA8DtB,IAAA,EA9Da,SA8Db;EACd,MAAA,EAAA,MAAA;CACA,GAAA,SAAA;;;;AAIa,iBANC,+BAAA,CAMD;EAAA,QAAA;EAAA;CAAA,EAAA;YAFH;ECzFI,cAAA,ED0FE,oBC1FqB;CACrC,CAAA,ED0FE,WC1FF,GAAA,SAAA;;ADGF;;AAEE,iBCNc,uBAAA,CDMd;EAAA,QAAA;EAAA,OAAA;EAAA;CAAA,EAAA;EACA,QAAA,ECFU,iBDEV;EAEU,OAAA,EAAA;IACG,MAAA,ECJK,WDIL;IAac,KAAA,ECjBW,WDiBX;EAAS,CAAA;EA8DtB,QAAA,CAAA,EAAA,OAAA;CACd,CAAA,EC9EE,eD8EF;;AAlFF;;AAEE,iBEJc,gCAAA,CFId;EAAA,QAAA;EAAA;CAAA,EAAA;EACA,QAAA,EEDU,iBFCV;EAEU,cAAA,EEFM,oBFEN;CACG,CAAA,EEFX,WFEW,GAAA,SAAA;AANf;;;AAGE,iBGPc,gBAAA,CHOd;EAAA,OAAA;EAAA;CAAA,EAAA;EAEU,OAAA,EGLD,IHKC,CGLI,aHKJ,EAAA,QAAA,CAAA;EACG,KAAA,EAAA;IAac,IAAA,EGjBnB,iBHiBmB;IAAS,IAAA,EGhB5B,SHgB4B;EA8DtB,CAAA;CACd,CAAA,EG7EE,oBH6EF;AAlFF;;;AAGE,iBIPc,kBAAA,CJOd;EAAA,OAAA;EAAA;CAAA,EAAA;EAEU,OAAA,EILD,IJKC,CILI,aJKJ,EAAA,QAAA,CAAA;EACG,KAAA,EAAA;IAac,IAAA,EIjBnB,iBJiBmB;IAAS,IAAA,EIhB5B,SJgB4B;EA8DtB,CAAA;CACd,CAAA,EI7EE,oBJ6EF;;;;AAlFc,iBKPA,oBLO+B,CAAA,yBKNpB,WLMoB,CKNR,eLMQ,CAAA,GAAA,IAAA,EAAA,8BKLf,oBLKe,GAAA,IAAA,IKJ3C,gBLI2C,SKJlB,WLIkB,CKJN,eLIM,CAAA,GKHvC,oBLGuC,GAAA,IAAA,EAAA,CAAA,SAAA,EKDlC,gBLCkC,CAAA,EKDf,qBLCe;;;;AAA/B,iBMPA,sBNO+B,CAAA,yBMNpB,WNMoB,CMNR,eNMQ,CAAA,GAAA,IAAA,EAAA,8BMLf,oBNKe,GAAA,IAAA,IMJ3C,gBNI2C,SMJlB,WNIkB,CMJN,eNIM,CAAA,GMHvC,oBNGuC,GAAA,IAAA,EAAA,CAAA,SAAA,EMDlC,gBNCkC,CAAA,EMDf,qBNCe;;;;AAA/B,iBOPA,gBAAA,CPO+B,KAAA,EOPP,qBPOO,CAAA,EAAA,MAAA;;;AAA/C;AACE,iBQNc,gBAAA,CRMd,OAAA,EQLS,IRKT,CQLc,aRKd,EAAA,QAAA,CAAA,EAAA,KAAA,EQJO,iBRIP,GAAA,OAAA,CAAA,EAAA,OAAA;;;;AADc,iBSNA,YAAA,CTMA,CAA+B,ESNf,ITMe,EAAA,CAAA,ESNN,ITMM,CAAA,EAAA,OAAA;;;;AAA/B,iBUNA,sBAAA,CVM+B,CAAA,EUL1C,oBVK0C,EAAA,CAAA,EUJ1C,oBVI0C,CAAA,EAAA,OAAA;;;;AAA/B,iBWNA,iBAAA,CXM+B,CAAA,EWNV,eXMU,EAAA,CAAA,EWNU,eXMV,CAAA,EAAA,OAAA;;;;AAA/B,iBYPA,cAAA,CZO+B,OAAA,EAAA,OAAA,CAAA,EAAA,OAAA,IYPc,YZOd;;;;AAA/B,iBaNA,oBAAA,CbM+B,SAAA,EaNC,ebMD,CAAA,EAAA,OAAA;;;AAA/C;AACE,iBcNc,eAAA,CdMd;EAAA,OAAA;EAAA,WAAA;EAAA;CAAA,EAAA;EACA,OAAA,EcFS,IdET,CcFc,adEd,EAAA,cAAA,GAAA,QAAA,CAAA;EACA,WAAA,EcFa,qBdEb;EAEU,aAAA,EcHK,qBdGL;CACG,CAAA,EcHd,qBdGc,CcJuB,qBAAA,CACrC,kBAAA,GAAA,qBAAA,CAAA,gBdGc,CAAA;;;;AANC,iBePA,gBfO+B,CAAA,yBeNpB,WfMoB,CeNR,efMQ,CAAA,GAAA,IAAA,CAAA,CAAA,SAAA,EeLlC,gBfKkC,CAAA,EeLf,gBfKe;;;AAA/C;AACE,iBgBCc,WAAA,ChBDd;EAAA,OAAA;EAAA;CAAA,EAAA;EACA,OAAA,EgBIS,IhBJT,CgBIc,ahBJd,EAAA,QAAA,GAAA,WAAA,CAAA,GAAA;IACA,YAAA,CAAA,EAAA,GAAA,GAAA,MAAA;EAEU,CAAA;EACG,MAAA,EgBGL,KhBHK,CgBGC,iBhBHD,CAAA;CAac,CAAA,EgBTzB,KhBSyB,CgBTnB,iBhBSmB,CAAA"}
{
"name": "@portabletext/editor",
"version": "7.1.1",
"version": "7.2.0",
"description": "Portable Text Editor made in React",

@@ -50,6 +50,6 @@ "keywords": [

"scroll-into-view-if-needed": "^3.1.0",
"xstate": "^5.31.1",
"xstate": "^5.32.0",
"@portabletext/html": "^1.0.2",
"@portabletext/keyboard-shortcuts": "^2.1.2",
"@portabletext/markdown": "^1.3.2",
"@portabletext/markdown": "^1.4.0",
"@portabletext/patches": "^2.0.4",

@@ -62,3 +62,3 @@ "@portabletext/schema": "^2.2.0"

"@sanity/tsconfig": "^2.1.0",
"@textspec/notation": "^1.0.1",
"@textspec/notation": "^1.0.2",
"@types/debug": "^4.1.12",

@@ -69,5 +69,5 @@ "@types/node": "^20",

"@vitejs/plugin-react": "^5.2.0",
"@vitest/browser": "^4.1.7",
"@vitest/browser-playwright": "^4.1.7",
"@vitest/coverage-istanbul": "^4.1.7",
"@vitest/browser": "^4.1.8",
"@vitest/browser-playwright": "^4.1.8",
"@vitest/coverage-istanbul": "^4.1.8",
"babel-plugin-react-compiler": "^1.0.0",

@@ -83,3 +83,3 @@ "eslint": "^9.39.1",

"vite": "^7.3.1",
"vitest": "^4.1.7",
"vitest": "^4.1.8",
"vitest-browser-react": "^2.2.0",

@@ -86,0 +86,0 @@ "@portabletext/test": "^1.0.3",

import { FieldDefinition, OfDefinition, PortableTextObject, PortableTextSpan, PortableTextTextBlock, Schema } from "@portabletext/schema";
import { ReactElement } from "react";
/**
* A segment in a path that identifies an element by its `_key` property.
* @public
*/
interface KeyedSegment {
_key: string;
}
/**
* A tuple representing a range selection, e.g., `[0, 5]` or `['', 3]`.
* @public
*/
type IndexTuple = [number | '', number | ''];
/**
* A single segment in a path. Can be:
* - A string (property name)
* - A number (array index)
* - A KeyedSegment (object with `_key`)
* - An IndexTuple (range selection)
* @public
*/
type PathSegment$1 = string | number | KeyedSegment | IndexTuple;
/**
* A path is an array of path segments that describes a location in a document.
* @public
*/
type Path$1 = PathSegment$1[];
/**
* A path to a block in the value.
*
* @public
*/
type BlockPath = Path$1;
/**
* A path to an annotation markDef on a block.
*
* @public
*/
type AnnotationPath = Path$1;
/**
* A path to a child of a text block.
*
* @public
*/
type ChildPath = Path$1;
/**
* A path segment identifies a position in the document tree.
*
* - `KeyedSegment` (`{_key: string}`) identifies a node by its key
* - `string` identifies a child field name (e.g. 'children', 'rows', 'cells')
* - `number` identifies a position in an array (used for empty container inserts
* and rendering indexed paths)
* - `IndexTuple` (`[number | '', number | '']`) represents a range selection
*/
type PathSegment = KeyedSegment | string | number | IndexTuple;
/**
* A `Path` is a list of segments that describe a node's exact position in
* the document tree. Segments alternate between keyed node references and
* field names: `[{_key: 'b1'}, 'children', {_key: 's1'}]`.
*/
type Path = PathSegment[];
/**
* @alpha
*
* Narrow the container node type by the registered `_type`. Containers
* always render portable text objects: `'span'` is always a leaf and
* `'block'` is always a text block; both are excluded.
*/
type ContainerNodeForType<TType extends string> = TType extends 'span' | 'block' ? never : PortableTextObject;
/**
* @alpha
*
* A container's render function receives a node and renders an element
* that wraps its editable children. The render is positional: it fires for
* nodes of `type` whose parent permits this container at `arrayField`.
*
* `node` is `PortableTextObject` because containers cannot register the
* built-in `'span'` or `'block'` types (those are leaves and text blocks
* respectively).
*/
type ContainerRenderProps = {
attributes: Record<string, unknown>;
children: ReactElement;
focused: boolean;
node: PortableTextObject;
path: Path;
readOnly: boolean;
selected: boolean;
/**
* Render this position with the engine's default wrapper. Call from
* inside a custom render to fall back to or wrap the default:
*
* ```ts
* render: ({renderDefault, ...rest}) => renderDefault(rest)
* ```
*
* The default is the engine's minimal wrapper. It does not chain
* back to a globally-registered render: PTE has one user layer plus
* positional overrides, and the engine default is the canonical
* fallback at any position.
*/
renderDefault: (props: ContainerRenderProps) => ReactElement;
};
type ContainerRender = (props: ContainerRenderProps) => ReactElement;
/**
* @alpha
*
* A span's render function. Receives a portable text span node and
* wraps it. `children` carries the styled text already decorated by
* `renderDecorator`/`renderAnnotation`/range decorations.
*/
type SpanRenderProps = {
attributes: Record<string, unknown>;
children: ReactElement;
focused: boolean;
node: PortableTextSpan;
path: Path;
readOnly: boolean;
selected: boolean;
/**
* Render this position with the engine's default wrapper.
* See {@link ContainerRenderProps.renderDefault}.
*/
renderDefault: (props: SpanRenderProps) => ReactElement;
};
type SpanRender = (props: SpanRenderProps) => ReactElement;
/**
* @alpha
*
* A block object's render function. Receives a non-editable block-level
* portable text object. `children` carries an engine-emitted void
* spacer that the browser uses to anchor the caret next to the
* element. Dropping `children` makes the caret unable to land on the
* element.
*/
type BlockObjectRenderProps = {
attributes: Record<string, unknown>;
children: ReactElement;
focused: boolean;
node: PortableTextObject;
path: Path;
readOnly: boolean;
selected: boolean;
/**
* Render this position with the engine's default wrapper.
* See {@link ContainerRenderProps.renderDefault}.
*/
renderDefault: (props: BlockObjectRenderProps) => ReactElement;
};
type BlockObjectRender = (props: BlockObjectRenderProps) => ReactElement;
/**
* @alpha
*
* An inline object's render function. Receives a non-editable inline
* portable text object. `children` carries an engine-emitted void
* spacer that the browser uses to anchor the caret next to the
* element. Dropping `children` makes the caret unable to land on the
* element.
*/
type InlineObjectRenderProps = {
attributes: Record<string, unknown>;
children: ReactElement;
focused: boolean;
node: PortableTextObject;
path: Path;
readOnly: boolean;
selected: boolean;
/**
* Render this position with the engine's default wrapper.
* See {@link ContainerRenderProps.renderDefault}.
*/
renderDefault: (props: InlineObjectRenderProps) => ReactElement;
};
type InlineObjectRender = (props: InlineObjectRenderProps) => ReactElement;
/**
* @alpha
*
* A container registration. Identifies a block object `_type` whose value
* holds editable children in `arrayField`. The optional `of` array carries
* nested registrations that override how immediate children of this
* container render at this lexical scope.
*
* `of` overrides apply ONE level down only. Children at deeper levels fall
* through to global registrations.
*
* The `kind` field is injected by `defineContainer` and discriminates
* containers from other registration kinds at runtime.
*/
type Container = {
kind: 'container';
type: string;
arrayField: string;
/**
* Outer render. Two modes:
* - omitted: fall through to global registered render (or engine default)
* - function: use this render. The function receives a `renderDefault`
* prop that returns the engine default when called.
*/
render?: ContainerRender;
/**
* Block-level positional overrides. Inline-content kinds (`Span`,
* `InlineObject`) belong in `TextBlock.of`, not here.
*/
of?: ReadonlyArray<Container | TextBlock | BlockObject>;
};
/**
* @alpha
*
* A text block registration. The text block `_type` is `'block'` at the
* top level. Positional overrides nested in a container's `of` array can
* register a different `_type` to render at that lexical scope.
*
* `defineTextBlock` opts the text block into the new render pipeline.
* The consumer's `render` callback owns the outer wrapper entirely:
* the engine emits `data-pt-*` attributes only - no `pt-*` CSS classes,
* no legacy `data-block-*` attributes - and the block-level
* `renderStyle`/`renderListItem`/`renderBlock` props on
* `<PortableTextEditable>` do not compose under this registration.
*
* Span-level render props - `renderDecorator`, `renderAnnotation`,
* `renderPlaceholder`, and range decorations - keep working. They fire
* on the spans inside `children` regardless of which text block outer
* wrapper renders them.
*/
type TextBlock = {
kind: 'textBlock';
type: string;
/**
* Outer render. Two modes:
* - omitted: fall through to global registered render (or engine default)
* - function: use this render. The function receives a `renderDefault`
* prop that returns the engine default when called.
*/
render?: TextBlockRender;
/**
* Inline-content positional overrides. A `Span` or `InlineObject`
* placed here scopes the inline render to this text block (or any
* text block of this `type` if registered at the top level).
*/
of?: ReadonlyArray<Span | InlineObject>;
};
/**
* @alpha
*
* Text block render function. `children` carries the rendered spans -
* `renderDecorator`, `renderAnnotation`, `renderPlaceholder`, and range
* decorations have already fired at the leaf level. The render's job
* is the outer wrapper element and any block-level composition (style,
* list-item) the consumer wants.
*/
type TextBlockRenderProps = {
attributes: Record<string, unknown>;
children: ReactElement;
focused: boolean;
node: PortableTextTextBlock;
path: Path;
readOnly: boolean;
selected: boolean;
/**
* Render this position with the engine's default wrapper.
* See {@link ContainerRenderProps.renderDefault}.
*/
renderDefault: (props: TextBlockRenderProps) => ReactElement;
};
type TextBlockRender = (props: TextBlockRenderProps) => ReactElement;
/**
* @alpha
*
* A span registration. The span `_type` is `'span'` at the top level.
* Positional overrides nested in a container's `of` array can register
* a different `_type` for a span-like inline at that lexical scope
* (e.g. a `code-span` inside a `code-block`).
*/
type Span = {
kind: 'span';
type: string;
/**
* Outer render. Two modes:
* - omitted: fall through to global registered render (or engine default)
* - function: use this render. The function receives a `renderDefault`
* prop that returns the engine default when called.
*/
render?: SpanRender;
};
/**
* @alpha
*
* A non-editable block-level object registration. Identifies a `_type`
* whose value renders as a block-level void node (image, embed, etc.).
*/
type BlockObject = {
kind: 'blockObject';
type: string;
/**
* Outer render. Two modes:
* - omitted: fall through to global registered render (or engine default)
* - function: use this render. The function receives a `renderDefault`
* prop that returns the engine default when called.
*/
render?: BlockObjectRender;
};
/**
* @alpha
*
* A non-editable inline object registration. Identifies a `_type` whose
* value renders as an inline void node (mention, inline image, etc.).
*/
type InlineObject = {
kind: 'inlineObject';
type: string;
/**
* Outer render. Two modes:
* - omitted: fall through to global registered render (or engine default)
* - function: use this render. The function receives a `renderDefault`
* prop that returns the engine default when called.
*/
render?: InlineObjectRender;
};
/**
* @alpha
*
* The discriminated union of every registration accepted by
* `editor.registerNode` and the `<NodePlugin>` component.
*/
type RegistrableNode = Container | TextBlock | Span | BlockObject | InlineObject;
/**
* @alpha
*
* Define a container renderer. The returned registration is mounted via
* the `<NodePlugin>` component at the top level, or nested inside
* another container's `of` array as a positional override.
*
* `type` cannot be `'span'` (use {@link defineSpan}) nor `'block'` (use
* {@link defineTextBlock}). The text block is not a container.
*
* The `node` argument of `render` narrows to a portable text object.
*
* @example
* ```ts
* defineContainer({
* type: 'table',
* arrayField: 'rows',
* render: ({children}) => (
* <table>{children}</table>
* ),
* of: [
* defineContainer({
* type: 'row',
* arrayField: 'cells',
* render: ({children}) => (
* <tr>{children}</tr>
* ),
* }),
* ],
* })
* ```
*/
declare function defineContainer<const TType extends string>(config: {
type: TType extends 'span' ? "Error: defineContainer({type: 'span'}) is forbidden -- 'span' is always a span, use defineSpan" : TType extends 'block' ? "Error: defineContainer({type: 'block'}) is forbidden -- 'block' is always a text block, use defineTextBlock" : TType;
arrayField: string;
render?: (props: {
attributes: Record<string, unknown>;
children: ReactElement;
focused: boolean;
node: ContainerNodeForType<TType>;
path: Path;
readOnly: boolean;
selected: boolean;
renderDefault: (props: ContainerRenderProps) => ReactElement;
}) => ReactElement;
of?: ReadonlyArray<Container | TextBlock | BlockObject>;
}): Container;
/**
* @alpha
*
* Define a span renderer. The returned registration is mounted via the
* `<NodePlugin>` component at the top level, or nested inside a
* container's `of` array as a positional override.
*
* `type` is required even though there is only one top-level span type
* (`'span'`) today. Keeping `type` required leaves the door open for
* positional overrides of span-like inlines (e.g. a `code-span` inside
* a `code-block` container).
*
* @example
* ```ts
* defineSpan({
* type: 'span',
* render: ({attributes, children}) => (
* <span {...attributes}>{children}</span>
* ),
* })
* ```
*/
declare function defineSpan<const TType extends string>(config: {
type: TType extends 'block' ? "Error: defineSpan({type: 'block'}) is forbidden -- 'block' is always a text block, use defineTextBlock" : TType;
render?: SpanRender;
}): Span;
/**
* @alpha
*
* Define a non-editable block-level object renderer for a `_type`
* declared in the schema's `blockObjects` array.
*
* The render must always render `children` somewhere inside the outer
* element. `children` carries an engine-emitted void spacer the browser
* uses to anchor the caret next to the element. Dropping `children`
* makes the caret unable to land on the element.
*
* @example
* ```ts
* defineBlockObject({
* type: 'image',
* render: ({attributes, children, node}) => (
* <div {...attributes}>
* {children}
* <img src={(node as {src?: string}).src} />
* </div>
* ),
* })
* ```
*/
declare function defineBlockObject<const TType extends string>(config: {
type: TType extends 'block' ? "Error: defineBlockObject({type: 'block'}) is forbidden -- 'block' is always a text block, use defineTextBlock" : TType extends 'span' ? "Error: defineBlockObject({type: 'span'}) is forbidden -- 'span' is always a span, use defineSpan" : TType;
render?: BlockObjectRender;
}): BlockObject;
/**
* @alpha
*
* Define a non-editable inline object renderer for a `_type` declared
* in the schema's `inlineObjects` array.
*
* The render must always render `children` somewhere inside the outer
* element. `children` carries an engine-emitted void spacer the browser
* uses to anchor the caret next to the element. Dropping `children`
* makes the caret unable to land on the element.
*
* @example
* ```ts
* defineInlineObject({
* type: 'mention',
* render: ({attributes, children, node}) => (
* <span {...attributes}>
* {children}
* @{(node as {username?: string}).username}
* </span>
* ),
* })
* ```
*/
declare function defineInlineObject<const TType extends string>(config: {
type: TType extends 'block' ? "Error: defineInlineObject({type: 'block'}) is forbidden -- 'block' is always a text block, use defineTextBlock" : TType extends 'span' ? "Error: defineInlineObject({type: 'span'}) is forbidden -- 'span' is always a span, use defineSpan" : TType;
render?: InlineObjectRender;
}): InlineObject;
/**
* @alpha
*
* Define a text block renderer. The returned registration is mounted
* via the `<NodePlugin>` component, or nested inside a container's
* `of` array as a positional override.
*
* `type` is required even though the top-level text block type is
* always `'block'`. Keeping `type` required leaves the door open for
* positional overrides of text-block-like elements (e.g. a `code-line`
* inside a `code-block` container).
*
* @example
* ```ts
* defineTextBlock({
* type: 'block',
* render: ({attributes, children}) => (
* <p {...attributes}>{children}</p>
* ),
* })
* ```
*/
declare function defineTextBlock<const TType extends string>(config: {
type: TType extends 'span' ? "Error: defineTextBlock({type: 'span'}) is forbidden -- 'span' is always a span, use defineSpan" : TType;
render?: TextBlockRender;
of?: ReadonlyArray<Span | InlineObject>;
}): TextBlock;
/**
* @internal
*
* Resolved span config.
*/
type SpanConfig = {
span: Span;
};
/**
* @internal
*
* Resolved block-object config.
*/
type BlockObjectConfig = {
blockObject: BlockObject;
};
/**
* @internal
*
* Resolved inline-object config.
*/
type InlineObjectConfig = {
inlineObject: InlineObject;
};
/**
* @internal
*
* Resolved container config carrying the pre-resolved `field` for the
* activation position. Dispatch reads pre-resolved data without
* re-walking the schema.
*/
type ContainerConfig = {
container: Container;
field: ChildArrayField;
of?: ReadonlyArray<ContainerConfig | BlockObjectConfig | TextBlockConfig>;
};
/**
* @internal
*
* Resolved text block config. The optional `of` carries resolved
* inline-content positional overrides (spans, inline-objects) for
* children rendered inside this text block.
*/
type TextBlockConfig = {
textBlock: TextBlock;
of?: ReadonlyArray<SpanConfig | InlineObjectConfig>;
};
type ChildArrayField = FieldDefinition & {
type: 'array';
of: ReadonlyArray<OfDefinition>;
};
/**
* Public view of a registered editable container, surfaced on
* {@link EditorContext.containers}.
*
* Two array properties named `of` live on the same entry with
* different semantics:
*
* - `field.of` is the SCHEMA-DECLARED list of types this container's
* child field accepts (from `@portabletext/schema`'s
* `OfDefinition`). Tells you what the schema permits as children.
* - `of` (top-level on `RegisteredContainer`) is the list of
* POSITIONAL CHILD REGISTRATIONS - nested
* {@link RegisteredContainer} or {@link RegisteredPositional}
* entries - that override the global registration when the engine
* descends into this parent. Tells you which child renderings are
* scoped to this parent.
*
* The full container registration (including the render callback)
* lives on the editor's internal {@link ResolvedContainers} map and
* is not exposed on the public context.
*
* Two top-level entries with the same `_type` cannot coexist - the
* register handler warns on duplicates. But the SAME `_type`
* registered in two different parents' `of` arrays is supported as
* a feature; `resolveContainerAt` walks the positional tree using
* the path to return the entry that applies at a given position.
*
* @alpha
*/
type RegisteredContainer = {
kind: 'container';
type: string;
field: ChildArrayField;
of?: ReadonlyArray<RegisteredContainer | RegisteredPositional>;
};
/**
* Public view of a registered span, surfaced inside a containing
* {@link RegisteredContainer}'s `of` array as a positional
* registration. The render function is engine-internal.
*
* @alpha
*/
type RegisteredSpan = {
kind: 'span';
type: string;
};
/**
* Public view of a registered block object, surfaced inside a
* containing {@link RegisteredContainer}'s `of` array as a positional
* registration. The render function is engine-internal.
*
* @alpha
*/
type RegisteredBlockObject = {
kind: 'blockObject';
type: string;
};
/**
* Public view of a registered inline object, surfaced inside a
* containing {@link RegisteredContainer}'s `of` array as a positional
* registration. The render function is engine-internal.
*
* @alpha
*/
type RegisteredInlineObject = {
kind: 'inlineObject';
type: string;
};
/**
* Union of non-container positional registrations that may appear in
* a {@link RegisteredContainer}'s `of` array. Text-block registrations
* are NOT included here; they surface on `EditorContext.textBlocks`,
* not on the containers tree.
*
* @alpha
*/
type RegisteredPositional = RegisteredSpan | RegisteredBlockObject | RegisteredInlineObject;
/**
* Map of registered editable containers carried on `EditorContext`.
*
* Keyed by bare block-object `_type` (e.g. `'callout'`, `'table'`).
* Each entry is a rich {@link RegisteredContainer} carrying its
* `field` plus any positional `of` registrations.
*
* The map preserves positional structure: a `_type` declared inside
* a parent's `of` array surfaces as a nested entry on that parent's
* `of`, NOT as a separate top-level entry. Path-driven resolution
* (see `resolveContainerAt`) reaches positional entries by walking
* the tree.
*
* Top-level entries are global fallbacks: when path-driven descent
* does not find a positional override, the resolver falls back to the
* top-level entry for the type if one is registered.
*
* @alpha
*/
type Containers = ReadonlyMap<string, RegisteredContainer>;
/**
* Engine-internal map carrying the fully-resolved container
* configurations - including render functions and positional `of`
* overrides. Lives on `editor.containers` and is consulted by render
* dispatch and engine-internal helpers.
*
* Not exposed on {@link EditorContext}.
*/
type ResolvedContainers = Map<string, ContainerConfig>;
/**
* @public
*/
type EditorSchema = Schema;
type Node = PortableTextTextBlock | PortableTextObject | PortableTextSpan;
/**
* Snapshot-shaped input for traversal utilities.
*
* Mirrors the shape of `EditorSnapshot`: ambient state lives under
* `context`, the `blockIndexMap` perf cache sits as a sibling.
*/
type TraversalSnapshot = {
context: {
schema: EditorSchema;
containers: Containers;
value: Array<Node>;
};
blockIndexMap: Map<string, number>;
};
/**
* Walk the editor value following `path` and return the
* {@link RegisteredContainer} or {@link RegisteredPositional} that applies
* at `path`'s target position.
*
* Resolution rules at each step:
*
* 1. **Positional override.** If the current parent declares the
* child's `_type` in its `of`, the positional entry wins.
* Used to resolve same-`_type` registered under different
* parents with different `field` values.
*
* 2. **Global fallback.** If the parent has no positional override,
* fall back to the top-level entry for `_type` in
* `containers`.
*
* 3. **Chain validity.** If any ancestor along the path has no
* resolved container entry (unregistered or not reachable as a
* container at its position), return `undefined`.
*
* Returns `undefined` when the target's `_type` is not registered
* at this position. Returns a {@link RegisteredPositional} when the target
* resolves to a leaf in a positional `of` (terminal node with no
* editable children).
*
* @alpha
*/
declare function resolveContainerAt(containers: Containers, value: ReadonlyArray<Node>, path: Path): RegisteredContainer | RegisteredPositional | undefined;
export { ChildPath as A, defineContainer as C, Path as D, defineTextBlock as E, Path$1 as M, AnnotationPath as O, defineBlockObject as S, defineSpan as T, RegistrableNode as _, Containers as a, TextBlock as b, RegisteredInlineObject as c, ResolvedContainers as d, BlockObject as f, InlineObjectConfig as g, InlineObject as h, EditorSchema as i, KeyedSegment as j, BlockPath as k, RegisteredPositional as l, Container as m, TraversalSnapshot as n, RegisteredBlockObject as o, BlockObjectConfig as p, Node as r, RegisteredContainer as s, resolveContainerAt as t, RegisteredSpan as u, Span as v, defineInlineObject as w, TextBlockConfig as x, SpanConfig as y };
//# sourceMappingURL=resolve-containers.d.ts.map
{"version":3,"file":"resolve-containers.d.ts","names":[],"sources":["../../src/types/paths.ts","../../src/engine/interfaces/path.ts","../../src/renderers/renderer.types.ts","../../src/schema/container-types.ts","../../src/editor/editor-schema.ts","../../src/engine/interfaces/node.ts","../../src/traversal/traversal-snapshot.ts","../../src/schema/resolve-container-at.ts"],"sourcesContent":[],"mappings":"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"}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display