{"slug":"adaptive-app-layout","name":"AdaptiveAppLayout","packageName":"@liquidify/react","category":"presentational","maturity":"experimental","summary":"Adaptive shell with independently controlled bars and sidebar.","importPath":"@liquidify/react/adaptive-app-layout","sourcePath":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx","specPath":"packages/@liquidify/react/src/components/adaptive-app-layout/spec.md","documentationStatus":"missing","storyIds":["presentational-adaptive-app-layout--composed-controls","presentational-adaptive-app-layout--default","presentational-adaptive-app-layout--disabled-controls"],"additionalExports":["AdaptiveAppBarOptions","AdaptiveBarOptions","AdaptiveBarPlacement","AdaptiveBarState","AdaptiveInteractionTarget","AdaptiveLayoutController","AdaptiveLayoutInteractionOptions","AdaptiveLayoutProvider","AdaptiveLayoutProviderProps","AdaptiveLayoutReason","AdaptivePresentationChange","AdaptiveScrollBehavior","AdaptiveStateChange","useAdaptiveAppLayout","UseAdaptiveAppLayoutOptions","useAdaptiveLayoutContext","useAdaptiveLayoutInteraction"],"anatomy":[],"props":[{"name":"actions","type":"LayoutSlot","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"appName","type":"string | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"asChild","type":"undefined","required":false,"description":"Multiple owned elements cannot be merged onto one child.","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"bottomBar","type":"AdaptiveAppBarOptions | null | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"children","type":"ReactNode","required":true,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"className","type":"string | undefined","required":false,"description":"Optional additional CSS class merged into the glass surface class. The supported per-instance customisation seam: override any `--lq-*` custom property from this class's CSS — the token cascade the engine reads (ADR-0004). No raw inline style is involved, so this stays ADR-0003 clean.","declaredIn":"packages/@liquidify/react/src/liquid-component-props.ts"},{"name":"compactNavigation","type":"{ label: string; icon?: ReactNode; } | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"contentInset","type":"\"automatic\" | \"none\" | undefined","required":false,"description":"Automatic content clearance, or caller-owned padding using the public inset tokens.","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"contentProps","type":"DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement> | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"defaultSidebarOpen","type":"boolean | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/shared/use-adaptive-app-layout.ts"},{"name":"gap","type":"LayoutSpacing | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"leading","type":"LayoutSlot","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"navigation","type":"LayoutSlot","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"onPresentationChange","type":"((change: AdaptivePresentationChange) => void) | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/shared/use-adaptive-app-layout.ts"},{"name":"onSidebarOpenChange","type":"((open: boolean, details: AdaptiveStateChange<boolean>) => void) | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/shared/use-adaptive-app-layout.ts"},{"name":"ref","type":"Ref<HTMLDivElement> | undefined","required":false,"description":"Forwarded ref to the rendered element — the component's native root (or the merged child element on a component that opts into {@link SlottableProps}). Generic over `E` (charter `docs/api-conventions.md` §4 rule 1, default `HTMLElement`) so a component with a polymorphic root (Link's navigation / action mode union, Text's `as`) can instantiate the concrete element per variant instead of leaving every consumer with a widened `Ref<HTMLElement>`. A component that does not narrow simply inherits the `HTMLElement` default — source-compatible with every pre-existing non-generic `extends ControlProps`.","declaredIn":"packages/@liquidify/react/src/liquid-component-props.ts"},{"name":"scrollBehavior","type":"AdaptiveScrollBehavior | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/shared/use-adaptive-app-layout.ts"},{"name":"separation","type":"LayoutSpacing | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"showCompactNavigation","type":"boolean | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"showSidebar","type":"boolean | undefined","required":false,"description":"Defaults to whether navigation or sidebar content was supplied.","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"sidebar","type":"LayoutSlot","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"sidebarContentProps","type":"DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement> | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"sidebarFooter","type":"LayoutSlot","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"sidebarOpen","type":"boolean | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/shared/use-adaptive-app-layout.ts"},{"name":"sidebarProps","type":"DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement> | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"sidebarTitle","type":"string | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"sidebarToggle","type":"LayoutSlot","required":false,"description":"Undefined supplies the standard toggle; null omits it.","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"skipLinkLabel","type":"string | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"title","type":"string | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"topBar","type":"AdaptiveAppBarOptions | null | undefined","required":false,"description":"Null omits the entire bar. Undefined uses default content.","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"},{"name":"visualDebug","type":"boolean | undefined","required":false,"description":"","declaredIn":"packages/@liquidify/react/src/components/adaptive-app-layout/adaptive-app-layout.tsx"}],"swiftUIMap":[{"swiftUI":"*(web-only, no direct SwiftUI analogue)*","react":"`navigation / sidebar / topBar / bottomBar`","notes":"Web layout composition of navigation and independent bar slots.","relationship":"web-only"},{"swiftUI":"*(web-only, no direct SwiftUI analogue)*","react":"`contentInset`","notes":"Web scroll-container clearance; automatic measurement or caller-owned padding.","relationship":"web-only"},{"swiftUI":"*(web-only, no direct SwiftUI analogue)*","react":"`scrollBehavior / onPresentationChange`","notes":"Web scrolling policy and presentation requests, not a direct SwiftUI modifier.","relationship":"web-only"}],"tokens":[],"keyboard":[],"variants":[],"variantPages":[]}