Table of Contents

Namespace Nalu

Classes

AbsoluteNavigation

Defines an absolute navigation.

AutoNavigationIntentAttribute

Tunes how the Nalu navigation source generator registers an intent type for navigation-state restore (the generated AddIntents()). The attribute only governs the automatic restore registration — an intent works as a navigation intent with or without it.

AutoNavigationPageAttribute

Tunes how the Nalu navigation source generator registers a Page class (the generated AddPages()).

AutoOverlayAttribute

Tunes how the Nalu scaffold source generator registers an overlay (the generated AddOverlays()).

AwaitableIntent

Base class for intents that can be awaited.

AwaitableIntent<T>

Base class for intents that can be awaited.

CarouselVirtualScrollLayout

A carousel layout for virtual scroll that arranges items to fill the available space and applies paging snapping behavior.

ClippableViewBoxBase

Extends ViewBoxBase base class with customizable clipping behavior.

DataTemplatesSource

A simple list of DataTemplate to be used in combination with TemplateSourceSelector.

DurationWheel

Represents a view that allows the user to select a duration by rotating a wheel.

ExpanderViewBox

Represents a view box that can be expanded or collapsed with an animation.

ExpanderViewBoxLayoutManager

Layout manager for IExpanderViewBox.

HorizontalCarouselVirtualScrollLayout

A horizontal carousel layout for virtual scroll that arranges items to fill the available space and applies paging snapping behavior.

HorizontalVirtualScrollLayout

A linear virtual scroll layout that arranges items horizontally.

HorizontalWrapLayout

A layout that arranges its children horizontally from left to right, wrapping to the next row when necessary.

HorizontalWrapLayoutManager

Provides layout logic for an IWrapLayout that arranges its children horizontally in sequential position from left to right and top to bottom, wrapping to the next line as necessary.

InteractableCanvasView

A touch enabled SKCanvasView.

InvalidNavigationException

Represents an exception thrown when triggering a navigation that cannot be performed.

KeyboardBindingExtension

Binds to the ambient ScaffoldKeyboardState from anywhere inside the scaffold's element tree — pages, sheet/popup content, chrome: IsVisible="{nalu:KeyboardBinding IsVisible, Converter={StaticResource InvertedBool}}", HeightRequest="{nalu:KeyboardBinding Height}".

KeyboardBindings

The code-behind counterpart of KeyboardBindingExtension: builds bindings to the ambient ScaffoldKeyboardState from anywhere inside the scaffold's element tree.

LinearVirtualScrollLayout

A linear layout for virtual scroll that arranges items in a single line.

Magnet

A Layout that uses the magnet layout system where each element is positioned based on a set of constraints.

NaluCoreMauiAppBuilderExtensions

Extensions for MauiAppBuilder to configure Nalu for Maui applications.

NaluGraphicsPathExtensions

PathF extension methods to allow for path construction using relative coordinates

NaluNavigationServiceExtensions

Syntax sugar extensions for the INavigationService

NaluShell

Nalu shell, the shell navigation you wanted.

NaluShellNavigatingEventArgs

Exposes the navigation which is about to happen and gives the ability to cancel it.

NaluTabBar

A default tab bar implementation for NaluShell to be used with TabBarViewProperty on a TabBar node.

NaluXamlControlsInitializer

Nalu Controls Options.

NaluXamlLayoutsInitializer

Nalu Layouts Options.

NaluXamlVirtualScrollInitializer

Nalu Layouts Options.

NavBarBindingExtension

Binds to the ambient ScaffoldNavBarContext from anywhere inside the scaffold's element tree — custom bars, and page-parented content hosted in the bar (e.g. a TitleViewProperty view, whose own binding context is the page model): IsVisible="{nalu:NavBarBinding CanNavigateBack}".

NavBarBindings

The code-behind counterpart of NavBarBindingExtension: builds bindings to the ScaffoldNavBarContext of the page a given element belongs to.

NavigateCommand

Provides a navigation command that can be used in XAML by providing a Navigation object as parameter.

Navigation

Represents a navigation request.

NavigationConfigurator

Provides a fluent API for configuring Nalu navigation.

NavigationExtensions

INavigationInfo extension methods.

NavigationLifecycleEventArgs

Event arguments for Nalu navigation lifecycle events.

