Separate out into files

This commit is contained in:
2026-07-22 11:37:46 +00:00
parent 6aed7606ad
commit 5a514906eb
11 changed files with 906 additions and 657 deletions

View File

@@ -20,6 +20,28 @@ Pointer movement changes only a CSS progress variable. Built-in presentations re
Settling animations are interruptible. A new button navigation or recognized gesture waits only for any in-flight Vue Router guard/history commit, immediately finalizes the old visual transaction, and begins from the newly authoritative route. It never waits for the previous spring to finish. Leading-edge back recognition runs in the navigator capture phase so partially visible component layers cannot steal the physical back edge.
### Runtime domains
`runtime.ts` is the public transaction coordinator. Its supporting domains live
under `packages/core/src/runtime`:
- `vue-router-bridge.ts` contains all Vue Router-specific integration: route
resolution and loading, commit operations, `afterEach` reconciliation,
browser-history completion, and the scoped Options API `$route` bridge.
- `history-ledger.ts` owns native push, replace, and pop history semantics.
- `view-store.ts` owns mounted route entries, active state, preview reuse,
eviction, underlay protection, and cache statistics.
- `animation.ts` owns gesture commit policy, view preparation, and spring
settling.
- `presentations.ts` owns built-in and application-defined presentations.
- `diagnostics.ts` owns runtime diagnostic subscriptions and event emission.
- `route-entry.ts` owns route-entry construction, labels, timestamps, and
sibling direction.
Keeping the Vue Router adapter separate makes the compatibility work visible
and prevents history, cache, rendering, and animation policy from accumulating
inside the integration layer.
Component gesture owners stop propagation before a containing navigator can claim the same pointer. Navigator gestures wait for horizontal intent, use pointer capture, respect form controls and `data-native-gesture="ignore"`, and preserve normal vertical scrolling through `touch-action: pan-y`.
## Route metadata