{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "api-slate-range-docs",
  "title": "Range",
  "description": "API reference for ranges in Plate.",
  "files": [
    {
      "path": "../../content/docs/api/slate/range.mdx",
      "content": "---\ntitle: Range\ndescription: API reference for ranges in Plate.\n---\n\nA Range is a set of points that refer to a specific span of a Plate document. They can define a span inside a single node or span across multiple nodes. A range consists of two points: an anchor (start) and a focus (end).\n\n```typescript\ntype TRange = {\n  anchor: Point\n  focus: Point\n}\n```\n\n- [Point](/docs/api/slate/point)\n\n## `RangeAPI`\n\n### `transform`\n\nTransform a range by an operation.\n\n<API name=\"transform\">\n<APIParameters>\n  <APIItem name=\"range\" type=\"TRange\">\n    The range to transform.\n  </APIItem>\n  <APIItem name=\"op\" type=\"Operation\">\n    The operation to apply to the range.\n  </APIItem>\n  <APIItem name=\"options\" type=\"RangeTransformOptions\" optional>\n    Options for transforming the range.\n  </APIItem>\n</APIParameters>\n\n<APIOptions type=\"RangeTransformOptions\">\n  <APIItem name=\"affinity\" type=\"RangeDirection | null\" optional>\n    The direction to prefer when transforming the range.\n  </APIItem>\n</APIOptions>\n\n<APIReturns type=\"TRange | null\">\n  The transformed range, or `null` if the range was deleted.\n</APIReturns>\n</API>\n\n### `edges`\n\nGet the start and end points of a range.\n\n<API name=\"edges\">\n<APIParameters>\n  <APIItem name=\"range\" type=\"TRange\">\n    The range to get edges from.\n  </APIItem>\n  <APIItem name=\"options\" type=\"RangeEdgesOptions\" optional>\n    Options for retrieving edges.\n  </APIItem>\n</APIParameters>\n\n<APIOptions type=\"RangeEdgesOptions\">\n  <APIItem name=\"reverse\" type=\"boolean\" optional>\n    If true, returns points in reverse order.\n  </APIItem>\n</APIOptions>\n\n<APIReturns type=\"[Point, Point]\">\n  A tuple of points representing the start and end points.\n</APIReturns>\n</API>\n\n### `end`\n\nGet the end point of a range.\n\n<API name=\"end\">\n<APIParameters>\n  <APIItem name=\"range\" type=\"TRange\">\n    The range to get the end point from.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"Point\">\n  The end point of the range.\n</APIReturns>\n</API>\n\n### `equals`\n\nCheck if two ranges are exactly equal.\n\n<API name=\"equals\">\n<APIParameters>\n  <APIItem name=\"range\" type=\"TRange\">\n    The first range to compare.\n  </APIItem>\n  <APIItem name=\"another\" type=\"TRange\">\n    The second range to compare.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if the ranges are exactly equal.\n</APIReturns>\n</API>\n\n### `includes`\n\nCheck if a range includes a path, point, or part of another range.\n\n<API name=\"includes\">\n<APIParameters>\n  <APIItem name=\"range\" type=\"TRange\">\n    The range to check.\n  </APIItem>\n  <APIItem name=\"target\" type=\"Path | Point | TRange\">\n    The target to check for inclusion.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if the range includes the target.\n</APIReturns>\n</API>\n\n### `intersection`\n\nGet the intersection of two ranges.\n\n<API name=\"intersection\">\n<APIParameters>\n  <APIItem name=\"range\" type=\"TRange\">\n    The first range.\n  </APIItem>\n  <APIItem name=\"another\" type=\"TRange\">\n    The second range.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"TRange | null\">\n  The intersecting range, or `null` if there is no intersection.\n</APIReturns>\n</API>\n\n### `isBackward`\n\nCheck if a range is backward (anchor point appears after focus point).\n\n<API name=\"isBackward\">\n<APIParameters>\n  <APIItem name=\"range\" type=\"TRange\">\n    The range to check.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if the range is backward.\n</APIReturns>\n</API>\n\n### `isCollapsed`\n\nCheck if a range is collapsed (both points refer to the same position).\n\n<API name=\"isCollapsed\">\n<APIParameters>\n  <APIItem name=\"range\" type=\"TRange | null\" optional>\n    The range to check.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if the range exists and is collapsed.\n</APIReturns>\n</API>\n\n### `isExpanded`\n\nCheck if a range is expanded (not collapsed).\n\n<API name=\"isExpanded\">\n<APIParameters>\n  <APIItem name=\"range\" type=\"TRange | null\" optional>\n    The range to check.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if the range exists and is expanded.\n</APIReturns>\n</API>\n\n### `isForward`\n\nCheck if a range is forward (anchor point appears before focus point).\n\n<API name=\"isForward\">\n<APIParameters>\n  <APIItem name=\"range\" type=\"TRange\">\n    The range to check.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if the range is forward.\n</APIReturns>\n</API>\n\n### `isRange`\n\nCheck if a value implements the `TRange` interface.\n\n<API name=\"isRange\">\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 range.\n</APIReturns>\n</API>\n\n### `points`\n\nIterate through all point entries in a range.\n\n<API name=\"points\">\n<APIParameters>\n  <APIItem name=\"range\" type=\"TRange\">\n    The range to iterate through.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"Generator<PointEntry, void, undefined>\">\n  A generator that yields point entries.\n</APIReturns>\n</API>\n\n### `start`\n\nGet the start point of a range.\n\n<API name=\"start\">\n<APIParameters>\n  <APIItem name=\"range\" type=\"TRange\">\n    The range to get the start point from.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"Point\">\n  The start point of the range.\n</APIReturns>\n</API>\n\n### `surrounds`\n\nCheck if a range completely surrounds another range.\n\n<API name=\"surrounds\">\n<APIParameters>\n  <APIItem name=\"range\" type=\"TRange\">\n    The range that might surround the target.\n  </APIItem>\n  <APIItem name=\"target\" type=\"TRange\">\n    The target range that might be surrounded.\n  </APIItem>\n</APIParameters>\n\n<APIReturns type=\"boolean\">\n  `true` if the range surrounds the target.\n</APIReturns>\n</API>\n\n## Types\n\n### `TRange`\n\n`TRange` objects are a set of points that refer to a specific span of a Plate document. They can define a span inside a \nsingle node or span across multiple nodes.\n\n`Range` is a type alias for `TRange`.\n\n<API name=\"TRange\">\n<APIAttributes>\n  <APIItem name=\"anchor\" type=\"Point\">\n    The start point of the range.\n  </APIItem>\n  <APIItem name=\"focus\" type=\"Point\">\n    The end point of the range.\n  </APIItem>\n</APIAttributes>\n</API>\n",
      "type": "registry:file",
      "target": "content/docs/plate/api/slate/range.mdx"
    }
  ],
  "type": "registry:file"
}