Package-level declarations

Functions

Link copied to clipboard
fun TileSchemaBuilderScope.Checkbox(id: String = randomId(), events: EventSchemaBuilderScope.() -> Unit = {}, style: StyleSchemaBuilderScope.() -> Unit = { size( width = wrapHorizontally(), height = wrapVertically() ) }, visibility: TileSchema.Visibility = visible(), searchableTerms: List<String>? = null, checked: Boolean = false, enabled: Boolean = true)

Renders a bare Material 3 checkbox reflecting checked. Draws only the box — no label — so pair it with a SimpleText inside a Row when a caption is needed. Toggling flips checked locally on the client (no round trip needed for the new value to take effect), then dispatches onCheck (when it becomes checked) or onUncheck (when it becomes unchecked), always followed by onCheckChanged. The current checked value can be read from this tile by its id via GetData.

Link copied to clipboard
fun TileSchemaBuilderScope.DatePicker(id: String = randomId(), events: EventSchemaBuilderScope.() -> Unit = {}, style: StyleSchemaBuilderScope.() -> Unit = {}, searchableTerms: List<String>? = null, visibility: TileSchema.Visibility = visible(), selectedDate: String? = null, enabled: Boolean = true, kind: DatePickerTileSchema.Kind = outlinedDatePicker(), confirmLabel: String, cancelLabel: String, supportingText: String? = null, state: DatePickerTileSchema.State = normalDatePicker())

Renders a read-only text field that opens a Material 3 date picker dialog when tapped. kind picks the field style — filled or outlined. Always shows a calendar leading icon, displays selectedDate (empty when null, as an ISO yyyy-MM-dd string), forwards enabled and supportingText, and switches to Material's error styling when state is error. Typing is impossible — the field is read-only. Opening, closing and date selection are handled entirely on the client: pressing the field opens the dialog, confirming stores the picked date and closes it, cancelling or dismissing just closes it — none of this needs a round trip to the server. The dialog's buttons are labelled with confirmLabel and cancelLabel, and the confirm button stays disabled until a date is picked, so confirming always yields a date. Dispatches onDatePickerOpen when pressed while closed, onDateSelected (carrying the ISO date string) when confirmed, and onDatePickerClose when pressed while open, dismissed, cancelled, or right after a confirm. The current selectedDate can be read from this tile by its id via GetData — it produces no entry at all when no date is selected.

Link copied to clipboard
fun TileSchemaBuilderScope.DropdownList(id: String = randomId(), events: EventSchemaBuilderScope.() -> Unit = {}, style: StyleSchemaBuilderScope.() -> Unit = {}, searchableTerms: List<String>? = null, visibility: TileSchema.Visibility = visible(), options: List<DropdownListTileSchema.SelectOption>, selectedOptionId: String, enabled: Boolean = true, kind: DropdownListTileSchema.Kind = outlinedDropdownList(), supportingText: String? = null, state: DropdownListTileSchema.State = normalDropdownList())

