canon_flutter 0.13.1
canon_flutter: ^0.13.1 copied to clipboard
Flutter bindings for canon — router delegate, screen/entity scopes, and reactive view-state widgets over the pure-Dart canon runtime.
0.13.1 #
- BREAKING BEHAVIOUR: navigation now survives process death on every mount path. Restoration moved from
ScreenManagerontoNavDelegate, soMaterialApp.router(routerDelegate:)restores too — it never did. No consumer wiring: the delegate claims the root restoration bucket itself, and an app that relied on a cold start landing at the seed will now land where the user left.
0.13.0 #
- A store read says which subscription it means:
idsOffor the key sequence,entitiesOffor the rows.ofis gone — it read ids while looking like it read entities, and a screen that summed or filtered subscribed to the wrong thing.
0.12.2 #
- EntityScope survives mounting for an id absent from the store.
0.12.1 #
- README regency example on the one-store cache pattern.
0.12.0 #
- canon ^0.31.0 (the grammar reads
.again;.cycledretired). ScreenGraph— the face-bearing graph construction:root/chrome/pageOf/observerstyped here;.delegateandScreenManagertake it.
0.11.1 #
- Docs: consumer-named row globals, the identity unit read.
0.11.0 #
UnitMemory.idOf(context)— the identity read; rebuilds only when the state's id changes.
0.10.0 #
- canon ^0.30.0 (regent 0.12:
Regencygraphs, CRUD bricks; the @regents enum retires).
0.9.0 #
- canon ^0.29.0 (regent 0.11: judgments).
0.8.0 #
- canon ^0.28.0 (the engine folds: NavOps over NavState).
- Identity ambience:
ScreenScope,EntityScope, and the newIdScopeall plant their id, NODE-TAGGED (the screen's grammar node; the store's generated tag;IdScope(node:)) — typed reads resolve to the nearest MATCHING node, so erasure can never answer with another identity's id; untagged plants stay wildcards. the rawIdScopereads (of/navOf/screenOf/itemOf) are@internal— runtime-unchecked type claims; consumers read through the generated<Node>IDfaces, which supply the node.EntityScope.idOfreads the entity's only,context.idOf(.screen)a named screen's. store.item(id, child: …)— the itemBuilder spelling of planting anEntityScope.- Ambient-id reads:
store.entityOf(context, [id])(the keyed reactive read — ambient id when omitted, explicit when passed; replacesstore(id).of(context)),store.idOf(context)(the enclosing scope's id ONLY if planted from this store — identity with provenance, null otherwise), andsetUnit.containsIdOf(context)(the in-flight membership idiom).
0.7.0 #
- BREAKING:
loadingOfremoved — in-flight status is a ledger row; read it withof. - canon ^0.27.0.
0.6.0 #
- canon ^0.26.0 (the read-callback guard wave).
0.5.0 #
- canon ^0.25.0, canon_codec ^0.3.0.
0.4.0 #
FragmentPath.ofreactive read; canon 0.23 wave.
0.3.0 #
- The canon 0.22 / regent 0.4 wave.
0.2.1 #
- Track canon 0.21.1 (regent 0.3 line).
0.2.0 #
ScreenScopewraps the consumer's page chrome (thechromehook) — context reads work in scaffolds and nav bars.
Changelog #
0.1.1 #
- README leads with the Flutter-binding identity.
0.1.0 #
-
Initial release: the Flutter presentation binding for pure-Dart
canon—NavHostdelegate,ScreenScope/EntityScope, reactive reads (store(id).of(context),Unit.of,loadingOf,Query/Fragmentview-state), path URL strategy. -
Initial release: the Flutter layer split out of canon.