{
  "id": "@typed/template/HtmlChunk#HtmlSparsePartChunk",
  "canonicalId": "@typed/template#HtmlSparsePartChunk",
  "symbol": {
    "id": "@typed/template/HtmlChunk#HtmlSparsePartChunk",
    "packageName": "@typed/template",
    "moduleName": "HtmlChunk",
    "exportName": "HtmlSparsePartChunk",
    "kind": "interface",
    "signatures": [
      "export interface HtmlSparsePartChunk {\n    readonly _tag: \"sparse-part\";\n    readonly node: Template.SparsePartNode;\n    readonly render: (value: unknown) => string;\n}"
    ],
    "summary": "A chunk representing a sparse part (mixed static/dynamic text).",
    "sections": {
      "Why": "Sparse values preserve surrounding literal text while serializing each\ninterpolation according to its HTML context.",
      "Ownership and lifetime": "The record owns no subscription; the consuming renderer evaluates it.",
      "Property: _tag": "Identifies a sparse dynamic chunk.",
      "Property: _tag: Why": "Enables exhaustive renderer dispatch.",
      "Property: _tag: Ownership and lifetime": "Immutable metadata owned by the chunk.",
      "Property: node": "The parsed sparse part retaining literal/dynamic ordering.",
      "Property: node: Why": "Preserves the serialization context across all segments.",
      "Property: node: Ownership and lifetime": "The chunk borrows the immutable AST node.",
      "Property: render": "Function to render the value of this part into a string.",
      "Property: render: Why": "Sparse parts retain one context-aware escaping boundary.",
      "Property: render: Ownership and lifetime": "The pure function retains no application value between calls."
    },
    "examples": [
      {
        "language": "ts",
        "code": "import { templateToHtmlChunks, type HtmlSparsePartChunk } from \"@typed/template/HtmlChunk\"\nimport { parse } from \"@typed/template/Parser\"\n\nconst chunk = templateToHtmlChunks(parse([\"<p title=\\\"before \", \" after\\\"></p>\"]))[1] as HtmlSparsePartChunk"
      }
    ],
    "relations": [],
    "source": {
      "file": "packages/template/src/HtmlChunk.ts",
      "line": 198
    },
    "since": "1.0.0",
    "category": "Sparse HTML chunks"
  },
  "exposure": {
    "recordKind": "declaration",
    "id": "@typed/template/HtmlChunk#HtmlSparsePartChunk",
    "packageName": "@typed/template",
    "packageVersion": "1.0.0-beta.7",
    "moduleName": "HtmlChunk",
    "consumerSpecifier": "@typed/template/HtmlChunk",
    "exportName": "HtmlSparsePartChunk",
    "qualifiedName": "HtmlSparsePartChunk",
    "declarationKey": "declaration:4fb04f710fcb4943f636d948",
    "family": "interface",
    "signatures": [
      "export interface HtmlSparsePartChunk {\n    readonly _tag: \"sparse-part\";\n    readonly node: Template.SparsePartNode;\n    readonly render: (value: unknown) => string;\n}"
    ],
    "sourceSpans": [
      {
        "file": "packages/template/src/HtmlChunk.ts",
        "start": {
          "line": 198,
          "column": 1
        },
        "end": {
          "line": 241,
          "column": 2
        }
      },
      {
        "file": "packages/template/src/HtmlChunk.ts",
        "start": {
          "line": 211,
          "column": 3
        },
        "end": {
          "line": 211,
          "column": 32
        }
      },
      {
        "file": "packages/template/src/HtmlChunk.ts",
        "start": {
          "line": 224,
          "column": 3
        },
        "end": {
          "line": 224,
          "column": 42
        }
      },
      {
        "file": "packages/template/src/HtmlChunk.ts",
        "start": {
          "line": 240,
          "column": 3
        },
        "end": {
          "line": 240,
          "column": 47
        }
      }
    ],
    "aliases": [
      "@typed/template#HtmlSparsePartChunk"
    ],
    "isAlias": false,
    "static": false
  },
  "declaration": {
    "declarationKey": "declaration:4fb04f710fcb4943f636d948",
    "name": "HtmlSparsePartChunk",
    "family": "interface",
    "facets": [
      {
        "family": "interface",
        "syntaxKind": "InterfaceDeclaration",
        "signatures": [
          "export interface HtmlSparsePartChunk {\n    readonly _tag: \"sparse-part\";\n    readonly node: Template.SparsePartNode;\n    readonly render: (value: unknown) => string;\n}"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/template/src/HtmlChunk.ts",
            "start": {
              "line": 198,
              "column": 1
            },
            "end": {
              "line": 241,
              "column": 2
            }
          }
        ],
        "static": false,
        "readonly": false,
        "optional": false
      },
      {
        "family": "property",
        "syntaxKind": "PropertySignature",
        "signatures": [
          "readonly _tag: \"sparse-part\";"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/template/src/HtmlChunk.ts",
            "start": {
              "line": 211,
              "column": 3
            },
            "end": {
              "line": 211,
              "column": 32
            }
          }
        ],
        "static": false,
        "readonly": true,
        "optional": false
      },
      {
        "family": "property",
        "syntaxKind": "PropertySignature",
        "signatures": [
          "readonly node: Template.SparsePartNode;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/template/src/HtmlChunk.ts",
            "start": {
              "line": 224,
              "column": 3
            },
            "end": {
              "line": 224,
              "column": 42
            }
          }
        ],
        "static": false,
        "readonly": true,
        "optional": false
      },
      {
        "family": "property",
        "syntaxKind": "PropertySignature",
        "signatures": [
          "readonly render: (value: unknown) => string;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/template/src/HtmlChunk.ts",
            "start": {
              "line": 240,
              "column": 3
            },
            "end": {
              "line": 240,
              "column": 47
            }
          }
        ],
        "static": false,
        "readonly": true,
        "optional": false
      }
    ],
    "signatures": [
      "export interface HtmlSparsePartChunk {\n    readonly _tag: \"sparse-part\";\n    readonly node: Template.SparsePartNode;\n    readonly render: (value: unknown) => string;\n}"
    ],
    "typeParameters": [],
    "summary": "A chunk representing a sparse part (mixed static/dynamic text).",
    "sections": {
      "Why": "Sparse values preserve surrounding literal text while serializing each\ninterpolation according to its HTML context.",
      "Ownership and lifetime": "The record owns no subscription; the consuming renderer evaluates it.",
      "Property: _tag": "Identifies a sparse dynamic chunk.",
      "Property: _tag: Why": "Enables exhaustive renderer dispatch.",
      "Property: _tag: Ownership and lifetime": "Immutable metadata owned by the chunk.",
      "Property: node": "The parsed sparse part retaining literal/dynamic ordering.",
      "Property: node: Why": "Preserves the serialization context across all segments.",
      "Property: node: Ownership and lifetime": "The chunk borrows the immutable AST node.",
      "Property: render": "Function to render the value of this part into a string.",
      "Property: render: Why": "Sparse parts retain one context-aware escaping boundary.",
      "Property: render: Ownership and lifetime": "The pure function retains no application value between calls."
    },
    "examples": [
      {
        "language": "ts",
        "code": "import { templateToHtmlChunks, type HtmlSparsePartChunk } from \"@typed/template/HtmlChunk\"\nimport { parse } from \"@typed/template/Parser\"\n\nconst chunk = templateToHtmlChunks(parse([\"<p title=\\\"before \", \" after\\\"></p>\"]))[1] as HtmlSparsePartChunk"
      }
    ],
    "sourceSpans": [
      {
        "file": "packages/template/src/HtmlChunk.ts",
        "start": {
          "line": 198,
          "column": 1
        },
        "end": {
          "line": 241,
          "column": 2
        }
      },
      {
        "file": "packages/template/src/HtmlChunk.ts",
        "start": {
          "line": 211,
          "column": 3
        },
        "end": {
          "line": 211,
          "column": 32
        }
      },
      {
        "file": "packages/template/src/HtmlChunk.ts",
        "start": {
          "line": 224,
          "column": 3
        },
        "end": {
          "line": 224,
          "column": 42
        }
      },
      {
        "file": "packages/template/src/HtmlChunk.ts",
        "start": {
          "line": 240,
          "column": 3
        },
        "end": {
          "line": 240,
          "column": 47
        }
      }
    ],
    "since": "1.0.0",
    "category": "Sparse HTML chunks"
  }
}
