From 35eb193ac5e6f2a1ccdac8c039d1200ccc81c8ca Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Fri, 7 Aug 2026 00:33:07 +0000
Subject: [PATCH] chore: version packages
---
.../fix-hydration-animation-css-race.md | 28 ----------
.changeset/fix-outlet-animation-config.md | 27 ----------
apps/docs/CHANGELOG.md | 9 ++++
apps/docs/package.json | 2 +-
packages/dom/CHANGELOG.md | 52 +++++++++++++++++++
packages/dom/package.json | 2 +-
packages/router/CHANGELOG.md | 31 +++++++++++
packages/router/package.json | 2 +-
8 files changed, 95 insertions(+), 58 deletions(-)
delete mode 100644 .changeset/fix-hydration-animation-css-race.md
delete mode 100644 .changeset/fix-outlet-animation-config.md
diff --git a/.changeset/fix-hydration-animation-css-race.md b/.changeset/fix-hydration-animation-css-race.md
deleted file mode 100644
index 0c050e2..0000000
--- a/.changeset/fix-hydration-animation-css-race.md
+++ /dev/null
@@ -1,28 +0,0 @@
----
-"@effex/dom": patch
----
-
-fix(animation): wait one paint before hydration enter animations
-
-On cold first-load (new tab, no cache), the browser can schedule the
-hydration fiber before it finishes parsing/applying stylesheets — either
-`` sheets that are still being fetched or Vite dev's JS-injected
-styles that haven't been evaluated yet.
-
-When that happened, `runEnterAnimation`'s `forceReflow` captured a
-"before" state with no `transition-property` set, then the class swap
-happened instantly — the transition-triggering moment passed without
-transition-* in effect, `transitionend` never fired, and the animation
-system logged the "Animation timeout reached" warning after 5 seconds.
-The affected element ended up at its enterTo state with no animation.
-Refresh made the problem go away because stylesheets were already cached
-and applied synchronously.
-
-`forkSlotEnter` now waits for a single `requestAnimationFrame` on the
-hydration path before starting the enter lifecycle. rAF runs just before
-the browser's next paint, at which point all pending stylesheet parsing
-is complete, so `forceReflow` captures the correct pre-transition state
-and the class swap fires a proper transition.
-
-The wait is scoped to hydration only; post-hydration animations (route
-changes, list reconciles) don't pay the rAF cost.
diff --git a/.changeset/fix-outlet-animation-config.md b/.changeset/fix-outlet-animation-config.md
deleted file mode 100644
index 770215f..0000000
--- a/.changeset/fix-outlet-animation-config.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-"@effex/router": patch
-"@effex/dom": patch
----
-
-fix(router): Outlet now actually applies its animation configuration
-
-`OutletConfig.animate` was defined in the type but never read in the
-implementation — the underlying `reconcile` call passed only
-`getTargetKeys` and `renderSlot`, so nothing wired the animation config
-through to the control ctx. Consumers configuring `animate` saw abrupt
-route transitions regardless of what they set.
-
-`Outlet` now provides `AnimationConfigCtx` (the same tag `when`/`match`/
-`each` use) via `Effect.provideService`, matching the pattern those
-combinators follow. `provideService` uses `provideContext` internally
-rather than `provideSomeLayer`'s `scopedWith` — no scope is created and
-no finalizer race is introduced (see #78 for the finalizer-race pattern
-we're deliberately avoiding).
-
-Also adds an `intro?: boolean` field to `OutletConfig`, so the initially
-matched route can re-animate on hydration in cases like a decorative
-opening scene. Same shape as `when`/`match`/`each`/`animated`.
-
-`AnimationConfigCtx` and `ClientControlCtx` are now re-exported from
-`@effex/dom`'s package root (they were exported from
-`@effex/dom/Control/index.ts` but not lifted).
diff --git a/apps/docs/CHANGELOG.md b/apps/docs/CHANGELOG.md
index 865afd3..fd6adcb 100644
--- a/apps/docs/CHANGELOG.md
+++ b/apps/docs/CHANGELOG.md
@@ -1,5 +1,14 @@
# docs
+## 0.0.32
+
+### Patch Changes
+
+- Updated dependencies [30f2c32]
+- Updated dependencies [567a41c]
+ - @effex/dom@1.4.8
+ - @effex/router@1.3.9
+
## 0.0.31
### Patch Changes
diff --git a/apps/docs/package.json b/apps/docs/package.json
index 1cbfc55..c8a75d8 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -1,6 +1,6 @@
{
"name": "docs",
- "version": "0.0.31",
+ "version": "0.0.32",
"private": true,
"type": "module",
"scripts": {
diff --git a/packages/dom/CHANGELOG.md b/packages/dom/CHANGELOG.md
index c973736..d01c68e 100644
--- a/packages/dom/CHANGELOG.md
+++ b/packages/dom/CHANGELOG.md
@@ -1,5 +1,57 @@
# @effex/dom
+## 1.4.8
+
+### Patch Changes
+
+- 30f2c32: fix(animation): wait one paint before hydration enter animations
+
+ On cold first-load (new tab, no cache), the browser can schedule the
+ hydration fiber before it finishes parsing/applying stylesheets — either
+ `` sheets that are still being fetched or Vite dev's JS-injected
+ styles that haven't been evaluated yet.
+
+ When that happened, `runEnterAnimation`'s `forceReflow` captured a
+ "before" state with no `transition-property` set, then the class swap
+ happened instantly — the transition-triggering moment passed without
+ transition-\* in effect, `transitionend` never fired, and the animation
+ system logged the "Animation timeout reached" warning after 5 seconds.
+ The affected element ended up at its enterTo state with no animation.
+ Refresh made the problem go away because stylesheets were already cached
+ and applied synchronously.
+
+ `forkSlotEnter` now waits for a single `requestAnimationFrame` on the
+ hydration path before starting the enter lifecycle. rAF runs just before
+ the browser's next paint, at which point all pending stylesheet parsing
+ is complete, so `forceReflow` captures the correct pre-transition state
+ and the class swap fires a proper transition.
+
+ The wait is scoped to hydration only; post-hydration animations (route
+ changes, list reconciles) don't pay the rAF cost.
+
+- 567a41c: fix(router): Outlet now actually applies its animation configuration
+
+ `OutletConfig.animate` was defined in the type but never read in the
+ implementation — the underlying `reconcile` call passed only
+ `getTargetKeys` and `renderSlot`, so nothing wired the animation config
+ through to the control ctx. Consumers configuring `animate` saw abrupt
+ route transitions regardless of what they set.
+
+ `Outlet` now provides `AnimationConfigCtx` (the same tag `when`/`match`/
+ `each` use) via `Effect.provideService`, matching the pattern those
+ combinators follow. `provideService` uses `provideContext` internally
+ rather than `provideSomeLayer`'s `scopedWith` — no scope is created and
+ no finalizer race is introduced (see #78 for the finalizer-race pattern
+ we're deliberately avoiding).
+
+ Also adds an `intro?: boolean` field to `OutletConfig`, so the initially
+ matched route can re-animate on hydration in cases like a decorative
+ opening scene. Same shape as `when`/`match`/`each`/`animated`.
+
+ `AnimationConfigCtx` and `ClientControlCtx` are now re-exported from
+ `@effex/dom`'s package root (they were exported from
+ `@effex/dom/Control/index.ts` but not lifted).
+
## 1.4.7
### Patch Changes
diff --git a/packages/dom/package.json b/packages/dom/package.json
index eaf9e1b..141a966 100644
--- a/packages/dom/package.json
+++ b/packages/dom/package.json
@@ -1,6 +1,6 @@
{
"name": "@effex/dom",
- "version": "1.4.7",
+ "version": "1.4.8",
"description": "DOM rendering for Effex - a reactive UI framework built on Effect.ts",
"type": "module",
"license": "MIT",
diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md
index 3fb1972..f747168 100644
--- a/packages/router/CHANGELOG.md
+++ b/packages/router/CHANGELOG.md
@@ -1,5 +1,36 @@
# @effex/router
+## 1.3.9
+
+### Patch Changes
+
+- 567a41c: fix(router): Outlet now actually applies its animation configuration
+
+ `OutletConfig.animate` was defined in the type but never read in the
+ implementation — the underlying `reconcile` call passed only
+ `getTargetKeys` and `renderSlot`, so nothing wired the animation config
+ through to the control ctx. Consumers configuring `animate` saw abrupt
+ route transitions regardless of what they set.
+
+ `Outlet` now provides `AnimationConfigCtx` (the same tag `when`/`match`/
+ `each` use) via `Effect.provideService`, matching the pattern those
+ combinators follow. `provideService` uses `provideContext` internally
+ rather than `provideSomeLayer`'s `scopedWith` — no scope is created and
+ no finalizer race is introduced (see #78 for the finalizer-race pattern
+ we're deliberately avoiding).
+
+ Also adds an `intro?: boolean` field to `OutletConfig`, so the initially
+ matched route can re-animate on hydration in cases like a decorative
+ opening scene. Same shape as `when`/`match`/`each`/`animated`.
+
+ `AnimationConfigCtx` and `ClientControlCtx` are now re-exported from
+ `@effex/dom`'s package root (they were exported from
+ `@effex/dom/Control/index.ts` but not lifted).
+
+- Updated dependencies [30f2c32]
+- Updated dependencies [567a41c]
+ - @effex/dom@1.4.8
+
## 1.3.8
### Patch Changes
diff --git a/packages/router/package.json b/packages/router/package.json
index 0ab4bef..b74e314 100644
--- a/packages/router/package.json
+++ b/packages/router/package.json
@@ -1,6 +1,6 @@
{
"name": "@effex/router",
- "version": "1.3.8",
+ "version": "1.3.9",
"description": "Router for Effex applications",
"type": "module",
"license": "MIT",