Renders a Material 3 exposed dropdown menu: a read-only anchor field showing the label of the currently selected option, plus a dropdown listing every entry in options. kind picks the anchor style — filled or outlined. enabled and supportingText are forwarded, and state set to error switches the field into Material's error styling. The anchor displays the label of the option whose id equals selectedOptionIdselectedOptionId must match one of options' ids, or building this tile throws. Opening, closing and item selection are handled entirely on the client: tapping the anchor toggles the menu, tapping an item stores the new selection and closes the menu, dismissing (tapping outside) just closes it — none of this needs a round trip to the server. Dispatches onDropdownListOpen when the anchor is tapped while closed; onDropdownListItemSelected (carrying the picked option's id) when an item is picked; and onDropdownListClose whenever the menu closes — anchor tapped while open, dismissed by tapping outside, or right after an item is picked. The current selectedOptionId can be read from this tile by its id via GetData.

Link copied to clipboard

Error visual state — switches the field to Material's error styling.

Link copied to clipboard

Error visual state — switches the field to Material's error styling.

Link copied to clipboard

Error visual state — switches the field to Material's error styling.

Link copied to clipboard

Error visual state — switches the field to Material's error styling.

Link copied to clipboard

Filled date picker field variant.

Link copied to clipboard

Filled dropdown anchor field variant.

Link copied to clipboard

Filled text field variant.

Link copied to clipboard

Filled time picker field variant.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Default IME action for the current input; no keyboard trigger can fire.

Link copied to clipboard

"Done" IME action — pressing it fires onKeyboardDone.

Link copied to clipboard

"Go" IME action — pressing it fires onKeyboardGo.

Link copied to clipboard

"Next" IME action — pressing it fires onKeyboardNext.

Link copied to clipboard

No IME action shown; no keyboard trigger can fire.

Link copied to clipboard

"Previous" IME action — pressing it fires onKeyboardPrevious.

Link copied to clipboard

"Search" IME action — pressing it fires onKeyboardSearch.

Link copied to clipboard

"Send" IME action — pressing it fires onKeyboardSend.

Link copied to clipboard

No forced IME action — platform default; no keyboard trigger can fire.

Link copied to clipboard
fun keyboardOptions(autoCorrectEnabled: Boolean? = null, howKeyboardOnFocus: Boolean? = null, capitalization: TextFieldTileSchema.KeyboardOptions.KeyboardCapitalization = keyboardCapitalizationUnspecified(), keyboardType: TextFieldTileSchema.KeyboardOptions.KeyboardType = keyboardTypeUnspecified(), imeAction: TextFieldTileSchema.KeyboardOptions.ImeAction = keyboardImeActionUnspecified()): TextFieldTileSchema.KeyboardOptions

Builds the keyboard configuration for a TextField.

Link copied to clipboard
Link copied to clipboard

Decimal-number keyboard layout, allowing a decimal separator.

Link copied to clipboard

Email keyboard layout, optimized for entering email addresses.

Link copied to clipboard

Password keyboard layout, disabling autocorrect/suggestions.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

URI keyboard layout, optimized for entering URLs.

Link copied to clipboard

Applies a custom mask pattern (e.g. "###-###") to the displayed text.

Link copied to clipboard

No visual transformation — text is shown as typed.

Link copied to clipboard

Masks every character as a dot, for password fields.

Link copied to clipboard

Normal (non-error) visual state.

Link copied to clipboard

Normal (non-error) visual state.

Link copied to clipboard

Normal (non-error) visual state.

Link copied to clipboard

Normal (non-error) visual state.

Link copied to clipboard

Outlined date picker field variant.

Link copied to clipboard

Outlined dropdown anchor field variant.

Link copied to clipboard

Outlined text field variant.

Link copied to clipboard

Outlined time picker field variant.

Link copied to clipboard
fun TileSchemaBuilderScope.RadioButton(id: String = randomId(), events: EventSchemaBuilderScope.() -> Unit = {}, style: StyleSchemaBuilderScope.() -> Unit = { size( width = wrapHorizontally(), height = wrapVertically() ) }, visibility: TileSchema.Visibility = visible(), searchableTerms: List<String>? = null, selected: Boolean = false, enabled: Boolean = true, groupId: String)

Renders a bare Material 3 radio button reflecting selected. Draws only the radio circle — no label — so pair it with a SimpleText inside a Row when a caption is needed. Tapping the button applies mutual exclusion entirely on the client: every radio tile sharing the same groupId sets its own selected state to whether its id matches the tapped tile's id, with no server round trip and no UpdateTiles needed to clear the previously selected button; radios with a different groupId are unaffected. Dispatches onSelect only on the radio button that becomes selected — tapping an already-selected radio fires nothing, and radios that become deselected fire nothing either. The current selected value can be read from this tile by its id via GetData.

Link copied to clipboard

One entry of a DropdownList's menu — id is matched against selectedOptionId, label is what's displayed.

Link copied to clipboard
fun TileSchemaBuilderScope.Switch(id: String = randomId(), events: EventSchemaBuilderScope.() -> Unit = {}, style: StyleSchemaBuilderScope.() -> Unit = {}, visibility: TileSchema.Visibility = visible(), searchableTerms: List<String>? = null, checked: Boolean = false, enabled: Boolean = true)

Renders a bare Material 3 switch reflecting checked. Draws only the switch — no label or thumb icon — so pair it with a SimpleText inside a Row when a caption is needed. Toggling flips checked locally on the client (no round trip needed for the new value to take effect), then dispatches onCheck (when it turns on) or onUncheck (when it turns off), always followed by onCheckChanged. The current checked value can be read from this tile by its id via GetData.

Link copied to clipboard
fun TileSchemaBuilderScope.TextField(id: String = randomId(), events: EventSchemaBuilderScope.() -> Unit = {}, style: StyleSchemaBuilderScope.() -> Unit = {}, visibility: TileSchema.Visibility = visible(), searchableTerms: List<String>? = null, value: String = "", enabled: Boolean = true, leadingIcon: IconSchema? = null, clickableLeadingIcon: Boolean = false, trailingIcon: IconSchema? = null, clickableTrailingIcon: Boolean = true, prefixText: String? = null, suffixText: String? = null, placeholder: String? = null, label: String? = null, supportingText: String? = null, minLines: Int = 1, maxLines: Int = Int.MAX_VALUE, kind: TextFieldTileSchema.Kind = outlinedTextField(), state: TextFieldTileSchema.State = normalTextField(), keyboardOptions: TextFieldTileSchema.KeyboardOptions? = null, visualTransformation: TextFieldTileSchema.VisualTransformation? = null)

Renders a Material 3 text input field. kind picks the visual style — filled or outlined. label, prefixText, suffixText, supportingText and placeholder are shown only when non-null; enabled, minLines and maxLines are forwarded; state set to error switches the field into Material's error styling. The client keeps its own local text state seeded from value, re-syncing (and moving the caret to the end) whenever the server pushes a new value (e.g. via UpdateTiles); each keystroke updates that local state without a round trip to the server. leadingIcon / trailingIcon render as plain icons by default; setting clickableLeadingIcon / clickableTrailingIcon wraps them in a tappable IconButton that fires its own trigger. keyboardOptions configures capitalization, keyboard type, IME action, autocorrect and show-on-focus; visualTransformation masks the displayed text (e.g. for passwords). Dispatches onTextChanged (carrying the new text) on every keystroke where the text actually differs from value; the matching keyboard trigger (onKeyboardDone/onKeyboardGo/onKeyboardNext/onKeyboardPrevious/onKeyboardSearch/onKeyboardSend) when the IME action set by keyboardOptions is pressed; onLeadingIconClick only when clickableLeadingIcon is true; and onTrailingIconClick only when clickableTrailingIcon is true. The current value can be read from this tile by its id via GetData — an empty value produces no entry at all rather than an empty string.

Link copied to clipboard
fun TileSchemaBuilderScope.TimePicker(id: String = randomId(), events: EventSchemaBuilderScope.() -> Unit = {}, style: StyleSchemaBuilderScope.() -> Unit = {}, searchableTerms: List<String>? = null, visibility: TileSchema.Visibility = visible(), selectedTime: String? = null, enabled: Boolean = true, kind: TimePickerTileSchema.Kind = outlinedTimePicker(), confirmLabel: String, cancelLabel: String, supportingText: String? = null, state: TimePickerTileSchema.State = normalTimePicker())

Renders a read-only text field that opens a Material 3 time picker dialog when tapped. kind picks the field style — filled or outlined. Always shows an alarm leading icon, displays selectedTime (empty when null, as an ISO HH:mm string), forwards enabled and supportingText, and switches to Material's error styling when state is error. Typing is impossible — the field is read-only. The dialog is always 24-hour, uses the vertical layout, and opens at 00:00 when selectedTime is null. Opening, closing and time selection are handled entirely on the client: pressing the field opens the dialog, confirming stores the picked time and closes it, cancelling or dismissing just closes it — none of this needs a round trip to the server. The dialog's buttons are labelled with confirmLabel and cancelLabel. Dispatches onTimePickerOpen when pressed while closed, onTimeSelected (carrying the ISO time string) when confirmed, and onTimePickerClose when pressed while open, dismissed, cancelled, or right after a confirm. The current selectedTime can be read from this tile by its id via GetData — it produces no entry at all when no time is selected.