PopupTileSchema

@Serializable
@SerialName(value = "Popup")
data class PopupTileSchema(val id: String, val events: SerializableImmutableList<EventSchema>?, val style: StyleSchema, val searchableTerms: SerializableImmutableList<String>?, val visibility: TileSchema.Visibility, val tiles: SerializableImmutableList<TileSchema>, val popupTiles: SerializableImmutableList<TileSchema>, val expanded: Boolean, val alignment: AlignmentSchema.TwoDimensional, val offsetX: Int, val offsetY: Int, val focusable: Boolean, val dismissOnBackPress: Boolean, val dismissOnClickOutside: Boolean) : TileSchema

Renders an anchor — tiles, laid out with Box semantics and carrying style and visibility — with a Compose Popup containing popupTiles floating over it. The popup is only composed while expanded is true.

Positioning: alignment places the popup relative to the anchor's bounds, and offsetX / offsetY are dp offsets applied on top of that. Top* and Bottom* alignments put the popup fully above/below the anchor with offsetY as the gap; CenterStart / CenterEnd put it fully to the side with offsetX as the gap (mirrored under RTL); the corner alignments flush-align the popup's matching edge with the anchor's, with offsetX as a plain translation. The final position is clamped to the window, so a popup can never be pushed off screen.

Dismissal: focusable, dismissOnBackPress and dismissOnClickOutside map onto Compose PopupProperties. When a dismissal happens the renderer dispatches a local PopupTileEvents.OnTogglePopup and the holder flips expanded, so closing by gesture needs no server round trip. Opening and closing from the server side is done with TogglePopupEventSchema pointing at this tile's id — typically wired to the anchor's click.

Triggers dispatched: none. The tile emits no trigger of its own, so any events declared on it are never fired — wire events on the anchor and popup tiles instead.

Notes: style and visibility apply to the anchor only — the popup renders in its own window and is not affected by them. Its content is also unstyled and undecorated, so add a Card or a styled Box inside popupTiles if you want a surface behind it.

Constructors

Link copied to clipboard
constructor(id: String, events: SerializableImmutableList<EventSchema>?, style: StyleSchema, searchableTerms: SerializableImmutableList<String>?, visibility: TileSchema.Visibility, tiles: SerializableImmutableList<TileSchema>, popupTiles: SerializableImmutableList<TileSchema>, expanded: Boolean, alignment: AlignmentSchema.TwoDimensional, offsetX: Int, offsetY: Int, focusable: Boolean, dismissOnBackPress: Boolean, dismissOnClickOutside: Boolean)

Properties

Link copied to clipboard
@SerialName(value = "alignment")
val alignment: AlignmentSchema.TwoDimensional
Link copied to clipboard
@SerialName(value = "dismissOnBackPress")
val dismissOnBackPress: Boolean
Link copied to clipboard
@SerialName(value = "dismissOnClickOutside")
val dismissOnClickOutside: Boolean
Link copied to clipboard
@SerialName(value = "events")
open override val events: SerializableImmutableList<EventSchema>?
Link copied to clipboard
@SerialName(value = "expanded")
val expanded: Boolean
Link copied to clipboard
@SerialName(value = "focusable")
val focusable: Boolean
Link copied to clipboard
@SerialName(value = "id")
open override val id: String
Link copied to clipboard
@SerialName(value = "offsetX")
val offsetX: Int
Link copied to clipboard
@SerialName(value = "offsetY")
val offsetY: Int
Link copied to clipboard
@SerialName(value = "popupTiles")
val popupTiles: SerializableImmutableList<TileSchema>
Link copied to clipboard
@SerialName(value = "searchableTerms")
open override val searchableTerms: SerializableImmutableList<String>?
Link copied to clipboard
@SerialName(value = "style")
open override val style: StyleSchema
Link copied to clipboard
@SerialName(value = "tiles")
val tiles: SerializableImmutableList<TileSchema>
Link copied to clipboard
@SerialName(value = "visibility")
open override val visibility: TileSchema.Visibility

Functions

Link copied to clipboard
open fun isGone(): Boolean
Link copied to clipboard
open fun isVisible(): Boolean