Package 

Class ThreeZoneLayoutKt

    • Method Summary

      Modifier and Type Method Description
      final static Unit ThreeZoneLayout(List<ContentBlock> blocks, Function1<ContentBlock, Unit> renderBlock, Modifier modifier, Alignment.Horizontal topAlignment, Alignment.Horizontal centerAlignment, Alignment.Horizontal bottomAlignment) SPEC-070-A I.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • ThreeZoneLayout

        @Composable() final static Unit ThreeZoneLayout(List<ContentBlock> blocks, Function1<ContentBlock, Unit> renderBlock, Modifier modifier, Alignment.Horizontal topAlignment, Alignment.Horizontal centerAlignment, Alignment.Horizontal bottomAlignment)

        SPEC-070-A I.17 — ThreeZoneLayout partitions a step's ContentBlock list into three vertical zones — top, center, bottom — and spaces them with weighted spacers so each zone retains its visual region as the screen height changes.

        Mirrors iOS Onboarding/ThreeZoneStepLayout.swift:109-122. Empty zones collapse so the renderer doesn't introduce phantom whitespace; non-empty zones each carry a weight of 1 by default, matching iOS Layout's "GeometryReader { proxy in VStack { … } }" partition.

        The zone for each block is decided by:

        • block.zone (explicit "top" / "center" / "bottom"),

        • else block.vertical_align (legacy field, same vocabulary),

        • else default to "center".

        Hosts use this when step.layout == "three_zone" (or whatever flag the outer renderer chooses). For non-three_zone steps the existing BlockBasedStepView continues to render inline.

        Parameters:
        blocks - All step blocks (already filtered for visibility).
        renderBlock - Callback the layout invokes for each block — keeps rendering decisions in the host (style, action wiring) while this layout owns only the zoning.
        topAlignment - Alignment within the top zone (default = TopCenter).
        centerAlignment - Alignment within the center zone (default = Center).
        bottomAlignment - Alignment within the bottom zone (default = BottomCenter).