{
  "id": "@typed/template/Html#HtmlRenderTemplate",
  "canonicalId": "@typed/template#HtmlRenderTemplate",
  "symbol": {
    "id": "@typed/template/Html#HtmlRenderTemplate",
    "packageName": "@typed/template",
    "moduleName": "Html",
    "exportName": "HtmlRenderTemplate",
    "kind": "constant",
    "signatures": [
      "export declare const HtmlRenderTemplate: Layer.Layer<RenderTemplate, never, never>;"
    ],
    "summary": "A Layer that provides the `RenderTemplate` service implemented for HTML string generation.\n\nUsing this layer enables templates to be rendered as HTML strings (e.g., for SSR)\nrather than DOM nodes. It sets the `RefSubject.CurrentComputedBehavior` to `\"one\"`, indicating\na single-pass render approach typical for HTML generation.",
    "sections": {
      "Why": "The Layer supplies the same `RenderTemplate` service consumed by `html`, so\ntemplates are renderer-independent while SSR remains an ordered Fx of chunks.\nParsed templates and compiled chunks are cached by template-literal identity.",
      "Ownership and lifetime": "The provided service and its caches live for the Layer Scope. Each rendered\nFx owns its dynamic subscriptions until completion or interruption. The layer\nintentionally selects the first value from live sources for finite SSR.",
      "Trust boundary": "Literal segments are author markup. Dynamic text and attributes are escaped;\nevent, ref, property, prototype-sensitive, and unsafe spread keys are not\nserialized as HTML."
    },
    "examples": [
      {
        "language": "ts",
        "code": "import { Effect } from \"effect\"\nimport { html } from \"@typed/template\"\nimport { renderToHtmlString, HtmlRenderTemplate } from \"@typed/template/Html\"\n\nconst program = Effect.scoped(Effect.gen(function* () {\n  const template = html`<div>Hello, ${\"world\"}!</div>`\n\n  const htmlString = yield* renderToHtmlString(template).pipe(\n    Effect.provide(HtmlRenderTemplate)\n  )\n\n  // Use for SSR\n  return htmlString\n}))"
      }
    ],
    "relations": [],
    "source": {
      "file": "packages/template/src/Html.ts",
      "line": 234
    },
    "since": "1.0.0",
    "category": "Hydratable HTML rendering"
  },
  "exposure": {
    "recordKind": "declaration",
    "id": "@typed/template/Html#HtmlRenderTemplate",
    "packageName": "@typed/template",
    "packageVersion": "1.0.0-beta.13",
    "moduleName": "Html",
    "consumerSpecifier": "@typed/template/Html",
    "exportName": "HtmlRenderTemplate",
    "qualifiedName": "HtmlRenderTemplate",
    "declarationKey": "declaration:283c919bcbc68d598c2b54a6",
    "family": "variable",
    "signatures": [
      "export declare const HtmlRenderTemplate: Layer.Layer<RenderTemplate, never, never>;"
    ],
    "sourceSpans": [
      {
        "file": "packages/template/src/Html.ts",
        "start": {
          "line": 234,
          "column": 14
        },
        "end": {
          "line": 265,
          "column": 85
        }
      }
    ],
    "aliases": [
      "@typed/template#HtmlRenderTemplate"
    ],
    "isAlias": false,
    "static": false
  },
  "declaration": {
    "declarationKey": "declaration:283c919bcbc68d598c2b54a6",
    "name": "HtmlRenderTemplate",
    "family": "variable",
    "facets": [
      {
        "family": "variable",
        "syntaxKind": "VariableDeclaration",
        "signatures": [
          "export declare const HtmlRenderTemplate: Layer.Layer<RenderTemplate, never, never>;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/template/src/Html.ts",
            "start": {
              "line": 234,
              "column": 14
            },
            "end": {
              "line": 265,
              "column": 85
            }
          }
        ],
        "static": false,
        "readonly": false,
        "optional": false
      }
    ],
    "signatures": [
      "export declare const HtmlRenderTemplate: Layer.Layer<RenderTemplate, never, never>;"
    ],
    "typeParameters": [],
    "summary": "A Layer that provides the `RenderTemplate` service implemented for HTML string generation.\n\nUsing this layer enables templates to be rendered as HTML strings (e.g., for SSR)\nrather than DOM nodes. It sets the `RefSubject.CurrentComputedBehavior` to `\"one\"`, indicating\na single-pass render approach typical for HTML generation.",
    "sections": {
      "Why": "The Layer supplies the same `RenderTemplate` service consumed by `html`, so\ntemplates are renderer-independent while SSR remains an ordered Fx of chunks.\nParsed templates and compiled chunks are cached by template-literal identity.",
      "Ownership and lifetime": "The provided service and its caches live for the Layer Scope. Each rendered\nFx owns its dynamic subscriptions until completion or interruption. The layer\nintentionally selects the first value from live sources for finite SSR.",
      "Trust boundary": "Literal segments are author markup. Dynamic text and attributes are escaped;\nevent, ref, property, prototype-sensitive, and unsafe spread keys are not\nserialized as HTML."
    },
    "examples": [
      {
        "language": "ts",
        "code": "import { Effect } from \"effect\"\nimport { html } from \"@typed/template\"\nimport { renderToHtmlString, HtmlRenderTemplate } from \"@typed/template/Html\"\n\nconst program = Effect.scoped(Effect.gen(function* () {\n  const template = html`<div>Hello, ${\"world\"}!</div>`\n\n  const htmlString = yield* renderToHtmlString(template).pipe(\n    Effect.provide(HtmlRenderTemplate)\n  )\n\n  // Use for SSR\n  return htmlString\n}))"
      }
    ],
    "sourceSpans": [
      {
        "file": "packages/template/src/Html.ts",
        "start": {
          "line": 234,
          "column": 14
        },
        "end": {
          "line": 265,
          "column": 85
        }
      }
    ],
    "since": "1.0.0",
    "category": "Hydratable HTML rendering"
  }
}
