# Stackflow - Changelog
## 2026.04.30
Fix `fallbackActivity` callback being invoked on every initialization regardless of route matching outcome. Restored the pre-1.8.0 contract: the callback is now called only when no route matches `currentPath`. Apps that perform side effects in this callback (e.g. Sentry logging for unknown deep links) no longer fire on successful matches. [`2c5786a`](https://github.com/daangn/stackflow/commit/2c5786a2934c3d2b74c20e8c57465ae03b3d3416)
Released packages:
* 📦 [@stackflow/plugin-history-sync@1.10.1](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.10.1)
***
## 2026.04.15
Add lifecyclePlugin and useFocusEffect hook for activity focus/blur lifecycle [`39dbf81`](https://github.com/daangn/stackflow/commit/39dbf81472af06daa5c40da098e232c2fe3b4a92)
* `useFocusEffect(callback)` hook to register per-activity focus/blur callbacks
* Detection and invocation in plugin `onChanged` (outside React render cycle)
* `callbackRef` pattern for always-latest callback without `useCallback`
* Error isolation via `runSafely()` for all user callbacks
Released packages:
* 📦 [@stackflow/plugin-lifecycle@0.1.0](https://npmjs.com/package/@stackflow/plugin-lifecycle/v/0.1.0)
***
Add README documentation for plugin-lifecycle [`fce2047`](https://github.com/daangn/stackflow/commit/fce204702b876869764076f74246319623fb3e89)
Released packages:
* 📦 [@stackflow/plugin-lifecycle@0.1.0](https://npmjs.com/package/@stackflow/plugin-lifecycle/v/0.1.0)
***
## 2026.04.03
Fix intermittent incorrect transition state when `transitionDuration` is set to 0 by ensuring `now >= eventDate` in the initial aggregate call within `dispatchEvent`. [`0160f82`](https://github.com/daangn/stackflow/commit/0160f82738e45932d13715564c4d1da2c4698c18)
Released packages:
* 📦 [@stackflow/core@1.3.2](https://npmjs.com/package/@stackflow/core/v/1.3.2)
***
## 2026.03.30
Add blockerPlugin and useBlocker hook for navigation blocking [`c740c5e`](https://github.com/daangn/stackflow/commit/c740c5e28c30afc23fff8705c405cefa514a1f35)
* `useBlocker({ shouldBlock, onBlocked })` hook to declare blocking policies per activity
* Blocking set model: multiple blockers can block a navigation, all must `proceed()` for it to execute
* Only blockers from active (`isActive: true`) activities are evaluated
* `onBlocked` notifications are serialized in navigation occurrence order (no re-entrancy)
* Error isolation: one blocker's `onBlocked` throwing does not prevent other blockers from being notified
* Plugin-level `onError` option for custom error handling (defaults to `console.error`)
* Blocker cleanup on component unmount; previously captured `proceed` remains callable
Released packages:
* 📦 [@stackflow/plugin-blocker@0.1.0](https://npmjs.com/package/@stackflow/plugin-blocker/v/0.1.0)
***
feat(plugin-sentry): add Sentry browser tracing plugin for Stackflow navigation events [`7ad3502`](https://github.com/daangn/stackflow/commit/7ad3502f403aac86f0b47d47422f3a89ecb0b7c1)
Released packages:
* 📦 [@stackflow/plugin-sentry@0.1.0](https://npmjs.com/package/@stackflow/plugin-sentry/v/0.1.0)
***
## 2026.03.13
fix(core): prevent duplicate setInterval in dispatchEvent [`4d3b294`](https://github.com/daangn/stackflow/commit/4d3b29414aaa42ee405104f9cf7fb9c687fdf54c)
Released packages:
* 📦 [@stackflow/core@1.3.1](https://npmjs.com/package/@stackflow/core/v/1.3.1)
***
fix(react-ui-core): clamp swipe-back dx to prevent left-drag screen movement [`b9c1946`](https://github.com/daangn/stackflow/commit/b9c19469fe1fcdb4023493c06cf3fd98bb710d91)
Released packages:
* 📦 [@stackflow/react-ui-core@1.3.4](https://npmjs.com/package/@stackflow/react-ui-core/v/1.3.4)
***
## 2026.01.29
Add encode option to Route interface for converting activity params to URL string params [`45fb7ba`](https://github.com/daangn/stackflow/commit/45fb7ba271b8aaf754d25c2a241e54bd15bdd2dc)
Released packages:
* 📦 [@stackflow/plugin-history-sync@1.10.0](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.10.0)
***
## 2026.01.07
Add an option to skip default history setup transition [`a7d0c01`](https://github.com/daangn/stackflow/commit/a7d0c01c171001e6d99432a1df2242ef8faca011)
Released packages:
* 📦 [@stackflow/plugin-history-sync@1.9.0](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.9.0)
***
## 2026.01.06
Improve scheduling of Activity preparation tasks by marking them as passive effects. [`57fd2da`](https://github.com/daangn/stackflow/commit/57fd2da00bffe25d0865baaffac63b2db394814d)
Released packages:
* 📦 [@stackflow/react@1.12.0](https://npmjs.com/package/@stackflow/react/v/1.12.0)
***
Make structured activities defined by other than the standard constructor can be preloaded and cached [`4b894ae`](https://github.com/daangn/stackflow/commit/4b894ae7d80741badadf0a6c67e9ccd2aef4de6d)
Released packages:
* 📦 [@stackflow/react@1.12.0](https://npmjs.com/package/@stackflow/react/v/1.12.0)
***
## 2025.12.16 #2
Attach state tracking instruments to original promise when creating SyncInspectablePromises with Promises [`43cd76c`](https://github.com/daangn/stackflow/commit/43cd76c8c5b9b321b2bb8832bc07278ba47493e8)
Released packages:
* 📦 [@stackflow/react@1.11.1](https://npmjs.com/package/@stackflow/react/v/1.11.1)
***
## 2025.12.16
utilize synchronously inspectable promise to optimize suspense fallback rendering [`3cb6e33`](https://github.com/daangn/stackflow/commit/3cb6e33349b0bcd64f2ee1e5786e0977d3eb4d29)
Released packages:
* 📦 [@stackflow/react@1.11.0](https://npmjs.com/package/@stackflow/react/v/1.11.0)
***
Remove data loader cache [`f05ae23`](https://github.com/daangn/stackflow/commit/f05ae2390a18aecbf76de3969bf51b597c6812d7)
Released packages:
* 📦 [@stackflow/config@1.2.2](https://npmjs.com/package/@stackflow/config/v/1.2.2)
* 📦 [@stackflow/react@1.11.0](https://npmjs.com/package/@stackflow/react/v/1.11.0)
***
## 2025.12.12
Add an option for customizing error boundary in ErrorHandler of structured activity components [`f159bd4`](https://github.com/daangn/stackflow/commit/f159bd40c01f84bbffa9c0282a86acd150162792)
Released packages:
* 📦 [@stackflow/react@1.10.0](https://npmjs.com/package/@stackflow/react/v/1.10.0)
***
## 2025.11.28
Add interface to inject appBar.minHeight [`d76f1d1`](https://github.com/daangn/stackflow/commit/d76f1d1d89d66cecf66abbcdcb67b4b5ffa52943)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.18.1](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.18.1)
***
## 2025.11.27
Fix edge height [`151b13f`](https://github.com/daangn/stackflow/commit/151b13f8c1dc511a3905ff50a94f53ad80f933e0)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.18.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.18.0)
***
Expose interfaces to modify width of edge [`4e4c0d9`](https://github.com/daangn/stackflow/commit/4e4c0d946990388713df3b7c2951ef3209ed4584)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.18.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.18.0)
***
Parameterize default appscreen transition offset and appscreen dim height [`151b13f`](https://github.com/daangn/stackflow/commit/151b13f8c1dc511a3905ff50a94f53ad80f933e0)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.18.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.18.0)
***
Export StaticActivityComponentType type hepler [`7907371`](https://github.com/daangn/stackflow/commit/7907371b7bcdbf8fbb402eeb74b1fe01207b52cc)
Released packages:
* 📦 [@stackflow/react@1.9.0](https://npmjs.com/package/@stackflow/react/v/1.9.0)
***
## 2025.11.25
Expose interfaces to modify dimensions of AppBar [`a136f96`](https://github.com/daangn/stackflow/commit/a136f96)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.17.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.17.0)
***
## 2025.10.23
Fix SSR compatibility by adding getServerSnapshot parameter to useSyncExternalStore. This resolves the "Missing getServerSnapshot, which is required for server-rendered content" error in SSR environments. [`567352a`](https://github.com/daangn/stackflow/commit/567352a)
Released packages:
* 📦 [@stackflow/plugin-history-sync@1.8.1](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.8.1)
***
## 2025.10.22
Fix swipe back gesture during push/pop transitions by using capture phase event listeners to prevent touch events from reaching child elements during transitions [`fe8b8fe`](https://github.com/daangn/stackflow/commit/fe8b8fe)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.16.1](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.16.1)
* 📦 [@stackflow/react-ui-core@1.3.3](https://npmjs.com/package/@stackflow/react-ui-core/v/1.3.3)
***
## 2025.10.21
Export AppBar [`99eff56`](https://github.com/daangn/stackflow/commit/99eff56)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.16.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.16.0)
***
## 2025.10.16
Add ActivityComponentType paramterized by params [`ead4e78`](https://github.com/daangn/stackflow/commit/ead4e78)
Released packages:
* 📦 [@stackflow/react@1.8.0](https://npmjs.com/package/@stackflow/react/v/1.8.0)
***
## 2025.10.02
Expose events used to build a stack via `Stack.events` [`83ee5ed`](https://github.com/daangn/stackflow/commit/83ee5ed)
Released packages:
* 📦 [@stackflow/core@1.3.0](https://npmjs.com/package/@stackflow/core/v/1.3.0)
* 📦 [@stackflow/plugin-history-sync@1.8.0](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.8.0)
***
## 2025.09.05
`StructuredActivityComponentType` is added. [`f298988`](https://github.com/daangn/stackflow/commit/f298988)
Released packages:
* 📦 [@stackflow/plugin-history-sync@1.8.0](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.8.0)
* 📦 [@stackflow/plugin-preload@1.4.4](https://npmjs.com/package/@stackflow/plugin-preload/v/1.4.4)
* 📦 [@stackflow/react@1.7.0](https://npmjs.com/package/@stackflow/react/v/1.7.0)
***
## 2025.08.22
Fix scroll behavior of AppScreen by attaching refs on paperContent [`733ebcb`](https://github.com/daangn/stackflow/commit/733ebcb)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.15.1](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.15.1)
***
## 2025.08.18
Add prefetch API for lazy activity component and loader data. [`d906597`](https://github.com/daangn/stackflow/commit/d906597)
Released packages:
* 📦 [@stackflow/react@1.6.0](https://npmjs.com/package/@stackflow/react/v/1.6.0)
***
## 2025.08.15
Fix a bug that entrance transition is not applied. [`c391bb7`](https://github.com/daangn/stackflow/commit/c391bb7)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.15.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.15.0)
***
## 2025.08.10
Allow components style to be customized directly [`658c770`](https://github.com/daangn/stackflow/commit/658c770)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.15.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.15.0)
***
## 2025.07.28
fix(react): conditionally log warnings in browser environment [`2dc74ad`](https://github.com/daangn/stackflow/commit/2dc74ad)
Released packages:
* 📦 [@stackflow/react@1.5.3](https://npmjs.com/package/@stackflow/react/v/1.5.3)
***
## 2025.05.29
fix(plugin-basic-ui): update dependencies [`371a39c`](https://github.com/daangn/stackflow/commit/371a39c)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.14.2](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.14.2)
***
fix(react-ui-core): add `preventSwipeBack` into effect dependencies [`d2c50f3`](https://github.com/daangn/stackflow/commit/d2c50f3)
Released packages:
* 📦 [@stackflow/react-ui-core@1.3.2](https://npmjs.com/package/@stackflow/react-ui-core/v/1.3.2)
***
## 2025.05.15
fix(plugin-basic-ui): prevent touch events while transitioning for other basic components [`aef952a`](https://github.com/daangn/stackflow/commit/aef952a)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.14.1](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.14.1)
* 📦 [@stackflow/react-ui-core@1.3.1](https://npmjs.com/package/@stackflow/react-ui-core/v/1.3.1)
***
## 2025.05.12
fix(react): remove unused dependencies [`b9dc68a`](https://github.com/daangn/stackflow/commit/b9dc68a)
Released packages:
* 📦 [@stackflow/react@1.5.2](https://npmjs.com/package/@stackflow/react/v/1.5.2)
***
## 2025.04.09
Support full screen gradient background and introduce new app bar entrance type "cover" [`a7650d4`](https://github.com/daangn/stackflow/commit/a7650d4)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.14.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.14.0)
* 📦 [@stackflow/react-ui-core@1.3.0](https://npmjs.com/package/@stackflow/react-ui-core/v/1.3.0)
***
## 2025.03.24
fix(react-ui-core): consider nullable stack [`5c4b96c`](https://github.com/daangn/stackflow/commit/5c4b96c)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.13.1](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.13.1)
* 📦 [@stackflow/react-ui-core@1.2.3](https://npmjs.com/package/@stackflow/react-ui-core/v/1.2.3)
***
## 2025.03.14
fix(plugin-basic-ui,react-ui-core): prevent touch events while transitioning [`8593b5a`](https://github.com/daangn/stackflow/commit/8593b5a)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.13.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.13.0)
* 📦 [@stackflow/react-ui-core@1.2.2](https://npmjs.com/package/@stackflow/react-ui-core/v/1.2.2)
***
## 2025.03.11
To support various background designs, enable users to configure the background-image option in AppScreen, AppBar, BottomSheet and Modal. [`91413b6`](https://github.com/daangn/stackflow/commit/91413b6)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.13.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.13.0)
***
## 2025.02.24
fix(react): pause lazy component transition when no loader defined [`7751e60`](https://github.com/daangn/stackflow/commit/7751e60)
Released packages:
* 📦 [@stackflow/react@1.5.1](https://npmjs.com/package/@stackflow/react/v/1.5.1)
***
## 2025.02.13
Supports dynamic import for activities, and delays transition effects while loading an activity or waiting for a loader response [`cfa7af8`](https://github.com/daangn/stackflow/commit/cfa7af8)
Released packages:
* 📦 [@stackflow/core@1.2.0](https://npmjs.com/package/@stackflow/core/v/1.2.0)
* 📦 [@stackflow/plugin-basic-ui@1.12.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.12.0)
* 📦 [@stackflow/react@1.5.0](https://npmjs.com/package/@stackflow/react/v/1.5.0)
***
Add missing logics of considering `targetActivityId` while updating using update functions. [`82b52b0`](https://github.com/daangn/stackflow/commit/82b52b0)
Released packages:
* 📦 [@stackflow/react@1.5.0](https://npmjs.com/package/@stackflow/react/v/1.5.0)
***
## 2025.01.22
fix: add `decode()` interface to `Config` and support `path: string[]` [`e323ce3`](https://github.com/daangn/stackflow/commit/e323ce3)
Released packages:
* 📦 [@stackflow/config@1.2.1](https://npmjs.com/package/@stackflow/config/v/1.2.1)
* 📦 [@stackflow/link@1.6.1](https://npmjs.com/package/@stackflow/link/v/1.6.1)
* 📦 [@stackflow/plugin-history-sync@1.7.1](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.7.1)
* 📦 [@stackflow/react@1.4.2](https://npmjs.com/package/@stackflow/react/v/1.4.2)
***
## 2025.01.20
Made `divideBy` to be friendly to type inference. [`5fc54cb`](https://github.com/daangn/stackflow/commit/5fc54cb)
Released packages:
* 📦 [@stackflow/core@1.1.1](https://npmjs.com/package/@stackflow/core/v/1.1.1)
***
## 2024.12.18
chore(plugin-basic-ui): update react-ui-core dependency [`151631b`](https://github.com/daangn/stackflow/commit/151631b)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.11.1](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.11.1)
***
feat(react-ui-core, plugin-basic-ui): add `onSwipe*` hooks and add data attributes and css variables [`dc35bfc`](https://github.com/daangn/stackflow/commit/dc35bfc)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.11.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.11.0)
* 📦 [@stackflow/react-ui-core@1.2.0](https://npmjs.com/package/@stackflow/react-ui-core/v/1.2.0)
***
feat(react-ui-core): add swipe back ratio css var in other activity roots and add `transitionend` state in `useStyleEffectSwipeBack()` [`48693e7`](https://github.com/daangn/stackflow/commit/48693e7)
Released packages:
* 📦 [@stackflow/react-ui-core@1.2.1](https://npmjs.com/package/@stackflow/react-ui-core/v/1.2.1)
***
## 2024.12.16
Change to the latest AppBar style [`f9f1399`](https://github.com/daangn/stackflow/commit/f9f1399)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.11.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.11.0)
***
## 2024.11.19
fix(plugin-basic-ui): add `max()` in support query [`eb9ed7c`](https://github.com/daangn/stackflow/commit/eb9ed7c)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.10.1](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.10.1)
***
fix(plugin-basic-ui): add `maxWidth` option in `` [`eb4578f`](https://github.com/daangn/stackflow/commit/eb4578f)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.10.1](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.10.1)
***
## 2024.11.07
feat(link): disable long press behavior in iOS [`db2aa80`](https://github.com/daangn/stackflow/commit/db2aa80)
Released packages:
* 📦 [@stackflow/link@1.6.0](https://npmjs.com/package/@stackflow/link/v/1.6.0)
***
## 2024.10.23
move `` up so that `useStack()` can be used in `Plugin.wrapStack` [`a4a7366`](https://github.com/daangn/stackflow/commit/a4a7366)
Released packages:
* 📦 [@stackflow/react@1.4.1](https://npmjs.com/package/@stackflow/react/v/1.4.1)
***
## 2024.09.26
add `config` property in loader args [`412de46`](https://github.com/daangn/stackflow/commit/412de46)
Released packages:
* 📦 [@stackflow/config@1.2.0](https://npmjs.com/package/@stackflow/config/v/1.2.0)
* 📦 [@stackflow/link@1.5.0](https://npmjs.com/package/@stackflow/link/v/1.5.0)
* 📦 [@stackflow/react@1.4.0](https://npmjs.com/package/@stackflow/react/v/1.4.0)
***
## 2024.09.24
feat: Support `` in Future API [`7b1780f`](https://github.com/daangn/stackflow/commit/7b1780f)
Released packages:
* 📦 [@stackflow/config@1.2.0](https://npmjs.com/package/@stackflow/config/v/1.2.0)
* 📦 [@stackflow/link@1.5.0](https://npmjs.com/package/@stackflow/link/v/1.5.0)
* 📦 [@stackflow/plugin-history-sync@1.7.0](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.7.0)
* 📦 [@stackflow/react@1.4.0](https://npmjs.com/package/@stackflow/react/v/1.4.0)
***
## 2024.09.23
fix(plugin-history-sync): replace json-cycle with flatted [`dc26742`](https://github.com/daangn/stackflow/commit/dc26742)
Released packages:
* 📦 [@stackflow/plugin-history-sync@1.7.0](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.7.0)
***
## 2024.09.11
feat(plugin-basic-ui): add interface to access z-index about AppScreen [`5b1865e`](https://github.com/daangn/stackflow/commit/5b1865e)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.10.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.10.0)
***
## 2024.09.03
chore(react): add typing for step action parameter [`95f2ae8`](https://github.com/daangn/stackflow/commit/95f2ae8)
Released packages:
* 📦 [@stackflow/react@1.3.2](https://npmjs.com/package/@stackflow/react/v/1.3.2)
***
## 2024.08.30
fix: pass initial context to `` [`46ac359`](https://github.com/daangn/stackflow/commit/46ac359)
Released packages:
* 📦 [@stackflow/react@1.3.2](https://npmjs.com/package/@stackflow/react/v/1.3.2)
***
## 2024.08.21
fix(plugin-history-sync): serialize state before pushState, replaceState [`31dc20f`](https://github.com/daangn/stackflow/commit/31dc20f)
Released packages:
* 📦 [@stackflow/plugin-history-sync@1.6.3](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.6.3)
***
## 2024.08.14
feat(core,react): add `targetActivityId` option [`667570b`](https://github.com/daangn/stackflow/commit/667570b)
Released packages:
* 📦 [@stackflow/core@1.1.0](https://npmjs.com/package/@stackflow/core/v/1.1.0)
* 📦 [@stackflow/react@1.3.0](https://npmjs.com/package/@stackflow/react/v/1.3.0)
***
fix(react): specify .mjs extension for esm exports [`1fc97b4`](https://github.com/daangn/stackflow/commit/1fc97b4)
Released packages:
* 📦 [@stackflow/react@1.3.1](https://npmjs.com/package/@stackflow/react/v/1.3.1)
***
## 2024.08.08
fix: enable cyclic dependency and fix promise return in loader [`96ff22d`](https://github.com/daangn/stackflow/commit/96ff22d)
Released packages:
* 📦 [@stackflow/core@1.0.14](https://npmjs.com/package/@stackflow/core/v/1.0.14)
* 📦 [@stackflow/plugin-history-sync@1.6.1](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.6.1)
***
\[Future API] wrap loader return value with use() in useLoaderData() [`5ac2798`](https://github.com/daangn/stackflow/commit/5ac2798)
Released packages:
* 📦 [@stackflow/react@1.2.2](https://npmjs.com/package/@stackflow/react/v/1.2.2)
***
## 2024.08.07
Extract core react hooks as a "@stackflow/react-ui-core" package [`e3dbaac`](https://github.com/daangn/stackflow/commit/e3dbaac)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.9.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.9.0)
* 📦 [@stackflow/react-ui-core@1.1.0](https://npmjs.com/package/@stackflow/react-ui-core/v/1.1.0)
***
## 2024.08.01
fix(plugin-basic-ui): calculate app screen height correctly with safearea [`3e8df1b`](https://github.com/daangn/stackflow/commit/3e8df1b)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.8.4](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.8.4)
***
refactor(plugin-preload): moved a dependency from `dependencies` to `peerDependencies` [`658510f`](https://github.com/daangn/stackflow/commit/658510f)
Released packages:
* 📦 [@stackflow/plugin-preload@1.4.0](https://npmjs.com/package/@stackflow/plugin-preload/v/1.4.0)
***
## 2024.07.31
Change `stack()` to `stackflow()` in Future API [`fc2061a`](https://github.com/daangn/stackflow/commit/fc2061a)
Released packages:
* 📦 [@stackflow/react@1.2.1](https://npmjs.com/package/@stackflow/react/v/1.2.1)
***
change extension esm package .mjs to .js [`7df613a`](https://github.com/daangn/stackflow/commit/7df613a)
Released packages:
* 📦 [@stackflow/config@1.1.0](https://npmjs.com/package/@stackflow/config/v/1.1.0)
* 📦 [@stackflow/plugin-history-sync@1.6.0](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.6.0)
* 📦 [@stackflow/react@1.2.0](https://npmjs.com/package/@stackflow/react/v/1.2.0)
***
feat(plugin-history-sync): sort routes by computed score [`e9bb029`](https://github.com/daangn/stackflow/commit/e9bb029)
Released packages:
* 📦 [@stackflow/plugin-history-sync@1.6.0](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.6.0)
***
## 2024.07.24
fix(plugin-basic-ui): remove `will-change` property [`bef6214`](https://github.com/daangn/stackflow/commit/bef6214)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.8.1](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.8.1)
***
## 2024.07.23
change asterisk(`*`) priority to lowest [`7788fbc`](https://github.com/daangn/stackflow/commit/7788fbc)
Released packages:
* 📦 [@stackflow/plugin-history-sync@1.5.3](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.5.3)
***
## 2024.07.22
style(plugin-basic-ui): move top padding to margin [`3872e44`](https://github.com/daangn/stackflow/commit/3872e44)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.8.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.8.0)
***
## 2024.07.19
use Biome for lint instead of ESLint and fix fixable errors [`edfffda`](https://github.com/daangn/stackflow/commit/edfffda)
Released packages:
* 📦 [@stackflow/compat-await-push@1.1.9](https://npmjs.com/package/@stackflow/compat-await-push/v/1.1.9)
* 📦 [@stackflow/core@1.0.12](https://npmjs.com/package/@stackflow/core/v/1.0.12)
* 📦 [@stackflow/link@1.4.1](https://npmjs.com/package/@stackflow/link/v/1.4.1)
* 📦 [@stackflow/plugin-basic-ui@1.8.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.8.0)
* 📦 [@stackflow/plugin-devtools@0.1.9](https://npmjs.com/package/@stackflow/plugin-devtools/v/0.1.9)
* 📦 [@stackflow/plugin-google-analytics-4@1.1.11](https://npmjs.com/package/@stackflow/plugin-google-analytics-4/v/1.1.11)
* 📦 [@stackflow/plugin-history-sync@1.5.2](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.5.2)
* 📦 [@stackflow/plugin-map-initial-activity@1.0.7](https://npmjs.com/package/@stackflow/plugin-map-initial-activity/v/1.0.7)
* 📦 [@stackflow/plugin-preload@1.3.1](https://npmjs.com/package/@stackflow/plugin-preload/v/1.3.1)
* 📦 [@stackflow/plugin-renderer-basic@1.1.9](https://npmjs.com/package/@stackflow/plugin-renderer-basic/v/1.1.9)
* 📦 [@stackflow/plugin-renderer-web@1.1.9](https://npmjs.com/package/@stackflow/plugin-renderer-web/v/1.1.9)
* 📦 [@stackflow/plugin-stack-depth-change@1.1.3](https://npmjs.com/package/@stackflow/plugin-stack-depth-change/v/1.1.3)
* 📦 [@stackflow/react@1.1.10](https://npmjs.com/package/@stackflow/react/v/1.1.10)
***
feat(plugin-basic-ui): export `useStyleEffect()` [`0f882e8`](https://github.com/daangn/stackflow/commit/0f882e8)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.8.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.8.0)
***
## 2024.07.09
accept only serializable parameters when making domain event [`7df36f1b`](https://github.com/daangn/stackflow/commit/7df36f1b)
Released packages:
* 📦 [@stackflow/core@1.0.11](https://npmjs.com/package/@stackflow/core/v/1.0.11)
* 📦 [@stackflow/plugin-history-sync@1.5.1](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.5.1)
***
## 2024.05.27
Expose `paperRef` from `` and add `!important` paper exit transition [`207b8490`](https://github.com/daangn/stackflow/commit/207b8490)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.7.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.7.0)
***
## 2024.05.24
fix(react): infer `BaseActivities` from given activities [`27246ad7`](https://github.com/daangn/stackflow/commit/27246ad7)
Released packages:
* 📦 [@stackflow/react@1.1.9](https://npmjs.com/package/@stackflow/react/v/1.1.9)
***
## 2024.05.22
Pass initial search params to fallback activity as an activity params [`cea51375`](https://github.com/daangn/stackflow/commit/cea51375)
Released packages:
* 📦 [@stackflow/plugin-history-sync@1.5.0](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.5.0)
***
## 2024.04.24
theme branching via :root's dataset [`20d19546`](https://github.com/daangn/stackflow/commit/20d19546)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.6.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.6.0)
***
## 2024.02.13
feat: add decode interface [`6ad362f7`](https://github.com/daangn/stackflow/commit/6ad362f7)
Released packages:
* 📦 [@stackflow/link@1.4.0](https://npmjs.com/package/@stackflow/link/v/1.4.0)
* 📦 [@stackflow/plugin-history-sync@1.4.0](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.4.0)
* 📦 [@stackflow/plugin-preload@1.3.0](https://npmjs.com/package/@stackflow/plugin-preload/v/1.3.0)
* 📦 [@stackflow/react@1.1.8](https://npmjs.com/package/@stackflow/react/v/1.1.8)
***
Resolved issue where `urlPatternOptions` props were passed to anchor tag. [`43a2f2a4`](https://github.com/daangn/stackflow/commit/43a2f2a4)
Released packages:
* 📦 [@stackflow/link@1.4.0](https://npmjs.com/package/@stackflow/link/v/1.4.0)
***
pass `urlPatternOptions` to `usePreloader()` hook [`8c774239`](https://github.com/daangn/stackflow/commit/8c774239)
Released packages:
* 📦 [@stackflow/link@1.4.0](https://npmjs.com/package/@stackflow/link/v/1.4.0)
***
## 2024.02.05
Sort routes by variable count and refactor useRoutes(), normalizeRouteInput() function [`36613e35`](https://github.com/daangn/stackflow/commit/36613e35)
Released packages:
* 📦 [@stackflow/link@1.4.0](https://npmjs.com/package/@stackflow/link/v/1.4.0)
* 📦 [@stackflow/plugin-history-sync@1.4.0](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.4.0)
* 📦 [@stackflow/plugin-preload@1.3.0](https://npmjs.com/package/@stackflow/plugin-preload/v/1.3.0)
***
## 2024.01.30
fix(core)!: delegate overrideInitialEvents to makeCoreStore [`a32a7e09`](https://github.com/daangn/stackflow/commit/a32a7e09)
Released packages:
* 📦 [@stackflow/core@1.0.10](https://npmjs.com/package/@stackflow/core/v/1.0.10)
* 📦 [@stackflow/react@1.1.7](https://npmjs.com/package/@stackflow/react/v/1.1.7)
***
## 2024.01.22
fix(plugin-history-sync): request history tick on init [`99c34fa4`](https://github.com/daangn/stackflow/commit/99c34fa4)
Released packages:
* 📦 [@stackflow/plugin-history-sync@1.3.17](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.3.17)
***
fix(plugin-history-sync)!: reduce loop count for parsing state [`45cf3f4d`](https://github.com/daangn/stackflow/commit/45cf3f4d)
Released packages:
* 📦 [@stackflow/plugin-history-sync@1.3.16](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.3.16)
***
## 2024.01.19
fix(plugin-stack-depth-change): invoke `onDepthChanged` only when transition is done [`da18f07e`](https://github.com/daangn/stackflow/commit/da18f07e)
Released packages:
* 📦 [@stackflow/plugin-stack-depth-change@1.1.1](https://npmjs.com/package/@stackflow/plugin-stack-depth-change/v/1.1.1)
***
## 2024.01.16
fix hydration mismatch warning in server-side rendering [`d4e86c55`](https://github.com/daangn/stackflow/commit/d4e86c55)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.5.1](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.5.1)
***
fix(plugin-history-sync): fix history queue on init [`f3b2d720`](https://github.com/daangn/stackflow/commit/f3b2d720)
Released packages:
* 📦 [@stackflow/plugin-history-sync@1.3.15](https://npmjs.com/package/@stackflow/plugin-history-sync/v/1.3.15)
***
## 2023.12.23
feat(plugin-basic-ui): export css variables from components [`dd5be87f`](https://github.com/daangn/stackflow/commit/dd5be87f)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.5.0](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.5.0)
***
## 2023.12.22
feat(plugin-stack-depth-change): invoke callback only when depth level has changed [`a2ecfaf4`](https://github.com/daangn/stackflow/commit/a2ecfaf4)
Released packages:
* 📦 [@stackflow/plugin-stack-depth-change@1.1.0](https://npmjs.com/package/@stackflow/plugin-stack-depth-change/v/1.1.0)
***
## 2023.12.01
feat(plugin-basic-ui): update IconBack component (#423) [`7dca11ee`](https://github.com/daangn/stackflow/commit/7dca11ee)
Released packages:
* 📦 [@stackflow/plugin-basic-ui@1.4.1](https://npmjs.com/package/@stackflow/plugin-basic-ui/v/1.4.1)
***