NavigationLifecycleInfo

Holds information about a navigation lifecycle event.

NavigationPop

Represents a segment in a navigation path which navigates to the previous page in the stack.

NavigationRestoreOptions

Configures navigation-state snapshot & restore inside builder.UseNaluNavigationRestore(...).

NavigationSegment

Represents a segment in a navigation path.

NavigationSegmentAttribute

Defines an alternative navigation segment name (by default matches the name of the class).

PopupContainer

The Border acting as a container for the popup content.

PopupPageBase

A base class for pages acting as popups.

PopupScrim

The ViewBox acting as a scrim for the popup.

RefreshEventArgs

Event arguments for the refresh event.

RelativeNavigation

Defines a relative navigation.

Scaffold

Mobile-only (iOS/Android) application root replacing MAUI Shell, driven by Nalu.Maui.Navigation.

ScaffoldAppBuilderExtensions

Provides scaffold registration methods on MauiAppBuilder.

ScaffoldArea

A destination group holding one or more ScaffoldRoots, each hosting an independent navigation stack. A plain area has no visible root switcher: with a single root it is a plain page host; with multiple roots, switching happens through navigation. ScaffoldTabBar derives from it to add a tab UI.

ScaffoldBackButton

The nav bar back button: visible while the stack has pushed pages and the current page is not modal; pops through the navigation engine (guards run). Drop it anywhere inside a custom nav bar — it binds to the inherited ScaffoldNavBarContext.

ScaffoldBottomSheet

Attached presentation properties declared on a sheet CONTENT view — the view states how it prefers to be presented, right where it is defined (XAML-friendly, styleable). Call-site ScaffoldBottomSheetOptions override per property: a set option wins over the attached value, which wins over the built-in default.

ScaffoldBottomSheetOptions

Presentation options of ShowBottomSheetAsync(View, ScaffoldBottomSheetOptions?). The sheet renders in the top overlay layer and slides from the bottom edge over any chrome. Drag is recognized natively (cooperatively with inner scrollables); detent geometry, snapping and pull-down-to-close live at the virtual view layer — no native sheet controller is involved.

ScaffoldBottomSheetView

The bottom sheet chrome of ShowBottomSheetAsync(View, ScaffoldBottomSheetOptions?): a top-rounded surface with an optional drag handle hosting the user content. Drag is recognized natively; detent snapping and pull-down-to-close live at the virtual view layer.

ScaffoldCloseButton

A nav bar close (X) button for modal pages: pops through the navigation engine (guards and lifecycle run); visible on DismissableModal pages. Drop it anywhere inside a custom nav bar — it binds to the inherited ScaffoldNavBarContext.

ScaffoldElementExtensions

Element-tree helpers for reaching the owning Scaffold.

ScaffoldFlyoutButton

A nav bar drawer button: opens the corresponding flyout; visible when its content resolves, the page is not modal, and its ScaffoldFlyoutButtonVisibility policy allows it (by default only at the stack root). Drop it anywhere inside a custom nav bar — it binds to the inherited ScaffoldNavBarContext.

ScaffoldFlyoutMenuGroupHeader

A multi-root area's group header in the default drawer menu: its text-only Title (binding context = the area). Style it with <Style TargetType="nalu:ScaffoldFlyoutMenuGroupHeader">.

ScaffoldFlyoutMenuItemView

The default drawer entry row: icon (when set) + title, with a subtle pill highlight while the root is selected. Binding context = the ScaffoldRoot; style it with <Style TargetType="nalu:ScaffoldFlyoutMenuItemView">.

ScaffoldFlyoutMenuView

The opt-in drawer menu over the owning scaffold's VISIBLE roots — set it as FlyoutStart (or any other flyout content level) AND set the matching FlyoutStartModeProperty to Flyout (or Auto) to get the default navigation drawer. Rules: an area with a single visible root renders as a flat entry (root title + icon, selected highlight); an area with several visible roots renders its text-only Title as a group header with the roots below; ScaffoldTabBar areas are excluded unless IsTabBarDisplayed. Selection rides SelectCommand (engine-routed, guarded, scaffold-wide busy gate); navigation closes the drawer automatically. Deliberately NOT virtualized: a ScrollView over a bindable stack.

ScaffoldFlyoutOptions

