kaisel_core library

Pure-Dart navigation core for the kaisel router.

Sealed routes, a stack-as-state KaiselRouter, a guard pipeline, and URL codecs — with no Flutter dependency. The Flutter widgets (delegate, shells, modules, adaptive layouts) live in the kaisel package, which re-exports everything here.

Classes

ConfigCodecWithModules<R extends KaiselRoute>
A KaiselConfigCodec that composes a base codec with one or more module mounts.
KaiselActiveFlow<R extends KaiselRoute>
A read-only view of one entry in the active modal flow stack.
KaiselCodec<R extends KaiselRoute>
Bidirectional mapping between a route and a URL.
KaiselConfig<R extends KaiselRoute>
The configuration that flows between the URL bar and the router.
KaiselConfigCodec<R extends KaiselRoute>
Maps URLs to and from a full KaiselConfig.
KaiselModalRoute<T>
Marker interface for routes that present a modal sub-flow returning a value of type T.
KaiselModuleConfig
Configuration for a mounted RouteModule.
KaiselNavigator
Non-generic view of a KaiselRouter's navigation primitives.
KaiselNestedConfig
State of a nested router (shell, module, future kinds) at the moment a URL is captured. Sealed so KaiselConfig.nestedState can carry at most one kind, statically.
KaiselRoute
Base marker for application route types.
KaiselRouter<R extends KaiselRoute>
The navigation stack as observable state.
KaiselShellConfig
Configuration for a BranchedShellRouter. Describes which branch is active and the active branch's stack only.
KaiselSingleStackCodec<R extends KaiselRoute>
Adapts a single-route KaiselCodec to the multi-route KaiselStackCodec interface. Useful for migrating without rewriting your codec.
KaiselStackCodec<R extends KaiselRoute>
Maps URLs to and from full route stacks.
ModuleMount<HostR extends KaiselRoute>
A module mount declaration: the host's marker route, the URL prefix the module answers to, and the module's URL codec.
ModuleStackCodec<R extends KaiselRoute>
Codec for a module's URL structure, relative to whatever prefix the host mounts the module at.
StackToConfigCodec<R extends KaiselRoute>
Adapter so a KaiselStackCodec (stack-only URLs) works wherever a KaiselConfigCodec is required.
UntypedModuleStackCodec
Type-erased view of ModuleStackCodec. Module authors implement the typed ModuleStackCodec subclass; the composer (ConfigCodecWithModules) uses this untyped interface so a single List<ModuleMount> can hold codecs for modules with different internal route types.

Typedefs

KaiselGuard<R extends KaiselRoute> = FutureOr<List<R>> Function(List<R> current, List<R> proposed)
A guard transforms a proposed navigation stack before it is applied.