Parallax geometry constants used by the interactive back-swipe
region in UiNavigationHost. Declared at the library level so
tests can exercise the same numbers the implementation renders.
Inline attachment staging, intended for UiChatComposer's attachmentShelf.
A single media preview keeps its natural ratio, batches scroll horizontally,
and document rows scroll vertically. The conversation retains visible space.
Compact centered conversation title, with leading navigation and trailing
avatar/actions. Grows with text scaling; callers provide localized labels
and accessible action widgets.
Conversation history composition using the existing anchor-preserving
scroller. Items are oldest-first and retain their application IDs. Supply
localized loading/empty/error and typing surfaces; state is application-owned.
An application message or event projected into presentation data.
Event entries use isMessage false and break sender runs without losing
their stable history ID. The builder receives ready-to-use grouping.
Chat uses the kit's adaptive master/detail navigation directly: root routes
on phones, overlay detail on tablets, and inbox/detail panes on desktop.
Keeping the same controller preserves selection and navigation contracts.
Deterministic, pure geometry for a persistent-chrome accessory release:
a bar recedes by exactly the width an accessory claims, while that
accessory grows from a source point inside the bar to an independent
floating surface. See doc/contour.md.
Persistent chrome releasing an independent accessory surface — the
second Contour interaction model, distinct from UiContourRelease's
single shared capsule.
Tracks a horizontal drag starting in the leading-edge strip and drives
an interactive translation on child, calling onTriggered once the
drag passes either the distance or velocity threshold on release.
Experimental: turns a drag anywhere on child into a media-viewer style
carry of the page, publishing UiFluidDragState for the route transition
to render.
Experimental: a compact surface that opens its page with
UiFluidPageRoute and hides itself while the page is open, so the
in-flight copy is the only visible instance.
iOS-style back affordance: a chevron, with label kept for
accessibility and the title of the long-press history menu
even when it isn't painted. Set showLabel to restore the previous
chevron-plus-title look for apps that still want it.
Tracks the full stack of top-level PageRoutes pushed through whichever
Navigator this observer is attached to, plus a title registered by
each page's own chrome — so UiSliverNavigationBar's long-press-back
history menu can show the entire stack for apps using a plain Flutter
Navigator (Navigator.push/pushNamed), the same way
UiNavigationControllerScope already does for apps built on
UiNavigationController.
App-wide fallback for UiPageRoute's style and swipe-back behavior.
UiApp provides this from its own defaultPageTransitionStyle /
defaultPageSwipeBackEnabled constructor arguments; BuildContext.pushUiPage
reads it whenever a call doesn't override those explicitly, so changing
the app-wide default and overriding a single push both work — one isn't
an escape hatch that bypasses the other.
Helpers for building SystemUiOverlayStyle values from a background
color. Exposed so consumers can cache/reuse the result when they need
the raw style object (e.g. to pass into an external AnnotatedRegion).
A PageRoute mixin that adds iOS-style interactive edge-swipe-to-go-back
support to a route while leaving the visual page transition entirely up
to the mixing class's own ModalRoute.buildTransitions override.