Package-level declarations
Functions
Conditionally renders tiles based on the current window size class. Children are composed only when both widthVisibility and heightVisibility are satisfied — otherwise nothing is emitted (the children are not composed, not merely hidden). VisibleFrom(breakpoint) shows from the rank above the given breakpoint upwards (exclusive); VisibleUntil(breakpoint) shows at or below it (inclusive). Width and height are evaluated independently, so one may be satisfied while the other is not — in that case the children still stay hidden. When both conditions hold, the children are hosted in a Box carrying style and visibility. Dispatches onDisplay once when composed regardless of the breakpoints, and dispatches the width/height satisfied/not-satisfied triggers on first composition and on every condition change.
Renders a Compose Box that stacks tiles on top of each other in declaration order (later children paint above earlier ones), all positioned by alignment. Never scrollable, and publishes no scope CompositionLocal, so children cannot use column/row scope modifiers such as weight. Dispatches onDisplay once when composed; onClick/onLongPress are wired only when the matching event is declared on this tile — with neither declared, the box is not made interactive.
Renders a Material 3 horizontal carousel over tiles, one child per item. type picks the layout — multiBrowse sizes items around a preferred width with shrunken edge items, or uncontained uses a fixed item width. itemSpacing and contentPadding (applied horizontally only) are in dp, and userScrollEnabled toggles manual swiping. Listens for scroll-to-begin/end and next/previous-item broadcasts addressed to its id — it shares the pager's broadcast, so the same commands work on both tile types. Requesting the next item past the last one (or the previous one before the first) is a no-op. Children are rendered by index with no scope CompositionLocal. Dispatches onDisplay once when composed, and onPageChanged whenever the current item changes (skipping the initial item) — once per matching direction (any / start / end / that exact index).
Renders a Compose Column stacking tiles vertically, spaced by arrangement and aligned horizontally by alignment. When scrollable is true the column becomes vertically scrollable — every child is composed eagerly, so prefer LazyColumn for long lists. Publishes its column scope to children so they can use scope modifiers such as weight. When filterChildrenByTerm is set, only children whose searchableTerms contain that term (case-insensitive substring match) are rendered — children without searchableTerms are filtered out. Listens for scroll-to-top/bottom/offset broadcasts addressed to its id. Dispatches onDisplay once when composed, onClick/onLongPress only when declared, and onScrolled on scroll direction changes while scrollable is true.
Default card variant — flat, no shadow or border.
Elevated card variant — shadowed surface-colored background.
Packs wrapped lines at the center of the cross axis. Only takes effect when wrapping is enabled.
Packs wrapped lines at the end of the cross axis. Only takes effect when wrapping is enabled.
Distributes wrapped lines with equal space around each of them. Only takes effect when wrapping is enabled.
Distributes wrapped lines with equal space between them. Only takes effect when wrapping is enabled.
Packs wrapped lines at the start of the cross axis. Only takes effect when wrapping is enabled.
Stretches wrapped lines to fill the cross axis. Only takes effect when wrapping is enabled.
Aligns children by their text baseline.
Aligns children to the center of the cross axis.
Aligns children to the end of the cross axis.
Aligns children to the start of the cross axis.
Stretches children to fill the cross axis.
Renders a Compose CSS-flexbox layout hosting tiles. direction sets the main axis (and its reversal), justifyContent distributes children along the main axis, alignItems aligns children on the cross axis of a single line, alignContent distributes the lines themselves (only takes effect when wrap allows multiple lines), and wrap controls whether items wrap. columnGap / rowGap are in dp. Publishes its flex scope to children so they can use flex modifiers (grow, shrink, basis, align-self). When filterChildrenByTerm is set, only children whose searchableTerms contain that term (case-insensitive substring match) are rendered — children without searchableTerms are filtered out. Never scrollable — every child is composed eagerly. Dispatches onDisplay once when composed, onClick only when declared.
Main axis runs top-to-bottom.
Main axis runs bottom-to-top, reversing item order.
Main axis runs left-to-right (or top-to-bottom is not applicable — this is the row direction).
Main axis runs right-to-left, reversing item order.
Packs children at the center of the main axis.
Packs children at the end of the main axis.
Distributes children with equal space around each of them.
Distributes children with equal space between them, none at the edges.
Distributes children with equal space between them and at both edges.
Packs children at the start of the main axis.
Children are forced onto a single line, overflowing if needed.
Children wrap onto multiple lines when they overflow the main axis.
Children wrap onto multiple lines in reverse order when they overflow the main axis.
Auto-places children column by column, filling each column before moving to the next.
Auto-places children row by row, filling each row before moving to the next.
Renders a Compose FlowRow laying tiles out horizontally and wrapping onto new lines when they no longer fit. horizontalArrangement spaces items within a line, verticalArrangement spaces the lines themselves, and maxItemsInEachRow caps how many children a single line may hold (unlimited by default). Publishes its flow-row scope to children so they can use modifiers such as weight and fillMaxRowHeight. When filterChildrenByTerm is set, only children whose searchableTerms contain that term (case-insensitive substring match) are rendered — children without searchableTerms are filtered out. Never scrollable — every child is composed eagerly. Dispatches onDisplay once when composed, onClick only when declared.
Renders a Compose CSS-grid-like layout hosting tiles. columns and rows declare the track template (each track fixed in dp, a fraction of available space, an fr-flexible unit, auto, max-content or min-content); when rows is left empty, row tracks are derived implicitly. flow decides whether children are placed row-first or column-first, and columnGap / rowGap (in dp) set the spacing between tracks. Publishes its grid scope to children so they can use grid modifiers (row/column span and placement). When filterChildrenByTerm is set, only children whose searchableTerms contain that term (case-insensitive substring match) are rendered — children without searchableTerms are filtered out. Never scrollable — every child is composed eagerly. Dispatches onDisplay once when composed, onClick/onLongPress only when declared on this tile.
Column track sized automatically to fit its content.
Column track with a fixed size in dp.
Column track sized with an fr-flexible unit, sharing remaining space proportionally with other flexible tracks.
Column track sized as a fraction of the available space (0f–1f).
Column track sized to the maximum content size among its cells.
Column track sized to the minimum content size among its cells.
Row track sized automatically to fit its content.
Row track with a fixed size in dp.
Row track sized with an fr-flexible unit, sharing remaining space proportionally with other flexible tracks.
Row track sized as a fraction of the available space (0f–1f).
Row track sized to the maximum content size among its cells.
Row track sized to the minimum content size among its cells.
Visible from the Compact height breakpoint upwards (i.e. always, since Compact is the lowest rank).
Visible from above the Expanded height breakpoint (never satisfied — Expanded is the highest rank).
Visible from above the Medium height breakpoint (Expanded only).
Visible up to and including the Compact height breakpoint.
Visible up to and including the Expanded height breakpoint (i.e. always, since Expanded is the highest rank).
Visible up to and including the Medium height breakpoint.
Renders a Compose LazyColumn over tiles — one lazy item per child, keyed by the child's id — spaced by arrangement and aligned horizontally by alignment. Only visible children are composed, so prefer this over Column for long or paginated lists. Publishes each item's lazy scope to its child, so children can use modifiers such as animateItem (but not ColumnScope.weight). When filterChildrenByTerm is set, only children whose searchableTerms contain that term (case-insensitive substring match) are rendered — children without searchableTerms are filtered out. When scrollThreshold is set, the list fires its threshold trigger once fewer than or exactly that many items remain past the last visible one; it does not fire again until the list grows, and considerLoadingItemAtEndOnThresholdReached additionally requires it to grow by more than one item (accounting for a trailing loading placeholder). Listens for scroll-to-top/bottom/item broadcasts addressed to its id. When displayScrollbar is true, draws a vertical scrollbar on the trailing edge (useful on desktop/web). Dispatches onDisplay once when composed, onClick only when declared, onScrolled on scroll direction changes, and the scroll-threshold trigger as described above.
Renders a Compose LazyRow over tiles — one lazy item per child, keyed by the child's id — spaced by arrangement and aligned vertically by alignment. Only visible children are composed, so prefer this over Row for long or paginated horizontal lists. Publishes each item's lazy scope to its child, so children can use modifiers such as animateItem (but not RowScope.weight). When filterChildrenByTerm is set, only children whose searchableTerms contain that term (case-insensitive substring match) are rendered — children without searchableTerms are filtered out. When scrollThreshold is set, the list fires its threshold trigger once fewer than or exactly that many items remain past the last visible one; it does not fire again until the list grows, and considerLoadingItemAtEndOnThresholdReached additionally requires it to grow by more than one item (accounting for a trailing loading placeholder). Listens for scroll-to-start/end/item broadcasts addressed to its id. When displayScrollbar is true, draws a horizontal scrollbar along the bottom edge (useful on desktop/web). Dispatches onDisplay once when composed, onClick only when declared, onScrolled on scroll direction changes, and the scroll-threshold trigger as described above.
Renders a plain Column whose content is fetched from the network at display time: the tile calls url with method, body and headers, expects a JSON array of tile schemas back, and renders them in place of placeholderTiles. placeholderTiles are shown while the request is in flight (fired once, on the IO dispatcher), and failureTiles replace them if the request or the response decoding fails. A local reload event clears the loaded state and retries. The request is issued directly by the renderer, not through the event pipeline, so it is not affected by event chaining. Children are laid out with no scope CompositionLocal and no scrolling.
Multi-browse carousel layout — items are sized around preferredItemWidth, with edge items allowed to shrink between minSmallItemWidth and maxSmallItemWidth (falling back to Material defaults when left null).
Outlined card variant — flat with an outline border.
Pages fill the full available width.
Pages take a fixed width, in dp.
Renders a horizontal-only Compose HorizontalPager over tiles, one page per child. pageSize chooses between full-width pages (pageFill) and fixed-width pages (pageFixed, in dp); pageSpacing and contentPadding (horizontal only) are dp values, and beyondViewportPageCount controls how many off-screen pages stay composed. Listens for scroll-to-begin/end and next/previous-page broadcasts addressed to its id — requesting the next page past the last one (or the previous one before the first) is a no-op. Children are rendered by index with no scope CompositionLocal. Dispatches onDisplay once when composed, and onPageChanged whenever the settled current page changes (skipping the initial page) — once per matching direction (any / start / end / that exact index); wiring several directions runs several chains for the same page change.
Renders a Material 3 pull-to-refresh container wrapping tiles, showing the refresh indicator while isRefreshing is true. Pulling flips isRefreshing to true locally on the client (no round trip needed for the spinner to appear) and dispatches onPull — hook the refresh work to that trigger. Stopping the indicator is the server's job: chain a StopRefreshingEventSchema pointing at this tile's id onto the end of the refresh flow, on both the success and failure branch, otherwise it keeps spinning. Children are laid out with Box semantics and no scope CompositionLocal; put a scrollable tile inside for the gesture to feel natural. Dispatches onDisplay once when composed.
Renders a Compose Row laying tiles out horizontally, spaced by arrangement and aligned vertically by alignment. When scrollable is true the row becomes horizontally scrollable — every child is composed eagerly, so prefer LazyRow for long lists. Publishes its row scope to children so they can use scope modifiers such as weight. When filterChildrenByTerm is set, only children whose searchableTerms contain that term (case-insensitive substring match) are rendered — children without searchableTerms are filtered out. Listens for scroll-to-start/end/offset broadcasts addressed to its id. Dispatches onDisplay once when composed, onClick/onLongPress only when declared, and onScrolled on scroll direction changes while scrollable is true.
Wraps tiles in a Compose SelectionContainer, making the text rendered by its descendants selectable and copyable with the platform's selection handles and context menu. Dispatches no triggers at all — not even onDisplay — so any events declared on this tile are never fired; wire events on the children instead. Children are rendered without a scope CompositionLocal (behaves like a Box for layout) — put a Column or Row inside when a specific arrangement is needed.
Renders a Box hosting tiles with a continuously animated shimmer applied over the whole subtree — the usual way to build a skeleton/loading placeholder out of plain tiles. The shimmer is purely visual: children stay interactive, so build the placeholder out of non-clickable tiles. The tile itself is never clickable, and children are laid out with Box semantics (stacked, no scope CompositionLocal). Dispatches onDisplay once when composed.
Uncontained carousel layout — every item has the same fixed itemWidth.
Visible from the Compact width breakpoint upwards (i.e. always, since Compact is the lowest rank).
Visible from above the Expanded width breakpoint (Large and up).
Visible from above the ExtraLarge width breakpoint (never satisfied — ExtraLarge is the highest rank).
Visible from above the Large width breakpoint (ExtraLarge only).
Visible from above the Medium width breakpoint (Expanded and up).
Visible up to and including the Compact width breakpoint.
Visible up to and including the Expanded width breakpoint.
Visible up to and including the ExtraLarge width breakpoint (i.e. always, since ExtraLarge is the highest rank).
Visible up to and including the Large width breakpoint.
Visible up to and including the Medium width breakpoint.