Package-level declarations
Functions
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.
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.
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 selectedOptionId — selectedOptionId 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.
Error visual state — switches the field to Material's error styling.
Error visual state — switches the field to Material's error styling.
Error visual state — switches the field to Material's error styling.
Error visual state — switches the field to Material's error styling.
Filled date picker field variant.
Filled dropdown anchor field variant.
Filled text field variant.
Filled time picker field variant.
Auto-capitalizes every character as it's typed.
Does not auto-capitalize typed text.
Auto-capitalizes the first letter of each sentence.
No forced capitalization strategy — platform default.
Auto-capitalizes the first letter of each word.
Default IME action for the current input; no keyboard trigger can fire.
"Done" IME action — pressing it fires onKeyboardDone.
"Go" IME action — pressing it fires onKeyboardGo.
"Next" IME action — pressing it fires onKeyboardNext.
No IME action shown; no keyboard trigger can fire.
"Previous" IME action — pressing it fires onKeyboardPrevious.
"Search" IME action — pressing it fires onKeyboardSearch.
"Send" IME action — pressing it fires onKeyboardSend.
No forced IME action — platform default; no keyboard trigger can fire.
Builds the keyboard configuration for a TextField.
ASCII-only text keyboard layout.
Decimal-number keyboard layout, allowing a decimal separator.
Email keyboard layout, optimized for entering email addresses.
Numeric keyboard layout.
Numeric password keyboard layout.
Password keyboard layout, disabling autocorrect/suggestions.
Phone-number keyboard layout.
General text keyboard layout.
No forced keyboard layout — platform default.
URI keyboard layout, optimized for entering URLs.
Applies a custom mask pattern (e.g. "###-###") to the displayed text.
No visual transformation — text is shown as typed.
Masks every character as a dot, for password fields.
Normal (non-error) visual state.
Normal (non-error) visual state.
Normal (non-error) visual state.
Normal (non-error) visual state.
Outlined date picker field variant.
Outlined dropdown anchor field variant.
Outlined text field variant.
Outlined time picker field variant.
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.
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.
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.
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.