diff --git a/change/@microsoft-fast-build-728386d6-f5fd-4ae6-bd08-91debe57ed45.json b/change/@microsoft-fast-build-728386d6-f5fd-4ae6-bd08-91debe57ed45.json new file mode 100644 index 00000000000..0ed007ad4fd --- /dev/null +++ b/change/@microsoft-fast-build-728386d6-f5fd-4ae6-bd08-91debe57ed45.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "Add a markers_v2 option for emitting FAST Element 2.x indexed hydration markers.", + "packageName": "@microsoft/fast-build", + "email": "7559015+janechu@users.noreply.github.com", + "dependentChangeType": "none" +} diff --git a/change/@microsoft-fast-element-18fad60c-d54c-48ef-be11-88bbbada8c2e.json b/change/@microsoft-fast-element-18fad60c-d54c-48ef-be11-88bbbada8c2e.json new file mode 100644 index 00000000000..9bc31cce1dc --- /dev/null +++ b/change/@microsoft-fast-element-18fad60c-d54c-48ef-be11-88bbbada8c2e.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "Add an opt-in markers_v2 reader for FAST Element 2.x indexed hydration markers.", + "packageName": "@microsoft/fast-element", + "email": "7559015+janechu@users.noreply.github.com", + "dependentChangeType": "none" +} diff --git a/crates/microsoft-fast-build/DESIGN.md b/crates/microsoft-fast-build/DESIGN.md index b2516fa7bdc..f1622d44bc1 100644 --- a/crates/microsoft-fast-build/DESIGN.md +++ b/crates/microsoft-fast-build/DESIGN.md @@ -48,10 +48,10 @@ render_template(template, state_str) | `content.rs` | `{{expr}}` and `{{{expr}}}` binding renderers, `html_escape` | | `attribute.rs` | Low-level HTML/attribute string parsing utilities + hydration attribute helpers; `strip_client_only_attrs` (shadow-DOM tags and nested element opening tags) | | `attribute_lookup.rs` | Static lookup tables mapping ARIA and HTML attribute names to their DOM property names | -| `config.rs` | `RenderConfig` struct and `AttributeNameStrategy` enum — rendering configuration options | +| `config.rs` | `RenderConfig` struct, `AttributeNameStrategy` enum, and `markers_v2` option — rendering configuration options | | `context.rs` | State value resolution: dot-path access, loop-variable scoping | | `expression.rs` | Boolean expression evaluator for `` | -| `hydration.rs` | `HydrationScope` — binding index tracking and data-free marker generation per template scope | +| `hydration.rs` | `HydrationScope` — binding index tracking and v3 data-free or opt-in v2 indexed marker generation per template scope | | `json.rs` | Hand-rolled JSON parser producing `JsonValue` | | `locator.rs` | `Locator` struct — maps element names to template strings; glob scanner; `` parser. Stored template bodies are first run through `escape_code_sample_elements` so `{`/`}` characters and the angle brackets of FAST directive tags (``, ``) inside `` elements are entity-escaped and therefore not interpreted as binding delimiters or directives. Also captures the inner `