Styling of a scaffold drawer side (FlyoutStartOptions / FlyoutEndOptions). Scaffold-level only by design — drawer styling is chrome, not page content. Values apply when the drawer is next opened; the defaults reproduce the presenters' original metrics.

ScaffoldHandler

Neutral-platform handler for Scaffold: registered on every platform, but creating the platform view throws PlatformNotSupportedException — the scaffold is realized on iOS and Android only.

ScaffoldKeyboardState

The live soft-keyboard state of a Scaffold: one observable object per scaffold (KeyboardState), updated from the same platform geometry the keyboard modes react to (iOS keyboardLayoutGuide, Android IME window insets) — per animation frame while the keyboard moves. Bind to it through KeyboardBindingExtension (IsVisible="{nalu:KeyboardBinding IsVisible, Converter={StaticResource Not}}") or KeyboardBindings to collapse, pad or re-arrange content while the keyboard is up, whatever the surface's ScaffoldKeyboardMode.

ScaffoldNavBarButtonBase

Base of the nav bar glyph buttons: a fixed 44dp tap target hosting a Nalu-drawn stroke glyph (or a user icon), visibility and command bound to the inherited ScaffoldNavBarContext.

ScaffoldNavBarContext

The binding context of the mounted nav bar view (the default template or a custom replacement): one observable object PER PAGE, created when the page enters a navigation stack and live while that page's title, title view, binding context, scroll ramp or flyout policies change. The page it describes never changes — during a transition two contexts are alive and each bar shows its OWN page's state. Custom bars bind to it directly (e.g. IsVisible="{Binding CanNavigateBack}", Command="{Binding BackCommand}") — the same contract the built-in ScaffoldBackButton, ScaffoldFlyoutButton and ScaffoldNavBarTitle primitives consume.

ScaffoldNavBarTitle

The nav bar title: renders the current page's TitleViewProperty content when set, the page Title otherwise. Drop it anywhere inside a custom nav bar — it binds to the inherited ScaffoldNavBarContext.

ScaffoldNavBarView

