UI Library

AppShell

Default

UI Library

Canonical shared UI primitives for the sibling apps. Each page demonstrates one component, its props, and its customization surface.


Props

PropTypeDefaultNotes
openbooleantruePane visibility. Bindable; or drive via onOpenChange.
paneSizenumber288Bindable pane width in px; clamped to min/max.
collapseMode'hide' | 'rail''hide'Rail keeps a 64px rail with drag-to-collapse; hide removes the pane.
railWidthnumber64Rail width and drag-collapse threshold in rail mode.
minnumber160Minimum drag width (rail mode uses railWidth instead).
maxnumber480Maximum drag width.
defaultSizenumber288Width used on rail re-open and NaN fallback.
storageKeystring | undefinedundefinedOptional persistence; default none (session-only, no storage touch).
showTogglebooleantrueHeader collapse toggle (Button + MenuIcon).
toggleShowLabelstring | undefinedi18n 'appShell.showPane'Label override for the closed toggle.
toggleHideLabelstring | undefinedi18n 'appShell.hidePane'Label override for the open toggle.
resizeLabelstring | undefinedi18n 'appShell.resize'Splitter aria label override.
onOpenChange(open: boolean) => voidFires on toggle and rail collapse.
onPaneChange(size: number) => voidFires on splitter drag.
onDragEnd() => voidFires after drag; width already persisted.
headerLeftSnippetBrand content left of the header toggle row.
headerRightSnippetControls (theme, language) at the header right.
leftPaneSnippetLeft pane content; render a rail variant when closed.
childrenSnippetMain content.