Package-level declarations

Properties

Link copied to clipboard

Carries the innermost Column's Compose ColumnScope down the tree, or null when no ancestor Column has provided one yet — read by Modifier.size() to resolve a child's vertical Weight sizing behavior. Provided by ColumnTileRenderer. RowTileRenderer doesn't reset this back to null, so a Row nested inside a Column still sees the outer Column's scope through it — this only matters in practice because Modifier.size() checks LocalColumnScope exclusively for vertical Weight (never for horizontal), so it doesn't affect a Row's own horizontal weight resolution, but a Row's own child declaring a vertical Weight would resolve against the outer Column's scope rather than being ignored. A custom container tile that wants its children to support weight should provide this the same way Column does.

Link copied to clipboard

Carries the innermost FlexBox's Compose FlexBoxScope down the tree, or null when no ancestor FlexBox has provided one — read by Modifier.size() to resolve a child's Flex sizing behavior (grow/shrink/basis/align-self/order). Provided by FlexBoxTileRenderer; unlike LocalColumnScope/LocalRowScope/LocalLazyItemScope, no other container renderer resets this back to null, so it keeps propagating through any descendant subtree until another FlexBox provides a fresh value.

Link copied to clipboard

Carries the innermost FlowRow's Compose FlowRowScope down the tree, or null when no ancestor FlowRow has provided one — read by Modifier.size() to resolve a child's horizontal Weight (via flowRowScope.weight) and vertical FillRow sizing behavior. Provided by FlowRowTileRenderer, which also resets LocalRowScope/LocalLazyItemScope to null; reset back to null in turn by RowTileRenderer/LazyRowTileRenderer.

Link copied to clipboard

Carries the innermost Grid's Compose GridScope down the tree, or null when no ancestor Grid has provided one — read by Modifier.size() to resolve a child's Span sizing behavior (row/column span placement). Provided by GridTileRenderer; unlike LocalColumnScope/LocalRowScope/LocalLazyItemScope, no other container renderer resets this back to null, so it keeps propagating through any descendant subtree until another Grid provides a fresh value.

Link copied to clipboard

Carries the innermost LazyColumn/LazyRow item's Compose LazyItemScope down the tree, or null when the current tile isn't a direct item of a lazy list — read by Modifier.size(), checked before LocalColumnScope/LocalRowScope/LocalFlowRowScope, so a Weight-sized child of a LazyColumn/LazyRow gets fillParentMaxWidth/Height treatment (the closest lazy-list equivalent) instead of a ColumnScope/RowScope weight, consistent with lazy lists never publishing those scopes to their children. Provided by LazyColumnTileRenderer/ LazyRowTileRenderer; reset to null by every non-lazy container renderer (Column/Row/Card/FlowRow).

Link copied to clipboard

Carries the innermost Row's Compose RowScope down the tree, or null when no ancestor Row has provided one yet — read by Modifier.size() to resolve a child's horizontal Weight sizing behavior. Provided by RowTileRenderer, which also resets LocalLazyItemScope/LocalFlowRowScope to null; reset back to null in turn by FlowRowTileRenderer/LazyRowTileRenderer. Like LocalColumnScope, ColumnTileRenderer doesn't reset this, so a Column nested inside a Row still sees the outer Row's scope through it — harmless for Modifier.size() itself, since it checks LocalRowScope exclusively for horizontal Weight, never for vertical.

Link copied to clipboard

Carries the current screen's ScreenTilesBroadcastChannel down the Compose tree — provided once per screen by MosaicScreen, read by TileSchema.observeScreenTileBroadcastChannel (extensions/SharedFlowExtensions.kt). Reading it outside a Mosaic screen throws, which is why every tile renders inside MosaicScreen/MosaicApplication.

Link copied to clipboard

Carries the app-wide TileRendererManager down the tree — provided once, near the root, so TileRenderingScope.RenderChild/RenderChildren can reach it without either being handed the manager as an explicit parameter (which would need to thread through every single container tile's Render implementation). Reading it outside a Mosaic screen throws, which is why every tile renders inside MosaicApplication.

Link copied to clipboard

Carries the current screen's TilesManager down the tree, or null outside any screen — provided by MosaicScreen. This is what makes the nested-navigation-graph pattern possible: a custom container tile that hosts its own mini backstack composes its own MosaicScreen(parent = LocalTilesManager.current), so lookups that miss inside the nested tree can recurse upward into the hosting screen's own TilesManager (see NestedNavigationGraph for the built-in example).