@dashforge/tw 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -12,6 +12,58 @@ This project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
12
12
  > duplicated intentionally — no shared "lowest common denominator" headless
13
13
  > layer.
14
14
 
15
+ ## [1.4.0] — 2026-08-14
16
+
17
+ Adds the `<Video>` primitive — the moving-image twin of `<Image>`. No
18
+ breaking changes vs 1.3.0 — every existing consumer works unchanged.
19
+
20
+ ### Added
21
+
22
+ - **`<Video>`** — a thin, declarative wrapper over the native `<video>`,
23
+ built on the same anti-CLS + loading + fallback machinery as `<Image>`:
24
+ - **No layout shift** — `aspectRatio` (or `width` + `height`) reserves
25
+ the box before load.
26
+ - **Poster + skeleton** — a `poster` shows before playback (and is the
27
+ loading visual); without one a cache-aware `<Skeleton>` fills the
28
+ reserved box until the first frame is ready.
29
+ - **Graceful error** — a muted fallback replaces the player on failure
30
+ (`fallback` to customise).
31
+ - **Controls on by default**; `autoPlay` / `loop` / `muted` /
32
+ `playsInline` / `preload` and any other native `<video>` attribute are
33
+ forwarded, and `<source>` children are supported for multi-format
34
+ delivery.
35
+ - `fit` (`object-fit`) and `rounded` are Option C configurable via
36
+ `theme.components.Video.defaults`; `sx` / `slotProps` for overrides.
37
+ - Supports `access` (RBAC) and `visibleWhen` gating like `<Image>`.
38
+
39
+ ## [1.3.0] — 2026-08-14
40
+
41
+ Adds the `<Image>` primitive. No breaking changes vs 1.2.0 — every
42
+ existing consumer works unchanged.
43
+
44
+ ### Added
45
+
46
+ - **`<Image>`** — a thin, declarative wrapper over the native `<img>`.
47
+ Zero eval, no data fetching: it renders a URL and adds what a bare
48
+ `<img>` lacks:
49
+ - **No layout shift** — `aspectRatio` (or `width` + `height`) reserves
50
+ the box before load via CSS `aspect-ratio`.
51
+ - **Loading skeleton** — fills the reserved box while loading, and is
52
+ skipped for already-cached images (no flash).
53
+ - **Graceful error** — a muted fallback replaces the broken-image glyph
54
+ on failure (`fallback` to customise).
55
+ - Lazy by default (`loading="lazy"`); native `<img>` attributes are
56
+ forwarded.
57
+ - `fit` (`object-fit`) and `rounded` are Option C configurable via
58
+ `theme.components.Image.defaults`; `sx` / `slotProps` for overrides.
59
+ - Supports `access` (RBAC) and `visibleWhen` gating like the form
60
+ components — `hide` removes the image, `disable` / `readonly` dim it.
61
+
62
+ ### Internal
63
+
64
+ - Corrected the exported `VERSION` constant, which had drifted to
65
+ `1.1.1`; it now tracks the package version.
66
+
15
67
  ## [1.2.0] — 2026-07-24
16
68
 
17
69
  Sprint 6 — closes the Option C rollout (`theme.components.<Name>.defaults`)