The default Nalu navigation bar component, created automatically as the NavBarTemplateProperty default at the scaffold level. Slots, in order: start-drawer button, back button, title (or the page's TitleViewProperty content), end-drawer button, close button — all driven by the ScaffoldNavBarContext binding context. Style it or replace it entirely with any custom view.

ScaffoldOverlayEventArgs

Describes an overlay lifecycle event raised by OverlayEvent: one Presented / Closed pair per overlay instance, after the fact (never cancelable). Overlays are not pages, so they never appear in NavigationEvent; this is the hook for analytics (screen-like tracking of popups, sheets, drawers and the tab bar panel) and diagnostics.

ScaffoldPageTransition

Cross-platform, declarative push/pop page transition: Enter describes the incoming page's start state, Behind the covered page's end state. Declarative on purpose: both engines interpret it with native animators (iOS animation blocks, Android property animators), keeping every transition seekable and reversible — the pop (and the iOS interactive edge swipe) plays the SAME spec in reverse. Resolution order: page-attached PageTransitionPropertySlideFromBottom for modal-mode pages → scaffold-level value → Default. The spec is resolved from the page that was PUSHED: it enters with it and leaves with it reversed.

ScaffoldPopup

Attached presentation properties declared on a popup CONTENT view — the view states how it prefers to be presented, right where it is defined (XAML-friendly, styleable). Call-site ScaffoldPopupOptions override per property: a set option wins over the attached value, which wins over the built-in default.

ScaffoldPopupOptions

Presentation options of ShowPopupAsync(View, ScaffoldPopupOptions?). Popups render in the top overlay layer — above all chrome and previously presented overlays (popup-over-popup stacks) — and are unaffected by the tab bar's safe-area footprint: only SYSTEM insets shape the presentation area.

ScaffoldRoot

A root destination hosting an independent navigation stack: the root page (created lazily from PageType through the Nalu navigation engine — own DI scope, page-model lifecycle, destroyable while not displayed) plus the pages pushed onto it, preserved while the root is not selected. Its identity in absolute navigation derives from the page type.

ScaffoldTabBar

A ScaffoldArea rendering a Nalu-drawn tab bar that switches between its roots.

ScaffoldTabBarItemView

One item of the default tab bar template: untinted icon (or the built-in ••• glyph for the "More" item), optional badge, truncating label, and the rounded selection highlight. Selection visuals react to the root's IsSelected; the badge to the BadgeTextProperty attached value. The overflow panel reuses this same component, so bar items and overflow rows share one look.

ScaffoldTabBarOverflowView

The overflow panel of the default tab bar template: a rounded panel reusing ScaffoldTabBarItemView (icon over label, badge, selection pill, fixed ItemWidth slots) inside a HorizontalWrapLayout — overflow items look and behave exactly like bar items, wrapping to as many rows as needed. Built fresh on every open (the overflow set is recomputed per layout pass); items dismiss the overlay first, then route selection through the engine.

ScaffoldTabBarView

The default Nalu tab bar component: a floating pill bar rendering one ScaffoldTabBarItemView per visible ScaffoldRoot (built from its title, icons, visibility and badge), with fixed ItemWidth slots and a trailing "More" item collecting the roots that don't fit (shown in a ScaffoldTabBarOverflowView above the bar). Created automatically as the default value of TabBarViewProperty — style it or replace it entirely with any custom view.

ScaffoldTransitionMotion

Motion of one page during a transition, declared as target-relative deltas: translation as a fraction of the page size, plus scale and opacity. The entering page animates FROM this state to natural; the behind page TO this state.

ScrollDirectionValueExtension

Switches the target property between two values from the scroll DIRECTION: scrolling down ActivateThreshold dp animates it from Deactivated to Activated, scrolling back up DeactivateThreshold dp animates it back — wherever in the content that happens (unlike ScrollValueExtension, which maps the absolute offset). Starts deactivated, and the top of the content always restores deactivated. Works on numeric, bool, Color and Brush properties (solid or gradient brush endpoints; bools flip at the transition midpoint), on any element inside the scaffold's tree: TranslationY="{nalu:ScrollDirectionValue Deactivated=0, Activated=80, ActivateThreshold=48, DeactivateThreshold=24}". Must be applied directly on the target's bindable property — Style setters are not supported. For theme-dependent endpoints use ThemeScrollDirectionValueExtension.

ScrollDirectionValueExtensionBase

Shared machinery of ScrollDirectionValueExtension and ThemeScrollDirectionValueExtension: a two-state value driven by the scroll DIRECTION rather than the scroll position. Scrolling down by ActivateThreshold dp latches the activated state, scrolling up by DeactivateThreshold dp latches back to deactivated (the initial state), wherever in the content that movement happens — the classic "chrome slips away as you read on, returns the moment you scroll back" pattern. Each state flip animates the target between the two endpoint values over ActivateDuration/DeactivateDuration. Not derivable outside this library — use ScrollDirectionValueExtension or ThemeScrollDirectionValueExtension.

ScrollValueExtension

Interpolates the target property from the page's scroll position: the value moves from From to To as ScrollOffset crosses the [RampStart, RampEnd] window (defaulting to the page-level ScrollRampStartProperty/ScrollRampEndProperty ramp). Works on numeric, bool, Color and Brush properties (solid or gradient brush endpoints; bools flip at the transition midpoint), on any element inside the scaffold's tree: Opacity="{nalu:ScrollValue From=0, To=1}". Must be applied directly on the target's bindable property — Style setters are not supported. For theme-dependent endpoints use ThemeScrollValueExtension.

ScrollValueExtensionBase

Shared machinery of ScrollValueExtension and ThemeScrollValueExtension: builds the multi-binding over the ambient scroll channel (ScrollOffset plus the page-level ScrollRampStartProperty/ScrollRampEndProperty ramp defaults and the app theme), targeting any element in the scaffold's tree — a page carrying the attached nav bar appearance properties included. Not derivable outside this library — use ScrollValueExtension or ThemeScrollValueExtension.

SlideBox

A pager presenting one of an ordered set of lazily-realized, state-retaining slides, with animated index navigation, optional interactive swiping and neighbor peeking.

SlideBoxHandler

Handler for SlideBox.

SlideBoxItem

A slide of a SlideBox: a lazily-realized DataTemplate with a participation flag.

SlideBoxLayoutManager

Lays out every realized slide in the page slot: bounds minus padding minus the peek bands. Slides are positioned by translation (see SlideBox), so all children share the same frame.

SlideBoxSelectionChangedEventArgs

Event data for SelectedIndexChanged.

SoftKeyboardManager

Manager for handling soft keyboard adjustments.

SoftKeyboardState

Exposes the state of the soft keyboard.

TemplateBox

A ViewBox that uses a DataTemplate or DataTemplateSelector to render content.

TemplateBoxBase

A ViewBox base class that uses a DataTemplate to render content.

TemplateContentPresenter

A ViewBox to display the TemplateContent.

TemplateSourceSelector

A DataTemplateSelector that selects a DataTemplate based on the DataTemplate provided as the item. It also ensures that the BindingContext of the created View is set to the BindingContext of the container.

ThemeScrollDirectionValueExtension

The theme-aware ScrollDirectionValueExtension: endpoints are declared per app theme and a theme change re-evaluates the value immediately — Background="{nalu:ThemeScrollDirectionValue DeactivatedLight=White, ActivatedLight=Transparent, DeactivatedDark=Black}" (dark endpoints fall back to the light ones when omitted).

ThemeScrollValueExtension

The theme-aware ScrollValueExtension: endpoints are declared per app theme and a theme change re-evaluates the value immediately — Background="{nalu:ThemeScrollValue FromLight=Transparent, ToLight=White, ToDark=Black}" (dark endpoints fall back to the light ones when omitted).

ToggleTemplate

A ViewBox that uses a DataTemplate to render content based on a boolean value.

TouchEventArgs

Represents the event data for touch events.

VerticalCarouselVirtualScrollLayout

A vertical carousel layout for virtual scroll that arranges items to fill the available space and applies paging snapping behavior.

VerticalVirtualScrollLayout

A linear virtual scroll layout that arranges items vertically.

VerticalWrapLayout

A layout that arranges its children vertically from top to bottom, wrapping to the next column when necessary.

VerticalWrapLayoutManager

Provides layout logic for an IWrapLayout that arranges its children vertically in sequential position from top to bottom and left to right, wrapping to the next column as necessary.

ViewBox

ViewBox is container that is used to display a single view.

ViewBoxBase

ViewBoxBase is a base class a IViewBox that is used to display a single view.

ViewBoxContentChangedEventArgs

Event arguments for the ContentChanged event.

ViewBoxHandler

Handler for the IViewBox view.

ViewBoxLayoutManager

Layout manager for ViewBox.

VirtualScroll

A scrollable view that virtualizes its content.

VirtualScrollChange

Describes a change in the virtual scroll data.

VirtualScrollChangeFactory

Factory class for creating sectioned virtual scroll changes.

VirtualScrollChangeSet

Defines a set of changes in the virtual scroll.

VirtualScrollGroupedListAdapter

An adapter that wraps a grouped list for use with VirtualScroll.

VirtualScrollGroupedNotifyCollectionChangedAdapter<TSectionCollection, TItemCollection>

An adapter that wraps a grouped observable collection for use with VirtualScroll.

VirtualScrollGroupedObservableCollectionAdapter<TSectionCollection, TItem>
VirtualScrollLayout

Base class for virtual scroll layouts.

VirtualScrollListAdapter

An adapter that wraps an IEnumerable for use with VirtualScroll.

VirtualScrollNotifyCollectionChangedAdapter<TItemCollection>

An adapter that wraps an observable collection for use with VirtualScroll.

VirtualScrollObservableCollectionAdapter<TItem>

An adapter that wraps an observable collection for use with VirtualScroll supporting drag and drop.

VirtualScrollScrolledEventArgs

Event arguments for the scrolled event in VirtualScroll.

VirtualScrollSizingStrategyTypeConverter

Type converter for VirtualScrollSizingStrategy.

WrapLayout

Base class for wrap layouts that arrange children in sequential positions, wrapping to the next row or column as necessary.

Structs

ScaffoldSheetDetent

One resting height of a bottom sheet. Create via Content (the sheet hugs its content's measured height), Fraction(double) (of the available presentation height) or Height(double) (absolute device-independent units). Every form is clamped to the available height.

VirtualScrollCommandScrollToArgs

Arguments for the ScrollTo command.

VirtualScrollDragDropInfo

Information about a drop-over operation in a VirtualScroll.

VirtualScrollDragInfo

Information about a drag operation in a VirtualScroll.

VirtualScrollDragMoveInfo

Information about a drag move operation in a VirtualScroll.

VirtualScrollRange

Represents a range of visible items in a VirtualScroll.

VirtualScrollSizingStrategy

The sizing strategy of a VirtualScroll along its scrolling axis (the cross axis always follows the parent's constraint — a virtualized list cannot know the size of items it has not realized).

Interfaces

IAbsoluteNavigationBuilder

Represents an absolute navigation.

IAbsoluteNavigationInitialBuilder

Represents the initial definition of an absolute navigation.

IAppearingAware

INavigationService will invoke OnAppearingAsync() method when the page is appearing and no navigation intent has been provided.

IAppearingAware<TIntent>

INavigationService will invoke OnAppearingAsync(TIntent) method when the page is appearing and a TIntent navigation intent has been provided.

IDisappearingAware

INavigationService will invoke OnDisappearingAsync() method when the page is disappearing due to another page being pushed onto the navigation stack.

IEnteringAware

INavigationService will invoke OnEnteringAsync() method when the page is being pushed onto the navigation stack and no navigation intent has been provided.

IEnteringAware<TIntent>

INavigationService will invoke OnEnteringAsync(TIntent) method when the page is being pushed onto the navigation stack and a TIntent navigation intent has been provided.

IExpanderViewBox

Represents a view box that can be expanded or collapsed.

IIntentHydrator<TIntent>

Rehydrates a restored intent's non-serialized state before its page is recreated. Properties marked with JsonIgnoreAttribute come back default after a restart; during the replay, BEFORE navigating with a restored intent, the engine walks the already-restored stack from the TOP page down to the root looking for the first lifecycle target (page model, or the page itself) implementing this interface for the intent's type, and awaits HydrateAsync(TIntent) so it can fill the missing properties — then navigates with the finalized intent.

IIntentSerializer

Serializes captured intents into the navigation-state snapshot and back. Intents are plain objects serialized as-is (JSON by default): mark properties that cannot (or should not) serialize with JsonIgnoreAttribute and rehydrate them on restore via IIntentHydrator<TIntent>. The default implementation uses System.Text.Json reflection; supply a source-generated JsonSerializerContext via IntentSerializerContext (or replace this service in DI) for trimming/NativeAOT-safe apps.

ILeavingAware

INavigationService will invoke OnLeavingAsync() method when the page is about to being removed from the navigation stack.

ILeavingGuard

INavigationService will invoke CanLeaveAsync() method when the page is requested to be removed from the navigation stack.

INavigationConfiguration

Provides Nalu navigation configuration.

INavigationInfo

Represents a navigation request.

INavigationRestore

Navigation-state snapshot & restore (opt-in via builder.UseNaluNavigationRestore(...)): after an app restart the engine replays the last captured navigation — root selection, pushed stack and the intents that materialized those pages — landing the user exactly where they were. Restore replays navigation; it never serializes page UI state.

INavigationRestoreStore

Persists the navigation-state snapshot. The default store is a JSON file in the app cache directory; replace in DI for custom locations or formats.

INavigationSegment

Represents a segment in a navigation path.

INavigationService

Provides shell navigation abstraction.

INavigationServiceProvider

Provides navigation-scoped services.

IOverlayRef

The presentation handle an overlay MODEL receives (via constructor injection) to close its own overlay — mirroring how page models receive INavigationService.

IOverlayService

MVVM overlay presentation: shows model-first popups and bottom sheets registered via AddOverlay<TModel, TView>(), mirroring the navigation engine's conventions — intents delivered to OnEnteringAsync(TIntent), ILeavingAware and IAsyncDisposable/IDisposable honored on close, one DI scope per presentation.

IRelativeNavigationBuilder

A relative navigation.

IRelativeNavigationInitialBuilder

A relative navigation where only push operations are allowed.

IRelativeNavigationPushOnlyBuilder

A relative navigation where only push operations are allowed.

IReorderableVirtualScrollAdapter

An adapter that supports reordering of items via drag and drop.

IScaffoldConfigurator

Configures the scaffold services inside UseNaluScaffold.

IScaffoldFlyoutController

Page-scope service opening and closing the ambient Scaffold's drawers — page models control the flyout without a scaffold reference. Registered by UseNaluScaffold(); every call is a no-op when the app is not hosted in a scaffold or the requested drawer does not exist (no content, or its mode disables it).

IScaffoldPopup

The lifetime handle of a presented popup or bottom sheet: close it programmatically, observe when it closes (for ANY reason — CloseAsync(), scrim tap, system back, pull-down, or a navigation dismissing all overlays), or bind its lifetime to a scope with await using.

IScaffoldPopupPlacer

Full custom popup placement: receives the safe presentation area, the measured content size and the anchor bounds (when an anchor was provided), all in scaffold device-independent coordinates, and returns the popup rectangle.

IViewBox

ViewBoxBase is a base class a IViewBox that is used to display a single view and supports clipping.

IVirtualScroll

A scrollable view that virtualizes its content.

IVirtualScrollAdapter

Adapter interface for virtual scroll data sources.

IVirtualScrollController

Controller interface for VirtualScroll refresh and scroll functionality.

IVirtualScrollDragHandler

A handler for drag and drop operations on items within a virtual scroll.

IVirtualScrollLayout

Represents a layout for the virtual scroll.

IVirtualScrollLayoutInfo

Information about headers and footers in a virtual scroll layout.

IWrapLayout

Defines the contract for a layout that arranges its children in sequential position from left to right and top to bottom, wrapping to the next line as necessary.

Enums

ExpanderAnimationBehavior

Describes the behavior of the expander animation.

NavigationBehavior

Defines the navigation behavior.

NavigationIntentBehavior

Defines how lifecycle events are triggered when a navigation intent is detected.

NavigationLeakDetectorState

Defines the navigation leak detector state.

NavigationLifecycleEventType

The type of lifecycle event.

NavigationLifecycleHandling

Defines how the lifecycle event has been handled.

PopupPresentationMode

Defines the presentation mode

ScaffoldFlyoutButtonVisibility

Nav bar drawer-button policy for a flyout, attached via FlyoutStartButtonVisibilityProperty / FlyoutEndButtonVisibilityProperty alongside the flyout content. The button only ever shows when the drawer is actually available (content resolves and its mode enables it), and never on modal pages.

ScaffoldFlyoutMode

Behavior of a scaffold drawer side (FlyoutStartModeProperty / FlyoutEndModeProperty). A drawer exists only when its content resolves non-null AND its mode resolves to something other than Disabled — both sides default to Disabled, so enabling a drawer is always explicit.

ScaffoldFlyoutSide

The logical edge a scaffold flyout slides in from, mapped to the physical edge by the scaffold's flow direction.

ScaffoldKeyboardMode

How a scaffold-hosted surface — a page, a bottom sheet, a popup — reacts to the soft keyboard. Declared through KeyboardModeProperty (on a page, on the scaffold as the app-wide page default, on sheet/popup content) or the sheet/popup call-site options. Exactly one surface reacts at a time: the topmost presented sheet or popup, otherwise the page.

ScaffoldOverlayEventType

The lifecycle moments reported by OverlayEvent.

ScaffoldOverlayKind

What kind of overlay an overlay event is about.

ScaffoldPageMode

Presentation mode of a page hosted by the Scaffold, attached via PageModeProperty.

ScaffoldPopupPlacement

Where a popup is placed within the safe presentation area.

ScaffoldSystemBarStyle

The style of the system status bar (and, on Android, gesture navigation bar) icons over a scaffold page — settable per page, per ScaffoldArea or per scaffold via SystemBarStyleProperty (most specific non-Auto wins).

ScaffoldTabBarVisibility

Tab bar visibility policy for a page hosted by a ScaffoldTabBar area, attached via TabBarVisibilityProperty.

ScrollValueExtrapolation

How a scroll-value interpolation behaves outside its [RampStart, RampEnd] window.

SlideBoxOrientation

Orientation of the SlideBox sliding axis.

SoftKeyboardAdjustMode

Enumeration for soft keyboard adjustment modes.

VirtualScrollChangeOperation

The operation that caused the change. Extends Nalu.VirtualScrollFlattenedChangeOperation with section-level operations.

VirtualScrollSizingMode

How a VirtualScroll sizes itself along its scrolling axis.

WrapLayoutExpandMode

Defines how remaining space is distributed among items in a IWrapLayout that have an expand ratio greater than 0.

WrapLayoutItemsAlignment

Defines how items are aligned within each line of a IWrapLayout.