{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "api-slate-path-docs",
  "title": "Path",
  "description": "API reference for paths in Plate.",
  "files": [
    {
      "path": "../../content/docs/api/slate/path.mdx",
      "content": "---\ntitle: Path\ndescription: API reference for paths in Plate.\n---\n\nA Path is a list of indexes that describe a node's exact position in a Plate node tree. Although they are usually relative to the root `Editor` object, they can be relative to any `Node` object.\n\n```ts\ntype Path = number[];\n```\n\n## `PathApi`\n\n### `operationCanTransformPath`\n\nCheck if an operation can affect paths (used as an optimization for dirty-path updates during normalization).\n\n<API name=\"operationCanTransformPath\">\n<APIParameters>\n  <APIItem name=\"operation\" type=\"Operation<N>\">\n    The operation to check.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if the operation is an insert, merge, move, remove, or split operation.\n</APIReturns>\n</API>\n\n### `transform`\n\nTransform a path by an operation.\n\n<API name=\"transform\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The path to transform.\n  </APIItem>\n  <APIItem name=\"operation\" type=\"Operation\">\n    The operation to apply.\n  </APIItem>\n  <APIItem name=\"options\" type=\"PathTransformOptions\" optional>\n    Options for transforming a path.\n  </APIItem>\n</APIParameters>\n\n<APIOptions type=\"PathTransformOptions\">\n  <APIItem name=\"affinity\" type=\"TextDirection | null\" optional>\n    The affinity of the transform.\n  </APIItem>\n</APIOptions>\n\n<APIReturns type=\"Path | null\">\n  The transformed path, or `null` if the path was deleted.\n</APIReturns>\n</API>\n\n### `ancestors`\n\nGet a list of ancestor paths for a given path.\n\n<API name=\"ancestors\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The path to get ancestors for.\n  </APIItem>\n  <APIItem name=\"options\" type=\"PathAncestorsOptions\" optional>\n    Options for ancestor retrieval.\n  </APIItem>\n</APIParameters>\n\n<APIOptions type=\"PathAncestorsOptions\">\n  <APIItem name=\"reverse\" type=\"boolean\" optional>\n    If true, returns paths in reverse (deepest to shallowest).\n  </APIItem>\n</APIOptions>\n\n<APIReturns type=\"Path[]\">\n  An array of paths sorted from shallowest to deepest ancestor (unless reversed).\n</APIReturns>\n</API>\n\n### `child`\n\nGet a path to a child at the given index.\n\n<API name=\"child\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The parent path.\n  </APIItem>\n  <APIItem name=\"index\" type=\"number\">\n    The child index.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"Path\">\n  The path to the child node.\n</APIReturns>\n</API>\n\n### `common`\n\nGet the common ancestor path of two paths.\n\n<API name=\"common\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The first path.\n  </APIItem>\n  <APIItem name=\"another\" type=\"Path\">\n    The second path.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"Path\">\n  The common ancestor path.\n</APIReturns>\n</API>\n\n### `compare`\n\nCompare a path to another, returning an integer indicating whether the path was before, at, or after the other.\n\n<API name=\"compare\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The first path to compare.\n  </APIItem>\n  <APIItem name=\"another\" type=\"Path\">\n    The second path to compare.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"-1 | 0 | 1\">\n  `-1` if before, `0` if at the same location, `1` if after.\n</APIReturns>\n</API>\n\n### `endsAfter`\n\nCheck if a path ends after one of the indexes in another.\n\n<API name=\"endsAfter\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The path to check.\n  </APIItem>\n  <APIItem name=\"another\" type=\"Path\">\n    The path to compare against.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if `path` ends after `another`.\n</APIReturns>\n</API>\n\n### `endsAt`\n\nCheck if a path ends at one of the indexes in another.\n\n<API name=\"endsAt\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The path to check.\n  </APIItem>\n  <APIItem name=\"another\" type=\"Path\">\n    The path to compare against.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if `path` ends at the same index as `another`.\n</APIReturns>\n</API>\n\n### `endsBefore`\n\nCheck if a path ends before one of the indexes in another.\n\n<API name=\"endsBefore\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The path to check.\n  </APIItem>\n  <APIItem name=\"another\" type=\"Path\">\n    The path to compare against.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if `path` ends before `another`.\n</APIReturns>\n</API>\n\n### `equals`\n\nCheck if a path is exactly equal to another.\n\n<API name=\"equals\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The first path.\n  </APIItem>\n  <APIItem name=\"another\" type=\"Path\">\n    The second path.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if the paths are exactly equal.\n</APIReturns>\n</API>\n\n### `firstChild`\n\nGet a path to the first child of a path.\n\n<API name=\"firstChild\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The parent path.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"Path\">\n  The path to the first child node.\n</APIReturns>\n</API>\n\n### `hasPrevious`\n\nCheck if the path of a previous sibling node exists.\n\n<API name=\"hasPrevious\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The path to check.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if a previous sibling exists.\n</APIReturns>\n</API>\n\n### `isAfter`\n\nCheck if a path is after another.\n\n<API name=\"isAfter\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The path to check.\n  </APIItem>\n  <APIItem name=\"another\" type=\"Path\">\n    The path to compare against.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if the first path is after the second.\n</APIReturns>\n</API>\n\n### `isAncestor`\n\nCheck if a path is an ancestor of another.\n\n<API name=\"isAncestor\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The potential ancestor path.\n  </APIItem>\n  <APIItem name=\"another\" type=\"Path\">\n    The potential descendant path.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if `path` is an ancestor of `another`.\n</APIReturns>\n</API>\n\n### `isBefore`\n\nCheck if a path is before another.\n\n<API name=\"isBefore\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The path to check.\n  </APIItem>\n  <APIItem name=\"another\" type=\"Path\">\n    The path to compare against.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if the first path is before the second.\n</APIReturns>\n</API>\n\n### `isChild`\n\nCheck if a path is a child of another.\n\n<API name=\"isChild\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The potential child path.\n  </APIItem>\n  <APIItem name=\"another\" type=\"Path\">\n    The potential parent path.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if `path` is a child of `another`.\n</APIReturns>\n</API>\n\n### `isCommon`\n\nCheck if a path is equal to or an ancestor of another.\n\n<API name=\"isCommon\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The path to check.\n  </APIItem>\n  <APIItem name=\"another\" type=\"Path\">\n    The path to compare against.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if `path` is equal to or an ancestor of `another`.\n</APIReturns>\n</API>\n\n### `isDescendant`\n\nCheck if a path is a descendant of another.\n\n<API name=\"isDescendant\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The potential descendant path.\n  </APIItem>\n  <APIItem name=\"another\" type=\"Path\">\n    The potential ancestor path.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if `path` is a descendant of `another`.\n</APIReturns>\n</API>\n\n### `isParent`\n\nCheck if a path is the parent of another.\n\n<API name=\"isParent\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The potential parent path.\n  </APIItem>\n  <APIItem name=\"another\" type=\"Path\">\n    The potential child path.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if `path` is the parent of `another`.\n</APIReturns>\n</API>\n\n### `isPath`\n\nCheck if a value implements the `Path` interface.\n\n<API name=\"isPath\">\n<APIParameters>\n  <APIItem name=\"value\" type=\"any\">\n    The value to check.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if the value is a path.\n</APIReturns>\n</API>\n\n### `isSibling`\n\nCheck if a path is a sibling of another.\n\n<API name=\"isSibling\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The path to check.\n  </APIItem>\n  <APIItem name=\"another\" type=\"Path\">\n    The path to compare against.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if the paths share the same parent.\n</APIReturns>\n</API>\n\n### `lastIndex`\n\nGet the last index of a path.\n\n<API name=\"lastIndex\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The path to check.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"number\">\n  The last index, or -1 if the path is empty.\n</APIReturns>\n</API>\n\n### `levels`\n\nGet a list of paths at every level down to a path.\n\n<API name=\"levels\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The path to get levels for.\n  </APIItem>\n  <APIItem name=\"options\" type=\"PathLevelsOptions\" optional>\n    Options for levels retrieval.\n  </APIItem>\n</APIParameters>\n\n<APIOptions type=\"PathLevelsOptions\">\n  <APIItem name=\"reverse\" type=\"boolean\" optional>\n    If true, returns paths in reverse (deepest to shallowest).\n  </APIItem>\n</APIOptions>\n\n<APIReturns type=\"Path[]\">\n  An array of paths including the path itself and all its ancestors.\n</APIReturns>\n</API>\n\n### `next`\n\nGet the path to the next sibling node.\n\n<API name=\"next\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The current path.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"Path\">\n  The path to the next sibling.\n</APIReturns>\n</API>\n\n### `parent`\n\nGet the path to the parent node.\n\n<API name=\"parent\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The current path.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"Path\">\n  The path to the parent node.\n</APIReturns>\n</API>\n\n### `previous`\n\nGet the path to the previous sibling node.\n\n<API name=\"previous\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The current path.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"Path | undefined\">\n  The path to the previous sibling, or `undefined` if there is none.\n</APIReturns>\n</API>\n\n### `relative`\n\nGet a path relative to an ancestor.\n\n<API name=\"relative\">\n<APIParameters>\n  <APIItem name=\"path\" type=\"Path\">\n    The path to make relative.\n  </APIItem>\n  <APIItem name=\"ancestor\" type=\"Path\">\n    The ancestor path.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"Path\">\n  The relative path.\n</APIReturns>\n</API>\n\n## Types\n\n### `Path`\n\nAn array of numbers representing the indexes to traverse to reach a specific node in the document tree.",
      "type": "registry:file",
      "target": "content/docs/plate/api/slate/path.mdx"
    }
  ],
  "type": "registry:file"
}