From b251beeaf58296ce21003dbb3d28d43fd504ac69 Mon Sep 17 00:00:00 2001 From: Thanga Ganapathy Date: Sat, 29 Aug 2026 16:05:51 +0530 Subject: [PATCH] chore(release): @opentf/micro-ui@0.5.0 --- CHANGELOG.md | 2 ++ packages/micro-ui/package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f4c7a0..5341c8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.5.0] - 2026-08-29 + ### Fixed - **dom.ts / vdom.ts / reconcile.ts** — SVG elements created via dynamic `html` fragments (e.g. `html``, `html`` or `items.map(html``)) inside `` now correctly get `SVG` namespace. Previously they were parsed as HTML (`http://www.w3.org/1999/xhtml`) and remained HTML when inserted, so nested circles/lines/g's from `showGrid` toggle and keyed lists in `x-svg-demo` were invisible. Static `svg` content was unaffected. Now fragments are NS-corrected on creation and on every `reconcile` insertion, with `foreignObject` children correctly reverting to HTML — including dynamic children re-inserted into a live `` after being removed (the reconcile insertion path now applies the same `foreignObject` → HTML exception as template parsing). SVG element names are case-sensitive and several are camelCase (`foreignObject`, `clipPath`, `linearGradient`, `fe*`, …). Previously `createElementNS(svgNS, "foreignobject")` was called with the lowercased tag, which Chromium treats as an *unknown* SVG element with no layout — so a static `` rendered as a 0×0 box with invisible HTML content. `svgTagName()` in **ns.ts** now maps lowercase tags back to the canonical spelling for every SVG element created via `createEl` (**dom.ts** / **vdom.ts**), so `foreignObject`, `clipPath`, `linearGradient`, `fe*` and friends render and behave correctly. - **dom.ts** — `aria-*` and `role` attributes now correctly stringify boolean values as `"true"`/`"false"` instead of empty string/removed. `html`
` now renders `aria-hidden="true"` and `aria-hidden=${false}` renders `aria-hidden="false"` (previously `aria-hidden=""` / removed), matching React and the ARIA spec. Dynamic toggling and numeric `aria-*` (e.g. `aria-valuenow`) also stringify correctly. diff --git a/packages/micro-ui/package.json b/packages/micro-ui/package.json index 0d86568..7aabaf0 100644 --- a/packages/micro-ui/package.json +++ b/packages/micro-ui/package.json @@ -1,6 +1,6 @@ { "name": "@opentf/micro-ui", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "main": "./dist/index.js", "types": "./dist/index.d.ts",